Home | History | Annotate | Download | only in include
      1 /*** Autogenerated by WIDL 1.5.29 from /tmp/build-mingw64-toolchain-joshualang/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__
     22 typedef interface IBinding IBinding;
     23 #endif
     24 
     25 #ifndef __IBindStatusCallback_FWD_DEFINED__
     26 #define __IBindStatusCallback_FWD_DEFINED__
     27 typedef interface IBindStatusCallback IBindStatusCallback;
     28 #endif
     29 
     30 /* Headers for imported files */
     31 
     32 #include <objidl.h>
     33 #include <oleidl.h>
     34 
     35 #ifdef __cplusplus
     36 extern "C" {
     37 #endif
     38 
     39 #include <_mingw_unicode.h>
     40 #ifndef __IPersistMoniker_FWD_DEFINED__
     41 #define __IPersistMoniker_FWD_DEFINED__
     42 typedef struct IPersistMoniker IPersistMoniker;
     43 #endif
     44 
     45 #ifndef __IMonikerProp_FWD_DEFINED__
     46 #define __IMonikerProp_FWD_DEFINED__
     47 typedef struct IMonikerProp IMonikerProp;
     48 #endif
     49 
     50 #ifndef __IBindProtocol_FWD_DEFINED__
     51 #define __IBindProtocol_FWD_DEFINED__
     52 typedef struct IBindProtocol IBindProtocol;
     53 #endif
     54 
     55 #ifndef __IAuthenticate_FWD_DEFINED__
     56 #define __IAuthenticate_FWD_DEFINED__
     57 typedef struct IAuthenticate IAuthenticate;
     58 #endif
     59 
     60 #ifndef __IHttpNegotiate_FWD_DEFINED__
     61 #define __IHttpNegotiate_FWD_DEFINED__
     62 typedef struct IHttpNegotiate IHttpNegotiate;
     63 #endif
     64 
     65 #ifndef __IHttpNegotiate2_FWD_DEFINED__
     66 #define __IHttpNegotiate2_FWD_DEFINED__
     67 typedef struct IHttpNegotiate2 IHttpNegotiate2;
     68 #endif
     69 
     70 #ifndef __IWinInetFileStream_FWD_DEFINED__
     71 #define __IWinInetFileStream_FWD_DEFINED__
     72 typedef struct IWinInetFileStream IWinInetFileStream;
     73 #endif
     74 
     75 #ifndef __IWindowForBindingUI_FWD_DEFINED__
     76 #define __IWindowForBindingUI_FWD_DEFINED__
     77 typedef struct IWindowForBindingUI IWindowForBindingUI;
     78 #endif
     79 
     80 #ifndef __ICodeInstall_FWD_DEFINED__
     81 #define __ICodeInstall_FWD_DEFINED__
     82 typedef struct ICodeInstall ICodeInstall;
     83 #endif
     84 
     85 #ifndef __IWinInetInfo_FWD_DEFINED__
     86 #define __IWinInetInfo_FWD_DEFINED__
     87 typedef struct IWinInetInfo IWinInetInfo;
     88 #endif
     89 
     90 #ifndef __IHttpSecurity_FWD_DEFINED__
     91 #define __IHttpSecurity_FWD_DEFINED__
     92 typedef struct IHttpSecurity IHttpSecurity;
     93 #endif
     94 
     95 #ifndef __IWinInetHttpInfo_FWD_DEFINED__
     96 #define __IWinInetHttpInfo_FWD_DEFINED__
     97 typedef struct IWinInetHttpInfo IWinInetHttpInfo;
     98 #endif
     99 
    100 #ifndef __IWinInetCacheHints_FWD_DEFINED__
    101 #define __IWinInetCacheHints_FWD_DEFINED__
    102 typedef struct IWinInetCacheHints IWinInetCacheHints;
    103 #endif
    104 
    105 #ifndef __IBindHost_FWD_DEFINED__
    106 #define __IBindHost_FWD_DEFINED__
    107 typedef struct IBindHost IBindHost;
    108 #endif
    109 
    110 #ifndef __IInternet_FWD_DEFINED__
    111 #define __IInternet_FWD_DEFINED__
    112 typedef struct IInternet IInternet;
    113 #endif
    114 
    115 #ifndef __IInternetBindInfo_FWD_DEFINED__
    116 #define __IInternetBindInfo_FWD_DEFINED__
    117 typedef struct IInternetBindInfo IInternetBindInfo;
    118 #endif
    119 
    120 #ifndef __IInternetProtocolRoot_FWD_DEFINED__
    121 #define __IInternetProtocolRoot_FWD_DEFINED__
    122 typedef struct IInternetProtocolRoot IInternetProtocolRoot;
    123 #endif
    124 
    125 #ifndef __IInternetProtocol_FWD_DEFINED__
    126 #define __IInternetProtocol_FWD_DEFINED__
    127 typedef struct IInternetProtocol IInternetProtocol;
    128 #endif
    129 
    130 #ifndef __IInternetProtocolSink_FWD_DEFINED__
    131 #define __IInternetProtocolSink_FWD_DEFINED__
    132 typedef struct IInternetProtocolSink IInternetProtocolSink;
    133 #endif
    134 
    135 #ifndef __IInternetProtocolSinkStackable_FWD_DEFINED__
    136 #define __IInternetProtocolSinkStackable_FWD_DEFINED__
    137 typedef struct IInternetProtocolSinkStackable IInternetProtocolSinkStackable;
    138 #endif
    139 
    140 #ifndef __IInternetSession_FWD_DEFINED__
    141 #define __IInternetSession_FWD_DEFINED__
    142 typedef struct IInternetSession IInternetSession;
    143 #endif
    144 
    145 #ifndef __IInternetThreadSwitch_FWD_DEFINED__
    146 #define __IInternetThreadSwitch_FWD_DEFINED__
    147 typedef struct IInternetThreadSwitch IInternetThreadSwitch;
    148 #endif
    149 
    150 #ifndef __IInternetPriority_FWD_DEFINED__
    151 #define __IInternetPriority_FWD_DEFINED__
    152 typedef struct IInternetPriority IInternetPriority;
    153 #endif
    154 
    155 #ifndef __IInternetProtocolInfo_FWD_DEFINED__
    156 #define __IInternetProtocolInfo_FWD_DEFINED__
    157 typedef struct IInternetProtocolInfo IInternetProtocolInfo;
    158 #endif
    159 
    160 #ifndef __IInternetSecurityMgrSite_FWD_DEFINED__
    161 #define __IInternetSecurityMgrSite_FWD_DEFINED__
    162 typedef struct IInternetSecurityMgrSite IInternetSecurityMgrSite;
    163 #endif
    164 
    165 #ifndef __IInternetSecurityManager_FWD_DEFINED__
    166 #define __IInternetSecurityManager_FWD_DEFINED__
    167 typedef struct IInternetSecurityManager IInternetSecurityManager;
    168 #endif
    169 
    170 #ifndef __IInternetSecurityManagerEx_FWD_DEFINED__
    171 #define __IInternetSecurityManagerEx_FWD_DEFINED__
    172 typedef struct IInternetSecurityManagerEx IInternetSecurityManagerEx;
    173 #endif
    174 
    175 #ifndef __IZoneIdentifier_FWD_DEFINED__
    176 #define __IZoneIdentifier_FWD_DEFINED__
    177 typedef struct IZoneIdentifier IZoneIdentifier;
    178 #endif
    179 
    180 #ifndef __IInternetHostSecurityManager_FWD_DEFINED__
    181 #define __IInternetHostSecurityManager_FWD_DEFINED__
    182 typedef struct IInternetHostSecurityManager IInternetHostSecurityManager;
    183 #endif
    184 
    185 #ifndef __IInternetZoneManager_FWD_DEFINED__
    186 #define __IInternetZoneManager_FWD_DEFINED__
    187 typedef struct IInternetZoneManager IInternetZoneManager;
    188 #endif
    189 
    190 #ifndef __IInternetZoneManagerEx_FWD_DEFINED__
    191 #define __IInternetZoneManagerEx_FWD_DEFINED__
    192 typedef struct IInternetZoneManagerEx IInternetZoneManagerEx;
    193 #endif
    194 
    195 #ifndef __ISoftDistExt_FWD_DEFINED__
    196 #define __ISoftDistExt_FWD_DEFINED__
    197 typedef struct ISoftDistExt ISoftDistExt;
    198 #endif
    199 
    200 #ifndef __ICatalogFileInfo_FWD_DEFINED__
    201 #define __ICatalogFileInfo_FWD_DEFINED__
    202 typedef struct ICatalogFileInfo ICatalogFileInfo;
    203 #endif
    204 
    205 #ifndef __IDataFilter_FWD_DEFINED__
    206 #define __IDataFilter_FWD_DEFINED__
    207 typedef struct IDataFilter IDataFilter;
    208 #endif
    209 
    210 #ifndef __IEncodingFilterFactory_FWD_DEFINED__
    211 #define __IEncodingFilterFactory_FWD_DEFINED__
    212 typedef struct IEncodingFilterFactory IEncodingFilterFactory;
    213 #endif
    214 
    215 #ifndef __IWrappedProtocol_FWD_DEFINED__
    216 #define __IWrappedProtocol_FWD_DEFINED__
    217 typedef 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 
    532 typedef IBinding *LPBINDING;
    533 DEFINE_GUID(IID_IBinding, 0x79eac9c0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
    534 #if defined(__cplusplus) && !defined(CINTERFACE)
    535 MIDL_INTERFACE("79eac9c0-baf9-11ce-8c82-00aa004ba90b")
    536 IBinding : 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
    564 typedef 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;
    606 interface 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 ***/
    625 static FORCEINLINE HRESULT IBinding_QueryInterface(IBinding* This,REFIID riid,void **ppvObject) {
    626     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    627 }
    628 static FORCEINLINE ULONG IBinding_AddRef(IBinding* This) {
    629     return This->lpVtbl->AddRef(This);
    630 }
    631 static FORCEINLINE ULONG IBinding_Release(IBinding* This) {
    632     return This->lpVtbl->Release(This);
    633 }
    634 /*** IBinding methods ***/
    635 static FORCEINLINE HRESULT IBinding_Abort(IBinding* This) {
    636     return This->lpVtbl->Abort(This);
    637 }
    638 static FORCEINLINE HRESULT IBinding_Suspend(IBinding* This) {
    639     return This->lpVtbl->Suspend(This);
    640 }
    641 static FORCEINLINE HRESULT IBinding_Resume(IBinding* This) {
    642     return This->lpVtbl->Resume(This);
    643 }
    644 static FORCEINLINE HRESULT IBinding_SetPriority(IBinding* This,LONG nPriority) {
    645     return This->lpVtbl->SetPriority(This,nPriority);
    646 }
    647 static FORCEINLINE HRESULT IBinding_GetPriority(IBinding* This,LONG *pnPriority) {
    648     return This->lpVtbl->GetPriority(This,pnPriority);
    649 }
    650 static 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 
    658 HRESULT STDMETHODCALLTYPE IBinding_Abort_Proxy(
    659     IBinding* This);
    660 void __RPC_STUB IBinding_Abort_Stub(
    661     IRpcStubBuffer* This,
    662     IRpcChannelBuffer* pRpcChannelBuffer,
    663     PRPC_MESSAGE pRpcMessage,
    664     DWORD* pdwStubPhase);
    665 HRESULT STDMETHODCALLTYPE IBinding_Suspend_Proxy(
    666     IBinding* This);
    667 void __RPC_STUB IBinding_Suspend_Stub(
    668     IRpcStubBuffer* This,
    669     IRpcChannelBuffer* pRpcChannelBuffer,
    670     PRPC_MESSAGE pRpcMessage,
    671     DWORD* pdwStubPhase);
    672 HRESULT STDMETHODCALLTYPE IBinding_Resume_Proxy(
    673     IBinding* This);
    674 void __RPC_STUB IBinding_Resume_Stub(
    675     IRpcStubBuffer* This,
    676     IRpcChannelBuffer* pRpcChannelBuffer,
    677     PRPC_MESSAGE pRpcMessage,
    678     DWORD* pdwStubPhase);
    679 HRESULT STDMETHODCALLTYPE IBinding_SetPriority_Proxy(
    680     IBinding* This,
    681     LONG nPriority);
    682 void __RPC_STUB IBinding_SetPriority_Stub(
    683     IRpcStubBuffer* This,
    684     IRpcChannelBuffer* pRpcChannelBuffer,
    685     PRPC_MESSAGE pRpcMessage,
    686     DWORD* pdwStubPhase);
    687 HRESULT STDMETHODCALLTYPE IBinding_GetPriority_Proxy(
    688     IBinding* This,
    689     LONG *pnPriority);
    690 void __RPC_STUB IBinding_GetPriority_Stub(
    691     IRpcStubBuffer* This,
    692     IRpcChannelBuffer* pRpcChannelBuffer,
    693     PRPC_MESSAGE pRpcMessage,
    694     DWORD* pdwStubPhase);
    695 HRESULT STDMETHODCALLTYPE IBinding_RemoteGetBindResult_Proxy(
    696     IBinding* This,
    697     CLSID *pclsidProtocol,
    698     DWORD *pdwResult,
    699     LPOLESTR *pszResult,
    700     DWORD dwReserved);
    701 void __RPC_STUB IBinding_RemoteGetBindResult_Stub(
    702     IRpcStubBuffer* This,
    703     IRpcChannelBuffer* pRpcChannelBuffer,
    704     PRPC_MESSAGE pRpcMessage,
    705     DWORD* pdwStubPhase);
    706 HRESULT CALLBACK IBinding_GetBindResult_Proxy(
    707     IBinding* This,
    708     CLSID *pclsidProtocol,
    709     DWORD *pdwResult,
    710     LPOLESTR *pszResult,
    711     DWORD *pdwReserved);
    712 HRESULT __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 
    730 typedef IBindStatusCallback *LPBINDSTATUSCALLBACK;
    731 typedef enum __WIDL_urlmon_generated_name_00000000 {
    732     BINDVERB_GET = 0,
    733     BINDVERB_POST = 1,
    734     BINDVERB_PUT = 2,
    735     BINDVERB_CUSTOM = 3
    736 } BINDVERB;
    737 typedef enum __WIDL_urlmon_generated_name_00000001 {
    738     BINDINFOF_URLENCODESTGMEDDATA = 0x1,
    739     BINDINFOF_URLENCODEDEXTRAINFO = 0x2
    740 } BINDINFOF;
    741 typedef 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;
    767 typedef 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;
    772 typedef 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;
    788 typedef struct _REMSECURITY_ATTRIBUTES {
    789     DWORD nLength;
    790     DWORD lpSecurityDescriptor;
    791     WINBOOL bInheritHandle;
    792 } REMSECURITY_ATTRIBUTES;
    793 typedef struct _REMSECURITY_ATTRIBUTES *PREMSECURITY_ATTRIBUTES;
    794 typedef struct _REMSECURITY_ATTRIBUTES *LPREMSECURITY_ATTRIBUTES;
    795 typedef 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;
    810 typedef struct tagRemFORMATETC {
    811     DWORD cfFormat;
    812     DWORD ptd;
    813     DWORD dwAspect;
    814     LONG lindex;
    815     DWORD tymed;
    816 } RemFORMATETC;
    817 typedef struct tagRemFORMATETC *LPREMFORMATETC;
    818 typedef 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;
    830 typedef 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;
    837 typedef 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;
    891 DEFINE_GUID(IID_IBindStatusCallback, 0x79eac9c1, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
    892 #if defined(__cplusplus) && !defined(CINTERFACE)
    893 MIDL_INTERFACE("79eac9c1-baf9-11ce-8c82-00aa004ba90b")
    894 IBindStatusCallback : 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
    935 typedef 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;
    995 interface 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 ***/
   1016 static FORCEINLINE HRESULT IBindStatusCallback_QueryInterface(IBindStatusCallback* This,REFIID riid,void **ppvObject) {
   1017     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1018 }
   1019 static FORCEINLINE ULONG IBindStatusCallback_AddRef(IBindStatusCallback* This) {
   1020     return This->lpVtbl->AddRef(This);
   1021 }
   1022 static FORCEINLINE ULONG IBindStatusCallback_Release(IBindStatusCallback* This) {
   1023     return This->lpVtbl->Release(This);
   1024 }
   1025 /*** IBindStatusCallback methods ***/
   1026 static FORCEINLINE HRESULT IBindStatusCallback_OnStartBinding(IBindStatusCallback* This,DWORD dwReserved,IBinding *pib) {
   1027     return This->lpVtbl->OnStartBinding(This,dwReserved,pib);
   1028 }
   1029 static FORCEINLINE HRESULT IBindStatusCallback_GetPriority(IBindStatusCallback* This,LONG *pnPriority) {
   1030     return This->lpVtbl->GetPriority(This,pnPriority);
   1031 }
   1032 static FORCEINLINE HRESULT IBindStatusCallback_OnLowResource(IBindStatusCallback* This,DWORD reserved) {
   1033     return This->lpVtbl->OnLowResource(This,reserved);
   1034 }
   1035 static 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 }
   1038 static FORCEINLINE HRESULT IBindStatusCallback_OnStopBinding(IBindStatusCallback* This,HRESULT hresult,LPCWSTR szError) {
   1039     return This->lpVtbl->OnStopBinding(This,hresult,szError);
   1040 }
   1041 static FORCEINLINE HRESULT IBindStatusCallback_GetBindInfo(IBindStatusCallback* This,DWORD *grfBINDF,BINDINFO *pbindinfo) {
   1042     return This->lpVtbl->GetBindInfo(This,grfBINDF,pbindinfo);
   1043 }
   1044 static 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 }
   1047 static 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 
   1055 HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnStartBinding_Proxy(
   1056     IBindStatusCallback* This,
   1057     DWORD dwReserved,
   1058     IBinding *pib);
   1059 void __RPC_STUB IBindStatusCallback_OnStartBinding_Stub(
   1060     IRpcStubBuffer* This,
   1061     IRpcChannelBuffer* pRpcChannelBuffer,
   1062     PRPC_MESSAGE pRpcMessage,
   1063     DWORD* pdwStubPhase);
   1064 HRESULT STDMETHODCALLTYPE IBindStatusCallback_GetPriority_Proxy(
   1065     IBindStatusCallback* This,
   1066     LONG *pnPriority);
   1067 void __RPC_STUB IBindStatusCallback_GetPriority_Stub(
   1068     IRpcStubBuffer* This,
   1069     IRpcChannelBuffer* pRpcChannelBuffer,
   1070     PRPC_MESSAGE pRpcMessage,
   1071     DWORD* pdwStubPhase);
   1072 HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnLowResource_Proxy(
   1073     IBindStatusCallback* This,
   1074     DWORD reserved);
   1075 void __RPC_STUB IBindStatusCallback_OnLowResource_Stub(
   1076     IRpcStubBuffer* This,
   1077     IRpcChannelBuffer* pRpcChannelBuffer,
   1078     PRPC_MESSAGE pRpcMessage,
   1079     DWORD* pdwStubPhase);
   1080 HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnProgress_Proxy(
   1081     IBindStatusCallback* This,
   1082     ULONG ulProgress,
   1083     ULONG ulProgressMax,
   1084     ULONG ulStatusCode,
   1085     LPCWSTR szStatusText);
   1086 void __RPC_STUB IBindStatusCallback_OnProgress_Stub(
   1087     IRpcStubBuffer* This,
   1088     IRpcChannelBuffer* pRpcChannelBuffer,
   1089     PRPC_MESSAGE pRpcMessage,
   1090     DWORD* pdwStubPhase);
   1091 HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnStopBinding_Proxy(
   1092     IBindStatusCallback* This,
   1093     HRESULT hresult,
   1094     LPCWSTR szError);
   1095 void __RPC_STUB IBindStatusCallback_OnStopBinding_Stub(
   1096     IRpcStubBuffer* This,
   1097     IRpcChannelBuffer* pRpcChannelBuffer,
   1098     PRPC_MESSAGE pRpcMessage,
   1099     DWORD* pdwStubPhase);
   1100 HRESULT STDMETHODCALLTYPE IBindStatusCallback_RemoteGetBindInfo_Proxy(
   1101     IBindStatusCallback* This,
   1102     DWORD *grfBINDF,
   1103     RemBINDINFO *pbindinfo,
   1104     RemSTGMEDIUM *pstgmed);
   1105 void __RPC_STUB IBindStatusCallback_RemoteGetBindInfo_Stub(
   1106     IRpcStubBuffer* This,
   1107     IRpcChannelBuffer* pRpcChannelBuffer,
   1108     PRPC_MESSAGE pRpcMessage,
   1109     DWORD* pdwStubPhase);
   1110 HRESULT STDMETHODCALLTYPE IBindStatusCallback_RemoteOnDataAvailable_Proxy(
   1111     IBindStatusCallback* This,
   1112     DWORD grfBSCF,
   1113     DWORD dwSize,
   1114     RemFORMATETC *pformatetc,
   1115     RemSTGMEDIUM *pstgmed);
   1116 void __RPC_STUB IBindStatusCallback_RemoteOnDataAvailable_Stub(
   1117     IRpcStubBuffer* This,
   1118     IRpcChannelBuffer* pRpcChannelBuffer,
   1119     PRPC_MESSAGE pRpcMessage,
   1120     DWORD* pdwStubPhase);
   1121 HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnObjectAvailable_Proxy(
   1122     IBindStatusCallback* This,
   1123     REFIID riid,
   1124     IUnknown *punk);
   1125 void __RPC_STUB IBindStatusCallback_OnObjectAvailable_Stub(
   1126     IRpcStubBuffer* This,
   1127     IRpcChannelBuffer* pRpcChannelBuffer,
   1128     PRPC_MESSAGE pRpcMessage,
   1129     DWORD* pdwStubPhase);
   1130 HRESULT CALLBACK IBindStatusCallback_GetBindInfo_Proxy(
   1131     IBindStatusCallback* This,
   1132     DWORD *grfBINDF,
   1133     BINDINFO *pbindinfo);
   1134 HRESULT __RPC_STUB IBindStatusCallback_GetBindInfo_Stub(
   1135     IBindStatusCallback* This,
   1136     DWORD *grfBINDF,
   1137     RemBINDINFO *pbindinfo,
   1138     RemSTGMEDIUM *pstgmed);
   1139 HRESULT CALLBACK IBindStatusCallback_OnDataAvailable_Proxy(
   1140     IBindStatusCallback* This,
   1141     DWORD grfBSCF,
   1142     DWORD dwSize,
   1143     FORMATETC *pformatetc,
   1144     STGMEDIUM *pstgmed);
   1145 HRESULT __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 
   3268 ULONG           __RPC_USER STGMEDIUM_UserSize     (ULONG *, ULONG, STGMEDIUM *);
   3269 unsigned char * __RPC_USER STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, STGMEDIUM *);
   3270 unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, STGMEDIUM *);
   3271 void            __RPC_USER STGMEDIUM_UserFree     (ULONG *, STGMEDIUM *);
   3272 ULONG           __RPC_USER CLIPFORMAT_UserSize     (ULONG *, ULONG, CLIPFORMAT *);
   3273 unsigned char * __RPC_USER CLIPFORMAT_UserMarshal  (ULONG *, unsigned char *, CLIPFORMAT *);
   3274 unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(ULONG *, unsigned char *, CLIPFORMAT *);
   3275 void            __RPC_USER CLIPFORMAT_UserFree     (ULONG *, CLIPFORMAT *);
   3276 
   3277 /* End additional prototypes */
   3278 
   3279 #ifdef __cplusplus
   3280 }
   3281 #endif
   3282 
   3283 #endif /* __urlmon_h__ */
   3284