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