1/*** Autogenerated by WIDL 1.5.29 from /tmp/build-mingw64-toolchain-digit/src/mingw-w64-svn-r5861/mingw-w64-headers/include/urlmon.idl - Do not edit ***/
2
3#ifndef __REQUIRED_RPCNDR_H_VERSION__
4#define __REQUIRED_RPCNDR_H_VERSION__ 475
5#endif
6
7#include <rpc.h>
8#include <rpcndr.h>
9
10#ifndef COM_NO_WINDOWS_H
11#include <windows.h>
12#include <ole2.h>
13#endif
14
15#ifndef __urlmon_h__
16#define __urlmon_h__
17
18/* Forward declarations */
19
20#ifndef __IBinding_FWD_DEFINED__
21#define __IBinding_FWD_DEFINED__
22typedef interface IBinding IBinding;
23#endif
24
25#ifndef __IBindStatusCallback_FWD_DEFINED__
26#define __IBindStatusCallback_FWD_DEFINED__
27typedef interface IBindStatusCallback IBindStatusCallback;
28#endif
29
30/* Headers for imported files */
31
32#include <objidl.h>
33#include <oleidl.h>
34
35#ifdef __cplusplus
36extern "C" {
37#endif
38
39#include <_mingw_unicode.h>
40#ifndef __IPersistMoniker_FWD_DEFINED__
41#define __IPersistMoniker_FWD_DEFINED__
42typedef struct IPersistMoniker IPersistMoniker;
43#endif
44
45#ifndef __IMonikerProp_FWD_DEFINED__
46#define __IMonikerProp_FWD_DEFINED__
47typedef struct IMonikerProp IMonikerProp;
48#endif
49
50#ifndef __IBindProtocol_FWD_DEFINED__
51#define __IBindProtocol_FWD_DEFINED__
52typedef struct IBindProtocol IBindProtocol;
53#endif
54
55#ifndef __IAuthenticate_FWD_DEFINED__
56#define __IAuthenticate_FWD_DEFINED__
57typedef struct IAuthenticate IAuthenticate;
58#endif
59
60#ifndef __IHttpNegotiate_FWD_DEFINED__
61#define __IHttpNegotiate_FWD_DEFINED__
62typedef struct IHttpNegotiate IHttpNegotiate;
63#endif
64
65#ifndef __IHttpNegotiate2_FWD_DEFINED__
66#define __IHttpNegotiate2_FWD_DEFINED__
67typedef struct IHttpNegotiate2 IHttpNegotiate2;
68#endif
69
70#ifndef __IWinInetFileStream_FWD_DEFINED__
71#define __IWinInetFileStream_FWD_DEFINED__
72typedef struct IWinInetFileStream IWinInetFileStream;
73#endif
74
75#ifndef __IWindowForBindingUI_FWD_DEFINED__
76#define __IWindowForBindingUI_FWD_DEFINED__
77typedef struct IWindowForBindingUI IWindowForBindingUI;
78#endif
79
80#ifndef __ICodeInstall_FWD_DEFINED__
81#define __ICodeInstall_FWD_DEFINED__
82typedef struct ICodeInstall ICodeInstall;
83#endif
84
85#ifndef __IWinInetInfo_FWD_DEFINED__
86#define __IWinInetInfo_FWD_DEFINED__
87typedef struct IWinInetInfo IWinInetInfo;
88#endif
89
90#ifndef __IHttpSecurity_FWD_DEFINED__
91#define __IHttpSecurity_FWD_DEFINED__
92typedef struct IHttpSecurity IHttpSecurity;
93#endif
94
95#ifndef __IWinInetHttpInfo_FWD_DEFINED__
96#define __IWinInetHttpInfo_FWD_DEFINED__
97typedef struct IWinInetHttpInfo IWinInetHttpInfo;
98#endif
99
100#ifndef __IWinInetCacheHints_FWD_DEFINED__
101#define __IWinInetCacheHints_FWD_DEFINED__
102typedef struct IWinInetCacheHints IWinInetCacheHints;
103#endif
104
105#ifndef __IBindHost_FWD_DEFINED__
106#define __IBindHost_FWD_DEFINED__
107typedef struct IBindHost IBindHost;
108#endif
109
110#ifndef __IInternet_FWD_DEFINED__
111#define __IInternet_FWD_DEFINED__
112typedef struct IInternet IInternet;
113#endif
114
115#ifndef __IInternetBindInfo_FWD_DEFINED__
116#define __IInternetBindInfo_FWD_DEFINED__
117typedef struct IInternetBindInfo IInternetBindInfo;
118#endif
119
120#ifndef __IInternetProtocolRoot_FWD_DEFINED__
121#define __IInternetProtocolRoot_FWD_DEFINED__
122typedef struct IInternetProtocolRoot IInternetProtocolRoot;
123#endif
124
125#ifndef __IInternetProtocol_FWD_DEFINED__
126#define __IInternetProtocol_FWD_DEFINED__
127typedef struct IInternetProtocol IInternetProtocol;
128#endif
129
130#ifndef __IInternetProtocolSink_FWD_DEFINED__
131#define __IInternetProtocolSink_FWD_DEFINED__
132typedef struct IInternetProtocolSink IInternetProtocolSink;
133#endif
134
135#ifndef __IInternetProtocolSinkStackable_FWD_DEFINED__
136#define __IInternetProtocolSinkStackable_FWD_DEFINED__
137typedef struct IInternetProtocolSinkStackable IInternetProtocolSinkStackable;
138#endif
139
140#ifndef __IInternetSession_FWD_DEFINED__
141#define __IInternetSession_FWD_DEFINED__
142typedef struct IInternetSession IInternetSession;
143#endif
144
145#ifndef __IInternetThreadSwitch_FWD_DEFINED__
146#define __IInternetThreadSwitch_FWD_DEFINED__
147typedef struct IInternetThreadSwitch IInternetThreadSwitch;
148#endif
149
150#ifndef __IInternetPriority_FWD_DEFINED__
151#define __IInternetPriority_FWD_DEFINED__
152typedef struct IInternetPriority IInternetPriority;
153#endif
154
155#ifndef __IInternetProtocolInfo_FWD_DEFINED__
156#define __IInternetProtocolInfo_FWD_DEFINED__
157typedef struct IInternetProtocolInfo IInternetProtocolInfo;
158#endif
159
160#ifndef __IInternetSecurityMgrSite_FWD_DEFINED__
161#define __IInternetSecurityMgrSite_FWD_DEFINED__
162typedef struct IInternetSecurityMgrSite IInternetSecurityMgrSite;
163#endif
164
165#ifndef __IInternetSecurityManager_FWD_DEFINED__
166#define __IInternetSecurityManager_FWD_DEFINED__
167typedef struct IInternetSecurityManager IInternetSecurityManager;
168#endif
169
170#ifndef __IInternetSecurityManagerEx_FWD_DEFINED__
171#define __IInternetSecurityManagerEx_FWD_DEFINED__
172typedef struct IInternetSecurityManagerEx IInternetSecurityManagerEx;
173#endif
174
175#ifndef __IZoneIdentifier_FWD_DEFINED__
176#define __IZoneIdentifier_FWD_DEFINED__
177typedef struct IZoneIdentifier IZoneIdentifier;
178#endif
179
180#ifndef __IInternetHostSecurityManager_FWD_DEFINED__
181#define __IInternetHostSecurityManager_FWD_DEFINED__
182typedef struct IInternetHostSecurityManager IInternetHostSecurityManager;
183#endif
184
185#ifndef __IInternetZoneManager_FWD_DEFINED__
186#define __IInternetZoneManager_FWD_DEFINED__
187typedef struct IInternetZoneManager IInternetZoneManager;
188#endif
189
190#ifndef __IInternetZoneManagerEx_FWD_DEFINED__
191#define __IInternetZoneManagerEx_FWD_DEFINED__
192typedef struct IInternetZoneManagerEx IInternetZoneManagerEx;
193#endif
194
195#ifndef __ISoftDistExt_FWD_DEFINED__
196#define __ISoftDistExt_FWD_DEFINED__
197typedef struct ISoftDistExt ISoftDistExt;
198#endif
199
200#ifndef __ICatalogFileInfo_FWD_DEFINED__
201#define __ICatalogFileInfo_FWD_DEFINED__
202typedef struct ICatalogFileInfo ICatalogFileInfo;
203#endif
204
205#ifndef __IDataFilter_FWD_DEFINED__
206#define __IDataFilter_FWD_DEFINED__
207typedef struct IDataFilter IDataFilter;
208#endif
209
210#ifndef __IEncodingFilterFactory_FWD_DEFINED__
211#define __IEncodingFilterFactory_FWD_DEFINED__
212typedef struct IEncodingFilterFactory IEncodingFilterFactory;
213#endif
214
215#ifndef __IWrappedProtocol_FWD_DEFINED__
216#define __IWrappedProtocol_FWD_DEFINED__
217typedef struct IWrappedProtocol IWrappedProtocol;
218#endif
219
220#include "servprov.h"
221#include "msxml.h"
222
223  EXTERN_C const IID CLSID_SBS_StdURLMoniker;
224  EXTERN_C const IID CLSID_SBS_HttpProtocol;
225  EXTERN_C const IID CLSID_SBS_FtpProtocol;
226  EXTERN_C const IID CLSID_SBS_GopherProtocol;
227  EXTERN_C const IID CLSID_SBS_HttpSProtocol;
228  EXTERN_C const IID CLSID_SBS_FileProtocol;
229  EXTERN_C const IID CLSID_SBS_MkProtocol;
230  EXTERN_C const IID CLSID_SBS_UrlMkBindCtx;
231  EXTERN_C const IID CLSID_SBS_SoftDistExt;
232  EXTERN_C const IID CLSID_SBS_StdEncodingFilterFac;
233  EXTERN_C const IID CLSID_SBS_DeCompMimeFilter;
234  EXTERN_C const IID CLSID_SBS_CdlProtocol;
235  EXTERN_C const IID CLSID_SBS_ClassInstallFilter;
236  EXTERN_C const IID CLSID_SBS_InternetSecurityManager;
237  EXTERN_C const IID CLSID_SBS_InternetZoneManager;
238
239#define BINDF_DONTUSECACHE BINDF_GETNEWESTVERSION
240#define BINDF_DONTPUTINCACHE BINDF_NOWRITECACHE
241#define BINDF_NOCOPYDATA BINDF_PULLDATA
242#define INVALID_P_ROOT_SECURITY_ID ((BYTE*)-1)
243#define PI_DOCFILECLSIDLOOKUP PI_CLSIDLOOKUP
244  EXTERN_C const IID IID_IAsyncMoniker;
245  EXTERN_C const IID CLSID_StdURLMoniker;
246  EXTERN_C const IID CLSID_HttpProtocol;
247  EXTERN_C const IID CLSID_FtpProtocol;
248  EXTERN_C const IID CLSID_GopherProtocol;
249  EXTERN_C const IID CLSID_HttpSProtocol;
250  EXTERN_C const IID CLSID_FileProtocol;
251  EXTERN_C const IID CLSID_MkProtocol;
252  EXTERN_C const IID CLSID_StdURLProtocol;
253  EXTERN_C const IID CLSID_UrlMkBindCtx;
254  EXTERN_C const IID CLSID_StdEncodingFilterFac;
255  EXTERN_C const IID CLSID_DeCompMimeFilter;
256  EXTERN_C const IID CLSID_CdlProtocol;
257  EXTERN_C const IID CLSID_ClassInstallFilter;
258  EXTERN_C const IID IID_IAsyncBindCtx;
259
260#define SZ_URLCONTEXT OLESTR("URL Context")
261#define SZ_ASYNC_CALLEE OLESTR("AsyncCallee")
262#define MKSYS_URLMONIKER 6
263#define URL_MK_LEGACY 0
264#define URL_MK_UNIFORM 1
265#define URL_MK_NO_CANONICALIZE 2
266
267  STDAPI CreateURLMoniker(LPMONIKER pMkCtx,LPCWSTR szURL,LPMONIKER *ppmk);
268  STDAPI CreateURLMonikerEx(LPMONIKER pMkCtx,LPCWSTR szURL,LPMONIKER *ppmk,DWORD dwFlags);
269  STDAPI GetClassURL(LPCWSTR szURL,CLSID *pClsID);
270  STDAPI CreateAsyncBindCtx(DWORD reserved,IBindStatusCallback *pBSCb,IEnumFORMATETC *pEFetc,IBindCtx **ppBC);
271  STDAPI CreateAsyncBindCtxEx(IBindCtx *pbc,DWORD dwOptions,IBindStatusCallback *pBSCb,IEnumFORMATETC *pEnum,IBindCtx **ppBC,DWORD reserved);
272  STDAPI MkParseDisplayNameEx(IBindCtx *pbc,LPCWSTR szDisplayName,ULONG *pchEaten,LPMONIKER *ppmk);
273  STDAPI RegisterBindStatusCallback(LPBC pBC,IBindStatusCallback *pBSCb,IBindStatusCallback **ppBSCBPrev,DWORD dwReserved);
274  STDAPI RevokeBindStatusCallback(LPBC pBC,IBindStatusCallback *pBSCb);
275  STDAPI GetClassFileOrMime(LPBC pBC,LPCWSTR szFilename,LPVOID pBuffer,DWORD cbSize,LPCWSTR szMime,DWORD dwReserved,CLSID *pclsid);
276  STDAPI IsValidURL(LPBC pBC,LPCWSTR szURL,DWORD dwReserved);
277  STDAPI CoGetClassObjectFromURL(REFCLSID rCLASSID,LPCWSTR szCODE,DWORD dwFileVersionMS,DWORD dwFileVersionLS,LPCWSTR szTYPE,LPBINDCTX pBindCtx,DWORD dwClsContext,LPVOID pvReserved,REFIID riid,LPVOID *ppv);
278  STDAPI FaultInIEFeature(HWND hWnd,uCLSSPEC *pClassSpec,QUERYCONTEXT *pQuery,DWORD dwFlags);
279  STDAPI GetComponentIDFromCLSSPEC(uCLSSPEC *pClassspec,LPSTR *ppszComponentID);
280
281#define FIEF_FLAG_FORCE_JITUI 0x1
282
283#define FIEF_FLAG_PEEK 0x2
284#define FIEF_FLAG_SKIP_INSTALLED_VERSION_CHECK 0x4
285
286  STDAPI IsAsyncMoniker(IMoniker *pmk);
287  STDAPI CreateURLBinding(LPCWSTR lpszUrl,IBindCtx *pbc,IBinding **ppBdg);
288  STDAPI RegisterMediaTypes(UINT ctypes,const LPCSTR *rgszTypes,CLIPFORMAT *rgcfTypes);
289  STDAPI FindMediaType(LPCSTR rgszTypes,CLIPFORMAT *rgcfTypes);
290  STDAPI CreateFormatEnumerator(UINT cfmtetc,FORMATETC *rgfmtetc,IEnumFORMATETC **ppenumfmtetc);
291  STDAPI RegisterFormatEnumerator(LPBC pBC,IEnumFORMATETC *pEFetc,DWORD reserved);
292  STDAPI RevokeFormatEnumerator(LPBC pBC,IEnumFORMATETC *pEFetc);
293  STDAPI RegisterMediaTypeClass(LPBC pBC,UINT ctypes,const LPCSTR *rgszTypes,CLSID *rgclsID,DWORD reserved);
294  STDAPI FindMediaTypeClass(LPBC pBC,LPCSTR szType,CLSID *pclsID,DWORD reserved);
295  STDAPI UrlMkSetSessionOption(DWORD dwOption,LPVOID pBuffer,DWORD dwBufferLength,DWORD dwReserved);
296  STDAPI UrlMkGetSessionOption(DWORD dwOption,LPVOID pBuffer,DWORD dwBufferLength,DWORD *pdwBufferLength,DWORD dwReserved);
297  STDAPI FindMimeFromData(LPBC pBC,LPCWSTR pwzUrl,LPVOID pBuffer,DWORD cbSize,LPCWSTR pwzMimeProposed,DWORD dwMimeFlags,LPWSTR *ppwzMimeOut,DWORD dwReserved);
298#define FMFD_DEFAULT 0x00000000
299#define FMFD_URLASFILENAME 0x00000001
300#define FMFD_ENABLEMIMESNIFFING 0x00000002
301#define FMFD_IGNOREMIMETEXTPLAIN 0x00000004
302  STDAPI ObtainUserAgentString(DWORD dwOption,LPSTR pszUAOut,DWORD *cbSize);
303  STDAPI CompareSecurityIds(BYTE *pbSecurityId1,DWORD dwLen1,BYTE *pbSecurityId2,DWORD dwLen2,DWORD dwReserved);
304  STDAPI CompatFlagsFromClsid(CLSID *pclsid,LPDWORD pdwCompatFlags,LPDWORD pdwMiscStatusFlags);
305
306#define URLMON_OPTION_USERAGENT 0x10000001
307#define URLMON_OPTION_USERAGENT_REFRESH 0x10000002
308#define URLMON_OPTION_URL_ENCODING 0x10000004
309#define URLMON_OPTION_USE_BINDSTRINGCREDS 0x10000008
310
311#define CF_NULL 0
312#define CFSTR_MIME_NULL NULL
313#define CFSTR_MIME_TEXT (TEXT("text/plain"))
314#define CFSTR_MIME_RICHTEXT (TEXT("text/richtext"))
315#define CFSTR_MIME_X_BITMAP (TEXT("image/x-xbitmap"))
316#define CFSTR_MIME_POSTSCRIPT (TEXT("application/postscript"))
317#define CFSTR_MIME_AIFF (TEXT("audio/aiff"))
318#define CFSTR_MIME_BASICAUDIO (TEXT("audio/basic"))
319#define CFSTR_MIME_WAV (TEXT("audio/wav"))
320#define CFSTR_MIME_X_WAV (TEXT("audio/x-wav"))
321#define CFSTR_MIME_GIF (TEXT("image/gif"))
322#define CFSTR_MIME_PJPEG (TEXT("image/pjpeg"))
323#define CFSTR_MIME_JPEG (TEXT("image/jpeg"))
324#define CFSTR_MIME_TIFF (TEXT("image/tiff"))
325#define CFSTR_MIME_X_PNG (TEXT("image/x-png"))
326#define CFSTR_MIME_BMP (TEXT("image/bmp"))
327#define CFSTR_MIME_X_ART (TEXT("image/x-jg"))
328#define CFSTR_MIME_X_EMF (TEXT("image/x-emf"))
329#define CFSTR_MIME_X_WMF (TEXT("image/x-wmf"))
330#define CFSTR_MIME_AVI (TEXT("video/avi"))
331#define CFSTR_MIME_MPEG (TEXT("video/mpeg"))
332#define CFSTR_MIME_FRACTALS (TEXT("application/fractals"))
333#define CFSTR_MIME_RAWDATA (TEXT("application/octet-stream"))
334#define CFSTR_MIME_RAWDATASTRM (TEXT("application/octet-stream"))
335#define CFSTR_MIME_PDF (TEXT("application/pdf"))
336#define CFSTR_MIME_HTA (TEXT("application/hta"))
337#define CFSTR_MIME_X_AIFF (TEXT("audio/x-aiff"))
338#define CFSTR_MIME_X_REALAUDIO (TEXT("audio/x-pn-realaudio"))
339#define CFSTR_MIME_XBM (TEXT("image/xbm"))
340#define CFSTR_MIME_QUICKTIME (TEXT("video/quicktime"))
341#define CFSTR_MIME_X_MSVIDEO (TEXT("video/x-msvideo"))
342#define CFSTR_MIME_X_SGI_MOVIE (TEXT("video/x-sgi-movie"))
343#define CFSTR_MIME_HTML (TEXT("text/html"))
344#define CFSTR_MIME_XML (TEXT("text/xml"))
345
346#define MK_S_ASYNCHRONOUS _HRESULT_TYPEDEF_(0x000401E8L)
347#ifndef S_ASYNCHRONOUS
348#define S_ASYNCHRONOUS MK_S_ASYNCHRONOUS
349#endif
350
351#ifndef E_PENDING
352#define E_PENDING _HRESULT_TYPEDEF_(0x8000000AL)
353#endif
354
355#define INET_E_INVALID_URL _HRESULT_TYPEDEF_(0x800C0002L)
356#define INET_E_NO_SESSION _HRESULT_TYPEDEF_(0x800C0003L)
357#define INET_E_CANNOT_CONNECT _HRESULT_TYPEDEF_(0x800C0004L)
358#define INET_E_RESOURCE_NOT_FOUND _HRESULT_TYPEDEF_(0x800C0005L)
359#define INET_E_OBJECT_NOT_FOUND _HRESULT_TYPEDEF_(0x800C0006L)
360#define INET_E_DATA_NOT_AVAILABLE _HRESULT_TYPEDEF_(0x800C0007L)
361#define INET_E_DOWNLOAD_FAILURE _HRESULT_TYPEDEF_(0x800C0008L)
362#define INET_E_AUTHENTICATION_REQUIRED _HRESULT_TYPEDEF_(0x800C0009L)
363#define INET_E_NO_VALID_MEDIA _HRESULT_TYPEDEF_(0x800C000AL)
364#define INET_E_CONNECTION_TIMEOUT _HRESULT_TYPEDEF_(0x800C000BL)
365#define INET_E_INVALID_REQUEST _HRESULT_TYPEDEF_(0x800C000CL)
366#define INET_E_UNKNOWN_PROTOCOL _HRESULT_TYPEDEF_(0x800C000DL)
367#define INET_E_SECURITY_PROBLEM _HRESULT_TYPEDEF_(0x800C000EL)
368#define INET_E_CANNOT_LOAD_DATA _HRESULT_TYPEDEF_(0x800C000FL)
369#define INET_E_CANNOT_INSTANTIATE_OBJECT _HRESULT_TYPEDEF_(0x800C0010L)
370#define INET_E_REDIRECT_FAILED _HRESULT_TYPEDEF_(0x800C0014L)
371#define INET_E_REDIRECT_TO_DIR _HRESULT_TYPEDEF_(0x800C0015L)
372#define INET_E_CANNOT_LOCK_REQUEST _HRESULT_TYPEDEF_(0x800C0016L)
373#define INET_E_USE_EXTEND_BINDING _HRESULT_TYPEDEF_(0x800C0017L)
374#define INET_E_TERMINATED_BIND _HRESULT_TYPEDEF_(0x800C0018L)
375#define INET_E_ERROR_FIRST _HRESULT_TYPEDEF_(0x800C0002L)
376#define INET_E_CODE_DOWNLOAD_DECLINED _HRESULT_TYPEDEF_(0x800C0100L)
377#define INET_E_RESULT_DISPATCHED _HRESULT_TYPEDEF_(0x800C0200L)
378#define INET_E_CANNOT_REPLACE_SFP_FILE _HRESULT_TYPEDEF_(0x800C0300L)
379#define INET_E_CODE_INSTALL_SUPPRESSED _HRESULT_TYPEDEF_(0x800C0400L)
380#define INET_E_ERROR_LAST INET_E_CANNOT_REPLACE_SFP_FILE
381
382#ifndef _LPPERSISTMONIKER_DEFINED
383#define _LPPERSISTMONIKER_DEFINED
384  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_v0_0_c_ifspec;
385  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_v0_0_s_ifspec;
386#ifndef __IPersistMoniker_INTERFACE_DEFINED__
387#define __IPersistMoniker_INTERFACE_DEFINED__
388  typedef IPersistMoniker *LPPERSISTMONIKER;
389
390  EXTERN_C const IID IID_IPersistMoniker;
391#if defined(__cplusplus) && !defined(CINTERFACE)
392  struct IPersistMoniker : public IUnknown {
393  public:
394    virtual HRESULT WINAPI GetClassID(CLSID *pClassID) = 0;
395    virtual HRESULT WINAPI IsDirty(void) = 0;
396    virtual HRESULT WINAPI Load(WINBOOL fFullyAvailable,IMoniker *pimkName,LPBC pibc,DWORD grfMode) = 0;
397    virtual HRESULT WINAPI Save(IMoniker *pimkName,LPBC pbc,WINBOOL fRemember) = 0;
398    virtual HRESULT WINAPI SaveCompleted(IMoniker *pimkName,LPBC pibc) = 0;
399    virtual HRESULT WINAPI GetCurMoniker(IMoniker **ppimkName) = 0;
400  };
401#else
402  typedef struct IPersistMonikerVtbl {
403    BEGIN_INTERFACE
404      HRESULT (WINAPI *QueryInterface)(IPersistMoniker *This,REFIID riid,void **ppvObject);
405      ULONG (WINAPI *AddRef)(IPersistMoniker *This);
406      ULONG (WINAPI *Release)(IPersistMoniker *This);
407      HRESULT (WINAPI *GetClassID)(IPersistMoniker *This,CLSID *pClassID);
408      HRESULT (WINAPI *IsDirty)(IPersistMoniker *This);
409      HRESULT (WINAPI *Load)(IPersistMoniker *This,WINBOOL fFullyAvailable,IMoniker *pimkName,LPBC pibc,DWORD grfMode);
410      HRESULT (WINAPI *Save)(IPersistMoniker *This,IMoniker *pimkName,LPBC pbc,WINBOOL fRemember);
411      HRESULT (WINAPI *SaveCompleted)(IPersistMoniker *This,IMoniker *pimkName,LPBC pibc);
412      HRESULT (WINAPI *GetCurMoniker)(IPersistMoniker *This,IMoniker **ppimkName);
413    END_INTERFACE
414  } IPersistMonikerVtbl;
415  struct IPersistMoniker {
416    CONST_VTBL struct IPersistMonikerVtbl *lpVtbl;
417  };
418#ifdef COBJMACROS
419#define IPersistMoniker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
420#define IPersistMoniker_AddRef(This) (This)->lpVtbl->AddRef(This)
421#define IPersistMoniker_Release(This) (This)->lpVtbl->Release(This)
422#define IPersistMoniker_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
423#define IPersistMoniker_IsDirty(This) (This)->lpVtbl->IsDirty(This)
424#define IPersistMoniker_Load(This,fFullyAvailable,pimkName,pibc,grfMode) (This)->lpVtbl->Load(This,fFullyAvailable,pimkName,pibc,grfMode)
425#define IPersistMoniker_Save(This,pimkName,pbc,fRemember) (This)->lpVtbl->Save(This,pimkName,pbc,fRemember)
426#define IPersistMoniker_SaveCompleted(This,pimkName,pibc) (This)->lpVtbl->SaveCompleted(This,pimkName,pibc)
427#define IPersistMoniker_GetCurMoniker(This,ppimkName) (This)->lpVtbl->GetCurMoniker(This,ppimkName)
428#endif
429#endif
430  HRESULT WINAPI IPersistMoniker_GetClassID_Proxy(IPersistMoniker *This,CLSID *pClassID);
431  void __RPC_STUB IPersistMoniker_GetClassID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
432  HRESULT WINAPI IPersistMoniker_IsDirty_Proxy(IPersistMoniker *This);
433  void __RPC_STUB IPersistMoniker_IsDirty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
434  HRESULT WINAPI IPersistMoniker_Load_Proxy(IPersistMoniker *This,WINBOOL fFullyAvailable,IMoniker *pimkName,LPBC pibc,DWORD grfMode);
435  void __RPC_STUB IPersistMoniker_Load_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
436  HRESULT WINAPI IPersistMoniker_Save_Proxy(IPersistMoniker *This,IMoniker *pimkName,LPBC pbc,WINBOOL fRemember);
437  void __RPC_STUB IPersistMoniker_Save_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
438  HRESULT WINAPI IPersistMoniker_SaveCompleted_Proxy(IPersistMoniker *This,IMoniker *pimkName,LPBC pibc);
439  void __RPC_STUB IPersistMoniker_SaveCompleted_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
440  HRESULT WINAPI IPersistMoniker_GetCurMoniker_Proxy(IPersistMoniker *This,IMoniker **ppimkName);
441  void __RPC_STUB IPersistMoniker_GetCurMoniker_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
442#endif
443#endif
444
445#ifndef _LPMONIKERPROP_DEFINED
446#define _LPMONIKERPROP_DEFINED
447  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0178_v0_0_c_ifspec;
448  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0178_v0_0_s_ifspec;
449#ifndef __IMonikerProp_INTERFACE_DEFINED__
450#define __IMonikerProp_INTERFACE_DEFINED__
451  typedef IMonikerProp *LPMONIKERPROP;
452
453  typedef enum __MIDL_IMonikerProp_0001 {
454    MIMETYPEPROP = 0,USE_SRC_URL = 0x1,CLASSIDPROP = 0x2,TRUSTEDDOWNLOADPROP = 0x3,POPUPLEVELPROP = 0x4
455  } MONIKERPROPERTY;
456
457  EXTERN_C const IID IID_IMonikerProp;
458#if defined(__cplusplus) && !defined(CINTERFACE)
459  struct IMonikerProp : public IUnknown {
460  public:
461    virtual HRESULT WINAPI PutProperty(MONIKERPROPERTY mkp,LPCWSTR val) = 0;
462  };
463#else
464  typedef struct IMonikerPropVtbl {
465    BEGIN_INTERFACE
466      HRESULT (WINAPI *QueryInterface)(IMonikerProp *This,REFIID riid,void **ppvObject);
467      ULONG (WINAPI *AddRef)(IMonikerProp *This);
468      ULONG (WINAPI *Release)(IMonikerProp *This);
469      HRESULT (WINAPI *PutProperty)(IMonikerProp *This,MONIKERPROPERTY mkp,LPCWSTR val);
470    END_INTERFACE
471  } IMonikerPropVtbl;
472  struct IMonikerProp {
473    CONST_VTBL struct IMonikerPropVtbl *lpVtbl;
474  };
475#ifdef COBJMACROS
476#define IMonikerProp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
477#define IMonikerProp_AddRef(This) (This)->lpVtbl->AddRef(This)
478#define IMonikerProp_Release(This) (This)->lpVtbl->Release(This)
479#define IMonikerProp_PutProperty(This,mkp,val) (This)->lpVtbl->PutProperty(This,mkp,val)
480#endif
481#endif
482  HRESULT WINAPI IMonikerProp_PutProperty_Proxy(IMonikerProp *This,MONIKERPROPERTY mkp,LPCWSTR val);
483  void __RPC_STUB IMonikerProp_PutProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
484#endif
485#endif
486
487#ifndef _LPBINDPROTOCOL_DEFINED
488#define _LPBINDPROTOCOL_DEFINED
489  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0179_v0_0_c_ifspec;
490  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0179_v0_0_s_ifspec;
491#ifndef __IBindProtocol_INTERFACE_DEFINED__
492#define __IBindProtocol_INTERFACE_DEFINED__
493  typedef IBindProtocol *LPBINDPROTOCOL;
494
495  EXTERN_C const IID IID_IBindProtocol;
496#if defined(__cplusplus) && !defined(CINTERFACE)
497  struct IBindProtocol : public IUnknown {
498  public:
499    virtual HRESULT WINAPI CreateBinding(LPCWSTR szUrl,IBindCtx *pbc,IBinding **ppb) = 0;
500  };
501#else
502  typedef struct IBindProtocolVtbl {
503    BEGIN_INTERFACE
504      HRESULT (WINAPI *QueryInterface)(IBindProtocol *This,REFIID riid,void **ppvObject);
505      ULONG (WINAPI *AddRef)(IBindProtocol *This);
506      ULONG (WINAPI *Release)(IBindProtocol *This);
507      HRESULT (WINAPI *CreateBinding)(IBindProtocol *This,LPCWSTR szUrl,IBindCtx *pbc,IBinding **ppb);
508    END_INTERFACE
509  } IBindProtocolVtbl;
510  struct IBindProtocol {
511    CONST_VTBL struct IBindProtocolVtbl *lpVtbl;
512  };
513#ifdef COBJMACROS
514#define IBindProtocol_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
515#define IBindProtocol_AddRef(This) (This)->lpVtbl->AddRef(This)
516#define IBindProtocol_Release(This) (This)->lpVtbl->Release(This)
517#define IBindProtocol_CreateBinding(This,szUrl,pbc,ppb) (This)->lpVtbl->CreateBinding(This,szUrl,pbc,ppb)
518#endif
519#endif
520  HRESULT WINAPI IBindProtocol_CreateBinding_Proxy(IBindProtocol *This,LPCWSTR szUrl,IBindCtx *pbc,IBinding **ppb);
521  void __RPC_STUB IBindProtocol_CreateBinding_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
522#endif
523#endif
524#ifndef _LPBINDING_DEFINED
525#define _LPBINDING_DEFINED
526/*****************************************************************************
527 * IBinding interface
528 */
529#ifndef __IBinding_INTERFACE_DEFINED__
530#define __IBinding_INTERFACE_DEFINED__
531
532typedef IBinding *LPBINDING;
533DEFINE_GUID(IID_IBinding, 0x79eac9c0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
534#if defined(__cplusplus) && !defined(CINTERFACE)
535MIDL_INTERFACE("79eac9c0-baf9-11ce-8c82-00aa004ba90b")
536IBinding : public IUnknown
537{
538    virtual HRESULT STDMETHODCALLTYPE Abort(
539        ) = 0;
540
541    virtual HRESULT STDMETHODCALLTYPE Suspend(
542        ) = 0;
543
544    virtual HRESULT STDMETHODCALLTYPE Resume(
545        ) = 0;
546
547    virtual HRESULT STDMETHODCALLTYPE SetPriority(
548        LONG nPriority) = 0;
549
550    virtual HRESULT STDMETHODCALLTYPE GetPriority(
551        LONG *pnPriority) = 0;
552
553    virtual HRESULT STDMETHODCALLTYPE GetBindResult(
554        CLSID *pclsidProtocol,
555        DWORD *pdwResult,
556        LPOLESTR *pszResult,
557        DWORD *pdwReserved) = 0;
558
559};
560#ifdef __CRT_UUID_DECL
561__CRT_UUID_DECL(IBinding, 0x79eac9c0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
562#endif
563#else
564typedef struct IBindingVtbl {
565    BEGIN_INTERFACE
566
567    /*** IUnknown methods ***/
568    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
569        IBinding* This,
570        REFIID riid,
571        void **ppvObject);
572
573    ULONG (STDMETHODCALLTYPE *AddRef)(
574        IBinding* This);
575
576    ULONG (STDMETHODCALLTYPE *Release)(
577        IBinding* This);
578
579    /*** IBinding methods ***/
580    HRESULT (STDMETHODCALLTYPE *Abort)(
581        IBinding* This);
582
583    HRESULT (STDMETHODCALLTYPE *Suspend)(
584        IBinding* This);
585
586    HRESULT (STDMETHODCALLTYPE *Resume)(
587        IBinding* This);
588
589    HRESULT (STDMETHODCALLTYPE *SetPriority)(
590        IBinding* This,
591        LONG nPriority);
592
593    HRESULT (STDMETHODCALLTYPE *GetPriority)(
594        IBinding* This,
595        LONG *pnPriority);
596
597    HRESULT (STDMETHODCALLTYPE *GetBindResult)(
598        IBinding* This,
599        CLSID *pclsidProtocol,
600        DWORD *pdwResult,
601        LPOLESTR *pszResult,
602        DWORD *pdwReserved);
603
604    END_INTERFACE
605} IBindingVtbl;
606interface IBinding {
607    CONST_VTBL IBindingVtbl* lpVtbl;
608};
609
610#ifdef COBJMACROS
611#ifndef WIDL_C_INLINE_WRAPPERS
612/*** IUnknown methods ***/
613#define IBinding_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
614#define IBinding_AddRef(This) (This)->lpVtbl->AddRef(This)
615#define IBinding_Release(This) (This)->lpVtbl->Release(This)
616/*** IBinding methods ***/
617#define IBinding_Abort(This) (This)->lpVtbl->Abort(This)
618#define IBinding_Suspend(This) (This)->lpVtbl->Suspend(This)
619#define IBinding_Resume(This) (This)->lpVtbl->Resume(This)
620#define IBinding_SetPriority(This,nPriority) (This)->lpVtbl->SetPriority(This,nPriority)
621#define IBinding_GetPriority(This,pnPriority) (This)->lpVtbl->GetPriority(This,pnPriority)
622#define IBinding_GetBindResult(This,pclsidProtocol,pdwResult,pszResult,pdwReserved) (This)->lpVtbl->GetBindResult(This,pclsidProtocol,pdwResult,pszResult,pdwReserved)
623#else
624/*** IUnknown methods ***/
625static FORCEINLINE HRESULT IBinding_QueryInterface(IBinding* This,REFIID riid,void **ppvObject) {
626    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
627}
628static FORCEINLINE ULONG IBinding_AddRef(IBinding* This) {
629    return This->lpVtbl->AddRef(This);
630}
631static FORCEINLINE ULONG IBinding_Release(IBinding* This) {
632    return This->lpVtbl->Release(This);
633}
634/*** IBinding methods ***/
635static FORCEINLINE HRESULT IBinding_Abort(IBinding* This) {
636    return This->lpVtbl->Abort(This);
637}
638static FORCEINLINE HRESULT IBinding_Suspend(IBinding* This) {
639    return This->lpVtbl->Suspend(This);
640}
641static FORCEINLINE HRESULT IBinding_Resume(IBinding* This) {
642    return This->lpVtbl->Resume(This);
643}
644static FORCEINLINE HRESULT IBinding_SetPriority(IBinding* This,LONG nPriority) {
645    return This->lpVtbl->SetPriority(This,nPriority);
646}
647static FORCEINLINE HRESULT IBinding_GetPriority(IBinding* This,LONG *pnPriority) {
648    return This->lpVtbl->GetPriority(This,pnPriority);
649}
650static FORCEINLINE HRESULT IBinding_GetBindResult(IBinding* This,CLSID *pclsidProtocol,DWORD *pdwResult,LPOLESTR *pszResult,DWORD *pdwReserved) {
651    return This->lpVtbl->GetBindResult(This,pclsidProtocol,pdwResult,pszResult,pdwReserved);
652}
653#endif
654#endif
655
656#endif
657
658HRESULT STDMETHODCALLTYPE IBinding_Abort_Proxy(
659    IBinding* This);
660void __RPC_STUB IBinding_Abort_Stub(
661    IRpcStubBuffer* This,
662    IRpcChannelBuffer* pRpcChannelBuffer,
663    PRPC_MESSAGE pRpcMessage,
664    DWORD* pdwStubPhase);
665HRESULT STDMETHODCALLTYPE IBinding_Suspend_Proxy(
666    IBinding* This);
667void __RPC_STUB IBinding_Suspend_Stub(
668    IRpcStubBuffer* This,
669    IRpcChannelBuffer* pRpcChannelBuffer,
670    PRPC_MESSAGE pRpcMessage,
671    DWORD* pdwStubPhase);
672HRESULT STDMETHODCALLTYPE IBinding_Resume_Proxy(
673    IBinding* This);
674void __RPC_STUB IBinding_Resume_Stub(
675    IRpcStubBuffer* This,
676    IRpcChannelBuffer* pRpcChannelBuffer,
677    PRPC_MESSAGE pRpcMessage,
678    DWORD* pdwStubPhase);
679HRESULT STDMETHODCALLTYPE IBinding_SetPriority_Proxy(
680    IBinding* This,
681    LONG nPriority);
682void __RPC_STUB IBinding_SetPriority_Stub(
683    IRpcStubBuffer* This,
684    IRpcChannelBuffer* pRpcChannelBuffer,
685    PRPC_MESSAGE pRpcMessage,
686    DWORD* pdwStubPhase);
687HRESULT STDMETHODCALLTYPE IBinding_GetPriority_Proxy(
688    IBinding* This,
689    LONG *pnPriority);
690void __RPC_STUB IBinding_GetPriority_Stub(
691    IRpcStubBuffer* This,
692    IRpcChannelBuffer* pRpcChannelBuffer,
693    PRPC_MESSAGE pRpcMessage,
694    DWORD* pdwStubPhase);
695HRESULT STDMETHODCALLTYPE IBinding_RemoteGetBindResult_Proxy(
696    IBinding* This,
697    CLSID *pclsidProtocol,
698    DWORD *pdwResult,
699    LPOLESTR *pszResult,
700    DWORD dwReserved);
701void __RPC_STUB IBinding_RemoteGetBindResult_Stub(
702    IRpcStubBuffer* This,
703    IRpcChannelBuffer* pRpcChannelBuffer,
704    PRPC_MESSAGE pRpcMessage,
705    DWORD* pdwStubPhase);
706HRESULT CALLBACK IBinding_GetBindResult_Proxy(
707    IBinding* This,
708    CLSID *pclsidProtocol,
709    DWORD *pdwResult,
710    LPOLESTR *pszResult,
711    DWORD *pdwReserved);
712HRESULT __RPC_STUB IBinding_GetBindResult_Stub(
713    IBinding* This,
714    CLSID *pclsidProtocol,
715    DWORD *pdwResult,
716    LPOLESTR *pszResult,
717    DWORD dwReserved);
718
719#endif  /* __IBinding_INTERFACE_DEFINED__ */
720
721#endif
722#ifndef _LPBINDSTATUSCALLBACK_DEFINED
723#define _LPBINDSTATUSCALLBACK_DEFINED
724/*****************************************************************************
725 * IBindStatusCallback interface
726 */
727#ifndef __IBindStatusCallback_INTERFACE_DEFINED__
728#define __IBindStatusCallback_INTERFACE_DEFINED__
729
730typedef IBindStatusCallback *LPBINDSTATUSCALLBACK;
731typedef enum __WIDL_urlmon_generated_name_00000000 {
732    BINDVERB_GET = 0,
733    BINDVERB_POST = 1,
734    BINDVERB_PUT = 2,
735    BINDVERB_CUSTOM = 3
736} BINDVERB;
737typedef enum __WIDL_urlmon_generated_name_00000001 {
738    BINDINFOF_URLENCODESTGMEDDATA = 0x1,
739    BINDINFOF_URLENCODEDEXTRAINFO = 0x2
740} BINDINFOF;
741typedef enum __WIDL_urlmon_generated_name_00000002 {
742    BINDF_ASYNCHRONOUS = 0x1,
743    BINDF_ASYNCSTORAGE = 0x2,
744    BINDF_NOPROGRESSIVERENDERING = 0x4,
745    BINDF_OFFLINEOPERATION = 0x8,
746    BINDF_GETNEWESTVERSION = 0x10,
747    BINDF_NOWRITECACHE = 0x20,
748    BINDF_NEEDFILE = 0x40,
749    BINDF_PULLDATA = 0x80,
750    BINDF_IGNORESECURITYPROBLEM = 0x100,
751    BINDF_RESYNCHRONIZE = 0x200,
752    BINDF_HYPERLINK = 0x400,
753    BINDF_NO_UI = 0x800,
754    BINDF_SILENTOPERATION = 0x1000,
755    BINDF_PRAGMA_NO_CACHE = 0x2000,
756    BINDF_GETCLASSOBJECT = 0x4000,
757    BINDF_RESERVED_1 = 0x8000,
758    BINDF_FREE_THREADED = 0x10000,
759    BINDF_DIRECT_READ = 0x20000,
760    BINDF_FORMS_SUBMIT = 0x40000,
761    BINDF_GETFROMCACHE_IF_NET_FAIL = 0x80000,
762    BINDF_FROMURLMON = 0x100000,
763    BINDF_FWD_BACK = 0x200000,
764    BINDF_PREFERDEFAULTHANDLER = 0x400000,
765    BINDF_ENFORCERESTRICTED = 0x800000
766} BINDF;
767typedef enum __WIDL_urlmon_generated_name_00000003 {
768    URL_ENCODING_NONE = 0,
769    URL_ENCODING_ENABLE_UTF8 = 0x10000000,
770    URL_ENCODING_DISABLE_UTF8 = 0x20000000
771} URL_ENCODING;
772typedef struct _tagBINDINFO {
773    ULONG cbSize;
774    LPWSTR szExtraInfo;
775    STGMEDIUM stgmedData;
776    DWORD grfBindInfoF;
777    DWORD dwBindVerb;
778    LPWSTR szCustomVerb;
779    DWORD cbstgmedData;
780    DWORD dwOptions;
781    DWORD dwOptionsFlags;
782    DWORD dwCodePage;
783    SECURITY_ATTRIBUTES securityAttributes;
784    IID iid;
785    IUnknown *pUnk;
786    DWORD dwReserved;
787} BINDINFO;
788typedef struct _REMSECURITY_ATTRIBUTES {
789    DWORD nLength;
790    DWORD lpSecurityDescriptor;
791    WINBOOL bInheritHandle;
792} REMSECURITY_ATTRIBUTES;
793typedef struct _REMSECURITY_ATTRIBUTES *PREMSECURITY_ATTRIBUTES;
794typedef struct _REMSECURITY_ATTRIBUTES *LPREMSECURITY_ATTRIBUTES;
795typedef struct _tagRemBINDINFO {
796    ULONG cbSize;
797    LPWSTR szExtraInfo;
798    DWORD grfBindInfoF;
799    DWORD dwBindVerb;
800    LPWSTR szCustomVerb;
801    DWORD cbstgmedData;
802    DWORD dwOptions;
803    DWORD dwOptionsFlags;
804    DWORD dwCodePage;
805    REMSECURITY_ATTRIBUTES securityAttributes;
806    IID iid;
807    IUnknown *pUnk;
808    DWORD dwReserved;
809} RemBINDINFO;
810typedef struct tagRemFORMATETC {
811    DWORD cfFormat;
812    DWORD ptd;
813    DWORD dwAspect;
814    LONG lindex;
815    DWORD tymed;
816} RemFORMATETC;
817typedef struct tagRemFORMATETC *LPREMFORMATETC;
818typedef enum __WIDL_urlmon_generated_name_00000004 {
819    BINDINFO_OPTIONS_WININETFLAG = 0x10000,
820    BINDINFO_OPTIONS_ENABLE_UTF8 = 0x20000,
821    BINDINFO_OPTIONS_DISABLE_UTF8 = 0x40000,
822    BINDINFO_OPTIONS_USE_IE_ENCODING = 0x80000,
823    BINDINFO_OPTIONS_BINDTOOBJECT = 0x100000,
824    BINDINFO_OPTIONS_SECURITYOPTOUT = 0x200000,
825    BINDINFO_OPTIONS_IGNOREMIMETEXTPLAIN = 0x400000,
826    BINDINFO_OPTIONS_USEBINDSTRINGCREDS = 0x800000,
827    BINDINFO_OPTIONS_IGNOREHTTPHTTPSREDIRECTS = 0x1000000,
828    BINDINFO_OPTIONS_SHDOCVW_NAVIGATE = 0x80000000
829} BINDINFO_OPTIONS;
830typedef enum __WIDL_urlmon_generated_name_00000005 {
831    BSCF_FIRSTDATANOTIFICATION = 0x1,
832    BSCF_INTERMEDIATEDATANOTIFICATION = 0x2,
833    BSCF_LASTDATANOTIFICATION = 0x4,
834    BSCF_DATAFULLYAVAILABLE = 0x8,
835    BSCF_AVAILABLEDATASIZEUNKNOWN = 0x10
836} BSCF;
837typedef enum tagBINDSTATUS {
838    BINDSTATUS_FINDINGRESOURCE = 1,
839    BINDSTATUS_CONNECTING = 2,
840    BINDSTATUS_REDIRECTING = 3,
841    BINDSTATUS_BEGINDOWNLOADDATA = 4,
842    BINDSTATUS_DOWNLOADINGDATA = 5,
843    BINDSTATUS_ENDDOWNLOADDATA = 6,
844    BINDSTATUS_BEGINDOWNLOADCOMPONENTS = 7,
845    BINDSTATUS_INSTALLINGCOMPONENTS = 8,
846    BINDSTATUS_ENDDOWNLOADCOMPONENTS = 9,
847    BINDSTATUS_USINGCACHEDCOPY = 10,
848    BINDSTATUS_SENDINGREQUEST = 11,
849    BINDSTATUS_CLASSIDAVAILABLE = 12,
850    BINDSTATUS_MIMETYPEAVAILABLE = 13,
851    BINDSTATUS_CACHEFILENAMEAVAILABLE = 14,
852    BINDSTATUS_BEGINSYNCOPERATION = 15,
853    BINDSTATUS_ENDSYNCOPERATION = 16,
854    BINDSTATUS_BEGINUPLOADDATA = 17,
855    BINDSTATUS_UPLOADINGDATA = 18,
856    BINDSTATUS_ENDUPLOADDATA = 19,
857    BINDSTATUS_PROTOCOLCLASSID = 20,
858    BINDSTATUS_ENCODING = 21,
859    BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE = 22,
860    BINDSTATUS_CLASSINSTALLLOCATION = 23,
861    BINDSTATUS_DECODING = 24,
862    BINDSTATUS_LOADINGMIMEHANDLER = 25,
863    BINDSTATUS_CONTENTDISPOSITIONATTACH = 26,
864    BINDSTATUS_FILTERREPORTMIMETYPE = 27,
865    BINDSTATUS_CLSIDCANINSTANTIATE = 28,
866    BINDSTATUS_IUNKNOWNAVAILABLE = 29,
867    BINDSTATUS_DIRECTBIND = 30,
868    BINDSTATUS_RAWMIMETYPE = 31,
869    BINDSTATUS_PROXYDETECTING = 32,
870    BINDSTATUS_ACCEPTRANGES = 33,
871    BINDSTATUS_COOKIE_SENT = 34,
872    BINDSTATUS_COMPACT_POLICY_RECEIVED = 35,
873    BINDSTATUS_COOKIE_SUPPRESSED = 36,
874    BINDSTATUS_COOKIE_STATE_UNKNOWN = 37,
875    BINDSTATUS_COOKIE_STATE_ACCEPT = 38,
876    BINDSTATUS_COOKIE_STATE_REJECT = 39,
877    BINDSTATUS_COOKIE_STATE_PROMPT = 40,
878    BINDSTATUS_COOKIE_STATE_LEASH = 41,
879    BINDSTATUS_COOKIE_STATE_DOWNGRADE = 42,
880    BINDSTATUS_POLICY_HREF = 43,
881    BINDSTATUS_P3P_HEADER = 44,
882    BINDSTATUS_SESSION_COOKIE_RECEIVED = 45,
883    BINDSTATUS_PERSISTENT_COOKIE_RECEIVED = 46,
884    BINDSTATUS_SESSION_COOKIES_ALLOWED = 47,
885    BINDSTATUS_CACHECONTROL = 48,
886    BINDSTATUS_CONTENTDISPOSITIONFILENAME = 49,
887    BINDSTATUS_MIMETEXTPLAINMISMATCH = 50,
888    BINDSTATUS_PUBLISHERAVAILABLE = 51,
889    BINDSTATUS_DISPLAYNAMEAVAILABLE = 52
890} BINDSTATUS;
891DEFINE_GUID(IID_IBindStatusCallback, 0x79eac9c1, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
892#if defined(__cplusplus) && !defined(CINTERFACE)
893MIDL_INTERFACE("79eac9c1-baf9-11ce-8c82-00aa004ba90b")
894IBindStatusCallback : public IUnknown
895{
896    virtual HRESULT STDMETHODCALLTYPE OnStartBinding(
897        DWORD dwReserved,
898        IBinding *pib) = 0;
899
900    virtual HRESULT STDMETHODCALLTYPE GetPriority(
901        LONG *pnPriority) = 0;
902
903    virtual HRESULT STDMETHODCALLTYPE OnLowResource(
904        DWORD reserved) = 0;
905
906    virtual HRESULT STDMETHODCALLTYPE OnProgress(
907        ULONG ulProgress,
908        ULONG ulProgressMax,
909        ULONG ulStatusCode,
910        LPCWSTR szStatusText) = 0;
911
912    virtual HRESULT STDMETHODCALLTYPE OnStopBinding(
913        HRESULT hresult,
914        LPCWSTR szError) = 0;
915
916    virtual HRESULT STDMETHODCALLTYPE GetBindInfo(
917        DWORD *grfBINDF,
918        BINDINFO *pbindinfo) = 0;
919
920    virtual HRESULT STDMETHODCALLTYPE OnDataAvailable(
921        DWORD grfBSCF,
922        DWORD dwSize,
923        FORMATETC *pformatetc,
924        STGMEDIUM *pstgmed) = 0;
925
926    virtual HRESULT STDMETHODCALLTYPE OnObjectAvailable(
927        REFIID riid,
928        IUnknown *punk) = 0;
929
930};
931#ifdef __CRT_UUID_DECL
932__CRT_UUID_DECL(IBindStatusCallback, 0x79eac9c1, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
933#endif
934#else
935typedef struct IBindStatusCallbackVtbl {
936    BEGIN_INTERFACE
937
938    /*** IUnknown methods ***/
939    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
940        IBindStatusCallback* This,
941        REFIID riid,
942        void **ppvObject);
943
944    ULONG (STDMETHODCALLTYPE *AddRef)(
945        IBindStatusCallback* This);
946
947    ULONG (STDMETHODCALLTYPE *Release)(
948        IBindStatusCallback* This);
949
950    /*** IBindStatusCallback methods ***/
951    HRESULT (STDMETHODCALLTYPE *OnStartBinding)(
952        IBindStatusCallback* This,
953        DWORD dwReserved,
954        IBinding *pib);
955
956    HRESULT (STDMETHODCALLTYPE *GetPriority)(
957        IBindStatusCallback* This,
958        LONG *pnPriority);
959
960    HRESULT (STDMETHODCALLTYPE *OnLowResource)(
961        IBindStatusCallback* This,
962        DWORD reserved);
963
964    HRESULT (STDMETHODCALLTYPE *OnProgress)(
965        IBindStatusCallback* This,
966        ULONG ulProgress,
967        ULONG ulProgressMax,
968        ULONG ulStatusCode,
969        LPCWSTR szStatusText);
970
971    HRESULT (STDMETHODCALLTYPE *OnStopBinding)(
972        IBindStatusCallback* This,
973        HRESULT hresult,
974        LPCWSTR szError);
975
976    HRESULT (STDMETHODCALLTYPE *GetBindInfo)(
977        IBindStatusCallback* This,
978        DWORD *grfBINDF,
979        BINDINFO *pbindinfo);
980
981    HRESULT (STDMETHODCALLTYPE *OnDataAvailable)(
982        IBindStatusCallback* This,
983        DWORD grfBSCF,
984        DWORD dwSize,
985        FORMATETC *pformatetc,
986        STGMEDIUM *pstgmed);
987
988    HRESULT (STDMETHODCALLTYPE *OnObjectAvailable)(
989        IBindStatusCallback* This,
990        REFIID riid,
991        IUnknown *punk);
992
993    END_INTERFACE
994} IBindStatusCallbackVtbl;
995interface IBindStatusCallback {
996    CONST_VTBL IBindStatusCallbackVtbl* lpVtbl;
997};
998
999#ifdef COBJMACROS
1000#ifndef WIDL_C_INLINE_WRAPPERS
1001/*** IUnknown methods ***/
1002#define IBindStatusCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1003#define IBindStatusCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
1004#define IBindStatusCallback_Release(This) (This)->lpVtbl->Release(This)
1005/*** IBindStatusCallback methods ***/
1006#define IBindStatusCallback_OnStartBinding(This,dwReserved,pib) (This)->lpVtbl->OnStartBinding(This,dwReserved,pib)
1007#define IBindStatusCallback_GetPriority(This,pnPriority) (This)->lpVtbl->GetPriority(This,pnPriority)
1008#define IBindStatusCallback_OnLowResource(This,reserved) (This)->lpVtbl->OnLowResource(This,reserved)
1009#define IBindStatusCallback_OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText) (This)->lpVtbl->OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText)
1010#define IBindStatusCallback_OnStopBinding(This,hresult,szError) (This)->lpVtbl->OnStopBinding(This,hresult,szError)
1011#define IBindStatusCallback_GetBindInfo(This,grfBINDF,pbindinfo) (This)->lpVtbl->GetBindInfo(This,grfBINDF,pbindinfo)
1012#define IBindStatusCallback_OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed) (This)->lpVtbl->OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed)
1013#define IBindStatusCallback_OnObjectAvailable(This,riid,punk) (This)->lpVtbl->OnObjectAvailable(This,riid,punk)
1014#else
1015/*** IUnknown methods ***/
1016static FORCEINLINE HRESULT IBindStatusCallback_QueryInterface(IBindStatusCallback* This,REFIID riid,void **ppvObject) {
1017    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1018}
1019static FORCEINLINE ULONG IBindStatusCallback_AddRef(IBindStatusCallback* This) {
1020    return This->lpVtbl->AddRef(This);
1021}
1022static FORCEINLINE ULONG IBindStatusCallback_Release(IBindStatusCallback* This) {
1023    return This->lpVtbl->Release(This);
1024}
1025/*** IBindStatusCallback methods ***/
1026static FORCEINLINE HRESULT IBindStatusCallback_OnStartBinding(IBindStatusCallback* This,DWORD dwReserved,IBinding *pib) {
1027    return This->lpVtbl->OnStartBinding(This,dwReserved,pib);
1028}
1029static FORCEINLINE HRESULT IBindStatusCallback_GetPriority(IBindStatusCallback* This,LONG *pnPriority) {
1030    return This->lpVtbl->GetPriority(This,pnPriority);
1031}
1032static FORCEINLINE HRESULT IBindStatusCallback_OnLowResource(IBindStatusCallback* This,DWORD reserved) {
1033    return This->lpVtbl->OnLowResource(This,reserved);
1034}
1035static FORCEINLINE HRESULT IBindStatusCallback_OnProgress(IBindStatusCallback* This,ULONG ulProgress,ULONG ulProgressMax,ULONG ulStatusCode,LPCWSTR szStatusText) {
1036    return This->lpVtbl->OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText);
1037}
1038static FORCEINLINE HRESULT IBindStatusCallback_OnStopBinding(IBindStatusCallback* This,HRESULT hresult,LPCWSTR szError) {
1039    return This->lpVtbl->OnStopBinding(This,hresult,szError);
1040}
1041static FORCEINLINE HRESULT IBindStatusCallback_GetBindInfo(IBindStatusCallback* This,DWORD *grfBINDF,BINDINFO *pbindinfo) {
1042    return This->lpVtbl->GetBindInfo(This,grfBINDF,pbindinfo);
1043}
1044static FORCEINLINE HRESULT IBindStatusCallback_OnDataAvailable(IBindStatusCallback* This,DWORD grfBSCF,DWORD dwSize,FORMATETC *pformatetc,STGMEDIUM *pstgmed) {
1045    return This->lpVtbl->OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed);
1046}
1047static FORCEINLINE HRESULT IBindStatusCallback_OnObjectAvailable(IBindStatusCallback* This,REFIID riid,IUnknown *punk) {
1048    return This->lpVtbl->OnObjectAvailable(This,riid,punk);
1049}
1050#endif
1051#endif
1052
1053#endif
1054
1055HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnStartBinding_Proxy(
1056    IBindStatusCallback* This,
1057    DWORD dwReserved,
1058    IBinding *pib);
1059void __RPC_STUB IBindStatusCallback_OnStartBinding_Stub(
1060    IRpcStubBuffer* This,
1061    IRpcChannelBuffer* pRpcChannelBuffer,
1062    PRPC_MESSAGE pRpcMessage,
1063    DWORD* pdwStubPhase);
1064HRESULT STDMETHODCALLTYPE IBindStatusCallback_GetPriority_Proxy(
1065    IBindStatusCallback* This,
1066    LONG *pnPriority);
1067void __RPC_STUB IBindStatusCallback_GetPriority_Stub(
1068    IRpcStubBuffer* This,
1069    IRpcChannelBuffer* pRpcChannelBuffer,
1070    PRPC_MESSAGE pRpcMessage,
1071    DWORD* pdwStubPhase);
1072HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnLowResource_Proxy(
1073    IBindStatusCallback* This,
1074    DWORD reserved);
1075void __RPC_STUB IBindStatusCallback_OnLowResource_Stub(
1076    IRpcStubBuffer* This,
1077    IRpcChannelBuffer* pRpcChannelBuffer,
1078    PRPC_MESSAGE pRpcMessage,
1079    DWORD* pdwStubPhase);
1080HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnProgress_Proxy(
1081    IBindStatusCallback* This,
1082    ULONG ulProgress,
1083    ULONG ulProgressMax,
1084    ULONG ulStatusCode,
1085    LPCWSTR szStatusText);
1086void __RPC_STUB IBindStatusCallback_OnProgress_Stub(
1087    IRpcStubBuffer* This,
1088    IRpcChannelBuffer* pRpcChannelBuffer,
1089    PRPC_MESSAGE pRpcMessage,
1090    DWORD* pdwStubPhase);
1091HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnStopBinding_Proxy(
1092    IBindStatusCallback* This,
1093    HRESULT hresult,
1094    LPCWSTR szError);
1095void __RPC_STUB IBindStatusCallback_OnStopBinding_Stub(
1096    IRpcStubBuffer* This,
1097    IRpcChannelBuffer* pRpcChannelBuffer,
1098    PRPC_MESSAGE pRpcMessage,
1099    DWORD* pdwStubPhase);
1100HRESULT STDMETHODCALLTYPE IBindStatusCallback_RemoteGetBindInfo_Proxy(
1101    IBindStatusCallback* This,
1102    DWORD *grfBINDF,
1103    RemBINDINFO *pbindinfo,
1104    RemSTGMEDIUM *pstgmed);
1105void __RPC_STUB IBindStatusCallback_RemoteGetBindInfo_Stub(
1106    IRpcStubBuffer* This,
1107    IRpcChannelBuffer* pRpcChannelBuffer,
1108    PRPC_MESSAGE pRpcMessage,
1109    DWORD* pdwStubPhase);
1110HRESULT STDMETHODCALLTYPE IBindStatusCallback_RemoteOnDataAvailable_Proxy(
1111    IBindStatusCallback* This,
1112    DWORD grfBSCF,
1113    DWORD dwSize,
1114    RemFORMATETC *pformatetc,
1115    RemSTGMEDIUM *pstgmed);
1116void __RPC_STUB IBindStatusCallback_RemoteOnDataAvailable_Stub(
1117    IRpcStubBuffer* This,
1118    IRpcChannelBuffer* pRpcChannelBuffer,
1119    PRPC_MESSAGE pRpcMessage,
1120    DWORD* pdwStubPhase);
1121HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnObjectAvailable_Proxy(
1122    IBindStatusCallback* This,
1123    REFIID riid,
1124    IUnknown *punk);
1125void __RPC_STUB IBindStatusCallback_OnObjectAvailable_Stub(
1126    IRpcStubBuffer* This,
1127    IRpcChannelBuffer* pRpcChannelBuffer,
1128    PRPC_MESSAGE pRpcMessage,
1129    DWORD* pdwStubPhase);
1130HRESULT CALLBACK IBindStatusCallback_GetBindInfo_Proxy(
1131    IBindStatusCallback* This,
1132    DWORD *grfBINDF,
1133    BINDINFO *pbindinfo);
1134HRESULT __RPC_STUB IBindStatusCallback_GetBindInfo_Stub(
1135    IBindStatusCallback* This,
1136    DWORD *grfBINDF,
1137    RemBINDINFO *pbindinfo,
1138    RemSTGMEDIUM *pstgmed);
1139HRESULT CALLBACK IBindStatusCallback_OnDataAvailable_Proxy(
1140    IBindStatusCallback* This,
1141    DWORD grfBSCF,
1142    DWORD dwSize,
1143    FORMATETC *pformatetc,
1144    STGMEDIUM *pstgmed);
1145HRESULT __RPC_STUB IBindStatusCallback_OnDataAvailable_Stub(
1146    IBindStatusCallback* This,
1147    DWORD grfBSCF,
1148    DWORD dwSize,
1149    RemFORMATETC *pformatetc,
1150    RemSTGMEDIUM *pstgmed);
1151
1152#endif  /* __IBindStatusCallback_INTERFACE_DEFINED__ */
1153
1154#endif
1155#ifndef _LPAUTHENTICATION_DEFINED
1156#define _LPAUTHENTICATION_DEFINED
1157  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0182_v0_0_c_ifspec;
1158  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0182_v0_0_s_ifspec;
1159#ifndef __IAuthenticate_INTERFACE_DEFINED__
1160#define __IAuthenticate_INTERFACE_DEFINED__
1161  typedef IAuthenticate *LPAUTHENTICATION;
1162
1163  EXTERN_C const IID IID_IAuthenticate;
1164#if defined(__cplusplus) && !defined(CINTERFACE)
1165  struct IAuthenticate : public IUnknown {
1166  public:
1167    virtual HRESULT WINAPI Authenticate(HWND *phwnd,LPWSTR *pszUsername,LPWSTR *pszPassword) = 0;
1168  };
1169#else
1170  typedef struct IAuthenticateVtbl {
1171    BEGIN_INTERFACE
1172      HRESULT (WINAPI *QueryInterface)(IAuthenticate *This,REFIID riid,void **ppvObject);
1173      ULONG (WINAPI *AddRef)(IAuthenticate *This);
1174      ULONG (WINAPI *Release)(IAuthenticate *This);
1175      HRESULT (WINAPI *Authenticate)(IAuthenticate *This,HWND *phwnd,LPWSTR *pszUsername,LPWSTR *pszPassword);
1176    END_INTERFACE
1177  } IAuthenticateVtbl;
1178  struct IAuthenticate {
1179    CONST_VTBL struct IAuthenticateVtbl *lpVtbl;
1180  };
1181#ifdef COBJMACROS
1182#define IAuthenticate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1183#define IAuthenticate_AddRef(This) (This)->lpVtbl->AddRef(This)
1184#define IAuthenticate_Release(This) (This)->lpVtbl->Release(This)
1185#define IAuthenticate_Authenticate(This,phwnd,pszUsername,pszPassword) (This)->lpVtbl->Authenticate(This,phwnd,pszUsername,pszPassword)
1186#endif
1187#endif
1188  HRESULT WINAPI IAuthenticate_Authenticate_Proxy(IAuthenticate *This,HWND *phwnd,LPWSTR *pszUsername,LPWSTR *pszPassword);
1189  void __RPC_STUB IAuthenticate_Authenticate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1190#endif
1191#endif
1192
1193#ifndef _LPHTTPNEGOTIATE_DEFINED
1194#define _LPHTTPNEGOTIATE_DEFINED
1195  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0183_v0_0_c_ifspec;
1196  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0183_v0_0_s_ifspec;
1197#ifndef __IHttpNegotiate_INTERFACE_DEFINED__
1198#define __IHttpNegotiate_INTERFACE_DEFINED__
1199  typedef IHttpNegotiate *LPHTTPNEGOTIATE;
1200
1201  EXTERN_C const IID IID_IHttpNegotiate;
1202#if defined(__cplusplus) && !defined(CINTERFACE)
1203  struct IHttpNegotiate : public IUnknown {
1204  public:
1205    virtual HRESULT WINAPI BeginningTransaction(LPCWSTR szURL,LPCWSTR szHeaders,DWORD dwReserved,LPWSTR *pszAdditionalHeaders) = 0;
1206    virtual HRESULT WINAPI OnResponse(DWORD dwResponseCode,LPCWSTR szResponseHeaders,LPCWSTR szRequestHeaders,LPWSTR *pszAdditionalRequestHeaders) = 0;
1207  };
1208#else
1209  typedef struct IHttpNegotiateVtbl {
1210    BEGIN_INTERFACE
1211      HRESULT (WINAPI *QueryInterface)(IHttpNegotiate *This,REFIID riid,void **ppvObject);
1212      ULONG (WINAPI *AddRef)(IHttpNegotiate *This);
1213      ULONG (WINAPI *Release)(IHttpNegotiate *This);
1214      HRESULT (WINAPI *BeginningTransaction)(IHttpNegotiate *This,LPCWSTR szURL,LPCWSTR szHeaders,DWORD dwReserved,LPWSTR *pszAdditionalHeaders);
1215      HRESULT (WINAPI *OnResponse)(IHttpNegotiate *This,DWORD dwResponseCode,LPCWSTR szResponseHeaders,LPCWSTR szRequestHeaders,LPWSTR *pszAdditionalRequestHeaders);
1216    END_INTERFACE
1217  } IHttpNegotiateVtbl;
1218  struct IHttpNegotiate {
1219    CONST_VTBL struct IHttpNegotiateVtbl *lpVtbl;
1220  };
1221#ifdef COBJMACROS
1222#define IHttpNegotiate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1223#define IHttpNegotiate_AddRef(This) (This)->lpVtbl->AddRef(This)
1224#define IHttpNegotiate_Release(This) (This)->lpVtbl->Release(This)
1225#define IHttpNegotiate_BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders) (This)->lpVtbl->BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders)
1226#define IHttpNegotiate_OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders) (This)->lpVtbl->OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders)
1227#endif
1228#endif
1229  HRESULT WINAPI IHttpNegotiate_BeginningTransaction_Proxy(IHttpNegotiate *This,LPCWSTR szURL,LPCWSTR szHeaders,DWORD dwReserved,LPWSTR *pszAdditionalHeaders);
1230  void __RPC_STUB IHttpNegotiate_BeginningTransaction_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1231  HRESULT WINAPI IHttpNegotiate_OnResponse_Proxy(IHttpNegotiate *This,DWORD dwResponseCode,LPCWSTR szResponseHeaders,LPCWSTR szRequestHeaders,LPWSTR *pszAdditionalRequestHeaders);
1232  void __RPC_STUB IHttpNegotiate_OnResponse_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1233#endif
1234#endif
1235
1236#ifndef _LPHTTPNEGOTIATE2_DEFINED
1237#define _LPHTTPNEGOTIATE2_DEFINED
1238  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0184_v0_0_c_ifspec;
1239  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0184_v0_0_s_ifspec;
1240#ifndef __IHttpNegotiate2_INTERFACE_DEFINED__
1241#define __IHttpNegotiate2_INTERFACE_DEFINED__
1242  typedef IHttpNegotiate2 *LPHTTPNEGOTIATE2;
1243
1244  EXTERN_C const IID IID_IHttpNegotiate2;
1245#if defined(__cplusplus) && !defined(CINTERFACE)
1246  struct IHttpNegotiate2 : public IHttpNegotiate {
1247  public:
1248    virtual HRESULT WINAPI GetRootSecurityId(BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved) = 0;
1249  };
1250#else
1251  typedef struct IHttpNegotiate2Vtbl {
1252    BEGIN_INTERFACE
1253      HRESULT (WINAPI *QueryInterface)(IHttpNegotiate2 *This,REFIID riid,void **ppvObject);
1254      ULONG (WINAPI *AddRef)(IHttpNegotiate2 *This);
1255      ULONG (WINAPI *Release)(IHttpNegotiate2 *This);
1256      HRESULT (WINAPI *BeginningTransaction)(IHttpNegotiate2 *This,LPCWSTR szURL,LPCWSTR szHeaders,DWORD dwReserved,LPWSTR *pszAdditionalHeaders);
1257      HRESULT (WINAPI *OnResponse)(IHttpNegotiate2 *This,DWORD dwResponseCode,LPCWSTR szResponseHeaders,LPCWSTR szRequestHeaders,LPWSTR *pszAdditionalRequestHeaders);
1258      HRESULT (WINAPI *GetRootSecurityId)(IHttpNegotiate2 *This,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved);
1259    END_INTERFACE
1260  } IHttpNegotiate2Vtbl;
1261  struct IHttpNegotiate2 {
1262    CONST_VTBL struct IHttpNegotiate2Vtbl *lpVtbl;
1263  };
1264#ifdef COBJMACROS
1265#define IHttpNegotiate2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1266#define IHttpNegotiate2_AddRef(This) (This)->lpVtbl->AddRef(This)
1267#define IHttpNegotiate2_Release(This) (This)->lpVtbl->Release(This)
1268#define IHttpNegotiate2_BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders) (This)->lpVtbl->BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders)
1269#define IHttpNegotiate2_OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders) (This)->lpVtbl->OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders)
1270#define IHttpNegotiate2_GetRootSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved) (This)->lpVtbl->GetRootSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved)
1271#endif
1272#endif
1273  HRESULT WINAPI IHttpNegotiate2_GetRootSecurityId_Proxy(IHttpNegotiate2 *This,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved);
1274  void __RPC_STUB IHttpNegotiate2_GetRootSecurityId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1275#endif
1276#endif
1277
1278#ifndef _LPWININETFILESTREAM_DEFINED
1279#define _LPWININETFILESTREAM_DEFINED
1280  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0185_v0_0_c_ifspec;
1281  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0185_v0_0_s_ifspec;
1282#ifndef __IWinInetFileStream_INTERFACE_DEFINED__
1283#define __IWinInetFileStream_INTERFACE_DEFINED__
1284  typedef IWinInetFileStream *LPWININETFILESTREAM;
1285
1286  EXTERN_C const IID IID_IWinInetFileStream;
1287#if defined(__cplusplus) && !defined(CINTERFACE)
1288  struct IWinInetFileStream : public IUnknown {
1289  public:
1290    virtual HRESULT WINAPI SetHandleForUnlock(DWORD_PTR hWinInetLockHandle,DWORD_PTR dwReserved) = 0;
1291    virtual HRESULT WINAPI SetDeleteFile(DWORD_PTR dwReserved) = 0;
1292  };
1293#else
1294  typedef struct IWinInetFileStreamVtbl {
1295    BEGIN_INTERFACE
1296      HRESULT (WINAPI *QueryInterface)(IWinInetFileStream *This,REFIID riid,void **ppvObject);
1297      ULONG (WINAPI *AddRef)(IWinInetFileStream *This);
1298      ULONG (WINAPI *Release)(IWinInetFileStream *This);
1299      HRESULT (WINAPI *SetHandleForUnlock)(IWinInetFileStream *This,DWORD_PTR hWinInetLockHandle,DWORD_PTR dwReserved);
1300      HRESULT (WINAPI *SetDeleteFile)(IWinInetFileStream *This,DWORD_PTR dwReserved);
1301    END_INTERFACE
1302  } IWinInetFileStreamVtbl;
1303  struct IWinInetFileStream {
1304    CONST_VTBL struct IWinInetFileStreamVtbl *lpVtbl;
1305  };
1306#ifdef COBJMACROS
1307#define IWinInetFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1308#define IWinInetFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
1309#define IWinInetFileStream_Release(This) (This)->lpVtbl->Release(This)
1310#define IWinInetFileStream_SetHandleForUnlock(This,hWinInetLockHandle,dwReserved) (This)->lpVtbl->SetHandleForUnlock(This,hWinInetLockHandle,dwReserved)
1311#define IWinInetFileStream_SetDeleteFile(This,dwReserved) (This)->lpVtbl->SetDeleteFile(This,dwReserved)
1312#endif
1313#endif
1314  HRESULT WINAPI IWinInetFileStream_SetHandleForUnlock_Proxy(IWinInetFileStream *This,DWORD_PTR hWinInetLockHandle,DWORD_PTR dwReserved);
1315  void __RPC_STUB IWinInetFileStream_SetHandleForUnlock_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1316  HRESULT WINAPI IWinInetFileStream_SetDeleteFile_Proxy(IWinInetFileStream *This,DWORD_PTR dwReserved);
1317  void __RPC_STUB IWinInetFileStream_SetDeleteFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1318#endif
1319#endif
1320
1321#ifndef _LPWINDOWFORBINDINGUI_DEFINED
1322#define _LPWINDOWFORBINDINGUI_DEFINED
1323  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0186_v0_0_c_ifspec;
1324  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0186_v0_0_s_ifspec;
1325#ifndef __IWindowForBindingUI_INTERFACE_DEFINED__
1326#define __IWindowForBindingUI_INTERFACE_DEFINED__
1327  typedef IWindowForBindingUI *LPWINDOWFORBINDINGUI;
1328
1329  EXTERN_C const IID IID_IWindowForBindingUI;
1330#if defined(__cplusplus) && !defined(CINTERFACE)
1331  struct IWindowForBindingUI : public IUnknown {
1332  public:
1333    virtual HRESULT WINAPI GetWindow(REFGUID rguidReason,HWND *phwnd) = 0;
1334  };
1335#else
1336  typedef struct IWindowForBindingUIVtbl {
1337    BEGIN_INTERFACE
1338      HRESULT (WINAPI *QueryInterface)(IWindowForBindingUI *This,REFIID riid,void **ppvObject);
1339      ULONG (WINAPI *AddRef)(IWindowForBindingUI *This);
1340      ULONG (WINAPI *Release)(IWindowForBindingUI *This);
1341      HRESULT (WINAPI *GetWindow)(IWindowForBindingUI *This,REFGUID rguidReason,HWND *phwnd);
1342    END_INTERFACE
1343  } IWindowForBindingUIVtbl;
1344  struct IWindowForBindingUI {
1345    CONST_VTBL struct IWindowForBindingUIVtbl *lpVtbl;
1346  };
1347#ifdef COBJMACROS
1348#define IWindowForBindingUI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1349#define IWindowForBindingUI_AddRef(This) (This)->lpVtbl->AddRef(This)
1350#define IWindowForBindingUI_Release(This) (This)->lpVtbl->Release(This)
1351#define IWindowForBindingUI_GetWindow(This,rguidReason,phwnd) (This)->lpVtbl->GetWindow(This,rguidReason,phwnd)
1352#endif
1353#endif
1354  HRESULT WINAPI IWindowForBindingUI_GetWindow_Proxy(IWindowForBindingUI *This,REFGUID rguidReason,HWND *phwnd);
1355  void __RPC_STUB IWindowForBindingUI_GetWindow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1356#endif
1357#endif
1358
1359#ifndef _LPCODEINSTALL_DEFINED
1360#define _LPCODEINSTALL_DEFINED
1361  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0187_v0_0_c_ifspec;
1362  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0187_v0_0_s_ifspec;
1363#ifndef __ICodeInstall_INTERFACE_DEFINED__
1364#define __ICodeInstall_INTERFACE_DEFINED__
1365  typedef ICodeInstall *LPCODEINSTALL;
1366
1367  typedef enum __MIDL_ICodeInstall_0001 {
1368    CIP_DISK_FULL = 0,
1369    CIP_ACCESS_DENIED,CIP_NEWER_VERSION_EXISTS,CIP_OLDER_VERSION_EXISTS,
1370    CIP_NAME_CONFLICT,CIP_TRUST_VERIFICATION_COMPONENT_MISSING,CIP_EXE_SELF_REGISTERATION_TIMEOUT,
1371    CIP_UNSAFE_TO_ABORT,CIP_NEED_REBOOT,CIP_NEED_REBOOT_UI_PERMISSION
1372  } CIP_STATUS;
1373
1374  EXTERN_C const IID IID_ICodeInstall;
1375#if defined(__cplusplus) && !defined(CINTERFACE)
1376  struct ICodeInstall : public IWindowForBindingUI {
1377  public:
1378    virtual HRESULT WINAPI OnCodeInstallProblem(ULONG ulStatusCode,LPCWSTR szDestination,LPCWSTR szSource,DWORD dwReserved) = 0;
1379  };
1380#else
1381  typedef struct ICodeInstallVtbl {
1382    BEGIN_INTERFACE
1383      HRESULT (WINAPI *QueryInterface)(ICodeInstall *This,REFIID riid,void **ppvObject);
1384      ULONG (WINAPI *AddRef)(ICodeInstall *This);
1385      ULONG (WINAPI *Release)(ICodeInstall *This);
1386      HRESULT (WINAPI *GetWindow)(ICodeInstall *This,REFGUID rguidReason,HWND *phwnd);
1387      HRESULT (WINAPI *OnCodeInstallProblem)(ICodeInstall *This,ULONG ulStatusCode,LPCWSTR szDestination,LPCWSTR szSource,DWORD dwReserved);
1388    END_INTERFACE
1389  } ICodeInstallVtbl;
1390  struct ICodeInstall {
1391    CONST_VTBL struct ICodeInstallVtbl *lpVtbl;
1392  };
1393#ifdef COBJMACROS
1394#define ICodeInstall_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1395#define ICodeInstall_AddRef(This) (This)->lpVtbl->AddRef(This)
1396#define ICodeInstall_Release(This) (This)->lpVtbl->Release(This)
1397#define ICodeInstall_GetWindow(This,rguidReason,phwnd) (This)->lpVtbl->GetWindow(This,rguidReason,phwnd)
1398#define ICodeInstall_OnCodeInstallProblem(This,ulStatusCode,szDestination,szSource,dwReserved) (This)->lpVtbl->OnCodeInstallProblem(This,ulStatusCode,szDestination,szSource,dwReserved)
1399#endif
1400#endif
1401  HRESULT WINAPI ICodeInstall_OnCodeInstallProblem_Proxy(ICodeInstall *This,ULONG ulStatusCode,LPCWSTR szDestination,LPCWSTR szSource,DWORD dwReserved);
1402  void __RPC_STUB ICodeInstall_OnCodeInstallProblem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1403#endif
1404#endif
1405
1406#ifndef _LPWININETINFO_DEFINED
1407#define _LPWININETINFO_DEFINED
1408  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0188_v0_0_c_ifspec;
1409  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0188_v0_0_s_ifspec;
1410#ifndef __IWinInetInfo_INTERFACE_DEFINED__
1411#define __IWinInetInfo_INTERFACE_DEFINED__
1412  typedef IWinInetInfo *LPWININETINFO;
1413
1414  EXTERN_C const IID IID_IWinInetInfo;
1415#if defined(__cplusplus) && !defined(CINTERFACE)
1416  struct IWinInetInfo : public IUnknown {
1417  public:
1418    virtual HRESULT WINAPI QueryOption(DWORD dwOption,LPVOID pBuffer,DWORD *pcbBuf) = 0;
1419  };
1420#else
1421  typedef struct IWinInetInfoVtbl {
1422    BEGIN_INTERFACE
1423      HRESULT (WINAPI *QueryInterface)(IWinInetInfo *This,REFIID riid,void **ppvObject);
1424      ULONG (WINAPI *AddRef)(IWinInetInfo *This);
1425      ULONG (WINAPI *Release)(IWinInetInfo *This);
1426      HRESULT (WINAPI *QueryOption)(IWinInetInfo *This,DWORD dwOption,LPVOID pBuffer,DWORD *pcbBuf);
1427    END_INTERFACE
1428  } IWinInetInfoVtbl;
1429  struct IWinInetInfo {
1430    CONST_VTBL struct IWinInetInfoVtbl *lpVtbl;
1431  };
1432#ifdef COBJMACROS
1433#define IWinInetInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1434#define IWinInetInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
1435#define IWinInetInfo_Release(This) (This)->lpVtbl->Release(This)
1436#define IWinInetInfo_QueryOption(This,dwOption,pBuffer,pcbBuf) (This)->lpVtbl->QueryOption(This,dwOption,pBuffer,pcbBuf)
1437#endif
1438#endif
1439  HRESULT WINAPI IWinInetInfo_RemoteQueryOption_Proxy(IWinInetInfo *This,DWORD dwOption,BYTE *pBuffer,DWORD *pcbBuf);
1440  void __RPC_STUB IWinInetInfo_RemoteQueryOption_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1441#endif
1442#endif
1443#define WININETINFO_OPTION_LOCK_HANDLE 65534
1444
1445#ifndef _LPHTTPSECURITY_DEFINED
1446#define _LPHTTPSECURITY_DEFINED
1447  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0189_v0_0_c_ifspec;
1448  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0189_v0_0_s_ifspec;
1449#ifndef __IHttpSecurity_INTERFACE_DEFINED__
1450#define __IHttpSecurity_INTERFACE_DEFINED__
1451
1452  typedef IHttpSecurity *LPHTTPSECURITY;
1453
1454  EXTERN_C const IID IID_IHttpSecurity;
1455#if defined(__cplusplus) && !defined(CINTERFACE)
1456  struct IHttpSecurity : public IWindowForBindingUI {
1457  public:
1458    virtual HRESULT WINAPI OnSecurityProblem(DWORD dwProblem) = 0;
1459  };
1460#else
1461  typedef struct IHttpSecurityVtbl {
1462    BEGIN_INTERFACE
1463      HRESULT (WINAPI *QueryInterface)(IHttpSecurity *This,REFIID riid,void **ppvObject);
1464      ULONG (WINAPI *AddRef)(IHttpSecurity *This);
1465      ULONG (WINAPI *Release)(IHttpSecurity *This);
1466      HRESULT (WINAPI *GetWindow)(IHttpSecurity *This,REFGUID rguidReason,HWND *phwnd);
1467      HRESULT (WINAPI *OnSecurityProblem)(IHttpSecurity *This,DWORD dwProblem);
1468    END_INTERFACE
1469  } IHttpSecurityVtbl;
1470  struct IHttpSecurity {
1471    CONST_VTBL struct IHttpSecurityVtbl *lpVtbl;
1472  };
1473#ifdef COBJMACROS
1474#define IHttpSecurity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1475#define IHttpSecurity_AddRef(This) (This)->lpVtbl->AddRef(This)
1476#define IHttpSecurity_Release(This) (This)->lpVtbl->Release(This)
1477#define IHttpSecurity_GetWindow(This,rguidReason,phwnd) (This)->lpVtbl->GetWindow(This,rguidReason,phwnd)
1478#define IHttpSecurity_OnSecurityProblem(This,dwProblem) (This)->lpVtbl->OnSecurityProblem(This,dwProblem)
1479#endif
1480#endif
1481  HRESULT WINAPI IHttpSecurity_OnSecurityProblem_Proxy(IHttpSecurity *This,DWORD dwProblem);
1482  void __RPC_STUB IHttpSecurity_OnSecurityProblem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1483#endif
1484#endif
1485
1486#ifndef _LPWININETHTTPINFO_DEFINED
1487#define _LPWININETHTTPINFO_DEFINED
1488  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0190_v0_0_c_ifspec;
1489  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0190_v0_0_s_ifspec;
1490#ifndef __IWinInetHttpInfo_INTERFACE_DEFINED__
1491#define __IWinInetHttpInfo_INTERFACE_DEFINED__
1492  typedef IWinInetHttpInfo *LPWININETHTTPINFO;
1493
1494  EXTERN_C const IID IID_IWinInetHttpInfo;
1495#if defined(__cplusplus) && !defined(CINTERFACE)
1496  struct IWinInetHttpInfo : public IWinInetInfo {
1497  public:
1498    virtual HRESULT WINAPI QueryInfo(DWORD dwOption,LPVOID pBuffer,DWORD *pcbBuf,DWORD *pdwFlags,DWORD *pdwReserved) = 0;
1499  };
1500#else
1501  typedef struct IWinInetHttpInfoVtbl {
1502    BEGIN_INTERFACE
1503      HRESULT (WINAPI *QueryInterface)(IWinInetHttpInfo *This,REFIID riid,void **ppvObject);
1504      ULONG (WINAPI *AddRef)(IWinInetHttpInfo *This);
1505      ULONG (WINAPI *Release)(IWinInetHttpInfo *This);
1506      HRESULT (WINAPI *QueryOption)(IWinInetHttpInfo *This,DWORD dwOption,LPVOID pBuffer,DWORD *pcbBuf);
1507      HRESULT (WINAPI *QueryInfo)(IWinInetHttpInfo *This,DWORD dwOption,LPVOID pBuffer,DWORD *pcbBuf,DWORD *pdwFlags,DWORD *pdwReserved);
1508    END_INTERFACE
1509  } IWinInetHttpInfoVtbl;
1510  struct IWinInetHttpInfo {
1511    CONST_VTBL struct IWinInetHttpInfoVtbl *lpVtbl;
1512  };
1513#ifdef COBJMACROS
1514#define IWinInetHttpInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1515#define IWinInetHttpInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
1516#define IWinInetHttpInfo_Release(This) (This)->lpVtbl->Release(This)
1517#define IWinInetHttpInfo_QueryOption(This,dwOption,pBuffer,pcbBuf) (This)->lpVtbl->QueryOption(This,dwOption,pBuffer,pcbBuf)
1518#define IWinInetHttpInfo_QueryInfo(This,dwOption,pBuffer,pcbBuf,pdwFlags,pdwReserved) (This)->lpVtbl->QueryInfo(This,dwOption,pBuffer,pcbBuf,pdwFlags,pdwReserved)
1519#endif
1520#endif
1521  HRESULT WINAPI IWinInetHttpInfo_RemoteQueryInfo_Proxy(IWinInetHttpInfo *This,DWORD dwOption,BYTE *pBuffer,DWORD *pcbBuf,DWORD *pdwFlags,DWORD *pdwReserved);
1522  void __RPC_STUB IWinInetHttpInfo_RemoteQueryInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1523#endif
1524#endif
1525
1526#ifndef _LPWININETCACHEHINTS_DEFINED
1527#define _LPWININETCACHEHINTS_DEFINED
1528  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0191_v0_0_c_ifspec;
1529  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0191_v0_0_s_ifspec;
1530#ifndef __IWinInetCacheHints_INTERFACE_DEFINED__
1531#define __IWinInetCacheHints_INTERFACE_DEFINED__
1532  typedef IWinInetCacheHints *LPWININETCACHEHINTS;
1533
1534  EXTERN_C const IID IID_IWinInetCacheHints;
1535#if defined(__cplusplus) && !defined(CINTERFACE)
1536  struct IWinInetCacheHints : public IUnknown {
1537  public:
1538    virtual HRESULT WINAPI SetCacheExtension(LPCWSTR pwzExt,LPVOID pszCacheFile,DWORD *pcbCacheFile,DWORD *pdwWinInetError,DWORD *pdwReserved) = 0;
1539  };
1540#else
1541  typedef struct IWinInetCacheHintsVtbl {
1542    BEGIN_INTERFACE
1543      HRESULT (WINAPI *QueryInterface)(IWinInetCacheHints *This,REFIID riid,void **ppvObject);
1544      ULONG (WINAPI *AddRef)(IWinInetCacheHints *This);
1545      ULONG (WINAPI *Release)(IWinInetCacheHints *This);
1546      HRESULT (WINAPI *SetCacheExtension)(IWinInetCacheHints *This,LPCWSTR pwzExt,LPVOID pszCacheFile,DWORD *pcbCacheFile,DWORD *pdwWinInetError,DWORD *pdwReserved);
1547    END_INTERFACE
1548  } IWinInetCacheHintsVtbl;
1549  struct IWinInetCacheHints {
1550    CONST_VTBL struct IWinInetCacheHintsVtbl *lpVtbl;
1551  };
1552#ifdef COBJMACROS
1553#define IWinInetCacheHints_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1554#define IWinInetCacheHints_AddRef(This) (This)->lpVtbl->AddRef(This)
1555#define IWinInetCacheHints_Release(This) (This)->lpVtbl->Release(This)
1556#define IWinInetCacheHints_SetCacheExtension(This,pwzExt,pszCacheFile,pcbCacheFile,pdwWinInetError,pdwReserved) (This)->lpVtbl->SetCacheExtension(This,pwzExt,pszCacheFile,pcbCacheFile,pdwWinInetError,pdwReserved)
1557#endif
1558#endif
1559  HRESULT WINAPI IWinInetCacheHints_SetCacheExtension_Proxy(IWinInetCacheHints *This,LPCWSTR pwzExt,LPVOID pszCacheFile,DWORD *pcbCacheFile,DWORD *pdwWinInetError,DWORD *pdwReserved);
1560  void __RPC_STUB IWinInetCacheHints_SetCacheExtension_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1561#endif
1562#endif
1563
1564#define SID_IBindHost IID_IBindHost
1565#define SID_SBindHost IID_IBindHost
1566#ifndef _LPBINDHOST_DEFINED
1567#define _LPBINDHOST_DEFINED
1568  EXTERN_C const GUID SID_BindHost;
1569
1570  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0192_v0_0_c_ifspec;
1571  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0192_v0_0_s_ifspec;
1572#ifndef __IBindHost_INTERFACE_DEFINED__
1573#define __IBindHost_INTERFACE_DEFINED__
1574  typedef IBindHost *LPBINDHOST;
1575
1576  EXTERN_C const IID IID_IBindHost;
1577#if defined(__cplusplus) && !defined(CINTERFACE)
1578  struct IBindHost : public IUnknown {
1579  public:
1580    virtual HRESULT WINAPI CreateMoniker(LPOLESTR szName,IBindCtx *pBC,IMoniker **ppmk,DWORD dwReserved) = 0;
1581    virtual HRESULT WINAPI MonikerBindToStorage(IMoniker *pMk,IBindCtx *pBC,IBindStatusCallback *pBSC,REFIID riid,void **ppvObj) = 0;
1582    virtual HRESULT WINAPI MonikerBindToObject(IMoniker *pMk,IBindCtx *pBC,IBindStatusCallback *pBSC,REFIID riid,void **ppvObj) = 0;
1583  };
1584#else
1585  typedef struct IBindHostVtbl {
1586    BEGIN_INTERFACE
1587      HRESULT (WINAPI *QueryInterface)(IBindHost *This,REFIID riid,void **ppvObject);
1588      ULONG (WINAPI *AddRef)(IBindHost *This);
1589      ULONG (WINAPI *Release)(IBindHost *This);
1590      HRESULT (WINAPI *CreateMoniker)(IBindHost *This,LPOLESTR szName,IBindCtx *pBC,IMoniker **ppmk,DWORD dwReserved);
1591      HRESULT (WINAPI *MonikerBindToStorage)(IBindHost *This,IMoniker *pMk,IBindCtx *pBC,IBindStatusCallback *pBSC,REFIID riid,void **ppvObj);
1592      HRESULT (WINAPI *MonikerBindToObject)(IBindHost *This,IMoniker *pMk,IBindCtx *pBC,IBindStatusCallback *pBSC,REFIID riid,void **ppvObj);
1593    END_INTERFACE
1594  } IBindHostVtbl;
1595  struct IBindHost {
1596    CONST_VTBL struct IBindHostVtbl *lpVtbl;
1597  };
1598#ifdef COBJMACROS
1599#define IBindHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1600#define IBindHost_AddRef(This) (This)->lpVtbl->AddRef(This)
1601#define IBindHost_Release(This) (This)->lpVtbl->Release(This)
1602#define IBindHost_CreateMoniker(This,szName,pBC,ppmk,dwReserved) (This)->lpVtbl->CreateMoniker(This,szName,pBC,ppmk,dwReserved)
1603#define IBindHost_MonikerBindToStorage(This,pMk,pBC,pBSC,riid,ppvObj) (This)->lpVtbl->MonikerBindToStorage(This,pMk,pBC,pBSC,riid,ppvObj)
1604#define IBindHost_MonikerBindToObject(This,pMk,pBC,pBSC,riid,ppvObj) (This)->lpVtbl->MonikerBindToObject(This,pMk,pBC,pBSC,riid,ppvObj)
1605#endif
1606#endif
1607  HRESULT WINAPI IBindHost_CreateMoniker_Proxy(IBindHost *This,LPOLESTR szName,IBindCtx *pBC,IMoniker **ppmk,DWORD dwReserved);
1608  void __RPC_STUB IBindHost_CreateMoniker_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1609  HRESULT WINAPI IBindHost_RemoteMonikerBindToStorage_Proxy(IBindHost *This,IMoniker *pMk,IBindCtx *pBC,IBindStatusCallback *pBSC,REFIID riid,IUnknown **ppvObj);
1610  void __RPC_STUB IBindHost_RemoteMonikerBindToStorage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1611  HRESULT WINAPI IBindHost_RemoteMonikerBindToObject_Proxy(IBindHost *This,IMoniker *pMk,IBindCtx *pBC,IBindStatusCallback *pBSC,REFIID riid,IUnknown **ppvObj);
1612  void __RPC_STUB IBindHost_RemoteMonikerBindToObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1613#endif
1614#endif
1615
1616#define URLOSTRM_USECACHEDCOPY_ONLY 0x1
1617#define URLOSTRM_USECACHEDCOPY 0x2
1618#define URLOSTRM_GETNEWESTVERSION 0x3
1619
1620  struct IBindStatusCallback;
1621
1622  STDAPI HlinkSimpleNavigateToString(LPCWSTR szTarget,LPCWSTR szLocation,LPCWSTR szTargetFrameName,IUnknown *pUnk,IBindCtx *pbc,IBindStatusCallback *,DWORD grfHLNF,DWORD dwReserved);
1623  STDAPI HlinkSimpleNavigateToMoniker(IMoniker *pmkTarget,LPCWSTR szLocation,LPCWSTR szTargetFrameName,IUnknown *pUnk,IBindCtx *pbc,IBindStatusCallback *,DWORD grfHLNF,DWORD dwReserved);
1624  STDAPI URLOpenStreamA(LPUNKNOWN,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);
1625  STDAPI URLOpenStreamW(LPUNKNOWN,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);
1626  STDAPI URLOpenPullStreamA(LPUNKNOWN,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);
1627  STDAPI URLOpenPullStreamW(LPUNKNOWN,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);
1628  STDAPI URLDownloadToFileA(LPUNKNOWN,LPCSTR,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);
1629  STDAPI URLDownloadToFileW(LPUNKNOWN,LPCWSTR,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);
1630  STDAPI URLDownloadToCacheFileA(LPUNKNOWN,LPCSTR,LPTSTR,DWORD,DWORD,LPBINDSTATUSCALLBACK);
1631  STDAPI URLDownloadToCacheFileW(LPUNKNOWN,LPCWSTR,LPWSTR,DWORD,DWORD,LPBINDSTATUSCALLBACK);
1632  STDAPI URLOpenBlockingStreamA(LPUNKNOWN,LPCSTR,LPSTREAM*,DWORD,LPBINDSTATUSCALLBACK);
1633  STDAPI URLOpenBlockingStreamW(LPUNKNOWN,LPCWSTR,LPSTREAM*,DWORD,LPBINDSTATUSCALLBACK);
1634
1635#define URLOpenStream __MINGW_NAME_AW(URLOpenStream)
1636#define URLOpenPullStream __MINGW_NAME_AW(URLOpenPullStream)
1637#define URLDownloadToFile __MINGW_NAME_AW(URLDownloadToFile)
1638#define URLDownloadToCacheFile __MINGW_NAME_AW(URLDownloadToCacheFile)
1639#define URLOpenBlockingStream __MINGW_NAME_AW(URLOpenBlockingStream)
1640
1641  STDAPI HlinkGoBack(IUnknown *pUnk);
1642  STDAPI HlinkGoForward(IUnknown *pUnk);
1643  STDAPI HlinkNavigateString(IUnknown *pUnk,LPCWSTR szTarget);
1644  STDAPI HlinkNavigateMoniker(IUnknown *pUnk,IMoniker *pmkTarget);
1645
1646#ifndef _URLMON_NO_ASYNC_PLUGABLE_PROTOCOLS_
1647
1648#ifndef _LPIINTERNET
1649#define _LPIINTERNET
1650  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0193_v0_0_c_ifspec;
1651  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0193_v0_0_s_ifspec;
1652#ifndef __IInternet_INTERFACE_DEFINED__
1653#define __IInternet_INTERFACE_DEFINED__
1654  typedef IInternet *LPIINTERNET;
1655
1656  EXTERN_C const IID IID_IInternet;
1657#if defined(__cplusplus) && !defined(CINTERFACE)
1658  struct IInternet : public IUnknown {
1659  };
1660#else
1661  typedef struct IInternetVtbl {
1662    BEGIN_INTERFACE
1663      HRESULT (WINAPI *QueryInterface)(IInternet *This,REFIID riid,void **ppvObject);
1664      ULONG (WINAPI *AddRef)(IInternet *This);
1665      ULONG (WINAPI *Release)(IInternet *This);
1666    END_INTERFACE
1667  } IInternetVtbl;
1668  struct IInternet {
1669    CONST_VTBL struct IInternetVtbl *lpVtbl;
1670  };
1671#ifdef COBJMACROS
1672#define IInternet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1673#define IInternet_AddRef(This) (This)->lpVtbl->AddRef(This)
1674#define IInternet_Release(This) (This)->lpVtbl->Release(This)
1675#endif
1676#endif
1677#endif
1678#endif
1679
1680#ifndef _LPIINTERNETBINDINFO
1681#define _LPIINTERNETBINDINFO
1682  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0194_v0_0_c_ifspec;
1683  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0194_v0_0_s_ifspec;
1684#ifndef __IInternetBindInfo_INTERFACE_DEFINED__
1685#define __IInternetBindInfo_INTERFACE_DEFINED__
1686
1687  typedef IInternetBindInfo *LPIINTERNETBINDINFO;
1688
1689  typedef enum tagBINDSTRING {
1690    BINDSTRING_HEADERS = 1,
1691    BINDSTRING_ACCEPT_MIMES,BINDSTRING_EXTRA_URL,BINDSTRING_LANGUAGE,BINDSTRING_USERNAME,
1692    BINDSTRING_PASSWORD,BINDSTRING_UA_PIXELS,BINDSTRING_UA_COLOR,BINDSTRING_OS,
1693    BINDSTRING_USER_AGENT,BINDSTRING_ACCEPT_ENCODINGS,BINDSTRING_POST_COOKIE,
1694    BINDSTRING_POST_DATA_MIME,BINDSTRING_URL,BINDSTRING_IID,BINDSTRING_FLAG_BIND_TO_OBJECT,
1695    BINDSTRING_PTR_BIND_CONTEXT
1696  } BINDSTRING;
1697
1698  EXTERN_C const IID IID_IInternetBindInfo;
1699#if defined(__cplusplus) && !defined(CINTERFACE)
1700  struct IInternetBindInfo : public IUnknown {
1701  public:
1702    virtual HRESULT WINAPI GetBindInfo(DWORD *grfBINDF,BINDINFO *pbindinfo) = 0;
1703    virtual HRESULT WINAPI GetBindString(ULONG ulStringType,LPOLESTR *ppwzStr,ULONG cEl,ULONG *pcElFetched) = 0;
1704  };
1705#else
1706  typedef struct IInternetBindInfoVtbl {
1707    BEGIN_INTERFACE
1708      HRESULT (WINAPI *QueryInterface)(IInternetBindInfo *This,REFIID riid,void **ppvObject);
1709      ULONG (WINAPI *AddRef)(IInternetBindInfo *This);
1710      ULONG (WINAPI *Release)(IInternetBindInfo *This);
1711      HRESULT (WINAPI *GetBindInfo)(IInternetBindInfo *This,DWORD *grfBINDF,BINDINFO *pbindinfo);
1712      HRESULT (WINAPI *GetBindString)(IInternetBindInfo *This,ULONG ulStringType,LPOLESTR *ppwzStr,ULONG cEl,ULONG *pcElFetched);
1713    END_INTERFACE
1714  } IInternetBindInfoVtbl;
1715  struct IInternetBindInfo {
1716    CONST_VTBL struct IInternetBindInfoVtbl *lpVtbl;
1717  };
1718#ifdef COBJMACROS
1719#define IInternetBindInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1720#define IInternetBindInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
1721#define IInternetBindInfo_Release(This) (This)->lpVtbl->Release(This)
1722#define IInternetBindInfo_GetBindInfo(This,grfBINDF,pbindinfo) (This)->lpVtbl->GetBindInfo(This,grfBINDF,pbindinfo)
1723#define IInternetBindInfo_GetBindString(This,ulStringType,ppwzStr,cEl,pcElFetched) (This)->lpVtbl->GetBindString(This,ulStringType,ppwzStr,cEl,pcElFetched)
1724#endif
1725#endif
1726  HRESULT WINAPI IInternetBindInfo_GetBindInfo_Proxy(IInternetBindInfo *This,DWORD *grfBINDF,BINDINFO *pbindinfo);
1727  void __RPC_STUB IInternetBindInfo_GetBindInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1728  HRESULT WINAPI IInternetBindInfo_GetBindString_Proxy(IInternetBindInfo *This,ULONG ulStringType,LPOLESTR *ppwzStr,ULONG cEl,ULONG *pcElFetched);
1729  void __RPC_STUB IInternetBindInfo_GetBindString_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1730#endif
1731#endif
1732
1733#ifndef _LPIINTERNETPROTOCOLROOT_DEFINED
1734#define _LPIINTERNETPROTOCOLROOT_DEFINED
1735  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0195_v0_0_c_ifspec;
1736  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0195_v0_0_s_ifspec;
1737#ifndef __IInternetProtocolRoot_INTERFACE_DEFINED__
1738#define __IInternetProtocolRoot_INTERFACE_DEFINED__
1739  typedef IInternetProtocolRoot *LPIINTERNETPROTOCOLROOT;
1740
1741  typedef enum _tagPI_FLAGS {
1742    PI_PARSE_URL = 0x1,PI_FILTER_MODE = 0x2,PI_FORCE_ASYNC = 0x4,PI_USE_WORKERTHREAD = 0x8,PI_MIMEVERIFICATION = 0x10,PI_CLSIDLOOKUP = 0x20,
1743    PI_DATAPROGRESS = 0x40,PI_SYNCHRONOUS = 0x80,PI_APARTMENTTHREADED = 0x100,PI_CLASSINSTALL = 0x200,PI_PASSONBINDCTX = 0x2000,
1744    PI_NOMIMEHANDLER = 0x8000,PI_LOADAPPDIRECT = 0x4000,PD_FORCE_SWITCH = 0x10000,PI_PREFERDEFAULTHANDLER = 0x20000
1745  } PI_FLAGS;
1746
1747  typedef struct _tagPROTOCOLDATA {
1748    DWORD grfFlags;
1749    DWORD dwState;
1750    LPVOID pData;
1751    ULONG cbData;
1752  } PROTOCOLDATA;
1753
1754  typedef struct _tagStartParam {
1755    IID iid;
1756    IBindCtx *pIBindCtx;
1757    IUnknown *pItf;
1758  } StartParam;
1759
1760  EXTERN_C const IID IID_IInternetProtocolRoot;
1761#if defined(__cplusplus) && !defined(CINTERFACE)
1762  struct IInternetProtocolRoot : public IUnknown {
1763  public:
1764    virtual HRESULT WINAPI Start(LPCWSTR szUrl,IInternetProtocolSink *pOIProtSink,IInternetBindInfo *pOIBindInfo,DWORD grfPI,HANDLE_PTR dwReserved) = 0;
1765    virtual HRESULT WINAPI Continue(PROTOCOLDATA *pProtocolData) = 0;
1766    virtual HRESULT WINAPI Abort(HRESULT hrReason,DWORD dwOptions) = 0;
1767    virtual HRESULT WINAPI Terminate(DWORD dwOptions) = 0;
1768    virtual HRESULT WINAPI Suspend(void) = 0;
1769    virtual HRESULT WINAPI Resume(void) = 0;
1770  };
1771#else
1772  typedef struct IInternetProtocolRootVtbl {
1773    BEGIN_INTERFACE
1774      HRESULT (WINAPI *QueryInterface)(IInternetProtocolRoot *This,REFIID riid,void **ppvObject);
1775      ULONG (WINAPI *AddRef)(IInternetProtocolRoot *This);
1776      ULONG (WINAPI *Release)(IInternetProtocolRoot *This);
1777      HRESULT (WINAPI *Start)(IInternetProtocolRoot *This,LPCWSTR szUrl,IInternetProtocolSink *pOIProtSink,IInternetBindInfo *pOIBindInfo,DWORD grfPI,HANDLE_PTR dwReserved);
1778      HRESULT (WINAPI *Continue)(IInternetProtocolRoot *This,PROTOCOLDATA *pProtocolData);
1779      HRESULT (WINAPI *Abort)(IInternetProtocolRoot *This,HRESULT hrReason,DWORD dwOptions);
1780      HRESULT (WINAPI *Terminate)(IInternetProtocolRoot *This,DWORD dwOptions);
1781      HRESULT (WINAPI *Suspend)(IInternetProtocolRoot *This);
1782      HRESULT (WINAPI *Resume)(IInternetProtocolRoot *This);
1783    END_INTERFACE
1784  } IInternetProtocolRootVtbl;
1785  struct IInternetProtocolRoot {
1786    CONST_VTBL struct IInternetProtocolRootVtbl *lpVtbl;
1787  };
1788#ifdef COBJMACROS
1789#define IInternetProtocolRoot_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1790#define IInternetProtocolRoot_AddRef(This) (This)->lpVtbl->AddRef(This)
1791#define IInternetProtocolRoot_Release(This) (This)->lpVtbl->Release(This)
1792#define IInternetProtocolRoot_Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved) (This)->lpVtbl->Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved)
1793#define IInternetProtocolRoot_Continue(This,pProtocolData) (This)->lpVtbl->Continue(This,pProtocolData)
1794#define IInternetProtocolRoot_Abort(This,hrReason,dwOptions) (This)->lpVtbl->Abort(This,hrReason,dwOptions)
1795#define IInternetProtocolRoot_Terminate(This,dwOptions) (This)->lpVtbl->Terminate(This,dwOptions)
1796#define IInternetProtocolRoot_Suspend(This) (This)->lpVtbl->Suspend(This)
1797#define IInternetProtocolRoot_Resume(This) (This)->lpVtbl->Resume(This)
1798#endif
1799#endif
1800  HRESULT WINAPI IInternetProtocolRoot_Start_Proxy(IInternetProtocolRoot *This,LPCWSTR szUrl,IInternetProtocolSink *pOIProtSink,IInternetBindInfo *pOIBindInfo,DWORD grfPI,HANDLE_PTR dwReserved);
1801  void __RPC_STUB IInternetProtocolRoot_Start_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1802  HRESULT WINAPI IInternetProtocolRoot_Continue_Proxy(IInternetProtocolRoot *This,PROTOCOLDATA *pProtocolData);
1803  void __RPC_STUB IInternetProtocolRoot_Continue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1804  HRESULT WINAPI IInternetProtocolRoot_Abort_Proxy(IInternetProtocolRoot *This,HRESULT hrReason,DWORD dwOptions);
1805  void __RPC_STUB IInternetProtocolRoot_Abort_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1806  HRESULT WINAPI IInternetProtocolRoot_Terminate_Proxy(IInternetProtocolRoot *This,DWORD dwOptions);
1807  void __RPC_STUB IInternetProtocolRoot_Terminate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1808  HRESULT WINAPI IInternetProtocolRoot_Suspend_Proxy(IInternetProtocolRoot *This);
1809  void __RPC_STUB IInternetProtocolRoot_Suspend_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1810  HRESULT WINAPI IInternetProtocolRoot_Resume_Proxy(IInternetProtocolRoot *This);
1811  void __RPC_STUB IInternetProtocolRoot_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1812#endif
1813#endif
1814
1815#ifndef _LPIINTERNETPROTOCOL_DEFINED
1816#define _LPIINTERNETPROTOCOL_DEFINED
1817  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0196_v0_0_c_ifspec;
1818  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0196_v0_0_s_ifspec;
1819#ifndef __IInternetProtocol_INTERFACE_DEFINED__
1820#define __IInternetProtocol_INTERFACE_DEFINED__
1821  typedef IInternetProtocol *LPIINTERNETPROTOCOL;
1822
1823  EXTERN_C const IID IID_IInternetProtocol;
1824#if defined(__cplusplus) && !defined(CINTERFACE)
1825  struct IInternetProtocol : public IInternetProtocolRoot {
1826  public:
1827    virtual HRESULT WINAPI Read(void *pv,ULONG cb,ULONG *pcbRead) = 0;
1828    virtual HRESULT WINAPI Seek(LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) = 0;
1829    virtual HRESULT WINAPI LockRequest(DWORD dwOptions) = 0;
1830    virtual HRESULT WINAPI UnlockRequest(void) = 0;
1831  };
1832#else
1833  typedef struct IInternetProtocolVtbl {
1834    BEGIN_INTERFACE
1835      HRESULT (WINAPI *QueryInterface)(IInternetProtocol *This,REFIID riid,void **ppvObject);
1836      ULONG (WINAPI *AddRef)(IInternetProtocol *This);
1837      ULONG (WINAPI *Release)(IInternetProtocol *This);
1838      HRESULT (WINAPI *Start)(IInternetProtocol *This,LPCWSTR szUrl,IInternetProtocolSink *pOIProtSink,IInternetBindInfo *pOIBindInfo,DWORD grfPI,HANDLE_PTR dwReserved);
1839      HRESULT (WINAPI *Continue)(IInternetProtocol *This,PROTOCOLDATA *pProtocolData);
1840      HRESULT (WINAPI *Abort)(IInternetProtocol *This,HRESULT hrReason,DWORD dwOptions);
1841      HRESULT (WINAPI *Terminate)(IInternetProtocol *This,DWORD dwOptions);
1842      HRESULT (WINAPI *Suspend)(IInternetProtocol *This);
1843      HRESULT (WINAPI *Resume)(IInternetProtocol *This);
1844      HRESULT (WINAPI *Read)(IInternetProtocol *This,void *pv,ULONG cb,ULONG *pcbRead);
1845      HRESULT (WINAPI *Seek)(IInternetProtocol *This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition);
1846      HRESULT (WINAPI *LockRequest)(IInternetProtocol *This,DWORD dwOptions);
1847      HRESULT (WINAPI *UnlockRequest)(IInternetProtocol *This);
1848    END_INTERFACE
1849  } IInternetProtocolVtbl;
1850  struct IInternetProtocol {
1851    CONST_VTBL struct IInternetProtocolVtbl *lpVtbl;
1852  };
1853#ifdef COBJMACROS
1854#define IInternetProtocol_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1855#define IInternetProtocol_AddRef(This) (This)->lpVtbl->AddRef(This)
1856#define IInternetProtocol_Release(This) (This)->lpVtbl->Release(This)
1857#define IInternetProtocol_Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved) (This)->lpVtbl->Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved)
1858#define IInternetProtocol_Continue(This,pProtocolData) (This)->lpVtbl->Continue(This,pProtocolData)
1859#define IInternetProtocol_Abort(This,hrReason,dwOptions) (This)->lpVtbl->Abort(This,hrReason,dwOptions)
1860#define IInternetProtocol_Terminate(This,dwOptions) (This)->lpVtbl->Terminate(This,dwOptions)
1861#define IInternetProtocol_Suspend(This) (This)->lpVtbl->Suspend(This)
1862#define IInternetProtocol_Resume(This) (This)->lpVtbl->Resume(This)
1863#define IInternetProtocol_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
1864#define IInternetProtocol_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
1865#define IInternetProtocol_LockRequest(This,dwOptions) (This)->lpVtbl->LockRequest(This,dwOptions)
1866#define IInternetProtocol_UnlockRequest(This) (This)->lpVtbl->UnlockRequest(This)
1867#endif
1868#endif
1869  HRESULT WINAPI IInternetProtocol_Read_Proxy(IInternetProtocol *This,void *pv,ULONG cb,ULONG *pcbRead);
1870  void __RPC_STUB IInternetProtocol_Read_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1871  HRESULT WINAPI IInternetProtocol_Seek_Proxy(IInternetProtocol *This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition);
1872  void __RPC_STUB IInternetProtocol_Seek_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1873  HRESULT WINAPI IInternetProtocol_LockRequest_Proxy(IInternetProtocol *This,DWORD dwOptions);
1874  void __RPC_STUB IInternetProtocol_LockRequest_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1875  HRESULT WINAPI IInternetProtocol_UnlockRequest_Proxy(IInternetProtocol *This);
1876  void __RPC_STUB IInternetProtocol_UnlockRequest_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1877#endif
1878#endif
1879
1880#ifndef _LPIINTERNETPROTOCOLSINK_DEFINED
1881#define _LPIINTERNETPROTOCOLSINK_DEFINED
1882  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0197_v0_0_c_ifspec;
1883  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0197_v0_0_s_ifspec;
1884#ifndef __IInternetProtocolSink_INTERFACE_DEFINED__
1885#define __IInternetProtocolSink_INTERFACE_DEFINED__
1886  typedef IInternetProtocolSink *LPIINTERNETPROTOCOLSINK;
1887
1888  EXTERN_C const IID IID_IInternetProtocolSink;
1889#if defined(__cplusplus) && !defined(CINTERFACE)
1890  struct IInternetProtocolSink : public IUnknown {
1891  public:
1892    virtual HRESULT WINAPI Switch(PROTOCOLDATA *pProtocolData) = 0;
1893    virtual HRESULT WINAPI ReportProgress(ULONG ulStatusCode,LPCWSTR szStatusText) = 0;
1894    virtual HRESULT WINAPI ReportData(DWORD grfBSCF,ULONG ulProgress,ULONG ulProgressMax) = 0;
1895    virtual HRESULT WINAPI ReportResult(HRESULT hrResult,DWORD dwError,LPCWSTR szResult) = 0;
1896  };
1897#else
1898  typedef struct IInternetProtocolSinkVtbl {
1899    BEGIN_INTERFACE
1900      HRESULT (WINAPI *QueryInterface)(IInternetProtocolSink *This,REFIID riid,void **ppvObject);
1901      ULONG (WINAPI *AddRef)(IInternetProtocolSink *This);
1902      ULONG (WINAPI *Release)(IInternetProtocolSink *This);
1903      HRESULT (WINAPI *Switch)(IInternetProtocolSink *This,PROTOCOLDATA *pProtocolData);
1904      HRESULT (WINAPI *ReportProgress)(IInternetProtocolSink *This,ULONG ulStatusCode,LPCWSTR szStatusText);
1905      HRESULT (WINAPI *ReportData)(IInternetProtocolSink *This,DWORD grfBSCF,ULONG ulProgress,ULONG ulProgressMax);
1906      HRESULT (WINAPI *ReportResult)(IInternetProtocolSink *This,HRESULT hrResult,DWORD dwError,LPCWSTR szResult);
1907    END_INTERFACE
1908  } IInternetProtocolSinkVtbl;
1909  struct IInternetProtocolSink {
1910    CONST_VTBL struct IInternetProtocolSinkVtbl *lpVtbl;
1911  };
1912#ifdef COBJMACROS
1913#define IInternetProtocolSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1914#define IInternetProtocolSink_AddRef(This) (This)->lpVtbl->AddRef(This)
1915#define IInternetProtocolSink_Release(This) (This)->lpVtbl->Release(This)
1916#define IInternetProtocolSink_Switch(This,pProtocolData) (This)->lpVtbl->Switch(This,pProtocolData)
1917#define IInternetProtocolSink_ReportProgress(This,ulStatusCode,szStatusText) (This)->lpVtbl->ReportProgress(This,ulStatusCode,szStatusText)
1918#define IInternetProtocolSink_ReportData(This,grfBSCF,ulProgress,ulProgressMax) (This)->lpVtbl->ReportData(This,grfBSCF,ulProgress,ulProgressMax)
1919#define IInternetProtocolSink_ReportResult(This,hrResult,dwError,szResult) (This)->lpVtbl->ReportResult(This,hrResult,dwError,szResult)
1920#endif
1921#endif
1922  HRESULT WINAPI IInternetProtocolSink_Switch_Proxy(IInternetProtocolSink *This,PROTOCOLDATA *pProtocolData);
1923  void __RPC_STUB IInternetProtocolSink_Switch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1924  HRESULT WINAPI IInternetProtocolSink_ReportProgress_Proxy(IInternetProtocolSink *This,ULONG ulStatusCode,LPCWSTR szStatusText);
1925  void __RPC_STUB IInternetProtocolSink_ReportProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1926  HRESULT WINAPI IInternetProtocolSink_ReportData_Proxy(IInternetProtocolSink *This,DWORD grfBSCF,ULONG ulProgress,ULONG ulProgressMax);
1927  void __RPC_STUB IInternetProtocolSink_ReportData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1928  HRESULT WINAPI IInternetProtocolSink_ReportResult_Proxy(IInternetProtocolSink *This,HRESULT hrResult,DWORD dwError,LPCWSTR szResult);
1929  void __RPC_STUB IInternetProtocolSink_ReportResult_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1930#endif
1931#endif
1932
1933#ifndef _LPIINTERNETPROTOCOLSINKSTACKABLE_DEFINED
1934#define _LPIINTERNETPROTOCOLSINKSTACKABLE_DEFINED
1935  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0198_v0_0_c_ifspec;
1936  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0198_v0_0_s_ifspec;
1937#ifndef __IInternetProtocolSinkStackable_INTERFACE_DEFINED__
1938#define __IInternetProtocolSinkStackable_INTERFACE_DEFINED__
1939  typedef IInternetProtocolSinkStackable *LPIINTERNETPROTOCOLSINKStackable;
1940
1941  EXTERN_C const IID IID_IInternetProtocolSinkStackable;
1942#if defined(__cplusplus) && !defined(CINTERFACE)
1943  struct IInternetProtocolSinkStackable : public IUnknown {
1944  public:
1945    virtual HRESULT WINAPI SwitchSink(IInternetProtocolSink *pOIProtSink) = 0;
1946    virtual HRESULT WINAPI CommitSwitch(void) = 0;
1947    virtual HRESULT WINAPI RollbackSwitch(void) = 0;
1948  };
1949#else
1950  typedef struct IInternetProtocolSinkStackableVtbl {
1951    BEGIN_INTERFACE
1952      HRESULT (WINAPI *QueryInterface)(IInternetProtocolSinkStackable *This,REFIID riid,void **ppvObject);
1953      ULONG (WINAPI *AddRef)(IInternetProtocolSinkStackable *This);
1954      ULONG (WINAPI *Release)(IInternetProtocolSinkStackable *This);
1955      HRESULT (WINAPI *SwitchSink)(IInternetProtocolSinkStackable *This,IInternetProtocolSink *pOIProtSink);
1956      HRESULT (WINAPI *CommitSwitch)(IInternetProtocolSinkStackable *This);
1957      HRESULT (WINAPI *RollbackSwitch)(IInternetProtocolSinkStackable *This);
1958    END_INTERFACE
1959  } IInternetProtocolSinkStackableVtbl;
1960  struct IInternetProtocolSinkStackable {
1961    CONST_VTBL struct IInternetProtocolSinkStackableVtbl *lpVtbl;
1962  };
1963#ifdef COBJMACROS
1964#define IInternetProtocolSinkStackable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1965#define IInternetProtocolSinkStackable_AddRef(This) (This)->lpVtbl->AddRef(This)
1966#define IInternetProtocolSinkStackable_Release(This) (This)->lpVtbl->Release(This)
1967#define IInternetProtocolSinkStackable_SwitchSink(This,pOIProtSink) (This)->lpVtbl->SwitchSink(This,pOIProtSink)
1968#define IInternetProtocolSinkStackable_CommitSwitch(This) (This)->lpVtbl->CommitSwitch(This)
1969#define IInternetProtocolSinkStackable_RollbackSwitch(This) (This)->lpVtbl->RollbackSwitch(This)
1970#endif
1971#endif
1972  HRESULT WINAPI IInternetProtocolSinkStackable_SwitchSink_Proxy(IInternetProtocolSinkStackable *This,IInternetProtocolSink *pOIProtSink);
1973  void __RPC_STUB IInternetProtocolSinkStackable_SwitchSink_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1974  HRESULT WINAPI IInternetProtocolSinkStackable_CommitSwitch_Proxy(IInternetProtocolSinkStackable *This);
1975  void __RPC_STUB IInternetProtocolSinkStackable_CommitSwitch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1976  HRESULT WINAPI IInternetProtocolSinkStackable_RollbackSwitch_Proxy(IInternetProtocolSinkStackable *This);
1977  void __RPC_STUB IInternetProtocolSinkStackable_RollbackSwitch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1978#endif
1979#endif
1980
1981#ifndef _LPIINTERNETSESSION_DEFINED
1982#define _LPIINTERNETSESSION_DEFINED
1983  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0199_v0_0_c_ifspec;
1984  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0199_v0_0_s_ifspec;
1985#ifndef __IInternetSession_INTERFACE_DEFINED__
1986#define __IInternetSession_INTERFACE_DEFINED__
1987  typedef IInternetSession *LPIINTERNETSESSION;
1988
1989  typedef enum _tagOIBDG_FLAGS {
1990    OIBDG_APARTMENTTHREADED = 0x100,OIBDG_DATAONLY = 0x1000
1991  } OIBDG_FLAGS;
1992
1993  EXTERN_C const IID IID_IInternetSession;
1994#if defined(__cplusplus) && !defined(CINTERFACE)
1995  struct IInternetSession : public IUnknown {
1996  public:
1997    virtual HRESULT WINAPI RegisterNameSpace(IClassFactory *pCF,REFCLSID rclsid,LPCWSTR pwzProtocol,ULONG cPatterns,const LPCWSTR *ppwzPatterns,DWORD dwReserved) = 0;
1998    virtual HRESULT WINAPI UnregisterNameSpace(IClassFactory *pCF,LPCWSTR pszProtocol) = 0;
1999    virtual HRESULT WINAPI RegisterMimeFilter(IClassFactory *pCF,REFCLSID rclsid,LPCWSTR pwzType) = 0;
2000    virtual HRESULT WINAPI UnregisterMimeFilter(IClassFactory *pCF,LPCWSTR pwzType) = 0;
2001    virtual HRESULT WINAPI CreateBinding(LPBC pBC,LPCWSTR szUrl,IUnknown *pUnkOuter,IUnknown **ppUnk,IInternetProtocol **ppOInetProt,DWORD dwOption) = 0;
2002    virtual HRESULT WINAPI SetSessionOption(DWORD dwOption,LPVOID pBuffer,DWORD dwBufferLength,DWORD dwReserved) = 0;
2003    virtual HRESULT WINAPI GetSessionOption(DWORD dwOption,LPVOID pBuffer,DWORD *pdwBufferLength,DWORD dwReserved) = 0;
2004  };
2005#else
2006  typedef struct IInternetSessionVtbl {
2007    BEGIN_INTERFACE
2008      HRESULT (WINAPI *QueryInterface)(IInternetSession *This,REFIID riid,void **ppvObject);
2009      ULONG (WINAPI *AddRef)(IInternetSession *This);
2010      ULONG (WINAPI *Release)(IInternetSession *This);
2011      HRESULT (WINAPI *RegisterNameSpace)(IInternetSession *This,IClassFactory *pCF,REFCLSID rclsid,LPCWSTR pwzProtocol,ULONG cPatterns,const LPCWSTR *ppwzPatterns,DWORD dwReserved);
2012      HRESULT (WINAPI *UnregisterNameSpace)(IInternetSession *This,IClassFactory *pCF,LPCWSTR pszProtocol);
2013      HRESULT (WINAPI *RegisterMimeFilter)(IInternetSession *This,IClassFactory *pCF,REFCLSID rclsid,LPCWSTR pwzType);
2014      HRESULT (WINAPI *UnregisterMimeFilter)(IInternetSession *This,IClassFactory *pCF,LPCWSTR pwzType);
2015      HRESULT (WINAPI *CreateBinding)(IInternetSession *This,LPBC pBC,LPCWSTR szUrl,IUnknown *pUnkOuter,IUnknown **ppUnk,IInternetProtocol **ppOInetProt,DWORD dwOption);
2016      HRESULT (WINAPI *SetSessionOption)(IInternetSession *This,DWORD dwOption,LPVOID pBuffer,DWORD dwBufferLength,DWORD dwReserved);
2017      HRESULT (WINAPI *GetSessionOption)(IInternetSession *This,DWORD dwOption,LPVOID pBuffer,DWORD *pdwBufferLength,DWORD dwReserved);
2018    END_INTERFACE
2019  } IInternetSessionVtbl;
2020  struct IInternetSession {
2021    CONST_VTBL struct IInternetSessionVtbl *lpVtbl;
2022  };
2023#ifdef COBJMACROS
2024#define IInternetSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2025#define IInternetSession_AddRef(This) (This)->lpVtbl->AddRef(This)
2026#define IInternetSession_Release(This) (This)->lpVtbl->Release(This)
2027#define IInternetSession_RegisterNameSpace(This,pCF,rclsid,pwzProtocol,cPatterns,ppwzPatterns,dwReserved) (This)->lpVtbl->RegisterNameSpace(This,pCF,rclsid,pwzProtocol,cPatterns,ppwzPatterns,dwReserved)
2028#define IInternetSession_UnregisterNameSpace(This,pCF,pszProtocol) (This)->lpVtbl->UnregisterNameSpace(This,pCF,pszProtocol)
2029#define IInternetSession_RegisterMimeFilter(This,pCF,rclsid,pwzType) (This)->lpVtbl->RegisterMimeFilter(This,pCF,rclsid,pwzType)
2030#define IInternetSession_UnregisterMimeFilter(This,pCF,pwzType) (This)->lpVtbl->UnregisterMimeFilter(This,pCF,pwzType)
2031#define IInternetSession_CreateBinding(This,pBC,szUrl,pUnkOuter,ppUnk,ppOInetProt,dwOption) (This)->lpVtbl->CreateBinding(This,pBC,szUrl,pUnkOuter,ppUnk,ppOInetProt,dwOption)
2032#define IInternetSession_SetSessionOption(This,dwOption,pBuffer,dwBufferLength,dwReserved) (This)->lpVtbl->SetSessionOption(This,dwOption,pBuffer,dwBufferLength,dwReserved)
2033#define IInternetSession_GetSessionOption(This,dwOption,pBuffer,pdwBufferLength,dwReserved) (This)->lpVtbl->GetSessionOption(This,dwOption,pBuffer,pdwBufferLength,dwReserved)
2034#endif
2035#endif
2036  HRESULT WINAPI IInternetSession_RegisterNameSpace_Proxy(IInternetSession *This,IClassFactory *pCF,REFCLSID rclsid,LPCWSTR pwzProtocol,ULONG cPatterns,const LPCWSTR *ppwzPatterns,DWORD dwReserved);
2037  void __RPC_STUB IInternetSession_RegisterNameSpace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2038  HRESULT WINAPI IInternetSession_UnregisterNameSpace_Proxy(IInternetSession *This,IClassFactory *pCF,LPCWSTR pszProtocol);
2039  void __RPC_STUB IInternetSession_UnregisterNameSpace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2040  HRESULT WINAPI IInternetSession_RegisterMimeFilter_Proxy(IInternetSession *This,IClassFactory *pCF,REFCLSID rclsid,LPCWSTR pwzType);
2041  void __RPC_STUB IInternetSession_RegisterMimeFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2042  HRESULT WINAPI IInternetSession_UnregisterMimeFilter_Proxy(IInternetSession *This,IClassFactory *pCF,LPCWSTR pwzType);
2043  void __RPC_STUB IInternetSession_UnregisterMimeFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2044  HRESULT WINAPI IInternetSession_CreateBinding_Proxy(IInternetSession *This,LPBC pBC,LPCWSTR szUrl,IUnknown *pUnkOuter,IUnknown **ppUnk,IInternetProtocol **ppOInetProt,DWORD dwOption);
2045  void __RPC_STUB IInternetSession_CreateBinding_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2046  HRESULT WINAPI IInternetSession_SetSessionOption_Proxy(IInternetSession *This,DWORD dwOption,LPVOID pBuffer,DWORD dwBufferLength,DWORD dwReserved);
2047  void __RPC_STUB IInternetSession_SetSessionOption_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2048  HRESULT WINAPI IInternetSession_GetSessionOption_Proxy(IInternetSession *This,DWORD dwOption,LPVOID pBuffer,DWORD *pdwBufferLength,DWORD dwReserved);
2049  void __RPC_STUB IInternetSession_GetSessionOption_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2050#endif
2051#endif
2052
2053#ifndef _LPIINTERNETTHREADSWITCH_DEFINED
2054#define _LPIINTERNETTHREADSWITCH_DEFINED
2055  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0200_v0_0_c_ifspec;
2056  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0200_v0_0_s_ifspec;
2057#ifndef __IInternetThreadSwitch_INTERFACE_DEFINED__
2058#define __IInternetThreadSwitch_INTERFACE_DEFINED__
2059  typedef IInternetThreadSwitch *LPIINTERNETTHREADSWITCH;
2060
2061  EXTERN_C const IID IID_IInternetThreadSwitch;
2062#if defined(__cplusplus) && !defined(CINTERFACE)
2063  struct IInternetThreadSwitch : public IUnknown {
2064  public:
2065    virtual HRESULT WINAPI Prepare(void) = 0;
2066    virtual HRESULT WINAPI Continue(void) = 0;
2067  };
2068#else
2069  typedef struct IInternetThreadSwitchVtbl {
2070    BEGIN_INTERFACE
2071      HRESULT (WINAPI *QueryInterface)(IInternetThreadSwitch *This,REFIID riid,void **ppvObject);
2072      ULONG (WINAPI *AddRef)(IInternetThreadSwitch *This);
2073      ULONG (WINAPI *Release)(IInternetThreadSwitch *This);
2074      HRESULT (WINAPI *Prepare)(IInternetThreadSwitch *This);
2075      HRESULT (WINAPI *Continue)(IInternetThreadSwitch *This);
2076    END_INTERFACE
2077  } IInternetThreadSwitchVtbl;
2078  struct IInternetThreadSwitch {
2079    CONST_VTBL struct IInternetThreadSwitchVtbl *lpVtbl;
2080  };
2081#ifdef COBJMACROS
2082#define IInternetThreadSwitch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2083#define IInternetThreadSwitch_AddRef(This) (This)->lpVtbl->AddRef(This)
2084#define IInternetThreadSwitch_Release(This) (This)->lpVtbl->Release(This)
2085#define IInternetThreadSwitch_Prepare(This) (This)->lpVtbl->Prepare(This)
2086#define IInternetThreadSwitch_Continue(This) (This)->lpVtbl->Continue(This)
2087#endif
2088#endif
2089  HRESULT WINAPI IInternetThreadSwitch_Prepare_Proxy(IInternetThreadSwitch *This);
2090  void __RPC_STUB IInternetThreadSwitch_Prepare_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2091  HRESULT WINAPI IInternetThreadSwitch_Continue_Proxy(IInternetThreadSwitch *This);
2092  void __RPC_STUB IInternetThreadSwitch_Continue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2093#endif
2094#endif
2095
2096#ifndef _LPIINTERNETPRIORITY_DEFINED
2097#define _LPIINTERNETPRIORITY_DEFINED
2098  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0201_v0_0_c_ifspec;
2099  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0201_v0_0_s_ifspec;
2100#ifndef __IInternetPriority_INTERFACE_DEFINED__
2101#define __IInternetPriority_INTERFACE_DEFINED__
2102  typedef IInternetPriority *LPIINTERNETPRIORITY;
2103
2104  EXTERN_C const IID IID_IInternetPriority;
2105#if defined(__cplusplus) && !defined(CINTERFACE)
2106  struct IInternetPriority : public IUnknown {
2107  public:
2108    virtual HRESULT WINAPI SetPriority(LONG nPriority) = 0;
2109    virtual HRESULT WINAPI GetPriority(LONG *pnPriority) = 0;
2110  };
2111#else
2112  typedef struct IInternetPriorityVtbl {
2113    BEGIN_INTERFACE
2114      HRESULT (WINAPI *QueryInterface)(IInternetPriority *This,REFIID riid,void **ppvObject);
2115      ULONG (WINAPI *AddRef)(IInternetPriority *This);
2116      ULONG (WINAPI *Release)(IInternetPriority *This);
2117      HRESULT (WINAPI *SetPriority)(IInternetPriority *This,LONG nPriority);
2118      HRESULT (WINAPI *GetPriority)(IInternetPriority *This,LONG *pnPriority);
2119    END_INTERFACE
2120  } IInternetPriorityVtbl;
2121  struct IInternetPriority {
2122    CONST_VTBL struct IInternetPriorityVtbl *lpVtbl;
2123  };
2124#ifdef COBJMACROS
2125#define IInternetPriority_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2126#define IInternetPriority_AddRef(This) (This)->lpVtbl->AddRef(This)
2127#define IInternetPriority_Release(This) (This)->lpVtbl->Release(This)
2128#define IInternetPriority_SetPriority(This,nPriority) (This)->lpVtbl->SetPriority(This,nPriority)
2129#define IInternetPriority_GetPriority(This,pnPriority) (This)->lpVtbl->GetPriority(This,pnPriority)
2130#endif
2131#endif
2132  HRESULT WINAPI IInternetPriority_SetPriority_Proxy(IInternetPriority *This,LONG nPriority);
2133  void __RPC_STUB IInternetPriority_SetPriority_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2134  HRESULT WINAPI IInternetPriority_GetPriority_Proxy(IInternetPriority *This,LONG *pnPriority);
2135  void __RPC_STUB IInternetPriority_GetPriority_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2136#endif
2137#endif
2138
2139#ifndef _LPIINTERNETPROTOCOLINFO_DEFINED
2140#define _LPIINTERNETPROTOCOLINFO_DEFINED
2141  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0202_v0_0_c_ifspec;
2142  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0202_v0_0_s_ifspec;
2143#ifndef __IInternetProtocolInfo_INTERFACE_DEFINED__
2144#define __IInternetProtocolInfo_INTERFACE_DEFINED__
2145  typedef IInternetProtocolInfo *LPIINTERNETPROTOCOLINFO;
2146
2147  typedef enum _tagPARSEACTION {
2148    PARSE_CANONICALIZE = 1,
2149    PARSE_FRIENDLY,PARSE_SECURITY_URL,PARSE_ROOTDOCUMENT,PARSE_DOCUMENT,PARSE_ANCHOR,
2150    PARSE_ENCODE,PARSE_DECODE,PARSE_PATH_FROM_URL,PARSE_URL_FROM_PATH,PARSE_MIME,
2151    PARSE_SERVER,PARSE_SCHEMA,PARSE_SITE,PARSE_DOMAIN,PARSE_LOCATION,PARSE_SECURITY_DOMAIN,
2152    PARSE_ESCAPE,PARSE_UNESCAPE
2153  } PARSEACTION;
2154
2155  typedef enum _tagPSUACTION {
2156    PSU_DEFAULT = 1,
2157    PSU_SECURITY_URL_ONLY
2158  } PSUACTION;
2159
2160  typedef enum _tagQUERYOPTION {
2161    QUERY_EXPIRATION_DATE = 1,
2162    QUERY_TIME_OF_LAST_CHANGE,QUERY_CONTENT_ENCODING,QUERY_CONTENT_TYPE,QUERY_REFRESH,
2163    QUERY_RECOMBINE,QUERY_CAN_NAVIGATE,QUERY_USES_NETWORK,QUERY_IS_CACHED,QUERY_IS_INSTALLEDENTRY,
2164    QUERY_IS_CACHED_OR_MAPPED,QUERY_USES_CACHE,QUERY_IS_SECURE,QUERY_IS_SAFE
2165  } QUERYOPTION;
2166
2167  EXTERN_C const IID IID_IInternetProtocolInfo;
2168#if defined(__cplusplus) && !defined(CINTERFACE)
2169  struct IInternetProtocolInfo : public IUnknown {
2170  public:
2171    virtual HRESULT WINAPI ParseUrl(LPCWSTR pwzUrl,PARSEACTION ParseAction,DWORD dwParseFlags,LPWSTR pwzResult,DWORD cchResult,DWORD *pcchResult,DWORD dwReserved) = 0;
2172    virtual HRESULT WINAPI CombineUrl(LPCWSTR pwzBaseUrl,LPCWSTR pwzRelativeUrl,DWORD dwCombineFlags,LPWSTR pwzResult,DWORD cchResult,DWORD *pcchResult,DWORD dwReserved) = 0;
2173    virtual HRESULT WINAPI CompareUrl(LPCWSTR pwzUrl1,LPCWSTR pwzUrl2,DWORD dwCompareFlags) = 0;
2174    virtual HRESULT WINAPI QueryInfo(LPCWSTR pwzUrl,QUERYOPTION OueryOption,DWORD dwQueryFlags,LPVOID pBuffer,DWORD cbBuffer,DWORD *pcbBuf,DWORD dwReserved) = 0;
2175  };
2176#else
2177  typedef struct IInternetProtocolInfoVtbl {
2178    BEGIN_INTERFACE
2179      HRESULT (WINAPI *QueryInterface)(IInternetProtocolInfo *This,REFIID riid,void **ppvObject);
2180      ULONG (WINAPI *AddRef)(IInternetProtocolInfo *This);
2181      ULONG (WINAPI *Release)(IInternetProtocolInfo *This);
2182      HRESULT (WINAPI *ParseUrl)(IInternetProtocolInfo *This,LPCWSTR pwzUrl,PARSEACTION ParseAction,DWORD dwParseFlags,LPWSTR pwzResult,DWORD cchResult,DWORD *pcchResult,DWORD dwReserved);
2183      HRESULT (WINAPI *CombineUrl)(IInternetProtocolInfo *This,LPCWSTR pwzBaseUrl,LPCWSTR pwzRelativeUrl,DWORD dwCombineFlags,LPWSTR pwzResult,DWORD cchResult,DWORD *pcchResult,DWORD dwReserved);
2184      HRESULT (WINAPI *CompareUrl)(IInternetProtocolInfo *This,LPCWSTR pwzUrl1,LPCWSTR pwzUrl2,DWORD dwCompareFlags);
2185      HRESULT (WINAPI *QueryInfo)(IInternetProtocolInfo *This,LPCWSTR pwzUrl,QUERYOPTION OueryOption,DWORD dwQueryFlags,LPVOID pBuffer,DWORD cbBuffer,DWORD *pcbBuf,DWORD dwReserved);
2186    END_INTERFACE
2187  } IInternetProtocolInfoVtbl;
2188  struct IInternetProtocolInfo {
2189    CONST_VTBL struct IInternetProtocolInfoVtbl *lpVtbl;
2190  };
2191#ifdef COBJMACROS
2192#define IInternetProtocolInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2193#define IInternetProtocolInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
2194#define IInternetProtocolInfo_Release(This) (This)->lpVtbl->Release(This)
2195#define IInternetProtocolInfo_ParseUrl(This,pwzUrl,ParseAction,dwParseFlags,pwzResult,cchResult,pcchResult,dwReserved) (This)->lpVtbl->ParseUrl(This,pwzUrl,ParseAction,dwParseFlags,pwzResult,cchResult,pcchResult,dwReserved)
2196#define IInternetProtocolInfo_CombineUrl(This,pwzBaseUrl,pwzRelativeUrl,dwCombineFlags,pwzResult,cchResult,pcchResult,dwReserved) (This)->lpVtbl->CombineUrl(This,pwzBaseUrl,pwzRelativeUrl,dwCombineFlags,pwzResult,cchResult,pcchResult,dwReserved)
2197#define IInternetProtocolInfo_CompareUrl(This,pwzUrl1,pwzUrl2,dwCompareFlags) (This)->lpVtbl->CompareUrl(This,pwzUrl1,pwzUrl2,dwCompareFlags)
2198#define IInternetProtocolInfo_QueryInfo(This,pwzUrl,OueryOption,dwQueryFlags,pBuffer,cbBuffer,pcbBuf,dwReserved) (This)->lpVtbl->QueryInfo(This,pwzUrl,OueryOption,dwQueryFlags,pBuffer,cbBuffer,pcbBuf,dwReserved)
2199#endif
2200#endif
2201  HRESULT WINAPI IInternetProtocolInfo_ParseUrl_Proxy(IInternetProtocolInfo *This,LPCWSTR pwzUrl,PARSEACTION ParseAction,DWORD dwParseFlags,LPWSTR pwzResult,DWORD cchResult,DWORD *pcchResult,DWORD dwReserved);
2202  void __RPC_STUB IInternetProtocolInfo_ParseUrl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2203  HRESULT WINAPI IInternetProtocolInfo_CombineUrl_Proxy(IInternetProtocolInfo *This,LPCWSTR pwzBaseUrl,LPCWSTR pwzRelativeUrl,DWORD dwCombineFlags,LPWSTR pwzResult,DWORD cchResult,DWORD *pcchResult,DWORD dwReserved);
2204  void __RPC_STUB IInternetProtocolInfo_CombineUrl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2205  HRESULT WINAPI IInternetProtocolInfo_CompareUrl_Proxy(IInternetProtocolInfo *This,LPCWSTR pwzUrl1,LPCWSTR pwzUrl2,DWORD dwCompareFlags);
2206  void __RPC_STUB IInternetProtocolInfo_CompareUrl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2207  HRESULT WINAPI IInternetProtocolInfo_QueryInfo_Proxy(IInternetProtocolInfo *This,LPCWSTR pwzUrl,QUERYOPTION OueryOption,DWORD dwQueryFlags,LPVOID pBuffer,DWORD cbBuffer,DWORD *pcbBuf,DWORD dwReserved);
2208  void __RPC_STUB IInternetProtocolInfo_QueryInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2209#endif
2210#endif
2211
2212#define IOInet IInternet
2213#define IOInetBindInfo IInternetBindInfo
2214#define IOInetProtocolRoot IInternetProtocolRoot
2215#define IOInetProtocol IInternetProtocol
2216#define IOInetProtocolSink IInternetProtocolSink
2217#define IOInetProtocolInfo IInternetProtocolInfo
2218#define IOInetSession IInternetSession
2219#define IOInetPriority IInternetPriority
2220#define IOInetThreadSwitch IInternetThreadSwitch
2221#define IOInetProtocolSinkStackable IInternetProtocolSinkStackable
2222#define LPOINET LPIINTERNET
2223#define LPOINETPROTOCOLINFO LPIINTERNETPROTOCOLINFO
2224#define LPOINETBINDINFO LPIINTERNETBINDINFO
2225#define LPOINETPROTOCOLROOT LPIINTERNETPROTOCOLROOT
2226#define LPOINETPROTOCOL LPIINTERNETPROTOCOL
2227#define LPOINETPROTOCOLSINK LPIINTERNETPROTOCOLSINK
2228#define LPOINETSESSION LPIINTERNETSESSION
2229#define LPOINETTHREADSWITCH LPIINTERNETTHREADSWITCH
2230#define LPOINETPRIORITY LPIINTERNETPRIORITY
2231#define LPOINETPROTOCOLINFO LPIINTERNETPROTOCOLINFO
2232#define LPOINETPROTOCOLSINKSTACKABLE LPIINTERNETPROTOCOLSINKSTACKABLE
2233#define IID_IOInet IID_IInternet
2234#define IID_IOInetBindInfo IID_IInternetBindInfo
2235#define IID_IOInetProtocolRoot IID_IInternetProtocolRoot
2236#define IID_IOInetProtocol IID_IInternetProtocol
2237#define IID_IOInetProtocolSink IID_IInternetProtocolSink
2238#define IID_IOInetProtocolInfo IID_IInternetProtocolInfo
2239#define IID_IOInetSession IID_IInternetSession
2240#define IID_IOInetPriority IID_IInternetPriority
2241#define IID_IOInetThreadSwitch IID_IInternetThreadSwitch
2242#define IID_IOInetProtocolSinkStackable IID_IInternetProtocolSinkStackable
2243  STDAPI CoInternetParseUrl(LPCWSTR pwzUrl,PARSEACTION ParseAction,DWORD dwFlags,LPWSTR pszResult,DWORD cchResult,DWORD *pcchResult,DWORD dwReserved);
2244  STDAPI CoInternetCombineUrl(LPCWSTR pwzBaseUrl,LPCWSTR pwzRelativeUrl,DWORD dwCombineFlags,LPWSTR pszResult,DWORD cchResult,DWORD *pcchResult,DWORD dwReserved);
2245  STDAPI CoInternetCompareUrl(LPCWSTR pwzUrl1,LPCWSTR pwzUrl2,DWORD dwFlags);
2246  STDAPI CoInternetGetProtocolFlags(LPCWSTR pwzUrl,DWORD *pdwFlags,DWORD dwReserved);
2247  STDAPI CoInternetQueryInfo(LPCWSTR pwzUrl,QUERYOPTION QueryOptions,DWORD dwQueryFlags,LPVOID pvBuffer,DWORD cbBuffer,DWORD *pcbBuffer,DWORD dwReserved);
2248  STDAPI CoInternetGetSession(DWORD dwSessionMode,IInternetSession **ppIInternetSession,DWORD dwReserved);
2249  STDAPI CoInternetGetSecurityUrl(LPCWSTR pwzUrl,LPWSTR *ppwzSecUrl,PSUACTION psuAction,DWORD dwReserved);
2250  STDAPI AsyncInstallDistributionUnit(LPCWSTR szDistUnit,LPCWSTR szTYPE,LPCWSTR szExt,DWORD dwFileVersionMS,DWORD dwFileVersionLS,LPCWSTR szURL,IBindCtx *pbc,LPVOID pvReserved,DWORD flags);
2251#ifndef _INTERNETFEATURELIST_DEFINED
2252#define _INTERNETFEATURELIST_DEFINED
2253
2254  typedef enum _tagINTERNETFEATURELIST {
2255    FEATURE_OBJECT_CACHING = 0,
2256    FEATURE_ZONE_ELEVATION,FEATURE_MIME_HANDLING,FEATURE_MIME_SNIFFING,
2257    FEATURE_WINDOW_RESTRICTIONS,FEATURE_WEBOC_POPUPMANAGEMENT,
2258    FEATURE_BEHAVIORS,FEATURE_DISABLE_MK_PROTOCOL,FEATURE_LOCALMACHINE_LOCKDOWN,
2259    FEATURE_SECURITYBAND,FEATURE_RESTRICT_ACTIVEXINSTALL,FEATURE_VALIDATE_NAVIGATE_URL,
2260    FEATURE_RESTRICT_FILEDOWNLOAD,FEATURE_ADDON_MANAGEMENT,FEATURE_PROTOCOL_LOCKDOWN,
2261    FEATURE_HTTP_USERNAME_PASSWORD_DISABLE,FEATURE_SAFE_BINDTOOBJECT,
2262    FEATURE_UNC_SAVEDFILECHECK,FEATURE_GET_URL_DOM_FILEPATH_UNENCODED,
2263    FEATURE_ENTRY_COUNT
2264  } INTERNETFEATURELIST;
2265
2266#define SET_FEATURE_ON_THREAD 0x00000001
2267#define SET_FEATURE_ON_PROCESS 0x00000002
2268#define SET_FEATURE_IN_REGISTRY 0x00000004
2269#define SET_FEATURE_ON_THREAD_LOCALMACHINE 0x00000008
2270#define SET_FEATURE_ON_THREAD_INTRANET 0x00000010
2271#define SET_FEATURE_ON_THREAD_TRUSTED 0x00000020
2272#define SET_FEATURE_ON_THREAD_INTERNET 0x00000040
2273#define SET_FEATURE_ON_THREAD_RESTRICTED 0x00000080
2274
2275#define GET_FEATURE_FROM_THREAD 0x00000001
2276#define GET_FEATURE_FROM_PROCESS 0x00000002
2277#define GET_FEATURE_FROM_REGISTRY 0x00000004
2278#define GET_FEATURE_FROM_THREAD_LOCALMACHINE 0x00000008
2279#define GET_FEATURE_FROM_THREAD_INTRANET 0x00000010
2280#define GET_FEATURE_FROM_THREAD_TRUSTED 0x00000020
2281#define GET_FEATURE_FROM_THREAD_INTERNET 0x00000040
2282#define GET_FEATURE_FROM_THREAD_RESTRICTED 0x00000080
2283#endif
2284  STDAPI CoInternetSetFeatureEnabled(INTERNETFEATURELIST FeatureEntry,DWORD dwFlags,WINBOOL fEnable);
2285  STDAPI CoInternetIsFeatureEnabled(INTERNETFEATURELIST FeatureEntry,DWORD dwFlags);
2286  STDAPI CoInternetIsFeatureEnabledForUrl(INTERNETFEATURELIST FeatureEntry,DWORD dwFlags,LPCWSTR szURL,IInternetSecurityManager *pSecMgr);
2287  STDAPI CoInternetIsFeatureZoneElevationEnabled(LPCWSTR szFromURL,LPCWSTR szToURL,IInternetSecurityManager *pSecMgr,DWORD dwFlags);
2288  STDAPI CopyStgMedium(const STGMEDIUM *pcstgmedSrc,STGMEDIUM *pstgmedDest);
2289  STDAPI CopyBindInfo(const BINDINFO *pcbiSrc,BINDINFO *pbiDest);
2290  STDAPI_(void) ReleaseBindInfo(BINDINFO *pbindinfo);
2291
2292#define INET_E_USE_DEFAULT_PROTOCOLHANDLER _HRESULT_TYPEDEF_(0x800C0011L)
2293#define INET_E_USE_DEFAULT_SETTING _HRESULT_TYPEDEF_(0x800C0012L)
2294#define INET_E_DEFAULT_ACTION INET_E_USE_DEFAULT_PROTOCOLHANDLER
2295#define INET_E_QUERYOPTION_UNKNOWN _HRESULT_TYPEDEF_(0x800C0013L)
2296#define INET_E_REDIRECTING _HRESULT_TYPEDEF_(0x800C0014L)
2297#define OInetParseUrl CoInternetParseUrl
2298#define OInetCombineUrl CoInternetCombineUrl
2299#define OInetCompareUrl CoInternetCompareUrl
2300#define OInetQueryInfo CoInternetQueryInfo
2301#define OInetGetSession CoInternetGetSession
2302#endif
2303
2304#define PROTOCOLFLAG_NO_PICS_CHECK 0x00000001
2305
2306  STDAPI CoInternetCreateSecurityManager(IServiceProvider *pSP,IInternetSecurityManager **ppSM,DWORD dwReserved);
2307  STDAPI CoInternetCreateZoneManager(IServiceProvider *pSP,IInternetZoneManager **ppZM,DWORD dwReserved);
2308
2309  EXTERN_C const IID CLSID_InternetSecurityManager;
2310  EXTERN_C const IID CLSID_InternetZoneManager;
2311  EXTERN_C const IID CLSID_PersistentZoneIdentifier;
2312
2313#define SID_SInternetSecurityManager IID_IInternetSecurityManager
2314#define SID_SInternetSecurityManagerEx IID_IInternetSecurityManagerEx
2315#define SID_SInternetHostSecurityManager IID_IInternetHostSecurityManager
2316
2317#ifndef _LPINTERNETSECURITYMGRSITE_DEFINED
2318#define _LPINTERNETSECURITYMGRSITE_DEFINED
2319  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0203_v0_0_c_ifspec;
2320  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0203_v0_0_s_ifspec;
2321#ifndef __IInternetSecurityMgrSite_INTERFACE_DEFINED__
2322#define __IInternetSecurityMgrSite_INTERFACE_DEFINED__
2323  EXTERN_C const IID IID_IInternetSecurityMgrSite;
2324#if defined(__cplusplus) && !defined(CINTERFACE)
2325  struct IInternetSecurityMgrSite : public IUnknown {
2326  public:
2327    virtual HRESULT WINAPI GetWindow(HWND *phwnd) = 0;
2328    virtual HRESULT WINAPI EnableModeless(WINBOOL fEnable) = 0;
2329  };
2330#else
2331  typedef struct IInternetSecurityMgrSiteVtbl {
2332    BEGIN_INTERFACE
2333      HRESULT (WINAPI *QueryInterface)(IInternetSecurityMgrSite *This,REFIID riid,void **ppvObject);
2334      ULONG (WINAPI *AddRef)(IInternetSecurityMgrSite *This);
2335      ULONG (WINAPI *Release)(IInternetSecurityMgrSite *This);
2336      HRESULT (WINAPI *GetWindow)(IInternetSecurityMgrSite *This,HWND *phwnd);
2337      HRESULT (WINAPI *EnableModeless)(IInternetSecurityMgrSite *This,WINBOOL fEnable);
2338    END_INTERFACE
2339  } IInternetSecurityMgrSiteVtbl;
2340  struct IInternetSecurityMgrSite {
2341    CONST_VTBL struct IInternetSecurityMgrSiteVtbl *lpVtbl;
2342  };
2343#ifdef COBJMACROS
2344#define IInternetSecurityMgrSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2345#define IInternetSecurityMgrSite_AddRef(This) (This)->lpVtbl->AddRef(This)
2346#define IInternetSecurityMgrSite_Release(This) (This)->lpVtbl->Release(This)
2347#define IInternetSecurityMgrSite_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
2348#define IInternetSecurityMgrSite_EnableModeless(This,fEnable) (This)->lpVtbl->EnableModeless(This,fEnable)
2349#endif
2350#endif
2351  HRESULT WINAPI IInternetSecurityMgrSite_GetWindow_Proxy(IInternetSecurityMgrSite *This,HWND *phwnd);
2352  void __RPC_STUB IInternetSecurityMgrSite_GetWindow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2353  HRESULT WINAPI IInternetSecurityMgrSite_EnableModeless_Proxy(IInternetSecurityMgrSite *This,WINBOOL fEnable);
2354  void __RPC_STUB IInternetSecurityMgrSite_EnableModeless_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2355#endif
2356#endif
2357
2358#ifndef _LPINTERNETSECURITYMANANGEREX_DEFINED
2359#define _LPINTERNETSECURITYMANANGEREX_DEFINED
2360  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0204_v0_0_c_ifspec;
2361  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0204_v0_0_s_ifspec;
2362#ifndef __IInternetSecurityManager_INTERFACE_DEFINED__
2363#define __IInternetSecurityManager_INTERFACE_DEFINED__
2364
2365#define MUTZ_NOSAVEDFILECHECK 0x00000001
2366#define MUTZ_ISFILE 0x00000002
2367#define MUTZ_ACCEPT_WILDCARD_SCHEME 0x00000080
2368#define MUTZ_ENFORCERESTRICTED 0x00000100
2369#define MUTZ_REQUIRESAVEDFILECHECK 0x00000400
2370#define MUTZ_DONT_UNESCAPE 0x00000800
2371
2372#define MAX_SIZE_SECURITY_ID 512
2373
2374  typedef enum __MIDL_IInternetSecurityManager_0001 {
2375    PUAF_DEFAULT = 0,PUAF_NOUI = 0x1,PUAF_ISFILE = 0x2,PUAF_WARN_IF_DENIED = 0x4,PUAF_FORCEUI_FOREGROUND = 0x8,PUAF_CHECK_TIFS = 0x10,
2376    PUAF_DONTCHECKBOXINDIALOG = 0x20,PUAF_TRUSTED = 0x40,PUAF_ACCEPT_WILDCARD_SCHEME = 0x80,PUAF_ENFORCERESTRICTED = 0x100,
2377    PUAF_NOSAVEDFILECHECK = 0x200,PUAF_REQUIRESAVEDFILECHECK = 0x400,PUAF_LMZ_UNLOCKED = 0x10000,PUAF_LMZ_LOCKED = 0x20000,
2378    PUAF_DEFAULTZONEPOL = 0x40000,PUAF_NPL_USE_LOCKED_IF_RESTRICTED = 0x80000,PUAF_NOUIIFLOCKED = 0x100000,PUAF_DRAGPROTOCOLCHECK = 0x200000
2379  } PUAF;
2380
2381  typedef enum __MIDL_IInternetSecurityManager_0002 {
2382    PUAFOUT_DEFAULT = 0,PUAFOUT_ISLOCKZONEPOLICY = 0x1
2383  } PUAFOUT;
2384
2385  typedef enum __MIDL_IInternetSecurityManager_0003 {
2386    SZM_CREATE = 0,SZM_DELETE = 0x1
2387  } SZM_FLAGS;
2388
2389  EXTERN_C const IID IID_IInternetSecurityManager;
2390#if defined(__cplusplus) && !defined(CINTERFACE)
2391  struct IInternetSecurityManager : public IUnknown {
2392  public:
2393    virtual HRESULT WINAPI SetSecuritySite(IInternetSecurityMgrSite *pSite) = 0;
2394    virtual HRESULT WINAPI GetSecuritySite(IInternetSecurityMgrSite **ppSite) = 0;
2395    virtual HRESULT WINAPI MapUrlToZone(LPCWSTR pwszUrl,DWORD *pdwZone,DWORD dwFlags) = 0;
2396    virtual HRESULT WINAPI GetSecurityId(LPCWSTR pwszUrl,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved) = 0;
2397    virtual HRESULT WINAPI ProcessUrlAction(LPCWSTR pwszUrl,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved) = 0;
2398    virtual HRESULT WINAPI QueryCustomPolicy(LPCWSTR pwszUrl,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwReserved) = 0;
2399    virtual HRESULT WINAPI SetZoneMapping(DWORD dwZone,LPCWSTR lpszPattern,DWORD dwFlags) = 0;
2400    virtual HRESULT WINAPI GetZoneMappings(DWORD dwZone,IEnumString **ppenumString,DWORD dwFlags) = 0;
2401  };
2402#else
2403  typedef struct IInternetSecurityManagerVtbl {
2404    BEGIN_INTERFACE
2405      HRESULT (WINAPI *QueryInterface)(IInternetSecurityManager *This,REFIID riid,void **ppvObject);
2406      ULONG (WINAPI *AddRef)(IInternetSecurityManager *This);
2407      ULONG (WINAPI *Release)(IInternetSecurityManager *This);
2408      HRESULT (WINAPI *SetSecuritySite)(IInternetSecurityManager *This,IInternetSecurityMgrSite *pSite);
2409      HRESULT (WINAPI *GetSecuritySite)(IInternetSecurityManager *This,IInternetSecurityMgrSite **ppSite);
2410      HRESULT (WINAPI *MapUrlToZone)(IInternetSecurityManager *This,LPCWSTR pwszUrl,DWORD *pdwZone,DWORD dwFlags);
2411      HRESULT (WINAPI *GetSecurityId)(IInternetSecurityManager *This,LPCWSTR pwszUrl,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved);
2412      HRESULT (WINAPI *ProcessUrlAction)(IInternetSecurityManager *This,LPCWSTR pwszUrl,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved);
2413      HRESULT (WINAPI *QueryCustomPolicy)(IInternetSecurityManager *This,LPCWSTR pwszUrl,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwReserved);
2414      HRESULT (WINAPI *SetZoneMapping)(IInternetSecurityManager *This,DWORD dwZone,LPCWSTR lpszPattern,DWORD dwFlags);
2415      HRESULT (WINAPI *GetZoneMappings)(IInternetSecurityManager *This,DWORD dwZone,IEnumString **ppenumString,DWORD dwFlags);
2416    END_INTERFACE
2417  } IInternetSecurityManagerVtbl;
2418  struct IInternetSecurityManager {
2419    CONST_VTBL struct IInternetSecurityManagerVtbl *lpVtbl;
2420  };
2421#ifdef COBJMACROS
2422#define IInternetSecurityManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2423#define IInternetSecurityManager_AddRef(This) (This)->lpVtbl->AddRef(This)
2424#define IInternetSecurityManager_Release(This) (This)->lpVtbl->Release(This)
2425#define IInternetSecurityManager_SetSecuritySite(This,pSite) (This)->lpVtbl->SetSecuritySite(This,pSite)
2426#define IInternetSecurityManager_GetSecuritySite(This,ppSite) (This)->lpVtbl->GetSecuritySite(This,ppSite)
2427#define IInternetSecurityManager_MapUrlToZone(This,pwszUrl,pdwZone,dwFlags) (This)->lpVtbl->MapUrlToZone(This,pwszUrl,pdwZone,dwFlags)
2428#define IInternetSecurityManager_GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved) (This)->lpVtbl->GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved)
2429#define IInternetSecurityManager_ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved) (This)->lpVtbl->ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved)
2430#define IInternetSecurityManager_QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) (This)->lpVtbl->QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved)
2431#define IInternetSecurityManager_SetZoneMapping(This,dwZone,lpszPattern,dwFlags) (This)->lpVtbl->SetZoneMapping(This,dwZone,lpszPattern,dwFlags)
2432#define IInternetSecurityManager_GetZoneMappings(This,dwZone,ppenumString,dwFlags) (This)->lpVtbl->GetZoneMappings(This,dwZone,ppenumString,dwFlags)
2433#endif
2434#endif
2435  HRESULT WINAPI IInternetSecurityManager_SetSecuritySite_Proxy(IInternetSecurityManager *This,IInternetSecurityMgrSite *pSite);
2436  void __RPC_STUB IInternetSecurityManager_SetSecuritySite_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2437  HRESULT WINAPI IInternetSecurityManager_GetSecuritySite_Proxy(IInternetSecurityManager *This,IInternetSecurityMgrSite **ppSite);
2438  void __RPC_STUB IInternetSecurityManager_GetSecuritySite_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2439  HRESULT WINAPI IInternetSecurityManager_MapUrlToZone_Proxy(IInternetSecurityManager *This,LPCWSTR pwszUrl,DWORD *pdwZone,DWORD dwFlags);
2440  void __RPC_STUB IInternetSecurityManager_MapUrlToZone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2441  HRESULT WINAPI IInternetSecurityManager_GetSecurityId_Proxy(IInternetSecurityManager *This,LPCWSTR pwszUrl,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved);
2442  void __RPC_STUB IInternetSecurityManager_GetSecurityId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2443  HRESULT WINAPI IInternetSecurityManager_ProcessUrlAction_Proxy(IInternetSecurityManager *This,LPCWSTR pwszUrl,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved);
2444  void __RPC_STUB IInternetSecurityManager_ProcessUrlAction_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2445  HRESULT WINAPI IInternetSecurityManager_QueryCustomPolicy_Proxy(IInternetSecurityManager *This,LPCWSTR pwszUrl,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwReserved);
2446  void __RPC_STUB IInternetSecurityManager_QueryCustomPolicy_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2447  HRESULT WINAPI IInternetSecurityManager_SetZoneMapping_Proxy(IInternetSecurityManager *This,DWORD dwZone,LPCWSTR lpszPattern,DWORD dwFlags);
2448  void __RPC_STUB IInternetSecurityManager_SetZoneMapping_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2449  HRESULT WINAPI IInternetSecurityManager_GetZoneMappings_Proxy(IInternetSecurityManager *This,DWORD dwZone,IEnumString **ppenumString,DWORD dwFlags);
2450  void __RPC_STUB IInternetSecurityManager_GetZoneMappings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2451#endif
2452
2453#ifndef __IInternetSecurityManagerEx_INTERFACE_DEFINED__
2454#define __IInternetSecurityManagerEx_INTERFACE_DEFINED__
2455  EXTERN_C const IID IID_IInternetSecurityManagerEx;
2456#if defined(__cplusplus) && !defined(CINTERFACE)
2457  struct IInternetSecurityManagerEx : public IInternetSecurityManager {
2458  public:
2459    virtual HRESULT WINAPI ProcessUrlActionEx(LPCWSTR pwszUrl,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved,DWORD *pdwOutFlags) = 0;
2460  };
2461#else
2462  typedef struct IInternetSecurityManagerExVtbl {
2463    BEGIN_INTERFACE
2464      HRESULT (WINAPI *QueryInterface)(IInternetSecurityManagerEx *This,REFIID riid,void **ppvObject);
2465      ULONG (WINAPI *AddRef)(IInternetSecurityManagerEx *This);
2466      ULONG (WINAPI *Release)(IInternetSecurityManagerEx *This);
2467      HRESULT (WINAPI *SetSecuritySite)(IInternetSecurityManagerEx *This,IInternetSecurityMgrSite *pSite);
2468      HRESULT (WINAPI *GetSecuritySite)(IInternetSecurityManagerEx *This,IInternetSecurityMgrSite **ppSite);
2469      HRESULT (WINAPI *MapUrlToZone)(IInternetSecurityManagerEx *This,LPCWSTR pwszUrl,DWORD *pdwZone,DWORD dwFlags);
2470      HRESULT (WINAPI *GetSecurityId)(IInternetSecurityManagerEx *This,LPCWSTR pwszUrl,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved);
2471      HRESULT (WINAPI *ProcessUrlAction)(IInternetSecurityManagerEx *This,LPCWSTR pwszUrl,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved);
2472      HRESULT (WINAPI *QueryCustomPolicy)(IInternetSecurityManagerEx *This,LPCWSTR pwszUrl,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwReserved);
2473      HRESULT (WINAPI *SetZoneMapping)(IInternetSecurityManagerEx *This,DWORD dwZone,LPCWSTR lpszPattern,DWORD dwFlags);
2474      HRESULT (WINAPI *GetZoneMappings)(IInternetSecurityManagerEx *This,DWORD dwZone,IEnumString **ppenumString,DWORD dwFlags);
2475      HRESULT (WINAPI *ProcessUrlActionEx)(IInternetSecurityManagerEx *This,LPCWSTR pwszUrl,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved,DWORD *pdwOutFlags);
2476    END_INTERFACE
2477  } IInternetSecurityManagerExVtbl;
2478  struct IInternetSecurityManagerEx {
2479    CONST_VTBL struct IInternetSecurityManagerExVtbl *lpVtbl;
2480  };
2481#ifdef COBJMACROS
2482#define IInternetSecurityManagerEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2483#define IInternetSecurityManagerEx_AddRef(This) (This)->lpVtbl->AddRef(This)
2484#define IInternetSecurityManagerEx_Release(This) (This)->lpVtbl->Release(This)
2485#define IInternetSecurityManagerEx_SetSecuritySite(This,pSite) (This)->lpVtbl->SetSecuritySite(This,pSite)
2486#define IInternetSecurityManagerEx_GetSecuritySite(This,ppSite) (This)->lpVtbl->GetSecuritySite(This,ppSite)
2487#define IInternetSecurityManagerEx_MapUrlToZone(This,pwszUrl,pdwZone,dwFlags) (This)->lpVtbl->MapUrlToZone(This,pwszUrl,pdwZone,dwFlags)
2488#define IInternetSecurityManagerEx_GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved) (This)->lpVtbl->GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved)
2489#define IInternetSecurityManagerEx_ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved) (This)->lpVtbl->ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved)
2490#define IInternetSecurityManagerEx_QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) (This)->lpVtbl->QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved)
2491#define IInternetSecurityManagerEx_SetZoneMapping(This,dwZone,lpszPattern,dwFlags) (This)->lpVtbl->SetZoneMapping(This,dwZone,lpszPattern,dwFlags)
2492#define IInternetSecurityManagerEx_GetZoneMappings(This,dwZone,ppenumString,dwFlags) (This)->lpVtbl->GetZoneMappings(This,dwZone,ppenumString,dwFlags)
2493#define IInternetSecurityManagerEx_ProcessUrlActionEx(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags) (This)->lpVtbl->ProcessUrlActionEx(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags)
2494#endif
2495#endif
2496  HRESULT WINAPI IInternetSecurityManagerEx_ProcessUrlActionEx_Proxy(IInternetSecurityManagerEx *This,LPCWSTR pwszUrl,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved,DWORD *pdwOutFlags);
2497  void __RPC_STUB IInternetSecurityManagerEx_ProcessUrlActionEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2498#endif
2499#endif
2500
2501#ifndef _LPINTERNETSECURITYMANANGER_DEFINED
2502#define _LPINTERNETSECURITYMANANGER_DEFINED
2503  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0205_v0_0_c_ifspec;
2504  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0205_v0_0_s_ifspec;
2505#ifndef __IZoneIdentifier_INTERFACE_DEFINED__
2506#define __IZoneIdentifier_INTERFACE_DEFINED__
2507  EXTERN_C const IID IID_IZoneIdentifier;
2508#if defined(__cplusplus) && !defined(CINTERFACE)
2509  struct IZoneIdentifier : public IUnknown {
2510  public:
2511    virtual HRESULT WINAPI GetId(DWORD *pdwZone) = 0;
2512    virtual HRESULT WINAPI SetId(DWORD dwZone) = 0;
2513    virtual HRESULT WINAPI Remove(void) = 0;
2514  };
2515#else
2516  typedef struct IZoneIdentifierVtbl {
2517    BEGIN_INTERFACE
2518      HRESULT (WINAPI *QueryInterface)(IZoneIdentifier *This,REFIID riid,void **ppvObject);
2519      ULONG (WINAPI *AddRef)(IZoneIdentifier *This);
2520      ULONG (WINAPI *Release)(IZoneIdentifier *This);
2521      HRESULT (WINAPI *GetId)(IZoneIdentifier *This,DWORD *pdwZone);
2522      HRESULT (WINAPI *SetId)(IZoneIdentifier *This,DWORD dwZone);
2523      HRESULT (WINAPI *Remove)(IZoneIdentifier *This);
2524    END_INTERFACE
2525  } IZoneIdentifierVtbl;
2526  struct IZoneIdentifier {
2527    CONST_VTBL struct IZoneIdentifierVtbl *lpVtbl;
2528  };
2529#ifdef COBJMACROS
2530#define IZoneIdentifier_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2531#define IZoneIdentifier_AddRef(This) (This)->lpVtbl->AddRef(This)
2532#define IZoneIdentifier_Release(This) (This)->lpVtbl->Release(This)
2533#define IZoneIdentifier_GetId(This,pdwZone) (This)->lpVtbl->GetId(This,pdwZone)
2534#define IZoneIdentifier_SetId(This,dwZone) (This)->lpVtbl->SetId(This,dwZone)
2535#define IZoneIdentifier_Remove(This) (This)->lpVtbl->Remove(This)
2536#endif
2537#endif
2538  HRESULT WINAPI IZoneIdentifier_GetId_Proxy(IZoneIdentifier *This,DWORD *pdwZone);
2539  void __RPC_STUB IZoneIdentifier_GetId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2540  HRESULT WINAPI IZoneIdentifier_SetId_Proxy(IZoneIdentifier *This,DWORD dwZone);
2541  void __RPC_STUB IZoneIdentifier_SetId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2542  HRESULT WINAPI IZoneIdentifier_Remove_Proxy(IZoneIdentifier *This);
2543  void __RPC_STUB IZoneIdentifier_Remove_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2544#endif
2545#endif
2546
2547#ifndef _LPINTERNETHOSTSECURITYMANANGER_DEFINED
2548#define _LPINTERNETHOSTSECURITYMANANGER_DEFINED
2549  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0207_v0_0_c_ifspec;
2550  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0207_v0_0_s_ifspec;
2551#ifndef __IInternetHostSecurityManager_INTERFACE_DEFINED__
2552#define __IInternetHostSecurityManager_INTERFACE_DEFINED__
2553  EXTERN_C const IID IID_IInternetHostSecurityManager;
2554#if defined(__cplusplus) && !defined(CINTERFACE)
2555  struct IInternetHostSecurityManager : public IUnknown {
2556  public:
2557    virtual HRESULT WINAPI GetSecurityId(BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved) = 0;
2558    virtual HRESULT WINAPI ProcessUrlAction(DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved) = 0;
2559    virtual HRESULT WINAPI QueryCustomPolicy(REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwReserved) = 0;
2560  };
2561#else
2562  typedef struct IInternetHostSecurityManagerVtbl {
2563    BEGIN_INTERFACE
2564      HRESULT (WINAPI *QueryInterface)(IInternetHostSecurityManager *This,REFIID riid,void **ppvObject);
2565      ULONG (WINAPI *AddRef)(IInternetHostSecurityManager *This);
2566      ULONG (WINAPI *Release)(IInternetHostSecurityManager *This);
2567      HRESULT (WINAPI *GetSecurityId)(IInternetHostSecurityManager *This,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved);
2568      HRESULT (WINAPI *ProcessUrlAction)(IInternetHostSecurityManager *This,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved);
2569      HRESULT (WINAPI *QueryCustomPolicy)(IInternetHostSecurityManager *This,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwReserved);
2570    END_INTERFACE
2571  } IInternetHostSecurityManagerVtbl;
2572  struct IInternetHostSecurityManager {
2573    CONST_VTBL struct IInternetHostSecurityManagerVtbl *lpVtbl;
2574  };
2575#ifdef COBJMACROS
2576#define IInternetHostSecurityManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2577#define IInternetHostSecurityManager_AddRef(This) (This)->lpVtbl->AddRef(This)
2578#define IInternetHostSecurityManager_Release(This) (This)->lpVtbl->Release(This)
2579#define IInternetHostSecurityManager_GetSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved) (This)->lpVtbl->GetSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved)
2580#define IInternetHostSecurityManager_ProcessUrlAction(This,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved) (This)->lpVtbl->ProcessUrlAction(This,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved)
2581#define IInternetHostSecurityManager_QueryCustomPolicy(This,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) (This)->lpVtbl->QueryCustomPolicy(This,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved)
2582#endif
2583#endif
2584  HRESULT WINAPI IInternetHostSecurityManager_GetSecurityId_Proxy(IInternetHostSecurityManager *This,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved);
2585  void __RPC_STUB IInternetHostSecurityManager_GetSecurityId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2586  HRESULT WINAPI IInternetHostSecurityManager_ProcessUrlAction_Proxy(IInternetHostSecurityManager *This,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved);
2587  void __RPC_STUB IInternetHostSecurityManager_ProcessUrlAction_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2588  HRESULT WINAPI IInternetHostSecurityManager_QueryCustomPolicy_Proxy(IInternetHostSecurityManager *This,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwReserved);
2589  void __RPC_STUB IInternetHostSecurityManager_QueryCustomPolicy_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2590#endif
2591#endif
2592
2593#define URLACTION_MIN 0x00001000
2594#define URLACTION_DOWNLOAD_MIN 0x00001000
2595#define URLACTION_DOWNLOAD_SIGNED_ACTIVEX 0x00001001
2596#define URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX 0x00001004
2597#define URLACTION_DOWNLOAD_CURR_MAX 0x00001004
2598#define URLACTION_DOWNLOAD_MAX 0x000011FF
2599
2600#define URLACTION_ACTIVEX_MIN 0x00001200
2601#define URLACTION_ACTIVEX_RUN 0x00001200
2602#define URLPOLICY_ACTIVEX_CHECK_LIST 0x00010000
2603#define URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY 0x00001201
2604#define URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY 0x00001202
2605#define URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY 0x00001203
2606#define URLACTION_SCRIPT_OVERRIDE_SAFETY 0x00001401
2607#define URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY 0x00001204
2608#define URLACTION_ACTIVEX_TREATASUNTRUSTED 0x00001205
2609#define URLACTION_ACTIVEX_NO_WEBOC_SCRIPT 0x00001206
2610#define URLACTION_ACTIVEX_CURR_MAX 0x00001206
2611#define URLACTION_ACTIVEX_MAX 0x000013ff
2612
2613#define URLACTION_SCRIPT_MIN 0x00001400
2614#define URLACTION_SCRIPT_RUN 0x00001400
2615#define URLACTION_SCRIPT_JAVA_USE 0x00001402
2616#define URLACTION_SCRIPT_SAFE_ACTIVEX 0x00001405
2617#define URLACTION_CROSS_DOMAIN_DATA 0x00001406
2618#define URLACTION_SCRIPT_PASTE 0x00001407
2619#define URLACTION_SCRIPT_CURR_MAX 0x00001407
2620#define URLACTION_SCRIPT_MAX 0x000015ff
2621
2622#define URLACTION_HTML_MIN 0x00001600
2623#define URLACTION_HTML_SUBMIT_FORMS 0x00001601
2624#define URLACTION_HTML_SUBMIT_FORMS_FROM 0x00001602
2625#define URLACTION_HTML_SUBMIT_FORMS_TO 0x00001603
2626#define URLACTION_HTML_FONT_DOWNLOAD 0x00001604
2627#define URLACTION_HTML_JAVA_RUN 0x00001605
2628#define URLACTION_HTML_USERDATA_SAVE 0x00001606
2629#define URLACTION_HTML_SUBFRAME_NAVIGATE 0x00001607
2630#define URLACTION_HTML_META_REFRESH 0x00001608
2631#define URLACTION_HTML_MIXED_CONTENT 0x00001609
2632#define URLACTION_HTML_MAX 0x000017ff
2633
2634#define URLACTION_SHELL_MIN 0x00001800
2635#define URLACTION_SHELL_INSTALL_DTITEMS 0x00001800
2636#define URLACTION_SHELL_MOVE_OR_COPY 0x00001802
2637#define URLACTION_SHELL_FILE_DOWNLOAD 0x00001803
2638#define URLACTION_SHELL_VERB 0x00001804
2639#define URLACTION_SHELL_WEBVIEW_VERB 0x00001805
2640#define URLACTION_SHELL_SHELLEXECUTE 0x00001806
2641#define URLACTION_SHELL_EXECUTE_HIGHRISK 0x00001806
2642#define URLACTION_SHELL_EXECUTE_MODRISK 0x00001807
2643#define URLACTION_SHELL_EXECUTE_LOWRISK 0x00001808
2644#define URLACTION_SHELL_POPUPMGR 0x00001809
2645#define URLACTION_SHELL_RTF_OBJECTS_LOAD 0x0000180A
2646#define URLACTION_SHELL_ENHANCED_DRAGDROP_SECURITY 0x0000180B
2647#define URLACTION_SHELL_CURR_MAX 0x0000180B
2648#define URLACTION_SHELL_MAX 0x000019ff
2649
2650#define URLACTION_NETWORK_MIN 0x00001A00
2651
2652#define URLACTION_CREDENTIALS_USE 0x00001A00
2653#define URLPOLICY_CREDENTIALS_SILENT_LOGON_OK 0x00000000
2654#define URLPOLICY_CREDENTIALS_MUST_PROMPT_USER 0x00010000
2655#define URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT 0x00020000
2656#define URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY 0x00030000
2657
2658#define URLACTION_AUTHENTICATE_CLIENT 0x00001A01
2659#define URLPOLICY_AUTHENTICATE_CLEARTEXT_OK 0x00000000
2660#define URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE 0x00010000
2661#define URLPOLICY_AUTHENTICATE_MUTUAL_ONLY 0x00030000
2662
2663#define URLACTION_COOKIES 0x00001A02
2664#define URLACTION_COOKIES_SESSION 0x00001A03
2665
2666#define URLACTION_CLIENT_CERT_PROMPT 0x00001A04
2667
2668#define URLACTION_COOKIES_THIRD_PARTY 0x00001A05
2669#define URLACTION_COOKIES_SESSION_THIRD_PARTY 0x00001A06
2670
2671#define URLACTION_COOKIES_ENABLED 0x00001A10
2672
2673#define URLACTION_NETWORK_CURR_MAX 0x00001A10
2674#define URLACTION_NETWORK_MAX 0x00001Bff
2675
2676#define URLACTION_JAVA_MIN 0x00001C00
2677#define URLACTION_JAVA_PERMISSIONS 0x00001C00
2678#define URLPOLICY_JAVA_PROHIBIT 0x00000000
2679#define URLPOLICY_JAVA_HIGH 0x00010000
2680#define URLPOLICY_JAVA_MEDIUM 0x00020000
2681#define URLPOLICY_JAVA_LOW 0x00030000
2682#define URLPOLICY_JAVA_CUSTOM 0x00800000
2683#define URLACTION_JAVA_CURR_MAX 0x00001C00
2684#define URLACTION_JAVA_MAX 0x00001Cff
2685
2686#define URLACTION_INFODELIVERY_MIN 0x00001D00
2687#define URLACTION_INFODELIVERY_NO_ADDING_CHANNELS 0x00001D00
2688#define URLACTION_INFODELIVERY_NO_EDITING_CHANNELS 0x00001D01
2689#define URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS 0x00001D02
2690#define URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS 0x00001D03
2691#define URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS 0x00001D04
2692#define URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS 0x00001D05
2693#define URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING 0x00001D06
2694#define URLACTION_INFODELIVERY_CURR_MAX 0x00001D06
2695#define URLACTION_INFODELIVERY_MAX 0x00001Dff
2696#define URLACTION_CHANNEL_SOFTDIST_MIN 0x00001E00
2697#define URLACTION_CHANNEL_SOFTDIST_PERMISSIONS 0x00001E05
2698#define URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT 0x00010000
2699#define URLPOLICY_CHANNEL_SOFTDIST_PRECACHE 0x00020000
2700#define URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL 0x00030000
2701#define URLACTION_CHANNEL_SOFTDIST_MAX 0x00001Eff
2702#define URLACTION_BEHAVIOR_MIN 0x00002000
2703#define URLACTION_BEHAVIOR_RUN 0x00002000
2704#define URLPOLICY_BEHAVIOR_CHECK_LIST 0x00010000
2705
2706#define URLACTION_FEATURE_MIN 0x00002100
2707#define URLACTION_FEATURE_MIME_SNIFFING 0x00002100
2708#define URLACTION_FEATURE_ZONE_ELEVATION 0x00002101
2709#define URLACTION_FEATURE_WINDOW_RESTRICTIONS 0x00002102
2710
2711#define URLACTION_AUTOMATIC_DOWNLOAD_UI_MIN 0x00002200
2712#define URLACTION_AUTOMATIC_DOWNLOAD_UI 0x00002200
2713#define URLACTION_AUTOMATIC_ACTIVEX_UI 0x00002201
2714
2715#define URLACTION_ALLOW_RESTRICTEDPROTOCOLS 0x00002300
2716
2717#define URLPOLICY_ALLOW 0x00
2718#define URLPOLICY_QUERY 0x01
2719#define URLPOLICY_DISALLOW 0x03
2720
2721#define URLPOLICY_NOTIFY_ON_ALLOW 0x10
2722#define URLPOLICY_NOTIFY_ON_DISALLOW 0x20
2723
2724#define URLPOLICY_LOG_ON_ALLOW 0x40
2725#define URLPOLICY_LOG_ON_DISALLOW 0x80
2726
2727#define URLPOLICY_MASK_PERMISSIONS 0x0f
2728#define GetUrlPolicyPermissions(dw) (dw & URLPOLICY_MASK_PERMISSIONS)
2729#define SetUrlPolicyPermissions(dw,dw2) ((dw) = ((dw) & ~(URLPOLICY_MASK_PERMISSIONS)) | (dw2))
2730
2731#define URLPOLICY_DONTCHECKDLGBOX 0x100
2732
2733  EXTERN_C const GUID GUID_CUSTOM_LOCALMACHINEZONEUNLOCKED;
2734#ifndef _LPINTERNETZONEMANAGER_DEFINED
2735#define _LPINTERNETZONEMANAGER_DEFINED
2736  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0208_v0_0_c_ifspec;
2737  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0208_v0_0_s_ifspec;
2738#ifndef __IInternetZoneManager_INTERFACE_DEFINED__
2739#define __IInternetZoneManager_INTERFACE_DEFINED__
2740
2741  typedef IInternetZoneManager *LPURLZONEMANAGER;
2742
2743  typedef enum tagURLZONE {
2744    URLZONE_PREDEFINED_MIN = 0,URLZONE_LOCAL_MACHINE = 0,
2745    URLZONE_INTRANET,URLZONE_TRUSTED,URLZONE_INTERNET,URLZONE_UNTRUSTED,
2746    URLZONE_PREDEFINED_MAX = 999,URLZONE_USER_MIN = 1000,
2747    URLZONE_USER_MAX = 10000
2748  } URLZONE;
2749
2750#define URLZONE_ESC_FLAG 0x100
2751
2752  typedef enum tagURLTEMPLATE {
2753    URLTEMPLATE_CUSTOM = 0,
2754    URLTEMPLATE_PREDEFINED_MIN = 0x10000,
2755    URLTEMPLATE_LOW = 0x10000,
2756    URLTEMPLATE_MEDLOW = 0x10500,
2757    URLTEMPLATE_MEDIUM = 0x11000,
2758    URLTEMPLATE_HIGH = 0x12000,
2759    URLTEMPLATE_PREDEFINED_MAX = 0x20000
2760  } URLTEMPLATE;
2761
2762  enum __MIDL_IInternetZoneManager_0001 {
2763    MAX_ZONE_PATH = 260,MAX_ZONE_DESCRIPTION = 200
2764  };
2765  typedef enum __MIDL_IInternetZoneManager_0002 {
2766    ZAFLAGS_CUSTOM_EDIT = 0x1,ZAFLAGS_ADD_SITES = 0x2,ZAFLAGS_REQUIRE_VERIFICATION = 0x4,ZAFLAGS_INCLUDE_PROXY_OVERRIDE = 0x8,
2767    ZAFLAGS_INCLUDE_INTRANET_SITES = 0x10,ZAFLAGS_NO_UI = 0x20,ZAFLAGS_SUPPORTS_VERIFICATION = 0x40,ZAFLAGS_UNC_AS_INTRANET = 0x80,
2768    ZAFLAGS_USE_LOCKED_ZONES = 0x10000
2769  } ZAFLAGS;
2770
2771  typedef struct _ZONEATTRIBUTES {
2772    ULONG cbSize;
2773    WCHAR szDisplayName[260 ];
2774    WCHAR szDescription[200 ];
2775    WCHAR szIconPath[260 ];
2776    DWORD dwTemplateMinLevel;
2777    DWORD dwTemplateRecommended;
2778    DWORD dwTemplateCurrentLevel;
2779    DWORD dwFlags;
2780  } ZONEATTRIBUTES;
2781
2782  typedef struct _ZONEATTRIBUTES *LPZONEATTRIBUTES;
2783
2784  typedef enum _URLZONEREG {
2785    URLZONEREG_DEFAULT = 0,
2786    URLZONEREG_HKLM,URLZONEREG_HKCU
2787  } URLZONEREG;
2788
2789  EXTERN_C const IID IID_IInternetZoneManager;
2790#if defined(__cplusplus) && !defined(CINTERFACE)
2791  struct IInternetZoneManager : public IUnknown {
2792  public:
2793    virtual HRESULT WINAPI GetZoneAttributes(DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes) = 0;
2794    virtual HRESULT WINAPI SetZoneAttributes(DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes) = 0;
2795    virtual HRESULT WINAPI GetZoneCustomPolicy(DWORD dwZone,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,URLZONEREG urlZoneReg) = 0;
2796    virtual HRESULT WINAPI SetZoneCustomPolicy(DWORD dwZone,REFGUID guidKey,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) = 0;
2797    virtual HRESULT WINAPI GetZoneActionPolicy(DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) = 0;
2798    virtual HRESULT WINAPI SetZoneActionPolicy(DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) = 0;
2799    virtual HRESULT WINAPI PromptAction(DWORD dwAction,HWND hwndParent,LPCWSTR pwszUrl,LPCWSTR pwszText,DWORD dwPromptFlags) = 0;
2800    virtual HRESULT WINAPI LogAction(DWORD dwAction,LPCWSTR pwszUrl,LPCWSTR pwszText,DWORD dwLogFlags) = 0;
2801    virtual HRESULT WINAPI CreateZoneEnumerator(DWORD *pdwEnum,DWORD *pdwCount,DWORD dwFlags) = 0;
2802    virtual HRESULT WINAPI GetZoneAt(DWORD dwEnum,DWORD dwIndex,DWORD *pdwZone) = 0;
2803    virtual HRESULT WINAPI DestroyZoneEnumerator(DWORD dwEnum) = 0;
2804    virtual HRESULT WINAPI CopyTemplatePoliciesToZone(DWORD dwTemplate,DWORD dwZone,DWORD dwReserved) = 0;
2805  };
2806#else
2807  typedef struct IInternetZoneManagerVtbl {
2808    BEGIN_INTERFACE
2809      HRESULT (WINAPI *QueryInterface)(IInternetZoneManager *This,REFIID riid,void **ppvObject);
2810      ULONG (WINAPI *AddRef)(IInternetZoneManager *This);
2811      ULONG (WINAPI *Release)(IInternetZoneManager *This);
2812      HRESULT (WINAPI *GetZoneAttributes)(IInternetZoneManager *This,DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes);
2813      HRESULT (WINAPI *SetZoneAttributes)(IInternetZoneManager *This,DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes);
2814      HRESULT (WINAPI *GetZoneCustomPolicy)(IInternetZoneManager *This,DWORD dwZone,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,URLZONEREG urlZoneReg);
2815      HRESULT (WINAPI *SetZoneCustomPolicy)(IInternetZoneManager *This,DWORD dwZone,REFGUID guidKey,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg);
2816      HRESULT (WINAPI *GetZoneActionPolicy)(IInternetZoneManager *This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg);
2817      HRESULT (WINAPI *SetZoneActionPolicy)(IInternetZoneManager *This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg);
2818      HRESULT (WINAPI *PromptAction)(IInternetZoneManager *This,DWORD dwAction,HWND hwndParent,LPCWSTR pwszUrl,LPCWSTR pwszText,DWORD dwPromptFlags);
2819      HRESULT (WINAPI *LogAction)(IInternetZoneManager *This,DWORD dwAction,LPCWSTR pwszUrl,LPCWSTR pwszText,DWORD dwLogFlags);
2820      HRESULT (WINAPI *CreateZoneEnumerator)(IInternetZoneManager *This,DWORD *pdwEnum,DWORD *pdwCount,DWORD dwFlags);
2821      HRESULT (WINAPI *GetZoneAt)(IInternetZoneManager *This,DWORD dwEnum,DWORD dwIndex,DWORD *pdwZone);
2822      HRESULT (WINAPI *DestroyZoneEnumerator)(IInternetZoneManager *This,DWORD dwEnum);
2823      HRESULT (WINAPI *CopyTemplatePoliciesToZone)(IInternetZoneManager *This,DWORD dwTemplate,DWORD dwZone,DWORD dwReserved);
2824    END_INTERFACE
2825  } IInternetZoneManagerVtbl;
2826  struct IInternetZoneManager {
2827    CONST_VTBL struct IInternetZoneManagerVtbl *lpVtbl;
2828  };
2829#ifdef COBJMACROS
2830#define IInternetZoneManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2831#define IInternetZoneManager_AddRef(This) (This)->lpVtbl->AddRef(This)
2832#define IInternetZoneManager_Release(This) (This)->lpVtbl->Release(This)
2833#define IInternetZoneManager_GetZoneAttributes(This,dwZone,pZoneAttributes) (This)->lpVtbl->GetZoneAttributes(This,dwZone,pZoneAttributes)
2834#define IInternetZoneManager_SetZoneAttributes(This,dwZone,pZoneAttributes) (This)->lpVtbl->SetZoneAttributes(This,dwZone,pZoneAttributes)
2835#define IInternetZoneManager_GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg) (This)->lpVtbl->GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg)
2836#define IInternetZoneManager_SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg)
2837#define IInternetZoneManager_GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg)
2838#define IInternetZoneManager_SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg)
2839#define IInternetZoneManager_PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags) (This)->lpVtbl->PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags)
2840#define IInternetZoneManager_LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags) (This)->lpVtbl->LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags)
2841#define IInternetZoneManager_CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags) (This)->lpVtbl->CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags)
2842#define IInternetZoneManager_GetZoneAt(This,dwEnum,dwIndex,pdwZone) (This)->lpVtbl->GetZoneAt(This,dwEnum,dwIndex,pdwZone)
2843#define IInternetZoneManager_DestroyZoneEnumerator(This,dwEnum) (This)->lpVtbl->DestroyZoneEnumerator(This,dwEnum)
2844#define IInternetZoneManager_CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved) (This)->lpVtbl->CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved)
2845#endif
2846#endif
2847  HRESULT WINAPI IInternetZoneManager_GetZoneAttributes_Proxy(IInternetZoneManager *This,DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes);
2848  void __RPC_STUB IInternetZoneManager_GetZoneAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2849  HRESULT WINAPI IInternetZoneManager_SetZoneAttributes_Proxy(IInternetZoneManager *This,DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes);
2850  void __RPC_STUB IInternetZoneManager_SetZoneAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2851  HRESULT WINAPI IInternetZoneManager_GetZoneCustomPolicy_Proxy(IInternetZoneManager *This,DWORD dwZone,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,URLZONEREG urlZoneReg);
2852  void __RPC_STUB IInternetZoneManager_GetZoneCustomPolicy_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2853  HRESULT WINAPI IInternetZoneManager_SetZoneCustomPolicy_Proxy(IInternetZoneManager *This,DWORD dwZone,REFGUID guidKey,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg);
2854  void __RPC_STUB IInternetZoneManager_SetZoneCustomPolicy_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2855  HRESULT WINAPI IInternetZoneManager_GetZoneActionPolicy_Proxy(IInternetZoneManager *This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg);
2856  void __RPC_STUB IInternetZoneManager_GetZoneActionPolicy_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2857  HRESULT WINAPI IInternetZoneManager_SetZoneActionPolicy_Proxy(IInternetZoneManager *This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg);
2858  void __RPC_STUB IInternetZoneManager_SetZoneActionPolicy_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2859  HRESULT WINAPI IInternetZoneManager_PromptAction_Proxy(IInternetZoneManager *This,DWORD dwAction,HWND hwndParent,LPCWSTR pwszUrl,LPCWSTR pwszText,DWORD dwPromptFlags);
2860  void __RPC_STUB IInternetZoneManager_PromptAction_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2861  HRESULT WINAPI IInternetZoneManager_LogAction_Proxy(IInternetZoneManager *This,DWORD dwAction,LPCWSTR pwszUrl,LPCWSTR pwszText,DWORD dwLogFlags);
2862  void __RPC_STUB IInternetZoneManager_LogAction_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2863  HRESULT WINAPI IInternetZoneManager_CreateZoneEnumerator_Proxy(IInternetZoneManager *This,DWORD *pdwEnum,DWORD *pdwCount,DWORD dwFlags);
2864  void __RPC_STUB IInternetZoneManager_CreateZoneEnumerator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2865  HRESULT WINAPI IInternetZoneManager_GetZoneAt_Proxy(IInternetZoneManager *This,DWORD dwEnum,DWORD dwIndex,DWORD *pdwZone);
2866  void __RPC_STUB IInternetZoneManager_GetZoneAt_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2867  HRESULT WINAPI IInternetZoneManager_DestroyZoneEnumerator_Proxy(IInternetZoneManager *This,DWORD dwEnum);
2868  void __RPC_STUB IInternetZoneManager_DestroyZoneEnumerator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2869  HRESULT WINAPI IInternetZoneManager_CopyTemplatePoliciesToZone_Proxy(IInternetZoneManager *This,DWORD dwTemplate,DWORD dwZone,DWORD dwReserved);
2870  void __RPC_STUB IInternetZoneManager_CopyTemplatePoliciesToZone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2871#endif
2872#endif
2873
2874#ifndef _LPINTERNETZONEMANAGEREX_DEFINED
2875#define _LPINTERNETZONEMANAGEREX_DEFINED
2876  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0209_v0_0_c_ifspec;
2877  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0209_v0_0_s_ifspec;
2878#ifndef __IInternetZoneManagerEx_INTERFACE_DEFINED__
2879#define __IInternetZoneManagerEx_INTERFACE_DEFINED__
2880  EXTERN_C const IID IID_IInternetZoneManagerEx;
2881#if defined(__cplusplus) && !defined(CINTERFACE)
2882  struct IInternetZoneManagerEx : public IInternetZoneManager {
2883  public:
2884    virtual HRESULT WINAPI GetZoneActionPolicyEx(DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg,DWORD dwFlags) = 0;
2885    virtual HRESULT WINAPI SetZoneActionPolicyEx(DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg,DWORD dwFlags) = 0;
2886  };
2887#else
2888  typedef struct IInternetZoneManagerExVtbl {
2889    BEGIN_INTERFACE
2890      HRESULT (WINAPI *QueryInterface)(IInternetZoneManagerEx *This,REFIID riid,void **ppvObject);
2891      ULONG (WINAPI *AddRef)(IInternetZoneManagerEx *This);
2892      ULONG (WINAPI *Release)(IInternetZoneManagerEx *This);
2893      HRESULT (WINAPI *GetZoneAttributes)(IInternetZoneManagerEx *This,DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes);
2894      HRESULT (WINAPI *SetZoneAttributes)(IInternetZoneManagerEx *This,DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes);
2895      HRESULT (WINAPI *GetZoneCustomPolicy)(IInternetZoneManagerEx *This,DWORD dwZone,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,URLZONEREG urlZoneReg);
2896      HRESULT (WINAPI *SetZoneCustomPolicy)(IInternetZoneManagerEx *This,DWORD dwZone,REFGUID guidKey,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg);
2897      HRESULT (WINAPI *GetZoneActionPolicy)(IInternetZoneManagerEx *This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg);
2898      HRESULT (WINAPI *SetZoneActionPolicy)(IInternetZoneManagerEx *This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg);
2899      HRESULT (WINAPI *PromptAction)(IInternetZoneManagerEx *This,DWORD dwAction,HWND hwndParent,LPCWSTR pwszUrl,LPCWSTR pwszText,DWORD dwPromptFlags);
2900      HRESULT (WINAPI *LogAction)(IInternetZoneManagerEx *This,DWORD dwAction,LPCWSTR pwszUrl,LPCWSTR pwszText,DWORD dwLogFlags);
2901      HRESULT (WINAPI *CreateZoneEnumerator)(IInternetZoneManagerEx *This,DWORD *pdwEnum,DWORD *pdwCount,DWORD dwFlags);
2902      HRESULT (WINAPI *GetZoneAt)(IInternetZoneManagerEx *This,DWORD dwEnum,DWORD dwIndex,DWORD *pdwZone);
2903      HRESULT (WINAPI *DestroyZoneEnumerator)(IInternetZoneManagerEx *This,DWORD dwEnum);
2904      HRESULT (WINAPI *CopyTemplatePoliciesToZone)(IInternetZoneManagerEx *This,DWORD dwTemplate,DWORD dwZone,DWORD dwReserved);
2905      HRESULT (WINAPI *GetZoneActionPolicyEx)(IInternetZoneManagerEx *This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg,DWORD dwFlags);
2906      HRESULT (WINAPI *SetZoneActionPolicyEx)(IInternetZoneManagerEx *This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg,DWORD dwFlags);
2907    END_INTERFACE
2908  } IInternetZoneManagerExVtbl;
2909  struct IInternetZoneManagerEx {
2910    CONST_VTBL struct IInternetZoneManagerExVtbl *lpVtbl;
2911  };
2912#ifdef COBJMACROS
2913#define IInternetZoneManagerEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2914#define IInternetZoneManagerEx_AddRef(This) (This)->lpVtbl->AddRef(This)
2915#define IInternetZoneManagerEx_Release(This) (This)->lpVtbl->Release(This)
2916#define IInternetZoneManagerEx_GetZoneAttributes(This,dwZone,pZoneAttributes) (This)->lpVtbl->GetZoneAttributes(This,dwZone,pZoneAttributes)
2917#define IInternetZoneManagerEx_SetZoneAttributes(This,dwZone,pZoneAttributes) (This)->lpVtbl->SetZoneAttributes(This,dwZone,pZoneAttributes)
2918#define IInternetZoneManagerEx_GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg) (This)->lpVtbl->GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg)
2919#define IInternetZoneManagerEx_SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg)
2920#define IInternetZoneManagerEx_GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg)
2921#define IInternetZoneManagerEx_SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg)
2922#define IInternetZoneManagerEx_PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags) (This)->lpVtbl->PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags)
2923#define IInternetZoneManagerEx_LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags) (This)->lpVtbl->LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags)
2924#define IInternetZoneManagerEx_CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags) (This)->lpVtbl->CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags)
2925#define IInternetZoneManagerEx_GetZoneAt(This,dwEnum,dwIndex,pdwZone) (This)->lpVtbl->GetZoneAt(This,dwEnum,dwIndex,pdwZone)
2926#define IInternetZoneManagerEx_DestroyZoneEnumerator(This,dwEnum) (This)->lpVtbl->DestroyZoneEnumerator(This,dwEnum)
2927#define IInternetZoneManagerEx_CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved) (This)->lpVtbl->CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved)
2928#define IInternetZoneManagerEx_GetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags) (This)->lpVtbl->GetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags)
2929#define IInternetZoneManagerEx_SetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags) (This)->lpVtbl->SetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags)
2930#endif
2931#endif
2932  HRESULT WINAPI IInternetZoneManagerEx_GetZoneActionPolicyEx_Proxy(IInternetZoneManagerEx *This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg,DWORD dwFlags);
2933  void __RPC_STUB IInternetZoneManagerEx_GetZoneActionPolicyEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2934  HRESULT WINAPI IInternetZoneManagerEx_SetZoneActionPolicyEx_Proxy(IInternetZoneManagerEx *This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg,DWORD dwFlags);
2935  void __RPC_STUB IInternetZoneManagerEx_SetZoneActionPolicyEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2936#endif
2937#endif
2938
2939  EXTERN_C const IID CLSID_SoftDistExt;
2940
2941#ifndef _LPSOFTDISTEXT_DEFINED
2942#define _LPSOFTDISTEXT_DEFINED
2943
2944#define SOFTDIST_FLAG_USAGE_EMAIL 0x00000001
2945#define SOFTDIST_FLAG_USAGE_PRECACHE 0x00000002
2946#define SOFTDIST_FLAG_USAGE_AUTOINSTALL 0x00000004
2947#define SOFTDIST_FLAG_DELETE_SUBSCRIPTION 0x00000008
2948
2949#define SOFTDIST_ADSTATE_NONE 0x00000000
2950#define SOFTDIST_ADSTATE_AVAILABLE 0x00000001
2951#define SOFTDIST_ADSTATE_DOWNLOADED 0x00000002
2952#define SOFTDIST_ADSTATE_INSTALLED 0x00000003
2953
2954  typedef struct _tagCODEBASEHOLD {
2955    ULONG cbSize;
2956    LPWSTR szDistUnit;
2957    LPWSTR szCodeBase;
2958    DWORD dwVersionMS;
2959    DWORD dwVersionLS;
2960    DWORD dwStyle;
2961  } CODEBASEHOLD;
2962
2963  typedef struct _tagCODEBASEHOLD *LPCODEBASEHOLD;
2964
2965  typedef struct _tagSOFTDISTINFO {
2966    ULONG cbSize;
2967    DWORD dwFlags;
2968    DWORD dwAdState;
2969    LPWSTR szTitle;
2970    LPWSTR szAbstract;
2971    LPWSTR szHREF;
2972    DWORD dwInstalledVersionMS;
2973    DWORD dwInstalledVersionLS;
2974    DWORD dwUpdateVersionMS;
2975    DWORD dwUpdateVersionLS;
2976    DWORD dwAdvertisedVersionMS;
2977    DWORD dwAdvertisedVersionLS;
2978    DWORD dwReserved;
2979  } SOFTDISTINFO;
2980
2981  typedef struct _tagSOFTDISTINFO *LPSOFTDISTINFO;
2982
2983  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0210_v0_0_c_ifspec;
2984  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0210_v0_0_s_ifspec;
2985#ifndef __ISoftDistExt_INTERFACE_DEFINED__
2986#define __ISoftDistExt_INTERFACE_DEFINED__
2987  EXTERN_C const IID IID_ISoftDistExt;
2988#if defined(__cplusplus) && !defined(CINTERFACE)
2989  struct ISoftDistExt : public IUnknown {
2990  public:
2991    virtual HRESULT WINAPI ProcessSoftDist(LPCWSTR szCDFURL,IXMLElement *pSoftDistElement,LPSOFTDISTINFO lpsdi) = 0;
2992    virtual HRESULT WINAPI GetFirstCodeBase(LPWSTR *szCodeBase,LPDWORD dwMaxSize) = 0;
2993    virtual HRESULT WINAPI GetNextCodeBase(LPWSTR *szCodeBase,LPDWORD dwMaxSize) = 0;
2994    virtual HRESULT WINAPI AsyncInstallDistributionUnit(IBindCtx *pbc,LPVOID pvReserved,DWORD flags,LPCODEBASEHOLD lpcbh) = 0;
2995  };
2996#else
2997  typedef struct ISoftDistExtVtbl {
2998    BEGIN_INTERFACE
2999      HRESULT (WINAPI *QueryInterface)(ISoftDistExt *This,REFIID riid,void **ppvObject);
3000      ULONG (WINAPI *AddRef)(ISoftDistExt *This);
3001      ULONG (WINAPI *Release)(ISoftDistExt *This);
3002      HRESULT (WINAPI *ProcessSoftDist)(ISoftDistExt *This,LPCWSTR szCDFURL,IXMLElement *pSoftDistElement,LPSOFTDISTINFO lpsdi);
3003      HRESULT (WINAPI *GetFirstCodeBase)(ISoftDistExt *This,LPWSTR *szCodeBase,LPDWORD dwMaxSize);
3004      HRESULT (WINAPI *GetNextCodeBase)(ISoftDistExt *This,LPWSTR *szCodeBase,LPDWORD dwMaxSize);
3005      HRESULT (WINAPI *AsyncInstallDistributionUnit)(ISoftDistExt *This,IBindCtx *pbc,LPVOID pvReserved,DWORD flags,LPCODEBASEHOLD lpcbh);
3006    END_INTERFACE
3007  } ISoftDistExtVtbl;
3008  struct ISoftDistExt {
3009    CONST_VTBL struct ISoftDistExtVtbl *lpVtbl;
3010  };
3011#ifdef COBJMACROS
3012#define ISoftDistExt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3013#define ISoftDistExt_AddRef(This) (This)->lpVtbl->AddRef(This)
3014#define ISoftDistExt_Release(This) (This)->lpVtbl->Release(This)
3015#define ISoftDistExt_ProcessSoftDist(This,szCDFURL,pSoftDistElement,lpsdi) (This)->lpVtbl->ProcessSoftDist(This,szCDFURL,pSoftDistElement,lpsdi)
3016#define ISoftDistExt_GetFirstCodeBase(This,szCodeBase,dwMaxSize) (This)->lpVtbl->GetFirstCodeBase(This,szCodeBase,dwMaxSize)
3017#define ISoftDistExt_GetNextCodeBase(This,szCodeBase,dwMaxSize) (This)->lpVtbl->GetNextCodeBase(This,szCodeBase,dwMaxSize)
3018#define ISoftDistExt_AsyncInstallDistributionUnit(This,pbc,pvReserved,flags,lpcbh) (This)->lpVtbl->AsyncInstallDistributionUnit(This,pbc,pvReserved,flags,lpcbh)
3019#endif
3020#endif
3021  HRESULT WINAPI ISoftDistExt_ProcessSoftDist_Proxy(ISoftDistExt *This,LPCWSTR szCDFURL,IXMLElement *pSoftDistElement,LPSOFTDISTINFO lpsdi);
3022  void __RPC_STUB ISoftDistExt_ProcessSoftDist_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3023  HRESULT WINAPI ISoftDistExt_GetFirstCodeBase_Proxy(ISoftDistExt *This,LPWSTR *szCodeBase,LPDWORD dwMaxSize);
3024  void __RPC_STUB ISoftDistExt_GetFirstCodeBase_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3025  HRESULT WINAPI ISoftDistExt_GetNextCodeBase_Proxy(ISoftDistExt *This,LPWSTR *szCodeBase,LPDWORD dwMaxSize);
3026  void __RPC_STUB ISoftDistExt_GetNextCodeBase_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3027  HRESULT WINAPI ISoftDistExt_AsyncInstallDistributionUnit_Proxy(ISoftDistExt *This,IBindCtx *pbc,LPVOID pvReserved,DWORD flags,LPCODEBASEHOLD lpcbh);
3028  void __RPC_STUB ISoftDistExt_AsyncInstallDistributionUnit_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3029#endif
3030
3031  STDAPI GetSoftwareUpdateInfo(LPCWSTR szDistUnit,LPSOFTDISTINFO psdi);
3032  STDAPI SetSoftwareUpdateAdvertisementState(LPCWSTR szDistUnit,DWORD dwAdState,DWORD dwAdvertisedVersionMS,DWORD dwAdvertisedVersionLS);
3033#endif
3034
3035#ifndef _LPCATALOGFILEINFO_DEFINED
3036#define _LPCATALOGFILEINFO_DEFINED
3037  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0211_v0_0_c_ifspec;
3038  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0211_v0_0_s_ifspec;
3039#ifndef __ICatalogFileInfo_INTERFACE_DEFINED__
3040#define __ICatalogFileInfo_INTERFACE_DEFINED__
3041  typedef ICatalogFileInfo *LPCATALOGFILEINFO;
3042
3043  EXTERN_C const IID IID_ICatalogFileInfo;
3044#if defined(__cplusplus) && !defined(CINTERFACE)
3045  struct ICatalogFileInfo : public IUnknown {
3046  public:
3047    virtual HRESULT WINAPI GetCatalogFile(LPSTR *ppszCatalogFile) = 0;
3048    virtual HRESULT WINAPI GetJavaTrust(void **ppJavaTrust) = 0;
3049  };
3050#else
3051  typedef struct ICatalogFileInfoVtbl {
3052    BEGIN_INTERFACE
3053      HRESULT (WINAPI *QueryInterface)(ICatalogFileInfo *This,REFIID riid,void **ppvObject);
3054      ULONG (WINAPI *AddRef)(ICatalogFileInfo *This);
3055      ULONG (WINAPI *Release)(ICatalogFileInfo *This);
3056      HRESULT (WINAPI *GetCatalogFile)(ICatalogFileInfo *This,LPSTR *ppszCatalogFile);
3057      HRESULT (WINAPI *GetJavaTrust)(ICatalogFileInfo *This,void **ppJavaTrust);
3058    END_INTERFACE
3059  } ICatalogFileInfoVtbl;
3060  struct ICatalogFileInfo {
3061    CONST_VTBL struct ICatalogFileInfoVtbl *lpVtbl;
3062  };
3063#ifdef COBJMACROS
3064#define ICatalogFileInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3065#define ICatalogFileInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
3066#define ICatalogFileInfo_Release(This) (This)->lpVtbl->Release(This)
3067#define ICatalogFileInfo_GetCatalogFile(This,ppszCatalogFile) (This)->lpVtbl->GetCatalogFile(This,ppszCatalogFile)
3068#define ICatalogFileInfo_GetJavaTrust(This,ppJavaTrust) (This)->lpVtbl->GetJavaTrust(This,ppJavaTrust)
3069#endif
3070#endif
3071  HRESULT WINAPI ICatalogFileInfo_GetCatalogFile_Proxy(ICatalogFileInfo *This,LPSTR *ppszCatalogFile);
3072  void __RPC_STUB ICatalogFileInfo_GetCatalogFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3073  HRESULT WINAPI ICatalogFileInfo_GetJavaTrust_Proxy(ICatalogFileInfo *This,void **ppJavaTrust);
3074  void __RPC_STUB ICatalogFileInfo_GetJavaTrust_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3075#endif
3076#endif
3077
3078#ifndef _LPDATAFILTER_DEFINED
3079#define _LPDATAFILTER_DEFINED
3080  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0212_v0_0_c_ifspec;
3081  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0212_v0_0_s_ifspec;
3082#ifndef __IDataFilter_INTERFACE_DEFINED__
3083#define __IDataFilter_INTERFACE_DEFINED__
3084  typedef IDataFilter *LPDATAFILTER;
3085
3086  EXTERN_C const IID IID_IDataFilter;
3087#if defined(__cplusplus) && !defined(CINTERFACE)
3088  struct IDataFilter : public IUnknown {
3089  public:
3090    virtual HRESULT WINAPI DoEncode(DWORD dwFlags,LONG lInBufferSize,BYTE *pbInBuffer,LONG lOutBufferSize,BYTE *pbOutBuffer,LONG lInBytesAvailable,LONG *plInBytesRead,LONG *plOutBytesWritten,DWORD dwReserved) = 0;
3091    virtual HRESULT WINAPI DoDecode(DWORD dwFlags,LONG lInBufferSize,BYTE *pbInBuffer,LONG lOutBufferSize,BYTE *pbOutBuffer,LONG lInBytesAvailable,LONG *plInBytesRead,LONG *plOutBytesWritten,DWORD dwReserved) = 0;
3092    virtual HRESULT WINAPI SetEncodingLevel(DWORD dwEncLevel) = 0;
3093  };
3094#else
3095  typedef struct IDataFilterVtbl {
3096    BEGIN_INTERFACE
3097      HRESULT (WINAPI *QueryInterface)(IDataFilter *This,REFIID riid,void **ppvObject);
3098      ULONG (WINAPI *AddRef)(IDataFilter *This);
3099      ULONG (WINAPI *Release)(IDataFilter *This);
3100      HRESULT (WINAPI *DoEncode)(IDataFilter *This,DWORD dwFlags,LONG lInBufferSize,BYTE *pbInBuffer,LONG lOutBufferSize,BYTE *pbOutBuffer,LONG lInBytesAvailable,LONG *plInBytesRead,LONG *plOutBytesWritten,DWORD dwReserved);
3101      HRESULT (WINAPI *DoDecode)(IDataFilter *This,DWORD dwFlags,LONG lInBufferSize,BYTE *pbInBuffer,LONG lOutBufferSize,BYTE *pbOutBuffer,LONG lInBytesAvailable,LONG *plInBytesRead,LONG *plOutBytesWritten,DWORD dwReserved);
3102      HRESULT (WINAPI *SetEncodingLevel)(IDataFilter *This,DWORD dwEncLevel);
3103    END_INTERFACE
3104  } IDataFilterVtbl;
3105  struct IDataFilter {
3106    CONST_VTBL struct IDataFilterVtbl *lpVtbl;
3107  };
3108#ifdef COBJMACROS
3109#define IDataFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3110#define IDataFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
3111#define IDataFilter_Release(This) (This)->lpVtbl->Release(This)
3112#define IDataFilter_DoEncode(This,dwFlags,lInBufferSize,pbInBuffer,lOutBufferSize,pbOutBuffer,lInBytesAvailable,plInBytesRead,plOutBytesWritten,dwReserved) (This)->lpVtbl->DoEncode(This,dwFlags,lInBufferSize,pbInBuffer,lOutBufferSize,pbOutBuffer,lInBytesAvailable,plInBytesRead,plOutBytesWritten,dwReserved)
3113#define IDataFilter_DoDecode(This,dwFlags,lInBufferSize,pbInBuffer,lOutBufferSize,pbOutBuffer,lInBytesAvailable,plInBytesRead,plOutBytesWritten,dwReserved) (This)->lpVtbl->DoDecode(This,dwFlags,lInBufferSize,pbInBuffer,lOutBufferSize,pbOutBuffer,lInBytesAvailable,plInBytesRead,plOutBytesWritten,dwReserved)
3114#define IDataFilter_SetEncodingLevel(This,dwEncLevel) (This)->lpVtbl->SetEncodingLevel(This,dwEncLevel)
3115#endif
3116#endif
3117  HRESULT WINAPI IDataFilter_DoEncode_Proxy(IDataFilter *This,DWORD dwFlags,LONG lInBufferSize,BYTE *pbInBuffer,LONG lOutBufferSize,BYTE *pbOutBuffer,LONG lInBytesAvailable,LONG *plInBytesRead,LONG *plOutBytesWritten,DWORD dwReserved);
3118  void __RPC_STUB IDataFilter_DoEncode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3119  HRESULT WINAPI IDataFilter_DoDecode_Proxy(IDataFilter *This,DWORD dwFlags,LONG lInBufferSize,BYTE *pbInBuffer,LONG lOutBufferSize,BYTE *pbOutBuffer,LONG lInBytesAvailable,LONG *plInBytesRead,LONG *plOutBytesWritten,DWORD dwReserved);
3120  void __RPC_STUB IDataFilter_DoDecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3121  HRESULT WINAPI IDataFilter_SetEncodingLevel_Proxy(IDataFilter *This,DWORD dwEncLevel);
3122  void __RPC_STUB IDataFilter_SetEncodingLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3123#endif
3124#endif
3125
3126#ifndef _LPENCODINGFILTERFACTORY_DEFINED
3127#define _LPENCODINGFILTERFACTORY_DEFINED
3128  typedef struct _tagPROTOCOLFILTERDATA {
3129    DWORD cbSize;
3130    IInternetProtocolSink *pProtocolSink;
3131    IInternetProtocol *pProtocol;
3132    IUnknown *pUnk;
3133    DWORD dwFilterFlags;
3134  } PROTOCOLFILTERDATA;
3135
3136  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0213_v0_0_c_ifspec;
3137  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0213_v0_0_s_ifspec;
3138#ifndef __IEncodingFilterFactory_INTERFACE_DEFINED__
3139#define __IEncodingFilterFactory_INTERFACE_DEFINED__
3140  typedef IEncodingFilterFactory *LPENCODINGFILTERFACTORY;
3141
3142  typedef struct _tagDATAINFO {
3143    ULONG ulTotalSize;
3144    ULONG ulavrPacketSize;
3145    ULONG ulConnectSpeed;
3146    ULONG ulProcessorSpeed;
3147  } DATAINFO;
3148
3149  EXTERN_C const IID IID_IEncodingFilterFactory;
3150#if defined(__cplusplus) && !defined(CINTERFACE)
3151  struct IEncodingFilterFactory : public IUnknown {
3152  public:
3153    virtual HRESULT WINAPI FindBestFilter(LPCWSTR pwzCodeIn,LPCWSTR pwzCodeOut,DATAINFO info,IDataFilter **ppDF) = 0;
3154    virtual HRESULT WINAPI GetDefaultFilter(LPCWSTR pwzCodeIn,LPCWSTR pwzCodeOut,IDataFilter **ppDF) = 0;
3155  };
3156#else
3157  typedef struct IEncodingFilterFactoryVtbl {
3158    BEGIN_INTERFACE
3159      HRESULT (WINAPI *QueryInterface)(IEncodingFilterFactory *This,REFIID riid,void **ppvObject);
3160      ULONG (WINAPI *AddRef)(IEncodingFilterFactory *This);
3161      ULONG (WINAPI *Release)(IEncodingFilterFactory *This);
3162      HRESULT (WINAPI *FindBestFilter)(IEncodingFilterFactory *This,LPCWSTR pwzCodeIn,LPCWSTR pwzCodeOut,DATAINFO info,IDataFilter **ppDF);
3163      HRESULT (WINAPI *GetDefaultFilter)(IEncodingFilterFactory *This,LPCWSTR pwzCodeIn,LPCWSTR pwzCodeOut,IDataFilter **ppDF);
3164    END_INTERFACE
3165  } IEncodingFilterFactoryVtbl;
3166  struct IEncodingFilterFactory {
3167    CONST_VTBL struct IEncodingFilterFactoryVtbl *lpVtbl;
3168  };
3169#ifdef COBJMACROS
3170#define IEncodingFilterFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3171#define IEncodingFilterFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
3172#define IEncodingFilterFactory_Release(This) (This)->lpVtbl->Release(This)
3173#define IEncodingFilterFactory_FindBestFilter(This,pwzCodeIn,pwzCodeOut,info,ppDF) (This)->lpVtbl->FindBestFilter(This,pwzCodeIn,pwzCodeOut,info,ppDF)
3174#define IEncodingFilterFactory_GetDefaultFilter(This,pwzCodeIn,pwzCodeOut,ppDF) (This)->lpVtbl->GetDefaultFilter(This,pwzCodeIn,pwzCodeOut,ppDF)
3175#endif
3176#endif
3177  HRESULT WINAPI IEncodingFilterFactory_FindBestFilter_Proxy(IEncodingFilterFactory *This,LPCWSTR pwzCodeIn,LPCWSTR pwzCodeOut,DATAINFO info,IDataFilter **ppDF);
3178  void __RPC_STUB IEncodingFilterFactory_FindBestFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3179  HRESULT WINAPI IEncodingFilterFactory_GetDefaultFilter_Proxy(IEncodingFilterFactory *This,LPCWSTR pwzCodeIn,LPCWSTR pwzCodeOut,IDataFilter **ppDF);
3180  void __RPC_STUB IEncodingFilterFactory_GetDefaultFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3181#endif
3182#endif
3183
3184#ifndef _HITLOGGING_DEFINED
3185#define _HITLOGGING_DEFINED
3186  WINBOOL WINAPI IsLoggingEnabledA(LPCSTR pszUrl);
3187  WINBOOL WINAPI IsLoggingEnabledW(LPCWSTR pwszUrl);
3188
3189#define IsLoggingEnabled __MINGW_NAME_AW(IsLoggingEnabled)
3190
3191  typedef struct _tagHIT_LOGGING_INFO {
3192    DWORD dwStructSize;
3193    LPSTR lpszLoggedUrlName;
3194    SYSTEMTIME StartTime;
3195    SYSTEMTIME EndTime;
3196    LPSTR lpszExtendedInfo;
3197  } HIT_LOGGING_INFO;
3198
3199  typedef struct _tagHIT_LOGGING_INFO *LPHIT_LOGGING_INFO;
3200
3201  WINBOOL WINAPI WriteHitLogging(LPHIT_LOGGING_INFO lpLogginginfo);
3202#define CONFIRMSAFETYACTION_LOADOBJECT 0x00000001
3203
3204  struct CONFIRMSAFETY {
3205    CLSID clsid;
3206    IUnknown *pUnk;
3207    DWORD dwFlags;
3208  };
3209  EXTERN_C const GUID GUID_CUSTOM_CONFIRMOBJECTSAFETY;
3210#endif
3211
3212#ifndef _LPIWRAPPEDPROTOCOL_DEFINED
3213#define _LPIWRAPPEDPROTOCOL_DEFINED
3214  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0214_v0_0_c_ifspec;
3215  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0214_v0_0_s_ifspec;
3216#ifndef __IWrappedProtocol_INTERFACE_DEFINED__
3217#define __IWrappedProtocol_INTERFACE_DEFINED__
3218  typedef IWrappedProtocol *LPIWRAPPEDPROTOCOL;
3219
3220  EXTERN_C const IID IID_IWrappedProtocol;
3221#if defined(__cplusplus) && !defined(CINTERFACE)
3222  struct IWrappedProtocol : public IUnknown {
3223  public:
3224    virtual HRESULT WINAPI GetWrapperCode(LONG *pnCode,DWORD_PTR dwReserved) = 0;
3225  };
3226#else
3227  typedef struct IWrappedProtocolVtbl {
3228    BEGIN_INTERFACE
3229      HRESULT (WINAPI *QueryInterface)(IWrappedProtocol *This,REFIID riid,void **ppvObject);
3230      ULONG (WINAPI *AddRef)(IWrappedProtocol *This);
3231      ULONG (WINAPI *Release)(IWrappedProtocol *This);
3232      HRESULT (WINAPI *GetWrapperCode)(IWrappedProtocol *This,LONG *pnCode,DWORD_PTR dwReserved);
3233    END_INTERFACE
3234  } IWrappedProtocolVtbl;
3235  struct IWrappedProtocol {
3236    CONST_VTBL struct IWrappedProtocolVtbl *lpVtbl;
3237  };
3238#ifdef COBJMACROS
3239#define IWrappedProtocol_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3240#define IWrappedProtocol_AddRef(This) (This)->lpVtbl->AddRef(This)
3241#define IWrappedProtocol_Release(This) (This)->lpVtbl->Release(This)
3242#define IWrappedProtocol_GetWrapperCode(This,pnCode,dwReserved) (This)->lpVtbl->GetWrapperCode(This,pnCode,dwReserved)
3243#endif
3244#endif
3245  HRESULT WINAPI IWrappedProtocol_GetWrapperCode_Proxy(IWrappedProtocol *This,LONG *pnCode,DWORD_PTR dwReserved);
3246  void __RPC_STUB IWrappedProtocol_GetWrapperCode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
3247#endif
3248#endif
3249
3250  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0215_v0_0_c_ifspec;
3251  extern RPC_IF_HANDLE __MIDL_itf_urlmon_0215_v0_0_s_ifspec;
3252
3253  ULONG __RPC_API HWND_UserSize(ULONG *,ULONG,HWND *);
3254  unsigned char *__RPC_API HWND_UserMarshal(ULONG *,unsigned char *,HWND *);
3255  unsigned char *__RPC_API HWND_UserUnmarshal(ULONG *,unsigned char *,HWND *);
3256  void __RPC_API HWND_UserFree(ULONG *,HWND *);
3257
3258  HRESULT WINAPI IWinInetInfo_QueryOption_Proxy(IWinInetInfo *This,DWORD dwOption,LPVOID pBuffer,DWORD *pcbBuf);
3259  HRESULT WINAPI IWinInetInfo_QueryOption_Stub(IWinInetInfo *This,DWORD dwOption,BYTE *pBuffer,DWORD *pcbBuf);
3260  HRESULT WINAPI IWinInetHttpInfo_QueryInfo_Proxy(IWinInetHttpInfo *This,DWORD dwOption,LPVOID pBuffer,DWORD *pcbBuf,DWORD *pdwFlags,DWORD *pdwReserved);
3261  HRESULT WINAPI IWinInetHttpInfo_QueryInfo_Stub(IWinInetHttpInfo *This,DWORD dwOption,BYTE *pBuffer,DWORD *pcbBuf,DWORD *pdwFlags,DWORD *pdwReserved);
3262  HRESULT WINAPI IBindHost_MonikerBindToStorage_Proxy(IBindHost *This,IMoniker *pMk,IBindCtx *pBC,IBindStatusCallback *pBSC,REFIID riid,void **ppvObj);
3263  HRESULT WINAPI IBindHost_MonikerBindToStorage_Stub(IBindHost *This,IMoniker *pMk,IBindCtx *pBC,IBindStatusCallback *pBSC,REFIID riid,IUnknown **ppvObj);
3264  HRESULT WINAPI IBindHost_MonikerBindToObject_Proxy(IBindHost *This,IMoniker *pMk,IBindCtx *pBC,IBindStatusCallback *pBSC,REFIID riid,void **ppvObj);
3265  HRESULT WINAPI IBindHost_MonikerBindToObject_Stub(IBindHost *This,IMoniker *pMk,IBindCtx *pBC,IBindStatusCallback *pBSC,REFIID riid,IUnknown **ppvObj);
3266/* Begin additional prototypes for all interfaces */
3267
3268ULONG           __RPC_USER STGMEDIUM_UserSize     (ULONG *, ULONG, STGMEDIUM *);
3269unsigned char * __RPC_USER STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, STGMEDIUM *);
3270unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, STGMEDIUM *);
3271void            __RPC_USER STGMEDIUM_UserFree     (ULONG *, STGMEDIUM *);
3272ULONG           __RPC_USER CLIPFORMAT_UserSize     (ULONG *, ULONG, CLIPFORMAT *);
3273unsigned char * __RPC_USER CLIPFORMAT_UserMarshal  (ULONG *, unsigned char *, CLIPFORMAT *);
3274unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(ULONG *, unsigned char *, CLIPFORMAT *);
3275void            __RPC_USER CLIPFORMAT_UserFree     (ULONG *, CLIPFORMAT *);
3276
3277/* End additional prototypes */
3278
3279#ifdef __cplusplus
3280}
3281#endif
3282
3283#endif /* __urlmon_h__ */
3284