Add some GUIDs from the win2k DDK that are used for USB devices.
[wine] / include / urlmon.h
1 /*** Autogenerated by WIDL 0.1 from urlmon.idl - Do not edit ***/
2 #include <rpc.h>
3 #include <rpcndr.h>
4
5 #ifndef __WIDL_URLMON_H
6 #define __WIDL_URLMON_H
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #include <objidl.h>
11 #include <oleidl.h>
12 #include <servprov.h>
13 #ifndef __IBinding_FWD_DEFINED__
14 #define __IBinding_FWD_DEFINED__
15 typedef struct IBinding IBinding;
16 #endif
17
18 typedef IBinding *LPBINDING;
19
20 /*****************************************************************************
21  * IBinding interface
22  */
23 #ifndef __IBinding_INTERFACE_DEFINED__
24 #define __IBinding_INTERFACE_DEFINED__
25
26 DEFINE_GUID(IID_IBinding, 0x79eac9c0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
27 #if defined(__cplusplus) && !defined(CINTERFACE)
28 struct IBinding : public IUnknown
29 {
30     virtual HRESULT STDMETHODCALLTYPE Abort(
31         ) = 0;
32
33     virtual HRESULT STDMETHODCALLTYPE Suspend(
34         ) = 0;
35
36     virtual HRESULT STDMETHODCALLTYPE Resume(
37         ) = 0;
38
39     virtual HRESULT STDMETHODCALLTYPE SetPriority(
40         LONG nPriority) = 0;
41
42     virtual HRESULT STDMETHODCALLTYPE GetPriority(
43         LONG* pnPriority) = 0;
44
45     virtual HRESULT STDMETHODCALLTYPE GetBindResult(
46         CLSID* pclsidProtocol,
47         DWORD* pdwResult,
48         LPOLESTR* pszResult,
49         DWORD* pdwReserved) = 0;
50
51 };
52 #else
53 typedef struct IBindingVtbl IBindingVtbl;
54 struct IBinding {
55     const IBindingVtbl* lpVtbl;
56 };
57 struct IBindingVtbl {
58     ICOM_MSVTABLE_COMPAT_FIELDS
59
60     /*** IUnknown methods ***/
61     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
62         IBinding* This,
63         REFIID riid,
64         void** ppvObject);
65
66     ULONG (STDMETHODCALLTYPE *AddRef)(
67         IBinding* This);
68
69     ULONG (STDMETHODCALLTYPE *Release)(
70         IBinding* This);
71
72     /*** IBinding methods ***/
73     HRESULT (STDMETHODCALLTYPE *Abort)(
74         IBinding* This);
75
76     HRESULT (STDMETHODCALLTYPE *Suspend)(
77         IBinding* This);
78
79     HRESULT (STDMETHODCALLTYPE *Resume)(
80         IBinding* This);
81
82     HRESULT (STDMETHODCALLTYPE *SetPriority)(
83         IBinding* This,
84         LONG nPriority);
85
86     HRESULT (STDMETHODCALLTYPE *GetPriority)(
87         IBinding* This,
88         LONG* pnPriority);
89
90     HRESULT (STDMETHODCALLTYPE *GetBindResult)(
91         IBinding* This,
92         CLSID* pclsidProtocol,
93         DWORD* pdwResult,
94         LPOLESTR* pszResult,
95         DWORD* pdwReserved);
96
97 };
98
99 #ifdef COBJMACROS
100 /*** IUnknown methods ***/
101 #define IBinding_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
102 #define IBinding_AddRef(p) (p)->lpVtbl->AddRef(p)
103 #define IBinding_Release(p) (p)->lpVtbl->Release(p)
104 /*** IBinding methods ***/
105 #define IBinding_Abort(p) (p)->lpVtbl->Abort(p)
106 #define IBinding_Suspend(p) (p)->lpVtbl->Suspend(p)
107 #define IBinding_Resume(p) (p)->lpVtbl->Resume(p)
108 #define IBinding_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
109 #define IBinding_GetPriority(p,a) (p)->lpVtbl->GetPriority(p,a)
110 #define IBinding_GetBindResult(p,a,b,c,d) (p)->lpVtbl->GetBindResult(p,a,b,c,d)
111 #endif
112
113 #endif
114
115 #define IBinding_METHODS \
116     ICOM_MSVTABLE_COMPAT_FIELDS \
117     /*** IUnknown methods ***/ \
118     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
119     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
120     STDMETHOD_(ULONG,Release)(THIS) PURE; \
121     /*** IBinding methods ***/ \
122     STDMETHOD_(HRESULT,Abort)(THIS) PURE; \
123     STDMETHOD_(HRESULT,Suspend)(THIS) PURE; \
124     STDMETHOD_(HRESULT,Resume)(THIS) PURE; \
125     STDMETHOD_(HRESULT,SetPriority)(THIS_ LONG nPriority) PURE; \
126     STDMETHOD_(HRESULT,GetPriority)(THIS_ LONG* pnPriority) PURE; \
127     STDMETHOD_(HRESULT,GetBindResult)(THIS_ CLSID* pclsidProtocol, DWORD* pdwResult, LPOLESTR* pszResult, DWORD* pdwReserved) PURE;
128
129 HRESULT CALLBACK IBinding_Abort_Proxy(
130     IBinding* This);
131 void __RPC_STUB IBinding_Abort_Stub(
132     struct IRpcStubBuffer* This,
133     struct IRpcChannelBuffer* pRpcChannelBuffer,
134     PRPC_MESSAGE pRpcMessage,
135     DWORD* pdwStubPhase);
136 HRESULT CALLBACK IBinding_Suspend_Proxy(
137     IBinding* This);
138 void __RPC_STUB IBinding_Suspend_Stub(
139     struct IRpcStubBuffer* This,
140     struct IRpcChannelBuffer* pRpcChannelBuffer,
141     PRPC_MESSAGE pRpcMessage,
142     DWORD* pdwStubPhase);
143 HRESULT CALLBACK IBinding_Resume_Proxy(
144     IBinding* This);
145 void __RPC_STUB IBinding_Resume_Stub(
146     struct IRpcStubBuffer* This,
147     struct IRpcChannelBuffer* pRpcChannelBuffer,
148     PRPC_MESSAGE pRpcMessage,
149     DWORD* pdwStubPhase);
150 HRESULT CALLBACK IBinding_SetPriority_Proxy(
151     IBinding* This,
152     LONG nPriority);
153 void __RPC_STUB IBinding_SetPriority_Stub(
154     struct IRpcStubBuffer* This,
155     struct IRpcChannelBuffer* pRpcChannelBuffer,
156     PRPC_MESSAGE pRpcMessage,
157     DWORD* pdwStubPhase);
158 HRESULT CALLBACK IBinding_GetPriority_Proxy(
159     IBinding* This,
160     LONG* pnPriority);
161 void __RPC_STUB IBinding_GetPriority_Stub(
162     struct IRpcStubBuffer* This,
163     struct IRpcChannelBuffer* pRpcChannelBuffer,
164     PRPC_MESSAGE pRpcMessage,
165     DWORD* pdwStubPhase);
166 HRESULT CALLBACK IBinding_RemoteGetBindResult_Proxy(
167     IBinding* This,
168     CLSID* pclsidProtocol,
169     DWORD* pdwResult,
170     LPOLESTR* pszResult,
171     DWORD dwReserved);
172 void __RPC_STUB IBinding_RemoteGetBindResult_Stub(
173     struct IRpcStubBuffer* This,
174     struct IRpcChannelBuffer* pRpcChannelBuffer,
175     PRPC_MESSAGE pRpcMessage,
176     DWORD* pdwStubPhase);
177 HRESULT CALLBACK IBinding_GetBindResult_Proxy(
178     IBinding* This,
179     CLSID* pclsidProtocol,
180     DWORD* pdwResult,
181     LPOLESTR* pszResult,
182     DWORD* pdwReserved);
183 HRESULT __RPC_STUB IBinding_GetBindResult_Stub(
184     IBinding* This,
185     CLSID* pclsidProtocol,
186     DWORD* pdwResult,
187     LPOLESTR* pszResult,
188     DWORD dwReserved);
189
190 #endif  /* __IBinding_INTERFACE_DEFINED__ */
191
192 #ifndef __IBindStatusCallback_FWD_DEFINED__
193 #define __IBindStatusCallback_FWD_DEFINED__
194 typedef struct IBindStatusCallback IBindStatusCallback;
195 #endif
196
197 typedef IBindStatusCallback *LPBINDSTATUSCALLBACK;
198
199 typedef enum {
200     BINDF_ASYNCHRONOUS = 0x1,
201     BINDF_ASYNCSTORAGE = 0x2,
202     BINDF_NOPROGRESSIVERENDERING = 0x4,
203     BINDF_OFFLINEOPERATION = 0x8,
204     BINDF_GETNEWESTVERSION = 0x10,
205     BINDF_NOWRITECACHE = 0x20,
206     BINDF_NEEDFILE = 0x40,
207     BINDF_PULLDATA = 0x80,
208     BINDF_IGNORESECURITYPROBLEM = 0x100,
209     BINDF_RESYNCHRONIZE = 0x200,
210     BINDF_HYPERLINK = 0x400,
211     BINDF_NO_UI = 0x800,
212     BINDF_SILENTOPERATION = 0x1000,
213     BINDF_PRAGMA_NO_CACHE = 0x2000,
214     BINDF_GETCLASSOBJECT = 0x4000,
215     BINDF_RESERVED_1 = 0x8000,
216     BINDF_FREE_THREADED = 0x10000,
217     BINDF_DIRECT_READ = 0x20000,
218     BINDF_FORMS_SUBMIT = 0x40000,
219     BINDF_GETFROMCACHE_IF_NET_FAIL = 0x80000,
220     BINDF_FROMURLMON = 0x100000,
221     BINDF_FWD_BACK = 0x200000,
222     BINDF_PREFERDEFAULTHANDLER = 0x400000,
223     BINDF_ENFORCERESTRICTED = 0x800000
224 } BINDF;
225
226 typedef struct _tagBINDINFO {
227     ULONG cbSize;
228     LPWSTR szExtraInfo;
229     STGMEDIUM stgmedData;
230     DWORD grfBindInfoF;
231     DWORD dwBindVerb;
232     LPWSTR szCustomVerb;
233     DWORD cbStgmedData;
234     DWORD dwOptions;
235     DWORD dwOptionsFlags;
236     DWORD dwCodePage;
237     SECURITY_ATTRIBUTES securityAttributes;
238     IID iid;
239     IUnknown *pUnk;
240     DWORD dwReserved;
241 } BINDINFO;
242
243 typedef struct _REMSECURITY_ATTRIBUTES {
244     DWORD nLength;
245     DWORD lpSecurityDescriptor;
246     BOOL bInheritHandle;
247 } REMSECURITY_ATTRIBUTES, *PREMSECURITY_ATTRIBUTES, *LPREMSECURITY_ATTRIBUTES;
248
249 typedef struct _tagRemBINDINFO {
250     ULONG cbSize;
251     LPWSTR szExtraInfo;
252     DWORD grfBindInfoF;
253     DWORD dwBindVerb;
254     LPWSTR szCustomVerb;
255     DWORD cbstgmedData;
256     DWORD dwOptions;
257     DWORD dwOptionsFlags;
258     DWORD dwCodePage;
259     REMSECURITY_ATTRIBUTES securityAttributes;
260     IID iid;
261     IUnknown *pUnk;
262     DWORD dwReserved;
263 } RemBINDINFO;
264
265 typedef struct tagRemFORMATETC {
266     DWORD cfFormat;
267     DWORD ptd;
268     DWORD dwAspect;
269     LONG lindex;
270     DWORD tymed;
271 } RemFORMATETC, *LPREMFORMATETC;
272
273 typedef enum {
274     BSCF_FIRSTDATANOTIFICATION = 0x1,
275     BSCF_INTERMEDIATEDATANOTIFICATION = 0x2,
276     BSCF_LASTDATANOTIFICATION = 0x4,
277     BSCF_DATAFULLYAVAILABLE = 0x8,
278     BSCF_AVAILABLEDATASIZEUNKNOWN = 0x10
279 } BSCF;
280
281 typedef enum BINDSTATUS {
282     BINDSTATUS_FINDINGRESOURCE = 1,
283     BINDSTATUS_CONNECTING,
284     BINDSTATUS_REDIRECTING,
285     BINDSTATUS_BEGINDOWNLOADDATA,
286     BINDSTATUS_DOWNLOADINGDATA,
287     BINDSTATUS_ENDDOWNLOADDATA,
288     BINDSTATUS_BEGINDOWNLOADCOMPONENTS,
289     BINDSTATUS_INSTALLINGCOMPONENTS,
290     BINDSTATUS_ENDDOWNLOADCOMPONENTS,
291     BINDSTATUS_USINGCACHEDCOPY,
292     BINDSTATUS_SENDINGREQUEST,
293     BINDSTATUS_CLASSIDAVAILABLE,
294     BINDSTATUS_MIMETYPEAVAILABLE,
295     BINDSTATUS_CACHEFILENAMEAVAILABLE,
296     BINDSTATUS_BEGINSYNCOPERATION,
297     BINDSTATUS_ENDSYNCOPERATION,
298     BINDSTATUS_BEGINUPLOADDATA,
299     BINDSTATUS_UPLOADINGDATA,
300     BINDSTATUS_ENDUPLOADINGDATA,
301     BINDSTATUS_PROTOCOLCLASSID,
302     BINDSTATUS_ENCODING,
303     BINDSTATUS_VERFIEDMIMETYPEAVAILABLE,
304     BINDSTATUS_CLASSINSTALLLOCATION,
305     BINDSTATUS_DECODING,
306     BINDSTATUS_LOADINGMIMEHANDLER,
307     BINDSTATUS_CONTENTDISPOSITIONATTACH,
308     BINDSTATUS_FILTERREPORTMIMETYPE,
309     BINDSTATUS_CLSIDCANINSTANTIATE,
310     BINDSTATUS_IUNKNOWNAVAILABLE,
311     BINDSTATUS_DIRECTBIND,
312     BINDSTATUS_RAWMIMETYPE,
313     BINDSTATUS_PROXYDETECTING,
314     BINDSTATUS_ACCEPTRANGES,
315     BINDSTATUS_COOKIE_SENT,
316     BINDSTATUS_COMPACT_POLICY_RECEIVED,
317     BINDSTATUS_COOKIE_SUPPRESSED,
318     BINDSTATUS_COOKIE_STATE_UNKNOWN,
319     BINDSTATUS_COOKIE_STATE_ACCEPT,
320     BINDSTATUS_COOKIE_STATE_REJECT,
321     BINDSTATUS_COOKIE_STATE_PROMPT,
322     BINDSTATUS_COOKIE_STATE_LEASH,
323     BINDSTATUS_COOKIE_STATE_DOWNGRADE,
324     BINDSTATUS_POLICY_HREF,
325     BINDSTATUS_P3P_HEADER,
326     BINDSTATUS_SESSION_COOKIE_RECEIVED,
327     BINDSTATUS_PERSISTENT_COOKIE_RECEIVED,
328     BINDSTATUS_SESSION_COOKIES_ALLOWED,
329     BINDSTATUS_CACHECONTROL
330 } BINDSTATUS;
331
332 /*****************************************************************************
333  * IBindStatusCallback interface
334  */
335 #ifndef __IBindStatusCallback_INTERFACE_DEFINED__
336 #define __IBindStatusCallback_INTERFACE_DEFINED__
337
338 DEFINE_GUID(IID_IBindStatusCallback, 0x79eac9c1, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
339 #if defined(__cplusplus) && !defined(CINTERFACE)
340 struct IBindStatusCallback : public IUnknown
341 {
342     virtual HRESULT STDMETHODCALLTYPE OnStartBinding(
343         DWORD dwReserved,
344         IBinding* pib) = 0;
345
346     virtual HRESULT STDMETHODCALLTYPE GetPriority(
347         LONG* pnPriority) = 0;
348
349     virtual HRESULT STDMETHODCALLTYPE OnLowResource(
350         DWORD reserved) = 0;
351
352     virtual HRESULT STDMETHODCALLTYPE OnProgress(
353         ULONG ulProgress,
354         ULONG ulProgressMax,
355         ULONG ulStatusCode,
356         LPCWSTR szStatusText) = 0;
357
358     virtual HRESULT STDMETHODCALLTYPE OnStopBinding(
359         HRESULT hresult,
360         LPCWSTR szError) = 0;
361
362     virtual HRESULT STDMETHODCALLTYPE GetBindInfo(
363         DWORD* grfBINDF,
364         BINDINFO* pbindinfo) = 0;
365
366     virtual HRESULT STDMETHODCALLTYPE OnDataAvailable(
367         DWORD grfBSCF,
368         DWORD dwSize,
369         FORMATETC* pformatetc,
370         STGMEDIUM* pstgmed) = 0;
371
372     virtual HRESULT STDMETHODCALLTYPE OnObjectAvailable(
373         REFIID riid,
374         IUnknown* punk) = 0;
375
376 };
377 #else
378 typedef struct IBindStatusCallbackVtbl IBindStatusCallbackVtbl;
379 struct IBindStatusCallback {
380     const IBindStatusCallbackVtbl* lpVtbl;
381 };
382 struct IBindStatusCallbackVtbl {
383     ICOM_MSVTABLE_COMPAT_FIELDS
384
385     /*** IUnknown methods ***/
386     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
387         IBindStatusCallback* This,
388         REFIID riid,
389         void** ppvObject);
390
391     ULONG (STDMETHODCALLTYPE *AddRef)(
392         IBindStatusCallback* This);
393
394     ULONG (STDMETHODCALLTYPE *Release)(
395         IBindStatusCallback* This);
396
397     /*** IBindStatusCallback methods ***/
398     HRESULT (STDMETHODCALLTYPE *OnStartBinding)(
399         IBindStatusCallback* This,
400         DWORD dwReserved,
401         IBinding* pib);
402
403     HRESULT (STDMETHODCALLTYPE *GetPriority)(
404         IBindStatusCallback* This,
405         LONG* pnPriority);
406
407     HRESULT (STDMETHODCALLTYPE *OnLowResource)(
408         IBindStatusCallback* This,
409         DWORD reserved);
410
411     HRESULT (STDMETHODCALLTYPE *OnProgress)(
412         IBindStatusCallback* This,
413         ULONG ulProgress,
414         ULONG ulProgressMax,
415         ULONG ulStatusCode,
416         LPCWSTR szStatusText);
417
418     HRESULT (STDMETHODCALLTYPE *OnStopBinding)(
419         IBindStatusCallback* This,
420         HRESULT hresult,
421         LPCWSTR szError);
422
423     HRESULT (STDMETHODCALLTYPE *GetBindInfo)(
424         IBindStatusCallback* This,
425         DWORD* grfBINDF,
426         BINDINFO* pbindinfo);
427
428     HRESULT (STDMETHODCALLTYPE *OnDataAvailable)(
429         IBindStatusCallback* This,
430         DWORD grfBSCF,
431         DWORD dwSize,
432         FORMATETC* pformatetc,
433         STGMEDIUM* pstgmed);
434
435     HRESULT (STDMETHODCALLTYPE *OnObjectAvailable)(
436         IBindStatusCallback* This,
437         REFIID riid,
438         IUnknown* punk);
439
440 };
441
442 #ifdef COBJMACROS
443 /*** IUnknown methods ***/
444 #define IBindStatusCallback_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
445 #define IBindStatusCallback_AddRef(p) (p)->lpVtbl->AddRef(p)
446 #define IBindStatusCallback_Release(p) (p)->lpVtbl->Release(p)
447 /*** IBindStatusCallback methods ***/
448 #define IBindStatusCallback_OnStartBinding(p,a,b) (p)->lpVtbl->OnStartBinding(p,a,b)
449 #define IBindStatusCallback_GetPriority(p,a) (p)->lpVtbl->GetPriority(p,a)
450 #define IBindStatusCallback_OnLowResource(p,a) (p)->lpVtbl->OnLowResource(p,a)
451 #define IBindStatusCallback_OnProgress(p,a,b,c,d) (p)->lpVtbl->OnProgress(p,a,b,c,d)
452 #define IBindStatusCallback_OnStopBinding(p,a,b) (p)->lpVtbl->OnStopBinding(p,a,b)
453 #define IBindStatusCallback_GetBindInfo(p,a,b) (p)->lpVtbl->GetBindInfo(p,a,b)
454 #define IBindStatusCallback_OnDataAvailable(p,a,b,c,d) (p)->lpVtbl->OnDataAvailable(p,a,b,c,d)
455 #define IBindStatusCallback_OnObjectAvailable(p,a,b) (p)->lpVtbl->OnObjectAvailable(p,a,b)
456 #endif
457
458 #endif
459
460 #define IBindStatusCallback_METHODS \
461     ICOM_MSVTABLE_COMPAT_FIELDS \
462     /*** IUnknown methods ***/ \
463     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
464     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
465     STDMETHOD_(ULONG,Release)(THIS) PURE; \
466     /*** IBindStatusCallback methods ***/ \
467     STDMETHOD_(HRESULT,OnStartBinding)(THIS_ DWORD dwReserved, IBinding* pib) PURE; \
468     STDMETHOD_(HRESULT,GetPriority)(THIS_ LONG* pnPriority) PURE; \
469     STDMETHOD_(HRESULT,OnLowResource)(THIS_ DWORD reserved) PURE; \
470     STDMETHOD_(HRESULT,OnProgress)(THIS_ ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText) PURE; \
471     STDMETHOD_(HRESULT,OnStopBinding)(THIS_ HRESULT hresult, LPCWSTR szError) PURE; \
472     STDMETHOD_(HRESULT,GetBindInfo)(THIS_ DWORD* grfBINDF, BINDINFO* pbindinfo) PURE; \
473     STDMETHOD_(HRESULT,OnDataAvailable)(THIS_ DWORD grfBSCF, DWORD dwSize, FORMATETC* pformatetc, STGMEDIUM* pstgmed) PURE; \
474     STDMETHOD_(HRESULT,OnObjectAvailable)(THIS_ REFIID riid, IUnknown* punk) PURE;
475
476 HRESULT CALLBACK IBindStatusCallback_OnStartBinding_Proxy(
477     IBindStatusCallback* This,
478     DWORD dwReserved,
479     IBinding* pib);
480 void __RPC_STUB IBindStatusCallback_OnStartBinding_Stub(
481     struct IRpcStubBuffer* This,
482     struct IRpcChannelBuffer* pRpcChannelBuffer,
483     PRPC_MESSAGE pRpcMessage,
484     DWORD* pdwStubPhase);
485 HRESULT CALLBACK IBindStatusCallback_GetPriority_Proxy(
486     IBindStatusCallback* This,
487     LONG* pnPriority);
488 void __RPC_STUB IBindStatusCallback_GetPriority_Stub(
489     struct IRpcStubBuffer* This,
490     struct IRpcChannelBuffer* pRpcChannelBuffer,
491     PRPC_MESSAGE pRpcMessage,
492     DWORD* pdwStubPhase);
493 HRESULT CALLBACK IBindStatusCallback_OnLowResource_Proxy(
494     IBindStatusCallback* This,
495     DWORD reserved);
496 void __RPC_STUB IBindStatusCallback_OnLowResource_Stub(
497     struct IRpcStubBuffer* This,
498     struct IRpcChannelBuffer* pRpcChannelBuffer,
499     PRPC_MESSAGE pRpcMessage,
500     DWORD* pdwStubPhase);
501 HRESULT CALLBACK IBindStatusCallback_OnProgress_Proxy(
502     IBindStatusCallback* This,
503     ULONG ulProgress,
504     ULONG ulProgressMax,
505     ULONG ulStatusCode,
506     LPCWSTR szStatusText);
507 void __RPC_STUB IBindStatusCallback_OnProgress_Stub(
508     struct IRpcStubBuffer* This,
509     struct IRpcChannelBuffer* pRpcChannelBuffer,
510     PRPC_MESSAGE pRpcMessage,
511     DWORD* pdwStubPhase);
512 HRESULT CALLBACK IBindStatusCallback_OnStopBinding_Proxy(
513     IBindStatusCallback* This,
514     HRESULT hresult,
515     LPCWSTR szError);
516 void __RPC_STUB IBindStatusCallback_OnStopBinding_Stub(
517     struct IRpcStubBuffer* This,
518     struct IRpcChannelBuffer* pRpcChannelBuffer,
519     PRPC_MESSAGE pRpcMessage,
520     DWORD* pdwStubPhase);
521 HRESULT CALLBACK IBindStatusCallback_RemoteGetBindInfo_Proxy(
522     IBindStatusCallback* This,
523     DWORD* grfBINDF,
524     RemBINDINFO* pbindinfo,
525     RemSTGMEDIUM* pstgmed);
526 void __RPC_STUB IBindStatusCallback_RemoteGetBindInfo_Stub(
527     struct IRpcStubBuffer* This,
528     struct IRpcChannelBuffer* pRpcChannelBuffer,
529     PRPC_MESSAGE pRpcMessage,
530     DWORD* pdwStubPhase);
531 HRESULT CALLBACK IBindStatusCallback_GetBindInfo_Proxy(
532     IBindStatusCallback* This,
533     DWORD* grfBINDF,
534     BINDINFO* pbindinfo);
535 HRESULT __RPC_STUB IBindStatusCallback_GetBindInfo_Stub(
536     IBindStatusCallback* This,
537     DWORD* grfBINDF,
538     RemBINDINFO* pbindinfo,
539     RemSTGMEDIUM* pstgmed);
540 HRESULT CALLBACK IBindStatusCallback_RemoteOnDataAvailable_Proxy(
541     IBindStatusCallback* This,
542     DWORD grfBSCF,
543     DWORD dwSize,
544     RemFORMATETC* pformatetc,
545     RemSTGMEDIUM* pstgmed);
546 void __RPC_STUB IBindStatusCallback_RemoteOnDataAvailable_Stub(
547     struct IRpcStubBuffer* This,
548     struct IRpcChannelBuffer* pRpcChannelBuffer,
549     PRPC_MESSAGE pRpcMessage,
550     DWORD* pdwStubPhase);
551 HRESULT CALLBACK IBindStatusCallback_OnDataAvailable_Proxy(
552     IBindStatusCallback* This,
553     DWORD grfBSCF,
554     DWORD dwSize,
555     FORMATETC* pformatetc,
556     STGMEDIUM* pstgmed);
557 HRESULT __RPC_STUB IBindStatusCallback_OnDataAvailable_Stub(
558     IBindStatusCallback* This,
559     DWORD grfBSCF,
560     DWORD dwSize,
561     RemFORMATETC* pformatetc,
562     RemSTGMEDIUM* pstgmed);
563 HRESULT CALLBACK IBindStatusCallback_OnObjectAvailable_Proxy(
564     IBindStatusCallback* This,
565     REFIID riid,
566     IUnknown* punk);
567 void __RPC_STUB IBindStatusCallback_OnObjectAvailable_Stub(
568     struct IRpcStubBuffer* This,
569     struct IRpcChannelBuffer* pRpcChannelBuffer,
570     PRPC_MESSAGE pRpcMessage,
571     DWORD* pdwStubPhase);
572
573 #endif  /* __IBindStatusCallback_INTERFACE_DEFINED__ */
574
575 #define SID_IBindHost IID_IBindHost
576 #define SID_SBindHost IID_IBindHost
577 #ifndef __IBindHost_FWD_DEFINED__
578 #define __IBindHost_FWD_DEFINED__
579 typedef struct IBindHost IBindHost;
580 #endif
581
582 typedef IBindHost *LPBINDHOST;
583
584 /*****************************************************************************
585  * IBindHost interface
586  */
587 #ifndef __IBindHost_INTERFACE_DEFINED__
588 #define __IBindHost_INTERFACE_DEFINED__
589
590 DEFINE_GUID(IID_IBindHost, 0xfc4801a1, 0x2ba9, 0x11cf, 0xa2,0x29, 0x00,0xaa,0x00,0x3d,0x73,0x52);
591 #if defined(__cplusplus) && !defined(CINTERFACE)
592 struct IBindHost : public IUnknown
593 {
594     virtual HRESULT STDMETHODCALLTYPE CreateMoniker(
595         LPOLESTR szName,
596         IBindCtx* pBC,
597         IMoniker** ppmk,
598         DWORD dwReserved) = 0;
599
600     virtual HRESULT STDMETHODCALLTYPE MonikerBindToStorage(
601         IMoniker* pMk,
602         IBindCtx* pBC,
603         IBindStatusCallback* pBSC,
604         REFIID riid,
605         void** ppvObj) = 0;
606
607     virtual HRESULT STDMETHODCALLTYPE MonikerBindToObject(
608         IMoniker* pMk,
609         IBindCtx* pBC,
610         IBindStatusCallback* pBSC,
611         REFIID riid,
612         void** ppvObj) = 0;
613
614 };
615 #else
616 typedef struct IBindHostVtbl IBindHostVtbl;
617 struct IBindHost {
618     const IBindHostVtbl* lpVtbl;
619 };
620 struct IBindHostVtbl {
621     ICOM_MSVTABLE_COMPAT_FIELDS
622
623     /*** IUnknown methods ***/
624     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
625         IBindHost* This,
626         REFIID riid,
627         void** ppvObject);
628
629     ULONG (STDMETHODCALLTYPE *AddRef)(
630         IBindHost* This);
631
632     ULONG (STDMETHODCALLTYPE *Release)(
633         IBindHost* This);
634
635     /*** IBindHost methods ***/
636     HRESULT (STDMETHODCALLTYPE *CreateMoniker)(
637         IBindHost* This,
638         LPOLESTR szName,
639         IBindCtx* pBC,
640         IMoniker** ppmk,
641         DWORD dwReserved);
642
643     HRESULT (STDMETHODCALLTYPE *MonikerBindToStorage)(
644         IBindHost* This,
645         IMoniker* pMk,
646         IBindCtx* pBC,
647         IBindStatusCallback* pBSC,
648         REFIID riid,
649         void** ppvObj);
650
651     HRESULT (STDMETHODCALLTYPE *MonikerBindToObject)(
652         IBindHost* This,
653         IMoniker* pMk,
654         IBindCtx* pBC,
655         IBindStatusCallback* pBSC,
656         REFIID riid,
657         void** ppvObj);
658
659 };
660
661 #ifdef COBJMACROS
662 /*** IUnknown methods ***/
663 #define IBindHost_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
664 #define IBindHost_AddRef(p) (p)->lpVtbl->AddRef(p)
665 #define IBindHost_Release(p) (p)->lpVtbl->Release(p)
666 /*** IBindHost methods ***/
667 #define IBindHost_CreateMoniker(p,a,b,c,d) (p)->lpVtbl->CreateMoniker(p,a,b,c,d)
668 #define IBindHost_MonikerBindToStorage(p,a,b,c,d,e) (p)->lpVtbl->MonikerBindToStorage(p,a,b,c,d,e)
669 #define IBindHost_MonikerBindToObject(p,a,b,c,d,e) (p)->lpVtbl->MonikerBindToObject(p,a,b,c,d,e)
670 #endif
671
672 #endif
673
674 #define IBindHost_METHODS \
675     ICOM_MSVTABLE_COMPAT_FIELDS \
676     /*** IUnknown methods ***/ \
677     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
678     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
679     STDMETHOD_(ULONG,Release)(THIS) PURE; \
680     /*** IBindHost methods ***/ \
681     STDMETHOD_(HRESULT,CreateMoniker)(THIS_ LPOLESTR szName, IBindCtx* pBC, IMoniker** ppmk, DWORD dwReserved) PURE; \
682     STDMETHOD_(HRESULT,MonikerBindToStorage)(THIS_ IMoniker* pMk, IBindCtx* pBC, IBindStatusCallback* pBSC, REFIID riid, void** ppvObj) PURE; \
683     STDMETHOD_(HRESULT,MonikerBindToObject)(THIS_ IMoniker* pMk, IBindCtx* pBC, IBindStatusCallback* pBSC, REFIID riid, void** ppvObj) PURE;
684
685 HRESULT CALLBACK IBindHost_CreateMoniker_Proxy(
686     IBindHost* This,
687     LPOLESTR szName,
688     IBindCtx* pBC,
689     IMoniker** ppmk,
690     DWORD dwReserved);
691 void __RPC_STUB IBindHost_CreateMoniker_Stub(
692     struct IRpcStubBuffer* This,
693     struct IRpcChannelBuffer* pRpcChannelBuffer,
694     PRPC_MESSAGE pRpcMessage,
695     DWORD* pdwStubPhase);
696 HRESULT CALLBACK IBindHost_RemoteMonikerBindToStorage_Proxy(
697     IBindHost* This,
698     IMoniker* pMk,
699     IBindCtx* pBC,
700     IBindStatusCallback* pBSC,
701     REFIID riid,
702     IUnknown** ppvObj);
703 void __RPC_STUB IBindHost_RemoteMonikerBindToStorage_Stub(
704     struct IRpcStubBuffer* This,
705     struct IRpcChannelBuffer* pRpcChannelBuffer,
706     PRPC_MESSAGE pRpcMessage,
707     DWORD* pdwStubPhase);
708 HRESULT CALLBACK IBindHost_MonikerBindToStorage_Proxy(
709     IBindHost* This,
710     IMoniker* pMk,
711     IBindCtx* pBC,
712     IBindStatusCallback* pBSC,
713     REFIID riid,
714     void** ppvObj);
715 HRESULT __RPC_STUB IBindHost_MonikerBindToStorage_Stub(
716     IBindHost* This,
717     IMoniker* pMk,
718     IBindCtx* pBC,
719     IBindStatusCallback* pBSC,
720     REFIID riid,
721     IUnknown** ppvObj);
722 HRESULT CALLBACK IBindHost_RemoteMonikerBindToObject_Proxy(
723     IBindHost* This,
724     IMoniker* pMk,
725     IBindCtx* pBC,
726     IBindStatusCallback* pBSC,
727     REFIID riid,
728     IUnknown** ppvObj);
729 void __RPC_STUB IBindHost_RemoteMonikerBindToObject_Stub(
730     struct IRpcStubBuffer* This,
731     struct IRpcChannelBuffer* pRpcChannelBuffer,
732     PRPC_MESSAGE pRpcMessage,
733     DWORD* pdwStubPhase);
734 HRESULT CALLBACK IBindHost_MonikerBindToObject_Proxy(
735     IBindHost* This,
736     IMoniker* pMk,
737     IBindCtx* pBC,
738     IBindStatusCallback* pBSC,
739     REFIID riid,
740     void** ppvObj);
741 HRESULT __RPC_STUB IBindHost_MonikerBindToObject_Stub(
742     IBindHost* This,
743     IMoniker* pMk,
744     IBindCtx* pBC,
745     IBindStatusCallback* pBSC,
746     REFIID riid,
747     IUnknown** ppvObj);
748
749 #endif  /* __IBindHost_INTERFACE_DEFINED__ */
750
751 #ifndef __IWinInetInfo_FWD_DEFINED__
752 #define __IWinInetInfo_FWD_DEFINED__
753 typedef struct IWinInetInfo IWinInetInfo;
754 #endif
755
756 typedef IWinInetInfo *LPWININETINFO;
757
758 /*****************************************************************************
759  * IWinInetInfo interface
760  */
761 #ifndef __IWinInetInfo_INTERFACE_DEFINED__
762 #define __IWinInetInfo_INTERFACE_DEFINED__
763
764 DEFINE_GUID(IID_IWinInetInfo, 0x79eac9d6, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
765 #if defined(__cplusplus) && !defined(CINTERFACE)
766 struct IWinInetInfo : public IUnknown
767 {
768     virtual HRESULT STDMETHODCALLTYPE QueryOption(
769         DWORD dwOption,
770         LPVOID pBuffer,
771         DWORD* pcbBuf) = 0;
772
773 };
774 #else
775 typedef struct IWinInetInfoVtbl IWinInetInfoVtbl;
776 struct IWinInetInfo {
777     const IWinInetInfoVtbl* lpVtbl;
778 };
779 struct IWinInetInfoVtbl {
780     ICOM_MSVTABLE_COMPAT_FIELDS
781
782     /*** IUnknown methods ***/
783     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
784         IWinInetInfo* This,
785         REFIID riid,
786         void** ppvObject);
787
788     ULONG (STDMETHODCALLTYPE *AddRef)(
789         IWinInetInfo* This);
790
791     ULONG (STDMETHODCALLTYPE *Release)(
792         IWinInetInfo* This);
793
794     /*** IWinInetInfo methods ***/
795     HRESULT (STDMETHODCALLTYPE *QueryOption)(
796         IWinInetInfo* This,
797         DWORD dwOption,
798         LPVOID pBuffer,
799         DWORD* pcbBuf);
800
801 };
802
803 #ifdef COBJMACROS
804 /*** IUnknown methods ***/
805 #define IWinInetInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
806 #define IWinInetInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
807 #define IWinInetInfo_Release(p) (p)->lpVtbl->Release(p)
808 /*** IWinInetInfo methods ***/
809 #define IWinInetInfo_QueryOption(p,a,b,c) (p)->lpVtbl->QueryOption(p,a,b,c)
810 #endif
811
812 #endif
813
814 #define IWinInetInfo_METHODS \
815     ICOM_MSVTABLE_COMPAT_FIELDS \
816     /*** IUnknown methods ***/ \
817     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
818     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
819     STDMETHOD_(ULONG,Release)(THIS) PURE; \
820     /*** IWinInetInfo methods ***/ \
821     STDMETHOD_(HRESULT,QueryOption)(THIS_ DWORD dwOption, LPVOID pBuffer, DWORD* pcbBuf) PURE;
822
823 HRESULT CALLBACK IWinInetInfo_RemoteQueryOption_Proxy(
824     IWinInetInfo* This,
825     DWORD dwOption,
826     BYTE* pBuffer,
827     DWORD* pcbBuf);
828 void __RPC_STUB IWinInetInfo_RemoteQueryOption_Stub(
829     struct IRpcStubBuffer* This,
830     struct IRpcChannelBuffer* pRpcChannelBuffer,
831     PRPC_MESSAGE pRpcMessage,
832     DWORD* pdwStubPhase);
833 HRESULT CALLBACK IWinInetInfo_QueryOption_Proxy(
834     IWinInetInfo* This,
835     DWORD dwOption,
836     LPVOID pBuffer,
837     DWORD* pcbBuf);
838 HRESULT __RPC_STUB IWinInetInfo_QueryOption_Stub(
839     IWinInetInfo* This,
840     DWORD dwOption,
841     BYTE* pBuffer,
842     DWORD* pcbBuf);
843
844 #endif  /* __IWinInetInfo_INTERFACE_DEFINED__ */
845
846 #ifndef __IWinInetHttpInfo_FWD_DEFINED__
847 #define __IWinInetHttpInfo_FWD_DEFINED__
848 typedef struct IWinInetHttpInfo IWinInetHttpInfo;
849 #endif
850
851 typedef IWinInetHttpInfo *LPWININETHTTPINFO;
852
853 /*****************************************************************************
854  * IWinInetHttpInfo interface
855  */
856 #ifndef __IWinInetHttpInfo_INTERFACE_DEFINED__
857 #define __IWinInetHttpInfo_INTERFACE_DEFINED__
858
859 DEFINE_GUID(IID_IWinInetHttpInfo, 0x79eac9d8, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
860 #if defined(__cplusplus) && !defined(CINTERFACE)
861 struct IWinInetHttpInfo : public IWinInetInfo
862 {
863     virtual HRESULT STDMETHODCALLTYPE QueryInfo(
864         DWORD dwOption,
865         LPVOID pBuffer,
866         DWORD* pcbBuf,
867         DWORD* pdwFlags,
868         DWORD* pdwReserved) = 0;
869
870 };
871 #else
872 typedef struct IWinInetHttpInfoVtbl IWinInetHttpInfoVtbl;
873 struct IWinInetHttpInfo {
874     const IWinInetHttpInfoVtbl* lpVtbl;
875 };
876 struct IWinInetHttpInfoVtbl {
877     ICOM_MSVTABLE_COMPAT_FIELDS
878
879     /*** IUnknown methods ***/
880     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
881         IWinInetHttpInfo* This,
882         REFIID riid,
883         void** ppvObject);
884
885     ULONG (STDMETHODCALLTYPE *AddRef)(
886         IWinInetHttpInfo* This);
887
888     ULONG (STDMETHODCALLTYPE *Release)(
889         IWinInetHttpInfo* This);
890
891     /*** IWinInetInfo methods ***/
892     HRESULT (STDMETHODCALLTYPE *QueryOption)(
893         IWinInetHttpInfo* This,
894         DWORD dwOption,
895         LPVOID pBuffer,
896         DWORD* pcbBuf);
897
898     /*** IWinInetHttpInfo methods ***/
899     HRESULT (STDMETHODCALLTYPE *QueryInfo)(
900         IWinInetHttpInfo* This,
901         DWORD dwOption,
902         LPVOID pBuffer,
903         DWORD* pcbBuf,
904         DWORD* pdwFlags,
905         DWORD* pdwReserved);
906
907 };
908
909 #ifdef COBJMACROS
910 /*** IUnknown methods ***/
911 #define IWinInetHttpInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
912 #define IWinInetHttpInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
913 #define IWinInetHttpInfo_Release(p) (p)->lpVtbl->Release(p)
914 /*** IWinInetInfo methods ***/
915 #define IWinInetHttpInfo_QueryOption(p,a,b,c) (p)->lpVtbl->QueryOption(p,a,b,c)
916 /*** IWinInetHttpInfo methods ***/
917 #define IWinInetHttpInfo_QueryInfo(p,a,b,c,d,e) (p)->lpVtbl->QueryInfo(p,a,b,c,d,e)
918 #endif
919
920 #endif
921
922 #define IWinInetHttpInfo_METHODS \
923     ICOM_MSVTABLE_COMPAT_FIELDS \
924     /*** IUnknown methods ***/ \
925     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
926     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
927     STDMETHOD_(ULONG,Release)(THIS) PURE; \
928     /*** IWinInetInfo methods ***/ \
929     STDMETHOD_(HRESULT,QueryOption)(THIS_ DWORD dwOption, LPVOID pBuffer, DWORD* pcbBuf) PURE; \
930     /*** IWinInetHttpInfo methods ***/ \
931     STDMETHOD_(HRESULT,QueryInfo)(THIS_ DWORD dwOption, LPVOID pBuffer, DWORD* pcbBuf, DWORD* pdwFlags, DWORD* pdwReserved) PURE;
932
933 HRESULT CALLBACK IWinInetHttpInfo_RemoteQueryInfo_Proxy(
934     IWinInetHttpInfo* This,
935     DWORD dwOption,
936     BYTE* pBuffer,
937     DWORD* pcbBuf,
938     DWORD* pdwFlags,
939     DWORD* pdwReserved);
940 void __RPC_STUB IWinInetHttpInfo_RemoteQueryInfo_Stub(
941     struct IRpcStubBuffer* This,
942     struct IRpcChannelBuffer* pRpcChannelBuffer,
943     PRPC_MESSAGE pRpcMessage,
944     DWORD* pdwStubPhase);
945 HRESULT CALLBACK IWinInetHttpInfo_QueryInfo_Proxy(
946     IWinInetHttpInfo* This,
947     DWORD dwOption,
948     LPVOID pBuffer,
949     DWORD* pcbBuf,
950     DWORD* pdwFlags,
951     DWORD* pdwReserved);
952 HRESULT __RPC_STUB IWinInetHttpInfo_QueryInfo_Stub(
953     IWinInetHttpInfo* This,
954     DWORD dwOption,
955     BYTE* pBuffer,
956     DWORD* pcbBuf,
957     DWORD* pdwFlags,
958     DWORD* pdwReserved);
959
960 #endif  /* __IWinInetHttpInfo_INTERFACE_DEFINED__ */
961
962 #ifndef __IPersistMoniker_FWD_DEFINED__
963 #define __IPersistMoniker_FWD_DEFINED__
964 typedef struct IPersistMoniker IPersistMoniker;
965 #endif
966
967 typedef IPersistMoniker *LPPERSISTMONIKER;
968
969 /*****************************************************************************
970  * IPersistMoniker interface
971  */
972 #ifndef __IPersistMoniker_INTERFACE_DEFINED__
973 #define __IPersistMoniker_INTERFACE_DEFINED__
974
975 DEFINE_GUID(IID_IPersistMoniker, 0x79eac9c9, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
976 #if defined(__cplusplus) && !defined(CINTERFACE)
977 struct IPersistMoniker : public IUnknown
978 {
979     virtual HRESULT STDMETHODCALLTYPE GetClassID(
980         CLSID* pClassID) = 0;
981
982     virtual HRESULT STDMETHODCALLTYPE IsDirty(
983         ) = 0;
984
985     virtual HRESULT STDMETHODCALLTYPE Load(
986         BOOL fFullyAvailable,
987         IMoniker* pimkName,
988         LPBC pibc,
989         DWORD grfMode) = 0;
990
991     virtual HRESULT STDMETHODCALLTYPE Save(
992         IMoniker* pimkName,
993         LPBC pbc,
994         BOOL fRemember) = 0;
995
996     virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
997         IMoniker* pimkName,
998         LPBC pibc) = 0;
999
1000     virtual HRESULT STDMETHODCALLTYPE GetCurMoniker(
1001         IMoniker** ppimkName) = 0;
1002
1003 };
1004 #else
1005 typedef struct IPersistMonikerVtbl IPersistMonikerVtbl;
1006 struct IPersistMoniker {
1007     const IPersistMonikerVtbl* lpVtbl;
1008 };
1009 struct IPersistMonikerVtbl {
1010     ICOM_MSVTABLE_COMPAT_FIELDS
1011
1012     /*** IUnknown methods ***/
1013     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1014         IPersistMoniker* This,
1015         REFIID riid,
1016         void** ppvObject);
1017
1018     ULONG (STDMETHODCALLTYPE *AddRef)(
1019         IPersistMoniker* This);
1020
1021     ULONG (STDMETHODCALLTYPE *Release)(
1022         IPersistMoniker* This);
1023
1024     /*** IPersistMoniker methods ***/
1025     HRESULT (STDMETHODCALLTYPE *GetClassID)(
1026         IPersistMoniker* This,
1027         CLSID* pClassID);
1028
1029     HRESULT (STDMETHODCALLTYPE *IsDirty)(
1030         IPersistMoniker* This);
1031
1032     HRESULT (STDMETHODCALLTYPE *Load)(
1033         IPersistMoniker* This,
1034         BOOL fFullyAvailable,
1035         IMoniker* pimkName,
1036         LPBC pibc,
1037         DWORD grfMode);
1038
1039     HRESULT (STDMETHODCALLTYPE *Save)(
1040         IPersistMoniker* This,
1041         IMoniker* pimkName,
1042         LPBC pbc,
1043         BOOL fRemember);
1044
1045     HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
1046         IPersistMoniker* This,
1047         IMoniker* pimkName,
1048         LPBC pibc);
1049
1050     HRESULT (STDMETHODCALLTYPE *GetCurMoniker)(
1051         IPersistMoniker* This,
1052         IMoniker** ppimkName);
1053
1054 };
1055
1056 #ifdef COBJMACROS
1057 /*** IUnknown methods ***/
1058 #define IPersistMoniker_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1059 #define IPersistMoniker_AddRef(p) (p)->lpVtbl->AddRef(p)
1060 #define IPersistMoniker_Release(p) (p)->lpVtbl->Release(p)
1061 /*** IPersistMoniker methods ***/
1062 #define IPersistMoniker_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
1063 #define IPersistMoniker_IsDirty(p) (p)->lpVtbl->IsDirty(p)
1064 #define IPersistMoniker_Load(p,a,b,c,d) (p)->lpVtbl->Load(p,a,b,c,d)
1065 #define IPersistMoniker_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
1066 #define IPersistMoniker_SaveCompleted(p,a,b) (p)->lpVtbl->SaveCompleted(p,a,b)
1067 #define IPersistMoniker_GetCurMoniker(p,a) (p)->lpVtbl->GetCurMoniker(p,a)
1068 #endif
1069
1070 #endif
1071
1072 #define IPersistMoniker_METHODS \
1073     ICOM_MSVTABLE_COMPAT_FIELDS \
1074     /*** IUnknown methods ***/ \
1075     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1076     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1077     STDMETHOD_(ULONG,Release)(THIS) PURE; \
1078     /*** IPersistMoniker methods ***/ \
1079     STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
1080     STDMETHOD_(HRESULT,IsDirty)(THIS) PURE; \
1081     STDMETHOD_(HRESULT,Load)(THIS_ BOOL fFullyAvailable, IMoniker* pimkName, LPBC pibc, DWORD grfMode) PURE; \
1082     STDMETHOD_(HRESULT,Save)(THIS_ IMoniker* pimkName, LPBC pbc, BOOL fRemember) PURE; \
1083     STDMETHOD_(HRESULT,SaveCompleted)(THIS_ IMoniker* pimkName, LPBC pibc) PURE; \
1084     STDMETHOD_(HRESULT,GetCurMoniker)(THIS_ IMoniker** ppimkName) PURE;
1085
1086 HRESULT CALLBACK IPersistMoniker_GetClassID_Proxy(
1087     IPersistMoniker* This,
1088     CLSID* pClassID);
1089 void __RPC_STUB IPersistMoniker_GetClassID_Stub(
1090     struct IRpcStubBuffer* This,
1091     struct IRpcChannelBuffer* pRpcChannelBuffer,
1092     PRPC_MESSAGE pRpcMessage,
1093     DWORD* pdwStubPhase);
1094 HRESULT CALLBACK IPersistMoniker_IsDirty_Proxy(
1095     IPersistMoniker* This);
1096 void __RPC_STUB IPersistMoniker_IsDirty_Stub(
1097     struct IRpcStubBuffer* This,
1098     struct IRpcChannelBuffer* pRpcChannelBuffer,
1099     PRPC_MESSAGE pRpcMessage,
1100     DWORD* pdwStubPhase);
1101 HRESULT CALLBACK IPersistMoniker_Load_Proxy(
1102     IPersistMoniker* This,
1103     BOOL fFullyAvailable,
1104     IMoniker* pimkName,
1105     LPBC pibc,
1106     DWORD grfMode);
1107 void __RPC_STUB IPersistMoniker_Load_Stub(
1108     struct IRpcStubBuffer* This,
1109     struct IRpcChannelBuffer* pRpcChannelBuffer,
1110     PRPC_MESSAGE pRpcMessage,
1111     DWORD* pdwStubPhase);
1112 HRESULT CALLBACK IPersistMoniker_Save_Proxy(
1113     IPersistMoniker* This,
1114     IMoniker* pimkName,
1115     LPBC pbc,
1116     BOOL fRemember);
1117 void __RPC_STUB IPersistMoniker_Save_Stub(
1118     struct IRpcStubBuffer* This,
1119     struct IRpcChannelBuffer* pRpcChannelBuffer,
1120     PRPC_MESSAGE pRpcMessage,
1121     DWORD* pdwStubPhase);
1122 HRESULT CALLBACK IPersistMoniker_SaveCompleted_Proxy(
1123     IPersistMoniker* This,
1124     IMoniker* pimkName,
1125     LPBC pibc);
1126 void __RPC_STUB IPersistMoniker_SaveCompleted_Stub(
1127     struct IRpcStubBuffer* This,
1128     struct IRpcChannelBuffer* pRpcChannelBuffer,
1129     PRPC_MESSAGE pRpcMessage,
1130     DWORD* pdwStubPhase);
1131 HRESULT CALLBACK IPersistMoniker_GetCurMoniker_Proxy(
1132     IPersistMoniker* This,
1133     IMoniker** ppimkName);
1134 void __RPC_STUB IPersistMoniker_GetCurMoniker_Stub(
1135     struct IRpcStubBuffer* This,
1136     struct IRpcChannelBuffer* pRpcChannelBuffer,
1137     PRPC_MESSAGE pRpcMessage,
1138     DWORD* pdwStubPhase);
1139
1140 #endif  /* __IPersistMoniker_INTERFACE_DEFINED__ */
1141
1142 #ifndef __IInternetProtocolInfo_FWD_DEFINED__
1143 #define __IInternetProtocolInfo_FWD_DEFINED__
1144 typedef struct IInternetProtocolInfo IInternetProtocolInfo;
1145 #endif
1146
1147 typedef IInternetProtocolInfo *LPIINTERNETPROTOCOLINFO;
1148
1149 typedef enum _tagPARSEACTION {
1150     PARSE_CANONICALIZE = 1,
1151     PARSE_FRIENDLY,
1152     PARSE_SECURITY_URL,
1153     PARSE_ROOTDOCUMENT,
1154     PARSE_DOCUMENT,
1155     PARSE_ANCHOR,
1156     PARSE_ENCODE,
1157     PARSE_DECODE,
1158     PARSE_PATH_FROM_URL,
1159     PARSE_URL_FROM_PATH,
1160     PARSE_MIME,
1161     PARSE_SERVER,
1162     PARSE_SCHEMA,
1163     PARSE_SITE,
1164     PARSE_DOMAIN,
1165     PARSE_LOCATION,
1166     PARSE_SECURITY_DOMAIN,
1167     PARSE_ESCAPE,
1168     PARSE_UNESCAPE
1169 } PARSEACTION;
1170
1171 typedef enum _tagPSUACTION {
1172     PSU_DEFAULT = 1,
1173     PSU_SECURITY_URL_ONLY
1174 } PSUACTION;
1175
1176 typedef enum _tagQUERYOPTION {
1177     QUERY_EXPIRATION_DATE = 1,
1178     QUERY_TIME_OF_LAST_CHANGE,
1179     QUERY_CONTENT_ENCODING,
1180     QUERY_CONTENT_TYPE,
1181     QUERY_REFRESH,
1182     QUERY_RECOMBINE,
1183     QUERY_CAN_NAVIGATE,
1184     QUERY_USES_NETWORK,
1185     QUERY_IS_CACHED,
1186     QUERY_IS_INSTALLEDENTRY,
1187     QUERY_IS_CACHED_OR_MAPPED,
1188     QUERY_USES_CACHE,
1189     QUERY_IS_SECURE,
1190     QUERY_IS_SAFE
1191 } QUERYOPTION;
1192
1193 /*****************************************************************************
1194  * IInternetProtocolInfo interface
1195  */
1196 #ifndef __IInternetProtocolInfo_INTERFACE_DEFINED__
1197 #define __IInternetProtocolInfo_INTERFACE_DEFINED__
1198
1199 DEFINE_GUID(IID_IInternetProtocolInfo, 0x79eac9ec, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
1200 #if defined(__cplusplus) && !defined(CINTERFACE)
1201 struct IInternetProtocolInfo : public IUnknown
1202 {
1203     virtual HRESULT STDMETHODCALLTYPE ParseUrl(
1204         LPCWSTR pwzUrl,
1205         PARSEACTION ParseAction,
1206         DWORD dwParseFlags,
1207         LPWSTR pwzResult,
1208         DWORD cchResult,
1209         DWORD* pcchResult,
1210         DWORD dwReserved) = 0;
1211
1212     virtual HRESULT STDMETHODCALLTYPE CombineUrl(
1213         LPCWSTR pwzBaseUrl,
1214         LPCWSTR pwzRelativeUrl,
1215         DWORD dwCombineFlags,
1216         LPWSTR pwzResult,
1217         DWORD cchResult,
1218         DWORD* pcchResult,
1219         DWORD dwReserved) = 0;
1220
1221     virtual HRESULT STDMETHODCALLTYPE CompareUrl(
1222         LPCWSTR pwzUrl1,
1223         LPCWSTR pwzUrl2,
1224         DWORD dwCompareFlags) = 0;
1225
1226     virtual HRESULT STDMETHODCALLTYPE QueryInfo(
1227         LPCWSTR pwzUrl,
1228         QUERYOPTION OueryOption,
1229         DWORD dwQueryFlags,
1230         LPVOID pBuffer,
1231         DWORD cbBuffer,
1232         DWORD* pcbBuf,
1233         DWORD dwReserved) = 0;
1234
1235 };
1236 #else
1237 typedef struct IInternetProtocolInfoVtbl IInternetProtocolInfoVtbl;
1238 struct IInternetProtocolInfo {
1239     const IInternetProtocolInfoVtbl* lpVtbl;
1240 };
1241 struct IInternetProtocolInfoVtbl {
1242     ICOM_MSVTABLE_COMPAT_FIELDS
1243
1244     /*** IUnknown methods ***/
1245     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1246         IInternetProtocolInfo* This,
1247         REFIID riid,
1248         void** ppvObject);
1249
1250     ULONG (STDMETHODCALLTYPE *AddRef)(
1251         IInternetProtocolInfo* This);
1252
1253     ULONG (STDMETHODCALLTYPE *Release)(
1254         IInternetProtocolInfo* This);
1255
1256     /*** IInternetProtocolInfo methods ***/
1257     HRESULT (STDMETHODCALLTYPE *ParseUrl)(
1258         IInternetProtocolInfo* This,
1259         LPCWSTR pwzUrl,
1260         PARSEACTION ParseAction,
1261         DWORD dwParseFlags,
1262         LPWSTR pwzResult,
1263         DWORD cchResult,
1264         DWORD* pcchResult,
1265         DWORD dwReserved);
1266
1267     HRESULT (STDMETHODCALLTYPE *CombineUrl)(
1268         IInternetProtocolInfo* This,
1269         LPCWSTR pwzBaseUrl,
1270         LPCWSTR pwzRelativeUrl,
1271         DWORD dwCombineFlags,
1272         LPWSTR pwzResult,
1273         DWORD cchResult,
1274         DWORD* pcchResult,
1275         DWORD dwReserved);
1276
1277     HRESULT (STDMETHODCALLTYPE *CompareUrl)(
1278         IInternetProtocolInfo* This,
1279         LPCWSTR pwzUrl1,
1280         LPCWSTR pwzUrl2,
1281         DWORD dwCompareFlags);
1282
1283     HRESULT (STDMETHODCALLTYPE *QueryInfo)(
1284         IInternetProtocolInfo* This,
1285         LPCWSTR pwzUrl,
1286         QUERYOPTION OueryOption,
1287         DWORD dwQueryFlags,
1288         LPVOID pBuffer,
1289         DWORD cbBuffer,
1290         DWORD* pcbBuf,
1291         DWORD dwReserved);
1292
1293 };
1294
1295 #ifdef COBJMACROS
1296 /*** IUnknown methods ***/
1297 #define IInternetProtocolInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1298 #define IInternetProtocolInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
1299 #define IInternetProtocolInfo_Release(p) (p)->lpVtbl->Release(p)
1300 /*** IInternetProtocolInfo methods ***/
1301 #define IInternetProtocolInfo_ParseUrl(p,a,b,c,d,e,f,g) (p)->lpVtbl->ParseUrl(p,a,b,c,d,e,f,g)
1302 #define IInternetProtocolInfo_CombineUrl(p,a,b,c,d,e,f,g) (p)->lpVtbl->CombineUrl(p,a,b,c,d,e,f,g)
1303 #define IInternetProtocolInfo_CompareUrl(p,a,b,c) (p)->lpVtbl->CompareUrl(p,a,b,c)
1304 #define IInternetProtocolInfo_QueryInfo(p,a,b,c,d,e,f,g) (p)->lpVtbl->QueryInfo(p,a,b,c,d,e,f,g)
1305 #endif
1306
1307 #endif
1308
1309 #define IInternetProtocolInfo_METHODS \
1310     ICOM_MSVTABLE_COMPAT_FIELDS \
1311     /*** IUnknown methods ***/ \
1312     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1313     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1314     STDMETHOD_(ULONG,Release)(THIS) PURE; \
1315     /*** IInternetProtocolInfo methods ***/ \
1316     STDMETHOD_(HRESULT,ParseUrl)(THIS_ LPCWSTR pwzUrl, PARSEACTION ParseAction, DWORD dwParseFlags, LPWSTR pwzResult, DWORD cchResult, DWORD* pcchResult, DWORD dwReserved) PURE; \
1317     STDMETHOD_(HRESULT,CombineUrl)(THIS_ LPCWSTR pwzBaseUrl, LPCWSTR pwzRelativeUrl, DWORD dwCombineFlags, LPWSTR pwzResult, DWORD cchResult, DWORD* pcchResult, DWORD dwReserved) PURE; \
1318     STDMETHOD_(HRESULT,CompareUrl)(THIS_ LPCWSTR pwzUrl1, LPCWSTR pwzUrl2, DWORD dwCompareFlags) PURE; \
1319     STDMETHOD_(HRESULT,QueryInfo)(THIS_ LPCWSTR pwzUrl, QUERYOPTION OueryOption, DWORD dwQueryFlags, LPVOID pBuffer, DWORD cbBuffer, DWORD* pcbBuf, DWORD dwReserved) PURE;
1320
1321 HRESULT CALLBACK IInternetProtocolInfo_ParseUrl_Proxy(
1322     IInternetProtocolInfo* This,
1323     LPCWSTR pwzUrl,
1324     PARSEACTION ParseAction,
1325     DWORD dwParseFlags,
1326     LPWSTR pwzResult,
1327     DWORD cchResult,
1328     DWORD* pcchResult,
1329     DWORD dwReserved);
1330 void __RPC_STUB IInternetProtocolInfo_ParseUrl_Stub(
1331     struct IRpcStubBuffer* This,
1332     struct IRpcChannelBuffer* pRpcChannelBuffer,
1333     PRPC_MESSAGE pRpcMessage,
1334     DWORD* pdwStubPhase);
1335 HRESULT CALLBACK IInternetProtocolInfo_CombineUrl_Proxy(
1336     IInternetProtocolInfo* This,
1337     LPCWSTR pwzBaseUrl,
1338     LPCWSTR pwzRelativeUrl,
1339     DWORD dwCombineFlags,
1340     LPWSTR pwzResult,
1341     DWORD cchResult,
1342     DWORD* pcchResult,
1343     DWORD dwReserved);
1344 void __RPC_STUB IInternetProtocolInfo_CombineUrl_Stub(
1345     struct IRpcStubBuffer* This,
1346     struct IRpcChannelBuffer* pRpcChannelBuffer,
1347     PRPC_MESSAGE pRpcMessage,
1348     DWORD* pdwStubPhase);
1349 HRESULT CALLBACK IInternetProtocolInfo_CompareUrl_Proxy(
1350     IInternetProtocolInfo* This,
1351     LPCWSTR pwzUrl1,
1352     LPCWSTR pwzUrl2,
1353     DWORD dwCompareFlags);
1354 void __RPC_STUB IInternetProtocolInfo_CompareUrl_Stub(
1355     struct IRpcStubBuffer* This,
1356     struct IRpcChannelBuffer* pRpcChannelBuffer,
1357     PRPC_MESSAGE pRpcMessage,
1358     DWORD* pdwStubPhase);
1359 HRESULT CALLBACK IInternetProtocolInfo_QueryInfo_Proxy(
1360     IInternetProtocolInfo* This,
1361     LPCWSTR pwzUrl,
1362     QUERYOPTION OueryOption,
1363     DWORD dwQueryFlags,
1364     LPVOID pBuffer,
1365     DWORD cbBuffer,
1366     DWORD* pcbBuf,
1367     DWORD dwReserved);
1368 void __RPC_STUB IInternetProtocolInfo_QueryInfo_Stub(
1369     struct IRpcStubBuffer* This,
1370     struct IRpcChannelBuffer* pRpcChannelBuffer,
1371     PRPC_MESSAGE pRpcMessage,
1372     DWORD* pdwStubPhase);
1373
1374 #endif  /* __IInternetProtocolInfo_INTERFACE_DEFINED__ */
1375
1376 #ifndef __IInternetSession_FWD_DEFINED__
1377 #define __IInternetSession_FWD_DEFINED__
1378 typedef struct IInternetSession IInternetSession;
1379 #endif
1380
1381 typedef IInternetSession *LPIINTERNETSESSION;
1382
1383 typedef enum _tagOIBDG_FLAGS {
1384     OIBDG_APARTMENTTHREADED = 0x100,
1385     OIBDG_DATAONLY = 0x1000
1386 } OIBDG_FLAGS;
1387
1388 /*****************************************************************************
1389  * IInternetSession interface
1390  */
1391 #ifndef __IInternetSession_INTERFACE_DEFINED__
1392 #define __IInternetSession_INTERFACE_DEFINED__
1393
1394 DEFINE_GUID(IID_IInternetSession, 0x79eac9e7, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
1395 #if defined(__cplusplus) && !defined(CINTERFACE)
1396 struct IInternetSession : public IUnknown
1397 {
1398     virtual HRESULT STDMETHODCALLTYPE RegisterNameSpace(
1399         IClassFactory* pCF,
1400         REFCLSID rclsid,
1401         LPCWSTR pwzProtocol,
1402         ULONG cPatterns,
1403         const LPCWSTR* ppwzPatterns,
1404         DWORD dwReserved) = 0;
1405
1406     virtual HRESULT STDMETHODCALLTYPE UnregisterNameSpace(
1407         IClassFactory* pCF,
1408         LPCWSTR pszProtocol) = 0;
1409
1410     virtual HRESULT STDMETHODCALLTYPE RegisterMimeFilter(
1411         IClassFactory* pCF,
1412         REFCLSID rclsid,
1413         LPCWSTR pwzType) = 0;
1414
1415     virtual HRESULT STDMETHODCALLTYPE UnregisterMimeFilter(
1416         IClassFactory* pCF,
1417         LPCWSTR pwzType) = 0;
1418
1419     virtual HRESULT STDMETHODCALLTYPE CreateBinding(
1420         LPBC pBC,
1421         LPCWSTR szUrl,
1422         IUnknown* pUnkOuter,
1423         IUnknown** ppUnk,
1424         void** ppOInetProt,
1425         DWORD dwOption) = 0;
1426
1427     virtual HRESULT STDMETHODCALLTYPE SetSessionOption(
1428         DWORD dwOption,
1429         LPVOID pBuffer,
1430         DWORD dwBufferLength,
1431         DWORD dwReserved) = 0;
1432
1433 };
1434 #else
1435 typedef struct IInternetSessionVtbl IInternetSessionVtbl;
1436 struct IInternetSession {
1437     const IInternetSessionVtbl* lpVtbl;
1438 };
1439 struct IInternetSessionVtbl {
1440     ICOM_MSVTABLE_COMPAT_FIELDS
1441
1442     /*** IUnknown methods ***/
1443     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1444         IInternetSession* This,
1445         REFIID riid,
1446         void** ppvObject);
1447
1448     ULONG (STDMETHODCALLTYPE *AddRef)(
1449         IInternetSession* This);
1450
1451     ULONG (STDMETHODCALLTYPE *Release)(
1452         IInternetSession* This);
1453
1454     /*** IInternetSession methods ***/
1455     HRESULT (STDMETHODCALLTYPE *RegisterNameSpace)(
1456         IInternetSession* This,
1457         IClassFactory* pCF,
1458         REFCLSID rclsid,
1459         LPCWSTR pwzProtocol,
1460         ULONG cPatterns,
1461         const LPCWSTR* ppwzPatterns,
1462         DWORD dwReserved);
1463
1464     HRESULT (STDMETHODCALLTYPE *UnregisterNameSpace)(
1465         IInternetSession* This,
1466         IClassFactory* pCF,
1467         LPCWSTR pszProtocol);
1468
1469     HRESULT (STDMETHODCALLTYPE *RegisterMimeFilter)(
1470         IInternetSession* This,
1471         IClassFactory* pCF,
1472         REFCLSID rclsid,
1473         LPCWSTR pwzType);
1474
1475     HRESULT (STDMETHODCALLTYPE *UnregisterMimeFilter)(
1476         IInternetSession* This,
1477         IClassFactory* pCF,
1478         LPCWSTR pwzType);
1479
1480     HRESULT (STDMETHODCALLTYPE *CreateBinding)(
1481         IInternetSession* This,
1482         LPBC pBC,
1483         LPCWSTR szUrl,
1484         IUnknown* pUnkOuter,
1485         IUnknown** ppUnk,
1486         void** ppOInetProt,
1487         DWORD dwOption);
1488
1489     HRESULT (STDMETHODCALLTYPE *SetSessionOption)(
1490         IInternetSession* This,
1491         DWORD dwOption,
1492         LPVOID pBuffer,
1493         DWORD dwBufferLength,
1494         DWORD dwReserved);
1495
1496 };
1497
1498 #ifdef COBJMACROS
1499 /*** IUnknown methods ***/
1500 #define IInternetSession_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1501 #define IInternetSession_AddRef(p) (p)->lpVtbl->AddRef(p)
1502 #define IInternetSession_Release(p) (p)->lpVtbl->Release(p)
1503 /*** IInternetSession methods ***/
1504 #define IInternetSession_RegisterNameSpace(p,a,b,c,d,e,f) (p)->lpVtbl->RegisterNameSpace(p,a,b,c,d,e,f)
1505 #define IInternetSession_UnregisterNameSpace(p,a,b) (p)->lpVtbl->UnregisterNameSpace(p,a,b)
1506 #define IInternetSession_RegisterMimeFilter(p,a,b,c) (p)->lpVtbl->RegisterMimeFilter(p,a,b,c)
1507 #define IInternetSession_UnregisterMimeFilter(p,a,b) (p)->lpVtbl->UnregisterMimeFilter(p,a,b)
1508 #define IInternetSession_CreateBinding(p,a,b,c,d,e,f) (p)->lpVtbl->CreateBinding(p,a,b,c,d,e,f)
1509 #define IInternetSession_SetSessionOption(p,a,b,c,d) (p)->lpVtbl->SetSessionOption(p,a,b,c,d)
1510 #endif
1511
1512 #endif
1513
1514 #define IInternetSession_METHODS \
1515     ICOM_MSVTABLE_COMPAT_FIELDS \
1516     /*** IUnknown methods ***/ \
1517     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1518     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1519     STDMETHOD_(ULONG,Release)(THIS) PURE; \
1520     /*** IInternetSession methods ***/ \
1521     STDMETHOD_(HRESULT,RegisterNameSpace)(THIS_ IClassFactory* pCF, REFCLSID rclsid, LPCWSTR pwzProtocol, ULONG cPatterns, const LPCWSTR* ppwzPatterns, DWORD dwReserved) PURE; \
1522     STDMETHOD_(HRESULT,UnregisterNameSpace)(THIS_ IClassFactory* pCF, LPCWSTR pszProtocol) PURE; \
1523     STDMETHOD_(HRESULT,RegisterMimeFilter)(THIS_ IClassFactory* pCF, REFCLSID rclsid, LPCWSTR pwzType) PURE; \
1524     STDMETHOD_(HRESULT,UnregisterMimeFilter)(THIS_ IClassFactory* pCF, LPCWSTR pwzType) PURE; \
1525     STDMETHOD_(HRESULT,CreateBinding)(THIS_ LPBC pBC, LPCWSTR szUrl, IUnknown* pUnkOuter, IUnknown** ppUnk, void** ppOInetProt, DWORD dwOption) PURE; \
1526     STDMETHOD_(HRESULT,SetSessionOption)(THIS_ DWORD dwOption, LPVOID pBuffer, DWORD dwBufferLength, DWORD dwReserved) PURE;
1527
1528 HRESULT CALLBACK IInternetSession_RegisterNameSpace_Proxy(
1529     IInternetSession* This,
1530     IClassFactory* pCF,
1531     REFCLSID rclsid,
1532     LPCWSTR pwzProtocol,
1533     ULONG cPatterns,
1534     const LPCWSTR* ppwzPatterns,
1535     DWORD dwReserved);
1536 void __RPC_STUB IInternetSession_RegisterNameSpace_Stub(
1537     struct IRpcStubBuffer* This,
1538     struct IRpcChannelBuffer* pRpcChannelBuffer,
1539     PRPC_MESSAGE pRpcMessage,
1540     DWORD* pdwStubPhase);
1541 HRESULT CALLBACK IInternetSession_UnregisterNameSpace_Proxy(
1542     IInternetSession* This,
1543     IClassFactory* pCF,
1544     LPCWSTR pszProtocol);
1545 void __RPC_STUB IInternetSession_UnregisterNameSpace_Stub(
1546     struct IRpcStubBuffer* This,
1547     struct IRpcChannelBuffer* pRpcChannelBuffer,
1548     PRPC_MESSAGE pRpcMessage,
1549     DWORD* pdwStubPhase);
1550 HRESULT CALLBACK IInternetSession_RegisterMimeFilter_Proxy(
1551     IInternetSession* This,
1552     IClassFactory* pCF,
1553     REFCLSID rclsid,
1554     LPCWSTR pwzType);
1555 void __RPC_STUB IInternetSession_RegisterMimeFilter_Stub(
1556     struct IRpcStubBuffer* This,
1557     struct IRpcChannelBuffer* pRpcChannelBuffer,
1558     PRPC_MESSAGE pRpcMessage,
1559     DWORD* pdwStubPhase);
1560 HRESULT CALLBACK IInternetSession_UnregisterMimeFilter_Proxy(
1561     IInternetSession* This,
1562     IClassFactory* pCF,
1563     LPCWSTR pwzType);
1564 void __RPC_STUB IInternetSession_UnregisterMimeFilter_Stub(
1565     struct IRpcStubBuffer* This,
1566     struct IRpcChannelBuffer* pRpcChannelBuffer,
1567     PRPC_MESSAGE pRpcMessage,
1568     DWORD* pdwStubPhase);
1569 HRESULT CALLBACK IInternetSession_CreateBinding_Proxy(
1570     IInternetSession* This,
1571     LPBC pBC,
1572     LPCWSTR szUrl,
1573     IUnknown* pUnkOuter,
1574     IUnknown** ppUnk,
1575     void** ppOInetProt,
1576     DWORD dwOption);
1577 void __RPC_STUB IInternetSession_CreateBinding_Stub(
1578     struct IRpcStubBuffer* This,
1579     struct IRpcChannelBuffer* pRpcChannelBuffer,
1580     PRPC_MESSAGE pRpcMessage,
1581     DWORD* pdwStubPhase);
1582 HRESULT CALLBACK IInternetSession_SetSessionOption_Proxy(
1583     IInternetSession* This,
1584     DWORD dwOption,
1585     LPVOID pBuffer,
1586     DWORD dwBufferLength,
1587     DWORD dwReserved);
1588 void __RPC_STUB IInternetSession_SetSessionOption_Stub(
1589     struct IRpcStubBuffer* This,
1590     struct IRpcChannelBuffer* pRpcChannelBuffer,
1591     PRPC_MESSAGE pRpcMessage,
1592     DWORD* pdwStubPhase);
1593
1594 #endif  /* __IInternetSession_INTERFACE_DEFINED__ */
1595
1596 DEFINE_GUID(IID_IAsyncMoniker, 0x79EAC9D3, 0xBAF9, 0x11CE, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B);
1597 DEFINE_GUID(CLSID_StdURLMoniker, 0x79EAC9E0, 0xBAF9, 0x11CE, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B);
1598 #define MK_S_ASYNCHRONOUS                0x000401E8
1599 #define S_ASYNCHRONOUS                   MK_S_ASYNCHRONOUS
1600 #define INET_E_ERROR_FIRST               0x800C0002L
1601 #define INET_E_INVALID_URL               0x800C0002L
1602 #define INET_E_NO_SESSION                0x800C0003L
1603 #define INET_E_CANNOT_CONNECT            0x800C0004L
1604 #define INET_E_RESOURCE_NOT_FOUND        0x800C0005L
1605 #define INET_E_OBJECT_NOT_FOUND          0x800C0006L
1606 #define INET_E_DATA_NOT_AVAILABLE        0x800C0007L
1607 #define INET_E_DOWNLOAD_FAILURE          0x800C0008L
1608 #define INET_E_AUTHENTICATION_REQUIRED   0x800C0009L
1609 #define INET_E_NO_VALID_MEDIA            0x800C000AL
1610 #define INET_E_CONNECTION_TIMEOUT        0x800C000BL
1611 #define INET_E_INVALID_REQUEST           0x800C000CL
1612 #define INET_E_UNKNOWN_PROTOCOL          0x800C000DL
1613 #define INET_E_SECURITY_PROBLEM          0x800C000EL
1614 #define INET_E_CANNOT_LOAD_DATA          0x800C000FL
1615 #define INET_E_CANNOT_INSTANTIATE_OBJECT 0x800C0010L
1616 #define INET_E_QUERYOPTION_UNKNOWN       0x800C0013L
1617 #define INET_E_REDIRECT_FAILED           0x800C0014L
1618 #define INET_E_REDIRECT_TO_DIR           0x800C0015L
1619 #define INET_E_CANNOT_LOCK_REQUEST       0x800C0016L
1620 #define INET_E_ERROR_LAST                INET_E_REDIRECT_TO_DIR
1621 HRESULT WINAPI CreateURLMoniker(IMoniker *pmkContext, LPCWSTR szURL, IMoniker **ppmk);
1622 HRESULT WINAPI RegisterBindStatusCallback(IBindCtx *pbc, IBindStatusCallback *pbsc, IBindStatusCallback **ppbsc, DWORD dwReserved);
1623 HRESULT WINAPI CompareSecurityIds(BYTE*,DWORD,BYTE*,DWORD,DWORD);
1624 HRESULT WINAPI URLDownloadToFileA(LPUNKNOWN pCaller, LPCSTR szURL,  LPCSTR  szFileName, DWORD dwReserved, LPBINDSTATUSCALLBACK lpfnCB);
1625 HRESULT WINAPI URLDownloadToFileW(LPUNKNOWN pCaller, LPCWSTR szURL, LPCWSTR szFileName, DWORD dwReserved, LPBINDSTATUSCALLBACK lpfnCB);
1626 HRESULT WINAPI CoInternetGetSession(DWORD,IInternetSession**,DWORD);
1627 HRESULT WINAPI MkParseDisplayNameEx(IBindCtx*,LPCWSTR,ULONG*,IMoniker**);
1628 HRESULT WINAPI IsAsyncMoniker(IMoniker* pmk);
1629 HRESULT WINAPI CreateAsyncBindCtx(DWORD, IBindStatusCallback*, IEnumFORMATETC*, IBindCtx**);
1630 HRESULT WINAPI CoInternetCombineUrl(LPCWSTR,LPCWSTR,DWORD,LPWSTR,DWORD,DWORD*,DWORD);
1631 HRESULT WINAPI CoInternetCompareUrl(LPCWSTR,LPCWSTR,DWORD);
1632 #define OInetCombineUrl CoInternetCombineUrl
1633 #define OInetCompareUrl CoInternetCompareUrl
1634 #define OInetGetSession CoInternetGetSession
1635 #define MKSYS_URLMONIKER 6
1636 #ifdef __cplusplus
1637 }
1638 #endif
1639 #endif /* __WIDL_URLMON_H */