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__ 440
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 COM_NO_WINDOWS_H
18 #include "windows.h"
19 #include "ole2.h"
20 #endif
21 
22 #ifndef __subsmgr_h__
23 #define __subsmgr_h__
24 
25 #ifndef __IEnumItemProperties_FWD_DEFINED__
26 #define __IEnumItemProperties_FWD_DEFINED__
27 typedef struct IEnumItemProperties IEnumItemProperties;
28 #endif
29 
30 #ifndef __ISubscriptionItem_FWD_DEFINED__
31 #define __ISubscriptionItem_FWD_DEFINED__
32 typedef struct ISubscriptionItem ISubscriptionItem;
33 #endif
34 
35 #ifndef __IEnumSubscription_FWD_DEFINED__
36 #define __IEnumSubscription_FWD_DEFINED__
37 typedef struct IEnumSubscription IEnumSubscription;
38 #endif
39 
40 #ifndef __ISubscriptionMgr_FWD_DEFINED__
41 #define __ISubscriptionMgr_FWD_DEFINED__
42 typedef struct ISubscriptionMgr ISubscriptionMgr;
43 #endif
44 
45 #ifndef __ISubscriptionMgr2_FWD_DEFINED__
46 #define __ISubscriptionMgr2_FWD_DEFINED__
47 typedef struct ISubscriptionMgr2 ISubscriptionMgr2;
48 #endif
49 
50 #ifndef __SubscriptionMgr_FWD_DEFINED__
51 #define __SubscriptionMgr_FWD_DEFINED__
52 #ifdef __cplusplus
53 typedef class SubscriptionMgr SubscriptionMgr;
54 #else
55 typedef struct SubscriptionMgr SubscriptionMgr;
56 #endif
57 #endif
58 
59 #include "unknwn.h"
60 #include "ocidl.h"
61 
62 #ifdef __cplusplus
63 extern "C" {
64 #endif
65 
66 #ifndef __MIDL_user_allocate_free_DEFINED__
67 #define __MIDL_user_allocate_free_DEFINED__
68   void *__RPC_API MIDL_user_allocate(size_t);
69   void __RPC_API MIDL_user_free(void *);
70 #endif
71 
72   typedef GUID SUBSCRIPTIONCOOKIE;
73 
74   extern RPC_IF_HANDLE __MIDL_itf_subsmgr_0000_v0_0_c_ifspec;
75   extern RPC_IF_HANDLE __MIDL_itf_subsmgr_0000_v0_0_s_ifspec;
76 
77 #ifndef __IEnumItemProperties_INTERFACE_DEFINED__
78 #define __IEnumItemProperties_INTERFACE_DEFINED__
79   typedef IEnumItemProperties *LPENUMITEMPROPERTIES;
80 
81   typedef struct _tagITEMPROP {
82     VARIANT variantValue;
83     LPWSTR pwszName;
84   } ITEMPROP;
85 
86   typedef struct _tagITEMPROP *LPITEMPROP;
87 
88   EXTERN_C const IID IID_IEnumItemProperties;
89 #if defined(__cplusplus) && !defined(CINTERFACE)
90   struct IEnumItemProperties : public IUnknown {
91   public:
92     virtual HRESULT WINAPI Next(ULONG celt,ITEMPROP *rgelt,ULONG *pceltFetched) = 0;
93     virtual HRESULT WINAPI Skip(ULONG celt) = 0;
94     virtual HRESULT WINAPI Reset(void) = 0;
95     virtual HRESULT WINAPI Clone(IEnumItemProperties **ppenum) = 0;
96     virtual HRESULT WINAPI GetCount(ULONG *pnCount) = 0;
97   };
98 #else
99   typedef struct IEnumItemPropertiesVtbl {
100     BEGIN_INTERFACE
101       HRESULT (WINAPI *QueryInterface)(IEnumItemProperties *This,REFIID riid,void **ppvObject);
102       ULONG (WINAPI *AddRef)(IEnumItemProperties *This);
103       ULONG (WINAPI *Release)(IEnumItemProperties *This);
104       HRESULT (WINAPI *Next)(IEnumItemProperties *This,ULONG celt,ITEMPROP *rgelt,ULONG *pceltFetched);
105       HRESULT (WINAPI *Skip)(IEnumItemProperties *This,ULONG celt);
106       HRESULT (WINAPI *Reset)(IEnumItemProperties *This);
107       HRESULT (WINAPI *Clone)(IEnumItemProperties *This,IEnumItemProperties **ppenum);
108       HRESULT (WINAPI *GetCount)(IEnumItemProperties *This,ULONG *pnCount);
109     END_INTERFACE
110   } IEnumItemPropertiesVtbl;
111   struct IEnumItemProperties {
112     CONST_VTBL struct IEnumItemPropertiesVtbl *lpVtbl;
113   };
114 #ifdef COBJMACROS
115 #define IEnumItemProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
116 #define IEnumItemProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
117 #define IEnumItemProperties_Release(This) (This)->lpVtbl->Release(This)
118 #define IEnumItemProperties_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
119 #define IEnumItemProperties_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
120 #define IEnumItemProperties_Reset(This) (This)->lpVtbl->Reset(This)
121 #define IEnumItemProperties_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
122 #define IEnumItemProperties_GetCount(This,pnCount) (This)->lpVtbl->GetCount(This,pnCount)
123 #endif
124 #endif
125   HRESULT WINAPI IEnumItemProperties_Next_Proxy(IEnumItemProperties *This,ULONG celt,ITEMPROP *rgelt,ULONG *pceltFetched);
126   void __RPC_STUB IEnumItemProperties_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
127   HRESULT WINAPI IEnumItemProperties_Skip_Proxy(IEnumItemProperties *This,ULONG celt);
128   void __RPC_STUB IEnumItemProperties_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
129   HRESULT WINAPI IEnumItemProperties_Reset_Proxy(IEnumItemProperties *This);
130   void __RPC_STUB IEnumItemProperties_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
131   HRESULT WINAPI IEnumItemProperties_Clone_Proxy(IEnumItemProperties *This,IEnumItemProperties **ppenum);
132   void __RPC_STUB IEnumItemProperties_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
133   HRESULT WINAPI IEnumItemProperties_GetCount_Proxy(IEnumItemProperties *This,ULONG *pnCount);
134   void __RPC_STUB IEnumItemProperties_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
135 #endif
136 
137 #define SI_TEMPORARY 0x80000000
138 
139   extern RPC_IF_HANDLE __MIDL_itf_subsmgr_0264_v0_0_c_ifspec;
140   extern RPC_IF_HANDLE __MIDL_itf_subsmgr_0264_v0_0_s_ifspec;
141 
142 #ifndef __ISubscriptionItem_INTERFACE_DEFINED__
143 #define __ISubscriptionItem_INTERFACE_DEFINED__
144   typedef ISubscriptionItem *LPSUBSCRIPTIONITEM;
145 
146   typedef struct tagSUBSCRIPTIONITEMINFO {
147     ULONG cbSize;
148     DWORD dwFlags;
149     DWORD dwPriority;
150     SUBSCRIPTIONCOOKIE ScheduleGroup;
151     CLSID clsidAgent;
152   } SUBSCRIPTIONITEMINFO;
153 
154   EXTERN_C const IID IID_ISubscriptionItem;
155 #if defined(__cplusplus) && !defined(CINTERFACE)
156   struct ISubscriptionItem : public IUnknown {
157   public:
158     virtual HRESULT WINAPI GetCookie(SUBSCRIPTIONCOOKIE *pCookie) = 0;
159     virtual HRESULT WINAPI GetSubscriptionItemInfo(SUBSCRIPTIONITEMINFO *pSubscriptionItemInfo) = 0;
160     virtual HRESULT WINAPI SetSubscriptionItemInfo(const SUBSCRIPTIONITEMINFO *pSubscriptionItemInfo) = 0;
161     virtual HRESULT WINAPI ReadProperties(ULONG nCount,const LPCWSTR rgwszName[],VARIANT rgValue[]) = 0;
162     virtual HRESULT WINAPI WriteProperties(ULONG nCount,const LPCWSTR rgwszName[],const VARIANT rgValue[]) = 0;
163     virtual HRESULT WINAPI EnumProperties(IEnumItemProperties **ppEnumItemProperties) = 0;
164     virtual HRESULT WINAPI NotifyChanged(void) = 0;
165   };
166 #else
167   typedef struct ISubscriptionItemVtbl {
168     BEGIN_INTERFACE
169       HRESULT (WINAPI *QueryInterface)(ISubscriptionItem *This,REFIID riid,void **ppvObject);
170       ULONG (WINAPI *AddRef)(ISubscriptionItem *This);
171       ULONG (WINAPI *Release)(ISubscriptionItem *This);
172       HRESULT (WINAPI *GetCookie)(ISubscriptionItem *This,SUBSCRIPTIONCOOKIE *pCookie);
173       HRESULT (WINAPI *GetSubscriptionItemInfo)(ISubscriptionItem *This,SUBSCRIPTIONITEMINFO *pSubscriptionItemInfo);
174       HRESULT (WINAPI *SetSubscriptionItemInfo)(ISubscriptionItem *This,const SUBSCRIPTIONITEMINFO *pSubscriptionItemInfo);
175       HRESULT (WINAPI *ReadProperties)(ISubscriptionItem *This,ULONG nCount,const LPCWSTR rgwszName[],VARIANT rgValue[]);
176       HRESULT (WINAPI *WriteProperties)(ISubscriptionItem *This,ULONG nCount,const LPCWSTR rgwszName[],const VARIANT rgValue[]);
177       HRESULT (WINAPI *EnumProperties)(ISubscriptionItem *This,IEnumItemProperties **ppEnumItemProperties);
178       HRESULT (WINAPI *NotifyChanged)(ISubscriptionItem *This);
179     END_INTERFACE
180   } ISubscriptionItemVtbl;
181   struct ISubscriptionItem {
182     CONST_VTBL struct ISubscriptionItemVtbl *lpVtbl;
183   };
184 #ifdef COBJMACROS
185 #define ISubscriptionItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
186 #define ISubscriptionItem_AddRef(This) (This)->lpVtbl->AddRef(This)
187 #define ISubscriptionItem_Release(This) (This)->lpVtbl->Release(This)
188 #define ISubscriptionItem_GetCookie(This,pCookie) (This)->lpVtbl->GetCookie(This,pCookie)
189 #define ISubscriptionItem_GetSubscriptionItemInfo(This,pSubscriptionItemInfo) (This)->lpVtbl->GetSubscriptionItemInfo(This,pSubscriptionItemInfo)
190 #define ISubscriptionItem_SetSubscriptionItemInfo(This,pSubscriptionItemInfo) (This)->lpVtbl->SetSubscriptionItemInfo(This,pSubscriptionItemInfo)
191 #define ISubscriptionItem_ReadProperties(This,nCount,rgwszName,rgValue) (This)->lpVtbl->ReadProperties(This,nCount,rgwszName,rgValue)
192 #define ISubscriptionItem_WriteProperties(This,nCount,rgwszName,rgValue) (This)->lpVtbl->WriteProperties(This,nCount,rgwszName,rgValue)
193 #define ISubscriptionItem_EnumProperties(This,ppEnumItemProperties) (This)->lpVtbl->EnumProperties(This,ppEnumItemProperties)
194 #define ISubscriptionItem_NotifyChanged(This) (This)->lpVtbl->NotifyChanged(This)
195 #endif
196 #endif
197   HRESULT WINAPI ISubscriptionItem_GetCookie_Proxy(ISubscriptionItem *This,SUBSCRIPTIONCOOKIE *pCookie);
198   void __RPC_STUB ISubscriptionItem_GetCookie_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
199   HRESULT WINAPI ISubscriptionItem_GetSubscriptionItemInfo_Proxy(ISubscriptionItem *This,SUBSCRIPTIONITEMINFO *pSubscriptionItemInfo);
200   void __RPC_STUB ISubscriptionItem_GetSubscriptionItemInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
201   HRESULT WINAPI ISubscriptionItem_SetSubscriptionItemInfo_Proxy(ISubscriptionItem *This,const SUBSCRIPTIONITEMINFO *pSubscriptionItemInfo);
202   void __RPC_STUB ISubscriptionItem_SetSubscriptionItemInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
203   HRESULT WINAPI ISubscriptionItem_ReadProperties_Proxy(ISubscriptionItem *This,ULONG nCount,const LPCWSTR rgwszName[],VARIANT rgValue[]);
204   void __RPC_STUB ISubscriptionItem_ReadProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
205   HRESULT WINAPI ISubscriptionItem_WriteProperties_Proxy(ISubscriptionItem *This,ULONG nCount,const LPCWSTR rgwszName[],const VARIANT rgValue[]);
206   void __RPC_STUB ISubscriptionItem_WriteProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
207   HRESULT WINAPI ISubscriptionItem_EnumProperties_Proxy(ISubscriptionItem *This,IEnumItemProperties **ppEnumItemProperties);
208   void __RPC_STUB ISubscriptionItem_EnumProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
209   HRESULT WINAPI ISubscriptionItem_NotifyChanged_Proxy(ISubscriptionItem *This);
210   void __RPC_STUB ISubscriptionItem_NotifyChanged_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
211 #endif
212 
213 #ifndef __IEnumSubscription_INTERFACE_DEFINED__
214 #define __IEnumSubscription_INTERFACE_DEFINED__
215   typedef IEnumSubscription *LPENUMSUBSCRIPTION;
216 
217   EXTERN_C const IID IID_IEnumSubscription;
218 #if defined(__cplusplus) && !defined(CINTERFACE)
219   struct IEnumSubscription : public IUnknown {
220   public:
221     virtual HRESULT WINAPI Next(ULONG celt,SUBSCRIPTIONCOOKIE *rgelt,ULONG *pceltFetched) = 0;
222     virtual HRESULT WINAPI Skip(ULONG celt) = 0;
223     virtual HRESULT WINAPI Reset(void) = 0;
224     virtual HRESULT WINAPI Clone(IEnumSubscription **ppenum) = 0;
225     virtual HRESULT WINAPI GetCount(ULONG *pnCount) = 0;
226   };
227 #else
228   typedef struct IEnumSubscriptionVtbl {
229     BEGIN_INTERFACE
230       HRESULT (WINAPI *QueryInterface)(IEnumSubscription *This,REFIID riid,void **ppvObject);
231       ULONG (WINAPI *AddRef)(IEnumSubscription *This);
232       ULONG (WINAPI *Release)(IEnumSubscription *This);
233       HRESULT (WINAPI *Next)(IEnumSubscription *This,ULONG celt,SUBSCRIPTIONCOOKIE *rgelt,ULONG *pceltFetched);
234       HRESULT (WINAPI *Skip)(IEnumSubscription *This,ULONG celt);
235       HRESULT (WINAPI *Reset)(IEnumSubscription *This);
236       HRESULT (WINAPI *Clone)(IEnumSubscription *This,IEnumSubscription **ppenum);
237       HRESULT (WINAPI *GetCount)(IEnumSubscription *This,ULONG *pnCount);
238     END_INTERFACE
239   } IEnumSubscriptionVtbl;
240   struct IEnumSubscription {
241     CONST_VTBL struct IEnumSubscriptionVtbl *lpVtbl;
242   };
243 #ifdef COBJMACROS
244 #define IEnumSubscription_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
245 #define IEnumSubscription_AddRef(This) (This)->lpVtbl->AddRef(This)
246 #define IEnumSubscription_Release(This) (This)->lpVtbl->Release(This)
247 #define IEnumSubscription_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
248 #define IEnumSubscription_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
249 #define IEnumSubscription_Reset(This) (This)->lpVtbl->Reset(This)
250 #define IEnumSubscription_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
251 #define IEnumSubscription_GetCount(This,pnCount) (This)->lpVtbl->GetCount(This,pnCount)
252 #endif
253 #endif
254   HRESULT WINAPI IEnumSubscription_Next_Proxy(IEnumSubscription *This,ULONG celt,SUBSCRIPTIONCOOKIE *rgelt,ULONG *pceltFetched);
255   void __RPC_STUB IEnumSubscription_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
256   HRESULT WINAPI IEnumSubscription_Skip_Proxy(IEnumSubscription *This,ULONG celt);
257   void __RPC_STUB IEnumSubscription_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
258   HRESULT WINAPI IEnumSubscription_Reset_Proxy(IEnumSubscription *This);
259   void __RPC_STUB IEnumSubscription_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
260   HRESULT WINAPI IEnumSubscription_Clone_Proxy(IEnumSubscription *This,IEnumSubscription **ppenum);
261   void __RPC_STUB IEnumSubscription_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
262   HRESULT WINAPI IEnumSubscription_GetCount_Proxy(IEnumSubscription *This,ULONG *pnCount);
263   void __RPC_STUB IEnumSubscription_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
264 #endif
265 
266 #ifndef __SubscriptionMgr_LIBRARY_DEFINED__
267 #define __SubscriptionMgr_LIBRARY_DEFINED__
268   EXTERN_C const IID LIBID_SubscriptionMgr;
269 #ifndef __ISubscriptionMgr_INTERFACE_DEFINED__
270 #define __ISubscriptionMgr_INTERFACE_DEFINED__
271   typedef enum SUBSCRIPTIONTYPE {
272     SUBSTYPE_URL = 0,SUBSTYPE_CHANNEL = 1,SUBSTYPE_DESKTOPURL = 2,SUBSTYPE_EXTERNAL = 3,SUBSTYPE_DESKTOPCHANNEL = 4
273   } SUBSCRIPTIONTYPE;
274 
275   typedef enum SUBSCRIPTIONINFOFLAGS {
276     SUBSINFO_SCHEDULE = 0x1,SUBSINFO_RECURSE = 0x2,SUBSINFO_WEBCRAWL = 0x4,SUBSINFO_MAILNOT = 0x8,
277     SUBSINFO_MAXSIZEKB = 0x10,SUBSINFO_USER = 0x20,SUBSINFO_PASSWORD = 0x40,SUBSINFO_TASKFLAGS = 0x100,
278     SUBSINFO_GLEAM = 0x200,SUBSINFO_CHANGESONLY = 0x400,SUBSINFO_CHANNELFLAGS = 0x800,SUBSINFO_FRIENDLYNAME = 0x2000,
279     SUBSINFO_NEEDPASSWORD = 0x4000,SUBSINFO_TYPE = 0x8000
280   } SUBSCRIPTIONINFOFLAGS;
281 
282 #define SUBSINFO_ALLFLAGS 0x0000EF7F
283 
284   typedef enum CREATESUBSCRIPTIONFLAGS {
285     CREATESUBS_ADDTOFAVORITES = 0x1,CREATESUBS_FROMFAVORITES = 0x2,CREATESUBS_NOUI = 0x4,CREATESUBS_NOSAVE = 0x8,
286     CREATESUBS_SOFTWAREUPDATE = 0x10
287   } CREATESUBSCRIPTIONFLAGS;
288 
289   typedef enum SUBSCRIPTIONSCHEDULE {
290     SUBSSCHED_AUTO = 0,SUBSSCHED_DAILY = 1,SUBSSCHED_WEEKLY = 2,SUBSSCHED_CUSTOM = 3,SUBSSCHED_MANUAL = 4
291   } SUBSCRIPTIONSCHEDULE;
292 
293   typedef struct _tagSubscriptionInfo {
294     DWORD cbSize;
295     DWORD fUpdateFlags;
296     SUBSCRIPTIONSCHEDULE schedule;
297     CLSID customGroupCookie;
298     LPVOID pTrigger;
299     DWORD dwRecurseLevels;
300     DWORD fWebcrawlerFlags;
301     WINBOOL bMailNotification;
302     WINBOOL bGleam;
303     WINBOOL bChangesOnly;
304     WINBOOL bNeedPassword;
305     DWORD fChannelFlags;
306     BSTR bstrUserName;
307     BSTR bstrPassword;
308     BSTR bstrFriendlyName;
309     DWORD dwMaxSizeKB;
310     SUBSCRIPTIONTYPE subType;
311     DWORD fTaskFlags;
312     DWORD dwReserved;
313   } SUBSCRIPTIONINFO;
314 
315   typedef struct _tagSubscriptionInfo *LPSUBSCRIPTIONINFO;
316   typedef struct _tagSubscriptionInfo *PSUBSCRIPTIONINFO;
317 
318   EXTERN_C const IID IID_ISubscriptionMgr;
319 #if defined(__cplusplus) && !defined(CINTERFACE)
320   struct ISubscriptionMgr : public IUnknown {
321   public:
322     virtual HRESULT WINAPI DeleteSubscription(LPCWSTR pwszURL,HWND hwnd) = 0;
323     virtual HRESULT WINAPI UpdateSubscription(LPCWSTR pwszURL) = 0;
324     virtual HRESULT WINAPI UpdateAll(void) = 0;
325     virtual HRESULT WINAPI IsSubscribed(LPCWSTR pwszURL,WINBOOL *pfSubscribed) = 0;
326     virtual HRESULT WINAPI GetSubscriptionInfo(LPCWSTR pwszURL,SUBSCRIPTIONINFO *pInfo) = 0;
327     virtual HRESULT WINAPI GetDefaultInfo(SUBSCRIPTIONTYPE subType,SUBSCRIPTIONINFO *pInfo) = 0;
328     virtual HRESULT WINAPI ShowSubscriptionProperties(LPCWSTR pwszURL,HWND hwnd) = 0;
329     virtual HRESULT WINAPI CreateSubscription(HWND hwnd,LPCWSTR pwszURL,LPCWSTR pwszFriendlyName,DWORD dwFlags,SUBSCRIPTIONTYPE subsType,SUBSCRIPTIONINFO *pInfo) = 0;
330   };
331 #else
332   typedef struct ISubscriptionMgrVtbl {
333     BEGIN_INTERFACE
334       HRESULT (WINAPI *QueryInterface)(ISubscriptionMgr *This,REFIID riid,void **ppvObject);
335       ULONG (WINAPI *AddRef)(ISubscriptionMgr *This);
336       ULONG (WINAPI *Release)(ISubscriptionMgr *This);
337       HRESULT (WINAPI *DeleteSubscription)(ISubscriptionMgr *This,LPCWSTR pwszURL,HWND hwnd);
338       HRESULT (WINAPI *UpdateSubscription)(ISubscriptionMgr *This,LPCWSTR pwszURL);
339       HRESULT (WINAPI *UpdateAll)(ISubscriptionMgr *This);
340       HRESULT (WINAPI *IsSubscribed)(ISubscriptionMgr *This,LPCWSTR pwszURL,WINBOOL *pfSubscribed);
341       HRESULT (WINAPI *GetSubscriptionInfo)(ISubscriptionMgr *This,LPCWSTR pwszURL,SUBSCRIPTIONINFO *pInfo);
342       HRESULT (WINAPI *GetDefaultInfo)(ISubscriptionMgr *This,SUBSCRIPTIONTYPE subType,SUBSCRIPTIONINFO *pInfo);
343       HRESULT (WINAPI *ShowSubscriptionProperties)(ISubscriptionMgr *This,LPCWSTR pwszURL,HWND hwnd);
344       HRESULT (WINAPI *CreateSubscription)(ISubscriptionMgr *This,HWND hwnd,LPCWSTR pwszURL,LPCWSTR pwszFriendlyName,DWORD dwFlags,SUBSCRIPTIONTYPE subsType,SUBSCRIPTIONINFO *pInfo);
345     END_INTERFACE
346   } ISubscriptionMgrVtbl;
347   struct ISubscriptionMgr {
348     CONST_VTBL struct ISubscriptionMgrVtbl *lpVtbl;
349   };
350 #ifdef COBJMACROS
351 #define ISubscriptionMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
352 #define ISubscriptionMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
353 #define ISubscriptionMgr_Release(This) (This)->lpVtbl->Release(This)
354 #define ISubscriptionMgr_DeleteSubscription(This,pwszURL,hwnd) (This)->lpVtbl->DeleteSubscription(This,pwszURL,hwnd)
355 #define ISubscriptionMgr_UpdateSubscription(This,pwszURL) (This)->lpVtbl->UpdateSubscription(This,pwszURL)
356 #define ISubscriptionMgr_UpdateAll(This) (This)->lpVtbl->UpdateAll(This)
357 #define ISubscriptionMgr_IsSubscribed(This,pwszURL,pfSubscribed) (This)->lpVtbl->IsSubscribed(This,pwszURL,pfSubscribed)
358 #define ISubscriptionMgr_GetSubscriptionInfo(This,pwszURL,pInfo) (This)->lpVtbl->GetSubscriptionInfo(This,pwszURL,pInfo)
359 #define ISubscriptionMgr_GetDefaultInfo(This,subType,pInfo) (This)->lpVtbl->GetDefaultInfo(This,subType,pInfo)
360 #define ISubscriptionMgr_ShowSubscriptionProperties(This,pwszURL,hwnd) (This)->lpVtbl->ShowSubscriptionProperties(This,pwszURL,hwnd)
361 #define ISubscriptionMgr_CreateSubscription(This,hwnd,pwszURL,pwszFriendlyName,dwFlags,subsType,pInfo) (This)->lpVtbl->CreateSubscription(This,hwnd,pwszURL,pwszFriendlyName,dwFlags,subsType,pInfo)
362 #endif
363 #endif
364   HRESULT WINAPI ISubscriptionMgr_DeleteSubscription_Proxy(ISubscriptionMgr *This,LPCWSTR pwszURL,HWND hwnd);
365   void __RPC_STUB ISubscriptionMgr_DeleteSubscription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
366   HRESULT WINAPI ISubscriptionMgr_UpdateSubscription_Proxy(ISubscriptionMgr *This,LPCWSTR pwszURL);
367   void __RPC_STUB ISubscriptionMgr_UpdateSubscription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
368   HRESULT WINAPI ISubscriptionMgr_UpdateAll_Proxy(ISubscriptionMgr *This);
369   void __RPC_STUB ISubscriptionMgr_UpdateAll_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
370   HRESULT WINAPI ISubscriptionMgr_IsSubscribed_Proxy(ISubscriptionMgr *This,LPCWSTR pwszURL,WINBOOL *pfSubscribed);
371   void __RPC_STUB ISubscriptionMgr_IsSubscribed_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
372   HRESULT WINAPI ISubscriptionMgr_GetSubscriptionInfo_Proxy(ISubscriptionMgr *This,LPCWSTR pwszURL,SUBSCRIPTIONINFO *pInfo);
373   void __RPC_STUB ISubscriptionMgr_GetSubscriptionInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
374   HRESULT WINAPI ISubscriptionMgr_GetDefaultInfo_Proxy(ISubscriptionMgr *This,SUBSCRIPTIONTYPE subType,SUBSCRIPTIONINFO *pInfo);
375   void __RPC_STUB ISubscriptionMgr_GetDefaultInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
376   HRESULT WINAPI ISubscriptionMgr_ShowSubscriptionProperties_Proxy(ISubscriptionMgr *This,LPCWSTR pwszURL,HWND hwnd);
377   void __RPC_STUB ISubscriptionMgr_ShowSubscriptionProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
378   HRESULT WINAPI ISubscriptionMgr_CreateSubscription_Proxy(ISubscriptionMgr *This,HWND hwnd,LPCWSTR pwszURL,LPCWSTR pwszFriendlyName,DWORD dwFlags,SUBSCRIPTIONTYPE subsType,SUBSCRIPTIONINFO *pInfo);
379   void __RPC_STUB ISubscriptionMgr_CreateSubscription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
380 #endif
381 
382 #ifndef __ISubscriptionMgr2_INTERFACE_DEFINED__
383 #define __ISubscriptionMgr2_INTERFACE_DEFINED__
384 
385 #define RS_READY 0x00000001
386 #define RS_SUSPENDED 0x00000002
387 #define RS_UPDATING 0x00000004
388 #define RS_SUSPENDONIDLE 0x00010000
389 #define RS_MAYBOTHERUSER 0x00020000
390 #define RS_COMPLETED 0x80000000
391 
392 #define SUBSMGRUPDATE_MINIMIZE 0x00000001
393 #define SUBSMGRUPDATE_MASK 0x00000001
394 #define SUBSMGRENUM_TEMP 0x00000001
395 #define SUBSMGRENUM_MASK 0x00000001
396 
397   EXTERN_C const IID IID_ISubscriptionMgr2;
398 #if defined(__cplusplus) && !defined(CINTERFACE)
399   struct ISubscriptionMgr2 : public ISubscriptionMgr {
400   public:
401     virtual HRESULT WINAPI GetItemFromURL(LPCWSTR pwszURL,ISubscriptionItem **ppSubscriptionItem) = 0;
402     virtual HRESULT WINAPI GetItemFromCookie(const SUBSCRIPTIONCOOKIE *pSubscriptionCookie,ISubscriptionItem **ppSubscriptionItem) = 0;
403     virtual HRESULT WINAPI GetSubscriptionRunState(DWORD dwNumCookies,const SUBSCRIPTIONCOOKIE *pCookies,DWORD *pdwRunState) = 0;
404     virtual HRESULT WINAPI EnumSubscriptions(DWORD dwFlags,IEnumSubscription **ppEnumSubscriptions) = 0;
405     virtual HRESULT WINAPI UpdateItems(DWORD dwFlags,DWORD dwNumCookies,const SUBSCRIPTIONCOOKIE *pCookies) = 0;
406     virtual HRESULT WINAPI AbortItems(DWORD dwNumCookies,const SUBSCRIPTIONCOOKIE *pCookies) = 0;
407     virtual HRESULT WINAPI AbortAll(void) = 0;
408   };
409 #else
410   typedef struct ISubscriptionMgr2Vtbl {
411     BEGIN_INTERFACE
412       HRESULT (WINAPI *QueryInterface)(ISubscriptionMgr2 *This,REFIID riid,void **ppvObject);
413       ULONG (WINAPI *AddRef)(ISubscriptionMgr2 *This);
414       ULONG (WINAPI *Release)(ISubscriptionMgr2 *This);
415       HRESULT (WINAPI *DeleteSubscription)(ISubscriptionMgr2 *This,LPCWSTR pwszURL,HWND hwnd);
416       HRESULT (WINAPI *UpdateSubscription)(ISubscriptionMgr2 *This,LPCWSTR pwszURL);
417       HRESULT (WINAPI *UpdateAll)(ISubscriptionMgr2 *This);
418       HRESULT (WINAPI *IsSubscribed)(ISubscriptionMgr2 *This,LPCWSTR pwszURL,WINBOOL *pfSubscribed);
419       HRESULT (WINAPI *GetSubscriptionInfo)(ISubscriptionMgr2 *This,LPCWSTR pwszURL,SUBSCRIPTIONINFO *pInfo);
420       HRESULT (WINAPI *GetDefaultInfo)(ISubscriptionMgr2 *This,SUBSCRIPTIONTYPE subType,SUBSCRIPTIONINFO *pInfo);
421       HRESULT (WINAPI *ShowSubscriptionProperties)(ISubscriptionMgr2 *This,LPCWSTR pwszURL,HWND hwnd);
422       HRESULT (WINAPI *CreateSubscription)(ISubscriptionMgr2 *This,HWND hwnd,LPCWSTR pwszURL,LPCWSTR pwszFriendlyName,DWORD dwFlags,SUBSCRIPTIONTYPE subsType,SUBSCRIPTIONINFO *pInfo);
423       HRESULT (WINAPI *GetItemFromURL)(ISubscriptionMgr2 *This,LPCWSTR pwszURL,ISubscriptionItem **ppSubscriptionItem);
424       HRESULT (WINAPI *GetItemFromCookie)(ISubscriptionMgr2 *This,const SUBSCRIPTIONCOOKIE *pSubscriptionCookie,ISubscriptionItem **ppSubscriptionItem);
425       HRESULT (WINAPI *GetSubscriptionRunState)(ISubscriptionMgr2 *This,DWORD dwNumCookies,const SUBSCRIPTIONCOOKIE *pCookies,DWORD *pdwRunState);
426       HRESULT (WINAPI *EnumSubscriptions)(ISubscriptionMgr2 *This,DWORD dwFlags,IEnumSubscription **ppEnumSubscriptions);
427       HRESULT (WINAPI *UpdateItems)(ISubscriptionMgr2 *This,DWORD dwFlags,DWORD dwNumCookies,const SUBSCRIPTIONCOOKIE *pCookies);
428       HRESULT (WINAPI *AbortItems)(ISubscriptionMgr2 *This,DWORD dwNumCookies,const SUBSCRIPTIONCOOKIE *pCookies);
429       HRESULT (WINAPI *AbortAll)(ISubscriptionMgr2 *This);
430     END_INTERFACE
431   } ISubscriptionMgr2Vtbl;
432   struct ISubscriptionMgr2 {
433     CONST_VTBL struct ISubscriptionMgr2Vtbl *lpVtbl;
434   };
435 #ifdef COBJMACROS
436 #define ISubscriptionMgr2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
437 #define ISubscriptionMgr2_AddRef(This) (This)->lpVtbl->AddRef(This)
438 #define ISubscriptionMgr2_Release(This) (This)->lpVtbl->Release(This)
439 #define ISubscriptionMgr2_DeleteSubscription(This,pwszURL,hwnd) (This)->lpVtbl->DeleteSubscription(This,pwszURL,hwnd)
440 #define ISubscriptionMgr2_UpdateSubscription(This,pwszURL) (This)->lpVtbl->UpdateSubscription(This,pwszURL)
441 #define ISubscriptionMgr2_UpdateAll(This) (This)->lpVtbl->UpdateAll(This)
442 #define ISubscriptionMgr2_IsSubscribed(This,pwszURL,pfSubscribed) (This)->lpVtbl->IsSubscribed(This,pwszURL,pfSubscribed)
443 #define ISubscriptionMgr2_GetSubscriptionInfo(This,pwszURL,pInfo) (This)->lpVtbl->GetSubscriptionInfo(This,pwszURL,pInfo)
444 #define ISubscriptionMgr2_GetDefaultInfo(This,subType,pInfo) (This)->lpVtbl->GetDefaultInfo(This,subType,pInfo)
445 #define ISubscriptionMgr2_ShowSubscriptionProperties(This,pwszURL,hwnd) (This)->lpVtbl->ShowSubscriptionProperties(This,pwszURL,hwnd)
446 #define ISubscriptionMgr2_CreateSubscription(This,hwnd,pwszURL,pwszFriendlyName,dwFlags,subsType,pInfo) (This)->lpVtbl->CreateSubscription(This,hwnd,pwszURL,pwszFriendlyName,dwFlags,subsType,pInfo)
447 #define ISubscriptionMgr2_GetItemFromURL(This,pwszURL,ppSubscriptionItem) (This)->lpVtbl->GetItemFromURL(This,pwszURL,ppSubscriptionItem)
448 #define ISubscriptionMgr2_GetItemFromCookie(This,pSubscriptionCookie,ppSubscriptionItem) (This)->lpVtbl->GetItemFromCookie(This,pSubscriptionCookie,ppSubscriptionItem)
449 #define ISubscriptionMgr2_GetSubscriptionRunState(This,dwNumCookies,pCookies,pdwRunState) (This)->lpVtbl->GetSubscriptionRunState(This,dwNumCookies,pCookies,pdwRunState)
450 #define ISubscriptionMgr2_EnumSubscriptions(This,dwFlags,ppEnumSubscriptions) (This)->lpVtbl->EnumSubscriptions(This,dwFlags,ppEnumSubscriptions)
451 #define ISubscriptionMgr2_UpdateItems(This,dwFlags,dwNumCookies,pCookies) (This)->lpVtbl->UpdateItems(This,dwFlags,dwNumCookies,pCookies)
452 #define ISubscriptionMgr2_AbortItems(This,dwNumCookies,pCookies) (This)->lpVtbl->AbortItems(This,dwNumCookies,pCookies)
453 #define ISubscriptionMgr2_AbortAll(This) (This)->lpVtbl->AbortAll(This)
454 #endif
455 #endif
456   HRESULT WINAPI ISubscriptionMgr2_GetItemFromURL_Proxy(ISubscriptionMgr2 *This,LPCWSTR pwszURL,ISubscriptionItem **ppSubscriptionItem);
457   void __RPC_STUB ISubscriptionMgr2_GetItemFromURL_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
458   HRESULT WINAPI ISubscriptionMgr2_GetItemFromCookie_Proxy(ISubscriptionMgr2 *This,const SUBSCRIPTIONCOOKIE *pSubscriptionCookie,ISubscriptionItem **ppSubscriptionItem);
459   void __RPC_STUB ISubscriptionMgr2_GetItemFromCookie_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
460   HRESULT WINAPI ISubscriptionMgr2_GetSubscriptionRunState_Proxy(ISubscriptionMgr2 *This,DWORD dwNumCookies,const SUBSCRIPTIONCOOKIE *pCookies,DWORD *pdwRunState);
461   void __RPC_STUB ISubscriptionMgr2_GetSubscriptionRunState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
462   HRESULT WINAPI ISubscriptionMgr2_EnumSubscriptions_Proxy(ISubscriptionMgr2 *This,DWORD dwFlags,IEnumSubscription **ppEnumSubscriptions);
463   void __RPC_STUB ISubscriptionMgr2_EnumSubscriptions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
464   HRESULT WINAPI ISubscriptionMgr2_UpdateItems_Proxy(ISubscriptionMgr2 *This,DWORD dwFlags,DWORD dwNumCookies,const SUBSCRIPTIONCOOKIE *pCookies);
465   void __RPC_STUB ISubscriptionMgr2_UpdateItems_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
466   HRESULT WINAPI ISubscriptionMgr2_AbortItems_Proxy(ISubscriptionMgr2 *This,DWORD dwNumCookies,const SUBSCRIPTIONCOOKIE *pCookies);
467   void __RPC_STUB ISubscriptionMgr2_AbortItems_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
468   HRESULT WINAPI ISubscriptionMgr2_AbortAll_Proxy(ISubscriptionMgr2 *This);
469   void __RPC_STUB ISubscriptionMgr2_AbortAll_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
470 #endif
471 
472   EXTERN_C const CLSID CLSID_SubscriptionMgr;
473 #ifdef __cplusplus
474   class SubscriptionMgr;
475 #endif
476 #endif
477 
478   EXTERN_C const CLSID CLSID_WebCrawlerAgent;
479   EXTERN_C const CLSID CLSID_ChannelAgent;
480   EXTERN_C const CLSID CLSID_DialAgent;
481   EXTERN_C const CLSID CLSID_CDLAgent;
482   typedef enum DELIVERY_AGENT_FLAGS {
483     DELIVERY_AGENT_FLAG_NO_BROADCAST = 0x4,DELIVERY_AGENT_FLAG_NO_RESTRICTIONS = 0x8,DELIVERY_AGENT_FLAG_SILENT_DIAL = 0x10
484   } DELIVERY_AGENT_FLAGS;
485 
486   typedef enum WEBCRAWL_RECURSEFLAGS {
487     WEBCRAWL_DONT_MAKE_STICKY = 0x1,WEBCRAWL_GET_IMAGES = 0x2,WEBCRAWL_GET_VIDEOS = 0x4,WEBCRAWL_GET_BGSOUNDS = 0x8,WEBCRAWL_GET_CONTROLS = 0x10,
488     WEBCRAWL_LINKS_ELSEWHERE = 0x20,WEBCRAWL_IGNORE_ROBOTSTXT = 0x80,WEBCRAWL_ONLY_LINKS_TO_HTML = 0x100
489   } WEBCRAWL_RECURSEFLAGS;
490 
491   typedef enum CHANNEL_AGENT_FLAGS {
492     CHANNEL_AGENT_DYNAMIC_SCHEDULE = 0x1,CHANNEL_AGENT_PRECACHE_SOME = 0x2,CHANNEL_AGENT_PRECACHE_ALL = 0x4,CHANNEL_AGENT_PRECACHE_SCRNSAVER = 0x8
493   } CHANNEL_AGENT_FLAGS;
494 
495 #define INET_E_AGENT_MAX_SIZE_EXCEEDED _HRESULT_TYPEDEF_(0x800C0F80)
496 #define INET_S_AGENT_PART_FAIL _HRESULT_TYPEDEF_(0x000C0F81)
497 #define INET_E_AGENT_CACHE_SIZE_EXCEEDED _HRESULT_TYPEDEF_(0x800C0F82)
498 #define INET_E_AGENT_CONNECTION_FAILED _HRESULT_TYPEDEF_(0x800C0F83)
499 #define INET_E_SCHEDULED_UPDATES_DISABLED _HRESULT_TYPEDEF_(0x800C0F84)
500 #define INET_E_SCHEDULED_UPDATES_RESTRICTED _HRESULT_TYPEDEF_(0x800C0F85)
501 #define INET_E_SCHEDULED_UPDATE_INTERVAL _HRESULT_TYPEDEF_(0x800C0F86)
502 #define INET_E_SCHEDULED_EXCLUDE_RANGE _HRESULT_TYPEDEF_(0x800C0F87)
503 #define INET_E_AGENT_EXCEEDING_CACHE_SIZE _HRESULT_TYPEDEF_(0x800C0F90)
504 #define INET_S_AGENT_INCREASED_CACHE_SIZE _HRESULT_TYPEDEF_(0x000C0F90)
505 
506   extern RPC_IF_HANDLE __MIDL_itf_subsmgr_0268_v0_0_c_ifspec;
507   extern RPC_IF_HANDLE __MIDL_itf_subsmgr_0268_v0_0_s_ifspec;
508 
509   ULONG __RPC_API VARIANT_UserSize(ULONG *,ULONG,VARIANT *);
510   unsigned char *__RPC_API VARIANT_UserMarshal(ULONG *,unsigned char *,VARIANT *);
511   unsigned char *__RPC_API VARIANT_UserUnmarshal(ULONG *,unsigned char *,VARIANT *);
512   void __RPC_API VARIANT_UserFree(ULONG *,VARIANT *);
513 
514 #ifdef __cplusplus
515 }
516 #endif
517 #endif
518