1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #ifndef __REQUIRED_RPCNDR_H_VERSION__ 7 #define __REQUIRED_RPCNDR_H_VERSION__ 475 8 #endif 9 10 #include "rpc.h" 11 #include "rpcndr.h" 12 13 #ifndef __RPCNDR_H_VERSION__ 14 #error this stub requires an updated version of <rpcndr.h> 15 #endif 16 17 #ifndef __chanmgr_h__ 18 #define __chanmgr_h__ 19 20 #ifndef __IChannelMgr_FWD_DEFINED__ 21 #define __IChannelMgr_FWD_DEFINED__ 22 typedef struct IChannelMgr IChannelMgr; 23 #endif 24 25 #ifndef __IEnumChannels_FWD_DEFINED__ 26 #define __IEnumChannels_FWD_DEFINED__ 27 typedef struct IEnumChannels IEnumChannels; 28 #endif 29 30 #ifndef __ChannelMgr_FWD_DEFINED__ 31 #define __ChannelMgr_FWD_DEFINED__ 32 #ifdef __cplusplus 33 typedef class ChannelMgr ChannelMgr; 34 #else 35 typedef struct ChannelMgr ChannelMgr; 36 #endif 37 #endif 38 39 #include "unknwn.h" 40 41 #ifdef __cplusplus 42 extern "C"{ 43 #endif 44 45 #ifndef __MIDL_user_allocate_free_DEFINED__ 46 #define __MIDL_user_allocate_free_DEFINED__ 47 void *__RPC_API MIDL_user_allocate(size_t); 48 void __RPC_API MIDL_user_free(void *); 49 #endif 50 51 extern RPC_IF_HANDLE __MIDL_itf_chanmgr_0000_v0_0_c_ifspec; 52 extern RPC_IF_HANDLE __MIDL_itf_chanmgr_0000_v0_0_s_ifspec; 53 54 #ifndef __CHANNELMGR_LIBRARY_DEFINED__ 55 #define __CHANNELMGR_LIBRARY_DEFINED__ 56 EXTERN_C const IID LIBID_CHANNELMGR; 57 #ifndef __IChannelMgr_INTERFACE_DEFINED__ 58 #define __IChannelMgr_INTERFACE_DEFINED__ 59 60 typedef struct _tagChannelShortcutInfo { 61 DWORD cbSize; 62 LPWSTR pszTitle; 63 LPWSTR pszURL; 64 LPWSTR pszLogo; 65 LPWSTR pszIcon; 66 LPWSTR pszWideLogo; 67 WINBOOL bIsSoftware; 68 } CHANNELSHORTCUTINFO; 69 70 typedef struct _tagChannelCategoryInfo { 71 DWORD cbSize; 72 LPWSTR pszTitle; 73 LPWSTR pszURL; 74 LPWSTR pszLogo; 75 LPWSTR pszIcon; 76 LPWSTR pszWideLogo; 77 } CHANNELCATEGORYINFO; 78 79 typedef enum _tagChannelEnumFlags { 80 CHANENUM_CHANNELFOLDER = 0x1,CHANENUM_SOFTUPDATEFOLDER = 0x2,CHANENUM_DESKTOPFOLDER = 0x4,CHANENUM_TITLE = 0x10000,CHANENUM_PATH = 0x20000, 81 CHANENUM_URL = 0x40000,CHANENUM_SUBSCRIBESTATE = 0x80000 82 } CHANNELENUMFLAGS; 83 84 #define CHANENUM_ALLFOLDERS (CHANENUM_CHANNELFOLDER | CHANENUM_SOFTUPDATEFOLDER | CHANENUM_DESKTOPFOLDER) 85 #define CHANENUM_ALLDATA (CHANENUM_TITLE | CHANENUM_PATH | CHANENUM_URL | CHANENUM_SUBSCRIBESTATE) 86 #define CHANENUM_ALL (CHANENUM_CHANNELFOLDER | CHANENUM_SOFTUPDATEFOLDER | CHANENUM_DESKTOPFOLDER | CHANENUM_TITLE | CHANENUM_PATH | CHANENUM_URL | CHANENUM_SUBSCRIBESTATE) 87 88 EXTERN_C const IID IID_IChannelMgr; 89 #if defined(__cplusplus) && !defined(CINTERFACE) 90 struct IChannelMgr : public IUnknown { 91 public: 92 virtual HRESULT WINAPI AddChannelShortcut(CHANNELSHORTCUTINFO *pChannelInfo) = 0; 93 virtual HRESULT WINAPI DeleteChannelShortcut(LPWSTR pszTitle) = 0; 94 virtual HRESULT WINAPI AddCategory(CHANNELCATEGORYINFO *pCategoryInfo) = 0; 95 virtual HRESULT WINAPI DeleteCategory(LPWSTR pszTitle) = 0; 96 virtual HRESULT WINAPI EnumChannels(DWORD dwEnumFlags,LPCWSTR pszURL,IEnumChannels **pIEnumChannels) = 0; 97 }; 98 #else 99 typedef struct IChannelMgrVtbl { 100 BEGIN_INTERFACE 101 HRESULT (WINAPI *QueryInterface)(IChannelMgr *This,REFIID riid,void **ppvObject); 102 ULONG (WINAPI *AddRef)(IChannelMgr *This); 103 ULONG (WINAPI *Release)(IChannelMgr *This); 104 HRESULT (WINAPI *AddChannelShortcut)(IChannelMgr *This,CHANNELSHORTCUTINFO *pChannelInfo); 105 HRESULT (WINAPI *DeleteChannelShortcut)(IChannelMgr *This,LPWSTR pszTitle); 106 HRESULT (WINAPI *AddCategory)(IChannelMgr *This,CHANNELCATEGORYINFO *pCategoryInfo); 107 HRESULT (WINAPI *DeleteCategory)(IChannelMgr *This,LPWSTR pszTitle); 108 HRESULT (WINAPI *EnumChannels)(IChannelMgr *This,DWORD dwEnumFlags,LPCWSTR pszURL,IEnumChannels **pIEnumChannels); 109 END_INTERFACE 110 } IChannelMgrVtbl; 111 struct IChannelMgr { 112 CONST_VTBL struct IChannelMgrVtbl *lpVtbl; 113 }; 114 #ifdef COBJMACROS 115 #define IChannelMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 116 #define IChannelMgr_AddRef(This) (This)->lpVtbl->AddRef(This) 117 #define IChannelMgr_Release(This) (This)->lpVtbl->Release(This) 118 #define IChannelMgr_AddChannelShortcut(This,pChannelInfo) (This)->lpVtbl->AddChannelShortcut(This,pChannelInfo) 119 #define IChannelMgr_DeleteChannelShortcut(This,pszTitle) (This)->lpVtbl->DeleteChannelShortcut(This,pszTitle) 120 #define IChannelMgr_AddCategory(This,pCategoryInfo) (This)->lpVtbl->AddCategory(This,pCategoryInfo) 121 #define IChannelMgr_DeleteCategory(This,pszTitle) (This)->lpVtbl->DeleteCategory(This,pszTitle) 122 #define IChannelMgr_EnumChannels(This,dwEnumFlags,pszURL,pIEnumChannels) (This)->lpVtbl->EnumChannels(This,dwEnumFlags,pszURL,pIEnumChannels) 123 #endif 124 #endif 125 HRESULT WINAPI IChannelMgr_AddChannelShortcut_Proxy(IChannelMgr *This,CHANNELSHORTCUTINFO *pChannelInfo); 126 void __RPC_STUB IChannelMgr_AddChannelShortcut_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); 127 HRESULT WINAPI IChannelMgr_DeleteChannelShortcut_Proxy(IChannelMgr *This,LPWSTR pszTitle); 128 void __RPC_STUB IChannelMgr_DeleteChannelShortcut_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); 129 HRESULT WINAPI IChannelMgr_AddCategory_Proxy(IChannelMgr *This,CHANNELCATEGORYINFO *pCategoryInfo); 130 void __RPC_STUB IChannelMgr_AddCategory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); 131 HRESULT WINAPI IChannelMgr_DeleteCategory_Proxy(IChannelMgr *This,LPWSTR pszTitle); 132 void __RPC_STUB IChannelMgr_DeleteCategory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); 133 HRESULT WINAPI IChannelMgr_EnumChannels_Proxy(IChannelMgr *This,DWORD dwEnumFlags,LPCWSTR pszURL,IEnumChannels **pIEnumChannels); 134 void __RPC_STUB IChannelMgr_EnumChannels_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); 135 #endif 136 137 #ifndef __IEnumChannels_INTERFACE_DEFINED__ 138 #define __IEnumChannels_INTERFACE_DEFINED__ 139 typedef enum _tagSubcriptionState { 140 SUBSTATE_NOTSUBSCRIBED = 0,SUBSTATE_PARTIALSUBSCRIPTION,SUBSTATE_FULLSUBSCRIPTION 141 } SUBSCRIPTIONSTATE; 142 143 typedef struct _tagChannelInfo { 144 LPOLESTR pszTitle; 145 LPOLESTR pszPath; 146 LPOLESTR pszURL; 147 SUBSCRIPTIONSTATE stSubscriptionState; 148 } CHANNELENUMINFO; 149 150 EXTERN_C const IID IID_IEnumChannels; 151 #if defined(__cplusplus) && !defined(CINTERFACE) 152 struct IEnumChannels : public IUnknown { 153 public: 154 virtual HRESULT WINAPI Next(ULONG celt,CHANNELENUMINFO *rgChanInf,ULONG *pceltFetched) = 0; 155 virtual HRESULT WINAPI Skip(ULONG celt) = 0; 156 virtual HRESULT WINAPI Reset(void) = 0; 157 virtual HRESULT WINAPI Clone(IEnumChannels **ppenum) = 0; 158 }; 159 #else 160 typedef struct IEnumChannelsVtbl { 161 BEGIN_INTERFACE 162 HRESULT (WINAPI *QueryInterface)(IEnumChannels *This,REFIID riid,void **ppvObject); 163 ULONG (WINAPI *AddRef)(IEnumChannels *This); 164 ULONG (WINAPI *Release)(IEnumChannels *This); 165 HRESULT (WINAPI *Next)(IEnumChannels *This,ULONG celt,CHANNELENUMINFO *rgChanInf,ULONG *pceltFetched); 166 HRESULT (WINAPI *Skip)(IEnumChannels *This,ULONG celt); 167 HRESULT (WINAPI *Reset)(IEnumChannels *This); 168 HRESULT (WINAPI *Clone)(IEnumChannels *This,IEnumChannels **ppenum); 169 END_INTERFACE 170 } IEnumChannelsVtbl; 171 struct IEnumChannels { 172 CONST_VTBL struct IEnumChannelsVtbl *lpVtbl; 173 }; 174 #ifdef COBJMACROS 175 #define IEnumChannels_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 176 #define IEnumChannels_AddRef(This) (This)->lpVtbl->AddRef(This) 177 #define IEnumChannels_Release(This) (This)->lpVtbl->Release(This) 178 #define IEnumChannels_Next(This,celt,rgChanInf,pceltFetched) (This)->lpVtbl->Next(This,celt,rgChanInf,pceltFetched) 179 #define IEnumChannels_Skip(This,celt) (This)->lpVtbl->Skip(This,celt) 180 #define IEnumChannels_Reset(This) (This)->lpVtbl->Reset(This) 181 #define IEnumChannels_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum) 182 #endif 183 #endif 184 HRESULT WINAPI IEnumChannels_Next_Proxy(IEnumChannels *This,ULONG celt,CHANNELENUMINFO *rgChanInf,ULONG *pceltFetched); 185 void __RPC_STUB IEnumChannels_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); 186 HRESULT WINAPI IEnumChannels_Skip_Proxy(IEnumChannels *This,ULONG celt); 187 void __RPC_STUB IEnumChannels_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); 188 HRESULT WINAPI IEnumChannels_Reset_Proxy(IEnumChannels *This); 189 void __RPC_STUB IEnumChannels_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); 190 HRESULT WINAPI IEnumChannels_Clone_Proxy(IEnumChannels *This,IEnumChannels **ppenum); 191 void __RPC_STUB IEnumChannels_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); 192 #endif 193 194 EXTERN_C const CLSID CLSID_ChannelMgr; 195 #ifdef __cplusplus 196 class ChannelMgr; 197 #endif 198 #endif 199 200 #ifdef __cplusplus 201 } 202 #endif 203 #endif 204