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