master
  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__
 22typedef struct IChannelMgr IChannelMgr;
 23#endif
 24
 25#ifndef __IEnumChannels_FWD_DEFINED__
 26#define __IEnumChannels_FWD_DEFINED__
 27typedef struct IEnumChannels IEnumChannels;
 28#endif
 29
 30#ifndef __ChannelMgr_FWD_DEFINED__
 31#define __ChannelMgr_FWD_DEFINED__
 32#ifdef __cplusplus
 33typedef class ChannelMgr ChannelMgr;
 34#else
 35typedef struct ChannelMgr ChannelMgr;
 36#endif
 37#endif
 38
 39#include "unknwn.h"
 40
 41#ifdef __cplusplus
 42extern "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