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