Home | History | Annotate | Download | only in include
      1 /*** Autogenerated by WIDL 1.6 from 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 __IPersistMoniker_FWD_DEFINED__
     21 #define __IPersistMoniker_FWD_DEFINED__
     22 typedef interface IPersistMoniker IPersistMoniker;
     23 #endif
     24 
     25 #ifndef __IMonikerProp_FWD_DEFINED__
     26 #define __IMonikerProp_FWD_DEFINED__
     27 typedef interface IMonikerProp IMonikerProp;
     28 #endif
     29 
     30 #ifndef __IBindProtocol_FWD_DEFINED__
     31 #define __IBindProtocol_FWD_DEFINED__
     32 typedef interface IBindProtocol IBindProtocol;
     33 #endif
     34 
     35 #ifndef __IBinding_FWD_DEFINED__
     36 #define __IBinding_FWD_DEFINED__
     37 typedef interface IBinding IBinding;
     38 #endif
     39 
     40 #ifndef __IBindStatusCallback_FWD_DEFINED__
     41 #define __IBindStatusCallback_FWD_DEFINED__
     42 typedef interface IBindStatusCallback IBindStatusCallback;
     43 #endif
     44 
     45 #ifndef __IBindStatusCallbackEx_FWD_DEFINED__
     46 #define __IBindStatusCallbackEx_FWD_DEFINED__
     47 typedef interface IBindStatusCallbackEx IBindStatusCallbackEx;
     48 #endif
     49 
     50 #ifndef __IAuthenticate_FWD_DEFINED__
     51 #define __IAuthenticate_FWD_DEFINED__
     52 typedef interface IAuthenticate IAuthenticate;
     53 #endif
     54 
     55 #ifndef __IAuthenticateEx_FWD_DEFINED__
     56 #define __IAuthenticateEx_FWD_DEFINED__
     57 typedef interface IAuthenticateEx IAuthenticateEx;
     58 #endif
     59 
     60 #ifndef __IHttpNegotiate_FWD_DEFINED__
     61 #define __IHttpNegotiate_FWD_DEFINED__
     62 typedef interface IHttpNegotiate IHttpNegotiate;
     63 #endif
     64 
     65 #ifndef __IHttpNegotiate2_FWD_DEFINED__
     66 #define __IHttpNegotiate2_FWD_DEFINED__
     67 typedef interface IHttpNegotiate2 IHttpNegotiate2;
     68 #endif
     69 
     70 #ifndef __IHttpNegotiate3_FWD_DEFINED__
     71 #define __IHttpNegotiate3_FWD_DEFINED__
     72 typedef interface IHttpNegotiate3 IHttpNegotiate3;
     73 #endif
     74 
     75 #ifndef __IWinInetFileStream_FWD_DEFINED__
     76 #define __IWinInetFileStream_FWD_DEFINED__
     77 typedef interface IWinInetFileStream IWinInetFileStream;
     78 #endif
     79 
     80 #ifndef __IWindowForBindingUI_FWD_DEFINED__
     81 #define __IWindowForBindingUI_FWD_DEFINED__
     82 typedef interface IWindowForBindingUI IWindowForBindingUI;
     83 #endif
     84 
     85 #ifndef __ICodeInstall_FWD_DEFINED__
     86 #define __ICodeInstall_FWD_DEFINED__
     87 typedef interface ICodeInstall ICodeInstall;
     88 #endif
     89 
     90 #ifndef __IUri_FWD_DEFINED__
     91 #define __IUri_FWD_DEFINED__
     92 typedef interface IUri IUri;
     93 #endif
     94 
     95 #ifndef __IUriContainer_FWD_DEFINED__
     96 #define __IUriContainer_FWD_DEFINED__
     97 typedef interface IUriContainer IUriContainer;
     98 #endif
     99 
    100 #ifndef __IUriBuilder_FWD_DEFINED__
    101 #define __IUriBuilder_FWD_DEFINED__
    102 typedef interface IUriBuilder IUriBuilder;
    103 #endif
    104 
    105 #ifndef __IUriBuilderFactory_FWD_DEFINED__
    106 #define __IUriBuilderFactory_FWD_DEFINED__
    107 typedef interface IUriBuilderFactory IUriBuilderFactory;
    108 #endif
    109 
    110 #ifndef __IWinInetInfo_FWD_DEFINED__
    111 #define __IWinInetInfo_FWD_DEFINED__
    112 typedef interface IWinInetInfo IWinInetInfo;
    113 #endif
    114 
    115 #ifndef __IHttpSecurity_FWD_DEFINED__
    116 #define __IHttpSecurity_FWD_DEFINED__
    117 typedef interface IHttpSecurity IHttpSecurity;
    118 #endif
    119 
    120 #ifndef __IWinInetHttpInfo_FWD_DEFINED__
    121 #define __IWinInetHttpInfo_FWD_DEFINED__
    122 typedef interface IWinInetHttpInfo IWinInetHttpInfo;
    123 #endif
    124 
    125 #ifndef __IWinInetHttpTimeouts_FWD_DEFINED__
    126 #define __IWinInetHttpTimeouts_FWD_DEFINED__
    127 typedef interface IWinInetHttpTimeouts IWinInetHttpTimeouts;
    128 #endif
    129 
    130 #ifndef __IWinInetCacheHints_FWD_DEFINED__
    131 #define __IWinInetCacheHints_FWD_DEFINED__
    132 typedef interface IWinInetCacheHints IWinInetCacheHints;
    133 #endif
    134 
    135 #ifndef __IWinInetCacheHints2_FWD_DEFINED__
    136 #define __IWinInetCacheHints2_FWD_DEFINED__
    137 typedef interface IWinInetCacheHints2 IWinInetCacheHints2;
    138 #endif
    139 
    140 #ifndef __IBindHost_FWD_DEFINED__
    141 #define __IBindHost_FWD_DEFINED__
    142 typedef interface IBindHost IBindHost;
    143 #endif
    144 
    145 #ifndef __IInternet_FWD_DEFINED__
    146 #define __IInternet_FWD_DEFINED__
    147 typedef interface IInternet IInternet;
    148 #endif
    149 
    150 #ifndef __IInternetBindInfo_FWD_DEFINED__
    151 #define __IInternetBindInfo_FWD_DEFINED__
    152 typedef interface IInternetBindInfo IInternetBindInfo;
    153 #endif
    154 
    155 #ifndef __IInternetBindInfoEx_FWD_DEFINED__
    156 #define __IInternetBindInfoEx_FWD_DEFINED__
    157 typedef interface IInternetBindInfoEx IInternetBindInfoEx;
    158 #endif
    159 
    160 #ifndef __IInternetProtocolRoot_FWD_DEFINED__
    161 #define __IInternetProtocolRoot_FWD_DEFINED__
    162 typedef interface IInternetProtocolRoot IInternetProtocolRoot;
    163 #endif
    164 
    165 #ifndef __IInternetProtocol_FWD_DEFINED__
    166 #define __IInternetProtocol_FWD_DEFINED__
    167 typedef interface IInternetProtocol IInternetProtocol;
    168 #endif
    169 
    170 #ifndef __IInternetProtocolEx_FWD_DEFINED__
    171 #define __IInternetProtocolEx_FWD_DEFINED__
    172 typedef interface IInternetProtocolEx IInternetProtocolEx;
    173 #endif
    174 
    175 #ifndef __IInternetProtocolSink_FWD_DEFINED__
    176 #define __IInternetProtocolSink_FWD_DEFINED__
    177 typedef interface IInternetProtocolSink IInternetProtocolSink;
    178 #endif
    179 
    180 #ifndef __IInternetProtocolSinkStackable_FWD_DEFINED__
    181 #define __IInternetProtocolSinkStackable_FWD_DEFINED__
    182 typedef interface IInternetProtocolSinkStackable IInternetProtocolSinkStackable;
    183 #endif
    184 
    185 #ifndef __IInternetSession_FWD_DEFINED__
    186 #define __IInternetSession_FWD_DEFINED__
    187 typedef interface IInternetSession IInternetSession;
    188 #endif
    189 
    190 #ifndef __IInternetThreadSwitch_FWD_DEFINED__
    191 #define __IInternetThreadSwitch_FWD_DEFINED__
    192 typedef interface IInternetThreadSwitch IInternetThreadSwitch;
    193 #endif
    194 
    195 #ifndef __IInternetPriority_FWD_DEFINED__
    196 #define __IInternetPriority_FWD_DEFINED__
    197 typedef interface IInternetPriority IInternetPriority;
    198 #endif
    199 
    200 #ifndef __IInternetProtocolInfo_FWD_DEFINED__
    201 #define __IInternetProtocolInfo_FWD_DEFINED__
    202 typedef interface IInternetProtocolInfo IInternetProtocolInfo;
    203 #endif
    204 
    205 #ifndef __IInternetSecurityMgrSite_FWD_DEFINED__
    206 #define __IInternetSecurityMgrSite_FWD_DEFINED__
    207 typedef interface IInternetSecurityMgrSite IInternetSecurityMgrSite;
    208 #endif
    209 
    210 #ifndef __IInternetSecurityManager_FWD_DEFINED__
    211 #define __IInternetSecurityManager_FWD_DEFINED__
    212 typedef interface IInternetSecurityManager IInternetSecurityManager;
    213 #endif
    214 
    215 #ifndef __IInternetSecurityManagerEx_FWD_DEFINED__
    216 #define __IInternetSecurityManagerEx_FWD_DEFINED__
    217 typedef interface IInternetSecurityManagerEx IInternetSecurityManagerEx;
    218 #endif
    219 
    220 #ifndef __IInternetSecurityManagerEx2_FWD_DEFINED__
    221 #define __IInternetSecurityManagerEx2_FWD_DEFINED__
    222 typedef interface IInternetSecurityManagerEx2 IInternetSecurityManagerEx2;
    223 #endif
    224 
    225 #ifndef __IZoneIdentifier_FWD_DEFINED__
    226 #define __IZoneIdentifier_FWD_DEFINED__
    227 typedef interface IZoneIdentifier IZoneIdentifier;
    228 #endif
    229 
    230 #ifndef __IInternetHostSecurityManager_FWD_DEFINED__
    231 #define __IInternetHostSecurityManager_FWD_DEFINED__
    232 typedef interface IInternetHostSecurityManager IInternetHostSecurityManager;
    233 #endif
    234 
    235 #ifndef __IInternetZoneManager_FWD_DEFINED__
    236 #define __IInternetZoneManager_FWD_DEFINED__
    237 typedef interface IInternetZoneManager IInternetZoneManager;
    238 #endif
    239 
    240 #ifndef __IInternetZoneManagerEx_FWD_DEFINED__
    241 #define __IInternetZoneManagerEx_FWD_DEFINED__
    242 typedef interface IInternetZoneManagerEx IInternetZoneManagerEx;
    243 #endif
    244 
    245 #ifndef __IInternetZoneManagerEx2_FWD_DEFINED__
    246 #define __IInternetZoneManagerEx2_FWD_DEFINED__
    247 typedef interface IInternetZoneManagerEx2 IInternetZoneManagerEx2;
    248 #endif
    249 
    250 #ifndef __ISoftDistExt_FWD_DEFINED__
    251 #define __ISoftDistExt_FWD_DEFINED__
    252 typedef interface ISoftDistExt ISoftDistExt;
    253 #endif
    254 
    255 #ifndef __ICatalogFileInfo_FWD_DEFINED__
    256 #define __ICatalogFileInfo_FWD_DEFINED__
    257 typedef interface ICatalogFileInfo ICatalogFileInfo;
    258 #endif
    259 
    260 #ifndef __IDataFilter_FWD_DEFINED__
    261 #define __IDataFilter_FWD_DEFINED__
    262 typedef interface IDataFilter IDataFilter;
    263 #endif
    264 
    265 #ifndef __IEncodingFilterFactory_FWD_DEFINED__
    266 #define __IEncodingFilterFactory_FWD_DEFINED__
    267 typedef interface IEncodingFilterFactory IEncodingFilterFactory;
    268 #endif
    269 
    270 #ifndef __IWrappedProtocol_FWD_DEFINED__
    271 #define __IWrappedProtocol_FWD_DEFINED__
    272 typedef interface IWrappedProtocol IWrappedProtocol;
    273 #endif
    274 
    275 #ifndef __IGetBindHandle_FWD_DEFINED__
    276 #define __IGetBindHandle_FWD_DEFINED__
    277 typedef interface IGetBindHandle IGetBindHandle;
    278 #endif
    279 
    280 #ifndef __IBindCallbackRedirect_FWD_DEFINED__
    281 #define __IBindCallbackRedirect_FWD_DEFINED__
    282 typedef interface IBindCallbackRedirect IBindCallbackRedirect;
    283 #endif
    284 
    285 /* Headers for imported files */
    286 
    287 #include <objidl.h>
    288 #include <oleidl.h>
    289 #include <servprov.h>
    290 #include <msxml.h>
    291 
    292 #ifdef __cplusplus
    293 extern "C" {
    294 #endif
    295 
    296 /**
    297  * This file is part of the mingw-w64 runtime package.
    298  * No warranty is given; refer to the file DISCLAIMER within this package.
    299  */
    300 
    301 #include <winapifamily.h>
    302 
    303 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
    304 
    305 
    306 #ifndef __IPersistMoniker_FWD_DEFINED__
    307 #define __IPersistMoniker_FWD_DEFINED__
    308 typedef interface IPersistMoniker IPersistMoniker;
    309 #endif
    310 
    311 #ifndef __IBindProtocol_FWD_DEFINED__
    312 #define __IBindProtocol_FWD_DEFINED__
    313 typedef interface IBindProtocol IBindProtocol;
    314 #endif
    315 
    316 #ifndef __IBinding_FWD_DEFINED__
    317 #define __IBinding_FWD_DEFINED__
    318 typedef interface IBinding IBinding;
    319 #endif
    320 
    321 #ifndef __IBindStatusCallback_FWD_DEFINED__
    322 #define __IBindStatusCallback_FWD_DEFINED__
    323 typedef interface IBindStatusCallback IBindStatusCallback;
    324 #endif
    325 
    326 #ifndef __IBindStatusCallbackEx_FWD_DEFINED__
    327 #define __IBindStatusCallbackEx_FWD_DEFINED__
    328 typedef interface IBindStatusCallbackEx IBindStatusCallbackEx;
    329 #endif
    330 
    331 #ifndef __IBindStatusCallbackMsg_FWD_DEFINED__
    332 #define __IBindStatusCallbackMsg_FWD_DEFINED__
    333 typedef interface IBindStatusCallbackMsg IBindStatusCallbackMsg;
    334 #endif
    335 
    336 #ifndef __IAuthenticate_FWD_DEFINED__
    337 #define __IAuthenticate_FWD_DEFINED__
    338 typedef interface IAuthenticate IAuthenticate;
    339 #endif
    340 
    341 #ifndef __IAuthenticateEx_FWD_DEFINED__
    342 #define __IAuthenticateEx_FWD_DEFINED__
    343 typedef interface IAuthenticateEx IAuthenticateEx;
    344 #endif
    345 
    346 #ifndef __IWindowForBindingUI_FWD_DEFINED__
    347 #define __IWindowForBindingUI_FWD_DEFINED__
    348 typedef interface IWindowForBindingUI IWindowForBindingUI;
    349 #endif
    350 
    351 #ifndef __ICodeInstall_FWD_DEFINED__
    352 #define __ICodeInstall_FWD_DEFINED__
    353 typedef interface ICodeInstall ICodeInstall;
    354 #endif
    355 
    356 #ifndef __IHttpNegotiate_FWD_DEFINED__
    357 #define __IHttpNegotiate_FWD_DEFINED__
    358 typedef interface IHttpNegotiate IHttpNegotiate;
    359 #endif
    360 
    361 #ifndef __IHttpNegotiate2_FWD_DEFINED__
    362 #define __IHttpNegotiate2_FWD_DEFINED__
    363 typedef interface IHttpNegotiate2 IHttpNegotiate2;
    364 #endif
    365 
    366 #ifndef __IHttpNegotiate3_FWD_DEFINED__
    367 #define __IHttpNegotiate3_FWD_DEFINED__
    368 typedef interface IHttpNegotiate3 IHttpNegotiate3;
    369 #endif
    370 
    371 #ifndef __IWinInetFileStream_FWD_DEFINED__
    372 #define __IWinInetFileStream_FWD_DEFINED__
    373 typedef interface IWinInetFileStream IWinInetFileStream;
    374 #endif
    375 
    376 #ifndef __IXMLElement_FWD_DEFINED__
    377 #define __IXMLElement_FWD_DEFINED__
    378 typedef interface IXMLElement IXMLElement;
    379 #endif
    380 
    381 
    382 EXTERN_C const IID CLSID_SBS_StdURLMoniker;
    383 EXTERN_C const IID CLSID_SBS_HttpProtocol;
    384 EXTERN_C const IID CLSID_SBS_FtpProtocol;
    385 EXTERN_C const IID CLSID_SBS_GopherProtocol;
    386 EXTERN_C const IID CLSID_SBS_HttpSProtocol;
    387 EXTERN_C const IID CLSID_SBS_FileProtocol;
    388 EXTERN_C const IID CLSID_SBS_MkProtocol;
    389 EXTERN_C const IID CLSID_SBS_UrlMkBindCtx;
    390 EXTERN_C const IID CLSID_SBS_SoftDistExt;
    391 EXTERN_C const IID CLSID_SBS_CdlProtocol;
    392 EXTERN_C const IID CLSID_SBS_ClassInstallFilter;
    393 EXTERN_C const IID CLSID_SBS_InternetSecurityManager;
    394 EXTERN_C const IID CLSID_SBS_InternetZoneManager;
    395 
    396 #define BINDF_DONTUSECACHE BINDF_GETNEWESTVERSION
    397 #define BINDF_DONTPUTINCACHE BINDF_NOWRITECACHE
    398 #define BINDF_NOCOPYDATA BINDF_PULLDATA
    399 #define INVALID_P_ROOT_SECURITY_ID ((BYTE*)-1)
    400 
    401 #define PI_DOCFILECLSIDLOOKUP PI_CLSIDLOOKUP
    402 
    403 EXTERN_C const IID IID_IAsyncMoniker;
    404 EXTERN_C const IID CLSID_StdURLMoniker;
    405 EXTERN_C const IID CLSID_HttpProtocol;
    406 EXTERN_C const IID CLSID_FtpProtocol;
    407 EXTERN_C const IID CLSID_GopherProtocol;
    408 EXTERN_C const IID CLSID_HttpSProtocol;
    409 EXTERN_C const IID CLSID_FileProtocol;
    410 EXTERN_C const IID CLSID_MkProtocol;
    411 EXTERN_C const IID CLSID_StdURLProtocol;
    412 EXTERN_C const IID CLSID_UrlMkBindCtx;
    413 EXTERN_C const IID CLSID_CdlProtocol;
    414 EXTERN_C const IID CLSID_ClassInstallFilter;
    415 EXTERN_C const IID IID_IAsyncBindCtx;
    416 
    417 #define SZ_URLCONTEXT           OLESTR("URL Context")
    418 #define SZ_ASYNC_CALLEE         OLESTR("AsyncCallee")
    419 
    420 #define MKSYS_URLMONIKER         6
    421 #define URL_MK_LEGACY            0
    422 #define URL_MK_UNIFORM           1
    423 #define URL_MK_NO_CANONICALIZE   2
    424 
    425 STDAPI CreateURLMoniker(LPMONIKER pMkCtx, LPCWSTR szURL, LPMONIKER *ppmk);
    426 STDAPI CreateURLMonikerEx(LPMONIKER pMkCtx, LPCWSTR szURL, LPMONIKER *ppmk, DWORD dwFlags);
    427 STDAPI GetClassURL(LPCWSTR szURL, CLSID *pClsID);
    428 STDAPI CreateAsyncBindCtx(DWORD reserved, IBindStatusCallback *pBSCb, IEnumFORMATETC *pEFetc, IBindCtx **ppBC);
    429 #if (_WIN32_IE >= _WIN32_IE_IE70)
    430 STDAPI CreateURLMonikerEx2(LPMONIKER pMkCtx, IUri *pUri, LPMONIKER *ppmk, DWORD dwFlags);
    431 #endif
    432 STDAPI CreateAsyncBindCtxEx(IBindCtx *pbc, DWORD dwOptions, IBindStatusCallback *pBSCb, IEnumFORMATETC *pEnum, IBindCtx **ppBC, DWORD reserved);
    433 STDAPI MkParseDisplayNameEx(IBindCtx *pbc, LPCWSTR szDisplayName, ULONG *pchEaten, LPMONIKER *ppmk);
    434 STDAPI RegisterBindStatusCallback(LPBC pBC, IBindStatusCallback *pBSCb, IBindStatusCallback **ppBSCBPrev, DWORD dwReserved);
    435 STDAPI RevokeBindStatusCallback(LPBC pBC, IBindStatusCallback *pBSCb);
    436 STDAPI GetClassFileOrMime(LPBC pBC, LPCWSTR szFilename, LPVOID pBuffer, DWORD cbSize, LPCWSTR szMime, DWORD dwReserved, CLSID *pclsid);
    437 STDAPI IsValidURL(LPBC pBC, LPCWSTR szURL, DWORD dwReserved);
    438 STDAPI CoGetClassObjectFromURL(REFCLSID rCLASSID, LPCWSTR szCODE, DWORD dwFileVersionMS, DWORD dwFileVersionLS, LPCWSTR szTYPE, LPBINDCTX pBindCtx, DWORD dwClsContext, LPVOID pvReserved, REFIID riid, LPVOID *ppv);
    439 STDAPI IEInstallScope(LPDWORD pdwScope);
    440 STDAPI FaultInIEFeature(HWND hWnd, uCLSSPEC *pClassSpec, QUERYCONTEXT *pQuery, DWORD dwFlags);
    441 STDAPI GetComponentIDFromCLSSPEC(uCLSSPEC *pClassspec, LPSTR *ppszComponentID);
    442 
    443 #define FIEF_FLAG_FORCE_JITUI 0x1
    444 #define FIEF_FLAG_PEEK 0x2
    445 #define FIEF_FLAG_SKIP_INSTALLED_VERSION_CHECK 0x4
    446 
    447 STDAPI IsAsyncMoniker(IMoniker *pmk);
    448 STDAPI CreateURLBinding(LPCWSTR lpszUrl, IBindCtx *pbc, IBinding **ppBdg);
    449 STDAPI RegisterMediaTypes(UINT ctypes, const LPCSTR *rgszTypes, CLIPFORMAT *rgcfTypes);
    450 STDAPI FindMediaType(LPCSTR rgszTypes, CLIPFORMAT *rgcfTypes);
    451 STDAPI CreateFormatEnumerator(UINT cfmtetc, FORMATETC *rgfmtetc, IEnumFORMATETC **ppenumfmtetc);
    452 STDAPI RegisterFormatEnumerator(LPBC pBC, IEnumFORMATETC *pEFetc, DWORD reserved);
    453 STDAPI RevokeFormatEnumerator(LPBC pBC, IEnumFORMATETC *pEFetc);
    454 STDAPI RegisterMediaTypeClass(LPBC pBC,UINT ctypes, const LPCSTR *rgszTypes, CLSID *rgclsID, DWORD reserved);
    455 STDAPI FindMediaTypeClass(LPBC pBC, LPCSTR szType, CLSID *pclsID, DWORD reserved);
    456 STDAPI UrlMkSetSessionOption(DWORD dwOption, LPVOID pBuffer, DWORD dwBufferLength, DWORD dwReserved);
    457 STDAPI UrlMkGetSessionOption(DWORD dwOption, LPVOID pBuffer, DWORD dwBufferLength, DWORD *pdwBufferLengthOut, DWORD dwReserved);
    458 STDAPI FindMimeFromData(LPBC pBC, LPCWSTR pwzUrl, LPVOID pBuffer, DWORD cbSize, LPCWSTR pwzMimeProposed, DWORD dwMimeFlags, LPWSTR *ppwzMimeOut, DWORD dwReserved);
    459 
    460 #define FMFD_DEFAULT 0x0
    461 #define FMFD_URLASFILENAME 0x1
    462 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
    463 #define FMFD_ENABLEMIMESNIFFING 0x2
    464 #define FMFD_IGNOREMIMETEXTPLAIN 0x4
    465 #endif
    466 
    467 #define FMFD_SERVERMIME 0x8
    468 #define FMFD_RESPECTTEXTPLAIN 0x10
    469 #define FMFD_RETURNUPDATEDIMGMIMES 0x20
    470 #define UAS_EXACTLEGACY 0x1000
    471 
    472 STDAPI ObtainUserAgentString(DWORD dwOption, LPSTR pszUAOut, DWORD *cbSize);
    473 STDAPI CompareSecurityIds(BYTE *pbSecurityId1, DWORD dwLen1, BYTE *pbSecurityId2, DWORD dwLen2, DWORD dwReserved);
    474 STDAPI CompatFlagsFromClsid(CLSID *pclsid, LPDWORD pdwCompatFlags, LPDWORD pdwMiscStatusFlags);
    475 
    476 #define URLMON_OPTION_USERAGENT 0x10000001
    477 #define URLMON_OPTION_USERAGENT_REFRESH 0x10000002
    478 #define URLMON_OPTION_URL_ENCODING 0x10000004
    479 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
    480 #define URLMON_OPTION_USE_BINDSTRINGCREDS 0x10000008
    481 #endif
    482 #if (_WIN32_IE >= _WIN32_IE_IE70)
    483 #define URLMON_OPTION_USE_BROWSERAPPSDOCUMENTS 0x10000010
    484 #endif
    485 #endif
    486 
    487 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
    488 #define CF_NULL                 0
    489 #define CFSTR_MIME_NULL         NULL
    490 
    491 #define CFSTR_MIME_TEXT (TEXT("text/plain"))
    492 #define CFSTR_MIME_RICHTEXT (TEXT("text/richtext"))
    493 #define CFSTR_MIME_MANIFEST (TEXT("text/cache-manifest"))
    494 #define CFSTR_MIME_WEBVTT (TEXT("text/vtt"))
    495 #define CFSTR_MIME_X_BITMAP (TEXT("image/x-xbitmap"))
    496 #define CFSTR_MIME_POSTSCRIPT (TEXT("application/postscript"))
    497 #define CFSTR_MIME_AIFF (TEXT("audio/aiff"))
    498 #define CFSTR_MIME_BASICAUDIO (TEXT("audio/basic"))
    499 #define CFSTR_MIME_WAV (TEXT("audio/wav"))
    500 #define CFSTR_MIME_X_WAV (TEXT("audio/x-wav"))
    501 #define CFSTR_MIME_GIF (TEXT("image/gif"))
    502 #define CFSTR_MIME_PJPEG (TEXT("image/pjpeg"))
    503 #define CFSTR_MIME_JPEG (TEXT("image/jpeg"))
    504 #define CFSTR_MIME_TIFF (TEXT("image/tiff"))
    505 #define CFSTR_MIME_JPEG_XR (TEXT("image/vnd.ms-photo"))
    506 #define CFSTR_MIME_PNG (TEXT("image/png"))
    507 #define CFSTR_MIME_X_PNG (TEXT("image/x-png"))
    508 #define CFSTR_MIME_X_ICON (TEXT("image/x-icon"))
    509 #define CFSTR_MIME_SVG_XML (TEXT("image/svg+xml"))
    510 #define CFSTR_MIME_BMP (TEXT("image/bmp"))
    511 #define CFSTR_MIME_X_EMF (TEXT("image/x-emf"))
    512 #define CFSTR_MIME_X_WMF (TEXT("image/x-wmf"))
    513 #define CFSTR_MIME_AVI (TEXT("video/avi"))
    514 #define CFSTR_MIME_MPEG (TEXT("video/mpeg"))
    515 #define CFSTR_MIME_FRACTALS (TEXT("application/fractals"))
    516 #define CFSTR_MIME_RAWDATA (TEXT("application/octet-stream"))
    517 #define CFSTR_MIME_RAWDATASTRM (TEXT("application/octet-stream"))
    518 #define CFSTR_MIME_PDF (TEXT("application/pdf"))
    519 #define CFSTR_MIME_HTA (TEXT("application/hta"))
    520 #define CFSTR_MIME_APP_XML (TEXT("application/xml"))
    521 #define CFSTR_MIME_XHTML (TEXT("application/xhtml+xml"))
    522 #define CFSTR_MIME_X_AIFF (TEXT("audio/x-aiff"))
    523 #define CFSTR_MIME_X_REALAUDIO (TEXT("audio/x-pn-realaudio"))
    524 #define CFSTR_MIME_XBM (TEXT("image/xbm"))
    525 #define CFSTR_MIME_QUICKTIME (TEXT("video/quicktime"))
    526 #define CFSTR_MIME_X_MSVIDEO (TEXT("video/x-msvideo"))
    527 #define CFSTR_MIME_X_SGI_MOVIE (TEXT("video/x-sgi-movie"))
    528 #define CFSTR_MIME_HTML (TEXT("text/html"))
    529 #define CFSTR_MIME_XML (TEXT("text/xml"))
    530 #define CFSTR_MIME_TTML (TEXT("application/ttml+xml"))
    531 #define CFSTR_MIME_TTAF (TEXT("application/ttaf+xml"))
    532 
    533 #define MK_S_ASYNCHRONOUS    _HRESULT_TYPEDEF_(0x401E8L)
    534 #ifndef S_ASYNCHRONOUS
    535 #define S_ASYNCHRONOUS MK_S_ASYNCHRONOUS
    536 #endif
    537 
    538 #ifndef E_PENDING
    539 #define E_PENDING _HRESULT_TYPEDEF_(__MSABI_LONG(0x8000000a))
    540 #endif
    541 #define INET_E_INVALID_URL _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0002))
    542 #define INET_E_NO_SESSION _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0003))
    543 #define INET_E_CANNOT_CONNECT            _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0004))
    544 #define INET_E_RESOURCE_NOT_FOUND        _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0005))
    545 #define INET_E_OBJECT_NOT_FOUND          _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0006))
    546 #define INET_E_DATA_NOT_AVAILABLE        _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0007))
    547 #define INET_E_DOWNLOAD_FAILURE          _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0008))
    548 #define INET_E_AUTHENTICATION_REQUIRED   _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0009))
    549 #define INET_E_NO_VALID_MEDIA            _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C000A))
    550 #define INET_E_CONNECTION_TIMEOUT        _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C000B))
    551 #define INET_E_INVALID_REQUEST           _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C000C))
    552 #define INET_E_UNKNOWN_PROTOCOL          _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C000D))
    553 #define INET_E_SECURITY_PROBLEM          _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C000E))
    554 #define INET_E_CANNOT_LOAD_DATA          _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C000F))
    555 #define INET_E_CANNOT_INSTANTIATE_OBJECT _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0010))
    556 #define INET_E_INVALID_CERTIFICATE       _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0019))
    557 #define INET_E_REDIRECT_FAILED           _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0014))
    558 #define INET_E_REDIRECT_TO_DIR           _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0015))
    559 #define INET_E_CANNOT_LOCK_REQUEST                   _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0016))
    560 #define INET_E_USE_EXTEND_BINDING                    _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0017))
    561 #define INET_E_TERMINATED_BIND                       _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0018))
    562 #define INET_E_RESERVED_1                            _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C001A))
    563 #define INET_E_BLOCKED_REDIRECT_XSECURITYID          _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C001B))
    564 #define INET_E_DOMINJECTIONVALIDATION                _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C001C))
    565 #define INET_E_ERROR_FIRST                           _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0002))
    566 #define INET_E_CODE_DOWNLOAD_DECLINED                _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0100))
    567 #define INET_E_RESULT_DISPATCHED                     _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0200))
    568 #define INET_E_CANNOT_REPLACE_SFP_FILE               _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0300))
    569 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
    570 #define INET_E_CODE_INSTALL_SUPPRESSED               _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0400))
    571 #endif
    572 #define INET_E_CODE_INSTALL_BLOCKED_BY_HASH_POLICY   _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0500))
    573 #define INET_E_DOWNLOAD_BLOCKED_BY_INPRIVATE         _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0501))
    574 #define INET_E_CODE_INSTALL_BLOCKED_IMMERSIVE        _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0502))
    575 #define INET_E_FORBIDFRAMING                         _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0503))
    576 #define INET_E_CODE_INSTALL_BLOCKED_ARM              _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0504))
    577 #define INET_E_BLOCKED_PLUGGABLE_PROTOCOL            _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0505))
    578 #define INET_E_ERROR_LAST INET_E_BLOCKED_PLUGGABLE_PROTOCOL
    579 #endif
    580 
    581 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
    582 #ifndef _LPPERSISTMONIKER_DEFINED
    583 #define _LPPERSISTMONIKER_DEFINED
    584 /*****************************************************************************
    585  * IPersistMoniker interface
    586  */
    587 #ifndef __IPersistMoniker_INTERFACE_DEFINED__
    588 #define __IPersistMoniker_INTERFACE_DEFINED__
    589 
    590 typedef IPersistMoniker *LPPERSISTMONIKER;
    591 
    592 DEFINE_GUID(IID_IPersistMoniker, 0x79eac9c9, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
    593 #if defined(__cplusplus) && !defined(CINTERFACE)
    594 MIDL_INTERFACE("79eac9c9-baf9-11ce-8c82-00aa004ba90b")
    595 IPersistMoniker : public IUnknown
    596 {
    597     virtual HRESULT STDMETHODCALLTYPE GetClassID(
    598         CLSID *pClassID) = 0;
    599 
    600     virtual HRESULT STDMETHODCALLTYPE IsDirty(
    601         ) = 0;
    602 
    603     virtual HRESULT STDMETHODCALLTYPE Load(
    604         WINBOOL fFullyAvailable,
    605         IMoniker *pimkName,
    606         LPBC pibc,
    607         DWORD grfMode) = 0;
    608 
    609     virtual HRESULT STDMETHODCALLTYPE Save(
    610         IMoniker *pimkName,
    611         LPBC pbc,
    612         WINBOOL fRemember) = 0;
    613 
    614     virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
    615         IMoniker *pimkName,
    616         LPBC pibc) = 0;
    617 
    618     virtual HRESULT STDMETHODCALLTYPE GetCurMoniker(
    619         IMoniker **ppimkName) = 0;
    620 
    621 };
    622 #ifdef __CRT_UUID_DECL
    623 __CRT_UUID_DECL(IPersistMoniker, 0x79eac9c9, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
    624 #endif
    625 #else
    626 typedef struct IPersistMonikerVtbl {
    627     BEGIN_INTERFACE
    628 
    629     /*** IUnknown methods ***/
    630     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    631         IPersistMoniker* This,
    632         REFIID riid,
    633         void **ppvObject);
    634 
    635     ULONG (STDMETHODCALLTYPE *AddRef)(
    636         IPersistMoniker* This);
    637 
    638     ULONG (STDMETHODCALLTYPE *Release)(
    639         IPersistMoniker* This);
    640 
    641     /*** IPersistMoniker methods ***/
    642     HRESULT (STDMETHODCALLTYPE *GetClassID)(
    643         IPersistMoniker* This,
    644         CLSID *pClassID);
    645 
    646     HRESULT (STDMETHODCALLTYPE *IsDirty)(
    647         IPersistMoniker* This);
    648 
    649     HRESULT (STDMETHODCALLTYPE *Load)(
    650         IPersistMoniker* This,
    651         WINBOOL fFullyAvailable,
    652         IMoniker *pimkName,
    653         LPBC pibc,
    654         DWORD grfMode);
    655 
    656     HRESULT (STDMETHODCALLTYPE *Save)(
    657         IPersistMoniker* This,
    658         IMoniker *pimkName,
    659         LPBC pbc,
    660         WINBOOL fRemember);
    661 
    662     HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
    663         IPersistMoniker* This,
    664         IMoniker *pimkName,
    665         LPBC pibc);
    666 
    667     HRESULT (STDMETHODCALLTYPE *GetCurMoniker)(
    668         IPersistMoniker* This,
    669         IMoniker **ppimkName);
    670 
    671     END_INTERFACE
    672 } IPersistMonikerVtbl;
    673 interface IPersistMoniker {
    674     CONST_VTBL IPersistMonikerVtbl* lpVtbl;
    675 };
    676 
    677 #ifdef COBJMACROS
    678 #ifndef WIDL_C_INLINE_WRAPPERS
    679 /*** IUnknown methods ***/
    680 #define IPersistMoniker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    681 #define IPersistMoniker_AddRef(This) (This)->lpVtbl->AddRef(This)
    682 #define IPersistMoniker_Release(This) (This)->lpVtbl->Release(This)
    683 /*** IPersistMoniker methods ***/
    684 #define IPersistMoniker_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
    685 #define IPersistMoniker_IsDirty(This) (This)->lpVtbl->IsDirty(This)
    686 #define IPersistMoniker_Load(This,fFullyAvailable,pimkName,pibc,grfMode) (This)->lpVtbl->Load(This,fFullyAvailable,pimkName,pibc,grfMode)
    687 #define IPersistMoniker_Save(This,pimkName,pbc,fRemember) (This)->lpVtbl->Save(This,pimkName,pbc,fRemember)
    688 #define IPersistMoniker_SaveCompleted(This,pimkName,pibc) (This)->lpVtbl->SaveCompleted(This,pimkName,pibc)
    689 #define IPersistMoniker_GetCurMoniker(This,ppimkName) (This)->lpVtbl->GetCurMoniker(This,ppimkName)
    690 #else
    691 /*** IUnknown methods ***/
    692 static FORCEINLINE HRESULT IPersistMoniker_QueryInterface(IPersistMoniker* This,REFIID riid,void **ppvObject) {
    693     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    694 }
    695 static FORCEINLINE ULONG IPersistMoniker_AddRef(IPersistMoniker* This) {
    696     return This->lpVtbl->AddRef(This);
    697 }
    698 static FORCEINLINE ULONG IPersistMoniker_Release(IPersistMoniker* This) {
    699     return This->lpVtbl->Release(This);
    700 }
    701 /*** IPersistMoniker methods ***/
    702 static FORCEINLINE HRESULT IPersistMoniker_GetClassID(IPersistMoniker* This,CLSID *pClassID) {
    703     return This->lpVtbl->GetClassID(This,pClassID);
    704 }
    705 static FORCEINLINE HRESULT IPersistMoniker_IsDirty(IPersistMoniker* This) {
    706     return This->lpVtbl->IsDirty(This);
    707 }
    708 static FORCEINLINE HRESULT IPersistMoniker_Load(IPersistMoniker* This,WINBOOL fFullyAvailable,IMoniker *pimkName,LPBC pibc,DWORD grfMode) {
    709     return This->lpVtbl->Load(This,fFullyAvailable,pimkName,pibc,grfMode);
    710 }
    711 static FORCEINLINE HRESULT IPersistMoniker_Save(IPersistMoniker* This,IMoniker *pimkName,LPBC pbc,WINBOOL fRemember) {
    712     return This->lpVtbl->Save(This,pimkName,pbc,fRemember);
    713 }
    714 static FORCEINLINE HRESULT IPersistMoniker_SaveCompleted(IPersistMoniker* This,IMoniker *pimkName,LPBC pibc) {
    715     return This->lpVtbl->SaveCompleted(This,pimkName,pibc);
    716 }
    717 static FORCEINLINE HRESULT IPersistMoniker_GetCurMoniker(IPersistMoniker* This,IMoniker **ppimkName) {
    718     return This->lpVtbl->GetCurMoniker(This,ppimkName);
    719 }
    720 #endif
    721 #endif
    722 
    723 #endif
    724 
    725 HRESULT STDMETHODCALLTYPE IPersistMoniker_GetClassID_Proxy(
    726     IPersistMoniker* This,
    727     CLSID *pClassID);
    728 void __RPC_STUB IPersistMoniker_GetClassID_Stub(
    729     IRpcStubBuffer* This,
    730     IRpcChannelBuffer* pRpcChannelBuffer,
    731     PRPC_MESSAGE pRpcMessage,
    732     DWORD* pdwStubPhase);
    733 HRESULT STDMETHODCALLTYPE IPersistMoniker_IsDirty_Proxy(
    734     IPersistMoniker* This);
    735 void __RPC_STUB IPersistMoniker_IsDirty_Stub(
    736     IRpcStubBuffer* This,
    737     IRpcChannelBuffer* pRpcChannelBuffer,
    738     PRPC_MESSAGE pRpcMessage,
    739     DWORD* pdwStubPhase);
    740 HRESULT STDMETHODCALLTYPE IPersistMoniker_Load_Proxy(
    741     IPersistMoniker* This,
    742     WINBOOL fFullyAvailable,
    743     IMoniker *pimkName,
    744     LPBC pibc,
    745     DWORD grfMode);
    746 void __RPC_STUB IPersistMoniker_Load_Stub(
    747     IRpcStubBuffer* This,
    748     IRpcChannelBuffer* pRpcChannelBuffer,
    749     PRPC_MESSAGE pRpcMessage,
    750     DWORD* pdwStubPhase);
    751 HRESULT STDMETHODCALLTYPE IPersistMoniker_Save_Proxy(
    752     IPersistMoniker* This,
    753     IMoniker *pimkName,
    754     LPBC pbc,
    755     WINBOOL fRemember);
    756 void __RPC_STUB IPersistMoniker_Save_Stub(
    757     IRpcStubBuffer* This,
    758     IRpcChannelBuffer* pRpcChannelBuffer,
    759     PRPC_MESSAGE pRpcMessage,
    760     DWORD* pdwStubPhase);
    761 HRESULT STDMETHODCALLTYPE IPersistMoniker_SaveCompleted_Proxy(
    762     IPersistMoniker* This,
    763     IMoniker *pimkName,
    764     LPBC pibc);
    765 void __RPC_STUB IPersistMoniker_SaveCompleted_Stub(
    766     IRpcStubBuffer* This,
    767     IRpcChannelBuffer* pRpcChannelBuffer,
    768     PRPC_MESSAGE pRpcMessage,
    769     DWORD* pdwStubPhase);
    770 HRESULT STDMETHODCALLTYPE IPersistMoniker_GetCurMoniker_Proxy(
    771     IPersistMoniker* This,
    772     IMoniker **ppimkName);
    773 void __RPC_STUB IPersistMoniker_GetCurMoniker_Stub(
    774     IRpcStubBuffer* This,
    775     IRpcChannelBuffer* pRpcChannelBuffer,
    776     PRPC_MESSAGE pRpcMessage,
    777     DWORD* pdwStubPhase);
    778 
    779 #endif  /* __IPersistMoniker_INTERFACE_DEFINED__ */
    780 
    781 #endif
    782 
    783 #ifndef _LPMONIKERPROP_DEFINED
    784 #define _LPMONIKERPROP_DEFINED
    785 /*****************************************************************************
    786  * IMonikerProp interface
    787  */
    788 #ifndef __IMonikerProp_INTERFACE_DEFINED__
    789 #define __IMonikerProp_INTERFACE_DEFINED__
    790 
    791 typedef IMonikerProp *LPMONIKERPROP;
    792 
    793 typedef enum __WIDL_urlmon_generated_name_00000002 {
    794     MIMETYPEPROP = 0x0,
    795     USE_SRC_URL = 0x1,
    796     CLASSIDPROP = 0x2,
    797     TRUSTEDDOWNLOADPROP = 0x3,
    798     POPUPLEVELPROP = 0x4
    799 } MONIKERPROPERTY;
    800 
    801 DEFINE_GUID(IID_IMonikerProp, 0xa5ca5f7f, 0x1847, 0x4d87, 0x9c,0x5b, 0x91,0x85,0x09,0xf7,0x51,0x1d);
    802 #if defined(__cplusplus) && !defined(CINTERFACE)
    803 MIDL_INTERFACE("a5ca5f7f-1847-4d87-9c5b-918509f7511d")
    804 IMonikerProp : public IUnknown
    805 {
    806     virtual HRESULT STDMETHODCALLTYPE PutProperty(
    807         MONIKERPROPERTY mkp,
    808         LPCWSTR val) = 0;
    809 
    810 };
    811 #ifdef __CRT_UUID_DECL
    812 __CRT_UUID_DECL(IMonikerProp, 0xa5ca5f7f, 0x1847, 0x4d87, 0x9c,0x5b, 0x91,0x85,0x09,0xf7,0x51,0x1d)
    813 #endif
    814 #else
    815 typedef struct IMonikerPropVtbl {
    816     BEGIN_INTERFACE
    817 
    818     /*** IUnknown methods ***/
    819     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    820         IMonikerProp* This,
    821         REFIID riid,
    822         void **ppvObject);
    823 
    824     ULONG (STDMETHODCALLTYPE *AddRef)(
    825         IMonikerProp* This);
    826 
    827     ULONG (STDMETHODCALLTYPE *Release)(
    828         IMonikerProp* This);
    829 
    830     /*** IMonikerProp methods ***/
    831     HRESULT (STDMETHODCALLTYPE *PutProperty)(
    832         IMonikerProp* This,
    833         MONIKERPROPERTY mkp,
    834         LPCWSTR val);
    835 
    836     END_INTERFACE
    837 } IMonikerPropVtbl;
    838 interface IMonikerProp {
    839     CONST_VTBL IMonikerPropVtbl* lpVtbl;
    840 };
    841 
    842 #ifdef COBJMACROS
    843 #ifndef WIDL_C_INLINE_WRAPPERS
    844 /*** IUnknown methods ***/
    845 #define IMonikerProp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    846 #define IMonikerProp_AddRef(This) (This)->lpVtbl->AddRef(This)
    847 #define IMonikerProp_Release(This) (This)->lpVtbl->Release(This)
    848 /*** IMonikerProp methods ***/
    849 #define IMonikerProp_PutProperty(This,mkp,val) (This)->lpVtbl->PutProperty(This,mkp,val)
    850 #else
    851 /*** IUnknown methods ***/
    852 static FORCEINLINE HRESULT IMonikerProp_QueryInterface(IMonikerProp* This,REFIID riid,void **ppvObject) {
    853     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    854 }
    855 static FORCEINLINE ULONG IMonikerProp_AddRef(IMonikerProp* This) {
    856     return This->lpVtbl->AddRef(This);
    857 }
    858 static FORCEINLINE ULONG IMonikerProp_Release(IMonikerProp* This) {
    859     return This->lpVtbl->Release(This);
    860 }
    861 /*** IMonikerProp methods ***/
    862 static FORCEINLINE HRESULT IMonikerProp_PutProperty(IMonikerProp* This,MONIKERPROPERTY mkp,LPCWSTR val) {
    863     return This->lpVtbl->PutProperty(This,mkp,val);
    864 }
    865 #endif
    866 #endif
    867 
    868 #endif
    869 
    870 HRESULT STDMETHODCALLTYPE IMonikerProp_PutProperty_Proxy(
    871     IMonikerProp* This,
    872     MONIKERPROPERTY mkp,
    873     LPCWSTR val);
    874 void __RPC_STUB IMonikerProp_PutProperty_Stub(
    875     IRpcStubBuffer* This,
    876     IRpcChannelBuffer* pRpcChannelBuffer,
    877     PRPC_MESSAGE pRpcMessage,
    878     DWORD* pdwStubPhase);
    879 
    880 #endif  /* __IMonikerProp_INTERFACE_DEFINED__ */
    881 
    882 #endif
    883 
    884 #ifndef _LPBINDPROTOCOL_DEFINED
    885 #define _LPBINDPROTOCOL_DEFINED
    886 
    887 /*****************************************************************************
    888  * IBindProtocol interface
    889  */
    890 #ifndef __IBindProtocol_INTERFACE_DEFINED__
    891 #define __IBindProtocol_INTERFACE_DEFINED__
    892 
    893 typedef IBindProtocol *LPBINDPROTOCOL;
    894 
    895 DEFINE_GUID(IID_IBindProtocol, 0x79eac9cd, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
    896 #if defined(__cplusplus) && !defined(CINTERFACE)
    897 MIDL_INTERFACE("79eac9cd-baf9-11ce-8c82-00aa004ba90b")
    898 IBindProtocol : public IUnknown
    899 {
    900     virtual HRESULT STDMETHODCALLTYPE CreateBinding(
    901         LPCWSTR szUrl,
    902         IBindCtx *pbc,
    903         IBinding **ppb) = 0;
    904 
    905 };
    906 #ifdef __CRT_UUID_DECL
    907 __CRT_UUID_DECL(IBindProtocol, 0x79eac9cd, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
    908 #endif
    909 #else
    910 typedef struct IBindProtocolVtbl {
    911     BEGIN_INTERFACE
    912 
    913     /*** IUnknown methods ***/
    914     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    915         IBindProtocol* This,
    916         REFIID riid,
    917         void **ppvObject);
    918 
    919     ULONG (STDMETHODCALLTYPE *AddRef)(
    920         IBindProtocol* This);
    921 
    922     ULONG (STDMETHODCALLTYPE *Release)(
    923         IBindProtocol* This);
    924 
    925     /*** IBindProtocol methods ***/
    926     HRESULT (STDMETHODCALLTYPE *CreateBinding)(
    927         IBindProtocol* This,
    928         LPCWSTR szUrl,
    929         IBindCtx *pbc,
    930         IBinding **ppb);
    931 
    932     END_INTERFACE
    933 } IBindProtocolVtbl;
    934 interface IBindProtocol {
    935     CONST_VTBL IBindProtocolVtbl* lpVtbl;
    936 };
    937 
    938 #ifdef COBJMACROS
    939 #ifndef WIDL_C_INLINE_WRAPPERS
    940 /*** IUnknown methods ***/
    941 #define IBindProtocol_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    942 #define IBindProtocol_AddRef(This) (This)->lpVtbl->AddRef(This)
    943 #define IBindProtocol_Release(This) (This)->lpVtbl->Release(This)
    944 /*** IBindProtocol methods ***/
    945 #define IBindProtocol_CreateBinding(This,szUrl,pbc,ppb) (This)->lpVtbl->CreateBinding(This,szUrl,pbc,ppb)
    946 #else
    947 /*** IUnknown methods ***/
    948 static FORCEINLINE HRESULT IBindProtocol_QueryInterface(IBindProtocol* This,REFIID riid,void **ppvObject) {
    949     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    950 }
    951 static FORCEINLINE ULONG IBindProtocol_AddRef(IBindProtocol* This) {
    952     return This->lpVtbl->AddRef(This);
    953 }
    954 static FORCEINLINE ULONG IBindProtocol_Release(IBindProtocol* This) {
    955     return This->lpVtbl->Release(This);
    956 }
    957 /*** IBindProtocol methods ***/
    958 static FORCEINLINE HRESULT IBindProtocol_CreateBinding(IBindProtocol* This,LPCWSTR szUrl,IBindCtx *pbc,IBinding **ppb) {
    959     return This->lpVtbl->CreateBinding(This,szUrl,pbc,ppb);
    960 }
    961 #endif
    962 #endif
    963 
    964 #endif
    965 
    966 HRESULT STDMETHODCALLTYPE IBindProtocol_CreateBinding_Proxy(
    967     IBindProtocol* This,
    968     LPCWSTR szUrl,
    969     IBindCtx *pbc,
    970     IBinding **ppb);
    971 void __RPC_STUB IBindProtocol_CreateBinding_Stub(
    972     IRpcStubBuffer* This,
    973     IRpcChannelBuffer* pRpcChannelBuffer,
    974     PRPC_MESSAGE pRpcMessage,
    975     DWORD* pdwStubPhase);
    976 
    977 #endif  /* __IBindProtocol_INTERFACE_DEFINED__ */
    978 
    979 #endif
    980 
    981 #ifndef _LPBINDING_DEFINED
    982 #define _LPBINDING_DEFINED
    983 
    984 /*****************************************************************************
    985  * IBinding interface
    986  */
    987 #ifndef __IBinding_INTERFACE_DEFINED__
    988 #define __IBinding_INTERFACE_DEFINED__
    989 
    990 typedef IBinding *LPBINDING;
    991 
    992 DEFINE_GUID(IID_IBinding, 0x79eac9c0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
    993 #if defined(__cplusplus) && !defined(CINTERFACE)
    994 MIDL_INTERFACE("79eac9c0-baf9-11ce-8c82-00aa004ba90b")
    995 IBinding : public IUnknown
    996 {
    997     virtual HRESULT STDMETHODCALLTYPE Abort(
    998         ) = 0;
    999 
   1000     virtual HRESULT STDMETHODCALLTYPE Suspend(
   1001         ) = 0;
   1002 
   1003     virtual HRESULT STDMETHODCALLTYPE Resume(
   1004         ) = 0;
   1005 
   1006     virtual HRESULT STDMETHODCALLTYPE SetPriority(
   1007         LONG nPriority) = 0;
   1008 
   1009     virtual HRESULT STDMETHODCALLTYPE GetPriority(
   1010         LONG *pnPriority) = 0;
   1011 
   1012     virtual HRESULT STDMETHODCALLTYPE GetBindResult(
   1013         CLSID *pclsidProtocol,
   1014         DWORD *pdwResult,
   1015         LPOLESTR *pszResult,
   1016         DWORD *pdwReserved) = 0;
   1017 
   1018 };
   1019 #ifdef __CRT_UUID_DECL
   1020 __CRT_UUID_DECL(IBinding, 0x79eac9c0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   1021 #endif
   1022 #else
   1023 typedef struct IBindingVtbl {
   1024     BEGIN_INTERFACE
   1025 
   1026     /*** IUnknown methods ***/
   1027     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1028         IBinding* This,
   1029         REFIID riid,
   1030         void **ppvObject);
   1031 
   1032     ULONG (STDMETHODCALLTYPE *AddRef)(
   1033         IBinding* This);
   1034 
   1035     ULONG (STDMETHODCALLTYPE *Release)(
   1036         IBinding* This);
   1037 
   1038     /*** IBinding methods ***/
   1039     HRESULT (STDMETHODCALLTYPE *Abort)(
   1040         IBinding* This);
   1041 
   1042     HRESULT (STDMETHODCALLTYPE *Suspend)(
   1043         IBinding* This);
   1044 
   1045     HRESULT (STDMETHODCALLTYPE *Resume)(
   1046         IBinding* This);
   1047 
   1048     HRESULT (STDMETHODCALLTYPE *SetPriority)(
   1049         IBinding* This,
   1050         LONG nPriority);
   1051 
   1052     HRESULT (STDMETHODCALLTYPE *GetPriority)(
   1053         IBinding* This,
   1054         LONG *pnPriority);
   1055 
   1056     HRESULT (STDMETHODCALLTYPE *GetBindResult)(
   1057         IBinding* This,
   1058         CLSID *pclsidProtocol,
   1059         DWORD *pdwResult,
   1060         LPOLESTR *pszResult,
   1061         DWORD *pdwReserved);
   1062 
   1063     END_INTERFACE
   1064 } IBindingVtbl;
   1065 interface IBinding {
   1066     CONST_VTBL IBindingVtbl* lpVtbl;
   1067 };
   1068 
   1069 #ifdef COBJMACROS
   1070 #ifndef WIDL_C_INLINE_WRAPPERS
   1071 /*** IUnknown methods ***/
   1072 #define IBinding_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1073 #define IBinding_AddRef(This) (This)->lpVtbl->AddRef(This)
   1074 #define IBinding_Release(This) (This)->lpVtbl->Release(This)
   1075 /*** IBinding methods ***/
   1076 #define IBinding_Abort(This) (This)->lpVtbl->Abort(This)
   1077 #define IBinding_Suspend(This) (This)->lpVtbl->Suspend(This)
   1078 #define IBinding_Resume(This) (This)->lpVtbl->Resume(This)
   1079 #define IBinding_SetPriority(This,nPriority) (This)->lpVtbl->SetPriority(This,nPriority)
   1080 #define IBinding_GetPriority(This,pnPriority) (This)->lpVtbl->GetPriority(This,pnPriority)
   1081 #define IBinding_GetBindResult(This,pclsidProtocol,pdwResult,pszResult,pdwReserved) (This)->lpVtbl->GetBindResult(This,pclsidProtocol,pdwResult,pszResult,pdwReserved)
   1082 #else
   1083 /*** IUnknown methods ***/
   1084 static FORCEINLINE HRESULT IBinding_QueryInterface(IBinding* This,REFIID riid,void **ppvObject) {
   1085     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1086 }
   1087 static FORCEINLINE ULONG IBinding_AddRef(IBinding* This) {
   1088     return This->lpVtbl->AddRef(This);
   1089 }
   1090 static FORCEINLINE ULONG IBinding_Release(IBinding* This) {
   1091     return This->lpVtbl->Release(This);
   1092 }
   1093 /*** IBinding methods ***/
   1094 static FORCEINLINE HRESULT IBinding_Abort(IBinding* This) {
   1095     return This->lpVtbl->Abort(This);
   1096 }
   1097 static FORCEINLINE HRESULT IBinding_Suspend(IBinding* This) {
   1098     return This->lpVtbl->Suspend(This);
   1099 }
   1100 static FORCEINLINE HRESULT IBinding_Resume(IBinding* This) {
   1101     return This->lpVtbl->Resume(This);
   1102 }
   1103 static FORCEINLINE HRESULT IBinding_SetPriority(IBinding* This,LONG nPriority) {
   1104     return This->lpVtbl->SetPriority(This,nPriority);
   1105 }
   1106 static FORCEINLINE HRESULT IBinding_GetPriority(IBinding* This,LONG *pnPriority) {
   1107     return This->lpVtbl->GetPriority(This,pnPriority);
   1108 }
   1109 static FORCEINLINE HRESULT IBinding_GetBindResult(IBinding* This,CLSID *pclsidProtocol,DWORD *pdwResult,LPOLESTR *pszResult,DWORD *pdwReserved) {
   1110     return This->lpVtbl->GetBindResult(This,pclsidProtocol,pdwResult,pszResult,pdwReserved);
   1111 }
   1112 #endif
   1113 #endif
   1114 
   1115 #endif
   1116 
   1117 HRESULT STDMETHODCALLTYPE IBinding_Abort_Proxy(
   1118     IBinding* This);
   1119 void __RPC_STUB IBinding_Abort_Stub(
   1120     IRpcStubBuffer* This,
   1121     IRpcChannelBuffer* pRpcChannelBuffer,
   1122     PRPC_MESSAGE pRpcMessage,
   1123     DWORD* pdwStubPhase);
   1124 HRESULT STDMETHODCALLTYPE IBinding_Suspend_Proxy(
   1125     IBinding* This);
   1126 void __RPC_STUB IBinding_Suspend_Stub(
   1127     IRpcStubBuffer* This,
   1128     IRpcChannelBuffer* pRpcChannelBuffer,
   1129     PRPC_MESSAGE pRpcMessage,
   1130     DWORD* pdwStubPhase);
   1131 HRESULT STDMETHODCALLTYPE IBinding_Resume_Proxy(
   1132     IBinding* This);
   1133 void __RPC_STUB IBinding_Resume_Stub(
   1134     IRpcStubBuffer* This,
   1135     IRpcChannelBuffer* pRpcChannelBuffer,
   1136     PRPC_MESSAGE pRpcMessage,
   1137     DWORD* pdwStubPhase);
   1138 HRESULT STDMETHODCALLTYPE IBinding_SetPriority_Proxy(
   1139     IBinding* This,
   1140     LONG nPriority);
   1141 void __RPC_STUB IBinding_SetPriority_Stub(
   1142     IRpcStubBuffer* This,
   1143     IRpcChannelBuffer* pRpcChannelBuffer,
   1144     PRPC_MESSAGE pRpcMessage,
   1145     DWORD* pdwStubPhase);
   1146 HRESULT STDMETHODCALLTYPE IBinding_GetPriority_Proxy(
   1147     IBinding* This,
   1148     LONG *pnPriority);
   1149 void __RPC_STUB IBinding_GetPriority_Stub(
   1150     IRpcStubBuffer* This,
   1151     IRpcChannelBuffer* pRpcChannelBuffer,
   1152     PRPC_MESSAGE pRpcMessage,
   1153     DWORD* pdwStubPhase);
   1154 HRESULT STDMETHODCALLTYPE IBinding_RemoteGetBindResult_Proxy(
   1155     IBinding* This,
   1156     CLSID *pclsidProtocol,
   1157     DWORD *pdwResult,
   1158     LPOLESTR *pszResult,
   1159     DWORD dwReserved);
   1160 void __RPC_STUB IBinding_RemoteGetBindResult_Stub(
   1161     IRpcStubBuffer* This,
   1162     IRpcChannelBuffer* pRpcChannelBuffer,
   1163     PRPC_MESSAGE pRpcMessage,
   1164     DWORD* pdwStubPhase);
   1165 HRESULT CALLBACK IBinding_GetBindResult_Proxy(
   1166     IBinding* This,
   1167     CLSID *pclsidProtocol,
   1168     DWORD *pdwResult,
   1169     LPOLESTR *pszResult,
   1170     DWORD *pdwReserved);
   1171 HRESULT __RPC_STUB IBinding_GetBindResult_Stub(
   1172     IBinding* This,
   1173     CLSID *pclsidProtocol,
   1174     DWORD *pdwResult,
   1175     LPOLESTR *pszResult,
   1176     DWORD dwReserved);
   1177 
   1178 #endif  /* __IBinding_INTERFACE_DEFINED__ */
   1179 
   1180 #endif
   1181 #endif
   1182 
   1183 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   1184 #ifndef _LPBINDSTATUSCALLBACK_DEFINED
   1185 #define _LPBINDSTATUSCALLBACK_DEFINED
   1186 
   1187 /*****************************************************************************
   1188  * IBindStatusCallback interface
   1189  */
   1190 #ifndef __IBindStatusCallback_INTERFACE_DEFINED__
   1191 #define __IBindStatusCallback_INTERFACE_DEFINED__
   1192 
   1193 typedef IBindStatusCallback *LPBINDSTATUSCALLBACK;
   1194 
   1195 typedef enum __WIDL_urlmon_generated_name_00000003 {
   1196     BINDVERB_GET = 0x0,
   1197     BINDVERB_POST = 0x1,
   1198     BINDVERB_PUT = 0x2,
   1199     BINDVERB_CUSTOM = 0x3,
   1200     BINDVERB_RESERVED1 = 0x4
   1201 } BINDVERB;
   1202 
   1203 typedef enum __WIDL_urlmon_generated_name_00000004 {
   1204     BINDINFOF_URLENCODESTGMEDDATA = 0x1,
   1205     BINDINFOF_URLENCODEDEXTRAINFO = 0x2
   1206 } BINDINFOF;
   1207 
   1208 typedef enum __WIDL_urlmon_generated_name_00000005 {
   1209     BINDF_ASYNCHRONOUS = 0x1,
   1210     BINDF_ASYNCSTORAGE = 0x2,
   1211     BINDF_NOPROGRESSIVERENDERING = 0x4,
   1212     BINDF_OFFLINEOPERATION = 0x8,
   1213     BINDF_GETNEWESTVERSION = 0x10,
   1214     BINDF_NOWRITECACHE = 0x20,
   1215     BINDF_NEEDFILE = 0x40,
   1216     BINDF_PULLDATA = 0x80,
   1217     BINDF_IGNORESECURITYPROBLEM = 0x100,
   1218     BINDF_RESYNCHRONIZE = 0x200,
   1219     BINDF_HYPERLINK = 0x400,
   1220     BINDF_NO_UI = 0x800,
   1221     BINDF_SILENTOPERATION = 0x1000,
   1222     BINDF_PRAGMA_NO_CACHE = 0x2000,
   1223     BINDF_GETCLASSOBJECT = 0x4000,
   1224     BINDF_RESERVED_1 = 0x8000,
   1225     BINDF_FREE_THREADED = 0x10000,
   1226     BINDF_DIRECT_READ = 0x20000,
   1227     BINDF_FORMS_SUBMIT = 0x40000,
   1228     BINDF_GETFROMCACHE_IF_NET_FAIL = 0x80000,
   1229     BINDF_FROMURLMON = 0x100000,
   1230     BINDF_FWD_BACK = 0x200000,
   1231     BINDF_PREFERDEFAULTHANDLER = 0x400000,
   1232     BINDF_ENFORCERESTRICTED = 0x800000,
   1233     BINDF_RESERVED_2 = 0x80000000,
   1234     BINDF_RESERVED_3 = 0x1000000,
   1235     BINDF_RESERVED_4 = 0x2000000,
   1236     BINDF_RESERVED_5 = 0x4000000,
   1237     BINDF_RESERVED_6 = 0x8000000,
   1238     BINDF_RESERVED_7 = 0x40000000,
   1239     BINDF_RESERVED_8 = 0x20000000
   1240 } BINDF;
   1241 
   1242 typedef enum __WIDL_urlmon_generated_name_00000006 {
   1243     URL_ENCODING_NONE = 0x0,
   1244     URL_ENCODING_ENABLE_UTF8 = 0x10000000,
   1245     URL_ENCODING_DISABLE_UTF8 = 0x20000000
   1246 } URL_ENCODING;
   1247 
   1248 typedef struct _tagBINDINFO {
   1249     ULONG cbSize;
   1250     LPWSTR szExtraInfo;
   1251     STGMEDIUM stgmedData;
   1252     DWORD grfBindInfoF;
   1253     DWORD dwBindVerb;
   1254     LPWSTR szCustomVerb;
   1255     DWORD cbstgmedData;
   1256     DWORD dwOptions;
   1257     DWORD dwOptionsFlags;
   1258     DWORD dwCodePage;
   1259     SECURITY_ATTRIBUTES securityAttributes;
   1260     IID iid;
   1261     IUnknown *pUnk;
   1262     DWORD dwReserved;
   1263 } BINDINFO;
   1264 
   1265 typedef struct _REMSECURITY_ATTRIBUTES {
   1266     DWORD nLength;
   1267     DWORD lpSecurityDescriptor;
   1268     WINBOOL bInheritHandle;
   1269 } REMSECURITY_ATTRIBUTES;
   1270 typedef struct _REMSECURITY_ATTRIBUTES *PREMSECURITY_ATTRIBUTES;
   1271 typedef struct _REMSECURITY_ATTRIBUTES *LPREMSECURITY_ATTRIBUTES;
   1272 
   1273 typedef struct _tagRemBINDINFO {
   1274     ULONG cbSize;
   1275     LPWSTR szExtraInfo;
   1276     DWORD grfBindInfoF;
   1277     DWORD dwBindVerb;
   1278     LPWSTR szCustomVerb;
   1279     DWORD cbstgmedData;
   1280     DWORD dwOptions;
   1281     DWORD dwOptionsFlags;
   1282     DWORD dwCodePage;
   1283     REMSECURITY_ATTRIBUTES securityAttributes;
   1284     IID iid;
   1285     IUnknown *pUnk;
   1286     DWORD dwReserved;
   1287 } RemBINDINFO;
   1288 
   1289 typedef struct tagRemFORMATETC {
   1290     DWORD cfFormat;
   1291     DWORD ptd;
   1292     DWORD dwAspect;
   1293     LONG lindex;
   1294     DWORD tymed;
   1295 } RemFORMATETC;
   1296 typedef struct tagRemFORMATETC *LPREMFORMATETC;
   1297 
   1298 typedef enum __WIDL_urlmon_generated_name_00000007 {
   1299     BINDINFO_OPTIONS_WININETFLAG = 0x10000,
   1300     BINDINFO_OPTIONS_ENABLE_UTF8 = 0x20000,
   1301     BINDINFO_OPTIONS_DISABLE_UTF8 = 0x40000,
   1302     BINDINFO_OPTIONS_USE_IE_ENCODING = 0x80000,
   1303     BINDINFO_OPTIONS_BINDTOOBJECT = 0x100000,
   1304     BINDINFO_OPTIONS_SECURITYOPTOUT = 0x200000,
   1305     BINDINFO_OPTIONS_IGNOREMIMETEXTPLAIN = 0x400000,
   1306     BINDINFO_OPTIONS_USEBINDSTRINGCREDS = 0x800000,
   1307     BINDINFO_OPTIONS_IGNOREHTTPHTTPSREDIRECTS = 0x1000000,
   1308     BINDINFO_OPTIONS_IGNORE_SSLERRORS_ONCE = 0x2000000,
   1309     BINDINFO_WPC_DOWNLOADBLOCKED = 0x8000000,
   1310     BINDINFO_WPC_LOGGING_ENABLED = 0x10000000,
   1311     BINDINFO_OPTIONS_ALLOWCONNECTDATA = 0x20000000,
   1312     BINDINFO_OPTIONS_DISABLEAUTOREDIRECTS = 0x40000000,
   1313     BINDINFO_OPTIONS_SHDOCVW_NAVIGATE = (int)0x80000000
   1314 } BINDINFO_OPTIONS;
   1315 
   1316 typedef enum __WIDL_urlmon_generated_name_00000008 {
   1317     BSCF_FIRSTDATANOTIFICATION = 0x1,
   1318     BSCF_INTERMEDIATEDATANOTIFICATION = 0x2,
   1319     BSCF_LASTDATANOTIFICATION = 0x4,
   1320     BSCF_DATAFULLYAVAILABLE = 0x8,
   1321     BSCF_AVAILABLEDATASIZEUNKNOWN = 0x10,
   1322     BSCF_SKIPDRAINDATAFORFILEURLS = 0x20,
   1323     BSCF_64BITLENGTHDOWNLOAD = 0x40
   1324 } BSCF;
   1325 
   1326 typedef enum tagBINDSTATUS {
   1327     BINDSTATUS_FINDINGRESOURCE = 1,
   1328     BINDSTATUS_CONNECTING = 2,
   1329     BINDSTATUS_REDIRECTING = 3,
   1330     BINDSTATUS_BEGINDOWNLOADDATA = 4,
   1331     BINDSTATUS_DOWNLOADINGDATA = 5,
   1332     BINDSTATUS_ENDDOWNLOADDATA = 6,
   1333     BINDSTATUS_BEGINDOWNLOADCOMPONENTS = 7,
   1334     BINDSTATUS_INSTALLINGCOMPONENTS = 8,
   1335     BINDSTATUS_ENDDOWNLOADCOMPONENTS = 9,
   1336     BINDSTATUS_USINGCACHEDCOPY = 10,
   1337     BINDSTATUS_SENDINGREQUEST = 11,
   1338     BINDSTATUS_CLASSIDAVAILABLE = 12,
   1339     BINDSTATUS_MIMETYPEAVAILABLE = 13,
   1340     BINDSTATUS_CACHEFILENAMEAVAILABLE = 14,
   1341     BINDSTATUS_BEGINSYNCOPERATION = 15,
   1342     BINDSTATUS_ENDSYNCOPERATION = 16,
   1343     BINDSTATUS_BEGINUPLOADDATA = 17,
   1344     BINDSTATUS_UPLOADINGDATA = 18,
   1345     BINDSTATUS_ENDUPLOADDATA = 19,
   1346     BINDSTATUS_PROTOCOLCLASSID = 20,
   1347     BINDSTATUS_ENCODING = 21,
   1348     BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE = 22,
   1349     BINDSTATUS_CLASSINSTALLLOCATION = 23,
   1350     BINDSTATUS_DECODING = 24,
   1351     BINDSTATUS_LOADINGMIMEHANDLER = 25,
   1352     BINDSTATUS_CONTENTDISPOSITIONATTACH = 26,
   1353     BINDSTATUS_FILTERREPORTMIMETYPE = 27,
   1354     BINDSTATUS_CLSIDCANINSTANTIATE = 28,
   1355     BINDSTATUS_IUNKNOWNAVAILABLE = 29,
   1356     BINDSTATUS_DIRECTBIND = 30,
   1357     BINDSTATUS_RAWMIMETYPE = 31,
   1358     BINDSTATUS_PROXYDETECTING = 32,
   1359     BINDSTATUS_ACCEPTRANGES = 33,
   1360     BINDSTATUS_COOKIE_SENT = 34,
   1361     BINDSTATUS_COMPACT_POLICY_RECEIVED = 35,
   1362     BINDSTATUS_COOKIE_SUPPRESSED = 36,
   1363     BINDSTATUS_COOKIE_STATE_UNKNOWN = 37,
   1364     BINDSTATUS_COOKIE_STATE_ACCEPT = 38,
   1365     BINDSTATUS_COOKIE_STATE_REJECT = 39,
   1366     BINDSTATUS_COOKIE_STATE_PROMPT = 40,
   1367     BINDSTATUS_COOKIE_STATE_LEASH = 41,
   1368     BINDSTATUS_COOKIE_STATE_DOWNGRADE = 42,
   1369     BINDSTATUS_POLICY_HREF = 43,
   1370     BINDSTATUS_P3P_HEADER = 44,
   1371     BINDSTATUS_SESSION_COOKIE_RECEIVED = 45,
   1372     BINDSTATUS_PERSISTENT_COOKIE_RECEIVED = 46,
   1373     BINDSTATUS_SESSION_COOKIES_ALLOWED = 47,
   1374     BINDSTATUS_CACHECONTROL = 48,
   1375     BINDSTATUS_CONTENTDISPOSITIONFILENAME = 49,
   1376     BINDSTATUS_MIMETEXTPLAINMISMATCH = 50,
   1377     BINDSTATUS_PUBLISHERAVAILABLE = 51,
   1378     BINDSTATUS_DISPLAYNAMEAVAILABLE = 52,
   1379     BINDSTATUS_SSLUX_NAVBLOCKED = 53,
   1380     BINDSTATUS_SERVER_MIMETYPEAVAILABLE = 54,
   1381     BINDSTATUS_SNIFFED_CLASSIDAVAILABLE = 55,
   1382     BINDSTATUS_64BIT_PROGRESS = 56,
   1383     BINDSTATUS_LAST = BINDSTATUS_64BIT_PROGRESS,
   1384     BINDSTATUS_RESERVED_0 = 57,
   1385     BINDSTATUS_RESERVED_1 = 58,
   1386     BINDSTATUS_RESERVED_2 = 59,
   1387     BINDSTATUS_RESERVED_3 = 60,
   1388     BINDSTATUS_RESERVED_4 = 61,
   1389     BINDSTATUS_RESERVED_5 = 62,
   1390     BINDSTATUS_RESERVED_6 = 63,
   1391     BINDSTATUS_RESERVED_7 = 64,
   1392     BINDSTATUS_RESERVED_8 = 65,
   1393     BINDSTATUS_RESERVED_9 = 66,
   1394     BINDSTATUS_LAST_PRIVATE = BINDSTATUS_RESERVED_9
   1395 } BINDSTATUS;
   1396 
   1397 DEFINE_GUID(IID_IBindStatusCallback, 0x79eac9c1, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   1398 #if defined(__cplusplus) && !defined(CINTERFACE)
   1399 MIDL_INTERFACE("79eac9c1-baf9-11ce-8c82-00aa004ba90b")
   1400 IBindStatusCallback : public IUnknown
   1401 {
   1402     virtual HRESULT STDMETHODCALLTYPE OnStartBinding(
   1403         DWORD dwReserved,
   1404         IBinding *pib) = 0;
   1405 
   1406     virtual HRESULT STDMETHODCALLTYPE GetPriority(
   1407         LONG *pnPriority) = 0;
   1408 
   1409     virtual HRESULT STDMETHODCALLTYPE OnLowResource(
   1410         DWORD reserved) = 0;
   1411 
   1412     virtual HRESULT STDMETHODCALLTYPE OnProgress(
   1413         ULONG ulProgress,
   1414         ULONG ulProgressMax,
   1415         ULONG ulStatusCode,
   1416         LPCWSTR szStatusText) = 0;
   1417 
   1418     virtual HRESULT STDMETHODCALLTYPE OnStopBinding(
   1419         HRESULT hresult,
   1420         LPCWSTR szError) = 0;
   1421 
   1422     virtual HRESULT STDMETHODCALLTYPE GetBindInfo(
   1423         DWORD *grfBINDF,
   1424         BINDINFO *pbindinfo) = 0;
   1425 
   1426     virtual HRESULT STDMETHODCALLTYPE OnDataAvailable(
   1427         DWORD grfBSCF,
   1428         DWORD dwSize,
   1429         FORMATETC *pformatetc,
   1430         STGMEDIUM *pstgmed) = 0;
   1431 
   1432     virtual HRESULT STDMETHODCALLTYPE OnObjectAvailable(
   1433         REFIID riid,
   1434         IUnknown *punk) = 0;
   1435 
   1436 };
   1437 #ifdef __CRT_UUID_DECL
   1438 __CRT_UUID_DECL(IBindStatusCallback, 0x79eac9c1, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   1439 #endif
   1440 #else
   1441 typedef struct IBindStatusCallbackVtbl {
   1442     BEGIN_INTERFACE
   1443 
   1444     /*** IUnknown methods ***/
   1445     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1446         IBindStatusCallback* This,
   1447         REFIID riid,
   1448         void **ppvObject);
   1449 
   1450     ULONG (STDMETHODCALLTYPE *AddRef)(
   1451         IBindStatusCallback* This);
   1452 
   1453     ULONG (STDMETHODCALLTYPE *Release)(
   1454         IBindStatusCallback* This);
   1455 
   1456     /*** IBindStatusCallback methods ***/
   1457     HRESULT (STDMETHODCALLTYPE *OnStartBinding)(
   1458         IBindStatusCallback* This,
   1459         DWORD dwReserved,
   1460         IBinding *pib);
   1461 
   1462     HRESULT (STDMETHODCALLTYPE *GetPriority)(
   1463         IBindStatusCallback* This,
   1464         LONG *pnPriority);
   1465 
   1466     HRESULT (STDMETHODCALLTYPE *OnLowResource)(
   1467         IBindStatusCallback* This,
   1468         DWORD reserved);
   1469 
   1470     HRESULT (STDMETHODCALLTYPE *OnProgress)(
   1471         IBindStatusCallback* This,
   1472         ULONG ulProgress,
   1473         ULONG ulProgressMax,
   1474         ULONG ulStatusCode,
   1475         LPCWSTR szStatusText);
   1476 
   1477     HRESULT (STDMETHODCALLTYPE *OnStopBinding)(
   1478         IBindStatusCallback* This,
   1479         HRESULT hresult,
   1480         LPCWSTR szError);
   1481 
   1482     HRESULT (STDMETHODCALLTYPE *GetBindInfo)(
   1483         IBindStatusCallback* This,
   1484         DWORD *grfBINDF,
   1485         BINDINFO *pbindinfo);
   1486 
   1487     HRESULT (STDMETHODCALLTYPE *OnDataAvailable)(
   1488         IBindStatusCallback* This,
   1489         DWORD grfBSCF,
   1490         DWORD dwSize,
   1491         FORMATETC *pformatetc,
   1492         STGMEDIUM *pstgmed);
   1493 
   1494     HRESULT (STDMETHODCALLTYPE *OnObjectAvailable)(
   1495         IBindStatusCallback* This,
   1496         REFIID riid,
   1497         IUnknown *punk);
   1498 
   1499     END_INTERFACE
   1500 } IBindStatusCallbackVtbl;
   1501 interface IBindStatusCallback {
   1502     CONST_VTBL IBindStatusCallbackVtbl* lpVtbl;
   1503 };
   1504 
   1505 #ifdef COBJMACROS
   1506 #ifndef WIDL_C_INLINE_WRAPPERS
   1507 /*** IUnknown methods ***/
   1508 #define IBindStatusCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1509 #define IBindStatusCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
   1510 #define IBindStatusCallback_Release(This) (This)->lpVtbl->Release(This)
   1511 /*** IBindStatusCallback methods ***/
   1512 #define IBindStatusCallback_OnStartBinding(This,dwReserved,pib) (This)->lpVtbl->OnStartBinding(This,dwReserved,pib)
   1513 #define IBindStatusCallback_GetPriority(This,pnPriority) (This)->lpVtbl->GetPriority(This,pnPriority)
   1514 #define IBindStatusCallback_OnLowResource(This,reserved) (This)->lpVtbl->OnLowResource(This,reserved)
   1515 #define IBindStatusCallback_OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText) (This)->lpVtbl->OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText)
   1516 #define IBindStatusCallback_OnStopBinding(This,hresult,szError) (This)->lpVtbl->OnStopBinding(This,hresult,szError)
   1517 #define IBindStatusCallback_GetBindInfo(This,grfBINDF,pbindinfo) (This)->lpVtbl->GetBindInfo(This,grfBINDF,pbindinfo)
   1518 #define IBindStatusCallback_OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed) (This)->lpVtbl->OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed)
   1519 #define IBindStatusCallback_OnObjectAvailable(This,riid,punk) (This)->lpVtbl->OnObjectAvailable(This,riid,punk)
   1520 #else
   1521 /*** IUnknown methods ***/
   1522 static FORCEINLINE HRESULT IBindStatusCallback_QueryInterface(IBindStatusCallback* This,REFIID riid,void **ppvObject) {
   1523     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1524 }
   1525 static FORCEINLINE ULONG IBindStatusCallback_AddRef(IBindStatusCallback* This) {
   1526     return This->lpVtbl->AddRef(This);
   1527 }
   1528 static FORCEINLINE ULONG IBindStatusCallback_Release(IBindStatusCallback* This) {
   1529     return This->lpVtbl->Release(This);
   1530 }
   1531 /*** IBindStatusCallback methods ***/
   1532 static FORCEINLINE HRESULT IBindStatusCallback_OnStartBinding(IBindStatusCallback* This,DWORD dwReserved,IBinding *pib) {
   1533     return This->lpVtbl->OnStartBinding(This,dwReserved,pib);
   1534 }
   1535 static FORCEINLINE HRESULT IBindStatusCallback_GetPriority(IBindStatusCallback* This,LONG *pnPriority) {
   1536     return This->lpVtbl->GetPriority(This,pnPriority);
   1537 }
   1538 static FORCEINLINE HRESULT IBindStatusCallback_OnLowResource(IBindStatusCallback* This,DWORD reserved) {
   1539     return This->lpVtbl->OnLowResource(This,reserved);
   1540 }
   1541 static FORCEINLINE HRESULT IBindStatusCallback_OnProgress(IBindStatusCallback* This,ULONG ulProgress,ULONG ulProgressMax,ULONG ulStatusCode,LPCWSTR szStatusText) {
   1542     return This->lpVtbl->OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText);
   1543 }
   1544 static FORCEINLINE HRESULT IBindStatusCallback_OnStopBinding(IBindStatusCallback* This,HRESULT hresult,LPCWSTR szError) {
   1545     return This->lpVtbl->OnStopBinding(This,hresult,szError);
   1546 }
   1547 static FORCEINLINE HRESULT IBindStatusCallback_GetBindInfo(IBindStatusCallback* This,DWORD *grfBINDF,BINDINFO *pbindinfo) {
   1548     return This->lpVtbl->GetBindInfo(This,grfBINDF,pbindinfo);
   1549 }
   1550 static FORCEINLINE HRESULT IBindStatusCallback_OnDataAvailable(IBindStatusCallback* This,DWORD grfBSCF,DWORD dwSize,FORMATETC *pformatetc,STGMEDIUM *pstgmed) {
   1551     return This->lpVtbl->OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed);
   1552 }
   1553 static FORCEINLINE HRESULT IBindStatusCallback_OnObjectAvailable(IBindStatusCallback* This,REFIID riid,IUnknown *punk) {
   1554     return This->lpVtbl->OnObjectAvailable(This,riid,punk);
   1555 }
   1556 #endif
   1557 #endif
   1558 
   1559 #endif
   1560 
   1561 HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnStartBinding_Proxy(
   1562     IBindStatusCallback* This,
   1563     DWORD dwReserved,
   1564     IBinding *pib);
   1565 void __RPC_STUB IBindStatusCallback_OnStartBinding_Stub(
   1566     IRpcStubBuffer* This,
   1567     IRpcChannelBuffer* pRpcChannelBuffer,
   1568     PRPC_MESSAGE pRpcMessage,
   1569     DWORD* pdwStubPhase);
   1570 HRESULT STDMETHODCALLTYPE IBindStatusCallback_GetPriority_Proxy(
   1571     IBindStatusCallback* This,
   1572     LONG *pnPriority);
   1573 void __RPC_STUB IBindStatusCallback_GetPriority_Stub(
   1574     IRpcStubBuffer* This,
   1575     IRpcChannelBuffer* pRpcChannelBuffer,
   1576     PRPC_MESSAGE pRpcMessage,
   1577     DWORD* pdwStubPhase);
   1578 HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnLowResource_Proxy(
   1579     IBindStatusCallback* This,
   1580     DWORD reserved);
   1581 void __RPC_STUB IBindStatusCallback_OnLowResource_Stub(
   1582     IRpcStubBuffer* This,
   1583     IRpcChannelBuffer* pRpcChannelBuffer,
   1584     PRPC_MESSAGE pRpcMessage,
   1585     DWORD* pdwStubPhase);
   1586 HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnProgress_Proxy(
   1587     IBindStatusCallback* This,
   1588     ULONG ulProgress,
   1589     ULONG ulProgressMax,
   1590     ULONG ulStatusCode,
   1591     LPCWSTR szStatusText);
   1592 void __RPC_STUB IBindStatusCallback_OnProgress_Stub(
   1593     IRpcStubBuffer* This,
   1594     IRpcChannelBuffer* pRpcChannelBuffer,
   1595     PRPC_MESSAGE pRpcMessage,
   1596     DWORD* pdwStubPhase);
   1597 HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnStopBinding_Proxy(
   1598     IBindStatusCallback* This,
   1599     HRESULT hresult,
   1600     LPCWSTR szError);
   1601 void __RPC_STUB IBindStatusCallback_OnStopBinding_Stub(
   1602     IRpcStubBuffer* This,
   1603     IRpcChannelBuffer* pRpcChannelBuffer,
   1604     PRPC_MESSAGE pRpcMessage,
   1605     DWORD* pdwStubPhase);
   1606 HRESULT STDMETHODCALLTYPE IBindStatusCallback_RemoteGetBindInfo_Proxy(
   1607     IBindStatusCallback* This,
   1608     DWORD *grfBINDF,
   1609     RemBINDINFO *pbindinfo,
   1610     RemSTGMEDIUM *pstgmed);
   1611 void __RPC_STUB IBindStatusCallback_RemoteGetBindInfo_Stub(
   1612     IRpcStubBuffer* This,
   1613     IRpcChannelBuffer* pRpcChannelBuffer,
   1614     PRPC_MESSAGE pRpcMessage,
   1615     DWORD* pdwStubPhase);
   1616 HRESULT STDMETHODCALLTYPE IBindStatusCallback_RemoteOnDataAvailable_Proxy(
   1617     IBindStatusCallback* This,
   1618     DWORD grfBSCF,
   1619     DWORD dwSize,
   1620     RemFORMATETC *pformatetc,
   1621     RemSTGMEDIUM *pstgmed);
   1622 void __RPC_STUB IBindStatusCallback_RemoteOnDataAvailable_Stub(
   1623     IRpcStubBuffer* This,
   1624     IRpcChannelBuffer* pRpcChannelBuffer,
   1625     PRPC_MESSAGE pRpcMessage,
   1626     DWORD* pdwStubPhase);
   1627 HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnObjectAvailable_Proxy(
   1628     IBindStatusCallback* This,
   1629     REFIID riid,
   1630     IUnknown *punk);
   1631 void __RPC_STUB IBindStatusCallback_OnObjectAvailable_Stub(
   1632     IRpcStubBuffer* This,
   1633     IRpcChannelBuffer* pRpcChannelBuffer,
   1634     PRPC_MESSAGE pRpcMessage,
   1635     DWORD* pdwStubPhase);
   1636 HRESULT CALLBACK IBindStatusCallback_GetBindInfo_Proxy(
   1637     IBindStatusCallback* This,
   1638     DWORD *grfBINDF,
   1639     BINDINFO *pbindinfo);
   1640 HRESULT __RPC_STUB IBindStatusCallback_GetBindInfo_Stub(
   1641     IBindStatusCallback* This,
   1642     DWORD *grfBINDF,
   1643     RemBINDINFO *pbindinfo,
   1644     RemSTGMEDIUM *pstgmed);
   1645 HRESULT CALLBACK IBindStatusCallback_OnDataAvailable_Proxy(
   1646     IBindStatusCallback* This,
   1647     DWORD grfBSCF,
   1648     DWORD dwSize,
   1649     FORMATETC *pformatetc,
   1650     STGMEDIUM *pstgmed);
   1651 HRESULT __RPC_STUB IBindStatusCallback_OnDataAvailable_Stub(
   1652     IBindStatusCallback* This,
   1653     DWORD grfBSCF,
   1654     DWORD dwSize,
   1655     RemFORMATETC *pformatetc,
   1656     RemSTGMEDIUM *pstgmed);
   1657 
   1658 #endif  /* __IBindStatusCallback_INTERFACE_DEFINED__ */
   1659 
   1660 #endif
   1661 #endif
   1662 
   1663 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   1664 #ifndef _LPBINDSTATUSCALLBACKEX_DEFINED
   1665 #define _LPBINDSTATUSCALLBACKEX_DEFINED
   1666 
   1667 /*****************************************************************************
   1668  * IBindStatusCallbackEx interface
   1669  */
   1670 #ifndef __IBindStatusCallbackEx_INTERFACE_DEFINED__
   1671 #define __IBindStatusCallbackEx_INTERFACE_DEFINED__
   1672 
   1673 typedef IBindStatusCallbackEx *LPBINDSTATUSCALLBACKEX;
   1674 
   1675 typedef enum __WIDL_urlmon_generated_name_00000009 {
   1676     BINDF2_DISABLEBASICOVERHTTP = 0x1,
   1677     BINDF2_DISABLEAUTOCOOKIEHANDLING = 0x2,
   1678     BINDF2_READ_DATA_GREATER_THAN_4GB = 0x4,
   1679     BINDF2_DISABLE_HTTP_REDIRECT_XSECURITYID = 0x8,
   1680     BINDF2_SETDOWNLOADMODE = 0x20,
   1681     BINDF2_DISABLE_HTTP_REDIRECT_CACHING = 0x40,
   1682     BINDF2_KEEP_CALLBACK_MODULE_LOADED = 0x80,
   1683     BINDF2_ALLOW_PROXY_CRED_PROMPT = 0x100,
   1684     BINDF2_RESERVED_F = 0x20000,
   1685     BINDF2_RESERVED_E = 0x40000,
   1686     BINDF2_RESERVED_D = 0x80000,
   1687     BINDF2_RESERVED_C = 0x100000,
   1688     BINDF2_RESERVED_B = 0x200000,
   1689     BINDF2_RESERVED_A = 0x400000,
   1690     BINDF2_RESERVED_9 = 0x800000,
   1691     BINDF2_RESERVED_8 = 0x1000000,
   1692     BINDF2_RESERVED_7 = 0x2000000,
   1693     BINDF2_RESERVED_6 = 0x4000000,
   1694     BINDF2_RESERVED_5 = 0x8000000,
   1695     BINDF2_RESERVED_4 = 0x10000000,
   1696     BINDF2_RESERVED_3 = 0x20000000,
   1697     BINDF2_RESERVED_2 = 0x40000000,
   1698     BINDF2_RESERVED_1 = 0x80000000
   1699 } BINDF2;
   1700 
   1701 DEFINE_GUID(IID_IBindStatusCallbackEx, 0xaaa74ef9, 0x8ee7, 0x4659, 0x88,0xd9, 0xf8,0xc5,0x04,0xda,0x73,0xcc);
   1702 #if defined(__cplusplus) && !defined(CINTERFACE)
   1703 MIDL_INTERFACE("aaa74ef9-8ee7-4659-88d9-f8c504da73cc")
   1704 IBindStatusCallbackEx : public IBindStatusCallback
   1705 {
   1706     virtual HRESULT STDMETHODCALLTYPE GetBindInfoEx(
   1707         DWORD *grfBINDF,
   1708         BINDINFO *pbindinfo,
   1709         DWORD *grfBINDF2,
   1710         DWORD *pdwReserved) = 0;
   1711 
   1712 };
   1713 #ifdef __CRT_UUID_DECL
   1714 __CRT_UUID_DECL(IBindStatusCallbackEx, 0xaaa74ef9, 0x8ee7, 0x4659, 0x88,0xd9, 0xf8,0xc5,0x04,0xda,0x73,0xcc)
   1715 #endif
   1716 #else
   1717 typedef struct IBindStatusCallbackExVtbl {
   1718     BEGIN_INTERFACE
   1719 
   1720     /*** IUnknown methods ***/
   1721     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1722         IBindStatusCallbackEx* This,
   1723         REFIID riid,
   1724         void **ppvObject);
   1725 
   1726     ULONG (STDMETHODCALLTYPE *AddRef)(
   1727         IBindStatusCallbackEx* This);
   1728 
   1729     ULONG (STDMETHODCALLTYPE *Release)(
   1730         IBindStatusCallbackEx* This);
   1731 
   1732     /*** IBindStatusCallback methods ***/
   1733     HRESULT (STDMETHODCALLTYPE *OnStartBinding)(
   1734         IBindStatusCallbackEx* This,
   1735         DWORD dwReserved,
   1736         IBinding *pib);
   1737 
   1738     HRESULT (STDMETHODCALLTYPE *GetPriority)(
   1739         IBindStatusCallbackEx* This,
   1740         LONG *pnPriority);
   1741 
   1742     HRESULT (STDMETHODCALLTYPE *OnLowResource)(
   1743         IBindStatusCallbackEx* This,
   1744         DWORD reserved);
   1745 
   1746     HRESULT (STDMETHODCALLTYPE *OnProgress)(
   1747         IBindStatusCallbackEx* This,
   1748         ULONG ulProgress,
   1749         ULONG ulProgressMax,
   1750         ULONG ulStatusCode,
   1751         LPCWSTR szStatusText);
   1752 
   1753     HRESULT (STDMETHODCALLTYPE *OnStopBinding)(
   1754         IBindStatusCallbackEx* This,
   1755         HRESULT hresult,
   1756         LPCWSTR szError);
   1757 
   1758     HRESULT (STDMETHODCALLTYPE *GetBindInfo)(
   1759         IBindStatusCallbackEx* This,
   1760         DWORD *grfBINDF,
   1761         BINDINFO *pbindinfo);
   1762 
   1763     HRESULT (STDMETHODCALLTYPE *OnDataAvailable)(
   1764         IBindStatusCallbackEx* This,
   1765         DWORD grfBSCF,
   1766         DWORD dwSize,
   1767         FORMATETC *pformatetc,
   1768         STGMEDIUM *pstgmed);
   1769 
   1770     HRESULT (STDMETHODCALLTYPE *OnObjectAvailable)(
   1771         IBindStatusCallbackEx* This,
   1772         REFIID riid,
   1773         IUnknown *punk);
   1774 
   1775     /*** IBindStatusCallbackEx methods ***/
   1776     HRESULT (STDMETHODCALLTYPE *GetBindInfoEx)(
   1777         IBindStatusCallbackEx* This,
   1778         DWORD *grfBINDF,
   1779         BINDINFO *pbindinfo,
   1780         DWORD *grfBINDF2,
   1781         DWORD *pdwReserved);
   1782 
   1783     END_INTERFACE
   1784 } IBindStatusCallbackExVtbl;
   1785 interface IBindStatusCallbackEx {
   1786     CONST_VTBL IBindStatusCallbackExVtbl* lpVtbl;
   1787 };
   1788 
   1789 #ifdef COBJMACROS
   1790 #ifndef WIDL_C_INLINE_WRAPPERS
   1791 /*** IUnknown methods ***/
   1792 #define IBindStatusCallbackEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1793 #define IBindStatusCallbackEx_AddRef(This) (This)->lpVtbl->AddRef(This)
   1794 #define IBindStatusCallbackEx_Release(This) (This)->lpVtbl->Release(This)
   1795 /*** IBindStatusCallback methods ***/
   1796 #define IBindStatusCallbackEx_OnStartBinding(This,dwReserved,pib) (This)->lpVtbl->OnStartBinding(This,dwReserved,pib)
   1797 #define IBindStatusCallbackEx_GetPriority(This,pnPriority) (This)->lpVtbl->GetPriority(This,pnPriority)
   1798 #define IBindStatusCallbackEx_OnLowResource(This,reserved) (This)->lpVtbl->OnLowResource(This,reserved)
   1799 #define IBindStatusCallbackEx_OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText) (This)->lpVtbl->OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText)
   1800 #define IBindStatusCallbackEx_OnStopBinding(This,hresult,szError) (This)->lpVtbl->OnStopBinding(This,hresult,szError)
   1801 #define IBindStatusCallbackEx_GetBindInfo(This,grfBINDF,pbindinfo) (This)->lpVtbl->GetBindInfo(This,grfBINDF,pbindinfo)
   1802 #define IBindStatusCallbackEx_OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed) (This)->lpVtbl->OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed)
   1803 #define IBindStatusCallbackEx_OnObjectAvailable(This,riid,punk) (This)->lpVtbl->OnObjectAvailable(This,riid,punk)
   1804 /*** IBindStatusCallbackEx methods ***/
   1805 #define IBindStatusCallbackEx_GetBindInfoEx(This,grfBINDF,pbindinfo,grfBINDF2,pdwReserved) (This)->lpVtbl->GetBindInfoEx(This,grfBINDF,pbindinfo,grfBINDF2,pdwReserved)
   1806 #else
   1807 /*** IUnknown methods ***/
   1808 static FORCEINLINE HRESULT IBindStatusCallbackEx_QueryInterface(IBindStatusCallbackEx* This,REFIID riid,void **ppvObject) {
   1809     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1810 }
   1811 static FORCEINLINE ULONG IBindStatusCallbackEx_AddRef(IBindStatusCallbackEx* This) {
   1812     return This->lpVtbl->AddRef(This);
   1813 }
   1814 static FORCEINLINE ULONG IBindStatusCallbackEx_Release(IBindStatusCallbackEx* This) {
   1815     return This->lpVtbl->Release(This);
   1816 }
   1817 /*** IBindStatusCallback methods ***/
   1818 static FORCEINLINE HRESULT IBindStatusCallbackEx_OnStartBinding(IBindStatusCallbackEx* This,DWORD dwReserved,IBinding *pib) {
   1819     return This->lpVtbl->OnStartBinding(This,dwReserved,pib);
   1820 }
   1821 static FORCEINLINE HRESULT IBindStatusCallbackEx_GetPriority(IBindStatusCallbackEx* This,LONG *pnPriority) {
   1822     return This->lpVtbl->GetPriority(This,pnPriority);
   1823 }
   1824 static FORCEINLINE HRESULT IBindStatusCallbackEx_OnLowResource(IBindStatusCallbackEx* This,DWORD reserved) {
   1825     return This->lpVtbl->OnLowResource(This,reserved);
   1826 }
   1827 static FORCEINLINE HRESULT IBindStatusCallbackEx_OnProgress(IBindStatusCallbackEx* This,ULONG ulProgress,ULONG ulProgressMax,ULONG ulStatusCode,LPCWSTR szStatusText) {
   1828     return This->lpVtbl->OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText);
   1829 }
   1830 static FORCEINLINE HRESULT IBindStatusCallbackEx_OnStopBinding(IBindStatusCallbackEx* This,HRESULT hresult,LPCWSTR szError) {
   1831     return This->lpVtbl->OnStopBinding(This,hresult,szError);
   1832 }
   1833 static FORCEINLINE HRESULT IBindStatusCallbackEx_GetBindInfo(IBindStatusCallbackEx* This,DWORD *grfBINDF,BINDINFO *pbindinfo) {
   1834     return This->lpVtbl->GetBindInfo(This,grfBINDF,pbindinfo);
   1835 }
   1836 static FORCEINLINE HRESULT IBindStatusCallbackEx_OnDataAvailable(IBindStatusCallbackEx* This,DWORD grfBSCF,DWORD dwSize,FORMATETC *pformatetc,STGMEDIUM *pstgmed) {
   1837     return This->lpVtbl->OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed);
   1838 }
   1839 static FORCEINLINE HRESULT IBindStatusCallbackEx_OnObjectAvailable(IBindStatusCallbackEx* This,REFIID riid,IUnknown *punk) {
   1840     return This->lpVtbl->OnObjectAvailable(This,riid,punk);
   1841 }
   1842 /*** IBindStatusCallbackEx methods ***/
   1843 static FORCEINLINE HRESULT IBindStatusCallbackEx_GetBindInfoEx(IBindStatusCallbackEx* This,DWORD *grfBINDF,BINDINFO *pbindinfo,DWORD *grfBINDF2,DWORD *pdwReserved) {
   1844     return This->lpVtbl->GetBindInfoEx(This,grfBINDF,pbindinfo,grfBINDF2,pdwReserved);
   1845 }
   1846 #endif
   1847 #endif
   1848 
   1849 #endif
   1850 
   1851 HRESULT STDMETHODCALLTYPE IBindStatusCallbackEx_RemoteGetBindInfoEx_Proxy(
   1852     IBindStatusCallbackEx* This,
   1853     DWORD *grfBINDF,
   1854     RemBINDINFO *pbindinfo,
   1855     RemSTGMEDIUM *pstgmed,
   1856     DWORD *grfBINDF2,
   1857     DWORD *pdwReserved);
   1858 void __RPC_STUB IBindStatusCallbackEx_RemoteGetBindInfoEx_Stub(
   1859     IRpcStubBuffer* This,
   1860     IRpcChannelBuffer* pRpcChannelBuffer,
   1861     PRPC_MESSAGE pRpcMessage,
   1862     DWORD* pdwStubPhase);
   1863 HRESULT CALLBACK IBindStatusCallbackEx_GetBindInfoEx_Proxy(
   1864     IBindStatusCallbackEx* This,
   1865     DWORD *grfBINDF,
   1866     BINDINFO *pbindinfo,
   1867     DWORD *grfBINDF2,
   1868     DWORD *pdwReserved);
   1869 HRESULT __RPC_STUB IBindStatusCallbackEx_GetBindInfoEx_Stub(
   1870     IBindStatusCallbackEx* This,
   1871     DWORD *grfBINDF,
   1872     RemBINDINFO *pbindinfo,
   1873     RemSTGMEDIUM *pstgmed,
   1874     DWORD *grfBINDF2,
   1875     DWORD *pdwReserved);
   1876 
   1877 #endif  /* __IBindStatusCallbackEx_INTERFACE_DEFINED__ */
   1878 
   1879 #endif
   1880 
   1881 #ifndef _LPAUTHENTICATION_DEFINED
   1882 #define _LPAUTHENTICATION_DEFINED
   1883 
   1884 /*****************************************************************************
   1885  * IAuthenticate interface
   1886  */
   1887 #ifndef __IAuthenticate_INTERFACE_DEFINED__
   1888 #define __IAuthenticate_INTERFACE_DEFINED__
   1889 
   1890 typedef IAuthenticate *LPAUTHENTICATION;
   1891 
   1892 DEFINE_GUID(IID_IAuthenticate, 0x79eac9d0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   1893 #if defined(__cplusplus) && !defined(CINTERFACE)
   1894 MIDL_INTERFACE("79eac9d0-baf9-11ce-8c82-00aa004ba90b")
   1895 IAuthenticate : public IUnknown
   1896 {
   1897     virtual HRESULT STDMETHODCALLTYPE Authenticate(
   1898         HWND *phwnd,
   1899         LPWSTR *pszUsername,
   1900         LPWSTR *pszPassword) = 0;
   1901 
   1902 };
   1903 #ifdef __CRT_UUID_DECL
   1904 __CRT_UUID_DECL(IAuthenticate, 0x79eac9d0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   1905 #endif
   1906 #else
   1907 typedef struct IAuthenticateVtbl {
   1908     BEGIN_INTERFACE
   1909 
   1910     /*** IUnknown methods ***/
   1911     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1912         IAuthenticate* This,
   1913         REFIID riid,
   1914         void **ppvObject);
   1915 
   1916     ULONG (STDMETHODCALLTYPE *AddRef)(
   1917         IAuthenticate* This);
   1918 
   1919     ULONG (STDMETHODCALLTYPE *Release)(
   1920         IAuthenticate* This);
   1921 
   1922     /*** IAuthenticate methods ***/
   1923     HRESULT (STDMETHODCALLTYPE *Authenticate)(
   1924         IAuthenticate* This,
   1925         HWND *phwnd,
   1926         LPWSTR *pszUsername,
   1927         LPWSTR *pszPassword);
   1928 
   1929     END_INTERFACE
   1930 } IAuthenticateVtbl;
   1931 interface IAuthenticate {
   1932     CONST_VTBL IAuthenticateVtbl* lpVtbl;
   1933 };
   1934 
   1935 #ifdef COBJMACROS
   1936 #ifndef WIDL_C_INLINE_WRAPPERS
   1937 /*** IUnknown methods ***/
   1938 #define IAuthenticate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1939 #define IAuthenticate_AddRef(This) (This)->lpVtbl->AddRef(This)
   1940 #define IAuthenticate_Release(This) (This)->lpVtbl->Release(This)
   1941 /*** IAuthenticate methods ***/
   1942 #define IAuthenticate_Authenticate(This,phwnd,pszUsername,pszPassword) (This)->lpVtbl->Authenticate(This,phwnd,pszUsername,pszPassword)
   1943 #else
   1944 /*** IUnknown methods ***/
   1945 static FORCEINLINE HRESULT IAuthenticate_QueryInterface(IAuthenticate* This,REFIID riid,void **ppvObject) {
   1946     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1947 }
   1948 static FORCEINLINE ULONG IAuthenticate_AddRef(IAuthenticate* This) {
   1949     return This->lpVtbl->AddRef(This);
   1950 }
   1951 static FORCEINLINE ULONG IAuthenticate_Release(IAuthenticate* This) {
   1952     return This->lpVtbl->Release(This);
   1953 }
   1954 /*** IAuthenticate methods ***/
   1955 static FORCEINLINE HRESULT IAuthenticate_Authenticate(IAuthenticate* This,HWND *phwnd,LPWSTR *pszUsername,LPWSTR *pszPassword) {
   1956     return This->lpVtbl->Authenticate(This,phwnd,pszUsername,pszPassword);
   1957 }
   1958 #endif
   1959 #endif
   1960 
   1961 #endif
   1962 
   1963 HRESULT STDMETHODCALLTYPE IAuthenticate_Authenticate_Proxy(
   1964     IAuthenticate* This,
   1965     HWND *phwnd,
   1966     LPWSTR *pszUsername,
   1967     LPWSTR *pszPassword);
   1968 void __RPC_STUB IAuthenticate_Authenticate_Stub(
   1969     IRpcStubBuffer* This,
   1970     IRpcChannelBuffer* pRpcChannelBuffer,
   1971     PRPC_MESSAGE pRpcMessage,
   1972     DWORD* pdwStubPhase);
   1973 
   1974 #endif  /* __IAuthenticate_INTERFACE_DEFINED__ */
   1975 
   1976 #endif
   1977 
   1978 #ifndef _LPAUTHENTICATIONEX_DEFINED
   1979 #define _LPAUTHENTICATIONEX_DEFINED
   1980 
   1981 /*****************************************************************************
   1982  * IAuthenticateEx interface
   1983  */
   1984 #ifndef __IAuthenticateEx_INTERFACE_DEFINED__
   1985 #define __IAuthenticateEx_INTERFACE_DEFINED__
   1986 
   1987 typedef IAuthenticateEx *LPAUTHENTICATIONEX;
   1988 
   1989 typedef enum __WIDL_urlmon_generated_name_0000000A {
   1990     AUTHENTICATEF_PROXY = 0x1,
   1991     AUTHENTICATEF_BASIC = 0x2,
   1992     AUTHENTICATEF_HTTP = 0x4
   1993 } AUTHENTICATEF;
   1994 
   1995 typedef struct _tagAUTHENTICATEINFO {
   1996     DWORD dwFlags;
   1997     DWORD dwReserved;
   1998 } AUTHENTICATEINFO;
   1999 
   2000 DEFINE_GUID(IID_IAuthenticateEx, 0x2ad1edaf, 0xd83d, 0x48b5, 0x9a,0xdf, 0x03,0xdb,0xe1,0x9f,0x53,0xbd);
   2001 #if defined(__cplusplus) && !defined(CINTERFACE)
   2002 MIDL_INTERFACE("2ad1edaf-d83d-48b5-9adf-03dbe19f53bd")
   2003 IAuthenticateEx : public IAuthenticate
   2004 {
   2005     virtual HRESULT STDMETHODCALLTYPE AuthenticateEx(
   2006         HWND *phwnd,
   2007         LPWSTR *pszUsername,
   2008         LPWSTR *pszPassword,
   2009         AUTHENTICATEINFO *pauthinfo) = 0;
   2010 
   2011 };
   2012 #ifdef __CRT_UUID_DECL
   2013 __CRT_UUID_DECL(IAuthenticateEx, 0x2ad1edaf, 0xd83d, 0x48b5, 0x9a,0xdf, 0x03,0xdb,0xe1,0x9f,0x53,0xbd)
   2014 #endif
   2015 #else
   2016 typedef struct IAuthenticateExVtbl {
   2017     BEGIN_INTERFACE
   2018 
   2019     /*** IUnknown methods ***/
   2020     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2021         IAuthenticateEx* This,
   2022         REFIID riid,
   2023         void **ppvObject);
   2024 
   2025     ULONG (STDMETHODCALLTYPE *AddRef)(
   2026         IAuthenticateEx* This);
   2027 
   2028     ULONG (STDMETHODCALLTYPE *Release)(
   2029         IAuthenticateEx* This);
   2030 
   2031     /*** IAuthenticate methods ***/
   2032     HRESULT (STDMETHODCALLTYPE *Authenticate)(
   2033         IAuthenticateEx* This,
   2034         HWND *phwnd,
   2035         LPWSTR *pszUsername,
   2036         LPWSTR *pszPassword);
   2037 
   2038     /*** IAuthenticateEx methods ***/
   2039     HRESULT (STDMETHODCALLTYPE *AuthenticateEx)(
   2040         IAuthenticateEx* This,
   2041         HWND *phwnd,
   2042         LPWSTR *pszUsername,
   2043         LPWSTR *pszPassword,
   2044         AUTHENTICATEINFO *pauthinfo);
   2045 
   2046     END_INTERFACE
   2047 } IAuthenticateExVtbl;
   2048 interface IAuthenticateEx {
   2049     CONST_VTBL IAuthenticateExVtbl* lpVtbl;
   2050 };
   2051 
   2052 #ifdef COBJMACROS
   2053 #ifndef WIDL_C_INLINE_WRAPPERS
   2054 /*** IUnknown methods ***/
   2055 #define IAuthenticateEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2056 #define IAuthenticateEx_AddRef(This) (This)->lpVtbl->AddRef(This)
   2057 #define IAuthenticateEx_Release(This) (This)->lpVtbl->Release(This)
   2058 /*** IAuthenticate methods ***/
   2059 #define IAuthenticateEx_Authenticate(This,phwnd,pszUsername,pszPassword) (This)->lpVtbl->Authenticate(This,phwnd,pszUsername,pszPassword)
   2060 /*** IAuthenticateEx methods ***/
   2061 #define IAuthenticateEx_AuthenticateEx(This,phwnd,pszUsername,pszPassword,pauthinfo) (This)->lpVtbl->AuthenticateEx(This,phwnd,pszUsername,pszPassword,pauthinfo)
   2062 #else
   2063 /*** IUnknown methods ***/
   2064 static FORCEINLINE HRESULT IAuthenticateEx_QueryInterface(IAuthenticateEx* This,REFIID riid,void **ppvObject) {
   2065     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2066 }
   2067 static FORCEINLINE ULONG IAuthenticateEx_AddRef(IAuthenticateEx* This) {
   2068     return This->lpVtbl->AddRef(This);
   2069 }
   2070 static FORCEINLINE ULONG IAuthenticateEx_Release(IAuthenticateEx* This) {
   2071     return This->lpVtbl->Release(This);
   2072 }
   2073 /*** IAuthenticate methods ***/
   2074 static FORCEINLINE HRESULT IAuthenticateEx_Authenticate(IAuthenticateEx* This,HWND *phwnd,LPWSTR *pszUsername,LPWSTR *pszPassword) {
   2075     return This->lpVtbl->Authenticate(This,phwnd,pszUsername,pszPassword);
   2076 }
   2077 /*** IAuthenticateEx methods ***/
   2078 static FORCEINLINE HRESULT IAuthenticateEx_AuthenticateEx(IAuthenticateEx* This,HWND *phwnd,LPWSTR *pszUsername,LPWSTR *pszPassword,AUTHENTICATEINFO *pauthinfo) {
   2079     return This->lpVtbl->AuthenticateEx(This,phwnd,pszUsername,pszPassword,pauthinfo);
   2080 }
   2081 #endif
   2082 #endif
   2083 
   2084 #endif
   2085 
   2086 HRESULT STDMETHODCALLTYPE IAuthenticateEx_AuthenticateEx_Proxy(
   2087     IAuthenticateEx* This,
   2088     HWND *phwnd,
   2089     LPWSTR *pszUsername,
   2090     LPWSTR *pszPassword,
   2091     AUTHENTICATEINFO *pauthinfo);
   2092 void __RPC_STUB IAuthenticateEx_AuthenticateEx_Stub(
   2093     IRpcStubBuffer* This,
   2094     IRpcChannelBuffer* pRpcChannelBuffer,
   2095     PRPC_MESSAGE pRpcMessage,
   2096     DWORD* pdwStubPhase);
   2097 
   2098 #endif  /* __IAuthenticateEx_INTERFACE_DEFINED__ */
   2099 
   2100 #endif
   2101 
   2102 #ifndef _LPHTTPNEGOTIATE_DEFINED
   2103 #define _LPHTTPNEGOTIATE_DEFINED
   2104 
   2105 /*****************************************************************************
   2106  * IHttpNegotiate interface
   2107  */
   2108 #ifndef __IHttpNegotiate_INTERFACE_DEFINED__
   2109 #define __IHttpNegotiate_INTERFACE_DEFINED__
   2110 
   2111 typedef IHttpNegotiate *LPHTTPNEGOTIATE;
   2112 
   2113 DEFINE_GUID(IID_IHttpNegotiate, 0x79eac9d2, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   2114 #if defined(__cplusplus) && !defined(CINTERFACE)
   2115 MIDL_INTERFACE("79eac9d2-baf9-11ce-8c82-00aa004ba90b")
   2116 IHttpNegotiate : public IUnknown
   2117 {
   2118     virtual HRESULT STDMETHODCALLTYPE BeginningTransaction(
   2119         LPCWSTR szURL,
   2120         LPCWSTR szHeaders,
   2121         DWORD dwReserved,
   2122         LPWSTR *pszAdditionalHeaders) = 0;
   2123 
   2124     virtual HRESULT STDMETHODCALLTYPE OnResponse(
   2125         DWORD dwResponseCode,
   2126         LPCWSTR szResponseHeaders,
   2127         LPCWSTR szRequestHeaders,
   2128         LPWSTR *pszAdditionalRequestHeaders) = 0;
   2129 
   2130 };
   2131 #ifdef __CRT_UUID_DECL
   2132 __CRT_UUID_DECL(IHttpNegotiate, 0x79eac9d2, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   2133 #endif
   2134 #else
   2135 typedef struct IHttpNegotiateVtbl {
   2136     BEGIN_INTERFACE
   2137 
   2138     /*** IUnknown methods ***/
   2139     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2140         IHttpNegotiate* This,
   2141         REFIID riid,
   2142         void **ppvObject);
   2143 
   2144     ULONG (STDMETHODCALLTYPE *AddRef)(
   2145         IHttpNegotiate* This);
   2146 
   2147     ULONG (STDMETHODCALLTYPE *Release)(
   2148         IHttpNegotiate* This);
   2149 
   2150     /*** IHttpNegotiate methods ***/
   2151     HRESULT (STDMETHODCALLTYPE *BeginningTransaction)(
   2152         IHttpNegotiate* This,
   2153         LPCWSTR szURL,
   2154         LPCWSTR szHeaders,
   2155         DWORD dwReserved,
   2156         LPWSTR *pszAdditionalHeaders);
   2157 
   2158     HRESULT (STDMETHODCALLTYPE *OnResponse)(
   2159         IHttpNegotiate* This,
   2160         DWORD dwResponseCode,
   2161         LPCWSTR szResponseHeaders,
   2162         LPCWSTR szRequestHeaders,
   2163         LPWSTR *pszAdditionalRequestHeaders);
   2164 
   2165     END_INTERFACE
   2166 } IHttpNegotiateVtbl;
   2167 interface IHttpNegotiate {
   2168     CONST_VTBL IHttpNegotiateVtbl* lpVtbl;
   2169 };
   2170 
   2171 #ifdef COBJMACROS
   2172 #ifndef WIDL_C_INLINE_WRAPPERS
   2173 /*** IUnknown methods ***/
   2174 #define IHttpNegotiate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2175 #define IHttpNegotiate_AddRef(This) (This)->lpVtbl->AddRef(This)
   2176 #define IHttpNegotiate_Release(This) (This)->lpVtbl->Release(This)
   2177 /*** IHttpNegotiate methods ***/
   2178 #define IHttpNegotiate_BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders) (This)->lpVtbl->BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders)
   2179 #define IHttpNegotiate_OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders) (This)->lpVtbl->OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders)
   2180 #else
   2181 /*** IUnknown methods ***/
   2182 static FORCEINLINE HRESULT IHttpNegotiate_QueryInterface(IHttpNegotiate* This,REFIID riid,void **ppvObject) {
   2183     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2184 }
   2185 static FORCEINLINE ULONG IHttpNegotiate_AddRef(IHttpNegotiate* This) {
   2186     return This->lpVtbl->AddRef(This);
   2187 }
   2188 static FORCEINLINE ULONG IHttpNegotiate_Release(IHttpNegotiate* This) {
   2189     return This->lpVtbl->Release(This);
   2190 }
   2191 /*** IHttpNegotiate methods ***/
   2192 static FORCEINLINE HRESULT IHttpNegotiate_BeginningTransaction(IHttpNegotiate* This,LPCWSTR szURL,LPCWSTR szHeaders,DWORD dwReserved,LPWSTR *pszAdditionalHeaders) {
   2193     return This->lpVtbl->BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders);
   2194 }
   2195 static FORCEINLINE HRESULT IHttpNegotiate_OnResponse(IHttpNegotiate* This,DWORD dwResponseCode,LPCWSTR szResponseHeaders,LPCWSTR szRequestHeaders,LPWSTR *pszAdditionalRequestHeaders) {
   2196     return This->lpVtbl->OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders);
   2197 }
   2198 #endif
   2199 #endif
   2200 
   2201 #endif
   2202 
   2203 HRESULT STDMETHODCALLTYPE IHttpNegotiate_BeginningTransaction_Proxy(
   2204     IHttpNegotiate* This,
   2205     LPCWSTR szURL,
   2206     LPCWSTR szHeaders,
   2207     DWORD dwReserved,
   2208     LPWSTR *pszAdditionalHeaders);
   2209 void __RPC_STUB IHttpNegotiate_BeginningTransaction_Stub(
   2210     IRpcStubBuffer* This,
   2211     IRpcChannelBuffer* pRpcChannelBuffer,
   2212     PRPC_MESSAGE pRpcMessage,
   2213     DWORD* pdwStubPhase);
   2214 HRESULT STDMETHODCALLTYPE IHttpNegotiate_OnResponse_Proxy(
   2215     IHttpNegotiate* This,
   2216     DWORD dwResponseCode,
   2217     LPCWSTR szResponseHeaders,
   2218     LPCWSTR szRequestHeaders,
   2219     LPWSTR *pszAdditionalRequestHeaders);
   2220 void __RPC_STUB IHttpNegotiate_OnResponse_Stub(
   2221     IRpcStubBuffer* This,
   2222     IRpcChannelBuffer* pRpcChannelBuffer,
   2223     PRPC_MESSAGE pRpcMessage,
   2224     DWORD* pdwStubPhase);
   2225 
   2226 #endif  /* __IHttpNegotiate_INTERFACE_DEFINED__ */
   2227 
   2228 #endif
   2229 
   2230 #ifndef _LPHTTPNEGOTIATE2_DEFINED
   2231 #define _LPHTTPNEGOTIATE2_DEFINED
   2232 
   2233 /*****************************************************************************
   2234  * IHttpNegotiate2 interface
   2235  */
   2236 #ifndef __IHttpNegotiate2_INTERFACE_DEFINED__
   2237 #define __IHttpNegotiate2_INTERFACE_DEFINED__
   2238 
   2239 typedef IHttpNegotiate2 *LPHTTPNEGOTIATE2;
   2240 
   2241 DEFINE_GUID(IID_IHttpNegotiate2, 0x4f9f9fcb, 0xe0f4, 0x48eb, 0xb7,0xab, 0xfa,0x2e,0xa9,0x36,0x5c,0xb4);
   2242 #if defined(__cplusplus) && !defined(CINTERFACE)
   2243 MIDL_INTERFACE("4f9f9fcb-e0f4-48eb-b7ab-fa2ea9365cb4")
   2244 IHttpNegotiate2 : public IHttpNegotiate
   2245 {
   2246     virtual HRESULT STDMETHODCALLTYPE GetRootSecurityId(
   2247         BYTE *pbSecurityId,
   2248         DWORD *pcbSecurityId,
   2249         DWORD_PTR dwReserved) = 0;
   2250 
   2251 };
   2252 #ifdef __CRT_UUID_DECL
   2253 __CRT_UUID_DECL(IHttpNegotiate2, 0x4f9f9fcb, 0xe0f4, 0x48eb, 0xb7,0xab, 0xfa,0x2e,0xa9,0x36,0x5c,0xb4)
   2254 #endif
   2255 #else
   2256 typedef struct IHttpNegotiate2Vtbl {
   2257     BEGIN_INTERFACE
   2258 
   2259     /*** IUnknown methods ***/
   2260     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2261         IHttpNegotiate2* This,
   2262         REFIID riid,
   2263         void **ppvObject);
   2264 
   2265     ULONG (STDMETHODCALLTYPE *AddRef)(
   2266         IHttpNegotiate2* This);
   2267 
   2268     ULONG (STDMETHODCALLTYPE *Release)(
   2269         IHttpNegotiate2* This);
   2270 
   2271     /*** IHttpNegotiate methods ***/
   2272     HRESULT (STDMETHODCALLTYPE *BeginningTransaction)(
   2273         IHttpNegotiate2* This,
   2274         LPCWSTR szURL,
   2275         LPCWSTR szHeaders,
   2276         DWORD dwReserved,
   2277         LPWSTR *pszAdditionalHeaders);
   2278 
   2279     HRESULT (STDMETHODCALLTYPE *OnResponse)(
   2280         IHttpNegotiate2* This,
   2281         DWORD dwResponseCode,
   2282         LPCWSTR szResponseHeaders,
   2283         LPCWSTR szRequestHeaders,
   2284         LPWSTR *pszAdditionalRequestHeaders);
   2285 
   2286     /*** IHttpNegotiate2 methods ***/
   2287     HRESULT (STDMETHODCALLTYPE *GetRootSecurityId)(
   2288         IHttpNegotiate2* This,
   2289         BYTE *pbSecurityId,
   2290         DWORD *pcbSecurityId,
   2291         DWORD_PTR dwReserved);
   2292 
   2293     END_INTERFACE
   2294 } IHttpNegotiate2Vtbl;
   2295 interface IHttpNegotiate2 {
   2296     CONST_VTBL IHttpNegotiate2Vtbl* lpVtbl;
   2297 };
   2298 
   2299 #ifdef COBJMACROS
   2300 #ifndef WIDL_C_INLINE_WRAPPERS
   2301 /*** IUnknown methods ***/
   2302 #define IHttpNegotiate2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2303 #define IHttpNegotiate2_AddRef(This) (This)->lpVtbl->AddRef(This)
   2304 #define IHttpNegotiate2_Release(This) (This)->lpVtbl->Release(This)
   2305 /*** IHttpNegotiate methods ***/
   2306 #define IHttpNegotiate2_BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders) (This)->lpVtbl->BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders)
   2307 #define IHttpNegotiate2_OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders) (This)->lpVtbl->OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders)
   2308 /*** IHttpNegotiate2 methods ***/
   2309 #define IHttpNegotiate2_GetRootSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved) (This)->lpVtbl->GetRootSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved)
   2310 #else
   2311 /*** IUnknown methods ***/
   2312 static FORCEINLINE HRESULT IHttpNegotiate2_QueryInterface(IHttpNegotiate2* This,REFIID riid,void **ppvObject) {
   2313     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2314 }
   2315 static FORCEINLINE ULONG IHttpNegotiate2_AddRef(IHttpNegotiate2* This) {
   2316     return This->lpVtbl->AddRef(This);
   2317 }
   2318 static FORCEINLINE ULONG IHttpNegotiate2_Release(IHttpNegotiate2* This) {
   2319     return This->lpVtbl->Release(This);
   2320 }
   2321 /*** IHttpNegotiate methods ***/
   2322 static FORCEINLINE HRESULT IHttpNegotiate2_BeginningTransaction(IHttpNegotiate2* This,LPCWSTR szURL,LPCWSTR szHeaders,DWORD dwReserved,LPWSTR *pszAdditionalHeaders) {
   2323     return This->lpVtbl->BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders);
   2324 }
   2325 static FORCEINLINE HRESULT IHttpNegotiate2_OnResponse(IHttpNegotiate2* This,DWORD dwResponseCode,LPCWSTR szResponseHeaders,LPCWSTR szRequestHeaders,LPWSTR *pszAdditionalRequestHeaders) {
   2326     return This->lpVtbl->OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders);
   2327 }
   2328 /*** IHttpNegotiate2 methods ***/
   2329 static FORCEINLINE HRESULT IHttpNegotiate2_GetRootSecurityId(IHttpNegotiate2* This,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved) {
   2330     return This->lpVtbl->GetRootSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved);
   2331 }
   2332 #endif
   2333 #endif
   2334 
   2335 #endif
   2336 
   2337 HRESULT STDMETHODCALLTYPE IHttpNegotiate2_GetRootSecurityId_Proxy(
   2338     IHttpNegotiate2* This,
   2339     BYTE *pbSecurityId,
   2340     DWORD *pcbSecurityId,
   2341     DWORD_PTR dwReserved);
   2342 void __RPC_STUB IHttpNegotiate2_GetRootSecurityId_Stub(
   2343     IRpcStubBuffer* This,
   2344     IRpcChannelBuffer* pRpcChannelBuffer,
   2345     PRPC_MESSAGE pRpcMessage,
   2346     DWORD* pdwStubPhase);
   2347 
   2348 #endif  /* __IHttpNegotiate2_INTERFACE_DEFINED__ */
   2349 
   2350 #endif
   2351 
   2352 #ifndef _LPHTTPNEGOTIATE3_DEFINED
   2353 #define _LPHTTPNEGOTIATE3_DEFINED
   2354 
   2355 /*****************************************************************************
   2356  * IHttpNegotiate3 interface
   2357  */
   2358 #ifndef __IHttpNegotiate3_INTERFACE_DEFINED__
   2359 #define __IHttpNegotiate3_INTERFACE_DEFINED__
   2360 
   2361 typedef IHttpNegotiate3 *LPHTTPNEGOTIATE3;
   2362 
   2363 DEFINE_GUID(IID_IHttpNegotiate3, 0x57b6c80a, 0x34c2, 0x4602, 0xbc,0x26, 0x66,0xa0,0x2f,0xc5,0x71,0x53);
   2364 #if defined(__cplusplus) && !defined(CINTERFACE)
   2365 MIDL_INTERFACE("57b6c80a-34c2-4602-bc26-66a02fc57153")
   2366 IHttpNegotiate3 : public IHttpNegotiate2
   2367 {
   2368     virtual HRESULT STDMETHODCALLTYPE GetSerializedClientCertContext(
   2369         BYTE **ppbCert,
   2370         DWORD *pcbCert) = 0;
   2371 
   2372 };
   2373 #ifdef __CRT_UUID_DECL
   2374 __CRT_UUID_DECL(IHttpNegotiate3, 0x57b6c80a, 0x34c2, 0x4602, 0xbc,0x26, 0x66,0xa0,0x2f,0xc5,0x71,0x53)
   2375 #endif
   2376 #else
   2377 typedef struct IHttpNegotiate3Vtbl {
   2378     BEGIN_INTERFACE
   2379 
   2380     /*** IUnknown methods ***/
   2381     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2382         IHttpNegotiate3* This,
   2383         REFIID riid,
   2384         void **ppvObject);
   2385 
   2386     ULONG (STDMETHODCALLTYPE *AddRef)(
   2387         IHttpNegotiate3* This);
   2388 
   2389     ULONG (STDMETHODCALLTYPE *Release)(
   2390         IHttpNegotiate3* This);
   2391 
   2392     /*** IHttpNegotiate methods ***/
   2393     HRESULT (STDMETHODCALLTYPE *BeginningTransaction)(
   2394         IHttpNegotiate3* This,
   2395         LPCWSTR szURL,
   2396         LPCWSTR szHeaders,
   2397         DWORD dwReserved,
   2398         LPWSTR *pszAdditionalHeaders);
   2399 
   2400     HRESULT (STDMETHODCALLTYPE *OnResponse)(
   2401         IHttpNegotiate3* This,
   2402         DWORD dwResponseCode,
   2403         LPCWSTR szResponseHeaders,
   2404         LPCWSTR szRequestHeaders,
   2405         LPWSTR *pszAdditionalRequestHeaders);
   2406 
   2407     /*** IHttpNegotiate2 methods ***/
   2408     HRESULT (STDMETHODCALLTYPE *GetRootSecurityId)(
   2409         IHttpNegotiate3* This,
   2410         BYTE *pbSecurityId,
   2411         DWORD *pcbSecurityId,
   2412         DWORD_PTR dwReserved);
   2413 
   2414     /*** IHttpNegotiate3 methods ***/
   2415     HRESULT (STDMETHODCALLTYPE *GetSerializedClientCertContext)(
   2416         IHttpNegotiate3* This,
   2417         BYTE **ppbCert,
   2418         DWORD *pcbCert);
   2419 
   2420     END_INTERFACE
   2421 } IHttpNegotiate3Vtbl;
   2422 interface IHttpNegotiate3 {
   2423     CONST_VTBL IHttpNegotiate3Vtbl* lpVtbl;
   2424 };
   2425 
   2426 #ifdef COBJMACROS
   2427 #ifndef WIDL_C_INLINE_WRAPPERS
   2428 /*** IUnknown methods ***/
   2429 #define IHttpNegotiate3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2430 #define IHttpNegotiate3_AddRef(This) (This)->lpVtbl->AddRef(This)
   2431 #define IHttpNegotiate3_Release(This) (This)->lpVtbl->Release(This)
   2432 /*** IHttpNegotiate methods ***/
   2433 #define IHttpNegotiate3_BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders) (This)->lpVtbl->BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders)
   2434 #define IHttpNegotiate3_OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders) (This)->lpVtbl->OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders)
   2435 /*** IHttpNegotiate2 methods ***/
   2436 #define IHttpNegotiate3_GetRootSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved) (This)->lpVtbl->GetRootSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved)
   2437 /*** IHttpNegotiate3 methods ***/
   2438 #define IHttpNegotiate3_GetSerializedClientCertContext(This,ppbCert,pcbCert) (This)->lpVtbl->GetSerializedClientCertContext(This,ppbCert,pcbCert)
   2439 #else
   2440 /*** IUnknown methods ***/
   2441 static FORCEINLINE HRESULT IHttpNegotiate3_QueryInterface(IHttpNegotiate3* This,REFIID riid,void **ppvObject) {
   2442     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2443 }
   2444 static FORCEINLINE ULONG IHttpNegotiate3_AddRef(IHttpNegotiate3* This) {
   2445     return This->lpVtbl->AddRef(This);
   2446 }
   2447 static FORCEINLINE ULONG IHttpNegotiate3_Release(IHttpNegotiate3* This) {
   2448     return This->lpVtbl->Release(This);
   2449 }
   2450 /*** IHttpNegotiate methods ***/
   2451 static FORCEINLINE HRESULT IHttpNegotiate3_BeginningTransaction(IHttpNegotiate3* This,LPCWSTR szURL,LPCWSTR szHeaders,DWORD dwReserved,LPWSTR *pszAdditionalHeaders) {
   2452     return This->lpVtbl->BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders);
   2453 }
   2454 static FORCEINLINE HRESULT IHttpNegotiate3_OnResponse(IHttpNegotiate3* This,DWORD dwResponseCode,LPCWSTR szResponseHeaders,LPCWSTR szRequestHeaders,LPWSTR *pszAdditionalRequestHeaders) {
   2455     return This->lpVtbl->OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders);
   2456 }
   2457 /*** IHttpNegotiate2 methods ***/
   2458 static FORCEINLINE HRESULT IHttpNegotiate3_GetRootSecurityId(IHttpNegotiate3* This,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved) {
   2459     return This->lpVtbl->GetRootSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved);
   2460 }
   2461 /*** IHttpNegotiate3 methods ***/
   2462 static FORCEINLINE HRESULT IHttpNegotiate3_GetSerializedClientCertContext(IHttpNegotiate3* This,BYTE **ppbCert,DWORD *pcbCert) {
   2463     return This->lpVtbl->GetSerializedClientCertContext(This,ppbCert,pcbCert);
   2464 }
   2465 #endif
   2466 #endif
   2467 
   2468 #endif
   2469 
   2470 HRESULT STDMETHODCALLTYPE IHttpNegotiate3_GetSerializedClientCertContext_Proxy(
   2471     IHttpNegotiate3* This,
   2472     BYTE **ppbCert,
   2473     DWORD *pcbCert);
   2474 void __RPC_STUB IHttpNegotiate3_GetSerializedClientCertContext_Stub(
   2475     IRpcStubBuffer* This,
   2476     IRpcChannelBuffer* pRpcChannelBuffer,
   2477     PRPC_MESSAGE pRpcMessage,
   2478     DWORD* pdwStubPhase);
   2479 
   2480 #endif  /* __IHttpNegotiate3_INTERFACE_DEFINED__ */
   2481 
   2482 #endif
   2483 
   2484 #ifndef _LPWININETFILESTREAM_DEFINED
   2485 #define _LPWININETFILESTREAM_DEFINED
   2486 
   2487 /*****************************************************************************
   2488  * IWinInetFileStream interface
   2489  */
   2490 #ifndef __IWinInetFileStream_INTERFACE_DEFINED__
   2491 #define __IWinInetFileStream_INTERFACE_DEFINED__
   2492 
   2493 typedef IWinInetFileStream *LPWININETFILESTREAM;
   2494 
   2495 DEFINE_GUID(IID_IWinInetFileStream, 0xf134c4b7, 0xb1f8, 0x4e75, 0xb8,0x86, 0x74,0xb9,0x09,0x43,0xbe,0xcb);
   2496 #if defined(__cplusplus) && !defined(CINTERFACE)
   2497 MIDL_INTERFACE("f134c4b7-b1f8-4e75-b886-74b90943becb")
   2498 IWinInetFileStream : public IUnknown
   2499 {
   2500     virtual HRESULT STDMETHODCALLTYPE SetHandleForUnlock(
   2501         DWORD_PTR hWinInetLockHandle,
   2502         DWORD_PTR dwReserved) = 0;
   2503 
   2504     virtual HRESULT STDMETHODCALLTYPE SetDeleteFile(
   2505         DWORD_PTR dwReserved) = 0;
   2506 
   2507 };
   2508 #ifdef __CRT_UUID_DECL
   2509 __CRT_UUID_DECL(IWinInetFileStream, 0xf134c4b7, 0xb1f8, 0x4e75, 0xb8,0x86, 0x74,0xb9,0x09,0x43,0xbe,0xcb)
   2510 #endif
   2511 #else
   2512 typedef struct IWinInetFileStreamVtbl {
   2513     BEGIN_INTERFACE
   2514 
   2515     /*** IUnknown methods ***/
   2516     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2517         IWinInetFileStream* This,
   2518         REFIID riid,
   2519         void **ppvObject);
   2520 
   2521     ULONG (STDMETHODCALLTYPE *AddRef)(
   2522         IWinInetFileStream* This);
   2523 
   2524     ULONG (STDMETHODCALLTYPE *Release)(
   2525         IWinInetFileStream* This);
   2526 
   2527     /*** IWinInetFileStream methods ***/
   2528     HRESULT (STDMETHODCALLTYPE *SetHandleForUnlock)(
   2529         IWinInetFileStream* This,
   2530         DWORD_PTR hWinInetLockHandle,
   2531         DWORD_PTR dwReserved);
   2532 
   2533     HRESULT (STDMETHODCALLTYPE *SetDeleteFile)(
   2534         IWinInetFileStream* This,
   2535         DWORD_PTR dwReserved);
   2536 
   2537     END_INTERFACE
   2538 } IWinInetFileStreamVtbl;
   2539 interface IWinInetFileStream {
   2540     CONST_VTBL IWinInetFileStreamVtbl* lpVtbl;
   2541 };
   2542 
   2543 #ifdef COBJMACROS
   2544 #ifndef WIDL_C_INLINE_WRAPPERS
   2545 /*** IUnknown methods ***/
   2546 #define IWinInetFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2547 #define IWinInetFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
   2548 #define IWinInetFileStream_Release(This) (This)->lpVtbl->Release(This)
   2549 /*** IWinInetFileStream methods ***/
   2550 #define IWinInetFileStream_SetHandleForUnlock(This,hWinInetLockHandle,dwReserved) (This)->lpVtbl->SetHandleForUnlock(This,hWinInetLockHandle,dwReserved)
   2551 #define IWinInetFileStream_SetDeleteFile(This,dwReserved) (This)->lpVtbl->SetDeleteFile(This,dwReserved)
   2552 #else
   2553 /*** IUnknown methods ***/
   2554 static FORCEINLINE HRESULT IWinInetFileStream_QueryInterface(IWinInetFileStream* This,REFIID riid,void **ppvObject) {
   2555     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2556 }
   2557 static FORCEINLINE ULONG IWinInetFileStream_AddRef(IWinInetFileStream* This) {
   2558     return This->lpVtbl->AddRef(This);
   2559 }
   2560 static FORCEINLINE ULONG IWinInetFileStream_Release(IWinInetFileStream* This) {
   2561     return This->lpVtbl->Release(This);
   2562 }
   2563 /*** IWinInetFileStream methods ***/
   2564 static FORCEINLINE HRESULT IWinInetFileStream_SetHandleForUnlock(IWinInetFileStream* This,DWORD_PTR hWinInetLockHandle,DWORD_PTR dwReserved) {
   2565     return This->lpVtbl->SetHandleForUnlock(This,hWinInetLockHandle,dwReserved);
   2566 }
   2567 static FORCEINLINE HRESULT IWinInetFileStream_SetDeleteFile(IWinInetFileStream* This,DWORD_PTR dwReserved) {
   2568     return This->lpVtbl->SetDeleteFile(This,dwReserved);
   2569 }
   2570 #endif
   2571 #endif
   2572 
   2573 #endif
   2574 
   2575 HRESULT STDMETHODCALLTYPE IWinInetFileStream_SetHandleForUnlock_Proxy(
   2576     IWinInetFileStream* This,
   2577     DWORD_PTR hWinInetLockHandle,
   2578     DWORD_PTR dwReserved);
   2579 void __RPC_STUB IWinInetFileStream_SetHandleForUnlock_Stub(
   2580     IRpcStubBuffer* This,
   2581     IRpcChannelBuffer* pRpcChannelBuffer,
   2582     PRPC_MESSAGE pRpcMessage,
   2583     DWORD* pdwStubPhase);
   2584 HRESULT STDMETHODCALLTYPE IWinInetFileStream_SetDeleteFile_Proxy(
   2585     IWinInetFileStream* This,
   2586     DWORD_PTR dwReserved);
   2587 void __RPC_STUB IWinInetFileStream_SetDeleteFile_Stub(
   2588     IRpcStubBuffer* This,
   2589     IRpcChannelBuffer* pRpcChannelBuffer,
   2590     PRPC_MESSAGE pRpcMessage,
   2591     DWORD* pdwStubPhase);
   2592 
   2593 #endif  /* __IWinInetFileStream_INTERFACE_DEFINED__ */
   2594 
   2595 #endif
   2596 
   2597 #ifndef _LPWINDOWFORBINDINGUI_DEFINED
   2598 #define _LPWINDOWFORBINDINGUI_DEFINED
   2599 
   2600 /*****************************************************************************
   2601  * IWindowForBindingUI interface
   2602  */
   2603 #ifndef __IWindowForBindingUI_INTERFACE_DEFINED__
   2604 #define __IWindowForBindingUI_INTERFACE_DEFINED__
   2605 
   2606 typedef IWindowForBindingUI *LPWINDOWFORBINDINGUI;
   2607 
   2608 DEFINE_GUID(IID_IWindowForBindingUI, 0x79eac9d5, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   2609 #if defined(__cplusplus) && !defined(CINTERFACE)
   2610 MIDL_INTERFACE("79eac9d5-bafa-11ce-8c82-00aa004ba90b")
   2611 IWindowForBindingUI : public IUnknown
   2612 {
   2613     virtual HRESULT STDMETHODCALLTYPE GetWindow(
   2614         REFGUID rguidReason,
   2615         HWND *phwnd) = 0;
   2616 
   2617 };
   2618 #ifdef __CRT_UUID_DECL
   2619 __CRT_UUID_DECL(IWindowForBindingUI, 0x79eac9d5, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   2620 #endif
   2621 #else
   2622 typedef struct IWindowForBindingUIVtbl {
   2623     BEGIN_INTERFACE
   2624 
   2625     /*** IUnknown methods ***/
   2626     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2627         IWindowForBindingUI* This,
   2628         REFIID riid,
   2629         void **ppvObject);
   2630 
   2631     ULONG (STDMETHODCALLTYPE *AddRef)(
   2632         IWindowForBindingUI* This);
   2633 
   2634     ULONG (STDMETHODCALLTYPE *Release)(
   2635         IWindowForBindingUI* This);
   2636 
   2637     /*** IWindowForBindingUI methods ***/
   2638     HRESULT (STDMETHODCALLTYPE *GetWindow)(
   2639         IWindowForBindingUI* This,
   2640         REFGUID rguidReason,
   2641         HWND *phwnd);
   2642 
   2643     END_INTERFACE
   2644 } IWindowForBindingUIVtbl;
   2645 interface IWindowForBindingUI {
   2646     CONST_VTBL IWindowForBindingUIVtbl* lpVtbl;
   2647 };
   2648 
   2649 #ifdef COBJMACROS
   2650 #ifndef WIDL_C_INLINE_WRAPPERS
   2651 /*** IUnknown methods ***/
   2652 #define IWindowForBindingUI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2653 #define IWindowForBindingUI_AddRef(This) (This)->lpVtbl->AddRef(This)
   2654 #define IWindowForBindingUI_Release(This) (This)->lpVtbl->Release(This)
   2655 /*** IWindowForBindingUI methods ***/
   2656 #define IWindowForBindingUI_GetWindow(This,rguidReason,phwnd) (This)->lpVtbl->GetWindow(This,rguidReason,phwnd)
   2657 #else
   2658 /*** IUnknown methods ***/
   2659 static FORCEINLINE HRESULT IWindowForBindingUI_QueryInterface(IWindowForBindingUI* This,REFIID riid,void **ppvObject) {
   2660     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2661 }
   2662 static FORCEINLINE ULONG IWindowForBindingUI_AddRef(IWindowForBindingUI* This) {
   2663     return This->lpVtbl->AddRef(This);
   2664 }
   2665 static FORCEINLINE ULONG IWindowForBindingUI_Release(IWindowForBindingUI* This) {
   2666     return This->lpVtbl->Release(This);
   2667 }
   2668 /*** IWindowForBindingUI methods ***/
   2669 static FORCEINLINE HRESULT IWindowForBindingUI_GetWindow(IWindowForBindingUI* This,REFGUID rguidReason,HWND *phwnd) {
   2670     return This->lpVtbl->GetWindow(This,rguidReason,phwnd);
   2671 }
   2672 #endif
   2673 #endif
   2674 
   2675 #endif
   2676 
   2677 HRESULT STDMETHODCALLTYPE IWindowForBindingUI_GetWindow_Proxy(
   2678     IWindowForBindingUI* This,
   2679     REFGUID rguidReason,
   2680     HWND *phwnd);
   2681 void __RPC_STUB IWindowForBindingUI_GetWindow_Stub(
   2682     IRpcStubBuffer* This,
   2683     IRpcChannelBuffer* pRpcChannelBuffer,
   2684     PRPC_MESSAGE pRpcMessage,
   2685     DWORD* pdwStubPhase);
   2686 
   2687 #endif  /* __IWindowForBindingUI_INTERFACE_DEFINED__ */
   2688 
   2689 #endif
   2690 
   2691 #ifndef _LPCODEINSTALL_DEFINED
   2692 #define _LPCODEINSTALL_DEFINED
   2693 
   2694 /*****************************************************************************
   2695  * ICodeInstall interface
   2696  */
   2697 #ifndef __ICodeInstall_INTERFACE_DEFINED__
   2698 #define __ICodeInstall_INTERFACE_DEFINED__
   2699 
   2700 typedef ICodeInstall *LPCODEINSTALL;
   2701 
   2702 typedef enum __WIDL_urlmon_generated_name_0000000B {
   2703     CIP_DISK_FULL = 0,
   2704     CIP_ACCESS_DENIED = 1,
   2705     CIP_NEWER_VERSION_EXISTS = 2,
   2706     CIP_OLDER_VERSION_EXISTS = 3,
   2707     CIP_NAME_CONFLICT = 4,
   2708     CIP_TRUST_VERIFICATION_COMPONENT_MISSING = 5,
   2709     CIP_EXE_SELF_REGISTERATION_TIMEOUT = 6,
   2710     CIP_UNSAFE_TO_ABORT = 7,
   2711     CIP_NEED_REBOOT = 8,
   2712     CIP_NEED_REBOOT_UI_PERMISSION = 9
   2713 } CIP_STATUS;
   2714 
   2715 DEFINE_GUID(IID_ICodeInstall, 0x79eac9d1, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   2716 #if defined(__cplusplus) && !defined(CINTERFACE)
   2717 MIDL_INTERFACE("79eac9d1-baf9-11ce-8c82-00aa004ba90b")
   2718 ICodeInstall : public IWindowForBindingUI
   2719 {
   2720     virtual HRESULT STDMETHODCALLTYPE OnCodeInstallProblem(
   2721         ULONG ulStatusCode,
   2722         LPCWSTR szDestination,
   2723         LPCWSTR szSource,
   2724         DWORD dwReserved) = 0;
   2725 
   2726 };
   2727 #ifdef __CRT_UUID_DECL
   2728 __CRT_UUID_DECL(ICodeInstall, 0x79eac9d1, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   2729 #endif
   2730 #else
   2731 typedef struct ICodeInstallVtbl {
   2732     BEGIN_INTERFACE
   2733 
   2734     /*** IUnknown methods ***/
   2735     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2736         ICodeInstall* This,
   2737         REFIID riid,
   2738         void **ppvObject);
   2739 
   2740     ULONG (STDMETHODCALLTYPE *AddRef)(
   2741         ICodeInstall* This);
   2742 
   2743     ULONG (STDMETHODCALLTYPE *Release)(
   2744         ICodeInstall* This);
   2745 
   2746     /*** IWindowForBindingUI methods ***/
   2747     HRESULT (STDMETHODCALLTYPE *GetWindow)(
   2748         ICodeInstall* This,
   2749         REFGUID rguidReason,
   2750         HWND *phwnd);
   2751 
   2752     /*** ICodeInstall methods ***/
   2753     HRESULT (STDMETHODCALLTYPE *OnCodeInstallProblem)(
   2754         ICodeInstall* This,
   2755         ULONG ulStatusCode,
   2756         LPCWSTR szDestination,
   2757         LPCWSTR szSource,
   2758         DWORD dwReserved);
   2759 
   2760     END_INTERFACE
   2761 } ICodeInstallVtbl;
   2762 interface ICodeInstall {
   2763     CONST_VTBL ICodeInstallVtbl* lpVtbl;
   2764 };
   2765 
   2766 #ifdef COBJMACROS
   2767 #ifndef WIDL_C_INLINE_WRAPPERS
   2768 /*** IUnknown methods ***/
   2769 #define ICodeInstall_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2770 #define ICodeInstall_AddRef(This) (This)->lpVtbl->AddRef(This)
   2771 #define ICodeInstall_Release(This) (This)->lpVtbl->Release(This)
   2772 /*** IWindowForBindingUI methods ***/
   2773 #define ICodeInstall_GetWindow(This,rguidReason,phwnd) (This)->lpVtbl->GetWindow(This,rguidReason,phwnd)
   2774 /*** ICodeInstall methods ***/
   2775 #define ICodeInstall_OnCodeInstallProblem(This,ulStatusCode,szDestination,szSource,dwReserved) (This)->lpVtbl->OnCodeInstallProblem(This,ulStatusCode,szDestination,szSource,dwReserved)
   2776 #else
   2777 /*** IUnknown methods ***/
   2778 static FORCEINLINE HRESULT ICodeInstall_QueryInterface(ICodeInstall* This,REFIID riid,void **ppvObject) {
   2779     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2780 }
   2781 static FORCEINLINE ULONG ICodeInstall_AddRef(ICodeInstall* This) {
   2782     return This->lpVtbl->AddRef(This);
   2783 }
   2784 static FORCEINLINE ULONG ICodeInstall_Release(ICodeInstall* This) {
   2785     return This->lpVtbl->Release(This);
   2786 }
   2787 /*** IWindowForBindingUI methods ***/
   2788 static FORCEINLINE HRESULT ICodeInstall_GetWindow(ICodeInstall* This,REFGUID rguidReason,HWND *phwnd) {
   2789     return This->lpVtbl->GetWindow(This,rguidReason,phwnd);
   2790 }
   2791 /*** ICodeInstall methods ***/
   2792 static FORCEINLINE HRESULT ICodeInstall_OnCodeInstallProblem(ICodeInstall* This,ULONG ulStatusCode,LPCWSTR szDestination,LPCWSTR szSource,DWORD dwReserved) {
   2793     return This->lpVtbl->OnCodeInstallProblem(This,ulStatusCode,szDestination,szSource,dwReserved);
   2794 }
   2795 #endif
   2796 #endif
   2797 
   2798 #endif
   2799 
   2800 HRESULT STDMETHODCALLTYPE ICodeInstall_OnCodeInstallProblem_Proxy(
   2801     ICodeInstall* This,
   2802     ULONG ulStatusCode,
   2803     LPCWSTR szDestination,
   2804     LPCWSTR szSource,
   2805     DWORD dwReserved);
   2806 void __RPC_STUB ICodeInstall_OnCodeInstallProblem_Stub(
   2807     IRpcStubBuffer* This,
   2808     IRpcChannelBuffer* pRpcChannelBuffer,
   2809     PRPC_MESSAGE pRpcMessage,
   2810     DWORD* pdwStubPhase);
   2811 
   2812 #endif  /* __ICodeInstall_INTERFACE_DEFINED__ */
   2813 
   2814 #endif
   2815 #endif
   2816 
   2817 #if (_WIN32_IE >= _WIN32_IE_IE70)
   2818 #ifndef _LPUri_DEFINED
   2819 #define _LPUri_DEFINED
   2820 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   2821 /*****************************************************************************
   2822  * IUri interface
   2823  */
   2824 #ifndef __IUri_INTERFACE_DEFINED__
   2825 #define __IUri_INTERFACE_DEFINED__
   2826 
   2827 typedef enum __WIDL_urlmon_generated_name_0000000C {
   2828     Uri_PROPERTY_ABSOLUTE_URI = 0,
   2829     Uri_PROPERTY_STRING_START = Uri_PROPERTY_ABSOLUTE_URI,
   2830     Uri_PROPERTY_AUTHORITY = 1,
   2831     Uri_PROPERTY_DISPLAY_URI = 2,
   2832     Uri_PROPERTY_DOMAIN = 3,
   2833     Uri_PROPERTY_EXTENSION = 4,
   2834     Uri_PROPERTY_FRAGMENT = 5,
   2835     Uri_PROPERTY_HOST = 6,
   2836     Uri_PROPERTY_PASSWORD = 7,
   2837     Uri_PROPERTY_PATH = 8,
   2838     Uri_PROPERTY_PATH_AND_QUERY = 9,
   2839     Uri_PROPERTY_QUERY = 10,
   2840     Uri_PROPERTY_RAW_URI = 11,
   2841     Uri_PROPERTY_SCHEME_NAME = 12,
   2842     Uri_PROPERTY_USER_INFO = 13,
   2843     Uri_PROPERTY_USER_NAME = 14,
   2844     Uri_PROPERTY_STRING_LAST = Uri_PROPERTY_USER_NAME,
   2845     Uri_PROPERTY_HOST_TYPE = 15,
   2846     Uri_PROPERTY_DWORD_START = Uri_PROPERTY_HOST_TYPE,
   2847     Uri_PROPERTY_PORT = 16,
   2848     Uri_PROPERTY_SCHEME = 17,
   2849     Uri_PROPERTY_ZONE = 18,
   2850     Uri_PROPERTY_DWORD_LAST = Uri_PROPERTY_ZONE
   2851 } Uri_PROPERTY;
   2852 
   2853 typedef enum __WIDL_urlmon_generated_name_0000000D {
   2854     Uri_HOST_UNKNOWN = 0,
   2855     Uri_HOST_DNS = 1,
   2856     Uri_HOST_IPV4 = 2,
   2857     Uri_HOST_IPV6 = 3,
   2858     Uri_HOST_IDN = 4
   2859 } Uri_HOST_TYPE;
   2860 
   2861 DEFINE_GUID(IID_IUri, 0xa39ee748, 0x6a27, 0x4817, 0xa6,0xf2, 0x13,0x91,0x4b,0xef,0x58,0x90);
   2862 #if defined(__cplusplus) && !defined(CINTERFACE)
   2863 MIDL_INTERFACE("a39ee748-6a27-4817-a6f2-13914bef5890")
   2864 IUri : public IUnknown
   2865 {
   2866     virtual HRESULT STDMETHODCALLTYPE GetPropertyBSTR(
   2867         Uri_PROPERTY uriProp,
   2868         BSTR *pbstrProperty,
   2869         DWORD dwFlags) = 0;
   2870 
   2871     virtual HRESULT STDMETHODCALLTYPE GetPropertyLength(
   2872         Uri_PROPERTY uriProp,
   2873         DWORD *pcchProperty,
   2874         DWORD dwFlags) = 0;
   2875 
   2876     virtual HRESULT STDMETHODCALLTYPE GetPropertyDWORD(
   2877         Uri_PROPERTY uriProp,
   2878         DWORD *pdwProperty,
   2879         DWORD dwFlags) = 0;
   2880 
   2881     virtual HRESULT STDMETHODCALLTYPE HasProperty(
   2882         Uri_PROPERTY uriProp,
   2883         WINBOOL *pfHasProperty) = 0;
   2884 
   2885     virtual HRESULT STDMETHODCALLTYPE GetAbsoluteUri(
   2886         BSTR *pbstrAbsoluteUri) = 0;
   2887 
   2888     virtual HRESULT STDMETHODCALLTYPE GetAuthority(
   2889         BSTR *pbstrAuthority) = 0;
   2890 
   2891     virtual HRESULT STDMETHODCALLTYPE GetDisplayUri(
   2892         BSTR *pbstrDisplayString) = 0;
   2893 
   2894     virtual HRESULT STDMETHODCALLTYPE GetDomain(
   2895         BSTR *pbstrDomain) = 0;
   2896 
   2897     virtual HRESULT STDMETHODCALLTYPE GetExtension(
   2898         BSTR *pbstrExtension) = 0;
   2899 
   2900     virtual HRESULT STDMETHODCALLTYPE GetFragment(
   2901         BSTR *pbstrFragment) = 0;
   2902 
   2903     virtual HRESULT STDMETHODCALLTYPE GetHost(
   2904         BSTR *pbstrHost) = 0;
   2905 
   2906     virtual HRESULT STDMETHODCALLTYPE GetPassword(
   2907         BSTR *pbstrPassword) = 0;
   2908 
   2909     virtual HRESULT STDMETHODCALLTYPE GetPath(
   2910         BSTR *pbstrPath) = 0;
   2911 
   2912     virtual HRESULT STDMETHODCALLTYPE GetPathAndQuery(
   2913         BSTR *pbstrPathAndQuery) = 0;
   2914 
   2915     virtual HRESULT STDMETHODCALLTYPE GetQuery(
   2916         BSTR *pbstrQuery) = 0;
   2917 
   2918     virtual HRESULT STDMETHODCALLTYPE GetRawUri(
   2919         BSTR *pbstrRawUri) = 0;
   2920 
   2921     virtual HRESULT STDMETHODCALLTYPE GetSchemeName(
   2922         BSTR *pbstrSchemeName) = 0;
   2923 
   2924     virtual HRESULT STDMETHODCALLTYPE GetUserInfo(
   2925         BSTR *pbstrUserInfo) = 0;
   2926 
   2927     virtual HRESULT STDMETHODCALLTYPE GetUserName(
   2928         BSTR *pbstrUserName) = 0;
   2929 
   2930     virtual HRESULT STDMETHODCALLTYPE GetHostType(
   2931         DWORD *pdwHostType) = 0;
   2932 
   2933     virtual HRESULT STDMETHODCALLTYPE GetPort(
   2934         DWORD *pdwPort) = 0;
   2935 
   2936     virtual HRESULT STDMETHODCALLTYPE GetScheme(
   2937         DWORD *pdwScheme) = 0;
   2938 
   2939     virtual HRESULT STDMETHODCALLTYPE GetZone(
   2940         DWORD *pdwZone) = 0;
   2941 
   2942     virtual HRESULT STDMETHODCALLTYPE GetProperties(
   2943         LPDWORD pdwFlags) = 0;
   2944 
   2945     virtual HRESULT STDMETHODCALLTYPE IsEqual(
   2946         IUri *pUri,
   2947         WINBOOL *pfEqual) = 0;
   2948 
   2949 };
   2950 #ifdef __CRT_UUID_DECL
   2951 __CRT_UUID_DECL(IUri, 0xa39ee748, 0x6a27, 0x4817, 0xa6,0xf2, 0x13,0x91,0x4b,0xef,0x58,0x90)
   2952 #endif
   2953 #else
   2954 typedef struct IUriVtbl {
   2955     BEGIN_INTERFACE
   2956 
   2957     /*** IUnknown methods ***/
   2958     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2959         IUri* This,
   2960         REFIID riid,
   2961         void **ppvObject);
   2962 
   2963     ULONG (STDMETHODCALLTYPE *AddRef)(
   2964         IUri* This);
   2965 
   2966     ULONG (STDMETHODCALLTYPE *Release)(
   2967         IUri* This);
   2968 
   2969     /*** IUri methods ***/
   2970     HRESULT (STDMETHODCALLTYPE *GetPropertyBSTR)(
   2971         IUri* This,
   2972         Uri_PROPERTY uriProp,
   2973         BSTR *pbstrProperty,
   2974         DWORD dwFlags);
   2975 
   2976     HRESULT (STDMETHODCALLTYPE *GetPropertyLength)(
   2977         IUri* This,
   2978         Uri_PROPERTY uriProp,
   2979         DWORD *pcchProperty,
   2980         DWORD dwFlags);
   2981 
   2982     HRESULT (STDMETHODCALLTYPE *GetPropertyDWORD)(
   2983         IUri* This,
   2984         Uri_PROPERTY uriProp,
   2985         DWORD *pdwProperty,
   2986         DWORD dwFlags);
   2987 
   2988     HRESULT (STDMETHODCALLTYPE *HasProperty)(
   2989         IUri* This,
   2990         Uri_PROPERTY uriProp,
   2991         WINBOOL *pfHasProperty);
   2992 
   2993     HRESULT (STDMETHODCALLTYPE *GetAbsoluteUri)(
   2994         IUri* This,
   2995         BSTR *pbstrAbsoluteUri);
   2996 
   2997     HRESULT (STDMETHODCALLTYPE *GetAuthority)(
   2998         IUri* This,
   2999         BSTR *pbstrAuthority);
   3000 
   3001     HRESULT (STDMETHODCALLTYPE *GetDisplayUri)(
   3002         IUri* This,
   3003         BSTR *pbstrDisplayString);
   3004 
   3005     HRESULT (STDMETHODCALLTYPE *GetDomain)(
   3006         IUri* This,
   3007         BSTR *pbstrDomain);
   3008 
   3009     HRESULT (STDMETHODCALLTYPE *GetExtension)(
   3010         IUri* This,
   3011         BSTR *pbstrExtension);
   3012 
   3013     HRESULT (STDMETHODCALLTYPE *GetFragment)(
   3014         IUri* This,
   3015         BSTR *pbstrFragment);
   3016 
   3017     HRESULT (STDMETHODCALLTYPE *GetHost)(
   3018         IUri* This,
   3019         BSTR *pbstrHost);
   3020 
   3021     HRESULT (STDMETHODCALLTYPE *GetPassword)(
   3022         IUri* This,
   3023         BSTR *pbstrPassword);
   3024 
   3025     HRESULT (STDMETHODCALLTYPE *GetPath)(
   3026         IUri* This,
   3027         BSTR *pbstrPath);
   3028 
   3029     HRESULT (STDMETHODCALLTYPE *GetPathAndQuery)(
   3030         IUri* This,
   3031         BSTR *pbstrPathAndQuery);
   3032 
   3033     HRESULT (STDMETHODCALLTYPE *GetQuery)(
   3034         IUri* This,
   3035         BSTR *pbstrQuery);
   3036 
   3037     HRESULT (STDMETHODCALLTYPE *GetRawUri)(
   3038         IUri* This,
   3039         BSTR *pbstrRawUri);
   3040 
   3041     HRESULT (STDMETHODCALLTYPE *GetSchemeName)(
   3042         IUri* This,
   3043         BSTR *pbstrSchemeName);
   3044 
   3045     HRESULT (STDMETHODCALLTYPE *GetUserInfo)(
   3046         IUri* This,
   3047         BSTR *pbstrUserInfo);
   3048 
   3049     HRESULT (STDMETHODCALLTYPE *GetUserName)(
   3050         IUri* This,
   3051         BSTR *pbstrUserName);
   3052 
   3053     HRESULT (STDMETHODCALLTYPE *GetHostType)(
   3054         IUri* This,
   3055         DWORD *pdwHostType);
   3056 
   3057     HRESULT (STDMETHODCALLTYPE *GetPort)(
   3058         IUri* This,
   3059         DWORD *pdwPort);
   3060 
   3061     HRESULT (STDMETHODCALLTYPE *GetScheme)(
   3062         IUri* This,
   3063         DWORD *pdwScheme);
   3064 
   3065     HRESULT (STDMETHODCALLTYPE *GetZone)(
   3066         IUri* This,
   3067         DWORD *pdwZone);
   3068 
   3069     HRESULT (STDMETHODCALLTYPE *GetProperties)(
   3070         IUri* This,
   3071         LPDWORD pdwFlags);
   3072 
   3073     HRESULT (STDMETHODCALLTYPE *IsEqual)(
   3074         IUri* This,
   3075         IUri *pUri,
   3076         WINBOOL *pfEqual);
   3077 
   3078     END_INTERFACE
   3079 } IUriVtbl;
   3080 interface IUri {
   3081     CONST_VTBL IUriVtbl* lpVtbl;
   3082 };
   3083 
   3084 #ifdef COBJMACROS
   3085 #ifndef WIDL_C_INLINE_WRAPPERS
   3086 /*** IUnknown methods ***/
   3087 #define IUri_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3088 #define IUri_AddRef(This) (This)->lpVtbl->AddRef(This)
   3089 #define IUri_Release(This) (This)->lpVtbl->Release(This)
   3090 /*** IUri methods ***/
   3091 #define IUri_GetPropertyBSTR(This,uriProp,pbstrProperty,dwFlags) (This)->lpVtbl->GetPropertyBSTR(This,uriProp,pbstrProperty,dwFlags)
   3092 #define IUri_GetPropertyLength(This,uriProp,pcchProperty,dwFlags) (This)->lpVtbl->GetPropertyLength(This,uriProp,pcchProperty,dwFlags)
   3093 #define IUri_GetPropertyDWORD(This,uriProp,pdwProperty,dwFlags) (This)->lpVtbl->GetPropertyDWORD(This,uriProp,pdwProperty,dwFlags)
   3094 #define IUri_HasProperty(This,uriProp,pfHasProperty) (This)->lpVtbl->HasProperty(This,uriProp,pfHasProperty)
   3095 #define IUri_GetAbsoluteUri(This,pbstrAbsoluteUri) (This)->lpVtbl->GetAbsoluteUri(This,pbstrAbsoluteUri)
   3096 #define IUri_GetAuthority(This,pbstrAuthority) (This)->lpVtbl->GetAuthority(This,pbstrAuthority)
   3097 #define IUri_GetDisplayUri(This,pbstrDisplayString) (This)->lpVtbl->GetDisplayUri(This,pbstrDisplayString)
   3098 #define IUri_GetDomain(This,pbstrDomain) (This)->lpVtbl->GetDomain(This,pbstrDomain)
   3099 #define IUri_GetExtension(This,pbstrExtension) (This)->lpVtbl->GetExtension(This,pbstrExtension)
   3100 #define IUri_GetFragment(This,pbstrFragment) (This)->lpVtbl->GetFragment(This,pbstrFragment)
   3101 #define IUri_GetHost(This,pbstrHost) (This)->lpVtbl->GetHost(This,pbstrHost)
   3102 #define IUri_GetPassword(This,pbstrPassword) (This)->lpVtbl->GetPassword(This,pbstrPassword)
   3103 #define IUri_GetPath(This,pbstrPath) (This)->lpVtbl->GetPath(This,pbstrPath)
   3104 #define IUri_GetPathAndQuery(This,pbstrPathAndQuery) (This)->lpVtbl->GetPathAndQuery(This,pbstrPathAndQuery)
   3105 #define IUri_GetQuery(This,pbstrQuery) (This)->lpVtbl->GetQuery(This,pbstrQuery)
   3106 #define IUri_GetRawUri(This,pbstrRawUri) (This)->lpVtbl->GetRawUri(This,pbstrRawUri)
   3107 #define IUri_GetSchemeName(This,pbstrSchemeName) (This)->lpVtbl->GetSchemeName(This,pbstrSchemeName)
   3108 #define IUri_GetUserInfo(This,pbstrUserInfo) (This)->lpVtbl->GetUserInfo(This,pbstrUserInfo)
   3109 #define IUri_GetUserName(This,pbstrUserName) (This)->lpVtbl->GetUserName(This,pbstrUserName)
   3110 #define IUri_GetHostType(This,pdwHostType) (This)->lpVtbl->GetHostType(This,pdwHostType)
   3111 #define IUri_GetPort(This,pdwPort) (This)->lpVtbl->GetPort(This,pdwPort)
   3112 #define IUri_GetScheme(This,pdwScheme) (This)->lpVtbl->GetScheme(This,pdwScheme)
   3113 #define IUri_GetZone(This,pdwZone) (This)->lpVtbl->GetZone(This,pdwZone)
   3114 #define IUri_GetProperties(This,pdwFlags) (This)->lpVtbl->GetProperties(This,pdwFlags)
   3115 #define IUri_IsEqual(This,pUri,pfEqual) (This)->lpVtbl->IsEqual(This,pUri,pfEqual)
   3116 #else
   3117 /*** IUnknown methods ***/
   3118 static FORCEINLINE HRESULT IUri_QueryInterface(IUri* This,REFIID riid,void **ppvObject) {
   3119     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3120 }
   3121 static FORCEINLINE ULONG IUri_AddRef(IUri* This) {
   3122     return This->lpVtbl->AddRef(This);
   3123 }
   3124 static FORCEINLINE ULONG IUri_Release(IUri* This) {
   3125     return This->lpVtbl->Release(This);
   3126 }
   3127 /*** IUri methods ***/
   3128 static FORCEINLINE HRESULT IUri_GetPropertyBSTR(IUri* This,Uri_PROPERTY uriProp,BSTR *pbstrProperty,DWORD dwFlags) {
   3129     return This->lpVtbl->GetPropertyBSTR(This,uriProp,pbstrProperty,dwFlags);
   3130 }
   3131 static FORCEINLINE HRESULT IUri_GetPropertyLength(IUri* This,Uri_PROPERTY uriProp,DWORD *pcchProperty,DWORD dwFlags) {
   3132     return This->lpVtbl->GetPropertyLength(This,uriProp,pcchProperty,dwFlags);
   3133 }
   3134 static FORCEINLINE HRESULT IUri_GetPropertyDWORD(IUri* This,Uri_PROPERTY uriProp,DWORD *pdwProperty,DWORD dwFlags) {
   3135     return This->lpVtbl->GetPropertyDWORD(This,uriProp,pdwProperty,dwFlags);
   3136 }
   3137 static FORCEINLINE HRESULT IUri_HasProperty(IUri* This,Uri_PROPERTY uriProp,WINBOOL *pfHasProperty) {
   3138     return This->lpVtbl->HasProperty(This,uriProp,pfHasProperty);
   3139 }
   3140 static FORCEINLINE HRESULT IUri_GetAbsoluteUri(IUri* This,BSTR *pbstrAbsoluteUri) {
   3141     return This->lpVtbl->GetAbsoluteUri(This,pbstrAbsoluteUri);
   3142 }
   3143 static FORCEINLINE HRESULT IUri_GetAuthority(IUri* This,BSTR *pbstrAuthority) {
   3144     return This->lpVtbl->GetAuthority(This,pbstrAuthority);
   3145 }
   3146 static FORCEINLINE HRESULT IUri_GetDisplayUri(IUri* This,BSTR *pbstrDisplayString) {
   3147     return This->lpVtbl->GetDisplayUri(This,pbstrDisplayString);
   3148 }
   3149 static FORCEINLINE HRESULT IUri_GetDomain(IUri* This,BSTR *pbstrDomain) {
   3150     return This->lpVtbl->GetDomain(This,pbstrDomain);
   3151 }
   3152 static FORCEINLINE HRESULT IUri_GetExtension(IUri* This,BSTR *pbstrExtension) {
   3153     return This->lpVtbl->GetExtension(This,pbstrExtension);
   3154 }
   3155 static FORCEINLINE HRESULT IUri_GetFragment(IUri* This,BSTR *pbstrFragment) {
   3156     return This->lpVtbl->GetFragment(This,pbstrFragment);
   3157 }
   3158 static FORCEINLINE HRESULT IUri_GetHost(IUri* This,BSTR *pbstrHost) {
   3159     return This->lpVtbl->GetHost(This,pbstrHost);
   3160 }
   3161 static FORCEINLINE HRESULT IUri_GetPassword(IUri* This,BSTR *pbstrPassword) {
   3162     return This->lpVtbl->GetPassword(This,pbstrPassword);
   3163 }
   3164 static FORCEINLINE HRESULT IUri_GetPath(IUri* This,BSTR *pbstrPath) {
   3165     return This->lpVtbl->GetPath(This,pbstrPath);
   3166 }
   3167 static FORCEINLINE HRESULT IUri_GetPathAndQuery(IUri* This,BSTR *pbstrPathAndQuery) {
   3168     return This->lpVtbl->GetPathAndQuery(This,pbstrPathAndQuery);
   3169 }
   3170 static FORCEINLINE HRESULT IUri_GetQuery(IUri* This,BSTR *pbstrQuery) {
   3171     return This->lpVtbl->GetQuery(This,pbstrQuery);
   3172 }
   3173 static FORCEINLINE HRESULT IUri_GetRawUri(IUri* This,BSTR *pbstrRawUri) {
   3174     return This->lpVtbl->GetRawUri(This,pbstrRawUri);
   3175 }
   3176 static FORCEINLINE HRESULT IUri_GetSchemeName(IUri* This,BSTR *pbstrSchemeName) {
   3177     return This->lpVtbl->GetSchemeName(This,pbstrSchemeName);
   3178 }
   3179 static FORCEINLINE HRESULT IUri_GetUserInfo(IUri* This,BSTR *pbstrUserInfo) {
   3180     return This->lpVtbl->GetUserInfo(This,pbstrUserInfo);
   3181 }
   3182 static FORCEINLINE HRESULT IUri_GetUserName(IUri* This,BSTR *pbstrUserName) {
   3183     return This->lpVtbl->GetUserName(This,pbstrUserName);
   3184 }
   3185 static FORCEINLINE HRESULT IUri_GetHostType(IUri* This,DWORD *pdwHostType) {
   3186     return This->lpVtbl->GetHostType(This,pdwHostType);
   3187 }
   3188 static FORCEINLINE HRESULT IUri_GetPort(IUri* This,DWORD *pdwPort) {
   3189     return This->lpVtbl->GetPort(This,pdwPort);
   3190 }
   3191 static FORCEINLINE HRESULT IUri_GetScheme(IUri* This,DWORD *pdwScheme) {
   3192     return This->lpVtbl->GetScheme(This,pdwScheme);
   3193 }
   3194 static FORCEINLINE HRESULT IUri_GetZone(IUri* This,DWORD *pdwZone) {
   3195     return This->lpVtbl->GetZone(This,pdwZone);
   3196 }
   3197 static FORCEINLINE HRESULT IUri_GetProperties(IUri* This,LPDWORD pdwFlags) {
   3198     return This->lpVtbl->GetProperties(This,pdwFlags);
   3199 }
   3200 static FORCEINLINE HRESULT IUri_IsEqual(IUri* This,IUri *pUri,WINBOOL *pfEqual) {
   3201     return This->lpVtbl->IsEqual(This,pUri,pfEqual);
   3202 }
   3203 #endif
   3204 #endif
   3205 
   3206 #endif
   3207 
   3208 HRESULT STDMETHODCALLTYPE IUri_GetPropertyBSTR_Proxy(
   3209     IUri* This,
   3210     Uri_PROPERTY uriProp,
   3211     BSTR *pbstrProperty,
   3212     DWORD dwFlags);
   3213 void __RPC_STUB IUri_GetPropertyBSTR_Stub(
   3214     IRpcStubBuffer* This,
   3215     IRpcChannelBuffer* pRpcChannelBuffer,
   3216     PRPC_MESSAGE pRpcMessage,
   3217     DWORD* pdwStubPhase);
   3218 HRESULT STDMETHODCALLTYPE IUri_GetPropertyLength_Proxy(
   3219     IUri* This,
   3220     Uri_PROPERTY uriProp,
   3221     DWORD *pcchProperty,
   3222     DWORD dwFlags);
   3223 void __RPC_STUB IUri_GetPropertyLength_Stub(
   3224     IRpcStubBuffer* This,
   3225     IRpcChannelBuffer* pRpcChannelBuffer,
   3226     PRPC_MESSAGE pRpcMessage,
   3227     DWORD* pdwStubPhase);
   3228 HRESULT STDMETHODCALLTYPE IUri_GetPropertyDWORD_Proxy(
   3229     IUri* This,
   3230     Uri_PROPERTY uriProp,
   3231     DWORD *pdwProperty,
   3232     DWORD dwFlags);
   3233 void __RPC_STUB IUri_GetPropertyDWORD_Stub(
   3234     IRpcStubBuffer* This,
   3235     IRpcChannelBuffer* pRpcChannelBuffer,
   3236     PRPC_MESSAGE pRpcMessage,
   3237     DWORD* pdwStubPhase);
   3238 HRESULT STDMETHODCALLTYPE IUri_HasProperty_Proxy(
   3239     IUri* This,
   3240     Uri_PROPERTY uriProp,
   3241     WINBOOL *pfHasProperty);
   3242 void __RPC_STUB IUri_HasProperty_Stub(
   3243     IRpcStubBuffer* This,
   3244     IRpcChannelBuffer* pRpcChannelBuffer,
   3245     PRPC_MESSAGE pRpcMessage,
   3246     DWORD* pdwStubPhase);
   3247 HRESULT STDMETHODCALLTYPE IUri_GetAbsoluteUri_Proxy(
   3248     IUri* This,
   3249     BSTR *pbstrAbsoluteUri);
   3250 void __RPC_STUB IUri_GetAbsoluteUri_Stub(
   3251     IRpcStubBuffer* This,
   3252     IRpcChannelBuffer* pRpcChannelBuffer,
   3253     PRPC_MESSAGE pRpcMessage,
   3254     DWORD* pdwStubPhase);
   3255 HRESULT STDMETHODCALLTYPE IUri_GetAuthority_Proxy(
   3256     IUri* This,
   3257     BSTR *pbstrAuthority);
   3258 void __RPC_STUB IUri_GetAuthority_Stub(
   3259     IRpcStubBuffer* This,
   3260     IRpcChannelBuffer* pRpcChannelBuffer,
   3261     PRPC_MESSAGE pRpcMessage,
   3262     DWORD* pdwStubPhase);
   3263 HRESULT STDMETHODCALLTYPE IUri_GetDisplayUri_Proxy(
   3264     IUri* This,
   3265     BSTR *pbstrDisplayString);
   3266 void __RPC_STUB IUri_GetDisplayUri_Stub(
   3267     IRpcStubBuffer* This,
   3268     IRpcChannelBuffer* pRpcChannelBuffer,
   3269     PRPC_MESSAGE pRpcMessage,
   3270     DWORD* pdwStubPhase);
   3271 HRESULT STDMETHODCALLTYPE IUri_GetDomain_Proxy(
   3272     IUri* This,
   3273     BSTR *pbstrDomain);
   3274 void __RPC_STUB IUri_GetDomain_Stub(
   3275     IRpcStubBuffer* This,
   3276     IRpcChannelBuffer* pRpcChannelBuffer,
   3277     PRPC_MESSAGE pRpcMessage,
   3278     DWORD* pdwStubPhase);
   3279 HRESULT STDMETHODCALLTYPE IUri_GetExtension_Proxy(
   3280     IUri* This,
   3281     BSTR *pbstrExtension);
   3282 void __RPC_STUB IUri_GetExtension_Stub(
   3283     IRpcStubBuffer* This,
   3284     IRpcChannelBuffer* pRpcChannelBuffer,
   3285     PRPC_MESSAGE pRpcMessage,
   3286     DWORD* pdwStubPhase);
   3287 HRESULT STDMETHODCALLTYPE IUri_GetFragment_Proxy(
   3288     IUri* This,
   3289     BSTR *pbstrFragment);
   3290 void __RPC_STUB IUri_GetFragment_Stub(
   3291     IRpcStubBuffer* This,
   3292     IRpcChannelBuffer* pRpcChannelBuffer,
   3293     PRPC_MESSAGE pRpcMessage,
   3294     DWORD* pdwStubPhase);
   3295 HRESULT STDMETHODCALLTYPE IUri_GetHost_Proxy(
   3296     IUri* This,
   3297     BSTR *pbstrHost);
   3298 void __RPC_STUB IUri_GetHost_Stub(
   3299     IRpcStubBuffer* This,
   3300     IRpcChannelBuffer* pRpcChannelBuffer,
   3301     PRPC_MESSAGE pRpcMessage,
   3302     DWORD* pdwStubPhase);
   3303 HRESULT STDMETHODCALLTYPE IUri_GetPassword_Proxy(
   3304     IUri* This,
   3305     BSTR *pbstrPassword);
   3306 void __RPC_STUB IUri_GetPassword_Stub(
   3307     IRpcStubBuffer* This,
   3308     IRpcChannelBuffer* pRpcChannelBuffer,
   3309     PRPC_MESSAGE pRpcMessage,
   3310     DWORD* pdwStubPhase);
   3311 HRESULT STDMETHODCALLTYPE IUri_GetPath_Proxy(
   3312     IUri* This,
   3313     BSTR *pbstrPath);
   3314 void __RPC_STUB IUri_GetPath_Stub(
   3315     IRpcStubBuffer* This,
   3316     IRpcChannelBuffer* pRpcChannelBuffer,
   3317     PRPC_MESSAGE pRpcMessage,
   3318     DWORD* pdwStubPhase);
   3319 HRESULT STDMETHODCALLTYPE IUri_GetPathAndQuery_Proxy(
   3320     IUri* This,
   3321     BSTR *pbstrPathAndQuery);
   3322 void __RPC_STUB IUri_GetPathAndQuery_Stub(
   3323     IRpcStubBuffer* This,
   3324     IRpcChannelBuffer* pRpcChannelBuffer,
   3325     PRPC_MESSAGE pRpcMessage,
   3326     DWORD* pdwStubPhase);
   3327 HRESULT STDMETHODCALLTYPE IUri_GetQuery_Proxy(
   3328     IUri* This,
   3329     BSTR *pbstrQuery);
   3330 void __RPC_STUB IUri_GetQuery_Stub(
   3331     IRpcStubBuffer* This,
   3332     IRpcChannelBuffer* pRpcChannelBuffer,
   3333     PRPC_MESSAGE pRpcMessage,
   3334     DWORD* pdwStubPhase);
   3335 HRESULT STDMETHODCALLTYPE IUri_GetRawUri_Proxy(
   3336     IUri* This,
   3337     BSTR *pbstrRawUri);
   3338 void __RPC_STUB IUri_GetRawUri_Stub(
   3339     IRpcStubBuffer* This,
   3340     IRpcChannelBuffer* pRpcChannelBuffer,
   3341     PRPC_MESSAGE pRpcMessage,
   3342     DWORD* pdwStubPhase);
   3343 HRESULT STDMETHODCALLTYPE IUri_GetSchemeName_Proxy(
   3344     IUri* This,
   3345     BSTR *pbstrSchemeName);
   3346 void __RPC_STUB IUri_GetSchemeName_Stub(
   3347     IRpcStubBuffer* This,
   3348     IRpcChannelBuffer* pRpcChannelBuffer,
   3349     PRPC_MESSAGE pRpcMessage,
   3350     DWORD* pdwStubPhase);
   3351 HRESULT STDMETHODCALLTYPE IUri_GetUserInfo_Proxy(
   3352     IUri* This,
   3353     BSTR *pbstrUserInfo);
   3354 void __RPC_STUB IUri_GetUserInfo_Stub(
   3355     IRpcStubBuffer* This,
   3356     IRpcChannelBuffer* pRpcChannelBuffer,
   3357     PRPC_MESSAGE pRpcMessage,
   3358     DWORD* pdwStubPhase);
   3359 HRESULT STDMETHODCALLTYPE IUri_GetUserName_Proxy(
   3360     IUri* This,
   3361     BSTR *pbstrUserName);
   3362 void __RPC_STUB IUri_GetUserName_Stub(
   3363     IRpcStubBuffer* This,
   3364     IRpcChannelBuffer* pRpcChannelBuffer,
   3365     PRPC_MESSAGE pRpcMessage,
   3366     DWORD* pdwStubPhase);
   3367 HRESULT STDMETHODCALLTYPE IUri_GetHostType_Proxy(
   3368     IUri* This,
   3369     DWORD *pdwHostType);
   3370 void __RPC_STUB IUri_GetHostType_Stub(
   3371     IRpcStubBuffer* This,
   3372     IRpcChannelBuffer* pRpcChannelBuffer,
   3373     PRPC_MESSAGE pRpcMessage,
   3374     DWORD* pdwStubPhase);
   3375 HRESULT STDMETHODCALLTYPE IUri_GetPort_Proxy(
   3376     IUri* This,
   3377     DWORD *pdwPort);
   3378 void __RPC_STUB IUri_GetPort_Stub(
   3379     IRpcStubBuffer* This,
   3380     IRpcChannelBuffer* pRpcChannelBuffer,
   3381     PRPC_MESSAGE pRpcMessage,
   3382     DWORD* pdwStubPhase);
   3383 HRESULT STDMETHODCALLTYPE IUri_GetScheme_Proxy(
   3384     IUri* This,
   3385     DWORD *pdwScheme);
   3386 void __RPC_STUB IUri_GetScheme_Stub(
   3387     IRpcStubBuffer* This,
   3388     IRpcChannelBuffer* pRpcChannelBuffer,
   3389     PRPC_MESSAGE pRpcMessage,
   3390     DWORD* pdwStubPhase);
   3391 HRESULT STDMETHODCALLTYPE IUri_GetZone_Proxy(
   3392     IUri* This,
   3393     DWORD *pdwZone);
   3394 void __RPC_STUB IUri_GetZone_Stub(
   3395     IRpcStubBuffer* This,
   3396     IRpcChannelBuffer* pRpcChannelBuffer,
   3397     PRPC_MESSAGE pRpcMessage,
   3398     DWORD* pdwStubPhase);
   3399 HRESULT STDMETHODCALLTYPE IUri_GetProperties_Proxy(
   3400     IUri* This,
   3401     LPDWORD pdwFlags);
   3402 void __RPC_STUB IUri_GetProperties_Stub(
   3403     IRpcStubBuffer* This,
   3404     IRpcChannelBuffer* pRpcChannelBuffer,
   3405     PRPC_MESSAGE pRpcMessage,
   3406     DWORD* pdwStubPhase);
   3407 HRESULT STDMETHODCALLTYPE IUri_IsEqual_Proxy(
   3408     IUri* This,
   3409     IUri *pUri,
   3410     WINBOOL *pfEqual);
   3411 void __RPC_STUB IUri_IsEqual_Stub(
   3412     IRpcStubBuffer* This,
   3413     IRpcChannelBuffer* pRpcChannelBuffer,
   3414     PRPC_MESSAGE pRpcMessage,
   3415     DWORD* pdwStubPhase);
   3416 
   3417 #endif  /* __IUri_INTERFACE_DEFINED__ */
   3418 
   3419 
   3420 STDAPI CreateUri(LPCWSTR pwzURI, DWORD dwFlags, DWORD_PTR dwReserved, IUri **ppURI);
   3421 STDAPI CreateUriWithFragment(
   3422 LPCWSTR pwzURI, LPCWSTR pwzFragment, DWORD dwFlags, DWORD_PTR dwReserved, IUri **ppURI);
   3423 #endif
   3424 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   3425 STDAPI CreateUriFromMultiByteString(LPCSTR pszANSIInputUri, DWORD dwEncodingFlags, DWORD dwCodePage, DWORD dwCreateFlags, DWORD_PTR dwReserved, IUri **ppUri);
   3426 #endif
   3427 
   3428 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
   3429 #define Uri_HAS_ABSOLUTE_URI (1 << Uri_PROPERTY_ABSOLUTE_URI)
   3430 #define Uri_HAS_AUTHORITY (1 << Uri_PROPERTY_AUTHORITY)
   3431 #define Uri_HAS_DISPLAY_URI (1 << Uri_PROPERTY_DISPLAY_URI)
   3432 #define Uri_HAS_DOMAIN (1 << Uri_PROPERTY_DOMAIN)
   3433 #define Uri_HAS_EXTENSION (1 << Uri_PROPERTY_EXTENSION)
   3434 #define Uri_HAS_FRAGMENT (1 << Uri_PROPERTY_FRAGMENT)
   3435 #define Uri_HAS_HOST (1 << Uri_PROPERTY_HOST)
   3436 #define Uri_HAS_PASSWORD (1 << Uri_PROPERTY_PASSWORD)
   3437 #define Uri_HAS_PATH (1 << Uri_PROPERTY_PATH)
   3438 #define Uri_HAS_QUERY (1 << Uri_PROPERTY_QUERY)
   3439 #define Uri_HAS_RAW_URI (1 << Uri_PROPERTY_RAW_URI)
   3440 #define Uri_HAS_SCHEME_NAME (1 << Uri_PROPERTY_SCHEME_NAME)
   3441 #define Uri_HAS_USER_NAME (1 << Uri_PROPERTY_USER_NAME)
   3442 #define Uri_HAS_PATH_AND_QUERY (1 << Uri_PROPERTY_PATH_AND_QUERY)
   3443 #define Uri_HAS_USER_INFO (1 << Uri_PROPERTY_USER_INFO)
   3444 #define Uri_HAS_HOST_TYPE (1 << Uri_PROPERTY_HOST_TYPE)
   3445 #define Uri_HAS_PORT (1 << Uri_PROPERTY_PORT)
   3446 #define Uri_HAS_SCHEME (1 << Uri_PROPERTY_SCHEME)
   3447 #define Uri_HAS_ZONE (1 << Uri_PROPERTY_ZONE)
   3448 
   3449 #define Uri_CREATE_ALLOW_RELATIVE 0x1
   3450 #define Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME 0x2
   3451 #define Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME 0x4
   3452 #define Uri_CREATE_NOFRAG 0x8
   3453 #define Uri_CREATE_NO_CANONICALIZE 0x10
   3454 #define Uri_CREATE_CANONICALIZE 0x100
   3455 #define Uri_CREATE_FILE_USE_DOS_PATH 0x20
   3456 #define Uri_CREATE_DECODE_EXTRA_INFO 0x40
   3457 #define Uri_CREATE_NO_DECODE_EXTRA_INFO 0x80
   3458 #define Uri_CREATE_CRACK_UNKNOWN_SCHEMES 0x200
   3459 #define Uri_CREATE_NO_CRACK_UNKNOWN_SCHEMES 0x400
   3460 #define Uri_CREATE_PRE_PROCESS_HTML_URI 0x800
   3461 #define Uri_CREATE_NO_PRE_PROCESS_HTML_URI 0x1000
   3462 #define Uri_CREATE_IE_SETTINGS 0x2000
   3463 #define Uri_CREATE_NO_IE_SETTINGS 0x4000
   3464 #define Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS 0x8000
   3465 #define Uri_CREATE_NORMALIZE_INTL_CHARACTERS 0x10000
   3466 #define Uri_CREATE_CANONICALIZE_ABSOLUTE 0x20000
   3467 
   3468 #define Uri_DISPLAY_NO_FRAGMENT 0x1
   3469 #define Uri_PUNYCODE_IDN_HOST 0x2
   3470 #define Uri_DISPLAY_IDN_HOST 0x4
   3471 #define Uri_DISPLAY_NO_PUNYCODE 0x8
   3472 
   3473 #define Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8 0x1
   3474 #define Uri_ENCODING_USER_INFO_AND_PATH_IS_CP 0x2
   3475 #define Uri_ENCODING_HOST_IS_IDN 0x4
   3476 #define Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8 0x8
   3477 #define Uri_ENCODING_HOST_IS_PERCENT_ENCODED_CP 0x10
   3478 #define Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8 0x20
   3479 #define Uri_ENCODING_QUERY_AND_FRAGMENT_IS_CP 0x40
   3480 
   3481 #define Uri_ENCODING_RFC (Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8 | Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8 | Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8)
   3482 
   3483 #define UriBuilder_USE_ORIGINAL_FLAGS 0x1
   3484 #endif
   3485 #endif
   3486 
   3487 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   3488 /*****************************************************************************
   3489  * IUriContainer interface
   3490  */
   3491 #ifndef __IUriContainer_INTERFACE_DEFINED__
   3492 #define __IUriContainer_INTERFACE_DEFINED__
   3493 
   3494 DEFINE_GUID(IID_IUriContainer, 0xa158a630, 0xed6f, 0x45fb, 0xb9,0x87, 0xf6,0x86,0x76,0xf5,0x77,0x52);
   3495 #if defined(__cplusplus) && !defined(CINTERFACE)
   3496 MIDL_INTERFACE("a158a630-ed6f-45fb-b987-f68676f57752")
   3497 IUriContainer : public IUnknown
   3498 {
   3499     virtual HRESULT STDMETHODCALLTYPE GetIUri(
   3500         IUri **ppIUri) = 0;
   3501 
   3502 };
   3503 #ifdef __CRT_UUID_DECL
   3504 __CRT_UUID_DECL(IUriContainer, 0xa158a630, 0xed6f, 0x45fb, 0xb9,0x87, 0xf6,0x86,0x76,0xf5,0x77,0x52)
   3505 #endif
   3506 #else
   3507 typedef struct IUriContainerVtbl {
   3508     BEGIN_INTERFACE
   3509 
   3510     /*** IUnknown methods ***/
   3511     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3512         IUriContainer* This,
   3513         REFIID riid,
   3514         void **ppvObject);
   3515 
   3516     ULONG (STDMETHODCALLTYPE *AddRef)(
   3517         IUriContainer* This);
   3518 
   3519     ULONG (STDMETHODCALLTYPE *Release)(
   3520         IUriContainer* This);
   3521 
   3522     /*** IUriContainer methods ***/
   3523     HRESULT (STDMETHODCALLTYPE *GetIUri)(
   3524         IUriContainer* This,
   3525         IUri **ppIUri);
   3526 
   3527     END_INTERFACE
   3528 } IUriContainerVtbl;
   3529 interface IUriContainer {
   3530     CONST_VTBL IUriContainerVtbl* lpVtbl;
   3531 };
   3532 
   3533 #ifdef COBJMACROS
   3534 #ifndef WIDL_C_INLINE_WRAPPERS
   3535 /*** IUnknown methods ***/
   3536 #define IUriContainer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3537 #define IUriContainer_AddRef(This) (This)->lpVtbl->AddRef(This)
   3538 #define IUriContainer_Release(This) (This)->lpVtbl->Release(This)
   3539 /*** IUriContainer methods ***/
   3540 #define IUriContainer_GetIUri(This,ppIUri) (This)->lpVtbl->GetIUri(This,ppIUri)
   3541 #else
   3542 /*** IUnknown methods ***/
   3543 static FORCEINLINE HRESULT IUriContainer_QueryInterface(IUriContainer* This,REFIID riid,void **ppvObject) {
   3544     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3545 }
   3546 static FORCEINLINE ULONG IUriContainer_AddRef(IUriContainer* This) {
   3547     return This->lpVtbl->AddRef(This);
   3548 }
   3549 static FORCEINLINE ULONG IUriContainer_Release(IUriContainer* This) {
   3550     return This->lpVtbl->Release(This);
   3551 }
   3552 /*** IUriContainer methods ***/
   3553 static FORCEINLINE HRESULT IUriContainer_GetIUri(IUriContainer* This,IUri **ppIUri) {
   3554     return This->lpVtbl->GetIUri(This,ppIUri);
   3555 }
   3556 #endif
   3557 #endif
   3558 
   3559 #endif
   3560 
   3561 HRESULT STDMETHODCALLTYPE IUriContainer_GetIUri_Proxy(
   3562     IUriContainer* This,
   3563     IUri **ppIUri);
   3564 void __RPC_STUB IUriContainer_GetIUri_Stub(
   3565     IRpcStubBuffer* This,
   3566     IRpcChannelBuffer* pRpcChannelBuffer,
   3567     PRPC_MESSAGE pRpcMessage,
   3568     DWORD* pdwStubPhase);
   3569 
   3570 #endif  /* __IUriContainer_INTERFACE_DEFINED__ */
   3571 
   3572 
   3573 /*****************************************************************************
   3574  * IUriBuilder interface
   3575  */
   3576 #ifndef __IUriBuilder_INTERFACE_DEFINED__
   3577 #define __IUriBuilder_INTERFACE_DEFINED__
   3578 
   3579 DEFINE_GUID(IID_IUriBuilder, 0x4221b2e1, 0x8955, 0x46c0, 0xbd,0x5b, 0xde,0x98,0x97,0x56,0x5d,0xe7);
   3580 #if defined(__cplusplus) && !defined(CINTERFACE)
   3581 MIDL_INTERFACE("4221b2e1-8955-46c0-bd5b-de9897565de7")
   3582 IUriBuilder : public IUnknown
   3583 {
   3584     virtual HRESULT STDMETHODCALLTYPE CreateUriSimple(
   3585         DWORD dwAllowEncodingPropertyMask,
   3586         DWORD_PTR dwReserved,
   3587         IUri **ppIUri) = 0;
   3588 
   3589     virtual HRESULT STDMETHODCALLTYPE CreateUri(
   3590         DWORD dwCreateFlags,
   3591         DWORD dwAllowEncodingPropertyMask,
   3592         DWORD_PTR dwReserved,
   3593         IUri **ppIUri) = 0;
   3594 
   3595     virtual HRESULT STDMETHODCALLTYPE CreateUriWithFlags(
   3596         DWORD dwCreateFlags,
   3597         DWORD dwUriBuilderFlags,
   3598         DWORD dwAllowEncodingPropertyMask,
   3599         DWORD_PTR dwReserved,
   3600         IUri **ppIUri) = 0;
   3601 
   3602     virtual HRESULT STDMETHODCALLTYPE GetIUri(
   3603         IUri **ppIUri) = 0;
   3604 
   3605     virtual HRESULT STDMETHODCALLTYPE SetIUri(
   3606         IUri *pIUri) = 0;
   3607 
   3608     virtual HRESULT STDMETHODCALLTYPE GetFragment(
   3609         DWORD *pcchFragment,
   3610         LPCWSTR *ppwzFragment) = 0;
   3611 
   3612     virtual HRESULT STDMETHODCALLTYPE GetHost(
   3613         DWORD *pcchHost,
   3614         LPCWSTR *ppwzHost) = 0;
   3615 
   3616     virtual HRESULT STDMETHODCALLTYPE GetPassword(
   3617         DWORD *pcchPassword,
   3618         LPCWSTR *ppwzPassword) = 0;
   3619 
   3620     virtual HRESULT STDMETHODCALLTYPE GetPath(
   3621         DWORD *pcchPath,
   3622         LPCWSTR *ppwzPath) = 0;
   3623 
   3624     virtual HRESULT STDMETHODCALLTYPE GetPort(
   3625         WINBOOL *pfHasPort,
   3626         DWORD *pdwPort) = 0;
   3627 
   3628     virtual HRESULT STDMETHODCALLTYPE GetQuery(
   3629         DWORD *pcchQuery,
   3630         LPCWSTR *ppwzQuery) = 0;
   3631 
   3632     virtual HRESULT STDMETHODCALLTYPE GetSchemeName(
   3633         DWORD *pcchSchemeName,
   3634         LPCWSTR *ppwzSchemeName) = 0;
   3635 
   3636     virtual HRESULT STDMETHODCALLTYPE GetUserName(
   3637         DWORD *pcchUserName,
   3638         LPCWSTR *ppwzUserName) = 0;
   3639 
   3640     virtual HRESULT STDMETHODCALLTYPE SetFragment(
   3641         LPCWSTR pwzNewValue) = 0;
   3642 
   3643     virtual HRESULT STDMETHODCALLTYPE SetHost(
   3644         LPCWSTR pwzNewValue) = 0;
   3645 
   3646     virtual HRESULT STDMETHODCALLTYPE SetPassword(
   3647         LPCWSTR pwzNewValue) = 0;
   3648 
   3649     virtual HRESULT STDMETHODCALLTYPE SetPath(
   3650         LPCWSTR pwzNewValue) = 0;
   3651 
   3652     virtual HRESULT STDMETHODCALLTYPE SetPort(
   3653         WINBOOL fHasPort,
   3654         DWORD dwNewValue) = 0;
   3655 
   3656     virtual HRESULT STDMETHODCALLTYPE SetQuery(
   3657         LPCWSTR pwzNewValue) = 0;
   3658 
   3659     virtual HRESULT STDMETHODCALLTYPE SetSchemeName(
   3660         LPCWSTR pwzNewValue) = 0;
   3661 
   3662     virtual HRESULT STDMETHODCALLTYPE SetUserName(
   3663         LPCWSTR pwzNewValue) = 0;
   3664 
   3665     virtual HRESULT STDMETHODCALLTYPE RemoveProperties(
   3666         DWORD dwPropertyMask) = 0;
   3667 
   3668     virtual HRESULT STDMETHODCALLTYPE HasBeenModified(
   3669         WINBOOL *pfModified) = 0;
   3670 
   3671 };
   3672 #ifdef __CRT_UUID_DECL
   3673 __CRT_UUID_DECL(IUriBuilder, 0x4221b2e1, 0x8955, 0x46c0, 0xbd,0x5b, 0xde,0x98,0x97,0x56,0x5d,0xe7)
   3674 #endif
   3675 #else
   3676 typedef struct IUriBuilderVtbl {
   3677     BEGIN_INTERFACE
   3678 
   3679     /*** IUnknown methods ***/
   3680     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3681         IUriBuilder* This,
   3682         REFIID riid,
   3683         void **ppvObject);
   3684 
   3685     ULONG (STDMETHODCALLTYPE *AddRef)(
   3686         IUriBuilder* This);
   3687 
   3688     ULONG (STDMETHODCALLTYPE *Release)(
   3689         IUriBuilder* This);
   3690 
   3691     /*** IUriBuilder methods ***/
   3692     HRESULT (STDMETHODCALLTYPE *CreateUriSimple)(
   3693         IUriBuilder* This,
   3694         DWORD dwAllowEncodingPropertyMask,
   3695         DWORD_PTR dwReserved,
   3696         IUri **ppIUri);
   3697 
   3698     HRESULT (STDMETHODCALLTYPE *CreateUri)(
   3699         IUriBuilder* This,
   3700         DWORD dwCreateFlags,
   3701         DWORD dwAllowEncodingPropertyMask,
   3702         DWORD_PTR dwReserved,
   3703         IUri **ppIUri);
   3704 
   3705     HRESULT (STDMETHODCALLTYPE *CreateUriWithFlags)(
   3706         IUriBuilder* This,
   3707         DWORD dwCreateFlags,
   3708         DWORD dwUriBuilderFlags,
   3709         DWORD dwAllowEncodingPropertyMask,
   3710         DWORD_PTR dwReserved,
   3711         IUri **ppIUri);
   3712 
   3713     HRESULT (STDMETHODCALLTYPE *GetIUri)(
   3714         IUriBuilder* This,
   3715         IUri **ppIUri);
   3716 
   3717     HRESULT (STDMETHODCALLTYPE *SetIUri)(
   3718         IUriBuilder* This,
   3719         IUri *pIUri);
   3720 
   3721     HRESULT (STDMETHODCALLTYPE *GetFragment)(
   3722         IUriBuilder* This,
   3723         DWORD *pcchFragment,
   3724         LPCWSTR *ppwzFragment);
   3725 
   3726     HRESULT (STDMETHODCALLTYPE *GetHost)(
   3727         IUriBuilder* This,
   3728         DWORD *pcchHost,
   3729         LPCWSTR *ppwzHost);
   3730 
   3731     HRESULT (STDMETHODCALLTYPE *GetPassword)(
   3732         IUriBuilder* This,
   3733         DWORD *pcchPassword,
   3734         LPCWSTR *ppwzPassword);
   3735 
   3736     HRESULT (STDMETHODCALLTYPE *GetPath)(
   3737         IUriBuilder* This,
   3738         DWORD *pcchPath,
   3739         LPCWSTR *ppwzPath);
   3740 
   3741     HRESULT (STDMETHODCALLTYPE *GetPort)(
   3742         IUriBuilder* This,
   3743         WINBOOL *pfHasPort,
   3744         DWORD *pdwPort);
   3745 
   3746     HRESULT (STDMETHODCALLTYPE *GetQuery)(
   3747         IUriBuilder* This,
   3748         DWORD *pcchQuery,
   3749         LPCWSTR *ppwzQuery);
   3750 
   3751     HRESULT (STDMETHODCALLTYPE *GetSchemeName)(
   3752         IUriBuilder* This,
   3753         DWORD *pcchSchemeName,
   3754         LPCWSTR *ppwzSchemeName);
   3755 
   3756     HRESULT (STDMETHODCALLTYPE *GetUserName)(
   3757         IUriBuilder* This,
   3758         DWORD *pcchUserName,
   3759         LPCWSTR *ppwzUserName);
   3760 
   3761     HRESULT (STDMETHODCALLTYPE *SetFragment)(
   3762         IUriBuilder* This,
   3763         LPCWSTR pwzNewValue);
   3764 
   3765     HRESULT (STDMETHODCALLTYPE *SetHost)(
   3766         IUriBuilder* This,
   3767         LPCWSTR pwzNewValue);
   3768 
   3769     HRESULT (STDMETHODCALLTYPE *SetPassword)(
   3770         IUriBuilder* This,
   3771         LPCWSTR pwzNewValue);
   3772 
   3773     HRESULT (STDMETHODCALLTYPE *SetPath)(
   3774         IUriBuilder* This,
   3775         LPCWSTR pwzNewValue);
   3776 
   3777     HRESULT (STDMETHODCALLTYPE *SetPort)(
   3778         IUriBuilder* This,
   3779         WINBOOL fHasPort,
   3780         DWORD dwNewValue);
   3781 
   3782     HRESULT (STDMETHODCALLTYPE *SetQuery)(
   3783         IUriBuilder* This,
   3784         LPCWSTR pwzNewValue);
   3785 
   3786     HRESULT (STDMETHODCALLTYPE *SetSchemeName)(
   3787         IUriBuilder* This,
   3788         LPCWSTR pwzNewValue);
   3789 
   3790     HRESULT (STDMETHODCALLTYPE *SetUserName)(
   3791         IUriBuilder* This,
   3792         LPCWSTR pwzNewValue);
   3793 
   3794     HRESULT (STDMETHODCALLTYPE *RemoveProperties)(
   3795         IUriBuilder* This,
   3796         DWORD dwPropertyMask);
   3797 
   3798     HRESULT (STDMETHODCALLTYPE *HasBeenModified)(
   3799         IUriBuilder* This,
   3800         WINBOOL *pfModified);
   3801 
   3802     END_INTERFACE
   3803 } IUriBuilderVtbl;
   3804 interface IUriBuilder {
   3805     CONST_VTBL IUriBuilderVtbl* lpVtbl;
   3806 };
   3807 
   3808 #ifdef COBJMACROS
   3809 #ifndef WIDL_C_INLINE_WRAPPERS
   3810 /*** IUnknown methods ***/
   3811 #define IUriBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3812 #define IUriBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
   3813 #define IUriBuilder_Release(This) (This)->lpVtbl->Release(This)
   3814 /*** IUriBuilder methods ***/
   3815 #define IUriBuilder_CreateUriSimple(This,dwAllowEncodingPropertyMask,dwReserved,ppIUri) (This)->lpVtbl->CreateUriSimple(This,dwAllowEncodingPropertyMask,dwReserved,ppIUri)
   3816 #define IUriBuilder_CreateUri(This,dwCreateFlags,dwAllowEncodingPropertyMask,dwReserved,ppIUri) (This)->lpVtbl->CreateUri(This,dwCreateFlags,dwAllowEncodingPropertyMask,dwReserved,ppIUri)
   3817 #define IUriBuilder_CreateUriWithFlags(This,dwCreateFlags,dwUriBuilderFlags,dwAllowEncodingPropertyMask,dwReserved,ppIUri) (This)->lpVtbl->CreateUriWithFlags(This,dwCreateFlags,dwUriBuilderFlags,dwAllowEncodingPropertyMask,dwReserved,ppIUri)
   3818 #define IUriBuilder_GetIUri(This,ppIUri) (This)->lpVtbl->GetIUri(This,ppIUri)
   3819 #define IUriBuilder_SetIUri(This,pIUri) (This)->lpVtbl->SetIUri(This,pIUri)
   3820 #define IUriBuilder_GetFragment(This,pcchFragment,ppwzFragment) (This)->lpVtbl->GetFragment(This,pcchFragment,ppwzFragment)
   3821 #define IUriBuilder_GetHost(This,pcchHost,ppwzHost) (This)->lpVtbl->GetHost(This,pcchHost,ppwzHost)
   3822 #define IUriBuilder_GetPassword(This,pcchPassword,ppwzPassword) (This)->lpVtbl->GetPassword(This,pcchPassword,ppwzPassword)
   3823 #define IUriBuilder_GetPath(This,pcchPath,ppwzPath) (This)->lpVtbl->GetPath(This,pcchPath,ppwzPath)
   3824 #define IUriBuilder_GetPort(This,pfHasPort,pdwPort) (This)->lpVtbl->GetPort(This,pfHasPort,pdwPort)
   3825 #define IUriBuilder_GetQuery(This,pcchQuery,ppwzQuery) (This)->lpVtbl->GetQuery(This,pcchQuery,ppwzQuery)
   3826 #define IUriBuilder_GetSchemeName(This,pcchSchemeName,ppwzSchemeName) (This)->lpVtbl->GetSchemeName(This,pcchSchemeName,ppwzSchemeName)
   3827 #define IUriBuilder_GetUserName(This,pcchUserName,ppwzUserName) (This)->lpVtbl->GetUserName(This,pcchUserName,ppwzUserName)
   3828 #define IUriBuilder_SetFragment(This,pwzNewValue) (This)->lpVtbl->SetFragment(This,pwzNewValue)
   3829 #define IUriBuilder_SetHost(This,pwzNewValue) (This)->lpVtbl->SetHost(This,pwzNewValue)
   3830 #define IUriBuilder_SetPassword(This,pwzNewValue) (This)->lpVtbl->SetPassword(This,pwzNewValue)
   3831 #define IUriBuilder_SetPath(This,pwzNewValue) (This)->lpVtbl->SetPath(This,pwzNewValue)
   3832 #define IUriBuilder_SetPort(This,fHasPort,dwNewValue) (This)->lpVtbl->SetPort(This,fHasPort,dwNewValue)
   3833 #define IUriBuilder_SetQuery(This,pwzNewValue) (This)->lpVtbl->SetQuery(This,pwzNewValue)
   3834 #define IUriBuilder_SetSchemeName(This,pwzNewValue) (This)->lpVtbl->SetSchemeName(This,pwzNewValue)
   3835 #define IUriBuilder_SetUserName(This,pwzNewValue) (This)->lpVtbl->SetUserName(This,pwzNewValue)
   3836 #define IUriBuilder_RemoveProperties(This,dwPropertyMask) (This)->lpVtbl->RemoveProperties(This,dwPropertyMask)
   3837 #define IUriBuilder_HasBeenModified(This,pfModified) (This)->lpVtbl->HasBeenModified(This,pfModified)
   3838 #else
   3839 /*** IUnknown methods ***/
   3840 static FORCEINLINE HRESULT IUriBuilder_QueryInterface(IUriBuilder* This,REFIID riid,void **ppvObject) {
   3841     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3842 }
   3843 static FORCEINLINE ULONG IUriBuilder_AddRef(IUriBuilder* This) {
   3844     return This->lpVtbl->AddRef(This);
   3845 }
   3846 static FORCEINLINE ULONG IUriBuilder_Release(IUriBuilder* This) {
   3847     return This->lpVtbl->Release(This);
   3848 }
   3849 /*** IUriBuilder methods ***/
   3850 static FORCEINLINE HRESULT IUriBuilder_CreateUriSimple(IUriBuilder* This,DWORD dwAllowEncodingPropertyMask,DWORD_PTR dwReserved,IUri **ppIUri) {
   3851     return This->lpVtbl->CreateUriSimple(This,dwAllowEncodingPropertyMask,dwReserved,ppIUri);
   3852 }
   3853 static FORCEINLINE HRESULT IUriBuilder_CreateUri(IUriBuilder* This,DWORD dwCreateFlags,DWORD dwAllowEncodingPropertyMask,DWORD_PTR dwReserved,IUri **ppIUri) {
   3854     return This->lpVtbl->CreateUri(This,dwCreateFlags,dwAllowEncodingPropertyMask,dwReserved,ppIUri);
   3855 }
   3856 static FORCEINLINE HRESULT IUriBuilder_CreateUriWithFlags(IUriBuilder* This,DWORD dwCreateFlags,DWORD dwUriBuilderFlags,DWORD dwAllowEncodingPropertyMask,DWORD_PTR dwReserved,IUri **ppIUri) {
   3857     return This->lpVtbl->CreateUriWithFlags(This,dwCreateFlags,dwUriBuilderFlags,dwAllowEncodingPropertyMask,dwReserved,ppIUri);
   3858 }
   3859 static FORCEINLINE HRESULT IUriBuilder_GetIUri(IUriBuilder* This,IUri **ppIUri) {
   3860     return This->lpVtbl->GetIUri(This,ppIUri);
   3861 }
   3862 static FORCEINLINE HRESULT IUriBuilder_SetIUri(IUriBuilder* This,IUri *pIUri) {
   3863     return This->lpVtbl->SetIUri(This,pIUri);
   3864 }
   3865 static FORCEINLINE HRESULT IUriBuilder_GetFragment(IUriBuilder* This,DWORD *pcchFragment,LPCWSTR *ppwzFragment) {
   3866     return This->lpVtbl->GetFragment(This,pcchFragment,ppwzFragment);
   3867 }
   3868 static FORCEINLINE HRESULT IUriBuilder_GetHost(IUriBuilder* This,DWORD *pcchHost,LPCWSTR *ppwzHost) {
   3869     return This->lpVtbl->GetHost(This,pcchHost,ppwzHost);
   3870 }
   3871 static FORCEINLINE HRESULT IUriBuilder_GetPassword(IUriBuilder* This,DWORD *pcchPassword,LPCWSTR *ppwzPassword) {
   3872     return This->lpVtbl->GetPassword(This,pcchPassword,ppwzPassword);
   3873 }
   3874 static FORCEINLINE HRESULT IUriBuilder_GetPath(IUriBuilder* This,DWORD *pcchPath,LPCWSTR *ppwzPath) {
   3875     return This->lpVtbl->GetPath(This,pcchPath,ppwzPath);
   3876 }
   3877 static FORCEINLINE HRESULT IUriBuilder_GetPort(IUriBuilder* This,WINBOOL *pfHasPort,DWORD *pdwPort) {
   3878     return This->lpVtbl->GetPort(This,pfHasPort,pdwPort);
   3879 }
   3880 static FORCEINLINE HRESULT IUriBuilder_GetQuery(IUriBuilder* This,DWORD *pcchQuery,LPCWSTR *ppwzQuery) {
   3881     return This->lpVtbl->GetQuery(This,pcchQuery,ppwzQuery);
   3882 }
   3883 static FORCEINLINE HRESULT IUriBuilder_GetSchemeName(IUriBuilder* This,DWORD *pcchSchemeName,LPCWSTR *ppwzSchemeName) {
   3884     return This->lpVtbl->GetSchemeName(This,pcchSchemeName,ppwzSchemeName);
   3885 }
   3886 static FORCEINLINE HRESULT IUriBuilder_GetUserName(IUriBuilder* This,DWORD *pcchUserName,LPCWSTR *ppwzUserName) {
   3887     return This->lpVtbl->GetUserName(This,pcchUserName,ppwzUserName);
   3888 }
   3889 static FORCEINLINE HRESULT IUriBuilder_SetFragment(IUriBuilder* This,LPCWSTR pwzNewValue) {
   3890     return This->lpVtbl->SetFragment(This,pwzNewValue);
   3891 }
   3892 static FORCEINLINE HRESULT IUriBuilder_SetHost(IUriBuilder* This,LPCWSTR pwzNewValue) {
   3893     return This->lpVtbl->SetHost(This,pwzNewValue);
   3894 }
   3895 static FORCEINLINE HRESULT IUriBuilder_SetPassword(IUriBuilder* This,LPCWSTR pwzNewValue) {
   3896     return This->lpVtbl->SetPassword(This,pwzNewValue);
   3897 }
   3898 static FORCEINLINE HRESULT IUriBuilder_SetPath(IUriBuilder* This,LPCWSTR pwzNewValue) {
   3899     return This->lpVtbl->SetPath(This,pwzNewValue);
   3900 }
   3901 static FORCEINLINE HRESULT IUriBuilder_SetPort(IUriBuilder* This,WINBOOL fHasPort,DWORD dwNewValue) {
   3902     return This->lpVtbl->SetPort(This,fHasPort,dwNewValue);
   3903 }
   3904 static FORCEINLINE HRESULT IUriBuilder_SetQuery(IUriBuilder* This,LPCWSTR pwzNewValue) {
   3905     return This->lpVtbl->SetQuery(This,pwzNewValue);
   3906 }
   3907 static FORCEINLINE HRESULT IUriBuilder_SetSchemeName(IUriBuilder* This,LPCWSTR pwzNewValue) {
   3908     return This->lpVtbl->SetSchemeName(This,pwzNewValue);
   3909 }
   3910 static FORCEINLINE HRESULT IUriBuilder_SetUserName(IUriBuilder* This,LPCWSTR pwzNewValue) {
   3911     return This->lpVtbl->SetUserName(This,pwzNewValue);
   3912 }
   3913 static FORCEINLINE HRESULT IUriBuilder_RemoveProperties(IUriBuilder* This,DWORD dwPropertyMask) {
   3914     return This->lpVtbl->RemoveProperties(This,dwPropertyMask);
   3915 }
   3916 static FORCEINLINE HRESULT IUriBuilder_HasBeenModified(IUriBuilder* This,WINBOOL *pfModified) {
   3917     return This->lpVtbl->HasBeenModified(This,pfModified);
   3918 }
   3919 #endif
   3920 #endif
   3921 
   3922 #endif
   3923 
   3924 HRESULT STDMETHODCALLTYPE IUriBuilder_CreateUriSimple_Proxy(
   3925     IUriBuilder* This,
   3926     DWORD dwAllowEncodingPropertyMask,
   3927     DWORD_PTR dwReserved,
   3928     IUri **ppIUri);
   3929 void __RPC_STUB IUriBuilder_CreateUriSimple_Stub(
   3930     IRpcStubBuffer* This,
   3931     IRpcChannelBuffer* pRpcChannelBuffer,
   3932     PRPC_MESSAGE pRpcMessage,
   3933     DWORD* pdwStubPhase);
   3934 HRESULT STDMETHODCALLTYPE IUriBuilder_CreateUri_Proxy(
   3935     IUriBuilder* This,
   3936     DWORD dwCreateFlags,
   3937     DWORD dwAllowEncodingPropertyMask,
   3938     DWORD_PTR dwReserved,
   3939     IUri **ppIUri);
   3940 void __RPC_STUB IUriBuilder_CreateUri_Stub(
   3941     IRpcStubBuffer* This,
   3942     IRpcChannelBuffer* pRpcChannelBuffer,
   3943     PRPC_MESSAGE pRpcMessage,
   3944     DWORD* pdwStubPhase);
   3945 HRESULT STDMETHODCALLTYPE IUriBuilder_CreateUriWithFlags_Proxy(
   3946     IUriBuilder* This,
   3947     DWORD dwCreateFlags,
   3948     DWORD dwUriBuilderFlags,
   3949     DWORD dwAllowEncodingPropertyMask,
   3950     DWORD_PTR dwReserved,
   3951     IUri **ppIUri);
   3952 void __RPC_STUB IUriBuilder_CreateUriWithFlags_Stub(
   3953     IRpcStubBuffer* This,
   3954     IRpcChannelBuffer* pRpcChannelBuffer,
   3955     PRPC_MESSAGE pRpcMessage,
   3956     DWORD* pdwStubPhase);
   3957 HRESULT STDMETHODCALLTYPE IUriBuilder_GetIUri_Proxy(
   3958     IUriBuilder* This,
   3959     IUri **ppIUri);
   3960 void __RPC_STUB IUriBuilder_GetIUri_Stub(
   3961     IRpcStubBuffer* This,
   3962     IRpcChannelBuffer* pRpcChannelBuffer,
   3963     PRPC_MESSAGE pRpcMessage,
   3964     DWORD* pdwStubPhase);
   3965 HRESULT STDMETHODCALLTYPE IUriBuilder_SetIUri_Proxy(
   3966     IUriBuilder* This,
   3967     IUri *pIUri);
   3968 void __RPC_STUB IUriBuilder_SetIUri_Stub(
   3969     IRpcStubBuffer* This,
   3970     IRpcChannelBuffer* pRpcChannelBuffer,
   3971     PRPC_MESSAGE pRpcMessage,
   3972     DWORD* pdwStubPhase);
   3973 HRESULT STDMETHODCALLTYPE IUriBuilder_GetFragment_Proxy(
   3974     IUriBuilder* This,
   3975     DWORD *pcchFragment,
   3976     LPCWSTR *ppwzFragment);
   3977 void __RPC_STUB IUriBuilder_GetFragment_Stub(
   3978     IRpcStubBuffer* This,
   3979     IRpcChannelBuffer* pRpcChannelBuffer,
   3980     PRPC_MESSAGE pRpcMessage,
   3981     DWORD* pdwStubPhase);
   3982 HRESULT STDMETHODCALLTYPE IUriBuilder_GetHost_Proxy(
   3983     IUriBuilder* This,
   3984     DWORD *pcchHost,
   3985     LPCWSTR *ppwzHost);
   3986 void __RPC_STUB IUriBuilder_GetHost_Stub(
   3987     IRpcStubBuffer* This,
   3988     IRpcChannelBuffer* pRpcChannelBuffer,
   3989     PRPC_MESSAGE pRpcMessage,
   3990     DWORD* pdwStubPhase);
   3991 HRESULT STDMETHODCALLTYPE IUriBuilder_GetPassword_Proxy(
   3992     IUriBuilder* This,
   3993     DWORD *pcchPassword,
   3994     LPCWSTR *ppwzPassword);
   3995 void __RPC_STUB IUriBuilder_GetPassword_Stub(
   3996     IRpcStubBuffer* This,
   3997     IRpcChannelBuffer* pRpcChannelBuffer,
   3998     PRPC_MESSAGE pRpcMessage,
   3999     DWORD* pdwStubPhase);
   4000 HRESULT STDMETHODCALLTYPE IUriBuilder_GetPath_Proxy(
   4001     IUriBuilder* This,
   4002     DWORD *pcchPath,
   4003     LPCWSTR *ppwzPath);
   4004 void __RPC_STUB IUriBuilder_GetPath_Stub(
   4005     IRpcStubBuffer* This,
   4006     IRpcChannelBuffer* pRpcChannelBuffer,
   4007     PRPC_MESSAGE pRpcMessage,
   4008     DWORD* pdwStubPhase);
   4009 HRESULT STDMETHODCALLTYPE IUriBuilder_GetPort_Proxy(
   4010     IUriBuilder* This,
   4011     WINBOOL *pfHasPort,
   4012     DWORD *pdwPort);
   4013 void __RPC_STUB IUriBuilder_GetPort_Stub(
   4014     IRpcStubBuffer* This,
   4015     IRpcChannelBuffer* pRpcChannelBuffer,
   4016     PRPC_MESSAGE pRpcMessage,
   4017     DWORD* pdwStubPhase);
   4018 HRESULT STDMETHODCALLTYPE IUriBuilder_GetQuery_Proxy(
   4019     IUriBuilder* This,
   4020     DWORD *pcchQuery,
   4021     LPCWSTR *ppwzQuery);
   4022 void __RPC_STUB IUriBuilder_GetQuery_Stub(
   4023     IRpcStubBuffer* This,
   4024     IRpcChannelBuffer* pRpcChannelBuffer,
   4025     PRPC_MESSAGE pRpcMessage,
   4026     DWORD* pdwStubPhase);
   4027 HRESULT STDMETHODCALLTYPE IUriBuilder_GetSchemeName_Proxy(
   4028     IUriBuilder* This,
   4029     DWORD *pcchSchemeName,
   4030     LPCWSTR *ppwzSchemeName);
   4031 void __RPC_STUB IUriBuilder_GetSchemeName_Stub(
   4032     IRpcStubBuffer* This,
   4033     IRpcChannelBuffer* pRpcChannelBuffer,
   4034     PRPC_MESSAGE pRpcMessage,
   4035     DWORD* pdwStubPhase);
   4036 HRESULT STDMETHODCALLTYPE IUriBuilder_GetUserName_Proxy(
   4037     IUriBuilder* This,
   4038     DWORD *pcchUserName,
   4039     LPCWSTR *ppwzUserName);
   4040 void __RPC_STUB IUriBuilder_GetUserName_Stub(
   4041     IRpcStubBuffer* This,
   4042     IRpcChannelBuffer* pRpcChannelBuffer,
   4043     PRPC_MESSAGE pRpcMessage,
   4044     DWORD* pdwStubPhase);
   4045 HRESULT STDMETHODCALLTYPE IUriBuilder_SetFragment_Proxy(
   4046     IUriBuilder* This,
   4047     LPCWSTR pwzNewValue);
   4048 void __RPC_STUB IUriBuilder_SetFragment_Stub(
   4049     IRpcStubBuffer* This,
   4050     IRpcChannelBuffer* pRpcChannelBuffer,
   4051     PRPC_MESSAGE pRpcMessage,
   4052     DWORD* pdwStubPhase);
   4053 HRESULT STDMETHODCALLTYPE IUriBuilder_SetHost_Proxy(
   4054     IUriBuilder* This,
   4055     LPCWSTR pwzNewValue);
   4056 void __RPC_STUB IUriBuilder_SetHost_Stub(
   4057     IRpcStubBuffer* This,
   4058     IRpcChannelBuffer* pRpcChannelBuffer,
   4059     PRPC_MESSAGE pRpcMessage,
   4060     DWORD* pdwStubPhase);
   4061 HRESULT STDMETHODCALLTYPE IUriBuilder_SetPassword_Proxy(
   4062     IUriBuilder* This,
   4063     LPCWSTR pwzNewValue);
   4064 void __RPC_STUB IUriBuilder_SetPassword_Stub(
   4065     IRpcStubBuffer* This,
   4066     IRpcChannelBuffer* pRpcChannelBuffer,
   4067     PRPC_MESSAGE pRpcMessage,
   4068     DWORD* pdwStubPhase);
   4069 HRESULT STDMETHODCALLTYPE IUriBuilder_SetPath_Proxy(
   4070     IUriBuilder* This,
   4071     LPCWSTR pwzNewValue);
   4072 void __RPC_STUB IUriBuilder_SetPath_Stub(
   4073     IRpcStubBuffer* This,
   4074     IRpcChannelBuffer* pRpcChannelBuffer,
   4075     PRPC_MESSAGE pRpcMessage,
   4076     DWORD* pdwStubPhase);
   4077 HRESULT STDMETHODCALLTYPE IUriBuilder_SetPort_Proxy(
   4078     IUriBuilder* This,
   4079     WINBOOL fHasPort,
   4080     DWORD dwNewValue);
   4081 void __RPC_STUB IUriBuilder_SetPort_Stub(
   4082     IRpcStubBuffer* This,
   4083     IRpcChannelBuffer* pRpcChannelBuffer,
   4084     PRPC_MESSAGE pRpcMessage,
   4085     DWORD* pdwStubPhase);
   4086 HRESULT STDMETHODCALLTYPE IUriBuilder_SetQuery_Proxy(
   4087     IUriBuilder* This,
   4088     LPCWSTR pwzNewValue);
   4089 void __RPC_STUB IUriBuilder_SetQuery_Stub(
   4090     IRpcStubBuffer* This,
   4091     IRpcChannelBuffer* pRpcChannelBuffer,
   4092     PRPC_MESSAGE pRpcMessage,
   4093     DWORD* pdwStubPhase);
   4094 HRESULT STDMETHODCALLTYPE IUriBuilder_SetSchemeName_Proxy(
   4095     IUriBuilder* This,
   4096     LPCWSTR pwzNewValue);
   4097 void __RPC_STUB IUriBuilder_SetSchemeName_Stub(
   4098     IRpcStubBuffer* This,
   4099     IRpcChannelBuffer* pRpcChannelBuffer,
   4100     PRPC_MESSAGE pRpcMessage,
   4101     DWORD* pdwStubPhase);
   4102 HRESULT STDMETHODCALLTYPE IUriBuilder_SetUserName_Proxy(
   4103     IUriBuilder* This,
   4104     LPCWSTR pwzNewValue);
   4105 void __RPC_STUB IUriBuilder_SetUserName_Stub(
   4106     IRpcStubBuffer* This,
   4107     IRpcChannelBuffer* pRpcChannelBuffer,
   4108     PRPC_MESSAGE pRpcMessage,
   4109     DWORD* pdwStubPhase);
   4110 HRESULT STDMETHODCALLTYPE IUriBuilder_RemoveProperties_Proxy(
   4111     IUriBuilder* This,
   4112     DWORD dwPropertyMask);
   4113 void __RPC_STUB IUriBuilder_RemoveProperties_Stub(
   4114     IRpcStubBuffer* This,
   4115     IRpcChannelBuffer* pRpcChannelBuffer,
   4116     PRPC_MESSAGE pRpcMessage,
   4117     DWORD* pdwStubPhase);
   4118 HRESULT STDMETHODCALLTYPE IUriBuilder_HasBeenModified_Proxy(
   4119     IUriBuilder* This,
   4120     WINBOOL *pfModified);
   4121 void __RPC_STUB IUriBuilder_HasBeenModified_Stub(
   4122     IRpcStubBuffer* This,
   4123     IRpcChannelBuffer* pRpcChannelBuffer,
   4124     PRPC_MESSAGE pRpcMessage,
   4125     DWORD* pdwStubPhase);
   4126 
   4127 #endif  /* __IUriBuilder_INTERFACE_DEFINED__ */
   4128 
   4129 
   4130 /*****************************************************************************
   4131  * IUriBuilderFactory interface
   4132  */
   4133 #ifndef __IUriBuilderFactory_INTERFACE_DEFINED__
   4134 #define __IUriBuilderFactory_INTERFACE_DEFINED__
   4135 
   4136 DEFINE_GUID(IID_IUriBuilderFactory, 0xe982ce48, 0x0b96, 0x440c, 0xbc,0x37, 0x0c,0x86,0x9b,0x27,0xa2,0x9e);
   4137 #if defined(__cplusplus) && !defined(CINTERFACE)
   4138 MIDL_INTERFACE("e982ce48-0b96-440c-bc37-0c869b27a29e")
   4139 IUriBuilderFactory : public IUnknown
   4140 {
   4141     virtual HRESULT STDMETHODCALLTYPE CreateIUriBuilder(
   4142         DWORD dwFlags,
   4143         DWORD_PTR dwReserved,
   4144         IUriBuilder **ppIUriBuilder) = 0;
   4145 
   4146     virtual HRESULT STDMETHODCALLTYPE CreateInitializedIUriBuilder(
   4147         DWORD dwFlags,
   4148         DWORD_PTR dwReserved,
   4149         IUriBuilder **ppIUriBuilder) = 0;
   4150 
   4151 };
   4152 #ifdef __CRT_UUID_DECL
   4153 __CRT_UUID_DECL(IUriBuilderFactory, 0xe982ce48, 0x0b96, 0x440c, 0xbc,0x37, 0x0c,0x86,0x9b,0x27,0xa2,0x9e)
   4154 #endif
   4155 #else
   4156 typedef struct IUriBuilderFactoryVtbl {
   4157     BEGIN_INTERFACE
   4158 
   4159     /*** IUnknown methods ***/
   4160     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4161         IUriBuilderFactory* This,
   4162         REFIID riid,
   4163         void **ppvObject);
   4164 
   4165     ULONG (STDMETHODCALLTYPE *AddRef)(
   4166         IUriBuilderFactory* This);
   4167 
   4168     ULONG (STDMETHODCALLTYPE *Release)(
   4169         IUriBuilderFactory* This);
   4170 
   4171     /*** IUriBuilderFactory methods ***/
   4172     HRESULT (STDMETHODCALLTYPE *CreateIUriBuilder)(
   4173         IUriBuilderFactory* This,
   4174         DWORD dwFlags,
   4175         DWORD_PTR dwReserved,
   4176         IUriBuilder **ppIUriBuilder);
   4177 
   4178     HRESULT (STDMETHODCALLTYPE *CreateInitializedIUriBuilder)(
   4179         IUriBuilderFactory* This,
   4180         DWORD dwFlags,
   4181         DWORD_PTR dwReserved,
   4182         IUriBuilder **ppIUriBuilder);
   4183 
   4184     END_INTERFACE
   4185 } IUriBuilderFactoryVtbl;
   4186 interface IUriBuilderFactory {
   4187     CONST_VTBL IUriBuilderFactoryVtbl* lpVtbl;
   4188 };
   4189 
   4190 #ifdef COBJMACROS
   4191 #ifndef WIDL_C_INLINE_WRAPPERS
   4192 /*** IUnknown methods ***/
   4193 #define IUriBuilderFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4194 #define IUriBuilderFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
   4195 #define IUriBuilderFactory_Release(This) (This)->lpVtbl->Release(This)
   4196 /*** IUriBuilderFactory methods ***/
   4197 #define IUriBuilderFactory_CreateIUriBuilder(This,dwFlags,dwReserved,ppIUriBuilder) (This)->lpVtbl->CreateIUriBuilder(This,dwFlags,dwReserved,ppIUriBuilder)
   4198 #define IUriBuilderFactory_CreateInitializedIUriBuilder(This,dwFlags,dwReserved,ppIUriBuilder) (This)->lpVtbl->CreateInitializedIUriBuilder(This,dwFlags,dwReserved,ppIUriBuilder)
   4199 #else
   4200 /*** IUnknown methods ***/
   4201 static FORCEINLINE HRESULT IUriBuilderFactory_QueryInterface(IUriBuilderFactory* This,REFIID riid,void **ppvObject) {
   4202     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4203 }
   4204 static FORCEINLINE ULONG IUriBuilderFactory_AddRef(IUriBuilderFactory* This) {
   4205     return This->lpVtbl->AddRef(This);
   4206 }
   4207 static FORCEINLINE ULONG IUriBuilderFactory_Release(IUriBuilderFactory* This) {
   4208     return This->lpVtbl->Release(This);
   4209 }
   4210 /*** IUriBuilderFactory methods ***/
   4211 static FORCEINLINE HRESULT IUriBuilderFactory_CreateIUriBuilder(IUriBuilderFactory* This,DWORD dwFlags,DWORD_PTR dwReserved,IUriBuilder **ppIUriBuilder) {
   4212     return This->lpVtbl->CreateIUriBuilder(This,dwFlags,dwReserved,ppIUriBuilder);
   4213 }
   4214 static FORCEINLINE HRESULT IUriBuilderFactory_CreateInitializedIUriBuilder(IUriBuilderFactory* This,DWORD dwFlags,DWORD_PTR dwReserved,IUriBuilder **ppIUriBuilder) {
   4215     return This->lpVtbl->CreateInitializedIUriBuilder(This,dwFlags,dwReserved,ppIUriBuilder);
   4216 }
   4217 #endif
   4218 #endif
   4219 
   4220 #endif
   4221 
   4222 HRESULT STDMETHODCALLTYPE IUriBuilderFactory_CreateIUriBuilder_Proxy(
   4223     IUriBuilderFactory* This,
   4224     DWORD dwFlags,
   4225     DWORD_PTR dwReserved,
   4226     IUriBuilder **ppIUriBuilder);
   4227 void __RPC_STUB IUriBuilderFactory_CreateIUriBuilder_Stub(
   4228     IRpcStubBuffer* This,
   4229     IRpcChannelBuffer* pRpcChannelBuffer,
   4230     PRPC_MESSAGE pRpcMessage,
   4231     DWORD* pdwStubPhase);
   4232 HRESULT STDMETHODCALLTYPE IUriBuilderFactory_CreateInitializedIUriBuilder_Proxy(
   4233     IUriBuilderFactory* This,
   4234     DWORD dwFlags,
   4235     DWORD_PTR dwReserved,
   4236     IUriBuilder **ppIUriBuilder);
   4237 void __RPC_STUB IUriBuilderFactory_CreateInitializedIUriBuilder_Stub(
   4238     IRpcStubBuffer* This,
   4239     IRpcChannelBuffer* pRpcChannelBuffer,
   4240     PRPC_MESSAGE pRpcMessage,
   4241     DWORD* pdwStubPhase);
   4242 
   4243 #endif  /* __IUriBuilderFactory_INTERFACE_DEFINED__ */
   4244 
   4245 
   4246 STDAPI CreateIUriBuilder(IUri *pIUri, DWORD dwFlags, DWORD_PTR dwReserved, IUriBuilder **ppIUriBuilder);
   4247 #endif
   4248 #endif
   4249 
   4250 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   4251 #ifndef _LPWININETINFO_DEFINED
   4252 #define _LPWININETINFO_DEFINED
   4253 
   4254 /*****************************************************************************
   4255  * IWinInetInfo interface
   4256  */
   4257 #ifndef __IWinInetInfo_INTERFACE_DEFINED__
   4258 #define __IWinInetInfo_INTERFACE_DEFINED__
   4259 
   4260 typedef IWinInetInfo *LPWININETINFO;
   4261 DEFINE_GUID(IID_IWinInetInfo, 0x79eac9d6, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   4262 #if defined(__cplusplus) && !defined(CINTERFACE)
   4263 MIDL_INTERFACE("79eac9d6-bafa-11ce-8c82-00aa004ba90b")
   4264 IWinInetInfo : public IUnknown
   4265 {
   4266     virtual HRESULT STDMETHODCALLTYPE QueryOption(
   4267         DWORD dwOption,
   4268         LPVOID pBuffer,
   4269         DWORD *pcbBuf) = 0;
   4270 
   4271 };
   4272 #ifdef __CRT_UUID_DECL
   4273 __CRT_UUID_DECL(IWinInetInfo, 0x79eac9d6, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   4274 #endif
   4275 #else
   4276 typedef struct IWinInetInfoVtbl {
   4277     BEGIN_INTERFACE
   4278 
   4279     /*** IUnknown methods ***/
   4280     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4281         IWinInetInfo* This,
   4282         REFIID riid,
   4283         void **ppvObject);
   4284 
   4285     ULONG (STDMETHODCALLTYPE *AddRef)(
   4286         IWinInetInfo* This);
   4287 
   4288     ULONG (STDMETHODCALLTYPE *Release)(
   4289         IWinInetInfo* This);
   4290 
   4291     /*** IWinInetInfo methods ***/
   4292     HRESULT (STDMETHODCALLTYPE *QueryOption)(
   4293         IWinInetInfo* This,
   4294         DWORD dwOption,
   4295         LPVOID pBuffer,
   4296         DWORD *pcbBuf);
   4297 
   4298     END_INTERFACE
   4299 } IWinInetInfoVtbl;
   4300 interface IWinInetInfo {
   4301     CONST_VTBL IWinInetInfoVtbl* lpVtbl;
   4302 };
   4303 
   4304 #ifdef COBJMACROS
   4305 #ifndef WIDL_C_INLINE_WRAPPERS
   4306 /*** IUnknown methods ***/
   4307 #define IWinInetInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4308 #define IWinInetInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   4309 #define IWinInetInfo_Release(This) (This)->lpVtbl->Release(This)
   4310 /*** IWinInetInfo methods ***/
   4311 #define IWinInetInfo_QueryOption(This,dwOption,pBuffer,pcbBuf) (This)->lpVtbl->QueryOption(This,dwOption,pBuffer,pcbBuf)
   4312 #else
   4313 /*** IUnknown methods ***/
   4314 static FORCEINLINE HRESULT IWinInetInfo_QueryInterface(IWinInetInfo* This,REFIID riid,void **ppvObject) {
   4315     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4316 }
   4317 static FORCEINLINE ULONG IWinInetInfo_AddRef(IWinInetInfo* This) {
   4318     return This->lpVtbl->AddRef(This);
   4319 }
   4320 static FORCEINLINE ULONG IWinInetInfo_Release(IWinInetInfo* This) {
   4321     return This->lpVtbl->Release(This);
   4322 }
   4323 /*** IWinInetInfo methods ***/
   4324 static FORCEINLINE HRESULT IWinInetInfo_QueryOption(IWinInetInfo* This,DWORD dwOption,LPVOID pBuffer,DWORD *pcbBuf) {
   4325     return This->lpVtbl->QueryOption(This,dwOption,pBuffer,pcbBuf);
   4326 }
   4327 #endif
   4328 #endif
   4329 
   4330 #endif
   4331 
   4332 HRESULT STDMETHODCALLTYPE IWinInetInfo_RemoteQueryOption_Proxy(
   4333     IWinInetInfo* This,
   4334     DWORD dwOption,
   4335     BYTE *pBuffer,
   4336     DWORD *pcbBuf);
   4337 void __RPC_STUB IWinInetInfo_RemoteQueryOption_Stub(
   4338     IRpcStubBuffer* This,
   4339     IRpcChannelBuffer* pRpcChannelBuffer,
   4340     PRPC_MESSAGE pRpcMessage,
   4341     DWORD* pdwStubPhase);
   4342 HRESULT CALLBACK IWinInetInfo_QueryOption_Proxy(
   4343     IWinInetInfo* This,
   4344     DWORD dwOption,
   4345     LPVOID pBuffer,
   4346     DWORD *pcbBuf);
   4347 HRESULT __RPC_STUB IWinInetInfo_QueryOption_Stub(
   4348     IWinInetInfo* This,
   4349     DWORD dwOption,
   4350     BYTE *pBuffer,
   4351     DWORD *pcbBuf);
   4352 
   4353 #endif  /* __IWinInetInfo_INTERFACE_DEFINED__ */
   4354 
   4355 #endif
   4356 
   4357 #define WININETINFO_OPTION_LOCK_HANDLE 65534
   4358 
   4359 #ifndef _LPHTTPSECURITY_DEFINED
   4360 #define _LPHTTPSECURITY_DEFINED
   4361 
   4362 /*****************************************************************************
   4363  * IHttpSecurity interface
   4364  */
   4365 #ifndef __IHttpSecurity_INTERFACE_DEFINED__
   4366 #define __IHttpSecurity_INTERFACE_DEFINED__
   4367 
   4368 typedef IHttpSecurity *LPHTTPSECURITY;
   4369 
   4370 DEFINE_GUID(IID_IHttpSecurity, 0x79eac9d7, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   4371 #if defined(__cplusplus) && !defined(CINTERFACE)
   4372 MIDL_INTERFACE("79eac9d7-bafa-11ce-8c82-00aa004ba90b")
   4373 IHttpSecurity : public IWindowForBindingUI
   4374 {
   4375     virtual HRESULT STDMETHODCALLTYPE OnSecurityProblem(
   4376         DWORD dwProblem) = 0;
   4377 
   4378 };
   4379 #ifdef __CRT_UUID_DECL
   4380 __CRT_UUID_DECL(IHttpSecurity, 0x79eac9d7, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   4381 #endif
   4382 #else
   4383 typedef struct IHttpSecurityVtbl {
   4384     BEGIN_INTERFACE
   4385 
   4386     /*** IUnknown methods ***/
   4387     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4388         IHttpSecurity* This,
   4389         REFIID riid,
   4390         void **ppvObject);
   4391 
   4392     ULONG (STDMETHODCALLTYPE *AddRef)(
   4393         IHttpSecurity* This);
   4394 
   4395     ULONG (STDMETHODCALLTYPE *Release)(
   4396         IHttpSecurity* This);
   4397 
   4398     /*** IWindowForBindingUI methods ***/
   4399     HRESULT (STDMETHODCALLTYPE *GetWindow)(
   4400         IHttpSecurity* This,
   4401         REFGUID rguidReason,
   4402         HWND *phwnd);
   4403 
   4404     /*** IHttpSecurity methods ***/
   4405     HRESULT (STDMETHODCALLTYPE *OnSecurityProblem)(
   4406         IHttpSecurity* This,
   4407         DWORD dwProblem);
   4408 
   4409     END_INTERFACE
   4410 } IHttpSecurityVtbl;
   4411 interface IHttpSecurity {
   4412     CONST_VTBL IHttpSecurityVtbl* lpVtbl;
   4413 };
   4414 
   4415 #ifdef COBJMACROS
   4416 #ifndef WIDL_C_INLINE_WRAPPERS
   4417 /*** IUnknown methods ***/
   4418 #define IHttpSecurity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4419 #define IHttpSecurity_AddRef(This) (This)->lpVtbl->AddRef(This)
   4420 #define IHttpSecurity_Release(This) (This)->lpVtbl->Release(This)
   4421 /*** IWindowForBindingUI methods ***/
   4422 #define IHttpSecurity_GetWindow(This,rguidReason,phwnd) (This)->lpVtbl->GetWindow(This,rguidReason,phwnd)
   4423 /*** IHttpSecurity methods ***/
   4424 #define IHttpSecurity_OnSecurityProblem(This,dwProblem) (This)->lpVtbl->OnSecurityProblem(This,dwProblem)
   4425 #else
   4426 /*** IUnknown methods ***/
   4427 static FORCEINLINE HRESULT IHttpSecurity_QueryInterface(IHttpSecurity* This,REFIID riid,void **ppvObject) {
   4428     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4429 }
   4430 static FORCEINLINE ULONG IHttpSecurity_AddRef(IHttpSecurity* This) {
   4431     return This->lpVtbl->AddRef(This);
   4432 }
   4433 static FORCEINLINE ULONG IHttpSecurity_Release(IHttpSecurity* This) {
   4434     return This->lpVtbl->Release(This);
   4435 }
   4436 /*** IWindowForBindingUI methods ***/
   4437 static FORCEINLINE HRESULT IHttpSecurity_GetWindow(IHttpSecurity* This,REFGUID rguidReason,HWND *phwnd) {
   4438     return This->lpVtbl->GetWindow(This,rguidReason,phwnd);
   4439 }
   4440 /*** IHttpSecurity methods ***/
   4441 static FORCEINLINE HRESULT IHttpSecurity_OnSecurityProblem(IHttpSecurity* This,DWORD dwProblem) {
   4442     return This->lpVtbl->OnSecurityProblem(This,dwProblem);
   4443 }
   4444 #endif
   4445 #endif
   4446 
   4447 #endif
   4448 
   4449 HRESULT STDMETHODCALLTYPE IHttpSecurity_OnSecurityProblem_Proxy(
   4450     IHttpSecurity* This,
   4451     DWORD dwProblem);
   4452 void __RPC_STUB IHttpSecurity_OnSecurityProblem_Stub(
   4453     IRpcStubBuffer* This,
   4454     IRpcChannelBuffer* pRpcChannelBuffer,
   4455     PRPC_MESSAGE pRpcMessage,
   4456     DWORD* pdwStubPhase);
   4457 
   4458 #endif  /* __IHttpSecurity_INTERFACE_DEFINED__ */
   4459 
   4460 #endif
   4461 
   4462 #ifndef _LPWININETHTTPINFO_DEFINED
   4463 #define _LPWININETHTTPINFO_DEFINED
   4464 
   4465 /*****************************************************************************
   4466  * IWinInetHttpInfo interface
   4467  */
   4468 #ifndef __IWinInetHttpInfo_INTERFACE_DEFINED__
   4469 #define __IWinInetHttpInfo_INTERFACE_DEFINED__
   4470 
   4471 typedef IWinInetHttpInfo *LPWININETHTTPINFO;
   4472 
   4473 DEFINE_GUID(IID_IWinInetHttpInfo, 0x79eac9d8, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   4474 #if defined(__cplusplus) && !defined(CINTERFACE)
   4475 MIDL_INTERFACE("79eac9d8-bafa-11ce-8c82-00aa004ba90b")
   4476 IWinInetHttpInfo : public IWinInetInfo
   4477 {
   4478     virtual HRESULT STDMETHODCALLTYPE QueryInfo(
   4479         DWORD dwOption,
   4480         LPVOID pBuffer,
   4481         DWORD *pcbBuf,
   4482         DWORD *pdwFlags,
   4483         DWORD *pdwReserved) = 0;
   4484 
   4485 };
   4486 #ifdef __CRT_UUID_DECL
   4487 __CRT_UUID_DECL(IWinInetHttpInfo, 0x79eac9d8, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   4488 #endif
   4489 #else
   4490 typedef struct IWinInetHttpInfoVtbl {
   4491     BEGIN_INTERFACE
   4492 
   4493     /*** IUnknown methods ***/
   4494     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4495         IWinInetHttpInfo* This,
   4496         REFIID riid,
   4497         void **ppvObject);
   4498 
   4499     ULONG (STDMETHODCALLTYPE *AddRef)(
   4500         IWinInetHttpInfo* This);
   4501 
   4502     ULONG (STDMETHODCALLTYPE *Release)(
   4503         IWinInetHttpInfo* This);
   4504 
   4505     /*** IWinInetInfo methods ***/
   4506     HRESULT (STDMETHODCALLTYPE *QueryOption)(
   4507         IWinInetHttpInfo* This,
   4508         DWORD dwOption,
   4509         LPVOID pBuffer,
   4510         DWORD *pcbBuf);
   4511 
   4512     /*** IWinInetHttpInfo methods ***/
   4513     HRESULT (STDMETHODCALLTYPE *QueryInfo)(
   4514         IWinInetHttpInfo* This,
   4515         DWORD dwOption,
   4516         LPVOID pBuffer,
   4517         DWORD *pcbBuf,
   4518         DWORD *pdwFlags,
   4519         DWORD *pdwReserved);
   4520 
   4521     END_INTERFACE
   4522 } IWinInetHttpInfoVtbl;
   4523 interface IWinInetHttpInfo {
   4524     CONST_VTBL IWinInetHttpInfoVtbl* lpVtbl;
   4525 };
   4526 
   4527 #ifdef COBJMACROS
   4528 #ifndef WIDL_C_INLINE_WRAPPERS
   4529 /*** IUnknown methods ***/
   4530 #define IWinInetHttpInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4531 #define IWinInetHttpInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   4532 #define IWinInetHttpInfo_Release(This) (This)->lpVtbl->Release(This)
   4533 /*** IWinInetInfo methods ***/
   4534 #define IWinInetHttpInfo_QueryOption(This,dwOption,pBuffer,pcbBuf) (This)->lpVtbl->QueryOption(This,dwOption,pBuffer,pcbBuf)
   4535 /*** IWinInetHttpInfo methods ***/
   4536 #define IWinInetHttpInfo_QueryInfo(This,dwOption,pBuffer,pcbBuf,pdwFlags,pdwReserved) (This)->lpVtbl->QueryInfo(This,dwOption,pBuffer,pcbBuf,pdwFlags,pdwReserved)
   4537 #else
   4538 /*** IUnknown methods ***/
   4539 static FORCEINLINE HRESULT IWinInetHttpInfo_QueryInterface(IWinInetHttpInfo* This,REFIID riid,void **ppvObject) {
   4540     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4541 }
   4542 static FORCEINLINE ULONG IWinInetHttpInfo_AddRef(IWinInetHttpInfo* This) {
   4543     return This->lpVtbl->AddRef(This);
   4544 }
   4545 static FORCEINLINE ULONG IWinInetHttpInfo_Release(IWinInetHttpInfo* This) {
   4546     return This->lpVtbl->Release(This);
   4547 }
   4548 /*** IWinInetInfo methods ***/
   4549 static FORCEINLINE HRESULT IWinInetHttpInfo_QueryOption(IWinInetHttpInfo* This,DWORD dwOption,LPVOID pBuffer,DWORD *pcbBuf) {
   4550     return This->lpVtbl->QueryOption(This,dwOption,pBuffer,pcbBuf);
   4551 }
   4552 /*** IWinInetHttpInfo methods ***/
   4553 static FORCEINLINE HRESULT IWinInetHttpInfo_QueryInfo(IWinInetHttpInfo* This,DWORD dwOption,LPVOID pBuffer,DWORD *pcbBuf,DWORD *pdwFlags,DWORD *pdwReserved) {
   4554     return This->lpVtbl->QueryInfo(This,dwOption,pBuffer,pcbBuf,pdwFlags,pdwReserved);
   4555 }
   4556 #endif
   4557 #endif
   4558 
   4559 #endif
   4560 
   4561 HRESULT STDMETHODCALLTYPE IWinInetHttpInfo_RemoteQueryInfo_Proxy(
   4562     IWinInetHttpInfo* This,
   4563     DWORD dwOption,
   4564     BYTE *pBuffer,
   4565     DWORD *pcbBuf,
   4566     DWORD *pdwFlags,
   4567     DWORD *pdwReserved);
   4568 void __RPC_STUB IWinInetHttpInfo_RemoteQueryInfo_Stub(
   4569     IRpcStubBuffer* This,
   4570     IRpcChannelBuffer* pRpcChannelBuffer,
   4571     PRPC_MESSAGE pRpcMessage,
   4572     DWORD* pdwStubPhase);
   4573 HRESULT CALLBACK IWinInetHttpInfo_QueryInfo_Proxy(
   4574     IWinInetHttpInfo* This,
   4575     DWORD dwOption,
   4576     LPVOID pBuffer,
   4577     DWORD *pcbBuf,
   4578     DWORD *pdwFlags,
   4579     DWORD *pdwReserved);
   4580 HRESULT __RPC_STUB IWinInetHttpInfo_QueryInfo_Stub(
   4581     IWinInetHttpInfo* This,
   4582     DWORD dwOption,
   4583     BYTE *pBuffer,
   4584     DWORD *pcbBuf,
   4585     DWORD *pdwFlags,
   4586     DWORD *pdwReserved);
   4587 
   4588 #endif  /* __IWinInetHttpInfo_INTERFACE_DEFINED__ */
   4589 
   4590 #endif
   4591 
   4592 #ifndef _LPWININETHTTPTIMEOUTS_DEFINED
   4593 #define _LPWININETHTTPTIMEOUTS_DEFINED
   4594 /*****************************************************************************
   4595  * IWinInetHttpTimeouts interface
   4596  */
   4597 #ifndef __IWinInetHttpTimeouts_INTERFACE_DEFINED__
   4598 #define __IWinInetHttpTimeouts_INTERFACE_DEFINED__
   4599 
   4600 DEFINE_GUID(IID_IWinInetHttpTimeouts, 0xf286fa56, 0xc1fd, 0x4270, 0x8e,0x67, 0xb3,0xeb,0x79,0x0a,0x81,0xe8);
   4601 #if defined(__cplusplus) && !defined(CINTERFACE)
   4602 MIDL_INTERFACE("f286fa56-c1fd-4270-8e67-b3eb790a81e8")
   4603 IWinInetHttpTimeouts : public IUnknown
   4604 {
   4605     virtual HRESULT STDMETHODCALLTYPE GetRequestTimeouts(
   4606         DWORD *pdwConnectTimeout,
   4607         DWORD *pdwSendTimeout,
   4608         DWORD *pdwReceiveTimeout) = 0;
   4609 
   4610 };
   4611 #ifdef __CRT_UUID_DECL
   4612 __CRT_UUID_DECL(IWinInetHttpTimeouts, 0xf286fa56, 0xc1fd, 0x4270, 0x8e,0x67, 0xb3,0xeb,0x79,0x0a,0x81,0xe8)
   4613 #endif
   4614 #else
   4615 typedef struct IWinInetHttpTimeoutsVtbl {
   4616     BEGIN_INTERFACE
   4617 
   4618     /*** IUnknown methods ***/
   4619     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4620         IWinInetHttpTimeouts* This,
   4621         REFIID riid,
   4622         void **ppvObject);
   4623 
   4624     ULONG (STDMETHODCALLTYPE *AddRef)(
   4625         IWinInetHttpTimeouts* This);
   4626 
   4627     ULONG (STDMETHODCALLTYPE *Release)(
   4628         IWinInetHttpTimeouts* This);
   4629 
   4630     /*** IWinInetHttpTimeouts methods ***/
   4631     HRESULT (STDMETHODCALLTYPE *GetRequestTimeouts)(
   4632         IWinInetHttpTimeouts* This,
   4633         DWORD *pdwConnectTimeout,
   4634         DWORD *pdwSendTimeout,
   4635         DWORD *pdwReceiveTimeout);
   4636 
   4637     END_INTERFACE
   4638 } IWinInetHttpTimeoutsVtbl;
   4639 interface IWinInetHttpTimeouts {
   4640     CONST_VTBL IWinInetHttpTimeoutsVtbl* lpVtbl;
   4641 };
   4642 
   4643 #ifdef COBJMACROS
   4644 #ifndef WIDL_C_INLINE_WRAPPERS
   4645 /*** IUnknown methods ***/
   4646 #define IWinInetHttpTimeouts_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4647 #define IWinInetHttpTimeouts_AddRef(This) (This)->lpVtbl->AddRef(This)
   4648 #define IWinInetHttpTimeouts_Release(This) (This)->lpVtbl->Release(This)
   4649 /*** IWinInetHttpTimeouts methods ***/
   4650 #define IWinInetHttpTimeouts_GetRequestTimeouts(This,pdwConnectTimeout,pdwSendTimeout,pdwReceiveTimeout) (This)->lpVtbl->GetRequestTimeouts(This,pdwConnectTimeout,pdwSendTimeout,pdwReceiveTimeout)
   4651 #else
   4652 /*** IUnknown methods ***/
   4653 static FORCEINLINE HRESULT IWinInetHttpTimeouts_QueryInterface(IWinInetHttpTimeouts* This,REFIID riid,void **ppvObject) {
   4654     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4655 }
   4656 static FORCEINLINE ULONG IWinInetHttpTimeouts_AddRef(IWinInetHttpTimeouts* This) {
   4657     return This->lpVtbl->AddRef(This);
   4658 }
   4659 static FORCEINLINE ULONG IWinInetHttpTimeouts_Release(IWinInetHttpTimeouts* This) {
   4660     return This->lpVtbl->Release(This);
   4661 }
   4662 /*** IWinInetHttpTimeouts methods ***/
   4663 static FORCEINLINE HRESULT IWinInetHttpTimeouts_GetRequestTimeouts(IWinInetHttpTimeouts* This,DWORD *pdwConnectTimeout,DWORD *pdwSendTimeout,DWORD *pdwReceiveTimeout) {
   4664     return This->lpVtbl->GetRequestTimeouts(This,pdwConnectTimeout,pdwSendTimeout,pdwReceiveTimeout);
   4665 }
   4666 #endif
   4667 #endif
   4668 
   4669 #endif
   4670 
   4671 HRESULT STDMETHODCALLTYPE IWinInetHttpTimeouts_GetRequestTimeouts_Proxy(
   4672     IWinInetHttpTimeouts* This,
   4673     DWORD *pdwConnectTimeout,
   4674     DWORD *pdwSendTimeout,
   4675     DWORD *pdwReceiveTimeout);
   4676 void __RPC_STUB IWinInetHttpTimeouts_GetRequestTimeouts_Stub(
   4677     IRpcStubBuffer* This,
   4678     IRpcChannelBuffer* pRpcChannelBuffer,
   4679     PRPC_MESSAGE pRpcMessage,
   4680     DWORD* pdwStubPhase);
   4681 
   4682 #endif  /* __IWinInetHttpTimeouts_INTERFACE_DEFINED__ */
   4683 
   4684 #endif
   4685 
   4686 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
   4687 #ifndef _LPWININETCACHEHINTS_DEFINED
   4688 #define _LPWININETCACHEHINTS_DEFINED
   4689 
   4690 /*****************************************************************************
   4691  * IWinInetCacheHints interface
   4692  */
   4693 #ifndef __IWinInetCacheHints_INTERFACE_DEFINED__
   4694 #define __IWinInetCacheHints_INTERFACE_DEFINED__
   4695 
   4696 typedef IWinInetCacheHints *LPWININETCACHEHINTS;
   4697 
   4698 DEFINE_GUID(IID_IWinInetCacheHints, 0xdd1ec3b3, 0x8391, 0x4fdb, 0xa9,0xe6, 0x34,0x7c,0x3c,0xaa,0xa7,0xdd);
   4699 #if defined(__cplusplus) && !defined(CINTERFACE)
   4700 MIDL_INTERFACE("dd1ec3b3-8391-4fdb-a9e6-347c3caaa7dd")
   4701 IWinInetCacheHints : public IUnknown
   4702 {
   4703     virtual HRESULT STDMETHODCALLTYPE SetCacheExtension(
   4704         LPCWSTR pwzExt,
   4705         LPVOID pszCacheFile,
   4706         DWORD *pcbCacheFile,
   4707         DWORD *pdwWinInetError,
   4708         DWORD *pdwReserved) = 0;
   4709 
   4710 };
   4711 #ifdef __CRT_UUID_DECL
   4712 __CRT_UUID_DECL(IWinInetCacheHints, 0xdd1ec3b3, 0x8391, 0x4fdb, 0xa9,0xe6, 0x34,0x7c,0x3c,0xaa,0xa7,0xdd)
   4713 #endif
   4714 #else
   4715 typedef struct IWinInetCacheHintsVtbl {
   4716     BEGIN_INTERFACE
   4717 
   4718     /*** IUnknown methods ***/
   4719     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4720         IWinInetCacheHints* This,
   4721         REFIID riid,
   4722         void **ppvObject);
   4723 
   4724     ULONG (STDMETHODCALLTYPE *AddRef)(
   4725         IWinInetCacheHints* This);
   4726 
   4727     ULONG (STDMETHODCALLTYPE *Release)(
   4728         IWinInetCacheHints* This);
   4729 
   4730     /*** IWinInetCacheHints methods ***/
   4731     HRESULT (STDMETHODCALLTYPE *SetCacheExtension)(
   4732         IWinInetCacheHints* This,
   4733         LPCWSTR pwzExt,
   4734         LPVOID pszCacheFile,
   4735         DWORD *pcbCacheFile,
   4736         DWORD *pdwWinInetError,
   4737         DWORD *pdwReserved);
   4738 
   4739     END_INTERFACE
   4740 } IWinInetCacheHintsVtbl;
   4741 interface IWinInetCacheHints {
   4742     CONST_VTBL IWinInetCacheHintsVtbl* lpVtbl;
   4743 };
   4744 
   4745 #ifdef COBJMACROS
   4746 #ifndef WIDL_C_INLINE_WRAPPERS
   4747 /*** IUnknown methods ***/
   4748 #define IWinInetCacheHints_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4749 #define IWinInetCacheHints_AddRef(This) (This)->lpVtbl->AddRef(This)
   4750 #define IWinInetCacheHints_Release(This) (This)->lpVtbl->Release(This)
   4751 /*** IWinInetCacheHints methods ***/
   4752 #define IWinInetCacheHints_SetCacheExtension(This,pwzExt,pszCacheFile,pcbCacheFile,pdwWinInetError,pdwReserved) (This)->lpVtbl->SetCacheExtension(This,pwzExt,pszCacheFile,pcbCacheFile,pdwWinInetError,pdwReserved)
   4753 #else
   4754 /*** IUnknown methods ***/
   4755 static FORCEINLINE HRESULT IWinInetCacheHints_QueryInterface(IWinInetCacheHints* This,REFIID riid,void **ppvObject) {
   4756     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4757 }
   4758 static FORCEINLINE ULONG IWinInetCacheHints_AddRef(IWinInetCacheHints* This) {
   4759     return This->lpVtbl->AddRef(This);
   4760 }
   4761 static FORCEINLINE ULONG IWinInetCacheHints_Release(IWinInetCacheHints* This) {
   4762     return This->lpVtbl->Release(This);
   4763 }
   4764 /*** IWinInetCacheHints methods ***/
   4765 static FORCEINLINE HRESULT IWinInetCacheHints_SetCacheExtension(IWinInetCacheHints* This,LPCWSTR pwzExt,LPVOID pszCacheFile,DWORD *pcbCacheFile,DWORD *pdwWinInetError,DWORD *pdwReserved) {
   4766     return This->lpVtbl->SetCacheExtension(This,pwzExt,pszCacheFile,pcbCacheFile,pdwWinInetError,pdwReserved);
   4767 }
   4768 #endif
   4769 #endif
   4770 
   4771 #endif
   4772 
   4773 HRESULT STDMETHODCALLTYPE IWinInetCacheHints_SetCacheExtension_Proxy(
   4774     IWinInetCacheHints* This,
   4775     LPCWSTR pwzExt,
   4776     LPVOID pszCacheFile,
   4777     DWORD *pcbCacheFile,
   4778     DWORD *pdwWinInetError,
   4779     DWORD *pdwReserved);
   4780 void __RPC_STUB IWinInetCacheHints_SetCacheExtension_Stub(
   4781     IRpcStubBuffer* This,
   4782     IRpcChannelBuffer* pRpcChannelBuffer,
   4783     PRPC_MESSAGE pRpcMessage,
   4784     DWORD* pdwStubPhase);
   4785 
   4786 #endif  /* __IWinInetCacheHints_INTERFACE_DEFINED__ */
   4787 
   4788 #endif
   4789 #endif
   4790 
   4791 #if (_WIN32_IE >= _WIN32_IE_IE70)
   4792 #ifndef _LPWININETCACHEHINTS2_DEFINED
   4793 #define _LPWININETCACHEHINTS2_DEFINED
   4794 
   4795 /*****************************************************************************
   4796  * IWinInetCacheHints2 interface
   4797  */
   4798 #ifndef __IWinInetCacheHints2_INTERFACE_DEFINED__
   4799 #define __IWinInetCacheHints2_INTERFACE_DEFINED__
   4800 
   4801 typedef IWinInetCacheHints2 *LPWININETCACHEHINTS2;
   4802 
   4803 DEFINE_GUID(IID_IWinInetCacheHints2, 0x7857aeac, 0xd31f, 0x49bf, 0x88,0x4e, 0xdd,0x46,0xdf,0x36,0x78,0x0a);
   4804 #if defined(__cplusplus) && !defined(CINTERFACE)
   4805 MIDL_INTERFACE("7857aeac-d31f-49bf-884e-dd46df36780a")
   4806 IWinInetCacheHints2 : public IWinInetCacheHints
   4807 {
   4808     virtual HRESULT STDMETHODCALLTYPE SetCacheExtension2(
   4809         LPCWSTR pwzExt,
   4810         WCHAR *pwzCacheFile,
   4811         DWORD *pcchCacheFile,
   4812         DWORD *pdwWinInetError,
   4813         DWORD *pdwReserved) = 0;
   4814 
   4815 };
   4816 #ifdef __CRT_UUID_DECL
   4817 __CRT_UUID_DECL(IWinInetCacheHints2, 0x7857aeac, 0xd31f, 0x49bf, 0x88,0x4e, 0xdd,0x46,0xdf,0x36,0x78,0x0a)
   4818 #endif
   4819 #else
   4820 typedef struct IWinInetCacheHints2Vtbl {
   4821     BEGIN_INTERFACE
   4822 
   4823     /*** IUnknown methods ***/
   4824     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4825         IWinInetCacheHints2* This,
   4826         REFIID riid,
   4827         void **ppvObject);
   4828 
   4829     ULONG (STDMETHODCALLTYPE *AddRef)(
   4830         IWinInetCacheHints2* This);
   4831 
   4832     ULONG (STDMETHODCALLTYPE *Release)(
   4833         IWinInetCacheHints2* This);
   4834 
   4835     /*** IWinInetCacheHints methods ***/
   4836     HRESULT (STDMETHODCALLTYPE *SetCacheExtension)(
   4837         IWinInetCacheHints2* This,
   4838         LPCWSTR pwzExt,
   4839         LPVOID pszCacheFile,
   4840         DWORD *pcbCacheFile,
   4841         DWORD *pdwWinInetError,
   4842         DWORD *pdwReserved);
   4843 
   4844     /*** IWinInetCacheHints2 methods ***/
   4845     HRESULT (STDMETHODCALLTYPE *SetCacheExtension2)(
   4846         IWinInetCacheHints2* This,
   4847         LPCWSTR pwzExt,
   4848         WCHAR *pwzCacheFile,
   4849         DWORD *pcchCacheFile,
   4850         DWORD *pdwWinInetError,
   4851         DWORD *pdwReserved);
   4852 
   4853     END_INTERFACE
   4854 } IWinInetCacheHints2Vtbl;
   4855 interface IWinInetCacheHints2 {
   4856     CONST_VTBL IWinInetCacheHints2Vtbl* lpVtbl;
   4857 };
   4858 
   4859 #ifdef COBJMACROS
   4860 #ifndef WIDL_C_INLINE_WRAPPERS
   4861 /*** IUnknown methods ***/
   4862 #define IWinInetCacheHints2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4863 #define IWinInetCacheHints2_AddRef(This) (This)->lpVtbl->AddRef(This)
   4864 #define IWinInetCacheHints2_Release(This) (This)->lpVtbl->Release(This)
   4865 /*** IWinInetCacheHints methods ***/
   4866 #define IWinInetCacheHints2_SetCacheExtension(This,pwzExt,pszCacheFile,pcbCacheFile,pdwWinInetError,pdwReserved) (This)->lpVtbl->SetCacheExtension(This,pwzExt,pszCacheFile,pcbCacheFile,pdwWinInetError,pdwReserved)
   4867 /*** IWinInetCacheHints2 methods ***/
   4868 #define IWinInetCacheHints2_SetCacheExtension2(This,pwzExt,pwzCacheFile,pcchCacheFile,pdwWinInetError,pdwReserved) (This)->lpVtbl->SetCacheExtension2(This,pwzExt,pwzCacheFile,pcchCacheFile,pdwWinInetError,pdwReserved)
   4869 #else
   4870 /*** IUnknown methods ***/
   4871 static FORCEINLINE HRESULT IWinInetCacheHints2_QueryInterface(IWinInetCacheHints2* This,REFIID riid,void **ppvObject) {
   4872     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4873 }
   4874 static FORCEINLINE ULONG IWinInetCacheHints2_AddRef(IWinInetCacheHints2* This) {
   4875     return This->lpVtbl->AddRef(This);
   4876 }
   4877 static FORCEINLINE ULONG IWinInetCacheHints2_Release(IWinInetCacheHints2* This) {
   4878     return This->lpVtbl->Release(This);
   4879 }
   4880 /*** IWinInetCacheHints methods ***/
   4881 static FORCEINLINE HRESULT IWinInetCacheHints2_SetCacheExtension(IWinInetCacheHints2* This,LPCWSTR pwzExt,LPVOID pszCacheFile,DWORD *pcbCacheFile,DWORD *pdwWinInetError,DWORD *pdwReserved) {
   4882     return This->lpVtbl->SetCacheExtension(This,pwzExt,pszCacheFile,pcbCacheFile,pdwWinInetError,pdwReserved);
   4883 }
   4884 /*** IWinInetCacheHints2 methods ***/
   4885 static FORCEINLINE HRESULT IWinInetCacheHints2_SetCacheExtension2(IWinInetCacheHints2* This,LPCWSTR pwzExt,WCHAR *pwzCacheFile,DWORD *pcchCacheFile,DWORD *pdwWinInetError,DWORD *pdwReserved) {
   4886     return This->lpVtbl->SetCacheExtension2(This,pwzExt,pwzCacheFile,pcchCacheFile,pdwWinInetError,pdwReserved);
   4887 }
   4888 #endif
   4889 #endif
   4890 
   4891 #endif
   4892 
   4893 HRESULT STDMETHODCALLTYPE IWinInetCacheHints2_SetCacheExtension2_Proxy(
   4894     IWinInetCacheHints2* This,
   4895     LPCWSTR pwzExt,
   4896     WCHAR *pwzCacheFile,
   4897     DWORD *pcchCacheFile,
   4898     DWORD *pdwWinInetError,
   4899     DWORD *pdwReserved);
   4900 void __RPC_STUB IWinInetCacheHints2_SetCacheExtension2_Stub(
   4901     IRpcStubBuffer* This,
   4902     IRpcChannelBuffer* pRpcChannelBuffer,
   4903     PRPC_MESSAGE pRpcMessage,
   4904     DWORD* pdwStubPhase);
   4905 
   4906 #endif  /* __IWinInetCacheHints2_INTERFACE_DEFINED__ */
   4907 
   4908 #endif
   4909 #endif
   4910 
   4911 #define SID_IBindHost IID_IBindHost
   4912 #define SID_SBindHost IID_IBindHost
   4913 
   4914 #ifndef _LPBINDHOST_DEFINED
   4915 #define _LPBINDHOST_DEFINED
   4916 
   4917 EXTERN_C const GUID SID_BindHost;
   4918 
   4919 /*****************************************************************************
   4920  * IBindHost interface
   4921  */
   4922 #ifndef __IBindHost_INTERFACE_DEFINED__
   4923 #define __IBindHost_INTERFACE_DEFINED__
   4924 
   4925 typedef IBindHost *LPBINDHOST;
   4926 
   4927 DEFINE_GUID(IID_IBindHost, 0xfc4801a1, 0x2ba9, 0x11cf, 0xa2,0x29, 0x00,0xaa,0x00,0x3d,0x73,0x52);
   4928 #if defined(__cplusplus) && !defined(CINTERFACE)
   4929 MIDL_INTERFACE("fc4801a1-2ba9-11cf-a229-00aa003d7352")
   4930 IBindHost : public IUnknown
   4931 {
   4932     virtual HRESULT STDMETHODCALLTYPE CreateMoniker(
   4933         LPOLESTR szName,
   4934         IBindCtx *pBC,
   4935         IMoniker **ppmk,
   4936         DWORD dwReserved) = 0;
   4937 
   4938     virtual HRESULT STDMETHODCALLTYPE MonikerBindToStorage(
   4939         IMoniker *pMk,
   4940         IBindCtx *pBC,
   4941         IBindStatusCallback *pBSC,
   4942         REFIID riid,
   4943         void **ppvObj) = 0;
   4944 
   4945     virtual HRESULT STDMETHODCALLTYPE MonikerBindToObject(
   4946         IMoniker *pMk,
   4947         IBindCtx *pBC,
   4948         IBindStatusCallback *pBSC,
   4949         REFIID riid,
   4950         void **ppvObj) = 0;
   4951 
   4952 };
   4953 #ifdef __CRT_UUID_DECL
   4954 __CRT_UUID_DECL(IBindHost, 0xfc4801a1, 0x2ba9, 0x11cf, 0xa2,0x29, 0x00,0xaa,0x00,0x3d,0x73,0x52)
   4955 #endif
   4956 #else
   4957 typedef struct IBindHostVtbl {
   4958     BEGIN_INTERFACE
   4959 
   4960     /*** IUnknown methods ***/
   4961     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4962         IBindHost* This,
   4963         REFIID riid,
   4964         void **ppvObject);
   4965 
   4966     ULONG (STDMETHODCALLTYPE *AddRef)(
   4967         IBindHost* This);
   4968 
   4969     ULONG (STDMETHODCALLTYPE *Release)(
   4970         IBindHost* This);
   4971 
   4972     /*** IBindHost methods ***/
   4973     HRESULT (STDMETHODCALLTYPE *CreateMoniker)(
   4974         IBindHost* This,
   4975         LPOLESTR szName,
   4976         IBindCtx *pBC,
   4977         IMoniker **ppmk,
   4978         DWORD dwReserved);
   4979 
   4980     HRESULT (STDMETHODCALLTYPE *MonikerBindToStorage)(
   4981         IBindHost* This,
   4982         IMoniker *pMk,
   4983         IBindCtx *pBC,
   4984         IBindStatusCallback *pBSC,
   4985         REFIID riid,
   4986         void **ppvObj);
   4987 
   4988     HRESULT (STDMETHODCALLTYPE *MonikerBindToObject)(
   4989         IBindHost* This,
   4990         IMoniker *pMk,
   4991         IBindCtx *pBC,
   4992         IBindStatusCallback *pBSC,
   4993         REFIID riid,
   4994         void **ppvObj);
   4995 
   4996     END_INTERFACE
   4997 } IBindHostVtbl;
   4998 interface IBindHost {
   4999     CONST_VTBL IBindHostVtbl* lpVtbl;
   5000 };
   5001 
   5002 #ifdef COBJMACROS
   5003 #ifndef WIDL_C_INLINE_WRAPPERS
   5004 /*** IUnknown methods ***/
   5005 #define IBindHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5006 #define IBindHost_AddRef(This) (This)->lpVtbl->AddRef(This)
   5007 #define IBindHost_Release(This) (This)->lpVtbl->Release(This)
   5008 /*** IBindHost methods ***/
   5009 #define IBindHost_CreateMoniker(This,szName,pBC,ppmk,dwReserved) (This)->lpVtbl->CreateMoniker(This,szName,pBC,ppmk,dwReserved)
   5010 #define IBindHost_MonikerBindToStorage(This,pMk,pBC,pBSC,riid,ppvObj) (This)->lpVtbl->MonikerBindToStorage(This,pMk,pBC,pBSC,riid,ppvObj)
   5011 #define IBindHost_MonikerBindToObject(This,pMk,pBC,pBSC,riid,ppvObj) (This)->lpVtbl->MonikerBindToObject(This,pMk,pBC,pBSC,riid,ppvObj)
   5012 #else
   5013 /*** IUnknown methods ***/
   5014 static FORCEINLINE HRESULT IBindHost_QueryInterface(IBindHost* This,REFIID riid,void **ppvObject) {
   5015     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5016 }
   5017 static FORCEINLINE ULONG IBindHost_AddRef(IBindHost* This) {
   5018     return This->lpVtbl->AddRef(This);
   5019 }
   5020 static FORCEINLINE ULONG IBindHost_Release(IBindHost* This) {
   5021     return This->lpVtbl->Release(This);
   5022 }
   5023 /*** IBindHost methods ***/
   5024 static FORCEINLINE HRESULT IBindHost_CreateMoniker(IBindHost* This,LPOLESTR szName,IBindCtx *pBC,IMoniker **ppmk,DWORD dwReserved) {
   5025     return This->lpVtbl->CreateMoniker(This,szName,pBC,ppmk,dwReserved);
   5026 }
   5027 static FORCEINLINE HRESULT IBindHost_MonikerBindToStorage(IBindHost* This,IMoniker *pMk,IBindCtx *pBC,IBindStatusCallback *pBSC,REFIID riid,void **ppvObj) {
   5028     return This->lpVtbl->MonikerBindToStorage(This,pMk,pBC,pBSC,riid,ppvObj);
   5029 }
   5030 static FORCEINLINE HRESULT IBindHost_MonikerBindToObject(IBindHost* This,IMoniker *pMk,IBindCtx *pBC,IBindStatusCallback *pBSC,REFIID riid,void **ppvObj) {
   5031     return This->lpVtbl->MonikerBindToObject(This,pMk,pBC,pBSC,riid,ppvObj);
   5032 }
   5033 #endif
   5034 #endif
   5035 
   5036 #endif
   5037 
   5038 HRESULT STDMETHODCALLTYPE IBindHost_CreateMoniker_Proxy(
   5039     IBindHost* This,
   5040     LPOLESTR szName,
   5041     IBindCtx *pBC,
   5042     IMoniker **ppmk,
   5043     DWORD dwReserved);
   5044 void __RPC_STUB IBindHost_CreateMoniker_Stub(
   5045     IRpcStubBuffer* This,
   5046     IRpcChannelBuffer* pRpcChannelBuffer,
   5047     PRPC_MESSAGE pRpcMessage,
   5048     DWORD* pdwStubPhase);
   5049 HRESULT STDMETHODCALLTYPE IBindHost_RemoteMonikerBindToStorage_Proxy(
   5050     IBindHost* This,
   5051     IMoniker *pMk,
   5052     IBindCtx *pBC,
   5053     IBindStatusCallback *pBSC,
   5054     REFIID riid,
   5055     IUnknown **ppvObj);
   5056 void __RPC_STUB IBindHost_RemoteMonikerBindToStorage_Stub(
   5057     IRpcStubBuffer* This,
   5058     IRpcChannelBuffer* pRpcChannelBuffer,
   5059     PRPC_MESSAGE pRpcMessage,
   5060     DWORD* pdwStubPhase);
   5061 HRESULT STDMETHODCALLTYPE IBindHost_RemoteMonikerBindToObject_Proxy(
   5062     IBindHost* This,
   5063     IMoniker *pMk,
   5064     IBindCtx *pBC,
   5065     IBindStatusCallback *pBSC,
   5066     REFIID riid,
   5067     IUnknown **ppvObj);
   5068 void __RPC_STUB IBindHost_RemoteMonikerBindToObject_Stub(
   5069     IRpcStubBuffer* This,
   5070     IRpcChannelBuffer* pRpcChannelBuffer,
   5071     PRPC_MESSAGE pRpcMessage,
   5072     DWORD* pdwStubPhase);
   5073 HRESULT CALLBACK IBindHost_MonikerBindToStorage_Proxy(
   5074     IBindHost* This,
   5075     IMoniker *pMk,
   5076     IBindCtx *pBC,
   5077     IBindStatusCallback *pBSC,
   5078     REFIID riid,
   5079     void **ppvObj);
   5080 HRESULT __RPC_STUB IBindHost_MonikerBindToStorage_Stub(
   5081     IBindHost* This,
   5082     IMoniker *pMk,
   5083     IBindCtx *pBC,
   5084     IBindStatusCallback *pBSC,
   5085     REFIID riid,
   5086     IUnknown **ppvObj);
   5087 HRESULT CALLBACK IBindHost_MonikerBindToObject_Proxy(
   5088     IBindHost* This,
   5089     IMoniker *pMk,
   5090     IBindCtx *pBC,
   5091     IBindStatusCallback *pBSC,
   5092     REFIID riid,
   5093     void **ppvObj);
   5094 HRESULT __RPC_STUB IBindHost_MonikerBindToObject_Stub(
   5095     IBindHost* This,
   5096     IMoniker *pMk,
   5097     IBindCtx *pBC,
   5098     IBindStatusCallback *pBSC,
   5099     REFIID riid,
   5100     IUnknown **ppvObj);
   5101 
   5102 #endif  /* __IBindHost_INTERFACE_DEFINED__ */
   5103 
   5104 #endif
   5105 
   5106 #define URLOSTRM_USECACHEDCOPY_ONLY 0x1
   5107 #define URLOSTRM_USECACHEDCOPY 0x2
   5108 #define URLOSTRM_GETNEWESTVERSION 0x3
   5109 
   5110 struct IBindStatusCallback;
   5111 STDAPI HlinkSimpleNavigateToString(LPCWSTR szTarget, LPCWSTR szLocation, LPCWSTR szTargetFrameName, IUnknown *pUnk, IBindCtx *pbc, IBindStatusCallback *, DWORD grfHLNF, DWORD dwReserved);
   5112 STDAPI HlinkSimpleNavigateToMoniker(IMoniker *pmkTarget, LPCWSTR szLocation, LPCWSTR szTargetFrameName, IUnknown *pUnk, IBindCtx *pbc, IBindStatusCallback *, DWORD grfHLNF, DWORD dwReserved);
   5113 STDAPI URLOpenStreamA(LPUNKNOWN,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);
   5114 STDAPI URLOpenStreamW(LPUNKNOWN,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);
   5115 STDAPI URLOpenPullStreamA(LPUNKNOWN,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);
   5116 STDAPI URLOpenPullStreamW(LPUNKNOWN,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);
   5117 STDAPI URLDownloadToFileA(LPUNKNOWN,LPCSTR,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);
   5118 STDAPI URLDownloadToFileW(LPUNKNOWN,LPCWSTR,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);
   5119 STDAPI URLDownloadToCacheFileA(LPUNKNOWN, LPCSTR,  LPSTR,  DWORD, DWORD, LPBINDSTATUSCALLBACK);
   5120 STDAPI URLDownloadToCacheFileW(LPUNKNOWN, LPCWSTR, LPWSTR, DWORD, DWORD, LPBINDSTATUSCALLBACK);
   5121 STDAPI URLOpenBlockingStreamA(LPUNKNOWN,LPCSTR,LPSTREAM*,DWORD,LPBINDSTATUSCALLBACK);
   5122 STDAPI URLOpenBlockingStreamW(LPUNKNOWN,LPCWSTR,LPSTREAM*,DWORD,LPBINDSTATUSCALLBACK);
   5123 
   5124 #define URLOpenStream __MINGW_NAME_AW(URLOpenStream)
   5125 #define URLOpenPullStream __MINGW_NAME_AW(URLOpenPullStream)
   5126 #define URLDownloadToFile __MINGW_NAME_AW(URLDownloadToFile)
   5127 #define URLDownloadToCacheFile __MINGW_NAME_AW(URLDownloadToCacheFile)
   5128 #define URLOpenBlockingStream __MINGW_NAME_AW(URLOpenBlockingStream)
   5129 
   5130 STDAPI HlinkGoBack(IUnknown *pUnk);
   5131 STDAPI HlinkGoForward(IUnknown *pUnk);
   5132 STDAPI HlinkNavigateString(IUnknown *pUnk, LPCWSTR szTarget);
   5133 STDAPI HlinkNavigateMoniker(IUnknown *pUnk, IMoniker *pmkTarget);
   5134 
   5135 #ifndef  _URLMON_NO_ASYNC_PLUGABLE_PROTOCOLS_
   5136 #ifndef __IInternet_FWD_DEFINED__
   5137 #define __IInternet_FWD_DEFINED__
   5138 typedef interface IInternet IInternet;
   5139 #endif
   5140 
   5141 #ifndef __IInternetBindInfo_FWD_DEFINED__
   5142 #define __IInternetBindInfo_FWD_DEFINED__
   5143 typedef interface IInternetBindInfo IInternetBindInfo;
   5144 #endif
   5145 
   5146 #ifndef __IInternetBindInfoEx_FWD_DEFINED__
   5147 #define __IInternetBindInfoEx_FWD_DEFINED__
   5148 typedef interface IInternetBindInfoEx IInternetBindInfoEx;
   5149 #endif
   5150 
   5151 #ifndef __IInternetProtocolRoot_FWD_DEFINED__
   5152 #define __IInternetProtocolRoot_FWD_DEFINED__
   5153 typedef interface IInternetProtocolRoot IInternetProtocolRoot;
   5154 #endif
   5155 
   5156 #ifndef __IInternetProtocol_FWD_DEFINED__
   5157 #define __IInternetProtocol_FWD_DEFINED__
   5158 typedef interface IInternetProtocol IInternetProtocol;
   5159 #endif
   5160 
   5161 #ifndef __IInternetProtocolEx_FWD_DEFINED__
   5162 #define __IInternetProtocolEx_FWD_DEFINED__
   5163 typedef interface IInternetProtocolEx IInternetProtocolEx;
   5164 #endif
   5165 
   5166 #ifndef __IInternetProtocolSink_FWD_DEFINED__
   5167 #define __IInternetProtocolSink_FWD_DEFINED__
   5168 typedef interface IInternetProtocolSink IInternetProtocolSink;
   5169 #endif
   5170 
   5171 #ifndef __IInternetProtocolInfo_FWD_DEFINED__
   5172 #define __IInternetProtocolInfo_FWD_DEFINED__
   5173 typedef interface IInternetProtocolInfo IInternetProtocolInfo;
   5174 #endif
   5175 
   5176 #ifndef __IInternetSession_FWD_DEFINED__
   5177 #define __IInternetSession_FWD_DEFINED__
   5178 typedef interface IInternetSession IInternetSession;
   5179 #endif
   5180 
   5181 #ifndef __IInternetProtocolSinkStackable_FWD_DEFINED__
   5182 #define __IInternetProtocolSinkStackable_FWD_DEFINED__
   5183 typedef interface IInternetProtocolSinkStackable IInternetProtocolSinkStackable;
   5184 #endif
   5185 
   5186 
   5187 #ifndef _LPIINTERNET
   5188 #define _LPIINTERNET
   5189 
   5190 /*****************************************************************************
   5191  * IInternet interface
   5192  */
   5193 #ifndef __IInternet_INTERFACE_DEFINED__
   5194 #define __IInternet_INTERFACE_DEFINED__
   5195 
   5196 typedef IInternet *LPIINTERNET;
   5197 DEFINE_GUID(IID_IInternet, 0x79eac9e0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   5198 #if defined(__cplusplus) && !defined(CINTERFACE)
   5199 MIDL_INTERFACE("79eac9e0-baf9-11ce-8c82-00aa004ba90b")
   5200 IInternet : public IUnknown
   5201 {
   5202 };
   5203 #ifdef __CRT_UUID_DECL
   5204 __CRT_UUID_DECL(IInternet, 0x79eac9e0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   5205 #endif
   5206 #else
   5207 typedef struct IInternetVtbl {
   5208     BEGIN_INTERFACE
   5209 
   5210     /*** IUnknown methods ***/
   5211     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5212         IInternet* This,
   5213         REFIID riid,
   5214         void **ppvObject);
   5215 
   5216     ULONG (STDMETHODCALLTYPE *AddRef)(
   5217         IInternet* This);
   5218 
   5219     ULONG (STDMETHODCALLTYPE *Release)(
   5220         IInternet* This);
   5221 
   5222     END_INTERFACE
   5223 } IInternetVtbl;
   5224 interface IInternet {
   5225     CONST_VTBL IInternetVtbl* lpVtbl;
   5226 };
   5227 
   5228 #ifdef COBJMACROS
   5229 #ifndef WIDL_C_INLINE_WRAPPERS
   5230 /*** IUnknown methods ***/
   5231 #define IInternet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5232 #define IInternet_AddRef(This) (This)->lpVtbl->AddRef(This)
   5233 #define IInternet_Release(This) (This)->lpVtbl->Release(This)
   5234 #else
   5235 /*** IUnknown methods ***/
   5236 static FORCEINLINE HRESULT IInternet_QueryInterface(IInternet* This,REFIID riid,void **ppvObject) {
   5237     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5238 }
   5239 static FORCEINLINE ULONG IInternet_AddRef(IInternet* This) {
   5240     return This->lpVtbl->AddRef(This);
   5241 }
   5242 static FORCEINLINE ULONG IInternet_Release(IInternet* This) {
   5243     return This->lpVtbl->Release(This);
   5244 }
   5245 #endif
   5246 #endif
   5247 
   5248 #endif
   5249 
   5250 
   5251 #endif  /* __IInternet_INTERFACE_DEFINED__ */
   5252 
   5253 #endif
   5254 
   5255 #ifndef _LPIINTERNETBINDINFO
   5256 #define _LPIINTERNETBINDINFO
   5257 
   5258 /*****************************************************************************
   5259  * IInternetBindInfo interface
   5260  */
   5261 #ifndef __IInternetBindInfo_INTERFACE_DEFINED__
   5262 #define __IInternetBindInfo_INTERFACE_DEFINED__
   5263 
   5264 typedef IInternetBindInfo *LPIINTERNETBINDINFO;
   5265 
   5266 typedef enum tagBINDSTRING {
   5267     BINDSTRING_HEADERS = 1,
   5268     BINDSTRING_ACCEPT_MIMES = 2,
   5269     BINDSTRING_EXTRA_URL = 3,
   5270     BINDSTRING_LANGUAGE = 4,
   5271     BINDSTRING_USERNAME = 5,
   5272     BINDSTRING_PASSWORD = 6,
   5273     BINDSTRING_UA_PIXELS = 7,
   5274     BINDSTRING_UA_COLOR = 8,
   5275     BINDSTRING_OS = 9,
   5276     BINDSTRING_USER_AGENT = 10,
   5277     BINDSTRING_ACCEPT_ENCODINGS = 11,
   5278     BINDSTRING_POST_COOKIE = 12,
   5279     BINDSTRING_POST_DATA_MIME = 13,
   5280     BINDSTRING_URL = 14,
   5281     BINDSTRING_IID = 15,
   5282     BINDSTRING_FLAG_BIND_TO_OBJECT = 16,
   5283     BINDSTRING_PTR_BIND_CONTEXT = 17,
   5284     BINDSTRING_XDR_ORIGIN = 18,
   5285     BINDSTRING_DOWNLOADPATH = 19,
   5286     BINDSTRING_ROOTDOC_URL = 20,
   5287     BINDSTRING_INITIAL_FILENAME = 21,
   5288     BINDSTRING_PROXY_USERNAME = 22,
   5289     BINDSTRING_PROXY_PASSWORD = 23
   5290 } BINDSTRING;
   5291 
   5292 DEFINE_GUID(IID_IInternetBindInfo, 0x79eac9e1, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   5293 #if defined(__cplusplus) && !defined(CINTERFACE)
   5294 MIDL_INTERFACE("79eac9e1-baf9-11ce-8c82-00aa004ba90b")
   5295 IInternetBindInfo : public IUnknown
   5296 {
   5297     virtual HRESULT STDMETHODCALLTYPE GetBindInfo(
   5298         DWORD *grfBINDF,
   5299         BINDINFO *pbindinfo) = 0;
   5300 
   5301     virtual HRESULT STDMETHODCALLTYPE GetBindString(
   5302         ULONG ulStringType,
   5303         LPOLESTR *ppwzStr,
   5304         ULONG cEl,
   5305         ULONG *pcElFetched) = 0;
   5306 
   5307 };
   5308 #ifdef __CRT_UUID_DECL
   5309 __CRT_UUID_DECL(IInternetBindInfo, 0x79eac9e1, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   5310 #endif
   5311 #else
   5312 typedef struct IInternetBindInfoVtbl {
   5313     BEGIN_INTERFACE
   5314 
   5315     /*** IUnknown methods ***/
   5316     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5317         IInternetBindInfo* This,
   5318         REFIID riid,
   5319         void **ppvObject);
   5320 
   5321     ULONG (STDMETHODCALLTYPE *AddRef)(
   5322         IInternetBindInfo* This);
   5323 
   5324     ULONG (STDMETHODCALLTYPE *Release)(
   5325         IInternetBindInfo* This);
   5326 
   5327     /*** IInternetBindInfo methods ***/
   5328     HRESULT (STDMETHODCALLTYPE *GetBindInfo)(
   5329         IInternetBindInfo* This,
   5330         DWORD *grfBINDF,
   5331         BINDINFO *pbindinfo);
   5332 
   5333     HRESULT (STDMETHODCALLTYPE *GetBindString)(
   5334         IInternetBindInfo* This,
   5335         ULONG ulStringType,
   5336         LPOLESTR *ppwzStr,
   5337         ULONG cEl,
   5338         ULONG *pcElFetched);
   5339 
   5340     END_INTERFACE
   5341 } IInternetBindInfoVtbl;
   5342 interface IInternetBindInfo {
   5343     CONST_VTBL IInternetBindInfoVtbl* lpVtbl;
   5344 };
   5345 
   5346 #ifdef COBJMACROS
   5347 #ifndef WIDL_C_INLINE_WRAPPERS
   5348 /*** IUnknown methods ***/
   5349 #define IInternetBindInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5350 #define IInternetBindInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   5351 #define IInternetBindInfo_Release(This) (This)->lpVtbl->Release(This)
   5352 /*** IInternetBindInfo methods ***/
   5353 #define IInternetBindInfo_GetBindInfo(This,grfBINDF,pbindinfo) (This)->lpVtbl->GetBindInfo(This,grfBINDF,pbindinfo)
   5354 #define IInternetBindInfo_GetBindString(This,ulStringType,ppwzStr,cEl,pcElFetched) (This)->lpVtbl->GetBindString(This,ulStringType,ppwzStr,cEl,pcElFetched)
   5355 #else
   5356 /*** IUnknown methods ***/
   5357 static FORCEINLINE HRESULT IInternetBindInfo_QueryInterface(IInternetBindInfo* This,REFIID riid,void **ppvObject) {
   5358     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5359 }
   5360 static FORCEINLINE ULONG IInternetBindInfo_AddRef(IInternetBindInfo* This) {
   5361     return This->lpVtbl->AddRef(This);
   5362 }
   5363 static FORCEINLINE ULONG IInternetBindInfo_Release(IInternetBindInfo* This) {
   5364     return This->lpVtbl->Release(This);
   5365 }
   5366 /*** IInternetBindInfo methods ***/
   5367 static FORCEINLINE HRESULT IInternetBindInfo_GetBindInfo(IInternetBindInfo* This,DWORD *grfBINDF,BINDINFO *pbindinfo) {
   5368     return This->lpVtbl->GetBindInfo(This,grfBINDF,pbindinfo);
   5369 }
   5370 static FORCEINLINE HRESULT IInternetBindInfo_GetBindString(IInternetBindInfo* This,ULONG ulStringType,LPOLESTR *ppwzStr,ULONG cEl,ULONG *pcElFetched) {
   5371     return This->lpVtbl->GetBindString(This,ulStringType,ppwzStr,cEl,pcElFetched);
   5372 }
   5373 #endif
   5374 #endif
   5375 
   5376 #endif
   5377 
   5378 HRESULT STDMETHODCALLTYPE IInternetBindInfo_GetBindInfo_Proxy(
   5379     IInternetBindInfo* This,
   5380     DWORD *grfBINDF,
   5381     BINDINFO *pbindinfo);
   5382 void __RPC_STUB IInternetBindInfo_GetBindInfo_Stub(
   5383     IRpcStubBuffer* This,
   5384     IRpcChannelBuffer* pRpcChannelBuffer,
   5385     PRPC_MESSAGE pRpcMessage,
   5386     DWORD* pdwStubPhase);
   5387 HRESULT STDMETHODCALLTYPE IInternetBindInfo_GetBindString_Proxy(
   5388     IInternetBindInfo* This,
   5389     ULONG ulStringType,
   5390     LPOLESTR *ppwzStr,
   5391     ULONG cEl,
   5392     ULONG *pcElFetched);
   5393 void __RPC_STUB IInternetBindInfo_GetBindString_Stub(
   5394     IRpcStubBuffer* This,
   5395     IRpcChannelBuffer* pRpcChannelBuffer,
   5396     PRPC_MESSAGE pRpcMessage,
   5397     DWORD* pdwStubPhase);
   5398 
   5399 #endif  /* __IInternetBindInfo_INTERFACE_DEFINED__ */
   5400 
   5401 #endif
   5402 
   5403 #ifndef _LPIINTERNETBINDINFOEX
   5404 #define _LPIINTERNETBINDINFOEX
   5405 
   5406 /*****************************************************************************
   5407  * IInternetBindInfoEx interface
   5408  */
   5409 #ifndef __IInternetBindInfoEx_INTERFACE_DEFINED__
   5410 #define __IInternetBindInfoEx_INTERFACE_DEFINED__
   5411 
   5412 typedef IInternetBindInfoEx *LPIINTERNETBINDINFOEX;
   5413 
   5414 DEFINE_GUID(IID_IInternetBindInfoEx, 0xa3e015b7, 0xa82c, 0x4dcd, 0xa1,0x50, 0x56,0x9a,0xee,0xed,0x36,0xab);
   5415 #if defined(__cplusplus) && !defined(CINTERFACE)
   5416 MIDL_INTERFACE("a3e015b7-a82c-4dcd-a150-569aeeed36ab")
   5417 IInternetBindInfoEx : public IInternetBindInfo
   5418 {
   5419     virtual HRESULT STDMETHODCALLTYPE GetBindInfoEx(
   5420         DWORD *grfBINDF,
   5421         BINDINFO *pbindinfo,
   5422         DWORD *grfBINDF2,
   5423         DWORD *pdwReserved) = 0;
   5424 
   5425 };
   5426 #ifdef __CRT_UUID_DECL
   5427 __CRT_UUID_DECL(IInternetBindInfoEx, 0xa3e015b7, 0xa82c, 0x4dcd, 0xa1,0x50, 0x56,0x9a,0xee,0xed,0x36,0xab)
   5428 #endif
   5429 #else
   5430 typedef struct IInternetBindInfoExVtbl {
   5431     BEGIN_INTERFACE
   5432 
   5433     /*** IUnknown methods ***/
   5434     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5435         IInternetBindInfoEx* This,
   5436         REFIID riid,
   5437         void **ppvObject);
   5438 
   5439     ULONG (STDMETHODCALLTYPE *AddRef)(
   5440         IInternetBindInfoEx* This);
   5441 
   5442     ULONG (STDMETHODCALLTYPE *Release)(
   5443         IInternetBindInfoEx* This);
   5444 
   5445     /*** IInternetBindInfo methods ***/
   5446     HRESULT (STDMETHODCALLTYPE *GetBindInfo)(
   5447         IInternetBindInfoEx* This,
   5448         DWORD *grfBINDF,
   5449         BINDINFO *pbindinfo);
   5450 
   5451     HRESULT (STDMETHODCALLTYPE *GetBindString)(
   5452         IInternetBindInfoEx* This,
   5453         ULONG ulStringType,
   5454         LPOLESTR *ppwzStr,
   5455         ULONG cEl,
   5456         ULONG *pcElFetched);
   5457 
   5458     /*** IInternetBindInfoEx methods ***/
   5459     HRESULT (STDMETHODCALLTYPE *GetBindInfoEx)(
   5460         IInternetBindInfoEx* This,
   5461         DWORD *grfBINDF,
   5462         BINDINFO *pbindinfo,
   5463         DWORD *grfBINDF2,
   5464         DWORD *pdwReserved);
   5465 
   5466     END_INTERFACE
   5467 } IInternetBindInfoExVtbl;
   5468 interface IInternetBindInfoEx {
   5469     CONST_VTBL IInternetBindInfoExVtbl* lpVtbl;
   5470 };
   5471 
   5472 #ifdef COBJMACROS
   5473 #ifndef WIDL_C_INLINE_WRAPPERS
   5474 /*** IUnknown methods ***/
   5475 #define IInternetBindInfoEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5476 #define IInternetBindInfoEx_AddRef(This) (This)->lpVtbl->AddRef(This)
   5477 #define IInternetBindInfoEx_Release(This) (This)->lpVtbl->Release(This)
   5478 /*** IInternetBindInfo methods ***/
   5479 #define IInternetBindInfoEx_GetBindInfo(This,grfBINDF,pbindinfo) (This)->lpVtbl->GetBindInfo(This,grfBINDF,pbindinfo)
   5480 #define IInternetBindInfoEx_GetBindString(This,ulStringType,ppwzStr,cEl,pcElFetched) (This)->lpVtbl->GetBindString(This,ulStringType,ppwzStr,cEl,pcElFetched)
   5481 /*** IInternetBindInfoEx methods ***/
   5482 #define IInternetBindInfoEx_GetBindInfoEx(This,grfBINDF,pbindinfo,grfBINDF2,pdwReserved) (This)->lpVtbl->GetBindInfoEx(This,grfBINDF,pbindinfo,grfBINDF2,pdwReserved)
   5483 #else
   5484 /*** IUnknown methods ***/
   5485 static FORCEINLINE HRESULT IInternetBindInfoEx_QueryInterface(IInternetBindInfoEx* This,REFIID riid,void **ppvObject) {
   5486     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5487 }
   5488 static FORCEINLINE ULONG IInternetBindInfoEx_AddRef(IInternetBindInfoEx* This) {
   5489     return This->lpVtbl->AddRef(This);
   5490 }
   5491 static FORCEINLINE ULONG IInternetBindInfoEx_Release(IInternetBindInfoEx* This) {
   5492     return This->lpVtbl->Release(This);
   5493 }
   5494 /*** IInternetBindInfo methods ***/
   5495 static FORCEINLINE HRESULT IInternetBindInfoEx_GetBindInfo(IInternetBindInfoEx* This,DWORD *grfBINDF,BINDINFO *pbindinfo) {
   5496     return This->lpVtbl->GetBindInfo(This,grfBINDF,pbindinfo);
   5497 }
   5498 static FORCEINLINE HRESULT IInternetBindInfoEx_GetBindString(IInternetBindInfoEx* This,ULONG ulStringType,LPOLESTR *ppwzStr,ULONG cEl,ULONG *pcElFetched) {
   5499     return This->lpVtbl->GetBindString(This,ulStringType,ppwzStr,cEl,pcElFetched);
   5500 }
   5501 /*** IInternetBindInfoEx methods ***/
   5502 static FORCEINLINE HRESULT IInternetBindInfoEx_GetBindInfoEx(IInternetBindInfoEx* This,DWORD *grfBINDF,BINDINFO *pbindinfo,DWORD *grfBINDF2,DWORD *pdwReserved) {
   5503     return This->lpVtbl->GetBindInfoEx(This,grfBINDF,pbindinfo,grfBINDF2,pdwReserved);
   5504 }
   5505 #endif
   5506 #endif
   5507 
   5508 #endif
   5509 
   5510 HRESULT STDMETHODCALLTYPE IInternetBindInfoEx_GetBindInfoEx_Proxy(
   5511     IInternetBindInfoEx* This,
   5512     DWORD *grfBINDF,
   5513     BINDINFO *pbindinfo,
   5514     DWORD *grfBINDF2,
   5515     DWORD *pdwReserved);
   5516 void __RPC_STUB IInternetBindInfoEx_GetBindInfoEx_Stub(
   5517     IRpcStubBuffer* This,
   5518     IRpcChannelBuffer* pRpcChannelBuffer,
   5519     PRPC_MESSAGE pRpcMessage,
   5520     DWORD* pdwStubPhase);
   5521 
   5522 #endif  /* __IInternetBindInfoEx_INTERFACE_DEFINED__ */
   5523 
   5524 #endif
   5525 
   5526 #ifndef _LPIINTERNETPROTOCOLROOT_DEFINED
   5527 #define _LPIINTERNETPROTOCOLROOT_DEFINED
   5528 
   5529 /*****************************************************************************
   5530  * IInternetProtocolRoot interface
   5531  */
   5532 #ifndef __IInternetProtocolRoot_INTERFACE_DEFINED__
   5533 #define __IInternetProtocolRoot_INTERFACE_DEFINED__
   5534 
   5535 typedef IInternetProtocolRoot *LPIINTERNETPROTOCOLROOT;
   5536 
   5537 typedef enum _tagPI_FLAGS {
   5538     PI_PARSE_URL = 0x1,
   5539     PI_FILTER_MODE = 0x2,
   5540     PI_FORCE_ASYNC = 0x4,
   5541     PI_USE_WORKERTHREAD = 0x8,
   5542     PI_MIMEVERIFICATION = 0x10,
   5543     PI_CLSIDLOOKUP = 0x20,
   5544     PI_DATAPROGRESS = 0x40,
   5545     PI_SYNCHRONOUS = 0x80,
   5546     PI_APARTMENTTHREADED = 0x100,
   5547     PI_CLASSINSTALL = 0x200,
   5548     PI_PASSONBINDCTX = 0x2000,
   5549     PI_NOMIMEHANDLER = 0x8000,
   5550     PI_LOADAPPDIRECT = 0x4000,
   5551     PD_FORCE_SWITCH = 0x10000,
   5552     PI_PREFERDEFAULTHANDLER = 0x20000
   5553 } PI_FLAGS;
   5554 typedef struct _tagPROTOCOLDATA {
   5555     DWORD grfFlags;
   5556     DWORD dwState;
   5557     LPVOID pData;
   5558     ULONG cbData;
   5559 } PROTOCOLDATA;
   5560 
   5561 typedef struct _tagStartParam {
   5562     IID iid;
   5563     IBindCtx *pIBindCtx;
   5564     IUnknown *pItf;
   5565 } StartParam;
   5566 
   5567 DEFINE_GUID(IID_IInternetProtocolRoot, 0x79eac9e3, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   5568 #if defined(__cplusplus) && !defined(CINTERFACE)
   5569 MIDL_INTERFACE("79eac9e3-baf9-11ce-8c82-00aa004ba90b")
   5570 IInternetProtocolRoot : public IUnknown
   5571 {
   5572     virtual HRESULT STDMETHODCALLTYPE Start(
   5573         LPCWSTR szUrl,
   5574         IInternetProtocolSink *pOIProtSink,
   5575         IInternetBindInfo *pOIBindInfo,
   5576         DWORD grfPI,
   5577         HANDLE_PTR dwReserved) = 0;
   5578 
   5579     virtual HRESULT STDMETHODCALLTYPE Continue(
   5580         PROTOCOLDATA *pProtocolData) = 0;
   5581 
   5582     virtual HRESULT STDMETHODCALLTYPE Abort(
   5583         HRESULT hrReason,
   5584         DWORD dwOptions) = 0;
   5585 
   5586     virtual HRESULT STDMETHODCALLTYPE Terminate(
   5587         DWORD dwOptions) = 0;
   5588 
   5589     virtual HRESULT STDMETHODCALLTYPE Suspend(
   5590         ) = 0;
   5591 
   5592     virtual HRESULT STDMETHODCALLTYPE Resume(
   5593         ) = 0;
   5594 
   5595 };
   5596 #ifdef __CRT_UUID_DECL
   5597 __CRT_UUID_DECL(IInternetProtocolRoot, 0x79eac9e3, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   5598 #endif
   5599 #else
   5600 typedef struct IInternetProtocolRootVtbl {
   5601     BEGIN_INTERFACE
   5602 
   5603     /*** IUnknown methods ***/
   5604     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5605         IInternetProtocolRoot* This,
   5606         REFIID riid,
   5607         void **ppvObject);
   5608 
   5609     ULONG (STDMETHODCALLTYPE *AddRef)(
   5610         IInternetProtocolRoot* This);
   5611 
   5612     ULONG (STDMETHODCALLTYPE *Release)(
   5613         IInternetProtocolRoot* This);
   5614 
   5615     /*** IInternetProtocolRoot methods ***/
   5616     HRESULT (STDMETHODCALLTYPE *Start)(
   5617         IInternetProtocolRoot* This,
   5618         LPCWSTR szUrl,
   5619         IInternetProtocolSink *pOIProtSink,
   5620         IInternetBindInfo *pOIBindInfo,
   5621         DWORD grfPI,
   5622         HANDLE_PTR dwReserved);
   5623 
   5624     HRESULT (STDMETHODCALLTYPE *Continue)(
   5625         IInternetProtocolRoot* This,
   5626         PROTOCOLDATA *pProtocolData);
   5627 
   5628     HRESULT (STDMETHODCALLTYPE *Abort)(
   5629         IInternetProtocolRoot* This,
   5630         HRESULT hrReason,
   5631         DWORD dwOptions);
   5632 
   5633     HRESULT (STDMETHODCALLTYPE *Terminate)(
   5634         IInternetProtocolRoot* This,
   5635         DWORD dwOptions);
   5636 
   5637     HRESULT (STDMETHODCALLTYPE *Suspend)(
   5638         IInternetProtocolRoot* This);
   5639 
   5640     HRESULT (STDMETHODCALLTYPE *Resume)(
   5641         IInternetProtocolRoot* This);
   5642 
   5643     END_INTERFACE
   5644 } IInternetProtocolRootVtbl;
   5645 interface IInternetProtocolRoot {
   5646     CONST_VTBL IInternetProtocolRootVtbl* lpVtbl;
   5647 };
   5648 
   5649 #ifdef COBJMACROS
   5650 #ifndef WIDL_C_INLINE_WRAPPERS
   5651 /*** IUnknown methods ***/
   5652 #define IInternetProtocolRoot_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5653 #define IInternetProtocolRoot_AddRef(This) (This)->lpVtbl->AddRef(This)
   5654 #define IInternetProtocolRoot_Release(This) (This)->lpVtbl->Release(This)
   5655 /*** IInternetProtocolRoot methods ***/
   5656 #define IInternetProtocolRoot_Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved) (This)->lpVtbl->Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved)
   5657 #define IInternetProtocolRoot_Continue(This,pProtocolData) (This)->lpVtbl->Continue(This,pProtocolData)
   5658 #define IInternetProtocolRoot_Abort(This,hrReason,dwOptions) (This)->lpVtbl->Abort(This,hrReason,dwOptions)
   5659 #define IInternetProtocolRoot_Terminate(This,dwOptions) (This)->lpVtbl->Terminate(This,dwOptions)
   5660 #define IInternetProtocolRoot_Suspend(This) (This)->lpVtbl->Suspend(This)
   5661 #define IInternetProtocolRoot_Resume(This) (This)->lpVtbl->Resume(This)
   5662 #else
   5663 /*** IUnknown methods ***/
   5664 static FORCEINLINE HRESULT IInternetProtocolRoot_QueryInterface(IInternetProtocolRoot* This,REFIID riid,void **ppvObject) {
   5665     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5666 }
   5667 static FORCEINLINE ULONG IInternetProtocolRoot_AddRef(IInternetProtocolRoot* This) {
   5668     return This->lpVtbl->AddRef(This);
   5669 }
   5670 static FORCEINLINE ULONG IInternetProtocolRoot_Release(IInternetProtocolRoot* This) {
   5671     return This->lpVtbl->Release(This);
   5672 }
   5673 /*** IInternetProtocolRoot methods ***/
   5674 static FORCEINLINE HRESULT IInternetProtocolRoot_Start(IInternetProtocolRoot* This,LPCWSTR szUrl,IInternetProtocolSink *pOIProtSink,IInternetBindInfo *pOIBindInfo,DWORD grfPI,HANDLE_PTR dwReserved) {
   5675     return This->lpVtbl->Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved);
   5676 }
   5677 static FORCEINLINE HRESULT IInternetProtocolRoot_Continue(IInternetProtocolRoot* This,PROTOCOLDATA *pProtocolData) {
   5678     return This->lpVtbl->Continue(This,pProtocolData);
   5679 }
   5680 static FORCEINLINE HRESULT IInternetProtocolRoot_Abort(IInternetProtocolRoot* This,HRESULT hrReason,DWORD dwOptions) {
   5681     return This->lpVtbl->Abort(This,hrReason,dwOptions);
   5682 }
   5683 static FORCEINLINE HRESULT IInternetProtocolRoot_Terminate(IInternetProtocolRoot* This,DWORD dwOptions) {
   5684     return This->lpVtbl->Terminate(This,dwOptions);
   5685 }
   5686 static FORCEINLINE HRESULT IInternetProtocolRoot_Suspend(IInternetProtocolRoot* This) {
   5687     return This->lpVtbl->Suspend(This);
   5688 }
   5689 static FORCEINLINE HRESULT IInternetProtocolRoot_Resume(IInternetProtocolRoot* This) {
   5690     return This->lpVtbl->Resume(This);
   5691 }
   5692 #endif
   5693 #endif
   5694 
   5695 #endif
   5696 
   5697 HRESULT STDMETHODCALLTYPE IInternetProtocolRoot_Start_Proxy(
   5698     IInternetProtocolRoot* This,
   5699     LPCWSTR szUrl,
   5700     IInternetProtocolSink *pOIProtSink,
   5701     IInternetBindInfo *pOIBindInfo,
   5702     DWORD grfPI,
   5703     HANDLE_PTR dwReserved);
   5704 void __RPC_STUB IInternetProtocolRoot_Start_Stub(
   5705     IRpcStubBuffer* This,
   5706     IRpcChannelBuffer* pRpcChannelBuffer,
   5707     PRPC_MESSAGE pRpcMessage,
   5708     DWORD* pdwStubPhase);
   5709 HRESULT STDMETHODCALLTYPE IInternetProtocolRoot_Continue_Proxy(
   5710     IInternetProtocolRoot* This,
   5711     PROTOCOLDATA *pProtocolData);
   5712 void __RPC_STUB IInternetProtocolRoot_Continue_Stub(
   5713     IRpcStubBuffer* This,
   5714     IRpcChannelBuffer* pRpcChannelBuffer,
   5715     PRPC_MESSAGE pRpcMessage,
   5716     DWORD* pdwStubPhase);
   5717 HRESULT STDMETHODCALLTYPE IInternetProtocolRoot_Abort_Proxy(
   5718     IInternetProtocolRoot* This,
   5719     HRESULT hrReason,
   5720     DWORD dwOptions);
   5721 void __RPC_STUB IInternetProtocolRoot_Abort_Stub(
   5722     IRpcStubBuffer* This,
   5723     IRpcChannelBuffer* pRpcChannelBuffer,
   5724     PRPC_MESSAGE pRpcMessage,
   5725     DWORD* pdwStubPhase);
   5726 HRESULT STDMETHODCALLTYPE IInternetProtocolRoot_Terminate_Proxy(
   5727     IInternetProtocolRoot* This,
   5728     DWORD dwOptions);
   5729 void __RPC_STUB IInternetProtocolRoot_Terminate_Stub(
   5730     IRpcStubBuffer* This,
   5731     IRpcChannelBuffer* pRpcChannelBuffer,
   5732     PRPC_MESSAGE pRpcMessage,
   5733     DWORD* pdwStubPhase);
   5734 HRESULT STDMETHODCALLTYPE IInternetProtocolRoot_Suspend_Proxy(
   5735     IInternetProtocolRoot* This);
   5736 void __RPC_STUB IInternetProtocolRoot_Suspend_Stub(
   5737     IRpcStubBuffer* This,
   5738     IRpcChannelBuffer* pRpcChannelBuffer,
   5739     PRPC_MESSAGE pRpcMessage,
   5740     DWORD* pdwStubPhase);
   5741 HRESULT STDMETHODCALLTYPE IInternetProtocolRoot_Resume_Proxy(
   5742     IInternetProtocolRoot* This);
   5743 void __RPC_STUB IInternetProtocolRoot_Resume_Stub(
   5744     IRpcStubBuffer* This,
   5745     IRpcChannelBuffer* pRpcChannelBuffer,
   5746     PRPC_MESSAGE pRpcMessage,
   5747     DWORD* pdwStubPhase);
   5748 
   5749 #endif  /* __IInternetProtocolRoot_INTERFACE_DEFINED__ */
   5750 
   5751 #endif
   5752 
   5753 #ifndef _LPIINTERNETPROTOCOL_DEFINED
   5754 #define _LPIINTERNETPROTOCOL_DEFINED
   5755 
   5756 /*****************************************************************************
   5757  * IInternetProtocol interface
   5758  */
   5759 #ifndef __IInternetProtocol_INTERFACE_DEFINED__
   5760 #define __IInternetProtocol_INTERFACE_DEFINED__
   5761 
   5762 typedef IInternetProtocol *LPIINTERNETPROTOCOL;
   5763 
   5764 DEFINE_GUID(IID_IInternetProtocol, 0x79eac9e4, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   5765 #if defined(__cplusplus) && !defined(CINTERFACE)
   5766 MIDL_INTERFACE("79eac9e4-baf9-11ce-8c82-00aa004ba90b")
   5767 IInternetProtocol : public IInternetProtocolRoot
   5768 {
   5769     virtual HRESULT STDMETHODCALLTYPE Read(
   5770         void *pv,
   5771         ULONG cb,
   5772         ULONG *pcbRead) = 0;
   5773 
   5774     virtual HRESULT STDMETHODCALLTYPE Seek(
   5775         LARGE_INTEGER dlibMove,
   5776         DWORD dwOrigin,
   5777         ULARGE_INTEGER *plibNewPosition) = 0;
   5778 
   5779     virtual HRESULT STDMETHODCALLTYPE LockRequest(
   5780         DWORD dwOptions) = 0;
   5781 
   5782     virtual HRESULT STDMETHODCALLTYPE UnlockRequest(
   5783         ) = 0;
   5784 
   5785 };
   5786 #ifdef __CRT_UUID_DECL
   5787 __CRT_UUID_DECL(IInternetProtocol, 0x79eac9e4, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   5788 #endif
   5789 #else
   5790 typedef struct IInternetProtocolVtbl {
   5791     BEGIN_INTERFACE
   5792 
   5793     /*** IUnknown methods ***/
   5794     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5795         IInternetProtocol* This,
   5796         REFIID riid,
   5797         void **ppvObject);
   5798 
   5799     ULONG (STDMETHODCALLTYPE *AddRef)(
   5800         IInternetProtocol* This);
   5801 
   5802     ULONG (STDMETHODCALLTYPE *Release)(
   5803         IInternetProtocol* This);
   5804 
   5805     /*** IInternetProtocolRoot methods ***/
   5806     HRESULT (STDMETHODCALLTYPE *Start)(
   5807         IInternetProtocol* This,
   5808         LPCWSTR szUrl,
   5809         IInternetProtocolSink *pOIProtSink,
   5810         IInternetBindInfo *pOIBindInfo,
   5811         DWORD grfPI,
   5812         HANDLE_PTR dwReserved);
   5813 
   5814     HRESULT (STDMETHODCALLTYPE *Continue)(
   5815         IInternetProtocol* This,
   5816         PROTOCOLDATA *pProtocolData);
   5817 
   5818     HRESULT (STDMETHODCALLTYPE *Abort)(
   5819         IInternetProtocol* This,
   5820         HRESULT hrReason,
   5821         DWORD dwOptions);
   5822 
   5823     HRESULT (STDMETHODCALLTYPE *Terminate)(
   5824         IInternetProtocol* This,
   5825         DWORD dwOptions);
   5826 
   5827     HRESULT (STDMETHODCALLTYPE *Suspend)(
   5828         IInternetProtocol* This);
   5829 
   5830     HRESULT (STDMETHODCALLTYPE *Resume)(
   5831         IInternetProtocol* This);
   5832 
   5833     /*** IInternetProtocol methods ***/
   5834     HRESULT (STDMETHODCALLTYPE *Read)(
   5835         IInternetProtocol* This,
   5836         void *pv,
   5837         ULONG cb,
   5838         ULONG *pcbRead);
   5839 
   5840     HRESULT (STDMETHODCALLTYPE *Seek)(
   5841         IInternetProtocol* This,
   5842         LARGE_INTEGER dlibMove,
   5843         DWORD dwOrigin,
   5844         ULARGE_INTEGER *plibNewPosition);
   5845 
   5846     HRESULT (STDMETHODCALLTYPE *LockRequest)(
   5847         IInternetProtocol* This,
   5848         DWORD dwOptions);
   5849 
   5850     HRESULT (STDMETHODCALLTYPE *UnlockRequest)(
   5851         IInternetProtocol* This);
   5852 
   5853     END_INTERFACE
   5854 } IInternetProtocolVtbl;
   5855 interface IInternetProtocol {
   5856     CONST_VTBL IInternetProtocolVtbl* lpVtbl;
   5857 };
   5858 
   5859 #ifdef COBJMACROS
   5860 #ifndef WIDL_C_INLINE_WRAPPERS
   5861 /*** IUnknown methods ***/
   5862 #define IInternetProtocol_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5863 #define IInternetProtocol_AddRef(This) (This)->lpVtbl->AddRef(This)
   5864 #define IInternetProtocol_Release(This) (This)->lpVtbl->Release(This)
   5865 /*** IInternetProtocolRoot methods ***/
   5866 #define IInternetProtocol_Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved) (This)->lpVtbl->Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved)
   5867 #define IInternetProtocol_Continue(This,pProtocolData) (This)->lpVtbl->Continue(This,pProtocolData)
   5868 #define IInternetProtocol_Abort(This,hrReason,dwOptions) (This)->lpVtbl->Abort(This,hrReason,dwOptions)
   5869 #define IInternetProtocol_Terminate(This,dwOptions) (This)->lpVtbl->Terminate(This,dwOptions)
   5870 #define IInternetProtocol_Suspend(This) (This)->lpVtbl->Suspend(This)
   5871 #define IInternetProtocol_Resume(This) (This)->lpVtbl->Resume(This)
   5872 /*** IInternetProtocol methods ***/
   5873 #define IInternetProtocol_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   5874 #define IInternetProtocol_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   5875 #define IInternetProtocol_LockRequest(This,dwOptions) (This)->lpVtbl->LockRequest(This,dwOptions)
   5876 #define IInternetProtocol_UnlockRequest(This) (This)->lpVtbl->UnlockRequest(This)
   5877 #else
   5878 /*** IUnknown methods ***/
   5879 static FORCEINLINE HRESULT IInternetProtocol_QueryInterface(IInternetProtocol* This,REFIID riid,void **ppvObject) {
   5880     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5881 }
   5882 static FORCEINLINE ULONG IInternetProtocol_AddRef(IInternetProtocol* This) {
   5883     return This->lpVtbl->AddRef(This);
   5884 }
   5885 static FORCEINLINE ULONG IInternetProtocol_Release(IInternetProtocol* This) {
   5886     return This->lpVtbl->Release(This);
   5887 }
   5888 /*** IInternetProtocolRoot methods ***/
   5889 static FORCEINLINE HRESULT IInternetProtocol_Start(IInternetProtocol* This,LPCWSTR szUrl,IInternetProtocolSink *pOIProtSink,IInternetBindInfo *pOIBindInfo,DWORD grfPI,HANDLE_PTR dwReserved) {
   5890     return This->lpVtbl->Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved);
   5891 }
   5892 static FORCEINLINE HRESULT IInternetProtocol_Continue(IInternetProtocol* This,PROTOCOLDATA *pProtocolData) {
   5893     return This->lpVtbl->Continue(This,pProtocolData);
   5894 }
   5895 static FORCEINLINE HRESULT IInternetProtocol_Abort(IInternetProtocol* This,HRESULT hrReason,DWORD dwOptions) {
   5896     return This->lpVtbl->Abort(This,hrReason,dwOptions);
   5897 }
   5898 static FORCEINLINE HRESULT IInternetProtocol_Terminate(IInternetProtocol* This,DWORD dwOptions) {
   5899     return This->lpVtbl->Terminate(This,dwOptions);
   5900 }
   5901 static FORCEINLINE HRESULT IInternetProtocol_Suspend(IInternetProtocol* This) {
   5902     return This->lpVtbl->Suspend(This);
   5903 }
   5904 static FORCEINLINE HRESULT IInternetProtocol_Resume(IInternetProtocol* This) {
   5905     return This->lpVtbl->Resume(This);
   5906 }
   5907 /*** IInternetProtocol methods ***/
   5908 static FORCEINLINE HRESULT IInternetProtocol_Read(IInternetProtocol* This,void *pv,ULONG cb,ULONG *pcbRead) {
   5909     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   5910 }
   5911 static FORCEINLINE HRESULT IInternetProtocol_Seek(IInternetProtocol* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   5912     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   5913 }
   5914 static FORCEINLINE HRESULT IInternetProtocol_LockRequest(IInternetProtocol* This,DWORD dwOptions) {
   5915     return This->lpVtbl->LockRequest(This,dwOptions);
   5916 }
   5917 static FORCEINLINE HRESULT IInternetProtocol_UnlockRequest(IInternetProtocol* This) {
   5918     return This->lpVtbl->UnlockRequest(This);
   5919 }
   5920 #endif
   5921 #endif
   5922 
   5923 #endif
   5924 
   5925 HRESULT STDMETHODCALLTYPE IInternetProtocol_Read_Proxy(
   5926     IInternetProtocol* This,
   5927     void *pv,
   5928     ULONG cb,
   5929     ULONG *pcbRead);
   5930 void __RPC_STUB IInternetProtocol_Read_Stub(
   5931     IRpcStubBuffer* This,
   5932     IRpcChannelBuffer* pRpcChannelBuffer,
   5933     PRPC_MESSAGE pRpcMessage,
   5934     DWORD* pdwStubPhase);
   5935 HRESULT STDMETHODCALLTYPE IInternetProtocol_Seek_Proxy(
   5936     IInternetProtocol* This,
   5937     LARGE_INTEGER dlibMove,
   5938     DWORD dwOrigin,
   5939     ULARGE_INTEGER *plibNewPosition);
   5940 void __RPC_STUB IInternetProtocol_Seek_Stub(
   5941     IRpcStubBuffer* This,
   5942     IRpcChannelBuffer* pRpcChannelBuffer,
   5943     PRPC_MESSAGE pRpcMessage,
   5944     DWORD* pdwStubPhase);
   5945 HRESULT STDMETHODCALLTYPE IInternetProtocol_LockRequest_Proxy(
   5946     IInternetProtocol* This,
   5947     DWORD dwOptions);
   5948 void __RPC_STUB IInternetProtocol_LockRequest_Stub(
   5949     IRpcStubBuffer* This,
   5950     IRpcChannelBuffer* pRpcChannelBuffer,
   5951     PRPC_MESSAGE pRpcMessage,
   5952     DWORD* pdwStubPhase);
   5953 HRESULT STDMETHODCALLTYPE IInternetProtocol_UnlockRequest_Proxy(
   5954     IInternetProtocol* This);
   5955 void __RPC_STUB IInternetProtocol_UnlockRequest_Stub(
   5956     IRpcStubBuffer* This,
   5957     IRpcChannelBuffer* pRpcChannelBuffer,
   5958     PRPC_MESSAGE pRpcMessage,
   5959     DWORD* pdwStubPhase);
   5960 
   5961 #endif  /* __IInternetProtocol_INTERFACE_DEFINED__ */
   5962 
   5963 #endif
   5964 
   5965 #if (_WIN32_IE >= _WIN32_IE_IE70)
   5966 #ifndef _LPIINTERNETPROTOCOLEX_DEFINED
   5967 #define _LPIINTERNETPROTOCOLEX_DEFINED
   5968 
   5969 /*****************************************************************************
   5970  * IInternetProtocolEx interface
   5971  */
   5972 #ifndef __IInternetProtocolEx_INTERFACE_DEFINED__
   5973 #define __IInternetProtocolEx_INTERFACE_DEFINED__
   5974 
   5975 DEFINE_GUID(IID_IInternetProtocolEx, 0xc7a98e66, 0x1010, 0x492c, 0xa1,0xc8, 0xc8,0x09,0xe1,0xf7,0x59,0x05);
   5976 #if defined(__cplusplus) && !defined(CINTERFACE)
   5977 MIDL_INTERFACE("c7a98e66-1010-492c-a1c8-c809e1f75905")
   5978 IInternetProtocolEx : public IInternetProtocol
   5979 {
   5980     virtual HRESULT STDMETHODCALLTYPE StartEx(
   5981         IUri *pUri,
   5982         IInternetProtocolSink *pOIProtSink,
   5983         IInternetBindInfo *pOIBindInfo,
   5984         DWORD grfPI,
   5985         HANDLE_PTR dwReserved) = 0;
   5986 
   5987 };
   5988 #ifdef __CRT_UUID_DECL
   5989 __CRT_UUID_DECL(IInternetProtocolEx, 0xc7a98e66, 0x1010, 0x492c, 0xa1,0xc8, 0xc8,0x09,0xe1,0xf7,0x59,0x05)
   5990 #endif
   5991 #else
   5992 typedef struct IInternetProtocolExVtbl {
   5993     BEGIN_INTERFACE
   5994 
   5995     /*** IUnknown methods ***/
   5996     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5997         IInternetProtocolEx* This,
   5998         REFIID riid,
   5999         void **ppvObject);
   6000 
   6001     ULONG (STDMETHODCALLTYPE *AddRef)(
   6002         IInternetProtocolEx* This);
   6003 
   6004     ULONG (STDMETHODCALLTYPE *Release)(
   6005         IInternetProtocolEx* This);
   6006 
   6007     /*** IInternetProtocolRoot methods ***/
   6008     HRESULT (STDMETHODCALLTYPE *Start)(
   6009         IInternetProtocolEx* This,
   6010         LPCWSTR szUrl,
   6011         IInternetProtocolSink *pOIProtSink,
   6012         IInternetBindInfo *pOIBindInfo,
   6013         DWORD grfPI,
   6014         HANDLE_PTR dwReserved);
   6015 
   6016     HRESULT (STDMETHODCALLTYPE *Continue)(
   6017         IInternetProtocolEx* This,
   6018         PROTOCOLDATA *pProtocolData);
   6019 
   6020     HRESULT (STDMETHODCALLTYPE *Abort)(
   6021         IInternetProtocolEx* This,
   6022         HRESULT hrReason,
   6023         DWORD dwOptions);
   6024 
   6025     HRESULT (STDMETHODCALLTYPE *Terminate)(
   6026         IInternetProtocolEx* This,
   6027         DWORD dwOptions);
   6028 
   6029     HRESULT (STDMETHODCALLTYPE *Suspend)(
   6030         IInternetProtocolEx* This);
   6031 
   6032     HRESULT (STDMETHODCALLTYPE *Resume)(
   6033         IInternetProtocolEx* This);
   6034 
   6035     /*** IInternetProtocol methods ***/
   6036     HRESULT (STDMETHODCALLTYPE *Read)(
   6037         IInternetProtocolEx* This,
   6038         void *pv,
   6039         ULONG cb,
   6040         ULONG *pcbRead);
   6041 
   6042     HRESULT (STDMETHODCALLTYPE *Seek)(
   6043         IInternetProtocolEx* This,
   6044         LARGE_INTEGER dlibMove,
   6045         DWORD dwOrigin,
   6046         ULARGE_INTEGER *plibNewPosition);
   6047 
   6048     HRESULT (STDMETHODCALLTYPE *LockRequest)(
   6049         IInternetProtocolEx* This,
   6050         DWORD dwOptions);
   6051 
   6052     HRESULT (STDMETHODCALLTYPE *UnlockRequest)(
   6053         IInternetProtocolEx* This);
   6054 
   6055     /*** IInternetProtocolEx methods ***/
   6056     HRESULT (STDMETHODCALLTYPE *StartEx)(
   6057         IInternetProtocolEx* This,
   6058         IUri *pUri,
   6059         IInternetProtocolSink *pOIProtSink,
   6060         IInternetBindInfo *pOIBindInfo,
   6061         DWORD grfPI,
   6062         HANDLE_PTR dwReserved);
   6063 
   6064     END_INTERFACE
   6065 } IInternetProtocolExVtbl;
   6066 interface IInternetProtocolEx {
   6067     CONST_VTBL IInternetProtocolExVtbl* lpVtbl;
   6068 };
   6069 
   6070 #ifdef COBJMACROS
   6071 #ifndef WIDL_C_INLINE_WRAPPERS
   6072 /*** IUnknown methods ***/
   6073 #define IInternetProtocolEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6074 #define IInternetProtocolEx_AddRef(This) (This)->lpVtbl->AddRef(This)
   6075 #define IInternetProtocolEx_Release(This) (This)->lpVtbl->Release(This)
   6076 /*** IInternetProtocolRoot methods ***/
   6077 #define IInternetProtocolEx_Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved) (This)->lpVtbl->Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved)
   6078 #define IInternetProtocolEx_Continue(This,pProtocolData) (This)->lpVtbl->Continue(This,pProtocolData)
   6079 #define IInternetProtocolEx_Abort(This,hrReason,dwOptions) (This)->lpVtbl->Abort(This,hrReason,dwOptions)
   6080 #define IInternetProtocolEx_Terminate(This,dwOptions) (This)->lpVtbl->Terminate(This,dwOptions)
   6081 #define IInternetProtocolEx_Suspend(This) (This)->lpVtbl->Suspend(This)
   6082 #define IInternetProtocolEx_Resume(This) (This)->lpVtbl->Resume(This)
   6083 /*** IInternetProtocol methods ***/
   6084 #define IInternetProtocolEx_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
   6085 #define IInternetProtocolEx_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
   6086 #define IInternetProtocolEx_LockRequest(This,dwOptions) (This)->lpVtbl->LockRequest(This,dwOptions)
   6087 #define IInternetProtocolEx_UnlockRequest(This) (This)->lpVtbl->UnlockRequest(This)
   6088 /*** IInternetProtocolEx methods ***/
   6089 #define IInternetProtocolEx_StartEx(This,pUri,pOIProtSink,pOIBindInfo,grfPI,dwReserved) (This)->lpVtbl->StartEx(This,pUri,pOIProtSink,pOIBindInfo,grfPI,dwReserved)
   6090 #else
   6091 /*** IUnknown methods ***/
   6092 static FORCEINLINE HRESULT IInternetProtocolEx_QueryInterface(IInternetProtocolEx* This,REFIID riid,void **ppvObject) {
   6093     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6094 }
   6095 static FORCEINLINE ULONG IInternetProtocolEx_AddRef(IInternetProtocolEx* This) {
   6096     return This->lpVtbl->AddRef(This);
   6097 }
   6098 static FORCEINLINE ULONG IInternetProtocolEx_Release(IInternetProtocolEx* This) {
   6099     return This->lpVtbl->Release(This);
   6100 }
   6101 /*** IInternetProtocolRoot methods ***/
   6102 static FORCEINLINE HRESULT IInternetProtocolEx_Start(IInternetProtocolEx* This,LPCWSTR szUrl,IInternetProtocolSink *pOIProtSink,IInternetBindInfo *pOIBindInfo,DWORD grfPI,HANDLE_PTR dwReserved) {
   6103     return This->lpVtbl->Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved);
   6104 }
   6105 static FORCEINLINE HRESULT IInternetProtocolEx_Continue(IInternetProtocolEx* This,PROTOCOLDATA *pProtocolData) {
   6106     return This->lpVtbl->Continue(This,pProtocolData);
   6107 }
   6108 static FORCEINLINE HRESULT IInternetProtocolEx_Abort(IInternetProtocolEx* This,HRESULT hrReason,DWORD dwOptions) {
   6109     return This->lpVtbl->Abort(This,hrReason,dwOptions);
   6110 }
   6111 static FORCEINLINE HRESULT IInternetProtocolEx_Terminate(IInternetProtocolEx* This,DWORD dwOptions) {
   6112     return This->lpVtbl->Terminate(This,dwOptions);
   6113 }
   6114 static FORCEINLINE HRESULT IInternetProtocolEx_Suspend(IInternetProtocolEx* This) {
   6115     return This->lpVtbl->Suspend(This);
   6116 }
   6117 static FORCEINLINE HRESULT IInternetProtocolEx_Resume(IInternetProtocolEx* This) {
   6118     return This->lpVtbl->Resume(This);
   6119 }
   6120 /*** IInternetProtocol methods ***/
   6121 static FORCEINLINE HRESULT IInternetProtocolEx_Read(IInternetProtocolEx* This,void *pv,ULONG cb,ULONG *pcbRead) {
   6122     return This->lpVtbl->Read(This,pv,cb,pcbRead);
   6123 }
   6124 static FORCEINLINE HRESULT IInternetProtocolEx_Seek(IInternetProtocolEx* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
   6125     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
   6126 }
   6127 static FORCEINLINE HRESULT IInternetProtocolEx_LockRequest(IInternetProtocolEx* This,DWORD dwOptions) {
   6128     return This->lpVtbl->LockRequest(This,dwOptions);
   6129 }
   6130 static FORCEINLINE HRESULT IInternetProtocolEx_UnlockRequest(IInternetProtocolEx* This) {
   6131     return This->lpVtbl->UnlockRequest(This);
   6132 }
   6133 /*** IInternetProtocolEx methods ***/
   6134 static FORCEINLINE HRESULT IInternetProtocolEx_StartEx(IInternetProtocolEx* This,IUri *pUri,IInternetProtocolSink *pOIProtSink,IInternetBindInfo *pOIBindInfo,DWORD grfPI,HANDLE_PTR dwReserved) {
   6135     return This->lpVtbl->StartEx(This,pUri,pOIProtSink,pOIBindInfo,grfPI,dwReserved);
   6136 }
   6137 #endif
   6138 #endif
   6139 
   6140 #endif
   6141 
   6142 HRESULT STDMETHODCALLTYPE IInternetProtocolEx_StartEx_Proxy(
   6143     IInternetProtocolEx* This,
   6144     IUri *pUri,
   6145     IInternetProtocolSink *pOIProtSink,
   6146     IInternetBindInfo *pOIBindInfo,
   6147     DWORD grfPI,
   6148     HANDLE_PTR dwReserved);
   6149 void __RPC_STUB IInternetProtocolEx_StartEx_Stub(
   6150     IRpcStubBuffer* This,
   6151     IRpcChannelBuffer* pRpcChannelBuffer,
   6152     PRPC_MESSAGE pRpcMessage,
   6153     DWORD* pdwStubPhase);
   6154 
   6155 #endif  /* __IInternetProtocolEx_INTERFACE_DEFINED__ */
   6156 
   6157 #endif
   6158 #endif
   6159 
   6160 #ifndef _LPIINTERNETPROTOCOLSINK_DEFINED
   6161 #define _LPIINTERNETPROTOCOLSINK_DEFINED
   6162 /*****************************************************************************
   6163  * IInternetProtocolSink interface
   6164  */
   6165 #ifndef __IInternetProtocolSink_INTERFACE_DEFINED__
   6166 #define __IInternetProtocolSink_INTERFACE_DEFINED__
   6167 
   6168 typedef IInternetProtocolSink *LPIINTERNETPROTOCOLSINK;
   6169 
   6170 DEFINE_GUID(IID_IInternetProtocolSink, 0x79eac9e5, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   6171 #if defined(__cplusplus) && !defined(CINTERFACE)
   6172 MIDL_INTERFACE("79eac9e5-baf9-11ce-8c82-00aa004ba90b")
   6173 IInternetProtocolSink : public IUnknown
   6174 {
   6175     virtual HRESULT STDMETHODCALLTYPE Switch(
   6176         PROTOCOLDATA *pProtocolData) = 0;
   6177 
   6178     virtual HRESULT STDMETHODCALLTYPE ReportProgress(
   6179         ULONG ulStatusCode,
   6180         LPCWSTR szStatusText) = 0;
   6181 
   6182     virtual HRESULT STDMETHODCALLTYPE ReportData(
   6183         DWORD grfBSCF,
   6184         ULONG ulProgress,
   6185         ULONG ulProgressMax) = 0;
   6186 
   6187     virtual HRESULT STDMETHODCALLTYPE ReportResult(
   6188         HRESULT hrResult,
   6189         DWORD dwError,
   6190         LPCWSTR szResult) = 0;
   6191 
   6192 };
   6193 #ifdef __CRT_UUID_DECL
   6194 __CRT_UUID_DECL(IInternetProtocolSink, 0x79eac9e5, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   6195 #endif
   6196 #else
   6197 typedef struct IInternetProtocolSinkVtbl {
   6198     BEGIN_INTERFACE
   6199 
   6200     /*** IUnknown methods ***/
   6201     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6202         IInternetProtocolSink* This,
   6203         REFIID riid,
   6204         void **ppvObject);
   6205 
   6206     ULONG (STDMETHODCALLTYPE *AddRef)(
   6207         IInternetProtocolSink* This);
   6208 
   6209     ULONG (STDMETHODCALLTYPE *Release)(
   6210         IInternetProtocolSink* This);
   6211 
   6212     /*** IInternetProtocolSink methods ***/
   6213     HRESULT (STDMETHODCALLTYPE *Switch)(
   6214         IInternetProtocolSink* This,
   6215         PROTOCOLDATA *pProtocolData);
   6216 
   6217     HRESULT (STDMETHODCALLTYPE *ReportProgress)(
   6218         IInternetProtocolSink* This,
   6219         ULONG ulStatusCode,
   6220         LPCWSTR szStatusText);
   6221 
   6222     HRESULT (STDMETHODCALLTYPE *ReportData)(
   6223         IInternetProtocolSink* This,
   6224         DWORD grfBSCF,
   6225         ULONG ulProgress,
   6226         ULONG ulProgressMax);
   6227 
   6228     HRESULT (STDMETHODCALLTYPE *ReportResult)(
   6229         IInternetProtocolSink* This,
   6230         HRESULT hrResult,
   6231         DWORD dwError,
   6232         LPCWSTR szResult);
   6233 
   6234     END_INTERFACE
   6235 } IInternetProtocolSinkVtbl;
   6236 interface IInternetProtocolSink {
   6237     CONST_VTBL IInternetProtocolSinkVtbl* lpVtbl;
   6238 };
   6239 
   6240 #ifdef COBJMACROS
   6241 #ifndef WIDL_C_INLINE_WRAPPERS
   6242 /*** IUnknown methods ***/
   6243 #define IInternetProtocolSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6244 #define IInternetProtocolSink_AddRef(This) (This)->lpVtbl->AddRef(This)
   6245 #define IInternetProtocolSink_Release(This) (This)->lpVtbl->Release(This)
   6246 /*** IInternetProtocolSink methods ***/
   6247 #define IInternetProtocolSink_Switch(This,pProtocolData) (This)->lpVtbl->Switch(This,pProtocolData)
   6248 #define IInternetProtocolSink_ReportProgress(This,ulStatusCode,szStatusText) (This)->lpVtbl->ReportProgress(This,ulStatusCode,szStatusText)
   6249 #define IInternetProtocolSink_ReportData(This,grfBSCF,ulProgress,ulProgressMax) (This)->lpVtbl->ReportData(This,grfBSCF,ulProgress,ulProgressMax)
   6250 #define IInternetProtocolSink_ReportResult(This,hrResult,dwError,szResult) (This)->lpVtbl->ReportResult(This,hrResult,dwError,szResult)
   6251 #else
   6252 /*** IUnknown methods ***/
   6253 static FORCEINLINE HRESULT IInternetProtocolSink_QueryInterface(IInternetProtocolSink* This,REFIID riid,void **ppvObject) {
   6254     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6255 }
   6256 static FORCEINLINE ULONG IInternetProtocolSink_AddRef(IInternetProtocolSink* This) {
   6257     return This->lpVtbl->AddRef(This);
   6258 }
   6259 static FORCEINLINE ULONG IInternetProtocolSink_Release(IInternetProtocolSink* This) {
   6260     return This->lpVtbl->Release(This);
   6261 }
   6262 /*** IInternetProtocolSink methods ***/
   6263 static FORCEINLINE HRESULT IInternetProtocolSink_Switch(IInternetProtocolSink* This,PROTOCOLDATA *pProtocolData) {
   6264     return This->lpVtbl->Switch(This,pProtocolData);
   6265 }
   6266 static FORCEINLINE HRESULT IInternetProtocolSink_ReportProgress(IInternetProtocolSink* This,ULONG ulStatusCode,LPCWSTR szStatusText) {
   6267     return This->lpVtbl->ReportProgress(This,ulStatusCode,szStatusText);
   6268 }
   6269 static FORCEINLINE HRESULT IInternetProtocolSink_ReportData(IInternetProtocolSink* This,DWORD grfBSCF,ULONG ulProgress,ULONG ulProgressMax) {
   6270     return This->lpVtbl->ReportData(This,grfBSCF,ulProgress,ulProgressMax);
   6271 }
   6272 static FORCEINLINE HRESULT IInternetProtocolSink_ReportResult(IInternetProtocolSink* This,HRESULT hrResult,DWORD dwError,LPCWSTR szResult) {
   6273     return This->lpVtbl->ReportResult(This,hrResult,dwError,szResult);
   6274 }
   6275 #endif
   6276 #endif
   6277 
   6278 #endif
   6279 
   6280 HRESULT STDMETHODCALLTYPE IInternetProtocolSink_Switch_Proxy(
   6281     IInternetProtocolSink* This,
   6282     PROTOCOLDATA *pProtocolData);
   6283 void __RPC_STUB IInternetProtocolSink_Switch_Stub(
   6284     IRpcStubBuffer* This,
   6285     IRpcChannelBuffer* pRpcChannelBuffer,
   6286     PRPC_MESSAGE pRpcMessage,
   6287     DWORD* pdwStubPhase);
   6288 HRESULT STDMETHODCALLTYPE IInternetProtocolSink_ReportProgress_Proxy(
   6289     IInternetProtocolSink* This,
   6290     ULONG ulStatusCode,
   6291     LPCWSTR szStatusText);
   6292 void __RPC_STUB IInternetProtocolSink_ReportProgress_Stub(
   6293     IRpcStubBuffer* This,
   6294     IRpcChannelBuffer* pRpcChannelBuffer,
   6295     PRPC_MESSAGE pRpcMessage,
   6296     DWORD* pdwStubPhase);
   6297 HRESULT STDMETHODCALLTYPE IInternetProtocolSink_ReportData_Proxy(
   6298     IInternetProtocolSink* This,
   6299     DWORD grfBSCF,
   6300     ULONG ulProgress,
   6301     ULONG ulProgressMax);
   6302 void __RPC_STUB IInternetProtocolSink_ReportData_Stub(
   6303     IRpcStubBuffer* This,
   6304     IRpcChannelBuffer* pRpcChannelBuffer,
   6305     PRPC_MESSAGE pRpcMessage,
   6306     DWORD* pdwStubPhase);
   6307 HRESULT STDMETHODCALLTYPE IInternetProtocolSink_ReportResult_Proxy(
   6308     IInternetProtocolSink* This,
   6309     HRESULT hrResult,
   6310     DWORD dwError,
   6311     LPCWSTR szResult);
   6312 void __RPC_STUB IInternetProtocolSink_ReportResult_Stub(
   6313     IRpcStubBuffer* This,
   6314     IRpcChannelBuffer* pRpcChannelBuffer,
   6315     PRPC_MESSAGE pRpcMessage,
   6316     DWORD* pdwStubPhase);
   6317 
   6318 #endif  /* __IInternetProtocolSink_INTERFACE_DEFINED__ */
   6319 
   6320 #endif
   6321 
   6322 #ifndef _LPIINTERNETPROTOCOLSINKSTACKABLE_DEFINED
   6323 #define _LPIINTERNETPROTOCOLSINKSTACKABLE_DEFINED
   6324 
   6325 /*****************************************************************************
   6326  * IInternetProtocolSinkStackable interface
   6327  */
   6328 #ifndef __IInternetProtocolSinkStackable_INTERFACE_DEFINED__
   6329 #define __IInternetProtocolSinkStackable_INTERFACE_DEFINED__
   6330 
   6331 typedef IInternetProtocolSinkStackable *LPIINTERNETPROTOCOLSINKStackable;
   6332 
   6333 DEFINE_GUID(IID_IInternetProtocolSinkStackable, 0x79eac9f0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   6334 #if defined(__cplusplus) && !defined(CINTERFACE)
   6335 MIDL_INTERFACE("79eac9f0-baf9-11ce-8c82-00aa004ba90b")
   6336 IInternetProtocolSinkStackable : public IUnknown
   6337 {
   6338     virtual HRESULT STDMETHODCALLTYPE SwitchSink(
   6339         IInternetProtocolSink *pOIProtSink) = 0;
   6340 
   6341     virtual HRESULT STDMETHODCALLTYPE CommitSwitch(
   6342         ) = 0;
   6343 
   6344     virtual HRESULT STDMETHODCALLTYPE RollbackSwitch(
   6345         ) = 0;
   6346 
   6347 };
   6348 #ifdef __CRT_UUID_DECL
   6349 __CRT_UUID_DECL(IInternetProtocolSinkStackable, 0x79eac9f0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   6350 #endif
   6351 #else
   6352 typedef struct IInternetProtocolSinkStackableVtbl {
   6353     BEGIN_INTERFACE
   6354 
   6355     /*** IUnknown methods ***/
   6356     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6357         IInternetProtocolSinkStackable* This,
   6358         REFIID riid,
   6359         void **ppvObject);
   6360 
   6361     ULONG (STDMETHODCALLTYPE *AddRef)(
   6362         IInternetProtocolSinkStackable* This);
   6363 
   6364     ULONG (STDMETHODCALLTYPE *Release)(
   6365         IInternetProtocolSinkStackable* This);
   6366 
   6367     /*** IInternetProtocolSinkStackable methods ***/
   6368     HRESULT (STDMETHODCALLTYPE *SwitchSink)(
   6369         IInternetProtocolSinkStackable* This,
   6370         IInternetProtocolSink *pOIProtSink);
   6371 
   6372     HRESULT (STDMETHODCALLTYPE *CommitSwitch)(
   6373         IInternetProtocolSinkStackable* This);
   6374 
   6375     HRESULT (STDMETHODCALLTYPE *RollbackSwitch)(
   6376         IInternetProtocolSinkStackable* This);
   6377 
   6378     END_INTERFACE
   6379 } IInternetProtocolSinkStackableVtbl;
   6380 interface IInternetProtocolSinkStackable {
   6381     CONST_VTBL IInternetProtocolSinkStackableVtbl* lpVtbl;
   6382 };
   6383 
   6384 #ifdef COBJMACROS
   6385 #ifndef WIDL_C_INLINE_WRAPPERS
   6386 /*** IUnknown methods ***/
   6387 #define IInternetProtocolSinkStackable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6388 #define IInternetProtocolSinkStackable_AddRef(This) (This)->lpVtbl->AddRef(This)
   6389 #define IInternetProtocolSinkStackable_Release(This) (This)->lpVtbl->Release(This)
   6390 /*** IInternetProtocolSinkStackable methods ***/
   6391 #define IInternetProtocolSinkStackable_SwitchSink(This,pOIProtSink) (This)->lpVtbl->SwitchSink(This,pOIProtSink)
   6392 #define IInternetProtocolSinkStackable_CommitSwitch(This) (This)->lpVtbl->CommitSwitch(This)
   6393 #define IInternetProtocolSinkStackable_RollbackSwitch(This) (This)->lpVtbl->RollbackSwitch(This)
   6394 #else
   6395 /*** IUnknown methods ***/
   6396 static FORCEINLINE HRESULT IInternetProtocolSinkStackable_QueryInterface(IInternetProtocolSinkStackable* This,REFIID riid,void **ppvObject) {
   6397     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6398 }
   6399 static FORCEINLINE ULONG IInternetProtocolSinkStackable_AddRef(IInternetProtocolSinkStackable* This) {
   6400     return This->lpVtbl->AddRef(This);
   6401 }
   6402 static FORCEINLINE ULONG IInternetProtocolSinkStackable_Release(IInternetProtocolSinkStackable* This) {
   6403     return This->lpVtbl->Release(This);
   6404 }
   6405 /*** IInternetProtocolSinkStackable methods ***/
   6406 static FORCEINLINE HRESULT IInternetProtocolSinkStackable_SwitchSink(IInternetProtocolSinkStackable* This,IInternetProtocolSink *pOIProtSink) {
   6407     return This->lpVtbl->SwitchSink(This,pOIProtSink);
   6408 }
   6409 static FORCEINLINE HRESULT IInternetProtocolSinkStackable_CommitSwitch(IInternetProtocolSinkStackable* This) {
   6410     return This->lpVtbl->CommitSwitch(This);
   6411 }
   6412 static FORCEINLINE HRESULT IInternetProtocolSinkStackable_RollbackSwitch(IInternetProtocolSinkStackable* This) {
   6413     return This->lpVtbl->RollbackSwitch(This);
   6414 }
   6415 #endif
   6416 #endif
   6417 
   6418 #endif
   6419 
   6420 HRESULT STDMETHODCALLTYPE IInternetProtocolSinkStackable_SwitchSink_Proxy(
   6421     IInternetProtocolSinkStackable* This,
   6422     IInternetProtocolSink *pOIProtSink);
   6423 void __RPC_STUB IInternetProtocolSinkStackable_SwitchSink_Stub(
   6424     IRpcStubBuffer* This,
   6425     IRpcChannelBuffer* pRpcChannelBuffer,
   6426     PRPC_MESSAGE pRpcMessage,
   6427     DWORD* pdwStubPhase);
   6428 HRESULT STDMETHODCALLTYPE IInternetProtocolSinkStackable_CommitSwitch_Proxy(
   6429     IInternetProtocolSinkStackable* This);
   6430 void __RPC_STUB IInternetProtocolSinkStackable_CommitSwitch_Stub(
   6431     IRpcStubBuffer* This,
   6432     IRpcChannelBuffer* pRpcChannelBuffer,
   6433     PRPC_MESSAGE pRpcMessage,
   6434     DWORD* pdwStubPhase);
   6435 HRESULT STDMETHODCALLTYPE IInternetProtocolSinkStackable_RollbackSwitch_Proxy(
   6436     IInternetProtocolSinkStackable* This);
   6437 void __RPC_STUB IInternetProtocolSinkStackable_RollbackSwitch_Stub(
   6438     IRpcStubBuffer* This,
   6439     IRpcChannelBuffer* pRpcChannelBuffer,
   6440     PRPC_MESSAGE pRpcMessage,
   6441     DWORD* pdwStubPhase);
   6442 
   6443 #endif  /* __IInternetProtocolSinkStackable_INTERFACE_DEFINED__ */
   6444 
   6445 #endif
   6446 
   6447 #ifndef _LPIINTERNETSESSION_DEFINED
   6448 #define _LPIINTERNETSESSION_DEFINED
   6449 
   6450 /*****************************************************************************
   6451  * IInternetSession interface
   6452  */
   6453 #ifndef __IInternetSession_INTERFACE_DEFINED__
   6454 #define __IInternetSession_INTERFACE_DEFINED__
   6455 
   6456 typedef IInternetSession *LPIINTERNETSESSION;
   6457 
   6458 typedef enum _tagOIBDG_FLAGS {
   6459     OIBDG_APARTMENTTHREADED = 0x100,
   6460     OIBDG_DATAONLY = 0x1000
   6461 } OIBDG_FLAGS;
   6462 
   6463 DEFINE_GUID(IID_IInternetSession, 0x79eac9e7, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   6464 #if defined(__cplusplus) && !defined(CINTERFACE)
   6465 MIDL_INTERFACE("79eac9e7-baf9-11ce-8c82-00aa004ba90b")
   6466 IInternetSession : public IUnknown
   6467 {
   6468     virtual HRESULT STDMETHODCALLTYPE RegisterNameSpace(
   6469         IClassFactory *pCF,
   6470         REFCLSID rclsid,
   6471         LPCWSTR pwzProtocol,
   6472         ULONG cPatterns,
   6473         const LPCWSTR *ppwzPatterns,
   6474         DWORD dwReserved) = 0;
   6475 
   6476     virtual HRESULT STDMETHODCALLTYPE UnregisterNameSpace(
   6477         IClassFactory *pCF,
   6478         LPCWSTR pszProtocol) = 0;
   6479 
   6480     virtual HRESULT STDMETHODCALLTYPE RegisterMimeFilter(
   6481         IClassFactory *pCF,
   6482         REFCLSID rclsid,
   6483         LPCWSTR pwzType) = 0;
   6484 
   6485     virtual HRESULT STDMETHODCALLTYPE UnregisterMimeFilter(
   6486         IClassFactory *pCF,
   6487         LPCWSTR pwzType) = 0;
   6488 
   6489     virtual HRESULT STDMETHODCALLTYPE CreateBinding(
   6490         LPBC pBC,
   6491         LPCWSTR szUrl,
   6492         IUnknown *pUnkOuter,
   6493         IUnknown **ppUnk,
   6494         IInternetProtocol **ppOInetProt,
   6495         DWORD dwOption) = 0;
   6496 
   6497     virtual HRESULT STDMETHODCALLTYPE SetSessionOption(
   6498         DWORD dwOption,
   6499         LPVOID pBuffer,
   6500         DWORD dwBufferLength,
   6501         DWORD dwReserved) = 0;
   6502 
   6503     virtual HRESULT STDMETHODCALLTYPE GetSessionOption(
   6504         DWORD dwOption,
   6505         LPVOID pBuffer,
   6506         DWORD *pdwBufferLength,
   6507         DWORD dwReserved) = 0;
   6508 
   6509 };
   6510 #ifdef __CRT_UUID_DECL
   6511 __CRT_UUID_DECL(IInternetSession, 0x79eac9e7, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   6512 #endif
   6513 #else
   6514 typedef struct IInternetSessionVtbl {
   6515     BEGIN_INTERFACE
   6516 
   6517     /*** IUnknown methods ***/
   6518     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6519         IInternetSession* This,
   6520         REFIID riid,
   6521         void **ppvObject);
   6522 
   6523     ULONG (STDMETHODCALLTYPE *AddRef)(
   6524         IInternetSession* This);
   6525 
   6526     ULONG (STDMETHODCALLTYPE *Release)(
   6527         IInternetSession* This);
   6528 
   6529     /*** IInternetSession methods ***/
   6530     HRESULT (STDMETHODCALLTYPE *RegisterNameSpace)(
   6531         IInternetSession* This,
   6532         IClassFactory *pCF,
   6533         REFCLSID rclsid,
   6534         LPCWSTR pwzProtocol,
   6535         ULONG cPatterns,
   6536         const LPCWSTR *ppwzPatterns,
   6537         DWORD dwReserved);
   6538 
   6539     HRESULT (STDMETHODCALLTYPE *UnregisterNameSpace)(
   6540         IInternetSession* This,
   6541         IClassFactory *pCF,
   6542         LPCWSTR pszProtocol);
   6543 
   6544     HRESULT (STDMETHODCALLTYPE *RegisterMimeFilter)(
   6545         IInternetSession* This,
   6546         IClassFactory *pCF,
   6547         REFCLSID rclsid,
   6548         LPCWSTR pwzType);
   6549 
   6550     HRESULT (STDMETHODCALLTYPE *UnregisterMimeFilter)(
   6551         IInternetSession* This,
   6552         IClassFactory *pCF,
   6553         LPCWSTR pwzType);
   6554 
   6555     HRESULT (STDMETHODCALLTYPE *CreateBinding)(
   6556         IInternetSession* This,
   6557         LPBC pBC,
   6558         LPCWSTR szUrl,
   6559         IUnknown *pUnkOuter,
   6560         IUnknown **ppUnk,
   6561         IInternetProtocol **ppOInetProt,
   6562         DWORD dwOption);
   6563 
   6564     HRESULT (STDMETHODCALLTYPE *SetSessionOption)(
   6565         IInternetSession* This,
   6566         DWORD dwOption,
   6567         LPVOID pBuffer,
   6568         DWORD dwBufferLength,
   6569         DWORD dwReserved);
   6570 
   6571     HRESULT (STDMETHODCALLTYPE *GetSessionOption)(
   6572         IInternetSession* This,
   6573         DWORD dwOption,
   6574         LPVOID pBuffer,
   6575         DWORD *pdwBufferLength,
   6576         DWORD dwReserved);
   6577 
   6578     END_INTERFACE
   6579 } IInternetSessionVtbl;
   6580 interface IInternetSession {
   6581     CONST_VTBL IInternetSessionVtbl* lpVtbl;
   6582 };
   6583 
   6584 #ifdef COBJMACROS
   6585 #ifndef WIDL_C_INLINE_WRAPPERS
   6586 /*** IUnknown methods ***/
   6587 #define IInternetSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6588 #define IInternetSession_AddRef(This) (This)->lpVtbl->AddRef(This)
   6589 #define IInternetSession_Release(This) (This)->lpVtbl->Release(This)
   6590 /*** IInternetSession methods ***/
   6591 #define IInternetSession_RegisterNameSpace(This,pCF,rclsid,pwzProtocol,cPatterns,ppwzPatterns,dwReserved) (This)->lpVtbl->RegisterNameSpace(This,pCF,rclsid,pwzProtocol,cPatterns,ppwzPatterns,dwReserved)
   6592 #define IInternetSession_UnregisterNameSpace(This,pCF,pszProtocol) (This)->lpVtbl->UnregisterNameSpace(This,pCF,pszProtocol)
   6593 #define IInternetSession_RegisterMimeFilter(This,pCF,rclsid,pwzType) (This)->lpVtbl->RegisterMimeFilter(This,pCF,rclsid,pwzType)
   6594 #define IInternetSession_UnregisterMimeFilter(This,pCF,pwzType) (This)->lpVtbl->UnregisterMimeFilter(This,pCF,pwzType)
   6595 #define IInternetSession_CreateBinding(This,pBC,szUrl,pUnkOuter,ppUnk,ppOInetProt,dwOption) (This)->lpVtbl->CreateBinding(This,pBC,szUrl,pUnkOuter,ppUnk,ppOInetProt,dwOption)
   6596 #define IInternetSession_SetSessionOption(This,dwOption,pBuffer,dwBufferLength,dwReserved) (This)->lpVtbl->SetSessionOption(This,dwOption,pBuffer,dwBufferLength,dwReserved)
   6597 #define IInternetSession_GetSessionOption(This,dwOption,pBuffer,pdwBufferLength,dwReserved) (This)->lpVtbl->GetSessionOption(This,dwOption,pBuffer,pdwBufferLength,dwReserved)
   6598 #else
   6599 /*** IUnknown methods ***/
   6600 static FORCEINLINE HRESULT IInternetSession_QueryInterface(IInternetSession* This,REFIID riid,void **ppvObject) {
   6601     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6602 }
   6603 static FORCEINLINE ULONG IInternetSession_AddRef(IInternetSession* This) {
   6604     return This->lpVtbl->AddRef(This);
   6605 }
   6606 static FORCEINLINE ULONG IInternetSession_Release(IInternetSession* This) {
   6607     return This->lpVtbl->Release(This);
   6608 }
   6609 /*** IInternetSession methods ***/
   6610 static FORCEINLINE HRESULT IInternetSession_RegisterNameSpace(IInternetSession* This,IClassFactory *pCF,REFCLSID rclsid,LPCWSTR pwzProtocol,ULONG cPatterns,const LPCWSTR *ppwzPatterns,DWORD dwReserved) {
   6611     return This->lpVtbl->RegisterNameSpace(This,pCF,rclsid,pwzProtocol,cPatterns,ppwzPatterns,dwReserved);
   6612 }
   6613 static FORCEINLINE HRESULT IInternetSession_UnregisterNameSpace(IInternetSession* This,IClassFactory *pCF,LPCWSTR pszProtocol) {
   6614     return This->lpVtbl->UnregisterNameSpace(This,pCF,pszProtocol);
   6615 }
   6616 static FORCEINLINE HRESULT IInternetSession_RegisterMimeFilter(IInternetSession* This,IClassFactory *pCF,REFCLSID rclsid,LPCWSTR pwzType) {
   6617     return This->lpVtbl->RegisterMimeFilter(This,pCF,rclsid,pwzType);
   6618 }
   6619 static FORCEINLINE HRESULT IInternetSession_UnregisterMimeFilter(IInternetSession* This,IClassFactory *pCF,LPCWSTR pwzType) {
   6620     return This->lpVtbl->UnregisterMimeFilter(This,pCF,pwzType);
   6621 }
   6622 static FORCEINLINE HRESULT IInternetSession_CreateBinding(IInternetSession* This,LPBC pBC,LPCWSTR szUrl,IUnknown *pUnkOuter,IUnknown **ppUnk,IInternetProtocol **ppOInetProt,DWORD dwOption) {
   6623     return This->lpVtbl->CreateBinding(This,pBC,szUrl,pUnkOuter,ppUnk,ppOInetProt,dwOption);
   6624 }
   6625 static FORCEINLINE HRESULT IInternetSession_SetSessionOption(IInternetSession* This,DWORD dwOption,LPVOID pBuffer,DWORD dwBufferLength,DWORD dwReserved) {
   6626     return This->lpVtbl->SetSessionOption(This,dwOption,pBuffer,dwBufferLength,dwReserved);
   6627 }
   6628 static FORCEINLINE HRESULT IInternetSession_GetSessionOption(IInternetSession* This,DWORD dwOption,LPVOID pBuffer,DWORD *pdwBufferLength,DWORD dwReserved) {
   6629     return This->lpVtbl->GetSessionOption(This,dwOption,pBuffer,pdwBufferLength,dwReserved);
   6630 }
   6631 #endif
   6632 #endif
   6633 
   6634 #endif
   6635 
   6636 HRESULT STDMETHODCALLTYPE IInternetSession_RegisterNameSpace_Proxy(
   6637     IInternetSession* This,
   6638     IClassFactory *pCF,
   6639     REFCLSID rclsid,
   6640     LPCWSTR pwzProtocol,
   6641     ULONG cPatterns,
   6642     const LPCWSTR *ppwzPatterns,
   6643     DWORD dwReserved);
   6644 void __RPC_STUB IInternetSession_RegisterNameSpace_Stub(
   6645     IRpcStubBuffer* This,
   6646     IRpcChannelBuffer* pRpcChannelBuffer,
   6647     PRPC_MESSAGE pRpcMessage,
   6648     DWORD* pdwStubPhase);
   6649 HRESULT STDMETHODCALLTYPE IInternetSession_UnregisterNameSpace_Proxy(
   6650     IInternetSession* This,
   6651     IClassFactory *pCF,
   6652     LPCWSTR pszProtocol);
   6653 void __RPC_STUB IInternetSession_UnregisterNameSpace_Stub(
   6654     IRpcStubBuffer* This,
   6655     IRpcChannelBuffer* pRpcChannelBuffer,
   6656     PRPC_MESSAGE pRpcMessage,
   6657     DWORD* pdwStubPhase);
   6658 HRESULT STDMETHODCALLTYPE IInternetSession_RegisterMimeFilter_Proxy(
   6659     IInternetSession* This,
   6660     IClassFactory *pCF,
   6661     REFCLSID rclsid,
   6662     LPCWSTR pwzType);
   6663 void __RPC_STUB IInternetSession_RegisterMimeFilter_Stub(
   6664     IRpcStubBuffer* This,
   6665     IRpcChannelBuffer* pRpcChannelBuffer,
   6666     PRPC_MESSAGE pRpcMessage,
   6667     DWORD* pdwStubPhase);
   6668 HRESULT STDMETHODCALLTYPE IInternetSession_UnregisterMimeFilter_Proxy(
   6669     IInternetSession* This,
   6670     IClassFactory *pCF,
   6671     LPCWSTR pwzType);
   6672 void __RPC_STUB IInternetSession_UnregisterMimeFilter_Stub(
   6673     IRpcStubBuffer* This,
   6674     IRpcChannelBuffer* pRpcChannelBuffer,
   6675     PRPC_MESSAGE pRpcMessage,
   6676     DWORD* pdwStubPhase);
   6677 HRESULT STDMETHODCALLTYPE IInternetSession_CreateBinding_Proxy(
   6678     IInternetSession* This,
   6679     LPBC pBC,
   6680     LPCWSTR szUrl,
   6681     IUnknown *pUnkOuter,
   6682     IUnknown **ppUnk,
   6683     IInternetProtocol **ppOInetProt,
   6684     DWORD dwOption);
   6685 void __RPC_STUB IInternetSession_CreateBinding_Stub(
   6686     IRpcStubBuffer* This,
   6687     IRpcChannelBuffer* pRpcChannelBuffer,
   6688     PRPC_MESSAGE pRpcMessage,
   6689     DWORD* pdwStubPhase);
   6690 HRESULT STDMETHODCALLTYPE IInternetSession_SetSessionOption_Proxy(
   6691     IInternetSession* This,
   6692     DWORD dwOption,
   6693     LPVOID pBuffer,
   6694     DWORD dwBufferLength,
   6695     DWORD dwReserved);
   6696 void __RPC_STUB IInternetSession_SetSessionOption_Stub(
   6697     IRpcStubBuffer* This,
   6698     IRpcChannelBuffer* pRpcChannelBuffer,
   6699     PRPC_MESSAGE pRpcMessage,
   6700     DWORD* pdwStubPhase);
   6701 HRESULT STDMETHODCALLTYPE IInternetSession_GetSessionOption_Proxy(
   6702     IInternetSession* This,
   6703     DWORD dwOption,
   6704     LPVOID pBuffer,
   6705     DWORD *pdwBufferLength,
   6706     DWORD dwReserved);
   6707 void __RPC_STUB IInternetSession_GetSessionOption_Stub(
   6708     IRpcStubBuffer* This,
   6709     IRpcChannelBuffer* pRpcChannelBuffer,
   6710     PRPC_MESSAGE pRpcMessage,
   6711     DWORD* pdwStubPhase);
   6712 
   6713 #endif  /* __IInternetSession_INTERFACE_DEFINED__ */
   6714 
   6715 #endif
   6716 
   6717 #ifndef _LPIINTERNETTHREADSWITCH_DEFINED
   6718 #define _LPIINTERNETTHREADSWITCH_DEFINED
   6719 
   6720 /*****************************************************************************
   6721  * IInternetThreadSwitch interface
   6722  */
   6723 #ifndef __IInternetThreadSwitch_INTERFACE_DEFINED__
   6724 #define __IInternetThreadSwitch_INTERFACE_DEFINED__
   6725 
   6726 typedef IInternetThreadSwitch *LPIINTERNETTHREADSWITCH;
   6727 
   6728 DEFINE_GUID(IID_IInternetThreadSwitch, 0x79eac9e8, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   6729 #if defined(__cplusplus) && !defined(CINTERFACE)
   6730 MIDL_INTERFACE("79eac9e8-baf9-11ce-8c82-00aa004ba90b")
   6731 IInternetThreadSwitch : public IUnknown
   6732 {
   6733     virtual HRESULT STDMETHODCALLTYPE Prepare(
   6734         ) = 0;
   6735 
   6736     virtual HRESULT STDMETHODCALLTYPE Continue(
   6737         ) = 0;
   6738 
   6739 };
   6740 #ifdef __CRT_UUID_DECL
   6741 __CRT_UUID_DECL(IInternetThreadSwitch, 0x79eac9e8, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   6742 #endif
   6743 #else
   6744 typedef struct IInternetThreadSwitchVtbl {
   6745     BEGIN_INTERFACE
   6746 
   6747     /*** IUnknown methods ***/
   6748     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6749         IInternetThreadSwitch* This,
   6750         REFIID riid,
   6751         void **ppvObject);
   6752 
   6753     ULONG (STDMETHODCALLTYPE *AddRef)(
   6754         IInternetThreadSwitch* This);
   6755 
   6756     ULONG (STDMETHODCALLTYPE *Release)(
   6757         IInternetThreadSwitch* This);
   6758 
   6759     /*** IInternetThreadSwitch methods ***/
   6760     HRESULT (STDMETHODCALLTYPE *Prepare)(
   6761         IInternetThreadSwitch* This);
   6762 
   6763     HRESULT (STDMETHODCALLTYPE *Continue)(
   6764         IInternetThreadSwitch* This);
   6765 
   6766     END_INTERFACE
   6767 } IInternetThreadSwitchVtbl;
   6768 interface IInternetThreadSwitch {
   6769     CONST_VTBL IInternetThreadSwitchVtbl* lpVtbl;
   6770 };
   6771 
   6772 #ifdef COBJMACROS
   6773 #ifndef WIDL_C_INLINE_WRAPPERS
   6774 /*** IUnknown methods ***/
   6775 #define IInternetThreadSwitch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6776 #define IInternetThreadSwitch_AddRef(This) (This)->lpVtbl->AddRef(This)
   6777 #define IInternetThreadSwitch_Release(This) (This)->lpVtbl->Release(This)
   6778 /*** IInternetThreadSwitch methods ***/
   6779 #define IInternetThreadSwitch_Prepare(This) (This)->lpVtbl->Prepare(This)
   6780 #define IInternetThreadSwitch_Continue(This) (This)->lpVtbl->Continue(This)
   6781 #else
   6782 /*** IUnknown methods ***/
   6783 static FORCEINLINE HRESULT IInternetThreadSwitch_QueryInterface(IInternetThreadSwitch* This,REFIID riid,void **ppvObject) {
   6784     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6785 }
   6786 static FORCEINLINE ULONG IInternetThreadSwitch_AddRef(IInternetThreadSwitch* This) {
   6787     return This->lpVtbl->AddRef(This);
   6788 }
   6789 static FORCEINLINE ULONG IInternetThreadSwitch_Release(IInternetThreadSwitch* This) {
   6790     return This->lpVtbl->Release(This);
   6791 }
   6792 /*** IInternetThreadSwitch methods ***/
   6793 static FORCEINLINE HRESULT IInternetThreadSwitch_Prepare(IInternetThreadSwitch* This) {
   6794     return This->lpVtbl->Prepare(This);
   6795 }
   6796 static FORCEINLINE HRESULT IInternetThreadSwitch_Continue(IInternetThreadSwitch* This) {
   6797     return This->lpVtbl->Continue(This);
   6798 }
   6799 #endif
   6800 #endif
   6801 
   6802 #endif
   6803 
   6804 HRESULT STDMETHODCALLTYPE IInternetThreadSwitch_Prepare_Proxy(
   6805     IInternetThreadSwitch* This);
   6806 void __RPC_STUB IInternetThreadSwitch_Prepare_Stub(
   6807     IRpcStubBuffer* This,
   6808     IRpcChannelBuffer* pRpcChannelBuffer,
   6809     PRPC_MESSAGE pRpcMessage,
   6810     DWORD* pdwStubPhase);
   6811 HRESULT STDMETHODCALLTYPE IInternetThreadSwitch_Continue_Proxy(
   6812     IInternetThreadSwitch* This);
   6813 void __RPC_STUB IInternetThreadSwitch_Continue_Stub(
   6814     IRpcStubBuffer* This,
   6815     IRpcChannelBuffer* pRpcChannelBuffer,
   6816     PRPC_MESSAGE pRpcMessage,
   6817     DWORD* pdwStubPhase);
   6818 
   6819 #endif  /* __IInternetThreadSwitch_INTERFACE_DEFINED__ */
   6820 
   6821 #endif
   6822 
   6823 #ifndef _LPIINTERNETPRIORITY_DEFINED
   6824 #define _LPIINTERNETPRIORITY_DEFINED
   6825 
   6826 /*****************************************************************************
   6827  * IInternetPriority interface
   6828  */
   6829 #ifndef __IInternetPriority_INTERFACE_DEFINED__
   6830 #define __IInternetPriority_INTERFACE_DEFINED__
   6831 
   6832 typedef IInternetPriority *LPIINTERNETPRIORITY;
   6833 
   6834 DEFINE_GUID(IID_IInternetPriority, 0x79eac9eb, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   6835 #if defined(__cplusplus) && !defined(CINTERFACE)
   6836 MIDL_INTERFACE("79eac9eb-baf9-11ce-8c82-00aa004ba90b")
   6837 IInternetPriority : public IUnknown
   6838 {
   6839     virtual HRESULT STDMETHODCALLTYPE SetPriority(
   6840         LONG nPriority) = 0;
   6841 
   6842     virtual HRESULT STDMETHODCALLTYPE GetPriority(
   6843         LONG *pnPriority) = 0;
   6844 
   6845 };
   6846 #ifdef __CRT_UUID_DECL
   6847 __CRT_UUID_DECL(IInternetPriority, 0x79eac9eb, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   6848 #endif
   6849 #else
   6850 typedef struct IInternetPriorityVtbl {
   6851     BEGIN_INTERFACE
   6852 
   6853     /*** IUnknown methods ***/
   6854     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6855         IInternetPriority* This,
   6856         REFIID riid,
   6857         void **ppvObject);
   6858 
   6859     ULONG (STDMETHODCALLTYPE *AddRef)(
   6860         IInternetPriority* This);
   6861 
   6862     ULONG (STDMETHODCALLTYPE *Release)(
   6863         IInternetPriority* This);
   6864 
   6865     /*** IInternetPriority methods ***/
   6866     HRESULT (STDMETHODCALLTYPE *SetPriority)(
   6867         IInternetPriority* This,
   6868         LONG nPriority);
   6869 
   6870     HRESULT (STDMETHODCALLTYPE *GetPriority)(
   6871         IInternetPriority* This,
   6872         LONG *pnPriority);
   6873 
   6874     END_INTERFACE
   6875 } IInternetPriorityVtbl;
   6876 interface IInternetPriority {
   6877     CONST_VTBL IInternetPriorityVtbl* lpVtbl;
   6878 };
   6879 
   6880 #ifdef COBJMACROS
   6881 #ifndef WIDL_C_INLINE_WRAPPERS
   6882 /*** IUnknown methods ***/
   6883 #define IInternetPriority_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6884 #define IInternetPriority_AddRef(This) (This)->lpVtbl->AddRef(This)
   6885 #define IInternetPriority_Release(This) (This)->lpVtbl->Release(This)
   6886 /*** IInternetPriority methods ***/
   6887 #define IInternetPriority_SetPriority(This,nPriority) (This)->lpVtbl->SetPriority(This,nPriority)
   6888 #define IInternetPriority_GetPriority(This,pnPriority) (This)->lpVtbl->GetPriority(This,pnPriority)
   6889 #else
   6890 /*** IUnknown methods ***/
   6891 static FORCEINLINE HRESULT IInternetPriority_QueryInterface(IInternetPriority* This,REFIID riid,void **ppvObject) {
   6892     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6893 }
   6894 static FORCEINLINE ULONG IInternetPriority_AddRef(IInternetPriority* This) {
   6895     return This->lpVtbl->AddRef(This);
   6896 }
   6897 static FORCEINLINE ULONG IInternetPriority_Release(IInternetPriority* This) {
   6898     return This->lpVtbl->Release(This);
   6899 }
   6900 /*** IInternetPriority methods ***/
   6901 static FORCEINLINE HRESULT IInternetPriority_SetPriority(IInternetPriority* This,LONG nPriority) {
   6902     return This->lpVtbl->SetPriority(This,nPriority);
   6903 }
   6904 static FORCEINLINE HRESULT IInternetPriority_GetPriority(IInternetPriority* This,LONG *pnPriority) {
   6905     return This->lpVtbl->GetPriority(This,pnPriority);
   6906 }
   6907 #endif
   6908 #endif
   6909 
   6910 #endif
   6911 
   6912 HRESULT STDMETHODCALLTYPE IInternetPriority_SetPriority_Proxy(
   6913     IInternetPriority* This,
   6914     LONG nPriority);
   6915 void __RPC_STUB IInternetPriority_SetPriority_Stub(
   6916     IRpcStubBuffer* This,
   6917     IRpcChannelBuffer* pRpcChannelBuffer,
   6918     PRPC_MESSAGE pRpcMessage,
   6919     DWORD* pdwStubPhase);
   6920 HRESULT STDMETHODCALLTYPE IInternetPriority_GetPriority_Proxy(
   6921     IInternetPriority* This,
   6922     LONG *pnPriority);
   6923 void __RPC_STUB IInternetPriority_GetPriority_Stub(
   6924     IRpcStubBuffer* This,
   6925     IRpcChannelBuffer* pRpcChannelBuffer,
   6926     PRPC_MESSAGE pRpcMessage,
   6927     DWORD* pdwStubPhase);
   6928 
   6929 #endif  /* __IInternetPriority_INTERFACE_DEFINED__ */
   6930 
   6931 #endif
   6932 
   6933 #ifndef _LPIINTERNETPROTOCOLINFO_DEFINED
   6934 #define _LPIINTERNETPROTOCOLINFO_DEFINED
   6935 
   6936 /*****************************************************************************
   6937  * IInternetProtocolInfo interface
   6938  */
   6939 #ifndef __IInternetProtocolInfo_INTERFACE_DEFINED__
   6940 #define __IInternetProtocolInfo_INTERFACE_DEFINED__
   6941 
   6942 typedef IInternetProtocolInfo *LPIINTERNETPROTOCOLINFO;
   6943 
   6944 typedef enum _tagPARSEACTION {
   6945     PARSE_CANONICALIZE = 1,
   6946     PARSE_FRIENDLY = 2,
   6947     PARSE_SECURITY_URL = 3,
   6948     PARSE_ROOTDOCUMENT = 4,
   6949     PARSE_DOCUMENT = 5,
   6950     PARSE_ANCHOR = 6,
   6951     PARSE_ENCODE_IS_UNESCAPE = 7,
   6952     PARSE_DECODE_IS_ESCAPE = 8,
   6953     PARSE_PATH_FROM_URL = 9,
   6954     PARSE_URL_FROM_PATH = 10,
   6955     PARSE_MIME = 11,
   6956     PARSE_SERVER = 12,
   6957     PARSE_SCHEMA = 13,
   6958     PARSE_SITE = 14,
   6959     PARSE_DOMAIN = 15,
   6960     PARSE_LOCATION = 16,
   6961     PARSE_SECURITY_DOMAIN = 17,
   6962     PARSE_ESCAPE = 18,
   6963     PARSE_UNESCAPE = 19
   6964 } PARSEACTION;
   6965 
   6966 typedef enum _tagPSUACTION {
   6967     PSU_DEFAULT = 1,
   6968     PSU_SECURITY_URL_ONLY = 2
   6969 } PSUACTION;
   6970 
   6971 typedef enum _tagQUERYOPTION {
   6972     QUERY_EXPIRATION_DATE = 1,
   6973     QUERY_TIME_OF_LAST_CHANGE = 2,
   6974     QUERY_CONTENT_ENCODING = 3,
   6975     QUERY_CONTENT_TYPE = 4,
   6976     QUERY_REFRESH = 5,
   6977     QUERY_RECOMBINE = 6,
   6978     QUERY_CAN_NAVIGATE = 7,
   6979     QUERY_USES_NETWORK = 8,
   6980     QUERY_IS_CACHED = 9,
   6981     QUERY_IS_INSTALLEDENTRY = 10,
   6982     QUERY_IS_CACHED_OR_MAPPED = 11,
   6983     QUERY_USES_CACHE = 12,
   6984     QUERY_IS_SECURE = 13,
   6985     QUERY_IS_SAFE = 14,
   6986     QUERY_USES_HISTORYFOLDER = 15,
   6987     QUERY_IS_CACHED_AND_USABLE_OFFLINE = 16
   6988 } QUERYOPTION;
   6989 
   6990 DEFINE_GUID(IID_IInternetProtocolInfo, 0x79eac9ec, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   6991 #if defined(__cplusplus) && !defined(CINTERFACE)
   6992 MIDL_INTERFACE("79eac9ec-baf9-11ce-8c82-00aa004ba90b")
   6993 IInternetProtocolInfo : public IUnknown
   6994 {
   6995     virtual HRESULT STDMETHODCALLTYPE ParseUrl(
   6996         LPCWSTR pwzUrl,
   6997         PARSEACTION ParseAction,
   6998         DWORD dwParseFlags,
   6999         LPWSTR pwzResult,
   7000         DWORD cchResult,
   7001         DWORD *pcchResult,
   7002         DWORD dwReserved) = 0;
   7003 
   7004     virtual HRESULT STDMETHODCALLTYPE CombineUrl(
   7005         LPCWSTR pwzBaseUrl,
   7006         LPCWSTR pwzRelativeUrl,
   7007         DWORD dwCombineFlags,
   7008         LPWSTR pwzResult,
   7009         DWORD cchResult,
   7010         DWORD *pcchResult,
   7011         DWORD dwReserved) = 0;
   7012 
   7013     virtual HRESULT STDMETHODCALLTYPE CompareUrl(
   7014         LPCWSTR pwzUrl1,
   7015         LPCWSTR pwzUrl2,
   7016         DWORD dwCompareFlags) = 0;
   7017 
   7018     virtual HRESULT STDMETHODCALLTYPE QueryInfo(
   7019         LPCWSTR pwzUrl,
   7020         QUERYOPTION OueryOption,
   7021         DWORD dwQueryFlags,
   7022         LPVOID pBuffer,
   7023         DWORD cbBuffer,
   7024         DWORD *pcbBuf,
   7025         DWORD dwReserved) = 0;
   7026 
   7027 };
   7028 #ifdef __CRT_UUID_DECL
   7029 __CRT_UUID_DECL(IInternetProtocolInfo, 0x79eac9ec, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   7030 #endif
   7031 #else
   7032 typedef struct IInternetProtocolInfoVtbl {
   7033     BEGIN_INTERFACE
   7034 
   7035     /*** IUnknown methods ***/
   7036     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7037         IInternetProtocolInfo* This,
   7038         REFIID riid,
   7039         void **ppvObject);
   7040 
   7041     ULONG (STDMETHODCALLTYPE *AddRef)(
   7042         IInternetProtocolInfo* This);
   7043 
   7044     ULONG (STDMETHODCALLTYPE *Release)(
   7045         IInternetProtocolInfo* This);
   7046 
   7047     /*** IInternetProtocolInfo methods ***/
   7048     HRESULT (STDMETHODCALLTYPE *ParseUrl)(
   7049         IInternetProtocolInfo* This,
   7050         LPCWSTR pwzUrl,
   7051         PARSEACTION ParseAction,
   7052         DWORD dwParseFlags,
   7053         LPWSTR pwzResult,
   7054         DWORD cchResult,
   7055         DWORD *pcchResult,
   7056         DWORD dwReserved);
   7057 
   7058     HRESULT (STDMETHODCALLTYPE *CombineUrl)(
   7059         IInternetProtocolInfo* This,
   7060         LPCWSTR pwzBaseUrl,
   7061         LPCWSTR pwzRelativeUrl,
   7062         DWORD dwCombineFlags,
   7063         LPWSTR pwzResult,
   7064         DWORD cchResult,
   7065         DWORD *pcchResult,
   7066         DWORD dwReserved);
   7067 
   7068     HRESULT (STDMETHODCALLTYPE *CompareUrl)(
   7069         IInternetProtocolInfo* This,
   7070         LPCWSTR pwzUrl1,
   7071         LPCWSTR pwzUrl2,
   7072         DWORD dwCompareFlags);
   7073 
   7074     HRESULT (STDMETHODCALLTYPE *QueryInfo)(
   7075         IInternetProtocolInfo* This,
   7076         LPCWSTR pwzUrl,
   7077         QUERYOPTION OueryOption,
   7078         DWORD dwQueryFlags,
   7079         LPVOID pBuffer,
   7080         DWORD cbBuffer,
   7081         DWORD *pcbBuf,
   7082         DWORD dwReserved);
   7083 
   7084     END_INTERFACE
   7085 } IInternetProtocolInfoVtbl;
   7086 interface IInternetProtocolInfo {
   7087     CONST_VTBL IInternetProtocolInfoVtbl* lpVtbl;
   7088 };
   7089 
   7090 #ifdef COBJMACROS
   7091 #ifndef WIDL_C_INLINE_WRAPPERS
   7092 /*** IUnknown methods ***/
   7093 #define IInternetProtocolInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7094 #define IInternetProtocolInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   7095 #define IInternetProtocolInfo_Release(This) (This)->lpVtbl->Release(This)
   7096 /*** IInternetProtocolInfo methods ***/
   7097 #define IInternetProtocolInfo_ParseUrl(This,pwzUrl,ParseAction,dwParseFlags,pwzResult,cchResult,pcchResult,dwReserved) (This)->lpVtbl->ParseUrl(This,pwzUrl,ParseAction,dwParseFlags,pwzResult,cchResult,pcchResult,dwReserved)
   7098 #define IInternetProtocolInfo_CombineUrl(This,pwzBaseUrl,pwzRelativeUrl,dwCombineFlags,pwzResult,cchResult,pcchResult,dwReserved) (This)->lpVtbl->CombineUrl(This,pwzBaseUrl,pwzRelativeUrl,dwCombineFlags,pwzResult,cchResult,pcchResult,dwReserved)
   7099 #define IInternetProtocolInfo_CompareUrl(This,pwzUrl1,pwzUrl2,dwCompareFlags) (This)->lpVtbl->CompareUrl(This,pwzUrl1,pwzUrl2,dwCompareFlags)
   7100 #define IInternetProtocolInfo_QueryInfo(This,pwzUrl,OueryOption,dwQueryFlags,pBuffer,cbBuffer,pcbBuf,dwReserved) (This)->lpVtbl->QueryInfo(This,pwzUrl,OueryOption,dwQueryFlags,pBuffer,cbBuffer,pcbBuf,dwReserved)
   7101 #else
   7102 /*** IUnknown methods ***/
   7103 static FORCEINLINE HRESULT IInternetProtocolInfo_QueryInterface(IInternetProtocolInfo* This,REFIID riid,void **ppvObject) {
   7104     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7105 }
   7106 static FORCEINLINE ULONG IInternetProtocolInfo_AddRef(IInternetProtocolInfo* This) {
   7107     return This->lpVtbl->AddRef(This);
   7108 }
   7109 static FORCEINLINE ULONG IInternetProtocolInfo_Release(IInternetProtocolInfo* This) {
   7110     return This->lpVtbl->Release(This);
   7111 }
   7112 /*** IInternetProtocolInfo methods ***/
   7113 static FORCEINLINE HRESULT IInternetProtocolInfo_ParseUrl(IInternetProtocolInfo* This,LPCWSTR pwzUrl,PARSEACTION ParseAction,DWORD dwParseFlags,LPWSTR pwzResult,DWORD cchResult,DWORD *pcchResult,DWORD dwReserved) {
   7114     return This->lpVtbl->ParseUrl(This,pwzUrl,ParseAction,dwParseFlags,pwzResult,cchResult,pcchResult,dwReserved);
   7115 }
   7116 static FORCEINLINE HRESULT IInternetProtocolInfo_CombineUrl(IInternetProtocolInfo* This,LPCWSTR pwzBaseUrl,LPCWSTR pwzRelativeUrl,DWORD dwCombineFlags,LPWSTR pwzResult,DWORD cchResult,DWORD *pcchResult,DWORD dwReserved) {
   7117     return This->lpVtbl->CombineUrl(This,pwzBaseUrl,pwzRelativeUrl,dwCombineFlags,pwzResult,cchResult,pcchResult,dwReserved);
   7118 }
   7119 static FORCEINLINE HRESULT IInternetProtocolInfo_CompareUrl(IInternetProtocolInfo* This,LPCWSTR pwzUrl1,LPCWSTR pwzUrl2,DWORD dwCompareFlags) {
   7120     return This->lpVtbl->CompareUrl(This,pwzUrl1,pwzUrl2,dwCompareFlags);
   7121 }
   7122 static FORCEINLINE HRESULT IInternetProtocolInfo_QueryInfo(IInternetProtocolInfo* This,LPCWSTR pwzUrl,QUERYOPTION OueryOption,DWORD dwQueryFlags,LPVOID pBuffer,DWORD cbBuffer,DWORD *pcbBuf,DWORD dwReserved) {
   7123     return This->lpVtbl->QueryInfo(This,pwzUrl,OueryOption,dwQueryFlags,pBuffer,cbBuffer,pcbBuf,dwReserved);
   7124 }
   7125 #endif
   7126 #endif
   7127 
   7128 #endif
   7129 
   7130 HRESULT STDMETHODCALLTYPE IInternetProtocolInfo_ParseUrl_Proxy(
   7131     IInternetProtocolInfo* This,
   7132     LPCWSTR pwzUrl,
   7133     PARSEACTION ParseAction,
   7134     DWORD dwParseFlags,
   7135     LPWSTR pwzResult,
   7136     DWORD cchResult,
   7137     DWORD *pcchResult,
   7138     DWORD dwReserved);
   7139 void __RPC_STUB IInternetProtocolInfo_ParseUrl_Stub(
   7140     IRpcStubBuffer* This,
   7141     IRpcChannelBuffer* pRpcChannelBuffer,
   7142     PRPC_MESSAGE pRpcMessage,
   7143     DWORD* pdwStubPhase);
   7144 HRESULT STDMETHODCALLTYPE IInternetProtocolInfo_CombineUrl_Proxy(
   7145     IInternetProtocolInfo* This,
   7146     LPCWSTR pwzBaseUrl,
   7147     LPCWSTR pwzRelativeUrl,
   7148     DWORD dwCombineFlags,
   7149     LPWSTR pwzResult,
   7150     DWORD cchResult,
   7151     DWORD *pcchResult,
   7152     DWORD dwReserved);
   7153 void __RPC_STUB IInternetProtocolInfo_CombineUrl_Stub(
   7154     IRpcStubBuffer* This,
   7155     IRpcChannelBuffer* pRpcChannelBuffer,
   7156     PRPC_MESSAGE pRpcMessage,
   7157     DWORD* pdwStubPhase);
   7158 HRESULT STDMETHODCALLTYPE IInternetProtocolInfo_CompareUrl_Proxy(
   7159     IInternetProtocolInfo* This,
   7160     LPCWSTR pwzUrl1,
   7161     LPCWSTR pwzUrl2,
   7162     DWORD dwCompareFlags);
   7163 void __RPC_STUB IInternetProtocolInfo_CompareUrl_Stub(
   7164     IRpcStubBuffer* This,
   7165     IRpcChannelBuffer* pRpcChannelBuffer,
   7166     PRPC_MESSAGE pRpcMessage,
   7167     DWORD* pdwStubPhase);
   7168 HRESULT STDMETHODCALLTYPE IInternetProtocolInfo_QueryInfo_Proxy(
   7169     IInternetProtocolInfo* This,
   7170     LPCWSTR pwzUrl,
   7171     QUERYOPTION OueryOption,
   7172     DWORD dwQueryFlags,
   7173     LPVOID pBuffer,
   7174     DWORD cbBuffer,
   7175     DWORD *pcbBuf,
   7176     DWORD dwReserved);
   7177 void __RPC_STUB IInternetProtocolInfo_QueryInfo_Stub(
   7178     IRpcStubBuffer* This,
   7179     IRpcChannelBuffer* pRpcChannelBuffer,
   7180     PRPC_MESSAGE pRpcMessage,
   7181     DWORD* pdwStubPhase);
   7182 
   7183 #endif  /* __IInternetProtocolInfo_INTERFACE_DEFINED__ */
   7184 
   7185 
   7186 #ifndef URLMON_STRICT
   7187 #define PARSE_ENCODE PARSE_ENCODE_IS_UNESCAPE
   7188 #define PARSE_DECODE PARSE_DECODE_IS_ESCAPE
   7189 #endif
   7190 #endif
   7191 
   7192 #define IOInet               IInternet
   7193 #define IOInetBindInfo       IInternetBindInfo
   7194 #define IOInetBindInfoEx     IInternetBindInfoEx
   7195 #define IOInetProtocolRoot   IInternetProtocolRoot
   7196 #define IOInetProtocol       IInternetProtocol
   7197 
   7198 #if (_WIN32_IE >= _WIN32_IE_IE70)
   7199 #define IOInetProtocolEx     IInternetProtocolEx
   7200 #endif
   7201 #define IOInetProtocolSink   IInternetProtocolSink
   7202 #define IOInetProtocolInfo   IInternetProtocolInfo
   7203 #define IOInetSession        IInternetSession
   7204 #define IOInetPriority       IInternetPriority
   7205 #define IOInetThreadSwitch   IInternetThreadSwitch
   7206 #define IOInetProtocolSinkStackable   IInternetProtocolSinkStackable
   7207 
   7208 #define LPOINET              LPIINTERNET
   7209 #define LPOINETPROTOCOLINFO  LPIINTERNETPROTOCOLINFO
   7210 #define LPOINETBINDINFO      LPIINTERNETBINDINFO
   7211 #define LPOINETPROTOCOLROOT  LPIINTERNETPROTOCOLROOT
   7212 #define LPOINETPROTOCOL      LPIINTERNETPROTOCOL
   7213 
   7214 #if (_WIN32_IE >= _WIN32_IE_IE70)
   7215 #define LPOINETPROTOCOLEX LPIINTERNETPROTOCOLEX
   7216 #endif
   7217 #define LPOINETPROTOCOLSINK  LPIINTERNETPROTOCOLSINK
   7218 #define LPOINETSESSION       LPIINTERNETSESSION
   7219 #define LPOINETTHREADSWITCH  LPIINTERNETTHREADSWITCH
   7220 #define LPOINETPRIORITY      LPIINTERNETPRIORITY
   7221 #define LPOINETPROTOCOLINFO  LPIINTERNETPROTOCOLINFO
   7222 #define LPOINETPROTOCOLSINKSTACKABLE  LPIINTERNETPROTOCOLSINKSTACKABLE
   7223 
   7224 #define IID_IOInet               IID_IInternet
   7225 #define IID_IOInetBindInfo       IID_IInternetBindInfo
   7226 #define IID_IOInetBindInfoEx     IID_IInternetBindInfoEx
   7227 #define IID_IOInetProtocolRoot   IID_IInternetProtocolRoot
   7228 #define IID_IOInetProtocol       IID_IInternetProtocol
   7229 
   7230 #if (_WIN32_IE >= _WIN32_IE_IE70)
   7231 #define IID_IOInetProtocolEx IID_IInternetProtocolEx
   7232 #endif
   7233 #define IID_IOInetProtocolSink   IID_IInternetProtocolSink
   7234 #define IID_IOInetProtocolInfo   IID_IInternetProtocolInfo
   7235 #define IID_IOInetSession        IID_IInternetSession
   7236 #define IID_IOInetPriority       IID_IInternetPriority
   7237 #define IID_IOInetThreadSwitch   IID_IInternetThreadSwitch
   7238 #define IID_IOInetProtocolSinkStackable   IID_IInternetProtocolSinkStackable
   7239 
   7240 STDAPI CoInternetParseUrl(LPCWSTR pwzUrl, PARSEACTION ParseAction, DWORD dwFlags, LPWSTR pszResult, DWORD cchResult, DWORD *pcchResult, DWORD dwReserved);
   7241 #if (_WIN32_IE >= _WIN32_IE_IE70)
   7242 STDAPI CoInternetParseIUri(IUri *pIUri, PARSEACTION ParseAction, DWORD dwFlags, LPWSTR pwzResult, DWORD cchResult, DWORD *pcchResult, DWORD_PTR dwReserved);
   7243 #endif
   7244 STDAPI CoInternetCombineUrl(LPCWSTR pwzBaseUrl, LPCWSTR pwzRelativeUrl, DWORD dwCombineFlags, LPWSTR pszResult, DWORD cchResult, DWORD *pcchResult, DWORD dwReserved);
   7245 #if (_WIN32_IE >= _WIN32_IE_IE70)
   7246 STDAPI CoInternetCombineUrlEx(IUri *pBaseUri, LPCWSTR pwzRelativeUrl, DWORD dwCombineFlags, IUri **ppCombinedUri, DWORD_PTR dwReserved);
   7247 STDAPI CoInternetCombineIUri (IUri *pBaseUri, IUri *pRelativeUri, DWORD dwCombineFlags, IUri **ppCombinedUri, DWORD_PTR dwReserved);
   7248 #endif
   7249 STDAPI CoInternetCompareUrl(LPCWSTR pwzUrl1, LPCWSTR pwzUrl2, DWORD dwFlags);
   7250 STDAPI CoInternetGetProtocolFlags(LPCWSTR pwzUrl, DWORD *pdwFlags, DWORD dwReserved);
   7251 STDAPI CoInternetQueryInfo(LPCWSTR pwzUrl, QUERYOPTION QueryOptions, DWORD dwQueryFlags, LPVOID pvBuffer, DWORD cbBuffer, DWORD *pcbBuffer, DWORD dwReserved);
   7252 STDAPI CoInternetGetSession(DWORD dwSessionMode, IInternetSession **ppIInternetSession, DWORD dwReserved);
   7253 STDAPI CoInternetGetSecurityUrl(LPCWSTR pwszUrl, LPWSTR *ppwszSecUrl, PSUACTION psuAction, DWORD dwReserved);
   7254 STDAPI AsyncInstallDistributionUnit(LPCWSTR szDistUnit, LPCWSTR szTYPE, LPCWSTR szExt, DWORD dwFileVersionMS, DWORD dwFileVersionLS, LPCWSTR szURL,IBindCtx *pbc, LPVOID pvReserved,DWORD flags);
   7255 #if (_WIN32_IE >= _WIN32_IE_IE70)
   7256 STDAPI CoInternetGetSecurityUrlEx(IUri *pUri, IUri **ppSecUri, PSUACTION psuAction, DWORD_PTR dwReserved);
   7257 #endif
   7258 
   7259 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
   7260 #ifndef _INTERNETFEATURELIST_DEFINED
   7261 #define _INTERNETFEATURELIST_DEFINED
   7262 
   7263 typedef enum _tagINTERNETFEATURELIST {
   7264     FEATURE_OBJECT_CACHING = 0,
   7265     FEATURE_ZONE_ELEVATION = 1,
   7266     FEATURE_MIME_HANDLING = 2,
   7267     FEATURE_MIME_SNIFFING = 3,
   7268     FEATURE_WINDOW_RESTRICTIONS = 4,
   7269     FEATURE_WEBOC_POPUPMANAGEMENT = 5,
   7270     FEATURE_BEHAVIORS = 6,
   7271     FEATURE_DISABLE_MK_PROTOCOL = 7,
   7272     FEATURE_LOCALMACHINE_LOCKDOWN = 8,
   7273     FEATURE_SECURITYBAND = 9,
   7274     FEATURE_RESTRICT_ACTIVEXINSTALL = 10,
   7275     FEATURE_VALIDATE_NAVIGATE_URL = 11,
   7276     FEATURE_RESTRICT_FILEDOWNLOAD = 12,
   7277     FEATURE_ADDON_MANAGEMENT = 13,
   7278     FEATURE_PROTOCOL_LOCKDOWN = 14,
   7279     FEATURE_HTTP_USERNAME_PASSWORD_DISABLE = 15,
   7280     FEATURE_SAFE_BINDTOOBJECT = 16,
   7281     FEATURE_UNC_SAVEDFILECHECK = 17,
   7282     FEATURE_GET_URL_DOM_FILEPATH_UNENCODED = 18,
   7283     FEATURE_TABBED_BROWSING = 19,
   7284     FEATURE_SSLUX = 20,
   7285     FEATURE_DISABLE_NAVIGATION_SOUNDS = 21,
   7286     FEATURE_DISABLE_LEGACY_COMPRESSION = 22,
   7287     FEATURE_FORCE_ADDR_AND_STATUS = 23,
   7288     FEATURE_XMLHTTP = 24,
   7289     FEATURE_DISABLE_TELNET_PROTOCOL = 25,
   7290     FEATURE_FEEDS = 26,
   7291     FEATURE_BLOCK_INPUT_PROMPTS = 27,
   7292     FEATURE_ENTRY_COUNT = 28
   7293 } INTERNETFEATURELIST;
   7294 
   7295 #define SET_FEATURE_ON_THREAD 0x1
   7296 #define SET_FEATURE_ON_PROCESS 0x2
   7297 #define SET_FEATURE_IN_REGISTRY 0x4
   7298 #define SET_FEATURE_ON_THREAD_LOCALMACHINE 0x8
   7299 #define SET_FEATURE_ON_THREAD_INTRANET 0x10
   7300 #define SET_FEATURE_ON_THREAD_TRUSTED 0x20
   7301 #define SET_FEATURE_ON_THREAD_INTERNET 0x40
   7302 #define SET_FEATURE_ON_THREAD_RESTRICTED 0x80
   7303 
   7304 #define GET_FEATURE_FROM_THREAD 0x1
   7305 #define GET_FEATURE_FROM_PROCESS 0x2
   7306 #define GET_FEATURE_FROM_REGISTRY 0x4
   7307 #define GET_FEATURE_FROM_THREAD_LOCALMACHINE 0x8
   7308 #define GET_FEATURE_FROM_THREAD_INTRANET 0x10
   7309 #define GET_FEATURE_FROM_THREAD_TRUSTED 0x20
   7310 #define GET_FEATURE_FROM_THREAD_INTERNET 0x40
   7311 #define GET_FEATURE_FROM_THREAD_RESTRICTED 0x80
   7312 #endif
   7313 
   7314 STDAPI CoInternetSetFeatureEnabled(INTERNETFEATURELIST FeatureEntry, DWORD dwFlags, WINBOOL fEnable);
   7315 STDAPI CoInternetIsFeatureEnabled(INTERNETFEATURELIST FeatureEntry, DWORD dwFlags);
   7316 STDAPI CoInternetIsFeatureEnabledForUrl(INTERNETFEATURELIST FeatureEntry, DWORD dwFlags, LPCWSTR szURL, IInternetSecurityManager *pSecMgr);
   7317 STDAPI CoInternetIsFeatureEnabledForIUri(INTERNETFEATURELIST FeatureEntry, DWORD dwFlags, IUri *pIUri, IInternetSecurityManagerEx2 *pSecMgr);
   7318 STDAPI CoInternetIsFeatureZoneElevationEnabled(LPCWSTR szFromURL, LPCWSTR szToURL, IInternetSecurityManager *pSecMgr, DWORD dwFlags);
   7319 #endif
   7320 STDAPI CopyStgMedium(const STGMEDIUM *pcstgmedSrc, STGMEDIUM *pstgmedDest);
   7321 STDAPI CopyBindInfo(const BINDINFO *pcbiSrc, BINDINFO *pbiDest);
   7322 STDAPI_(void) ReleaseBindInfo(BINDINFO *pbindinfo);
   7323 
   7324 #define INET_E_USE_DEFAULT_PROTOCOLHANDLER _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0011))
   7325 #define INET_E_USE_DEFAULT_SETTING         _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0012))
   7326 #define INET_E_DEFAULT_ACTION              INET_E_USE_DEFAULT_PROTOCOLHANDLER
   7327 #define INET_E_QUERYOPTION_UNKNOWN         _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0013))
   7328 #define INET_E_REDIRECTING                 _HRESULT_TYPEDEF_(__MSABI_LONG(0x800C0014))
   7329 
   7330 #define OInetParseUrl CoInternetParseUrl
   7331 #define OInetCombineUrl CoInternetCombineUrl
   7332 #if (_WIN32_IE >= _WIN32_IE_IE70)
   7333 #define OInetCombineUrlEx CoInternetCombineUrlEx
   7334 #define OInetCombineIUri CoInternetCombineIUri
   7335 #endif
   7336 #define OInetCompareUrl CoInternetCompareUrl
   7337 #define OInetQueryInfo CoInternetQueryInfo
   7338 #define OInetGetSession CoInternetGetSession
   7339 #endif
   7340 
   7341 #define PROTOCOLFLAG_NO_PICS_CHECK 0x1
   7342 
   7343 STDAPI CoInternetCreateSecurityManager(IServiceProvider *pSP, IInternetSecurityManager **ppSM, DWORD dwReserved);
   7344 STDAPI CoInternetCreateZoneManager(IServiceProvider *pSP, IInternetZoneManager **ppZM, DWORD dwReserved);
   7345 
   7346 EXTERN_C const IID CLSID_InternetSecurityManager;
   7347 EXTERN_C const IID CLSID_InternetZoneManager;
   7348 
   7349 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
   7350 EXTERN_C const IID CLSID_PersistentZoneIdentifier;
   7351 #endif
   7352 
   7353 #define SID_SInternetSecurityManager IID_IInternetSecurityManager
   7354 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
   7355 #define SID_SInternetSecurityManagerEx IID_IInternetSecurityManagerEx
   7356 #endif
   7357 #if (_WIN32_IE >= _WIN32_IE_IE70)
   7358 #define SID_SInternetSecurityManagerEx2 IID_IInternetSecurityManagerEx2
   7359 #endif
   7360 #define SID_SInternetHostSecurityManager IID_IInternetHostSecurityManager
   7361 
   7362 #ifndef _LPINTERNETSECURITYMGRSITE_DEFINED
   7363 #define _LPINTERNETSECURITYMGRSITE_DEFINED
   7364 
   7365 /*****************************************************************************
   7366  * IInternetSecurityMgrSite interface
   7367  */
   7368 #ifndef __IInternetSecurityMgrSite_INTERFACE_DEFINED__
   7369 #define __IInternetSecurityMgrSite_INTERFACE_DEFINED__
   7370 
   7371 DEFINE_GUID(IID_IInternetSecurityMgrSite, 0x79eac9ed, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   7372 #if defined(__cplusplus) && !defined(CINTERFACE)
   7373 MIDL_INTERFACE("79eac9ed-baf9-11ce-8c82-00aa004ba90b")
   7374 IInternetSecurityMgrSite : public IUnknown
   7375 {
   7376     virtual HRESULT STDMETHODCALLTYPE GetWindow(
   7377         HWND *phwnd) = 0;
   7378 
   7379     virtual HRESULT STDMETHODCALLTYPE EnableModeless(
   7380         WINBOOL fEnable) = 0;
   7381 
   7382 };
   7383 #ifdef __CRT_UUID_DECL
   7384 __CRT_UUID_DECL(IInternetSecurityMgrSite, 0x79eac9ed, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   7385 #endif
   7386 #else
   7387 typedef struct IInternetSecurityMgrSiteVtbl {
   7388     BEGIN_INTERFACE
   7389 
   7390     /*** IUnknown methods ***/
   7391     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7392         IInternetSecurityMgrSite* This,
   7393         REFIID riid,
   7394         void **ppvObject);
   7395 
   7396     ULONG (STDMETHODCALLTYPE *AddRef)(
   7397         IInternetSecurityMgrSite* This);
   7398 
   7399     ULONG (STDMETHODCALLTYPE *Release)(
   7400         IInternetSecurityMgrSite* This);
   7401 
   7402     /*** IInternetSecurityMgrSite methods ***/
   7403     HRESULT (STDMETHODCALLTYPE *GetWindow)(
   7404         IInternetSecurityMgrSite* This,
   7405         HWND *phwnd);
   7406 
   7407     HRESULT (STDMETHODCALLTYPE *EnableModeless)(
   7408         IInternetSecurityMgrSite* This,
   7409         WINBOOL fEnable);
   7410 
   7411     END_INTERFACE
   7412 } IInternetSecurityMgrSiteVtbl;
   7413 interface IInternetSecurityMgrSite {
   7414     CONST_VTBL IInternetSecurityMgrSiteVtbl* lpVtbl;
   7415 };
   7416 
   7417 #ifdef COBJMACROS
   7418 #ifndef WIDL_C_INLINE_WRAPPERS
   7419 /*** IUnknown methods ***/
   7420 #define IInternetSecurityMgrSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7421 #define IInternetSecurityMgrSite_AddRef(This) (This)->lpVtbl->AddRef(This)
   7422 #define IInternetSecurityMgrSite_Release(This) (This)->lpVtbl->Release(This)
   7423 /*** IInternetSecurityMgrSite methods ***/
   7424 #define IInternetSecurityMgrSite_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   7425 #define IInternetSecurityMgrSite_EnableModeless(This,fEnable) (This)->lpVtbl->EnableModeless(This,fEnable)
   7426 #else
   7427 /*** IUnknown methods ***/
   7428 static FORCEINLINE HRESULT IInternetSecurityMgrSite_QueryInterface(IInternetSecurityMgrSite* This,REFIID riid,void **ppvObject) {
   7429     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7430 }
   7431 static FORCEINLINE ULONG IInternetSecurityMgrSite_AddRef(IInternetSecurityMgrSite* This) {
   7432     return This->lpVtbl->AddRef(This);
   7433 }
   7434 static FORCEINLINE ULONG IInternetSecurityMgrSite_Release(IInternetSecurityMgrSite* This) {
   7435     return This->lpVtbl->Release(This);
   7436 }
   7437 /*** IInternetSecurityMgrSite methods ***/
   7438 static FORCEINLINE HRESULT IInternetSecurityMgrSite_GetWindow(IInternetSecurityMgrSite* This,HWND *phwnd) {
   7439     return This->lpVtbl->GetWindow(This,phwnd);
   7440 }
   7441 static FORCEINLINE HRESULT IInternetSecurityMgrSite_EnableModeless(IInternetSecurityMgrSite* This,WINBOOL fEnable) {
   7442     return This->lpVtbl->EnableModeless(This,fEnable);
   7443 }
   7444 #endif
   7445 #endif
   7446 
   7447 #endif
   7448 
   7449 HRESULT STDMETHODCALLTYPE IInternetSecurityMgrSite_GetWindow_Proxy(
   7450     IInternetSecurityMgrSite* This,
   7451     HWND *phwnd);
   7452 void __RPC_STUB IInternetSecurityMgrSite_GetWindow_Stub(
   7453     IRpcStubBuffer* This,
   7454     IRpcChannelBuffer* pRpcChannelBuffer,
   7455     PRPC_MESSAGE pRpcMessage,
   7456     DWORD* pdwStubPhase);
   7457 HRESULT STDMETHODCALLTYPE IInternetSecurityMgrSite_EnableModeless_Proxy(
   7458     IInternetSecurityMgrSite* This,
   7459     WINBOOL fEnable);
   7460 void __RPC_STUB IInternetSecurityMgrSite_EnableModeless_Stub(
   7461     IRpcStubBuffer* This,
   7462     IRpcChannelBuffer* pRpcChannelBuffer,
   7463     PRPC_MESSAGE pRpcMessage,
   7464     DWORD* pdwStubPhase);
   7465 
   7466 #endif  /* __IInternetSecurityMgrSite_INTERFACE_DEFINED__ */
   7467 
   7468 #endif
   7469 
   7470 #ifndef _LPINTERNETSECURITYMANANGER_DEFINED
   7471 #define _LPINTERNETSECURITYMANANGER_DEFINED
   7472 
   7473 /*****************************************************************************
   7474  * IInternetSecurityManager interface
   7475  */
   7476 #ifndef __IInternetSecurityManager_INTERFACE_DEFINED__
   7477 #define __IInternetSecurityManager_INTERFACE_DEFINED__
   7478 
   7479 
   7480 #define MUTZ_NOSAVEDFILECHECK 0x1
   7481 #define MUTZ_ISFILE 0x2
   7482 #define MUTZ_ACCEPT_WILDCARD_SCHEME 0x80
   7483 #define MUTZ_ENFORCERESTRICTED 0x100
   7484 #define MUTZ_RESERVED 0x200
   7485 #define MUTZ_REQUIRESAVEDFILECHECK 0x400
   7486 #define MUTZ_DONT_UNESCAPE 0x800
   7487 #define MUTZ_DONT_USE_CACHE 0x1000
   7488 #define MUTZ_FORCE_INTRANET_FLAGS 0x2000
   7489 #define MUTZ_IGNORE_ZONE_MAPPINGS 0x4000
   7490 
   7491 
   7492 #define MAX_SIZE_SECURITY_ID 512
   7493 
   7494 
   7495 typedef enum __WIDL_urlmon_generated_name_0000000E {
   7496     PUAF_DEFAULT = 0x0,
   7497     PUAF_NOUI = 0x1,
   7498     PUAF_ISFILE = 0x2,
   7499     PUAF_WARN_IF_DENIED = 0x4,
   7500     PUAF_FORCEUI_FOREGROUND = 0x8,
   7501     PUAF_CHECK_TIFS = 0x10,
   7502     PUAF_DONTCHECKBOXINDIALOG = 0x20,
   7503     PUAF_TRUSTED = 0x40,
   7504     PUAF_ACCEPT_WILDCARD_SCHEME = 0x80,
   7505     PUAF_ENFORCERESTRICTED = 0x100,
   7506     PUAF_NOSAVEDFILECHECK = 0x200,
   7507     PUAF_REQUIRESAVEDFILECHECK = 0x400,
   7508     PUAF_DONT_USE_CACHE = 0x1000,
   7509     PUAF_RESERVED1 = 0x2000,
   7510     PUAF_RESERVED2 = 0x4000,
   7511     PUAF_LMZ_UNLOCKED = 0x10000,
   7512     PUAF_LMZ_LOCKED = 0x20000,
   7513     PUAF_DEFAULTZONEPOL = 0x40000,
   7514     PUAF_NPL_USE_LOCKED_IF_RESTRICTED = 0x80000,
   7515     PUAF_NOUIIFLOCKED = 0x100000,
   7516     PUAF_DRAGPROTOCOLCHECK = 0x200000
   7517 } PUAF;
   7518 typedef enum __WIDL_urlmon_generated_name_0000000F {
   7519     PUAFOUT_DEFAULT = 0x0,
   7520     PUAFOUT_ISLOCKZONEPOLICY = 0x1
   7521 } PUAFOUT;
   7522 
   7523 
   7524 typedef enum __WIDL_urlmon_generated_name_00000010 {
   7525     SZM_CREATE = 0x0,
   7526     SZM_DELETE = 0x1
   7527 } SZM_FLAGS;
   7528 
   7529 DEFINE_GUID(IID_IInternetSecurityManager, 0x79eac9ee, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   7530 #if defined(__cplusplus) && !defined(CINTERFACE)
   7531 MIDL_INTERFACE("79eac9ee-baf9-11ce-8c82-00aa004ba90b")
   7532 IInternetSecurityManager : public IUnknown
   7533 {
   7534     virtual HRESULT STDMETHODCALLTYPE SetSecuritySite(
   7535         IInternetSecurityMgrSite *pSite) = 0;
   7536 
   7537     virtual HRESULT STDMETHODCALLTYPE GetSecuritySite(
   7538         IInternetSecurityMgrSite **ppSite) = 0;
   7539 
   7540     virtual HRESULT STDMETHODCALLTYPE MapUrlToZone(
   7541         LPCWSTR pwszUrl,
   7542         DWORD *pdwZone,
   7543         DWORD dwFlags) = 0;
   7544 
   7545     virtual HRESULT STDMETHODCALLTYPE GetSecurityId(
   7546         LPCWSTR pwszUrl,
   7547         BYTE *pbSecurityId,
   7548         DWORD *pcbSecurityId,
   7549         DWORD_PTR dwReserved) = 0;
   7550 
   7551     virtual HRESULT STDMETHODCALLTYPE ProcessUrlAction(
   7552         LPCWSTR pwszUrl,
   7553         DWORD dwAction,
   7554         BYTE *pPolicy,
   7555         DWORD cbPolicy,
   7556         BYTE *pContext,
   7557         DWORD cbContext,
   7558         DWORD dwFlags,
   7559         DWORD dwReserved) = 0;
   7560 
   7561     virtual HRESULT STDMETHODCALLTYPE QueryCustomPolicy(
   7562         LPCWSTR pwszUrl,
   7563         REFGUID guidKey,
   7564         BYTE **ppPolicy,
   7565         DWORD *pcbPolicy,
   7566         BYTE *pContext,
   7567         DWORD cbContext,
   7568         DWORD dwReserved) = 0;
   7569 
   7570     virtual HRESULT STDMETHODCALLTYPE SetZoneMapping(
   7571         DWORD dwZone,
   7572         LPCWSTR lpszPattern,
   7573         DWORD dwFlags) = 0;
   7574 
   7575     virtual HRESULT STDMETHODCALLTYPE GetZoneMappings(
   7576         DWORD dwZone,
   7577         IEnumString **ppenumString,
   7578         DWORD dwFlags) = 0;
   7579 
   7580 };
   7581 #ifdef __CRT_UUID_DECL
   7582 __CRT_UUID_DECL(IInternetSecurityManager, 0x79eac9ee, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   7583 #endif
   7584 #else
   7585 typedef struct IInternetSecurityManagerVtbl {
   7586     BEGIN_INTERFACE
   7587 
   7588     /*** IUnknown methods ***/
   7589     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7590         IInternetSecurityManager* This,
   7591         REFIID riid,
   7592         void **ppvObject);
   7593 
   7594     ULONG (STDMETHODCALLTYPE *AddRef)(
   7595         IInternetSecurityManager* This);
   7596 
   7597     ULONG (STDMETHODCALLTYPE *Release)(
   7598         IInternetSecurityManager* This);
   7599 
   7600     /*** IInternetSecurityManager methods ***/
   7601     HRESULT (STDMETHODCALLTYPE *SetSecuritySite)(
   7602         IInternetSecurityManager* This,
   7603         IInternetSecurityMgrSite *pSite);
   7604 
   7605     HRESULT (STDMETHODCALLTYPE *GetSecuritySite)(
   7606         IInternetSecurityManager* This,
   7607         IInternetSecurityMgrSite **ppSite);
   7608 
   7609     HRESULT (STDMETHODCALLTYPE *MapUrlToZone)(
   7610         IInternetSecurityManager* This,
   7611         LPCWSTR pwszUrl,
   7612         DWORD *pdwZone,
   7613         DWORD dwFlags);
   7614 
   7615     HRESULT (STDMETHODCALLTYPE *GetSecurityId)(
   7616         IInternetSecurityManager* This,
   7617         LPCWSTR pwszUrl,
   7618         BYTE *pbSecurityId,
   7619         DWORD *pcbSecurityId,
   7620         DWORD_PTR dwReserved);
   7621 
   7622     HRESULT (STDMETHODCALLTYPE *ProcessUrlAction)(
   7623         IInternetSecurityManager* This,
   7624         LPCWSTR pwszUrl,
   7625         DWORD dwAction,
   7626         BYTE *pPolicy,
   7627         DWORD cbPolicy,
   7628         BYTE *pContext,
   7629         DWORD cbContext,
   7630         DWORD dwFlags,
   7631         DWORD dwReserved);
   7632 
   7633     HRESULT (STDMETHODCALLTYPE *QueryCustomPolicy)(
   7634         IInternetSecurityManager* This,
   7635         LPCWSTR pwszUrl,
   7636         REFGUID guidKey,
   7637         BYTE **ppPolicy,
   7638         DWORD *pcbPolicy,
   7639         BYTE *pContext,
   7640         DWORD cbContext,
   7641         DWORD dwReserved);
   7642 
   7643     HRESULT (STDMETHODCALLTYPE *SetZoneMapping)(
   7644         IInternetSecurityManager* This,
   7645         DWORD dwZone,
   7646         LPCWSTR lpszPattern,
   7647         DWORD dwFlags);
   7648 
   7649     HRESULT (STDMETHODCALLTYPE *GetZoneMappings)(
   7650         IInternetSecurityManager* This,
   7651         DWORD dwZone,
   7652         IEnumString **ppenumString,
   7653         DWORD dwFlags);
   7654 
   7655     END_INTERFACE
   7656 } IInternetSecurityManagerVtbl;
   7657 interface IInternetSecurityManager {
   7658     CONST_VTBL IInternetSecurityManagerVtbl* lpVtbl;
   7659 };
   7660 
   7661 #ifdef COBJMACROS
   7662 #ifndef WIDL_C_INLINE_WRAPPERS
   7663 /*** IUnknown methods ***/
   7664 #define IInternetSecurityManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7665 #define IInternetSecurityManager_AddRef(This) (This)->lpVtbl->AddRef(This)
   7666 #define IInternetSecurityManager_Release(This) (This)->lpVtbl->Release(This)
   7667 /*** IInternetSecurityManager methods ***/
   7668 #define IInternetSecurityManager_SetSecuritySite(This,pSite) (This)->lpVtbl->SetSecuritySite(This,pSite)
   7669 #define IInternetSecurityManager_GetSecuritySite(This,ppSite) (This)->lpVtbl->GetSecuritySite(This,ppSite)
   7670 #define IInternetSecurityManager_MapUrlToZone(This,pwszUrl,pdwZone,dwFlags) (This)->lpVtbl->MapUrlToZone(This,pwszUrl,pdwZone,dwFlags)
   7671 #define IInternetSecurityManager_GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved) (This)->lpVtbl->GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved)
   7672 #define IInternetSecurityManager_ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved) (This)->lpVtbl->ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved)
   7673 #define IInternetSecurityManager_QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) (This)->lpVtbl->QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved)
   7674 #define IInternetSecurityManager_SetZoneMapping(This,dwZone,lpszPattern,dwFlags) (This)->lpVtbl->SetZoneMapping(This,dwZone,lpszPattern,dwFlags)
   7675 #define IInternetSecurityManager_GetZoneMappings(This,dwZone,ppenumString,dwFlags) (This)->lpVtbl->GetZoneMappings(This,dwZone,ppenumString,dwFlags)
   7676 #else
   7677 /*** IUnknown methods ***/
   7678 static FORCEINLINE HRESULT IInternetSecurityManager_QueryInterface(IInternetSecurityManager* This,REFIID riid,void **ppvObject) {
   7679     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7680 }
   7681 static FORCEINLINE ULONG IInternetSecurityManager_AddRef(IInternetSecurityManager* This) {
   7682     return This->lpVtbl->AddRef(This);
   7683 }
   7684 static FORCEINLINE ULONG IInternetSecurityManager_Release(IInternetSecurityManager* This) {
   7685     return This->lpVtbl->Release(This);
   7686 }
   7687 /*** IInternetSecurityManager methods ***/
   7688 static FORCEINLINE HRESULT IInternetSecurityManager_SetSecuritySite(IInternetSecurityManager* This,IInternetSecurityMgrSite *pSite) {
   7689     return This->lpVtbl->SetSecuritySite(This,pSite);
   7690 }
   7691 static FORCEINLINE HRESULT IInternetSecurityManager_GetSecuritySite(IInternetSecurityManager* This,IInternetSecurityMgrSite **ppSite) {
   7692     return This->lpVtbl->GetSecuritySite(This,ppSite);
   7693 }
   7694 static FORCEINLINE HRESULT IInternetSecurityManager_MapUrlToZone(IInternetSecurityManager* This,LPCWSTR pwszUrl,DWORD *pdwZone,DWORD dwFlags) {
   7695     return This->lpVtbl->MapUrlToZone(This,pwszUrl,pdwZone,dwFlags);
   7696 }
   7697 static FORCEINLINE HRESULT IInternetSecurityManager_GetSecurityId(IInternetSecurityManager* This,LPCWSTR pwszUrl,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved) {
   7698     return This->lpVtbl->GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved);
   7699 }
   7700 static FORCEINLINE HRESULT IInternetSecurityManager_ProcessUrlAction(IInternetSecurityManager* This,LPCWSTR pwszUrl,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved) {
   7701     return This->lpVtbl->ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved);
   7702 }
   7703 static FORCEINLINE HRESULT IInternetSecurityManager_QueryCustomPolicy(IInternetSecurityManager* This,LPCWSTR pwszUrl,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwReserved) {
   7704     return This->lpVtbl->QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved);
   7705 }
   7706 static FORCEINLINE HRESULT IInternetSecurityManager_SetZoneMapping(IInternetSecurityManager* This,DWORD dwZone,LPCWSTR lpszPattern,DWORD dwFlags) {
   7707     return This->lpVtbl->SetZoneMapping(This,dwZone,lpszPattern,dwFlags);
   7708 }
   7709 static FORCEINLINE HRESULT IInternetSecurityManager_GetZoneMappings(IInternetSecurityManager* This,DWORD dwZone,IEnumString **ppenumString,DWORD dwFlags) {
   7710     return This->lpVtbl->GetZoneMappings(This,dwZone,ppenumString,dwFlags);
   7711 }
   7712 #endif
   7713 #endif
   7714 
   7715 #endif
   7716 
   7717 HRESULT STDMETHODCALLTYPE IInternetSecurityManager_SetSecuritySite_Proxy(
   7718     IInternetSecurityManager* This,
   7719     IInternetSecurityMgrSite *pSite);
   7720 void __RPC_STUB IInternetSecurityManager_SetSecuritySite_Stub(
   7721     IRpcStubBuffer* This,
   7722     IRpcChannelBuffer* pRpcChannelBuffer,
   7723     PRPC_MESSAGE pRpcMessage,
   7724     DWORD* pdwStubPhase);
   7725 HRESULT STDMETHODCALLTYPE IInternetSecurityManager_GetSecuritySite_Proxy(
   7726     IInternetSecurityManager* This,
   7727     IInternetSecurityMgrSite **ppSite);
   7728 void __RPC_STUB IInternetSecurityManager_GetSecuritySite_Stub(
   7729     IRpcStubBuffer* This,
   7730     IRpcChannelBuffer* pRpcChannelBuffer,
   7731     PRPC_MESSAGE pRpcMessage,
   7732     DWORD* pdwStubPhase);
   7733 HRESULT STDMETHODCALLTYPE IInternetSecurityManager_MapUrlToZone_Proxy(
   7734     IInternetSecurityManager* This,
   7735     LPCWSTR pwszUrl,
   7736     DWORD *pdwZone,
   7737     DWORD dwFlags);
   7738 void __RPC_STUB IInternetSecurityManager_MapUrlToZone_Stub(
   7739     IRpcStubBuffer* This,
   7740     IRpcChannelBuffer* pRpcChannelBuffer,
   7741     PRPC_MESSAGE pRpcMessage,
   7742     DWORD* pdwStubPhase);
   7743 HRESULT STDMETHODCALLTYPE IInternetSecurityManager_GetSecurityId_Proxy(
   7744     IInternetSecurityManager* This,
   7745     LPCWSTR pwszUrl,
   7746     BYTE *pbSecurityId,
   7747     DWORD *pcbSecurityId,
   7748     DWORD_PTR dwReserved);
   7749 void __RPC_STUB IInternetSecurityManager_GetSecurityId_Stub(
   7750     IRpcStubBuffer* This,
   7751     IRpcChannelBuffer* pRpcChannelBuffer,
   7752     PRPC_MESSAGE pRpcMessage,
   7753     DWORD* pdwStubPhase);
   7754 HRESULT STDMETHODCALLTYPE IInternetSecurityManager_ProcessUrlAction_Proxy(
   7755     IInternetSecurityManager* This,
   7756     LPCWSTR pwszUrl,
   7757     DWORD dwAction,
   7758     BYTE *pPolicy,
   7759     DWORD cbPolicy,
   7760     BYTE *pContext,
   7761     DWORD cbContext,
   7762     DWORD dwFlags,
   7763     DWORD dwReserved);
   7764 void __RPC_STUB IInternetSecurityManager_ProcessUrlAction_Stub(
   7765     IRpcStubBuffer* This,
   7766     IRpcChannelBuffer* pRpcChannelBuffer,
   7767     PRPC_MESSAGE pRpcMessage,
   7768     DWORD* pdwStubPhase);
   7769 HRESULT STDMETHODCALLTYPE IInternetSecurityManager_QueryCustomPolicy_Proxy(
   7770     IInternetSecurityManager* This,
   7771     LPCWSTR pwszUrl,
   7772     REFGUID guidKey,
   7773     BYTE **ppPolicy,
   7774     DWORD *pcbPolicy,
   7775     BYTE *pContext,
   7776     DWORD cbContext,
   7777     DWORD dwReserved);
   7778 void __RPC_STUB IInternetSecurityManager_QueryCustomPolicy_Stub(
   7779     IRpcStubBuffer* This,
   7780     IRpcChannelBuffer* pRpcChannelBuffer,
   7781     PRPC_MESSAGE pRpcMessage,
   7782     DWORD* pdwStubPhase);
   7783 HRESULT STDMETHODCALLTYPE IInternetSecurityManager_SetZoneMapping_Proxy(
   7784     IInternetSecurityManager* This,
   7785     DWORD dwZone,
   7786     LPCWSTR lpszPattern,
   7787     DWORD dwFlags);
   7788 void __RPC_STUB IInternetSecurityManager_SetZoneMapping_Stub(
   7789     IRpcStubBuffer* This,
   7790     IRpcChannelBuffer* pRpcChannelBuffer,
   7791     PRPC_MESSAGE pRpcMessage,
   7792     DWORD* pdwStubPhase);
   7793 HRESULT STDMETHODCALLTYPE IInternetSecurityManager_GetZoneMappings_Proxy(
   7794     IInternetSecurityManager* This,
   7795     DWORD dwZone,
   7796     IEnumString **ppenumString,
   7797     DWORD dwFlags);
   7798 void __RPC_STUB IInternetSecurityManager_GetZoneMappings_Stub(
   7799     IRpcStubBuffer* This,
   7800     IRpcChannelBuffer* pRpcChannelBuffer,
   7801     PRPC_MESSAGE pRpcMessage,
   7802     DWORD* pdwStubPhase);
   7803 
   7804 #endif  /* __IInternetSecurityManager_INTERFACE_DEFINED__ */
   7805 
   7806 #endif
   7807 
   7808 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
   7809 #ifndef _LPINTERNETSECURITYMANANGEREX_DEFINED
   7810 #define _LPINTERNETSECURITYMANANGEREX_DEFINED
   7811 
   7812 /*****************************************************************************
   7813  * IInternetSecurityManagerEx interface
   7814  */
   7815 #ifndef __IInternetSecurityManagerEx_INTERFACE_DEFINED__
   7816 #define __IInternetSecurityManagerEx_INTERFACE_DEFINED__
   7817 
   7818 DEFINE_GUID(IID_IInternetSecurityManagerEx, 0xf164edf1, 0xcc7c, 0x4f0d, 0x9a,0x94, 0x34,0x22,0x26,0x25,0xc3,0x93);
   7819 #if defined(__cplusplus) && !defined(CINTERFACE)
   7820 MIDL_INTERFACE("f164edf1-cc7c-4f0d-9a94-34222625c393")
   7821 IInternetSecurityManagerEx : public IInternetSecurityManager
   7822 {
   7823     virtual HRESULT STDMETHODCALLTYPE ProcessUrlActionEx(
   7824         LPCWSTR pwszUrl,
   7825         DWORD dwAction,
   7826         BYTE *pPolicy,
   7827         DWORD cbPolicy,
   7828         BYTE *pContext,
   7829         DWORD cbContext,
   7830         DWORD dwFlags,
   7831         DWORD dwReserved,
   7832         DWORD *pdwOutFlags) = 0;
   7833 
   7834 };
   7835 #ifdef __CRT_UUID_DECL
   7836 __CRT_UUID_DECL(IInternetSecurityManagerEx, 0xf164edf1, 0xcc7c, 0x4f0d, 0x9a,0x94, 0x34,0x22,0x26,0x25,0xc3,0x93)
   7837 #endif
   7838 #else
   7839 typedef struct IInternetSecurityManagerExVtbl {
   7840     BEGIN_INTERFACE
   7841 
   7842     /*** IUnknown methods ***/
   7843     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7844         IInternetSecurityManagerEx* This,
   7845         REFIID riid,
   7846         void **ppvObject);
   7847 
   7848     ULONG (STDMETHODCALLTYPE *AddRef)(
   7849         IInternetSecurityManagerEx* This);
   7850 
   7851     ULONG (STDMETHODCALLTYPE *Release)(
   7852         IInternetSecurityManagerEx* This);
   7853 
   7854     /*** IInternetSecurityManager methods ***/
   7855     HRESULT (STDMETHODCALLTYPE *SetSecuritySite)(
   7856         IInternetSecurityManagerEx* This,
   7857         IInternetSecurityMgrSite *pSite);
   7858 
   7859     HRESULT (STDMETHODCALLTYPE *GetSecuritySite)(
   7860         IInternetSecurityManagerEx* This,
   7861         IInternetSecurityMgrSite **ppSite);
   7862 
   7863     HRESULT (STDMETHODCALLTYPE *MapUrlToZone)(
   7864         IInternetSecurityManagerEx* This,
   7865         LPCWSTR pwszUrl,
   7866         DWORD *pdwZone,
   7867         DWORD dwFlags);
   7868 
   7869     HRESULT (STDMETHODCALLTYPE *GetSecurityId)(
   7870         IInternetSecurityManagerEx* This,
   7871         LPCWSTR pwszUrl,
   7872         BYTE *pbSecurityId,
   7873         DWORD *pcbSecurityId,
   7874         DWORD_PTR dwReserved);
   7875 
   7876     HRESULT (STDMETHODCALLTYPE *ProcessUrlAction)(
   7877         IInternetSecurityManagerEx* This,
   7878         LPCWSTR pwszUrl,
   7879         DWORD dwAction,
   7880         BYTE *pPolicy,
   7881         DWORD cbPolicy,
   7882         BYTE *pContext,
   7883         DWORD cbContext,
   7884         DWORD dwFlags,
   7885         DWORD dwReserved);
   7886 
   7887     HRESULT (STDMETHODCALLTYPE *QueryCustomPolicy)(
   7888         IInternetSecurityManagerEx* This,
   7889         LPCWSTR pwszUrl,
   7890         REFGUID guidKey,
   7891         BYTE **ppPolicy,
   7892         DWORD *pcbPolicy,
   7893         BYTE *pContext,
   7894         DWORD cbContext,
   7895         DWORD dwReserved);
   7896 
   7897     HRESULT (STDMETHODCALLTYPE *SetZoneMapping)(
   7898         IInternetSecurityManagerEx* This,
   7899         DWORD dwZone,
   7900         LPCWSTR lpszPattern,
   7901         DWORD dwFlags);
   7902 
   7903     HRESULT (STDMETHODCALLTYPE *GetZoneMappings)(
   7904         IInternetSecurityManagerEx* This,
   7905         DWORD dwZone,
   7906         IEnumString **ppenumString,
   7907         DWORD dwFlags);
   7908 
   7909     /*** IInternetSecurityManagerEx methods ***/
   7910     HRESULT (STDMETHODCALLTYPE *ProcessUrlActionEx)(
   7911         IInternetSecurityManagerEx* This,
   7912         LPCWSTR pwszUrl,
   7913         DWORD dwAction,
   7914         BYTE *pPolicy,
   7915         DWORD cbPolicy,
   7916         BYTE *pContext,
   7917         DWORD cbContext,
   7918         DWORD dwFlags,
   7919         DWORD dwReserved,
   7920         DWORD *pdwOutFlags);
   7921 
   7922     END_INTERFACE
   7923 } IInternetSecurityManagerExVtbl;
   7924 interface IInternetSecurityManagerEx {
   7925     CONST_VTBL IInternetSecurityManagerExVtbl* lpVtbl;
   7926 };
   7927 
   7928 #ifdef COBJMACROS
   7929 #ifndef WIDL_C_INLINE_WRAPPERS
   7930 /*** IUnknown methods ***/
   7931 #define IInternetSecurityManagerEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7932 #define IInternetSecurityManagerEx_AddRef(This) (This)->lpVtbl->AddRef(This)
   7933 #define IInternetSecurityManagerEx_Release(This) (This)->lpVtbl->Release(This)
   7934 /*** IInternetSecurityManager methods ***/
   7935 #define IInternetSecurityManagerEx_SetSecuritySite(This,pSite) (This)->lpVtbl->SetSecuritySite(This,pSite)
   7936 #define IInternetSecurityManagerEx_GetSecuritySite(This,ppSite) (This)->lpVtbl->GetSecuritySite(This,ppSite)
   7937 #define IInternetSecurityManagerEx_MapUrlToZone(This,pwszUrl,pdwZone,dwFlags) (This)->lpVtbl->MapUrlToZone(This,pwszUrl,pdwZone,dwFlags)
   7938 #define IInternetSecurityManagerEx_GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved) (This)->lpVtbl->GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved)
   7939 #define IInternetSecurityManagerEx_ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved) (This)->lpVtbl->ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved)
   7940 #define IInternetSecurityManagerEx_QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) (This)->lpVtbl->QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved)
   7941 #define IInternetSecurityManagerEx_SetZoneMapping(This,dwZone,lpszPattern,dwFlags) (This)->lpVtbl->SetZoneMapping(This,dwZone,lpszPattern,dwFlags)
   7942 #define IInternetSecurityManagerEx_GetZoneMappings(This,dwZone,ppenumString,dwFlags) (This)->lpVtbl->GetZoneMappings(This,dwZone,ppenumString,dwFlags)
   7943 /*** IInternetSecurityManagerEx methods ***/
   7944 #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)
   7945 #else
   7946 /*** IUnknown methods ***/
   7947 static FORCEINLINE HRESULT IInternetSecurityManagerEx_QueryInterface(IInternetSecurityManagerEx* This,REFIID riid,void **ppvObject) {
   7948     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7949 }
   7950 static FORCEINLINE ULONG IInternetSecurityManagerEx_AddRef(IInternetSecurityManagerEx* This) {
   7951     return This->lpVtbl->AddRef(This);
   7952 }
   7953 static FORCEINLINE ULONG IInternetSecurityManagerEx_Release(IInternetSecurityManagerEx* This) {
   7954     return This->lpVtbl->Release(This);
   7955 }
   7956 /*** IInternetSecurityManager methods ***/
   7957 static FORCEINLINE HRESULT IInternetSecurityManagerEx_SetSecuritySite(IInternetSecurityManagerEx* This,IInternetSecurityMgrSite *pSite) {
   7958     return This->lpVtbl->SetSecuritySite(This,pSite);
   7959 }
   7960 static FORCEINLINE HRESULT IInternetSecurityManagerEx_GetSecuritySite(IInternetSecurityManagerEx* This,IInternetSecurityMgrSite **ppSite) {
   7961     return This->lpVtbl->GetSecuritySite(This,ppSite);
   7962 }
   7963 static FORCEINLINE HRESULT IInternetSecurityManagerEx_MapUrlToZone(IInternetSecurityManagerEx* This,LPCWSTR pwszUrl,DWORD *pdwZone,DWORD dwFlags) {
   7964     return This->lpVtbl->MapUrlToZone(This,pwszUrl,pdwZone,dwFlags);
   7965 }
   7966 static FORCEINLINE HRESULT IInternetSecurityManagerEx_GetSecurityId(IInternetSecurityManagerEx* This,LPCWSTR pwszUrl,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved) {
   7967     return This->lpVtbl->GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved);
   7968 }
   7969 static FORCEINLINE HRESULT IInternetSecurityManagerEx_ProcessUrlAction(IInternetSecurityManagerEx* This,LPCWSTR pwszUrl,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved) {
   7970     return This->lpVtbl->ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved);
   7971 }
   7972 static FORCEINLINE HRESULT IInternetSecurityManagerEx_QueryCustomPolicy(IInternetSecurityManagerEx* This,LPCWSTR pwszUrl,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwReserved) {
   7973     return This->lpVtbl->QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved);
   7974 }
   7975 static FORCEINLINE HRESULT IInternetSecurityManagerEx_SetZoneMapping(IInternetSecurityManagerEx* This,DWORD dwZone,LPCWSTR lpszPattern,DWORD dwFlags) {
   7976     return This->lpVtbl->SetZoneMapping(This,dwZone,lpszPattern,dwFlags);
   7977 }
   7978 static FORCEINLINE HRESULT IInternetSecurityManagerEx_GetZoneMappings(IInternetSecurityManagerEx* This,DWORD dwZone,IEnumString **ppenumString,DWORD dwFlags) {
   7979     return This->lpVtbl->GetZoneMappings(This,dwZone,ppenumString,dwFlags);
   7980 }
   7981 /*** IInternetSecurityManagerEx methods ***/
   7982 static FORCEINLINE HRESULT IInternetSecurityManagerEx_ProcessUrlActionEx(IInternetSecurityManagerEx* This,LPCWSTR pwszUrl,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved,DWORD *pdwOutFlags) {
   7983     return This->lpVtbl->ProcessUrlActionEx(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags);
   7984 }
   7985 #endif
   7986 #endif
   7987 
   7988 #endif
   7989 
   7990 HRESULT STDMETHODCALLTYPE IInternetSecurityManagerEx_ProcessUrlActionEx_Proxy(
   7991     IInternetSecurityManagerEx* This,
   7992     LPCWSTR pwszUrl,
   7993     DWORD dwAction,
   7994     BYTE *pPolicy,
   7995     DWORD cbPolicy,
   7996     BYTE *pContext,
   7997     DWORD cbContext,
   7998     DWORD dwFlags,
   7999     DWORD dwReserved,
   8000     DWORD *pdwOutFlags);
   8001 void __RPC_STUB IInternetSecurityManagerEx_ProcessUrlActionEx_Stub(
   8002     IRpcStubBuffer* This,
   8003     IRpcChannelBuffer* pRpcChannelBuffer,
   8004     PRPC_MESSAGE pRpcMessage,
   8005     DWORD* pdwStubPhase);
   8006 
   8007 #endif  /* __IInternetSecurityManagerEx_INTERFACE_DEFINED__ */
   8008 
   8009 #endif
   8010 #endif
   8011 
   8012 #if (_WIN32_IE >= _WIN32_IE_IE70)
   8013 #ifndef _LPINTERNETSECURITYMANANGEREx2_DEFINED
   8014 #define _LPINTERNETSECURITYMANANGEREx2_DEFINED
   8015 
   8016 /*****************************************************************************
   8017  * IInternetSecurityManagerEx2 interface
   8018  */
   8019 #ifndef __IInternetSecurityManagerEx2_INTERFACE_DEFINED__
   8020 #define __IInternetSecurityManagerEx2_INTERFACE_DEFINED__
   8021 
   8022 DEFINE_GUID(IID_IInternetSecurityManagerEx2, 0xf1e50292, 0xa795, 0x4117, 0x8e,0x09, 0x2b,0x56,0x0a,0x72,0xac,0x60);
   8023 #if defined(__cplusplus) && !defined(CINTERFACE)
   8024 MIDL_INTERFACE("f1e50292-a795-4117-8e09-2b560a72ac60")
   8025 IInternetSecurityManagerEx2 : public IInternetSecurityManagerEx
   8026 {
   8027     virtual HRESULT STDMETHODCALLTYPE MapUrlToZoneEx2(
   8028         IUri *pUri,
   8029         DWORD *pdwZone,
   8030         DWORD dwFlags,
   8031         LPWSTR *ppwszMappedUrl,
   8032         DWORD *pdwOutFlags) = 0;
   8033 
   8034     virtual HRESULT STDMETHODCALLTYPE ProcessUrlActionEx2(
   8035         IUri *pUri,
   8036         DWORD dwAction,
   8037         BYTE *pPolicy,
   8038         DWORD cbPolicy,
   8039         BYTE *pContext,
   8040         DWORD cbContext,
   8041         DWORD dwFlags,
   8042         DWORD_PTR dwReserved,
   8043         DWORD *pdwOutFlags) = 0;
   8044 
   8045     virtual HRESULT STDMETHODCALLTYPE GetSecurityIdEx2(
   8046         IUri *pUri,
   8047         BYTE *pbSecurityId,
   8048         DWORD *pcbSecurityId,
   8049         DWORD_PTR dwReserved) = 0;
   8050 
   8051     virtual HRESULT STDMETHODCALLTYPE QueryCustomPolicyEx2(
   8052         IUri *pUri,
   8053         REFGUID guidKey,
   8054         BYTE **ppPolicy,
   8055         DWORD *pcbPolicy,
   8056         BYTE *pContext,
   8057         DWORD cbContext,
   8058         DWORD_PTR dwReserved) = 0;
   8059 
   8060 };
   8061 #ifdef __CRT_UUID_DECL
   8062 __CRT_UUID_DECL(IInternetSecurityManagerEx2, 0xf1e50292, 0xa795, 0x4117, 0x8e,0x09, 0x2b,0x56,0x0a,0x72,0xac,0x60)
   8063 #endif
   8064 #else
   8065 typedef struct IInternetSecurityManagerEx2Vtbl {
   8066     BEGIN_INTERFACE
   8067 
   8068     /*** IUnknown methods ***/
   8069     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8070         IInternetSecurityManagerEx2* This,
   8071         REFIID riid,
   8072         void **ppvObject);
   8073 
   8074     ULONG (STDMETHODCALLTYPE *AddRef)(
   8075         IInternetSecurityManagerEx2* This);
   8076 
   8077     ULONG (STDMETHODCALLTYPE *Release)(
   8078         IInternetSecurityManagerEx2* This);
   8079 
   8080     /*** IInternetSecurityManager methods ***/
   8081     HRESULT (STDMETHODCALLTYPE *SetSecuritySite)(
   8082         IInternetSecurityManagerEx2* This,
   8083         IInternetSecurityMgrSite *pSite);
   8084 
   8085     HRESULT (STDMETHODCALLTYPE *GetSecuritySite)(
   8086         IInternetSecurityManagerEx2* This,
   8087         IInternetSecurityMgrSite **ppSite);
   8088 
   8089     HRESULT (STDMETHODCALLTYPE *MapUrlToZone)(
   8090         IInternetSecurityManagerEx2* This,
   8091         LPCWSTR pwszUrl,
   8092         DWORD *pdwZone,
   8093         DWORD dwFlags);
   8094 
   8095     HRESULT (STDMETHODCALLTYPE *GetSecurityId)(
   8096         IInternetSecurityManagerEx2* This,
   8097         LPCWSTR pwszUrl,
   8098         BYTE *pbSecurityId,
   8099         DWORD *pcbSecurityId,
   8100         DWORD_PTR dwReserved);
   8101 
   8102     HRESULT (STDMETHODCALLTYPE *ProcessUrlAction)(
   8103         IInternetSecurityManagerEx2* This,
   8104         LPCWSTR pwszUrl,
   8105         DWORD dwAction,
   8106         BYTE *pPolicy,
   8107         DWORD cbPolicy,
   8108         BYTE *pContext,
   8109         DWORD cbContext,
   8110         DWORD dwFlags,
   8111         DWORD dwReserved);
   8112 
   8113     HRESULT (STDMETHODCALLTYPE *QueryCustomPolicy)(
   8114         IInternetSecurityManagerEx2* This,
   8115         LPCWSTR pwszUrl,
   8116         REFGUID guidKey,
   8117         BYTE **ppPolicy,
   8118         DWORD *pcbPolicy,
   8119         BYTE *pContext,
   8120         DWORD cbContext,
   8121         DWORD dwReserved);
   8122 
   8123     HRESULT (STDMETHODCALLTYPE *SetZoneMapping)(
   8124         IInternetSecurityManagerEx2* This,
   8125         DWORD dwZone,
   8126         LPCWSTR lpszPattern,
   8127         DWORD dwFlags);
   8128 
   8129     HRESULT (STDMETHODCALLTYPE *GetZoneMappings)(
   8130         IInternetSecurityManagerEx2* This,
   8131         DWORD dwZone,
   8132         IEnumString **ppenumString,
   8133         DWORD dwFlags);
   8134 
   8135     /*** IInternetSecurityManagerEx methods ***/
   8136     HRESULT (STDMETHODCALLTYPE *ProcessUrlActionEx)(
   8137         IInternetSecurityManagerEx2* This,
   8138         LPCWSTR pwszUrl,
   8139         DWORD dwAction,
   8140         BYTE *pPolicy,
   8141         DWORD cbPolicy,
   8142         BYTE *pContext,
   8143         DWORD cbContext,
   8144         DWORD dwFlags,
   8145         DWORD dwReserved,
   8146         DWORD *pdwOutFlags);
   8147 
   8148     /*** IInternetSecurityManagerEx2 methods ***/
   8149     HRESULT (STDMETHODCALLTYPE *MapUrlToZoneEx2)(
   8150         IInternetSecurityManagerEx2* This,
   8151         IUri *pUri,
   8152         DWORD *pdwZone,
   8153         DWORD dwFlags,
   8154         LPWSTR *ppwszMappedUrl,
   8155         DWORD *pdwOutFlags);
   8156 
   8157     HRESULT (STDMETHODCALLTYPE *ProcessUrlActionEx2)(
   8158         IInternetSecurityManagerEx2* This,
   8159         IUri *pUri,
   8160         DWORD dwAction,
   8161         BYTE *pPolicy,
   8162         DWORD cbPolicy,
   8163         BYTE *pContext,
   8164         DWORD cbContext,
   8165         DWORD dwFlags,
   8166         DWORD_PTR dwReserved,
   8167         DWORD *pdwOutFlags);
   8168 
   8169     HRESULT (STDMETHODCALLTYPE *GetSecurityIdEx2)(
   8170         IInternetSecurityManagerEx2* This,
   8171         IUri *pUri,
   8172         BYTE *pbSecurityId,
   8173         DWORD *pcbSecurityId,
   8174         DWORD_PTR dwReserved);
   8175 
   8176     HRESULT (STDMETHODCALLTYPE *QueryCustomPolicyEx2)(
   8177         IInternetSecurityManagerEx2* This,
   8178         IUri *pUri,
   8179         REFGUID guidKey,
   8180         BYTE **ppPolicy,
   8181         DWORD *pcbPolicy,
   8182         BYTE *pContext,
   8183         DWORD cbContext,
   8184         DWORD_PTR dwReserved);
   8185 
   8186     END_INTERFACE
   8187 } IInternetSecurityManagerEx2Vtbl;
   8188 interface IInternetSecurityManagerEx2 {
   8189     CONST_VTBL IInternetSecurityManagerEx2Vtbl* lpVtbl;
   8190 };
   8191 
   8192 #ifdef COBJMACROS
   8193 #ifndef WIDL_C_INLINE_WRAPPERS
   8194 /*** IUnknown methods ***/
   8195 #define IInternetSecurityManagerEx2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8196 #define IInternetSecurityManagerEx2_AddRef(This) (This)->lpVtbl->AddRef(This)
   8197 #define IInternetSecurityManagerEx2_Release(This) (This)->lpVtbl->Release(This)
   8198 /*** IInternetSecurityManager methods ***/
   8199 #define IInternetSecurityManagerEx2_SetSecuritySite(This,pSite) (This)->lpVtbl->SetSecuritySite(This,pSite)
   8200 #define IInternetSecurityManagerEx2_GetSecuritySite(This,ppSite) (This)->lpVtbl->GetSecuritySite(This,ppSite)
   8201 #define IInternetSecurityManagerEx2_MapUrlToZone(This,pwszUrl,pdwZone,dwFlags) (This)->lpVtbl->MapUrlToZone(This,pwszUrl,pdwZone,dwFlags)
   8202 #define IInternetSecurityManagerEx2_GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved) (This)->lpVtbl->GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved)
   8203 #define IInternetSecurityManagerEx2_ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved) (This)->lpVtbl->ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved)
   8204 #define IInternetSecurityManagerEx2_QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) (This)->lpVtbl->QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved)
   8205 #define IInternetSecurityManagerEx2_SetZoneMapping(This,dwZone,lpszPattern,dwFlags) (This)->lpVtbl->SetZoneMapping(This,dwZone,lpszPattern,dwFlags)
   8206 #define IInternetSecurityManagerEx2_GetZoneMappings(This,dwZone,ppenumString,dwFlags) (This)->lpVtbl->GetZoneMappings(This,dwZone,ppenumString,dwFlags)
   8207 /*** IInternetSecurityManagerEx methods ***/
   8208 #define IInternetSecurityManagerEx2_ProcessUrlActionEx(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags) (This)->lpVtbl->ProcessUrlActionEx(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags)
   8209 /*** IInternetSecurityManagerEx2 methods ***/
   8210 #define IInternetSecurityManagerEx2_MapUrlToZoneEx2(This,pUri,pdwZone,dwFlags,ppwszMappedUrl,pdwOutFlags) (This)->lpVtbl->MapUrlToZoneEx2(This,pUri,pdwZone,dwFlags,ppwszMappedUrl,pdwOutFlags)
   8211 #define IInternetSecurityManagerEx2_ProcessUrlActionEx2(This,pUri,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags) (This)->lpVtbl->ProcessUrlActionEx2(This,pUri,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags)
   8212 #define IInternetSecurityManagerEx2_GetSecurityIdEx2(This,pUri,pbSecurityId,pcbSecurityId,dwReserved) (This)->lpVtbl->GetSecurityIdEx2(This,pUri,pbSecurityId,pcbSecurityId,dwReserved)
   8213 #define IInternetSecurityManagerEx2_QueryCustomPolicyEx2(This,pUri,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) (This)->lpVtbl->QueryCustomPolicyEx2(This,pUri,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved)
   8214 #else
   8215 /*** IUnknown methods ***/
   8216 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_QueryInterface(IInternetSecurityManagerEx2* This,REFIID riid,void **ppvObject) {
   8217     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8218 }
   8219 static FORCEINLINE ULONG IInternetSecurityManagerEx2_AddRef(IInternetSecurityManagerEx2* This) {
   8220     return This->lpVtbl->AddRef(This);
   8221 }
   8222 static FORCEINLINE ULONG IInternetSecurityManagerEx2_Release(IInternetSecurityManagerEx2* This) {
   8223     return This->lpVtbl->Release(This);
   8224 }
   8225 /*** IInternetSecurityManager methods ***/
   8226 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_SetSecuritySite(IInternetSecurityManagerEx2* This,IInternetSecurityMgrSite *pSite) {
   8227     return This->lpVtbl->SetSecuritySite(This,pSite);
   8228 }
   8229 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_GetSecuritySite(IInternetSecurityManagerEx2* This,IInternetSecurityMgrSite **ppSite) {
   8230     return This->lpVtbl->GetSecuritySite(This,ppSite);
   8231 }
   8232 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_MapUrlToZone(IInternetSecurityManagerEx2* This,LPCWSTR pwszUrl,DWORD *pdwZone,DWORD dwFlags) {
   8233     return This->lpVtbl->MapUrlToZone(This,pwszUrl,pdwZone,dwFlags);
   8234 }
   8235 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_GetSecurityId(IInternetSecurityManagerEx2* This,LPCWSTR pwszUrl,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved) {
   8236     return This->lpVtbl->GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved);
   8237 }
   8238 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_ProcessUrlAction(IInternetSecurityManagerEx2* This,LPCWSTR pwszUrl,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved) {
   8239     return This->lpVtbl->ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved);
   8240 }
   8241 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_QueryCustomPolicy(IInternetSecurityManagerEx2* This,LPCWSTR pwszUrl,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwReserved) {
   8242     return This->lpVtbl->QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved);
   8243 }
   8244 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_SetZoneMapping(IInternetSecurityManagerEx2* This,DWORD dwZone,LPCWSTR lpszPattern,DWORD dwFlags) {
   8245     return This->lpVtbl->SetZoneMapping(This,dwZone,lpszPattern,dwFlags);
   8246 }
   8247 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_GetZoneMappings(IInternetSecurityManagerEx2* This,DWORD dwZone,IEnumString **ppenumString,DWORD dwFlags) {
   8248     return This->lpVtbl->GetZoneMappings(This,dwZone,ppenumString,dwFlags);
   8249 }
   8250 /*** IInternetSecurityManagerEx methods ***/
   8251 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_ProcessUrlActionEx(IInternetSecurityManagerEx2* This,LPCWSTR pwszUrl,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved,DWORD *pdwOutFlags) {
   8252     return This->lpVtbl->ProcessUrlActionEx(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags);
   8253 }
   8254 /*** IInternetSecurityManagerEx2 methods ***/
   8255 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_MapUrlToZoneEx2(IInternetSecurityManagerEx2* This,IUri *pUri,DWORD *pdwZone,DWORD dwFlags,LPWSTR *ppwszMappedUrl,DWORD *pdwOutFlags) {
   8256     return This->lpVtbl->MapUrlToZoneEx2(This,pUri,pdwZone,dwFlags,ppwszMappedUrl,pdwOutFlags);
   8257 }
   8258 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_ProcessUrlActionEx2(IInternetSecurityManagerEx2* This,IUri *pUri,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD_PTR dwReserved,DWORD *pdwOutFlags) {
   8259     return This->lpVtbl->ProcessUrlActionEx2(This,pUri,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved,pdwOutFlags);
   8260 }
   8261 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_GetSecurityIdEx2(IInternetSecurityManagerEx2* This,IUri *pUri,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved) {
   8262     return This->lpVtbl->GetSecurityIdEx2(This,pUri,pbSecurityId,pcbSecurityId,dwReserved);
   8263 }
   8264 static FORCEINLINE HRESULT IInternetSecurityManagerEx2_QueryCustomPolicyEx2(IInternetSecurityManagerEx2* This,IUri *pUri,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,BYTE *pContext,DWORD cbContext,DWORD_PTR dwReserved) {
   8265     return This->lpVtbl->QueryCustomPolicyEx2(This,pUri,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved);
   8266 }
   8267 #endif
   8268 #endif
   8269 
   8270 #endif
   8271 
   8272 HRESULT STDMETHODCALLTYPE IInternetSecurityManagerEx2_MapUrlToZoneEx2_Proxy(
   8273     IInternetSecurityManagerEx2* This,
   8274     IUri *pUri,
   8275     DWORD *pdwZone,
   8276     DWORD dwFlags,
   8277     LPWSTR *ppwszMappedUrl,
   8278     DWORD *pdwOutFlags);
   8279 void __RPC_STUB IInternetSecurityManagerEx2_MapUrlToZoneEx2_Stub(
   8280     IRpcStubBuffer* This,
   8281     IRpcChannelBuffer* pRpcChannelBuffer,
   8282     PRPC_MESSAGE pRpcMessage,
   8283     DWORD* pdwStubPhase);
   8284 HRESULT STDMETHODCALLTYPE IInternetSecurityManagerEx2_ProcessUrlActionEx2_Proxy(
   8285     IInternetSecurityManagerEx2* This,
   8286     IUri *pUri,
   8287     DWORD dwAction,
   8288     BYTE *pPolicy,
   8289     DWORD cbPolicy,
   8290     BYTE *pContext,
   8291     DWORD cbContext,
   8292     DWORD dwFlags,
   8293     DWORD_PTR dwReserved,
   8294     DWORD *pdwOutFlags);
   8295 void __RPC_STUB IInternetSecurityManagerEx2_ProcessUrlActionEx2_Stub(
   8296     IRpcStubBuffer* This,
   8297     IRpcChannelBuffer* pRpcChannelBuffer,
   8298     PRPC_MESSAGE pRpcMessage,
   8299     DWORD* pdwStubPhase);
   8300 HRESULT STDMETHODCALLTYPE IInternetSecurityManagerEx2_GetSecurityIdEx2_Proxy(
   8301     IInternetSecurityManagerEx2* This,
   8302     IUri *pUri,
   8303     BYTE *pbSecurityId,
   8304     DWORD *pcbSecurityId,
   8305     DWORD_PTR dwReserved);
   8306 void __RPC_STUB IInternetSecurityManagerEx2_GetSecurityIdEx2_Stub(
   8307     IRpcStubBuffer* This,
   8308     IRpcChannelBuffer* pRpcChannelBuffer,
   8309     PRPC_MESSAGE pRpcMessage,
   8310     DWORD* pdwStubPhase);
   8311 HRESULT STDMETHODCALLTYPE IInternetSecurityManagerEx2_QueryCustomPolicyEx2_Proxy(
   8312     IInternetSecurityManagerEx2* This,
   8313     IUri *pUri,
   8314     REFGUID guidKey,
   8315     BYTE **ppPolicy,
   8316     DWORD *pcbPolicy,
   8317     BYTE *pContext,
   8318     DWORD cbContext,
   8319     DWORD_PTR dwReserved);
   8320 void __RPC_STUB IInternetSecurityManagerEx2_QueryCustomPolicyEx2_Stub(
   8321     IRpcStubBuffer* This,
   8322     IRpcChannelBuffer* pRpcChannelBuffer,
   8323     PRPC_MESSAGE pRpcMessage,
   8324     DWORD* pdwStubPhase);
   8325 
   8326 #endif  /* __IInternetSecurityManagerEx2_INTERFACE_DEFINED__ */
   8327 
   8328 #endif
   8329 #endif
   8330 
   8331 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
   8332 /*****************************************************************************
   8333  * IZoneIdentifier interface
   8334  */
   8335 #ifndef __IZoneIdentifier_INTERFACE_DEFINED__
   8336 #define __IZoneIdentifier_INTERFACE_DEFINED__
   8337 
   8338 DEFINE_GUID(IID_IZoneIdentifier, 0xcd45f185, 0x1b21, 0x48e2, 0x96,0x7b, 0xea,0xd7,0x43,0xa8,0x91,0x4e);
   8339 #if defined(__cplusplus) && !defined(CINTERFACE)
   8340 MIDL_INTERFACE("cd45f185-1b21-48e2-967b-ead743a8914e")
   8341 IZoneIdentifier : public IUnknown
   8342 {
   8343     virtual HRESULT STDMETHODCALLTYPE GetId(
   8344         DWORD *pdwZone) = 0;
   8345 
   8346     virtual HRESULT STDMETHODCALLTYPE SetId(
   8347         DWORD dwZone) = 0;
   8348 
   8349     virtual HRESULT STDMETHODCALLTYPE Remove(
   8350         ) = 0;
   8351 
   8352 };
   8353 #ifdef __CRT_UUID_DECL
   8354 __CRT_UUID_DECL(IZoneIdentifier, 0xcd45f185, 0x1b21, 0x48e2, 0x96,0x7b, 0xea,0xd7,0x43,0xa8,0x91,0x4e)
   8355 #endif
   8356 #else
   8357 typedef struct IZoneIdentifierVtbl {
   8358     BEGIN_INTERFACE
   8359 
   8360     /*** IUnknown methods ***/
   8361     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8362         IZoneIdentifier* This,
   8363         REFIID riid,
   8364         void **ppvObject);
   8365 
   8366     ULONG (STDMETHODCALLTYPE *AddRef)(
   8367         IZoneIdentifier* This);
   8368 
   8369     ULONG (STDMETHODCALLTYPE *Release)(
   8370         IZoneIdentifier* This);
   8371 
   8372     /*** IZoneIdentifier methods ***/
   8373     HRESULT (STDMETHODCALLTYPE *GetId)(
   8374         IZoneIdentifier* This,
   8375         DWORD *pdwZone);
   8376 
   8377     HRESULT (STDMETHODCALLTYPE *SetId)(
   8378         IZoneIdentifier* This,
   8379         DWORD dwZone);
   8380 
   8381     HRESULT (STDMETHODCALLTYPE *Remove)(
   8382         IZoneIdentifier* This);
   8383 
   8384     END_INTERFACE
   8385 } IZoneIdentifierVtbl;
   8386 interface IZoneIdentifier {
   8387     CONST_VTBL IZoneIdentifierVtbl* lpVtbl;
   8388 };
   8389 
   8390 #ifdef COBJMACROS
   8391 #ifndef WIDL_C_INLINE_WRAPPERS
   8392 /*** IUnknown methods ***/
   8393 #define IZoneIdentifier_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8394 #define IZoneIdentifier_AddRef(This) (This)->lpVtbl->AddRef(This)
   8395 #define IZoneIdentifier_Release(This) (This)->lpVtbl->Release(This)
   8396 /*** IZoneIdentifier methods ***/
   8397 #define IZoneIdentifier_GetId(This,pdwZone) (This)->lpVtbl->GetId(This,pdwZone)
   8398 #define IZoneIdentifier_SetId(This,dwZone) (This)->lpVtbl->SetId(This,dwZone)
   8399 #define IZoneIdentifier_Remove(This) (This)->lpVtbl->Remove(This)
   8400 #else
   8401 /*** IUnknown methods ***/
   8402 static FORCEINLINE HRESULT IZoneIdentifier_QueryInterface(IZoneIdentifier* This,REFIID riid,void **ppvObject) {
   8403     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8404 }
   8405 static FORCEINLINE ULONG IZoneIdentifier_AddRef(IZoneIdentifier* This) {
   8406     return This->lpVtbl->AddRef(This);
   8407 }
   8408 static FORCEINLINE ULONG IZoneIdentifier_Release(IZoneIdentifier* This) {
   8409     return This->lpVtbl->Release(This);
   8410 }
   8411 /*** IZoneIdentifier methods ***/
   8412 static FORCEINLINE HRESULT IZoneIdentifier_GetId(IZoneIdentifier* This,DWORD *pdwZone) {
   8413     return This->lpVtbl->GetId(This,pdwZone);
   8414 }
   8415 static FORCEINLINE HRESULT IZoneIdentifier_SetId(IZoneIdentifier* This,DWORD dwZone) {
   8416     return This->lpVtbl->SetId(This,dwZone);
   8417 }
   8418 static FORCEINLINE HRESULT IZoneIdentifier_Remove(IZoneIdentifier* This) {
   8419     return This->lpVtbl->Remove(This);
   8420 }
   8421 #endif
   8422 #endif
   8423 
   8424 #endif
   8425 
   8426 HRESULT STDMETHODCALLTYPE IZoneIdentifier_GetId_Proxy(
   8427     IZoneIdentifier* This,
   8428     DWORD *pdwZone);
   8429 void __RPC_STUB IZoneIdentifier_GetId_Stub(
   8430     IRpcStubBuffer* This,
   8431     IRpcChannelBuffer* pRpcChannelBuffer,
   8432     PRPC_MESSAGE pRpcMessage,
   8433     DWORD* pdwStubPhase);
   8434 HRESULT STDMETHODCALLTYPE IZoneIdentifier_SetId_Proxy(
   8435     IZoneIdentifier* This,
   8436     DWORD dwZone);
   8437 void __RPC_STUB IZoneIdentifier_SetId_Stub(
   8438     IRpcStubBuffer* This,
   8439     IRpcChannelBuffer* pRpcChannelBuffer,
   8440     PRPC_MESSAGE pRpcMessage,
   8441     DWORD* pdwStubPhase);
   8442 HRESULT STDMETHODCALLTYPE IZoneIdentifier_Remove_Proxy(
   8443     IZoneIdentifier* This);
   8444 void __RPC_STUB IZoneIdentifier_Remove_Stub(
   8445     IRpcStubBuffer* This,
   8446     IRpcChannelBuffer* pRpcChannelBuffer,
   8447     PRPC_MESSAGE pRpcMessage,
   8448     DWORD* pdwStubPhase);
   8449 
   8450 #endif  /* __IZoneIdentifier_INTERFACE_DEFINED__ */
   8451 
   8452 #endif
   8453 
   8454 #ifndef _LPINTERNETHOSTSECURITYMANANGER_DEFINED
   8455 #define _LPINTERNETHOSTSECURITYMANANGER_DEFINED
   8456 
   8457 /*****************************************************************************
   8458  * IInternetHostSecurityManager interface
   8459  */
   8460 #ifndef __IInternetHostSecurityManager_INTERFACE_DEFINED__
   8461 #define __IInternetHostSecurityManager_INTERFACE_DEFINED__
   8462 
   8463 DEFINE_GUID(IID_IInternetHostSecurityManager, 0x3af280b6, 0xcb3f, 0x11d0, 0x89,0x1e, 0x00,0xc0,0x4f,0xb6,0xbf,0xc4);
   8464 #if defined(__cplusplus) && !defined(CINTERFACE)
   8465 MIDL_INTERFACE("3af280b6-cb3f-11d0-891e-00c04fb6bfc4")
   8466 IInternetHostSecurityManager : public IUnknown
   8467 {
   8468     virtual HRESULT STDMETHODCALLTYPE GetSecurityId(
   8469         BYTE *pbSecurityId,
   8470         DWORD *pcbSecurityId,
   8471         DWORD_PTR dwReserved) = 0;
   8472 
   8473     virtual HRESULT STDMETHODCALLTYPE ProcessUrlAction(
   8474         DWORD dwAction,
   8475         BYTE *pPolicy,
   8476         DWORD cbPolicy,
   8477         BYTE *pContext,
   8478         DWORD cbContext,
   8479         DWORD dwFlags,
   8480         DWORD dwReserved) = 0;
   8481 
   8482     virtual HRESULT STDMETHODCALLTYPE QueryCustomPolicy(
   8483         REFGUID guidKey,
   8484         BYTE **ppPolicy,
   8485         DWORD *pcbPolicy,
   8486         BYTE *pContext,
   8487         DWORD cbContext,
   8488         DWORD dwReserved) = 0;
   8489 
   8490 };
   8491 #ifdef __CRT_UUID_DECL
   8492 __CRT_UUID_DECL(IInternetHostSecurityManager, 0x3af280b6, 0xcb3f, 0x11d0, 0x89,0x1e, 0x00,0xc0,0x4f,0xb6,0xbf,0xc4)
   8493 #endif
   8494 #else
   8495 typedef struct IInternetHostSecurityManagerVtbl {
   8496     BEGIN_INTERFACE
   8497 
   8498     /*** IUnknown methods ***/
   8499     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8500         IInternetHostSecurityManager* This,
   8501         REFIID riid,
   8502         void **ppvObject);
   8503 
   8504     ULONG (STDMETHODCALLTYPE *AddRef)(
   8505         IInternetHostSecurityManager* This);
   8506 
   8507     ULONG (STDMETHODCALLTYPE *Release)(
   8508         IInternetHostSecurityManager* This);
   8509 
   8510     /*** IInternetHostSecurityManager methods ***/
   8511     HRESULT (STDMETHODCALLTYPE *GetSecurityId)(
   8512         IInternetHostSecurityManager* This,
   8513         BYTE *pbSecurityId,
   8514         DWORD *pcbSecurityId,
   8515         DWORD_PTR dwReserved);
   8516 
   8517     HRESULT (STDMETHODCALLTYPE *ProcessUrlAction)(
   8518         IInternetHostSecurityManager* This,
   8519         DWORD dwAction,
   8520         BYTE *pPolicy,
   8521         DWORD cbPolicy,
   8522         BYTE *pContext,
   8523         DWORD cbContext,
   8524         DWORD dwFlags,
   8525         DWORD dwReserved);
   8526 
   8527     HRESULT (STDMETHODCALLTYPE *QueryCustomPolicy)(
   8528         IInternetHostSecurityManager* This,
   8529         REFGUID guidKey,
   8530         BYTE **ppPolicy,
   8531         DWORD *pcbPolicy,
   8532         BYTE *pContext,
   8533         DWORD cbContext,
   8534         DWORD dwReserved);
   8535 
   8536     END_INTERFACE
   8537 } IInternetHostSecurityManagerVtbl;
   8538 interface IInternetHostSecurityManager {
   8539     CONST_VTBL IInternetHostSecurityManagerVtbl* lpVtbl;
   8540 };
   8541 
   8542 #ifdef COBJMACROS
   8543 #ifndef WIDL_C_INLINE_WRAPPERS
   8544 /*** IUnknown methods ***/
   8545 #define IInternetHostSecurityManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8546 #define IInternetHostSecurityManager_AddRef(This) (This)->lpVtbl->AddRef(This)
   8547 #define IInternetHostSecurityManager_Release(This) (This)->lpVtbl->Release(This)
   8548 /*** IInternetHostSecurityManager methods ***/
   8549 #define IInternetHostSecurityManager_GetSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved) (This)->lpVtbl->GetSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved)
   8550 #define IInternetHostSecurityManager_ProcessUrlAction(This,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved) (This)->lpVtbl->ProcessUrlAction(This,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved)
   8551 #define IInternetHostSecurityManager_QueryCustomPolicy(This,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved) (This)->lpVtbl->QueryCustomPolicy(This,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved)
   8552 #else
   8553 /*** IUnknown methods ***/
   8554 static FORCEINLINE HRESULT IInternetHostSecurityManager_QueryInterface(IInternetHostSecurityManager* This,REFIID riid,void **ppvObject) {
   8555     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8556 }
   8557 static FORCEINLINE ULONG IInternetHostSecurityManager_AddRef(IInternetHostSecurityManager* This) {
   8558     return This->lpVtbl->AddRef(This);
   8559 }
   8560 static FORCEINLINE ULONG IInternetHostSecurityManager_Release(IInternetHostSecurityManager* This) {
   8561     return This->lpVtbl->Release(This);
   8562 }
   8563 /*** IInternetHostSecurityManager methods ***/
   8564 static FORCEINLINE HRESULT IInternetHostSecurityManager_GetSecurityId(IInternetHostSecurityManager* This,BYTE *pbSecurityId,DWORD *pcbSecurityId,DWORD_PTR dwReserved) {
   8565     return This->lpVtbl->GetSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved);
   8566 }
   8567 static FORCEINLINE HRESULT IInternetHostSecurityManager_ProcessUrlAction(IInternetHostSecurityManager* This,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwFlags,DWORD dwReserved) {
   8568     return This->lpVtbl->ProcessUrlAction(This,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved);
   8569 }
   8570 static FORCEINLINE HRESULT IInternetHostSecurityManager_QueryCustomPolicy(IInternetHostSecurityManager* This,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,BYTE *pContext,DWORD cbContext,DWORD dwReserved) {
   8571     return This->lpVtbl->QueryCustomPolicy(This,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved);
   8572 }
   8573 #endif
   8574 #endif
   8575 
   8576 #endif
   8577 
   8578 HRESULT STDMETHODCALLTYPE IInternetHostSecurityManager_GetSecurityId_Proxy(
   8579     IInternetHostSecurityManager* This,
   8580     BYTE *pbSecurityId,
   8581     DWORD *pcbSecurityId,
   8582     DWORD_PTR dwReserved);
   8583 void __RPC_STUB IInternetHostSecurityManager_GetSecurityId_Stub(
   8584     IRpcStubBuffer* This,
   8585     IRpcChannelBuffer* pRpcChannelBuffer,
   8586     PRPC_MESSAGE pRpcMessage,
   8587     DWORD* pdwStubPhase);
   8588 HRESULT STDMETHODCALLTYPE IInternetHostSecurityManager_ProcessUrlAction_Proxy(
   8589     IInternetHostSecurityManager* This,
   8590     DWORD dwAction,
   8591     BYTE *pPolicy,
   8592     DWORD cbPolicy,
   8593     BYTE *pContext,
   8594     DWORD cbContext,
   8595     DWORD dwFlags,
   8596     DWORD dwReserved);
   8597 void __RPC_STUB IInternetHostSecurityManager_ProcessUrlAction_Stub(
   8598     IRpcStubBuffer* This,
   8599     IRpcChannelBuffer* pRpcChannelBuffer,
   8600     PRPC_MESSAGE pRpcMessage,
   8601     DWORD* pdwStubPhase);
   8602 HRESULT STDMETHODCALLTYPE IInternetHostSecurityManager_QueryCustomPolicy_Proxy(
   8603     IInternetHostSecurityManager* This,
   8604     REFGUID guidKey,
   8605     BYTE **ppPolicy,
   8606     DWORD *pcbPolicy,
   8607     BYTE *pContext,
   8608     DWORD cbContext,
   8609     DWORD dwReserved);
   8610 void __RPC_STUB IInternetHostSecurityManager_QueryCustomPolicy_Stub(
   8611     IRpcStubBuffer* This,
   8612     IRpcChannelBuffer* pRpcChannelBuffer,
   8613     PRPC_MESSAGE pRpcMessage,
   8614     DWORD* pdwStubPhase);
   8615 
   8616 #endif  /* __IInternetHostSecurityManager_INTERFACE_DEFINED__ */
   8617 
   8618 #endif
   8619 
   8620 #define URLACTION_MIN 0x1000
   8621 
   8622 #define URLACTION_DOWNLOAD_MIN 0x1000
   8623 #define URLACTION_DOWNLOAD_SIGNED_ACTIVEX 0x1001
   8624 #define URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX 0x1004
   8625 #define URLACTION_DOWNLOAD_CURR_MAX 0x1004
   8626 #define URLACTION_DOWNLOAD_MAX 0x11FF
   8627 
   8628 #define URLACTION_ACTIVEX_MIN 0x1200
   8629 #define URLACTION_ACTIVEX_RUN 0x1200
   8630 #define URLPOLICY_ACTIVEX_CHECK_LIST 0x10000
   8631 #define URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY 0x1201
   8632 #define URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY 0x1202
   8633 #define URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY 0x1203
   8634 #define URLACTION_SCRIPT_OVERRIDE_SAFETY 0x1401
   8635 #define URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY 0x1204
   8636 #define URLACTION_ACTIVEX_TREATASUNTRUSTED 0x1205
   8637 #define URLACTION_ACTIVEX_NO_WEBOC_SCRIPT 0x1206
   8638 #define URLACTION_ACTIVEX_OVERRIDE_REPURPOSEDETECTION 0x1207
   8639 #define URLACTION_ACTIVEX_OVERRIDE_OPTIN 0x1208
   8640 #define URLACTION_ACTIVEX_SCRIPTLET_RUN 0x1209
   8641 #define URLACTION_ACTIVEX_DYNSRC_VIDEO_AND_ANIMATION 0x120A
   8642 #define URLACTION_ACTIVEX_OVERRIDE_DOMAINLIST 0x120B
   8643 #define URLACTION_ACTIVEX_CURR_MAX 0x120B
   8644 #define URLACTION_ACTIVEX_MAX 0x13ff
   8645 
   8646 #define URLACTION_SCRIPT_MIN 0x1400
   8647 #define URLACTION_SCRIPT_RUN 0x1400
   8648 #define URLACTION_SCRIPT_JAVA_USE 0x1402
   8649 #define URLACTION_SCRIPT_SAFE_ACTIVEX 0x1405
   8650 #define URLACTION_CROSS_DOMAIN_DATA 0x1406
   8651 #define URLACTION_SCRIPT_PASTE 0x1407
   8652 #define URLACTION_ALLOW_XDOMAIN_SUBFRAME_RESIZE 0x1408
   8653 #define URLACTION_SCRIPT_XSSFILTER 0x1409
   8654 #define URLACTION_SCRIPT_NAVIGATE 0x140A
   8655 #define URLACTION_PLUGGABLE_PROTOCOL_XHR 0x140B
   8656 #define URLACTION_SCRIPT_CURR_MAX 0x140B
   8657 #define URLACTION_SCRIPT_MAX 0x15ff
   8658 
   8659 #define URLACTION_HTML_MIN 0x1600
   8660 #define URLACTION_HTML_SUBMIT_FORMS 0x1601
   8661 #define URLACTION_HTML_SUBMIT_FORMS_FROM 0x1602
   8662 #define URLACTION_HTML_SUBMIT_FORMS_TO 0x1603
   8663 #define URLACTION_HTML_FONT_DOWNLOAD 0x1604
   8664 #define URLACTION_HTML_JAVA_RUN 0x1605
   8665 #define URLACTION_HTML_USERDATA_SAVE 0x1606
   8666 #define URLACTION_HTML_SUBFRAME_NAVIGATE 0x1607
   8667 #define URLACTION_HTML_META_REFRESH 0x1608
   8668 #define URLACTION_HTML_MIXED_CONTENT 0x1609
   8669 #define URLACTION_HTML_INCLUDE_FILE_PATH 0x160A
   8670 #define URLACTION_HTML_ALLOW_INJECTED_DYNAMIC_HTML 0x160B
   8671 #define URLACTION_HTML_REQUIRE_UTF8_DOCUMENT_CODEPAGE 0x160C
   8672 #define URLACTION_HTML_ALLOW_CROSS_DOMAIN_CANVAS 0x160D
   8673 #define URLACTION_HTML_ALLOW_WINDOW_CLOSE 0x160E
   8674 #define URLACTION_HTML_ALLOW_CROSS_DOMAIN_WEBWORKER 0x160F
   8675 #define URLACTION_HTML_ALLOW_CROSS_DOMAIN_TEXTTRACK 0x1610
   8676 #define URLACTION_HTML_ALLOW_INDEXEDDB 0x1611
   8677 
   8678 #define URLACTION_HTML_MAX 0x17ff
   8679 
   8680 #define URLACTION_SHELL_MIN 0x1800
   8681 #define URLACTION_SHELL_INSTALL_DTITEMS 0x1800
   8682 #define URLACTION_SHELL_MOVE_OR_COPY 0x1802
   8683 #define URLACTION_SHELL_FILE_DOWNLOAD 0x1803
   8684 #define URLACTION_SHELL_VERB 0x1804
   8685 #define URLACTION_SHELL_WEBVIEW_VERB 0x1805
   8686 #define URLACTION_SHELL_SHELLEXECUTE 0x1806
   8687 
   8688 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
   8689 #define URLACTION_SHELL_EXECUTE_HIGHRISK 0x1806
   8690 #define URLACTION_SHELL_EXECUTE_MODRISK 0x1807
   8691 #define URLACTION_SHELL_EXECUTE_LOWRISK 0x1808
   8692 #define URLACTION_SHELL_POPUPMGR 0x1809
   8693 #define URLACTION_SHELL_RTF_OBJECTS_LOAD 0x180A
   8694 #define URLACTION_SHELL_ENHANCED_DRAGDROP_SECURITY 0x180B
   8695 #define URLACTION_SHELL_EXTENSIONSECURITY 0x180C
   8696 #define URLACTION_SHELL_SECURE_DRAGSOURCE 0x180D
   8697 #endif
   8698 #if (_WIN32_IE >= _WIN32_IE_WIN7)
   8699 #define URLACTION_SHELL_REMOTEQUERY 0x180E
   8700 #define URLACTION_SHELL_PREVIEW 0x180F
   8701 #define URLACTION_SHELL_SHARE 0x1810
   8702 #define URLACTION_SHELL_ALLOW_CROSS_SITE_SHARE 0x1811
   8703 #endif
   8704 #define URLACTION_SHELL_CURR_MAX 0x1811
   8705 #define URLACTION_SHELL_MAX 0x19ff
   8706 
   8707 #define URLACTION_NETWORK_MIN 0x1A00
   8708 
   8709 #define URLACTION_CREDENTIALS_USE 0x1A00
   8710 #define URLPOLICY_CREDENTIALS_SILENT_LOGON_OK 0x0
   8711 #define URLPOLICY_CREDENTIALS_MUST_PROMPT_USER 0x10000
   8712 #define URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT 0x20000
   8713 #define URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY 0x30000
   8714 
   8715 #define URLACTION_AUTHENTICATE_CLIENT 0x1A01
   8716 #define URLPOLICY_AUTHENTICATE_CLEARTEXT_OK 0x0
   8717 #define URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE 0x10000
   8718 #define URLPOLICY_AUTHENTICATE_MUTUAL_ONLY 0x30000
   8719 
   8720 #define URLACTION_COOKIES 0x1A02
   8721 #define URLACTION_COOKIES_SESSION 0x1A03
   8722 
   8723 #define URLACTION_CLIENT_CERT_PROMPT 0x1A04
   8724 
   8725 #define URLACTION_COOKIES_THIRD_PARTY 0x1A05
   8726 #define URLACTION_COOKIES_SESSION_THIRD_PARTY 0x1A06
   8727 
   8728 #define URLACTION_COOKIES_ENABLED 0x1A10
   8729 
   8730 #define URLACTION_NETWORK_CURR_MAX 0x1A10
   8731 #define URLACTION_NETWORK_MAX 0x1Bff
   8732 
   8733 #define URLACTION_JAVA_MIN 0x1C00
   8734 #define URLACTION_JAVA_PERMISSIONS 0x1C00
   8735 #define URLPOLICY_JAVA_PROHIBIT 0x0
   8736 #define URLPOLICY_JAVA_HIGH 0x10000
   8737 #define URLPOLICY_JAVA_MEDIUM 0x20000
   8738 #define URLPOLICY_JAVA_LOW 0x30000
   8739 #define URLPOLICY_JAVA_CUSTOM 0x800000
   8740 #define URLACTION_JAVA_CURR_MAX 0x1C00
   8741 #define URLACTION_JAVA_MAX 0x1Cff
   8742 
   8743 #define URLACTION_INFODELIVERY_MIN 0x1D00
   8744 #define URLACTION_INFODELIVERY_NO_ADDING_CHANNELS 0x1D00
   8745 #define URLACTION_INFODELIVERY_NO_EDITING_CHANNELS 0x1D01
   8746 #define URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS 0x1D02
   8747 #define URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS 0x1D03
   8748 #define URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS 0x1D04
   8749 #define URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS 0x1D05
   8750 #define URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING 0x1D06
   8751 #define URLACTION_INFODELIVERY_CURR_MAX 0x1D06
   8752 #define URLACTION_INFODELIVERY_MAX 0x1Dff
   8753 #define URLACTION_CHANNEL_SOFTDIST_MIN 0x1E00
   8754 #define URLACTION_CHANNEL_SOFTDIST_PERMISSIONS 0x1E05
   8755 #define URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT 0x10000
   8756 #define URLPOLICY_CHANNEL_SOFTDIST_PRECACHE 0x20000
   8757 #define URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL 0x30000
   8758 #define URLACTION_CHANNEL_SOFTDIST_MAX 0x1Eff
   8759 #if (_WIN32_IE >= _WIN32_IE_IE80)
   8760 #define URLACTION_DOTNET_USERCONTROLS 0x2005
   8761 #endif
   8762 
   8763 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
   8764 #define URLACTION_BEHAVIOR_MIN 0x2000
   8765 #define URLACTION_BEHAVIOR_RUN 0x2000
   8766 #define URLPOLICY_BEHAVIOR_CHECK_LIST 0x10000
   8767 
   8768 #define URLACTION_FEATURE_MIN 0x2100
   8769 #define URLACTION_FEATURE_MIME_SNIFFING 0x2100
   8770 #define URLACTION_FEATURE_ZONE_ELEVATION 0x2101
   8771 #define URLACTION_FEATURE_WINDOW_RESTRICTIONS 0x2102
   8772 #define URLACTION_FEATURE_SCRIPT_STATUS_BAR 0x2103
   8773 #define URLACTION_FEATURE_FORCE_ADDR_AND_STATUS 0x2104
   8774 #define URLACTION_FEATURE_BLOCK_INPUT_PROMPTS 0x2105
   8775 #define URLACTION_FEATURE_DATA_BINDING 0x2106
   8776 #define URLACTION_FEATURE_CROSSDOMAIN_FOCUS_CHANGE 0x2107
   8777 
   8778 #define URLACTION_AUTOMATIC_DOWNLOAD_UI_MIN 0x2200
   8779 #define URLACTION_AUTOMATIC_DOWNLOAD_UI 0x2200
   8780 #define URLACTION_AUTOMATIC_ACTIVEX_UI 0x2201
   8781 
   8782 #define URLACTION_ALLOW_RESTRICTEDPROTOCOLS 0x2300
   8783 #endif
   8784 #if (_WIN32_IE >= _WIN32_IE_IE70)
   8785 #define URLACTION_ALLOW_APEVALUATION 0x2301
   8786 #define URLACTION_ALLOW_XHR_EVALUATION 0x2302
   8787 #define URLACTION_WINDOWS_BROWSER_APPLICATIONS 0x2400
   8788 #define URLACTION_XPS_DOCUMENTS 0x2401
   8789 #define URLACTION_LOOSE_XAML 0x2402
   8790 #define URLACTION_LOWRIGHTS 0x2500
   8791 #define URLACTION_WINFX_SETUP 0x2600
   8792 #define URLACTION_INPRIVATE_BLOCKING 0x2700
   8793 #endif
   8794 #define URLACTION_ALLOW_AUDIO_VIDEO 0x2701
   8795 #define URLACTION_ALLOW_ACTIVEX_FILTERING 0x2702
   8796 #define URLACTION_ALLOW_STRUCTURED_STORAGE_SNIFFING 0x2703
   8797 #define URLACTION_ALLOW_AUDIO_VIDEO_PLUGINS 0x2704
   8798 #define URLACTION_ALLOW_ZONE_ELEVATION_VIA_OPT_OUT 0x2705
   8799 #define URLACTION_ALLOW_ZONE_ELEVATION_OPT_OUT_ADDITION 0x2706
   8800 #define URLACTION_ALLOW_CROSSDOMAIN_DROP_WITHIN_WINDOW 0x2708
   8801 #define URLACTION_ALLOW_CROSSDOMAIN_DROP_ACROSS_WINDOWS 0x2709
   8802 #define URLACTION_ALLOW_CROSSDOMAIN_APPCACHE_MANIFEST 0x270A
   8803 #define URLACTION_ALLOW_RENDER_LEGACY_DXTFILTERS 0x270B
   8804 
   8805 #define URLPOLICY_ALLOW 0x0
   8806 #define URLPOLICY_QUERY 0x1
   8807 #define URLPOLICY_DISALLOW 0x3
   8808 #define URLPOLICY_NOTIFY_ON_ALLOW 0x10
   8809 #define URLPOLICY_NOTIFY_ON_DISALLOW 0x20
   8810 #define URLPOLICY_LOG_ON_ALLOW 0x40
   8811 #define URLPOLICY_LOG_ON_DISALLOW 0x80
   8812 
   8813 #define URLPOLICY_MASK_PERMISSIONS 0x0f
   8814 #define GetUrlPolicyPermissions(dw) (dw & URLPOLICY_MASK_PERMISSIONS)
   8815 #define SetUrlPolicyPermissions(dw,dw2) ((dw) = ((dw) & ~(URLPOLICY_MASK_PERMISSIONS)) | (dw2))
   8816 
   8817 #define URLPOLICY_DONTCHECKDLGBOX 0x100
   8818 
   8819 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
   8820 EXTERN_C const GUID GUID_CUSTOM_LOCALMACHINEZONEUNLOCKED;
   8821 #endif
   8822 
   8823 #ifndef _LPINTERNETZONEMANAGER_DEFINED
   8824 #define _LPINTERNETZONEMANAGER_DEFINED
   8825 
   8826 /*****************************************************************************
   8827  * IInternetZoneManager interface
   8828  */
   8829 #ifndef __IInternetZoneManager_INTERFACE_DEFINED__
   8830 #define __IInternetZoneManager_INTERFACE_DEFINED__
   8831 
   8832 typedef IInternetZoneManager *LPURLZONEMANAGER;
   8833 
   8834 typedef enum tagURLZONE {
   8835     URLZONE_INVALID = -1,
   8836     URLZONE_PREDEFINED_MIN = 0,
   8837     URLZONE_LOCAL_MACHINE = 0,
   8838     URLZONE_INTRANET = 1,
   8839     URLZONE_TRUSTED = 2,
   8840     URLZONE_INTERNET = 3,
   8841     URLZONE_UNTRUSTED = 4,
   8842     URLZONE_PREDEFINED_MAX = 999,
   8843     URLZONE_USER_MIN = 1000,
   8844     URLZONE_USER_MAX = 10000
   8845 } URLZONE;
   8846 
   8847 #define URLZONE_ESC_FLAG 0x100
   8848 
   8849 typedef enum tagURLTEMPLATE {
   8850     URLTEMPLATE_CUSTOM = 0x0,
   8851     URLTEMPLATE_PREDEFINED_MIN = 0x10000,
   8852     URLTEMPLATE_LOW = 0x10000,
   8853     URLTEMPLATE_MEDLOW = 0x10500,
   8854     URLTEMPLATE_MEDIUM = 0x11000,
   8855     URLTEMPLATE_MEDHIGH = 0x11500,
   8856     URLTEMPLATE_HIGH = 0x12000,
   8857     URLTEMPLATE_PREDEFINED_MAX = 0x20000
   8858 } URLTEMPLATE;
   8859 
   8860 enum {
   8861     MAX_ZONE_PATH = 260,
   8862     MAX_ZONE_DESCRIPTION = 200
   8863 };
   8864 
   8865 
   8866 typedef enum __WIDL_urlmon_generated_name_00000011 {
   8867     ZAFLAGS_CUSTOM_EDIT = 0x1,
   8868     ZAFLAGS_ADD_SITES = 0x2,
   8869     ZAFLAGS_REQUIRE_VERIFICATION = 0x4,
   8870     ZAFLAGS_INCLUDE_PROXY_OVERRIDE = 0x8,
   8871     ZAFLAGS_INCLUDE_INTRANET_SITES = 0x10,
   8872     ZAFLAGS_NO_UI = 0x20,
   8873     ZAFLAGS_SUPPORTS_VERIFICATION = 0x40,
   8874     ZAFLAGS_UNC_AS_INTRANET = 0x80,
   8875     ZAFLAGS_DETECT_INTRANET = 0x100,
   8876     ZAFLAGS_USE_LOCKED_ZONES = 0x10000,
   8877     ZAFLAGS_VERIFY_TEMPLATE_SETTINGS = 0x20000,
   8878     ZAFLAGS_NO_CACHE = 0x40000
   8879 } ZAFLAGS;
   8880 
   8881 typedef struct _ZONEATTRIBUTES {
   8882     ULONG cbSize;
   8883     WCHAR szDisplayName[260];
   8884     WCHAR szDescription[200];
   8885     WCHAR szIconPath[260];
   8886     DWORD dwTemplateMinLevel;
   8887     DWORD dwTemplateRecommended;
   8888     DWORD dwTemplateCurrentLevel;
   8889     DWORD dwFlags;
   8890 } ZONEATTRIBUTES;
   8891 typedef struct _ZONEATTRIBUTES *LPZONEATTRIBUTES;
   8892 
   8893 
   8894 typedef enum _URLZONEREG {
   8895     URLZONEREG_DEFAULT = 0,
   8896     URLZONEREG_HKLM = 1,
   8897     URLZONEREG_HKCU = 2
   8898 } URLZONEREG;
   8899 
   8900 DEFINE_GUID(IID_IInternetZoneManager, 0x79eac9ef, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
   8901 #if defined(__cplusplus) && !defined(CINTERFACE)
   8902 MIDL_INTERFACE("79eac9ef-baf9-11ce-8c82-00aa004ba90b")
   8903 IInternetZoneManager : public IUnknown
   8904 {
   8905     virtual HRESULT STDMETHODCALLTYPE GetZoneAttributes(
   8906         DWORD dwZone,
   8907         ZONEATTRIBUTES *pZoneAttributes) = 0;
   8908 
   8909     virtual HRESULT STDMETHODCALLTYPE SetZoneAttributes(
   8910         DWORD dwZone,
   8911         ZONEATTRIBUTES *pZoneAttributes) = 0;
   8912 
   8913     virtual HRESULT STDMETHODCALLTYPE GetZoneCustomPolicy(
   8914         DWORD dwZone,
   8915         REFGUID guidKey,
   8916         BYTE **ppPolicy,
   8917         DWORD *pcbPolicy,
   8918         URLZONEREG urlZoneReg) = 0;
   8919 
   8920     virtual HRESULT STDMETHODCALLTYPE SetZoneCustomPolicy(
   8921         DWORD dwZone,
   8922         REFGUID guidKey,
   8923         BYTE *pPolicy,
   8924         DWORD cbPolicy,
   8925         URLZONEREG urlZoneReg) = 0;
   8926 
   8927     virtual HRESULT STDMETHODCALLTYPE GetZoneActionPolicy(
   8928         DWORD dwZone,
   8929         DWORD dwAction,
   8930         BYTE *pPolicy,
   8931         DWORD cbPolicy,
   8932         URLZONEREG urlZoneReg) = 0;
   8933 
   8934     virtual HRESULT STDMETHODCALLTYPE SetZoneActionPolicy(
   8935         DWORD dwZone,
   8936         DWORD dwAction,
   8937         BYTE *pPolicy,
   8938         DWORD cbPolicy,
   8939         URLZONEREG urlZoneReg) = 0;
   8940 
   8941     virtual HRESULT STDMETHODCALLTYPE PromptAction(
   8942         DWORD dwAction,
   8943         HWND hwndParent,
   8944         LPCWSTR pwszUrl,
   8945         LPCWSTR pwszText,
   8946         DWORD dwPromptFlags) = 0;
   8947 
   8948     virtual HRESULT STDMETHODCALLTYPE LogAction(
   8949         DWORD dwAction,
   8950         LPCWSTR pwszUrl,
   8951         LPCWSTR pwszText,
   8952         DWORD dwLogFlags) = 0;
   8953 
   8954     virtual HRESULT STDMETHODCALLTYPE CreateZoneEnumerator(
   8955         DWORD *pdwEnum,
   8956         DWORD *pdwCount,
   8957         DWORD dwFlags) = 0;
   8958 
   8959     virtual HRESULT STDMETHODCALLTYPE GetZoneAt(
   8960         DWORD dwEnum,
   8961         DWORD dwIndex,
   8962         DWORD *pdwZone) = 0;
   8963 
   8964     virtual HRESULT STDMETHODCALLTYPE DestroyZoneEnumerator(
   8965         DWORD dwEnum) = 0;
   8966 
   8967     virtual HRESULT STDMETHODCALLTYPE CopyTemplatePoliciesToZone(
   8968         DWORD dwTemplate,
   8969         DWORD dwZone,
   8970         DWORD dwReserved) = 0;
   8971 
   8972 };
   8973 #ifdef __CRT_UUID_DECL
   8974 __CRT_UUID_DECL(IInternetZoneManager, 0x79eac9ef, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b)
   8975 #endif
   8976 #else
   8977 typedef struct IInternetZoneManagerVtbl {
   8978     BEGIN_INTERFACE
   8979 
   8980     /*** IUnknown methods ***/
   8981     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8982         IInternetZoneManager* This,
   8983         REFIID riid,
   8984         void **ppvObject);
   8985 
   8986     ULONG (STDMETHODCALLTYPE *AddRef)(
   8987         IInternetZoneManager* This);
   8988 
   8989     ULONG (STDMETHODCALLTYPE *Release)(
   8990         IInternetZoneManager* This);
   8991 
   8992     /*** IInternetZoneManager methods ***/
   8993     HRESULT (STDMETHODCALLTYPE *GetZoneAttributes)(
   8994         IInternetZoneManager* This,
   8995         DWORD dwZone,
   8996         ZONEATTRIBUTES *pZoneAttributes);
   8997 
   8998     HRESULT (STDMETHODCALLTYPE *SetZoneAttributes)(
   8999         IInternetZoneManager* This,
   9000         DWORD dwZone,
   9001         ZONEATTRIBUTES *pZoneAttributes);
   9002 
   9003     HRESULT (STDMETHODCALLTYPE *GetZoneCustomPolicy)(
   9004         IInternetZoneManager* This,
   9005         DWORD dwZone,
   9006         REFGUID guidKey,
   9007         BYTE **ppPolicy,
   9008         DWORD *pcbPolicy,
   9009         URLZONEREG urlZoneReg);
   9010 
   9011     HRESULT (STDMETHODCALLTYPE *SetZoneCustomPolicy)(
   9012         IInternetZoneManager* This,
   9013         DWORD dwZone,
   9014         REFGUID guidKey,
   9015         BYTE *pPolicy,
   9016         DWORD cbPolicy,
   9017         URLZONEREG urlZoneReg);
   9018 
   9019     HRESULT (STDMETHODCALLTYPE *GetZoneActionPolicy)(
   9020         IInternetZoneManager* This,
   9021         DWORD dwZone,
   9022         DWORD dwAction,
   9023         BYTE *pPolicy,
   9024         DWORD cbPolicy,
   9025         URLZONEREG urlZoneReg);
   9026 
   9027     HRESULT (STDMETHODCALLTYPE *SetZoneActionPolicy)(
   9028         IInternetZoneManager* This,
   9029         DWORD dwZone,
   9030         DWORD dwAction,
   9031         BYTE *pPolicy,
   9032         DWORD cbPolicy,
   9033         URLZONEREG urlZoneReg);
   9034 
   9035     HRESULT (STDMETHODCALLTYPE *PromptAction)(
   9036         IInternetZoneManager* This,
   9037         DWORD dwAction,
   9038         HWND hwndParent,
   9039         LPCWSTR pwszUrl,
   9040         LPCWSTR pwszText,
   9041         DWORD dwPromptFlags);
   9042 
   9043     HRESULT (STDMETHODCALLTYPE *LogAction)(
   9044         IInternetZoneManager* This,
   9045         DWORD dwAction,
   9046         LPCWSTR pwszUrl,
   9047         LPCWSTR pwszText,
   9048         DWORD dwLogFlags);
   9049 
   9050     HRESULT (STDMETHODCALLTYPE *CreateZoneEnumerator)(
   9051         IInternetZoneManager* This,
   9052         DWORD *pdwEnum,
   9053         DWORD *pdwCount,
   9054         DWORD dwFlags);
   9055 
   9056     HRESULT (STDMETHODCALLTYPE *GetZoneAt)(
   9057         IInternetZoneManager* This,
   9058         DWORD dwEnum,
   9059         DWORD dwIndex,
   9060         DWORD *pdwZone);
   9061 
   9062     HRESULT (STDMETHODCALLTYPE *DestroyZoneEnumerator)(
   9063         IInternetZoneManager* This,
   9064         DWORD dwEnum);
   9065 
   9066     HRESULT (STDMETHODCALLTYPE *CopyTemplatePoliciesToZone)(
   9067         IInternetZoneManager* This,
   9068         DWORD dwTemplate,
   9069         DWORD dwZone,
   9070         DWORD dwReserved);
   9071 
   9072     END_INTERFACE
   9073 } IInternetZoneManagerVtbl;
   9074 interface IInternetZoneManager {
   9075     CONST_VTBL IInternetZoneManagerVtbl* lpVtbl;
   9076 };
   9077 
   9078 #ifdef COBJMACROS
   9079 #ifndef WIDL_C_INLINE_WRAPPERS
   9080 /*** IUnknown methods ***/
   9081 #define IInternetZoneManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9082 #define IInternetZoneManager_AddRef(This) (This)->lpVtbl->AddRef(This)
   9083 #define IInternetZoneManager_Release(This) (This)->lpVtbl->Release(This)
   9084 /*** IInternetZoneManager methods ***/
   9085 #define IInternetZoneManager_GetZoneAttributes(This,dwZone,pZoneAttributes) (This)->lpVtbl->GetZoneAttributes(This,dwZone,pZoneAttributes)
   9086 #define IInternetZoneManager_SetZoneAttributes(This,dwZone,pZoneAttributes) (This)->lpVtbl->SetZoneAttributes(This,dwZone,pZoneAttributes)
   9087 #define IInternetZoneManager_GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg) (This)->lpVtbl->GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg)
   9088 #define IInternetZoneManager_SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg)
   9089 #define IInternetZoneManager_GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg)
   9090 #define IInternetZoneManager_SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg)
   9091 #define IInternetZoneManager_PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags) (This)->lpVtbl->PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags)
   9092 #define IInternetZoneManager_LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags) (This)->lpVtbl->LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags)
   9093 #define IInternetZoneManager_CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags) (This)->lpVtbl->CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags)
   9094 #define IInternetZoneManager_GetZoneAt(This,dwEnum,dwIndex,pdwZone) (This)->lpVtbl->GetZoneAt(This,dwEnum,dwIndex,pdwZone)
   9095 #define IInternetZoneManager_DestroyZoneEnumerator(This,dwEnum) (This)->lpVtbl->DestroyZoneEnumerator(This,dwEnum)
   9096 #define IInternetZoneManager_CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved) (This)->lpVtbl->CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved)
   9097 #else
   9098 /*** IUnknown methods ***/
   9099 static FORCEINLINE HRESULT IInternetZoneManager_QueryInterface(IInternetZoneManager* This,REFIID riid,void **ppvObject) {
   9100     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9101 }
   9102 static FORCEINLINE ULONG IInternetZoneManager_AddRef(IInternetZoneManager* This) {
   9103     return This->lpVtbl->AddRef(This);
   9104 }
   9105 static FORCEINLINE ULONG IInternetZoneManager_Release(IInternetZoneManager* This) {
   9106     return This->lpVtbl->Release(This);
   9107 }
   9108 /*** IInternetZoneManager methods ***/
   9109 static FORCEINLINE HRESULT IInternetZoneManager_GetZoneAttributes(IInternetZoneManager* This,DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes) {
   9110     return This->lpVtbl->GetZoneAttributes(This,dwZone,pZoneAttributes);
   9111 }
   9112 static FORCEINLINE HRESULT IInternetZoneManager_SetZoneAttributes(IInternetZoneManager* This,DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes) {
   9113     return This->lpVtbl->SetZoneAttributes(This,dwZone,pZoneAttributes);
   9114 }
   9115 static FORCEINLINE HRESULT IInternetZoneManager_GetZoneCustomPolicy(IInternetZoneManager* This,DWORD dwZone,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,URLZONEREG urlZoneReg) {
   9116     return This->lpVtbl->GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg);
   9117 }
   9118 static FORCEINLINE HRESULT IInternetZoneManager_SetZoneCustomPolicy(IInternetZoneManager* This,DWORD dwZone,REFGUID guidKey,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) {
   9119     return This->lpVtbl->SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg);
   9120 }
   9121 static FORCEINLINE HRESULT IInternetZoneManager_GetZoneActionPolicy(IInternetZoneManager* This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) {
   9122     return This->lpVtbl->GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg);
   9123 }
   9124 static FORCEINLINE HRESULT IInternetZoneManager_SetZoneActionPolicy(IInternetZoneManager* This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) {
   9125     return This->lpVtbl->SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg);
   9126 }
   9127 static FORCEINLINE HRESULT IInternetZoneManager_PromptAction(IInternetZoneManager* This,DWORD dwAction,HWND hwndParent,LPCWSTR pwszUrl,LPCWSTR pwszText,DWORD dwPromptFlags) {
   9128     return This->lpVtbl->PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags);
   9129 }
   9130 static FORCEINLINE HRESULT IInternetZoneManager_LogAction(IInternetZoneManager* This,DWORD dwAction,LPCWSTR pwszUrl,LPCWSTR pwszText,DWORD dwLogFlags) {
   9131     return This->lpVtbl->LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags);
   9132 }
   9133 static FORCEINLINE HRESULT IInternetZoneManager_CreateZoneEnumerator(IInternetZoneManager* This,DWORD *pdwEnum,DWORD *pdwCount,DWORD dwFlags) {
   9134     return This->lpVtbl->CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags);
   9135 }
   9136 static FORCEINLINE HRESULT IInternetZoneManager_GetZoneAt(IInternetZoneManager* This,DWORD dwEnum,DWORD dwIndex,DWORD *pdwZone) {
   9137     return This->lpVtbl->GetZoneAt(This,dwEnum,dwIndex,pdwZone);
   9138 }
   9139 static FORCEINLINE HRESULT IInternetZoneManager_DestroyZoneEnumerator(IInternetZoneManager* This,DWORD dwEnum) {
   9140     return This->lpVtbl->DestroyZoneEnumerator(This,dwEnum);
   9141 }
   9142 static FORCEINLINE HRESULT IInternetZoneManager_CopyTemplatePoliciesToZone(IInternetZoneManager* This,DWORD dwTemplate,DWORD dwZone,DWORD dwReserved) {
   9143     return This->lpVtbl->CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved);
   9144 }
   9145 #endif
   9146 #endif
   9147 
   9148 #endif
   9149 
   9150 HRESULT STDMETHODCALLTYPE IInternetZoneManager_GetZoneAttributes_Proxy(
   9151     IInternetZoneManager* This,
   9152     DWORD dwZone,
   9153     ZONEATTRIBUTES *pZoneAttributes);
   9154 void __RPC_STUB IInternetZoneManager_GetZoneAttributes_Stub(
   9155     IRpcStubBuffer* This,
   9156     IRpcChannelBuffer* pRpcChannelBuffer,
   9157     PRPC_MESSAGE pRpcMessage,
   9158     DWORD* pdwStubPhase);
   9159 HRESULT STDMETHODCALLTYPE IInternetZoneManager_SetZoneAttributes_Proxy(
   9160     IInternetZoneManager* This,
   9161     DWORD dwZone,
   9162     ZONEATTRIBUTES *pZoneAttributes);
   9163 void __RPC_STUB IInternetZoneManager_SetZoneAttributes_Stub(
   9164     IRpcStubBuffer* This,
   9165     IRpcChannelBuffer* pRpcChannelBuffer,
   9166     PRPC_MESSAGE pRpcMessage,
   9167     DWORD* pdwStubPhase);
   9168 HRESULT STDMETHODCALLTYPE IInternetZoneManager_GetZoneCustomPolicy_Proxy(
   9169     IInternetZoneManager* This,
   9170     DWORD dwZone,
   9171     REFGUID guidKey,
   9172     BYTE **ppPolicy,
   9173     DWORD *pcbPolicy,
   9174     URLZONEREG urlZoneReg);
   9175 void __RPC_STUB IInternetZoneManager_GetZoneCustomPolicy_Stub(
   9176     IRpcStubBuffer* This,
   9177     IRpcChannelBuffer* pRpcChannelBuffer,
   9178     PRPC_MESSAGE pRpcMessage,
   9179     DWORD* pdwStubPhase);
   9180 HRESULT STDMETHODCALLTYPE IInternetZoneManager_SetZoneCustomPolicy_Proxy(
   9181     IInternetZoneManager* This,
   9182     DWORD dwZone,
   9183     REFGUID guidKey,
   9184     BYTE *pPolicy,
   9185     DWORD cbPolicy,
   9186     URLZONEREG urlZoneReg);
   9187 void __RPC_STUB IInternetZoneManager_SetZoneCustomPolicy_Stub(
   9188     IRpcStubBuffer* This,
   9189     IRpcChannelBuffer* pRpcChannelBuffer,
   9190     PRPC_MESSAGE pRpcMessage,
   9191     DWORD* pdwStubPhase);
   9192 HRESULT STDMETHODCALLTYPE IInternetZoneManager_GetZoneActionPolicy_Proxy(
   9193     IInternetZoneManager* This,
   9194     DWORD dwZone,
   9195     DWORD dwAction,
   9196     BYTE *pPolicy,
   9197     DWORD cbPolicy,
   9198     URLZONEREG urlZoneReg);
   9199 void __RPC_STUB IInternetZoneManager_GetZoneActionPolicy_Stub(
   9200     IRpcStubBuffer* This,
   9201     IRpcChannelBuffer* pRpcChannelBuffer,
   9202     PRPC_MESSAGE pRpcMessage,
   9203     DWORD* pdwStubPhase);
   9204 HRESULT STDMETHODCALLTYPE IInternetZoneManager_SetZoneActionPolicy_Proxy(
   9205     IInternetZoneManager* This,
   9206     DWORD dwZone,
   9207     DWORD dwAction,
   9208     BYTE *pPolicy,
   9209     DWORD cbPolicy,
   9210     URLZONEREG urlZoneReg);
   9211 void __RPC_STUB IInternetZoneManager_SetZoneActionPolicy_Stub(
   9212     IRpcStubBuffer* This,
   9213     IRpcChannelBuffer* pRpcChannelBuffer,
   9214     PRPC_MESSAGE pRpcMessage,
   9215     DWORD* pdwStubPhase);
   9216 HRESULT STDMETHODCALLTYPE IInternetZoneManager_PromptAction_Proxy(
   9217     IInternetZoneManager* This,
   9218     DWORD dwAction,
   9219     HWND hwndParent,
   9220     LPCWSTR pwszUrl,
   9221     LPCWSTR pwszText,
   9222     DWORD dwPromptFlags);
   9223 void __RPC_STUB IInternetZoneManager_PromptAction_Stub(
   9224     IRpcStubBuffer* This,
   9225     IRpcChannelBuffer* pRpcChannelBuffer,
   9226     PRPC_MESSAGE pRpcMessage,
   9227     DWORD* pdwStubPhase);
   9228 HRESULT STDMETHODCALLTYPE IInternetZoneManager_LogAction_Proxy(
   9229     IInternetZoneManager* This,
   9230     DWORD dwAction,
   9231     LPCWSTR pwszUrl,
   9232     LPCWSTR pwszText,
   9233     DWORD dwLogFlags);
   9234 void __RPC_STUB IInternetZoneManager_LogAction_Stub(
   9235     IRpcStubBuffer* This,
   9236     IRpcChannelBuffer* pRpcChannelBuffer,
   9237     PRPC_MESSAGE pRpcMessage,
   9238     DWORD* pdwStubPhase);
   9239 HRESULT STDMETHODCALLTYPE IInternetZoneManager_CreateZoneEnumerator_Proxy(
   9240     IInternetZoneManager* This,
   9241     DWORD *pdwEnum,
   9242     DWORD *pdwCount,
   9243     DWORD dwFlags);
   9244 void __RPC_STUB IInternetZoneManager_CreateZoneEnumerator_Stub(
   9245     IRpcStubBuffer* This,
   9246     IRpcChannelBuffer* pRpcChannelBuffer,
   9247     PRPC_MESSAGE pRpcMessage,
   9248     DWORD* pdwStubPhase);
   9249 HRESULT STDMETHODCALLTYPE IInternetZoneManager_GetZoneAt_Proxy(
   9250     IInternetZoneManager* This,
   9251     DWORD dwEnum,
   9252     DWORD dwIndex,
   9253     DWORD *pdwZone);
   9254 void __RPC_STUB IInternetZoneManager_GetZoneAt_Stub(
   9255     IRpcStubBuffer* This,
   9256     IRpcChannelBuffer* pRpcChannelBuffer,
   9257     PRPC_MESSAGE pRpcMessage,
   9258     DWORD* pdwStubPhase);
   9259 HRESULT STDMETHODCALLTYPE IInternetZoneManager_DestroyZoneEnumerator_Proxy(
   9260     IInternetZoneManager* This,
   9261     DWORD dwEnum);
   9262 void __RPC_STUB IInternetZoneManager_DestroyZoneEnumerator_Stub(
   9263     IRpcStubBuffer* This,
   9264     IRpcChannelBuffer* pRpcChannelBuffer,
   9265     PRPC_MESSAGE pRpcMessage,
   9266     DWORD* pdwStubPhase);
   9267 HRESULT STDMETHODCALLTYPE IInternetZoneManager_CopyTemplatePoliciesToZone_Proxy(
   9268     IInternetZoneManager* This,
   9269     DWORD dwTemplate,
   9270     DWORD dwZone,
   9271     DWORD dwReserved);
   9272 void __RPC_STUB IInternetZoneManager_CopyTemplatePoliciesToZone_Stub(
   9273     IRpcStubBuffer* This,
   9274     IRpcChannelBuffer* pRpcChannelBuffer,
   9275     PRPC_MESSAGE pRpcMessage,
   9276     DWORD* pdwStubPhase);
   9277 
   9278 #endif  /* __IInternetZoneManager_INTERFACE_DEFINED__ */
   9279 
   9280 #endif
   9281 
   9282 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
   9283 #ifndef _LPINTERNETZONEMANAGEREX_DEFINED
   9284 #define _LPINTERNETZONEMANAGEREX_DEFINED
   9285 
   9286 /*****************************************************************************
   9287  * IInternetZoneManagerEx interface
   9288  */
   9289 #ifndef __IInternetZoneManagerEx_INTERFACE_DEFINED__
   9290 #define __IInternetZoneManagerEx_INTERFACE_DEFINED__
   9291 
   9292 DEFINE_GUID(IID_IInternetZoneManagerEx, 0xa4c23339, 0x8e06, 0x431e, 0x9b,0xf4, 0x7e,0x71,0x1c,0x08,0x56,0x48);
   9293 #if defined(__cplusplus) && !defined(CINTERFACE)
   9294 MIDL_INTERFACE("a4c23339-8e06-431e-9bf4-7e711c085648")
   9295 IInternetZoneManagerEx : public IInternetZoneManager
   9296 {
   9297     virtual HRESULT STDMETHODCALLTYPE GetZoneActionPolicyEx(
   9298         DWORD dwZone,
   9299         DWORD dwAction,
   9300         BYTE *pPolicy,
   9301         DWORD cbPolicy,
   9302         URLZONEREG urlZoneReg,
   9303         DWORD dwFlags) = 0;
   9304 
   9305     virtual HRESULT STDMETHODCALLTYPE SetZoneActionPolicyEx(
   9306         DWORD dwZone,
   9307         DWORD dwAction,
   9308         BYTE *pPolicy,
   9309         DWORD cbPolicy,
   9310         URLZONEREG urlZoneReg,
   9311         DWORD dwFlags) = 0;
   9312 
   9313 };
   9314 #ifdef __CRT_UUID_DECL
   9315 __CRT_UUID_DECL(IInternetZoneManagerEx, 0xa4c23339, 0x8e06, 0x431e, 0x9b,0xf4, 0x7e,0x71,0x1c,0x08,0x56,0x48)
   9316 #endif
   9317 #else
   9318 typedef struct IInternetZoneManagerExVtbl {
   9319     BEGIN_INTERFACE
   9320 
   9321     /*** IUnknown methods ***/
   9322     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9323         IInternetZoneManagerEx* This,
   9324         REFIID riid,
   9325         void **ppvObject);
   9326 
   9327     ULONG (STDMETHODCALLTYPE *AddRef)(
   9328         IInternetZoneManagerEx* This);
   9329 
   9330     ULONG (STDMETHODCALLTYPE *Release)(
   9331         IInternetZoneManagerEx* This);
   9332 
   9333     /*** IInternetZoneManager methods ***/
   9334     HRESULT (STDMETHODCALLTYPE *GetZoneAttributes)(
   9335         IInternetZoneManagerEx* This,
   9336         DWORD dwZone,
   9337         ZONEATTRIBUTES *pZoneAttributes);
   9338 
   9339     HRESULT (STDMETHODCALLTYPE *SetZoneAttributes)(
   9340         IInternetZoneManagerEx* This,
   9341         DWORD dwZone,
   9342         ZONEATTRIBUTES *pZoneAttributes);
   9343 
   9344     HRESULT (STDMETHODCALLTYPE *GetZoneCustomPolicy)(
   9345         IInternetZoneManagerEx* This,
   9346         DWORD dwZone,
   9347         REFGUID guidKey,
   9348         BYTE **ppPolicy,
   9349         DWORD *pcbPolicy,
   9350         URLZONEREG urlZoneReg);
   9351 
   9352     HRESULT (STDMETHODCALLTYPE *SetZoneCustomPolicy)(
   9353         IInternetZoneManagerEx* This,
   9354         DWORD dwZone,
   9355         REFGUID guidKey,
   9356         BYTE *pPolicy,
   9357         DWORD cbPolicy,
   9358         URLZONEREG urlZoneReg);
   9359 
   9360     HRESULT (STDMETHODCALLTYPE *GetZoneActionPolicy)(
   9361         IInternetZoneManagerEx* This,
   9362         DWORD dwZone,
   9363         DWORD dwAction,
   9364         BYTE *pPolicy,
   9365         DWORD cbPolicy,
   9366         URLZONEREG urlZoneReg);
   9367 
   9368     HRESULT (STDMETHODCALLTYPE *SetZoneActionPolicy)(
   9369         IInternetZoneManagerEx* This,
   9370         DWORD dwZone,
   9371         DWORD dwAction,
   9372         BYTE *pPolicy,
   9373         DWORD cbPolicy,
   9374         URLZONEREG urlZoneReg);
   9375 
   9376     HRESULT (STDMETHODCALLTYPE *PromptAction)(
   9377         IInternetZoneManagerEx* This,
   9378         DWORD dwAction,
   9379         HWND hwndParent,
   9380         LPCWSTR pwszUrl,
   9381         LPCWSTR pwszText,
   9382         DWORD dwPromptFlags);
   9383 
   9384     HRESULT (STDMETHODCALLTYPE *LogAction)(
   9385         IInternetZoneManagerEx* This,
   9386         DWORD dwAction,
   9387         LPCWSTR pwszUrl,
   9388         LPCWSTR pwszText,
   9389         DWORD dwLogFlags);
   9390 
   9391     HRESULT (STDMETHODCALLTYPE *CreateZoneEnumerator)(
   9392         IInternetZoneManagerEx* This,
   9393         DWORD *pdwEnum,
   9394         DWORD *pdwCount,
   9395         DWORD dwFlags);
   9396 
   9397     HRESULT (STDMETHODCALLTYPE *GetZoneAt)(
   9398         IInternetZoneManagerEx* This,
   9399         DWORD dwEnum,
   9400         DWORD dwIndex,
   9401         DWORD *pdwZone);
   9402 
   9403     HRESULT (STDMETHODCALLTYPE *DestroyZoneEnumerator)(
   9404         IInternetZoneManagerEx* This,
   9405         DWORD dwEnum);
   9406 
   9407     HRESULT (STDMETHODCALLTYPE *CopyTemplatePoliciesToZone)(
   9408         IInternetZoneManagerEx* This,
   9409         DWORD dwTemplate,
   9410         DWORD dwZone,
   9411         DWORD dwReserved);
   9412 
   9413     /*** IInternetZoneManagerEx methods ***/
   9414     HRESULT (STDMETHODCALLTYPE *GetZoneActionPolicyEx)(
   9415         IInternetZoneManagerEx* This,
   9416         DWORD dwZone,
   9417         DWORD dwAction,
   9418         BYTE *pPolicy,
   9419         DWORD cbPolicy,
   9420         URLZONEREG urlZoneReg,
   9421         DWORD dwFlags);
   9422 
   9423     HRESULT (STDMETHODCALLTYPE *SetZoneActionPolicyEx)(
   9424         IInternetZoneManagerEx* This,
   9425         DWORD dwZone,
   9426         DWORD dwAction,
   9427         BYTE *pPolicy,
   9428         DWORD cbPolicy,
   9429         URLZONEREG urlZoneReg,
   9430         DWORD dwFlags);
   9431 
   9432     END_INTERFACE
   9433 } IInternetZoneManagerExVtbl;
   9434 interface IInternetZoneManagerEx {
   9435     CONST_VTBL IInternetZoneManagerExVtbl* lpVtbl;
   9436 };
   9437 
   9438 #ifdef COBJMACROS
   9439 #ifndef WIDL_C_INLINE_WRAPPERS
   9440 /*** IUnknown methods ***/
   9441 #define IInternetZoneManagerEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9442 #define IInternetZoneManagerEx_AddRef(This) (This)->lpVtbl->AddRef(This)
   9443 #define IInternetZoneManagerEx_Release(This) (This)->lpVtbl->Release(This)
   9444 /*** IInternetZoneManager methods ***/
   9445 #define IInternetZoneManagerEx_GetZoneAttributes(This,dwZone,pZoneAttributes) (This)->lpVtbl->GetZoneAttributes(This,dwZone,pZoneAttributes)
   9446 #define IInternetZoneManagerEx_SetZoneAttributes(This,dwZone,pZoneAttributes) (This)->lpVtbl->SetZoneAttributes(This,dwZone,pZoneAttributes)
   9447 #define IInternetZoneManagerEx_GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg) (This)->lpVtbl->GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg)
   9448 #define IInternetZoneManagerEx_SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg)
   9449 #define IInternetZoneManagerEx_GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg)
   9450 #define IInternetZoneManagerEx_SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg)
   9451 #define IInternetZoneManagerEx_PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags) (This)->lpVtbl->PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags)
   9452 #define IInternetZoneManagerEx_LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags) (This)->lpVtbl->LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags)
   9453 #define IInternetZoneManagerEx_CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags) (This)->lpVtbl->CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags)
   9454 #define IInternetZoneManagerEx_GetZoneAt(This,dwEnum,dwIndex,pdwZone) (This)->lpVtbl->GetZoneAt(This,dwEnum,dwIndex,pdwZone)
   9455 #define IInternetZoneManagerEx_DestroyZoneEnumerator(This,dwEnum) (This)->lpVtbl->DestroyZoneEnumerator(This,dwEnum)
   9456 #define IInternetZoneManagerEx_CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved) (This)->lpVtbl->CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved)
   9457 /*** IInternetZoneManagerEx methods ***/
   9458 #define IInternetZoneManagerEx_GetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags) (This)->lpVtbl->GetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags)
   9459 #define IInternetZoneManagerEx_SetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags) (This)->lpVtbl->SetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags)
   9460 #else
   9461 /*** IUnknown methods ***/
   9462 static FORCEINLINE HRESULT IInternetZoneManagerEx_QueryInterface(IInternetZoneManagerEx* This,REFIID riid,void **ppvObject) {
   9463     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9464 }
   9465 static FORCEINLINE ULONG IInternetZoneManagerEx_AddRef(IInternetZoneManagerEx* This) {
   9466     return This->lpVtbl->AddRef(This);
   9467 }
   9468 static FORCEINLINE ULONG IInternetZoneManagerEx_Release(IInternetZoneManagerEx* This) {
   9469     return This->lpVtbl->Release(This);
   9470 }
   9471 /*** IInternetZoneManager methods ***/
   9472 static FORCEINLINE HRESULT IInternetZoneManagerEx_GetZoneAttributes(IInternetZoneManagerEx* This,DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes) {
   9473     return This->lpVtbl->GetZoneAttributes(This,dwZone,pZoneAttributes);
   9474 }
   9475 static FORCEINLINE HRESULT IInternetZoneManagerEx_SetZoneAttributes(IInternetZoneManagerEx* This,DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes) {
   9476     return This->lpVtbl->SetZoneAttributes(This,dwZone,pZoneAttributes);
   9477 }
   9478 static FORCEINLINE HRESULT IInternetZoneManagerEx_GetZoneCustomPolicy(IInternetZoneManagerEx* This,DWORD dwZone,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,URLZONEREG urlZoneReg) {
   9479     return This->lpVtbl->GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg);
   9480 }
   9481 static FORCEINLINE HRESULT IInternetZoneManagerEx_SetZoneCustomPolicy(IInternetZoneManagerEx* This,DWORD dwZone,REFGUID guidKey,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) {
   9482     return This->lpVtbl->SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg);
   9483 }
   9484 static FORCEINLINE HRESULT IInternetZoneManagerEx_GetZoneActionPolicy(IInternetZoneManagerEx* This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) {
   9485     return This->lpVtbl->GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg);
   9486 }
   9487 static FORCEINLINE HRESULT IInternetZoneManagerEx_SetZoneActionPolicy(IInternetZoneManagerEx* This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) {
   9488     return This->lpVtbl->SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg);
   9489 }
   9490 static FORCEINLINE HRESULT IInternetZoneManagerEx_PromptAction(IInternetZoneManagerEx* This,DWORD dwAction,HWND hwndParent,LPCWSTR pwszUrl,LPCWSTR pwszText,DWORD dwPromptFlags) {
   9491     return This->lpVtbl->PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags);
   9492 }
   9493 static FORCEINLINE HRESULT IInternetZoneManagerEx_LogAction(IInternetZoneManagerEx* This,DWORD dwAction,LPCWSTR pwszUrl,LPCWSTR pwszText,DWORD dwLogFlags) {
   9494     return This->lpVtbl->LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags);
   9495 }
   9496 static FORCEINLINE HRESULT IInternetZoneManagerEx_CreateZoneEnumerator(IInternetZoneManagerEx* This,DWORD *pdwEnum,DWORD *pdwCount,DWORD dwFlags) {
   9497     return This->lpVtbl->CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags);
   9498 }
   9499 static FORCEINLINE HRESULT IInternetZoneManagerEx_GetZoneAt(IInternetZoneManagerEx* This,DWORD dwEnum,DWORD dwIndex,DWORD *pdwZone) {
   9500     return This->lpVtbl->GetZoneAt(This,dwEnum,dwIndex,pdwZone);
   9501 }
   9502 static FORCEINLINE HRESULT IInternetZoneManagerEx_DestroyZoneEnumerator(IInternetZoneManagerEx* This,DWORD dwEnum) {
   9503     return This->lpVtbl->DestroyZoneEnumerator(This,dwEnum);
   9504 }
   9505 static FORCEINLINE HRESULT IInternetZoneManagerEx_CopyTemplatePoliciesToZone(IInternetZoneManagerEx* This,DWORD dwTemplate,DWORD dwZone,DWORD dwReserved) {
   9506     return This->lpVtbl->CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved);
   9507 }
   9508 /*** IInternetZoneManagerEx methods ***/
   9509 static FORCEINLINE HRESULT IInternetZoneManagerEx_GetZoneActionPolicyEx(IInternetZoneManagerEx* This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg,DWORD dwFlags) {
   9510     return This->lpVtbl->GetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags);
   9511 }
   9512 static FORCEINLINE HRESULT IInternetZoneManagerEx_SetZoneActionPolicyEx(IInternetZoneManagerEx* This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg,DWORD dwFlags) {
   9513     return This->lpVtbl->SetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags);
   9514 }
   9515 #endif
   9516 #endif
   9517 
   9518 #endif
   9519 
   9520 HRESULT STDMETHODCALLTYPE IInternetZoneManagerEx_GetZoneActionPolicyEx_Proxy(
   9521     IInternetZoneManagerEx* This,
   9522     DWORD dwZone,
   9523     DWORD dwAction,
   9524     BYTE *pPolicy,
   9525     DWORD cbPolicy,
   9526     URLZONEREG urlZoneReg,
   9527     DWORD dwFlags);
   9528 void __RPC_STUB IInternetZoneManagerEx_GetZoneActionPolicyEx_Stub(
   9529     IRpcStubBuffer* This,
   9530     IRpcChannelBuffer* pRpcChannelBuffer,
   9531     PRPC_MESSAGE pRpcMessage,
   9532     DWORD* pdwStubPhase);
   9533 HRESULT STDMETHODCALLTYPE IInternetZoneManagerEx_SetZoneActionPolicyEx_Proxy(
   9534     IInternetZoneManagerEx* This,
   9535     DWORD dwZone,
   9536     DWORD dwAction,
   9537     BYTE *pPolicy,
   9538     DWORD cbPolicy,
   9539     URLZONEREG urlZoneReg,
   9540     DWORD dwFlags);
   9541 void __RPC_STUB IInternetZoneManagerEx_SetZoneActionPolicyEx_Stub(
   9542     IRpcStubBuffer* This,
   9543     IRpcChannelBuffer* pRpcChannelBuffer,
   9544     PRPC_MESSAGE pRpcMessage,
   9545     DWORD* pdwStubPhase);
   9546 
   9547 #endif  /* __IInternetZoneManagerEx_INTERFACE_DEFINED__ */
   9548 
   9549 #endif
   9550 #endif
   9551 
   9552 #if (_WIN32_IE >= _WIN32_IE_IE70)
   9553 #ifndef _LPINTERNETZONEMANAGEREX2_DEFINED
   9554 #define _LPINTERNETZONEMANAGEREX2_DEFINED
   9555 
   9556 #define SECURITY_IE_STATE_GREEN 0x0
   9557 #define SECURITY_IE_STATE_RED 0x1
   9558 
   9559 /*****************************************************************************
   9560  * IInternetZoneManagerEx2 interface
   9561  */
   9562 #ifndef __IInternetZoneManagerEx2_INTERFACE_DEFINED__
   9563 #define __IInternetZoneManagerEx2_INTERFACE_DEFINED__
   9564 
   9565 DEFINE_GUID(IID_IInternetZoneManagerEx2, 0xedc17559, 0xdd5d, 0x4846, 0x8e,0xef, 0x8b,0xec,0xba,0x5a,0x4a,0xbf);
   9566 #if defined(__cplusplus) && !defined(CINTERFACE)
   9567 MIDL_INTERFACE("edc17559-dd5d-4846-8eef-8becba5a4abf")
   9568 IInternetZoneManagerEx2 : public IInternetZoneManagerEx
   9569 {
   9570     virtual HRESULT STDMETHODCALLTYPE GetZoneAttributesEx(
   9571         DWORD dwZone,
   9572         ZONEATTRIBUTES *pZoneAttributes,
   9573         DWORD dwFlags) = 0;
   9574 
   9575     virtual HRESULT STDMETHODCALLTYPE GetZoneSecurityState(
   9576         DWORD dwZoneIndex,
   9577         WINBOOL fRespectPolicy,
   9578         LPDWORD pdwState,
   9579         WINBOOL *pfPolicyEncountered) = 0;
   9580 
   9581     virtual HRESULT STDMETHODCALLTYPE GetIESecurityState(
   9582         WINBOOL fRespectPolicy,
   9583         LPDWORD pdwState,
   9584         WINBOOL *pfPolicyEncountered,
   9585         WINBOOL fNoCache) = 0;
   9586 
   9587     virtual HRESULT STDMETHODCALLTYPE FixUnsecureSettings(
   9588         ) = 0;
   9589 
   9590 };
   9591 #ifdef __CRT_UUID_DECL
   9592 __CRT_UUID_DECL(IInternetZoneManagerEx2, 0xedc17559, 0xdd5d, 0x4846, 0x8e,0xef, 0x8b,0xec,0xba,0x5a,0x4a,0xbf)
   9593 #endif
   9594 #else
   9595 typedef struct IInternetZoneManagerEx2Vtbl {
   9596     BEGIN_INTERFACE
   9597 
   9598     /*** IUnknown methods ***/
   9599     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9600         IInternetZoneManagerEx2* This,
   9601         REFIID riid,
   9602         void **ppvObject);
   9603 
   9604     ULONG (STDMETHODCALLTYPE *AddRef)(
   9605         IInternetZoneManagerEx2* This);
   9606 
   9607     ULONG (STDMETHODCALLTYPE *Release)(
   9608         IInternetZoneManagerEx2* This);
   9609 
   9610     /*** IInternetZoneManager methods ***/
   9611     HRESULT (STDMETHODCALLTYPE *GetZoneAttributes)(
   9612         IInternetZoneManagerEx2* This,
   9613         DWORD dwZone,
   9614         ZONEATTRIBUTES *pZoneAttributes);
   9615 
   9616     HRESULT (STDMETHODCALLTYPE *SetZoneAttributes)(
   9617         IInternetZoneManagerEx2* This,
   9618         DWORD dwZone,
   9619         ZONEATTRIBUTES *pZoneAttributes);
   9620 
   9621     HRESULT (STDMETHODCALLTYPE *GetZoneCustomPolicy)(
   9622         IInternetZoneManagerEx2* This,
   9623         DWORD dwZone,
   9624         REFGUID guidKey,
   9625         BYTE **ppPolicy,
   9626         DWORD *pcbPolicy,
   9627         URLZONEREG urlZoneReg);
   9628 
   9629     HRESULT (STDMETHODCALLTYPE *SetZoneCustomPolicy)(
   9630         IInternetZoneManagerEx2* This,
   9631         DWORD dwZone,
   9632         REFGUID guidKey,
   9633         BYTE *pPolicy,
   9634         DWORD cbPolicy,
   9635         URLZONEREG urlZoneReg);
   9636 
   9637     HRESULT (STDMETHODCALLTYPE *GetZoneActionPolicy)(
   9638         IInternetZoneManagerEx2* This,
   9639         DWORD dwZone,
   9640         DWORD dwAction,
   9641         BYTE *pPolicy,
   9642         DWORD cbPolicy,
   9643         URLZONEREG urlZoneReg);
   9644 
   9645     HRESULT (STDMETHODCALLTYPE *SetZoneActionPolicy)(
   9646         IInternetZoneManagerEx2* This,
   9647         DWORD dwZone,
   9648         DWORD dwAction,
   9649         BYTE *pPolicy,
   9650         DWORD cbPolicy,
   9651         URLZONEREG urlZoneReg);
   9652 
   9653     HRESULT (STDMETHODCALLTYPE *PromptAction)(
   9654         IInternetZoneManagerEx2* This,
   9655         DWORD dwAction,
   9656         HWND hwndParent,
   9657         LPCWSTR pwszUrl,
   9658         LPCWSTR pwszText,
   9659         DWORD dwPromptFlags);
   9660 
   9661     HRESULT (STDMETHODCALLTYPE *LogAction)(
   9662         IInternetZoneManagerEx2* This,
   9663         DWORD dwAction,
   9664         LPCWSTR pwszUrl,
   9665         LPCWSTR pwszText,
   9666         DWORD dwLogFlags);
   9667 
   9668     HRESULT (STDMETHODCALLTYPE *CreateZoneEnumerator)(
   9669         IInternetZoneManagerEx2* This,
   9670         DWORD *pdwEnum,
   9671         DWORD *pdwCount,
   9672         DWORD dwFlags);
   9673 
   9674     HRESULT (STDMETHODCALLTYPE *GetZoneAt)(
   9675         IInternetZoneManagerEx2* This,
   9676         DWORD dwEnum,
   9677         DWORD dwIndex,
   9678         DWORD *pdwZone);
   9679 
   9680     HRESULT (STDMETHODCALLTYPE *DestroyZoneEnumerator)(
   9681         IInternetZoneManagerEx2* This,
   9682         DWORD dwEnum);
   9683 
   9684     HRESULT (STDMETHODCALLTYPE *CopyTemplatePoliciesToZone)(
   9685         IInternetZoneManagerEx2* This,
   9686         DWORD dwTemplate,
   9687         DWORD dwZone,
   9688         DWORD dwReserved);
   9689 
   9690     /*** IInternetZoneManagerEx methods ***/
   9691     HRESULT (STDMETHODCALLTYPE *GetZoneActionPolicyEx)(
   9692         IInternetZoneManagerEx2* This,
   9693         DWORD dwZone,
   9694         DWORD dwAction,
   9695         BYTE *pPolicy,
   9696         DWORD cbPolicy,
   9697         URLZONEREG urlZoneReg,
   9698         DWORD dwFlags);
   9699 
   9700     HRESULT (STDMETHODCALLTYPE *SetZoneActionPolicyEx)(
   9701         IInternetZoneManagerEx2* This,
   9702         DWORD dwZone,
   9703         DWORD dwAction,
   9704         BYTE *pPolicy,
   9705         DWORD cbPolicy,
   9706         URLZONEREG urlZoneReg,
   9707         DWORD dwFlags);
   9708 
   9709     /*** IInternetZoneManagerEx2 methods ***/
   9710     HRESULT (STDMETHODCALLTYPE *GetZoneAttributesEx)(
   9711         IInternetZoneManagerEx2* This,
   9712         DWORD dwZone,
   9713         ZONEATTRIBUTES *pZoneAttributes,
   9714         DWORD dwFlags);
   9715 
   9716     HRESULT (STDMETHODCALLTYPE *GetZoneSecurityState)(
   9717         IInternetZoneManagerEx2* This,
   9718         DWORD dwZoneIndex,
   9719         WINBOOL fRespectPolicy,
   9720         LPDWORD pdwState,
   9721         WINBOOL *pfPolicyEncountered);
   9722 
   9723     HRESULT (STDMETHODCALLTYPE *GetIESecurityState)(
   9724         IInternetZoneManagerEx2* This,
   9725         WINBOOL fRespectPolicy,
   9726         LPDWORD pdwState,
   9727         WINBOOL *pfPolicyEncountered,
   9728         WINBOOL fNoCache);
   9729 
   9730     HRESULT (STDMETHODCALLTYPE *FixUnsecureSettings)(
   9731         IInternetZoneManagerEx2* This);
   9732 
   9733     END_INTERFACE
   9734 } IInternetZoneManagerEx2Vtbl;
   9735 interface IInternetZoneManagerEx2 {
   9736     CONST_VTBL IInternetZoneManagerEx2Vtbl* lpVtbl;
   9737 };
   9738 
   9739 #ifdef COBJMACROS
   9740 #ifndef WIDL_C_INLINE_WRAPPERS
   9741 /*** IUnknown methods ***/
   9742 #define IInternetZoneManagerEx2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9743 #define IInternetZoneManagerEx2_AddRef(This) (This)->lpVtbl->AddRef(This)
   9744 #define IInternetZoneManagerEx2_Release(This) (This)->lpVtbl->Release(This)
   9745 /*** IInternetZoneManager methods ***/
   9746 #define IInternetZoneManagerEx2_GetZoneAttributes(This,dwZone,pZoneAttributes) (This)->lpVtbl->GetZoneAttributes(This,dwZone,pZoneAttributes)
   9747 #define IInternetZoneManagerEx2_SetZoneAttributes(This,dwZone,pZoneAttributes) (This)->lpVtbl->SetZoneAttributes(This,dwZone,pZoneAttributes)
   9748 #define IInternetZoneManagerEx2_GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg) (This)->lpVtbl->GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg)
   9749 #define IInternetZoneManagerEx2_SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg)
   9750 #define IInternetZoneManagerEx2_GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg)
   9751 #define IInternetZoneManagerEx2_SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg) (This)->lpVtbl->SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg)
   9752 #define IInternetZoneManagerEx2_PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags) (This)->lpVtbl->PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags)
   9753 #define IInternetZoneManagerEx2_LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags) (This)->lpVtbl->LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags)
   9754 #define IInternetZoneManagerEx2_CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags) (This)->lpVtbl->CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags)
   9755 #define IInternetZoneManagerEx2_GetZoneAt(This,dwEnum,dwIndex,pdwZone) (This)->lpVtbl->GetZoneAt(This,dwEnum,dwIndex,pdwZone)
   9756 #define IInternetZoneManagerEx2_DestroyZoneEnumerator(This,dwEnum) (This)->lpVtbl->DestroyZoneEnumerator(This,dwEnum)
   9757 #define IInternetZoneManagerEx2_CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved) (This)->lpVtbl->CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved)
   9758 /*** IInternetZoneManagerEx methods ***/
   9759 #define IInternetZoneManagerEx2_GetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags) (This)->lpVtbl->GetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags)
   9760 #define IInternetZoneManagerEx2_SetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags) (This)->lpVtbl->SetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags)
   9761 /*** IInternetZoneManagerEx2 methods ***/
   9762 #define IInternetZoneManagerEx2_GetZoneAttributesEx(This,dwZone,pZoneAttributes,dwFlags) (This)->lpVtbl->GetZoneAttributesEx(This,dwZone,pZoneAttributes,dwFlags)
   9763 #define IInternetZoneManagerEx2_GetZoneSecurityState(This,dwZoneIndex,fRespectPolicy,pdwState,pfPolicyEncountered) (This)->lpVtbl->GetZoneSecurityState(This,dwZoneIndex,fRespectPolicy,pdwState,pfPolicyEncountered)
   9764 #define IInternetZoneManagerEx2_GetIESecurityState(This,fRespectPolicy,pdwState,pfPolicyEncountered,fNoCache) (This)->lpVtbl->GetIESecurityState(This,fRespectPolicy,pdwState,pfPolicyEncountered,fNoCache)
   9765 #define IInternetZoneManagerEx2_FixUnsecureSettings(This) (This)->lpVtbl->FixUnsecureSettings(This)
   9766 #else
   9767 /*** IUnknown methods ***/
   9768 static FORCEINLINE HRESULT IInternetZoneManagerEx2_QueryInterface(IInternetZoneManagerEx2* This,REFIID riid,void **ppvObject) {
   9769     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9770 }
   9771 static FORCEINLINE ULONG IInternetZoneManagerEx2_AddRef(IInternetZoneManagerEx2* This) {
   9772     return This->lpVtbl->AddRef(This);
   9773 }
   9774 static FORCEINLINE ULONG IInternetZoneManagerEx2_Release(IInternetZoneManagerEx2* This) {
   9775     return This->lpVtbl->Release(This);
   9776 }
   9777 /*** IInternetZoneManager methods ***/
   9778 static FORCEINLINE HRESULT IInternetZoneManagerEx2_GetZoneAttributes(IInternetZoneManagerEx2* This,DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes) {
   9779     return This->lpVtbl->GetZoneAttributes(This,dwZone,pZoneAttributes);
   9780 }
   9781 static FORCEINLINE HRESULT IInternetZoneManagerEx2_SetZoneAttributes(IInternetZoneManagerEx2* This,DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes) {
   9782     return This->lpVtbl->SetZoneAttributes(This,dwZone,pZoneAttributes);
   9783 }
   9784 static FORCEINLINE HRESULT IInternetZoneManagerEx2_GetZoneCustomPolicy(IInternetZoneManagerEx2* This,DWORD dwZone,REFGUID guidKey,BYTE **ppPolicy,DWORD *pcbPolicy,URLZONEREG urlZoneReg) {
   9785     return This->lpVtbl->GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg);
   9786 }
   9787 static FORCEINLINE HRESULT IInternetZoneManagerEx2_SetZoneCustomPolicy(IInternetZoneManagerEx2* This,DWORD dwZone,REFGUID guidKey,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) {
   9788     return This->lpVtbl->SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg);
   9789 }
   9790 static FORCEINLINE HRESULT IInternetZoneManagerEx2_GetZoneActionPolicy(IInternetZoneManagerEx2* This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) {
   9791     return This->lpVtbl->GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg);
   9792 }
   9793 static FORCEINLINE HRESULT IInternetZoneManagerEx2_SetZoneActionPolicy(IInternetZoneManagerEx2* This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg) {
   9794     return This->lpVtbl->SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg);
   9795 }
   9796 static FORCEINLINE HRESULT IInternetZoneManagerEx2_PromptAction(IInternetZoneManagerEx2* This,DWORD dwAction,HWND hwndParent,LPCWSTR pwszUrl,LPCWSTR pwszText,DWORD dwPromptFlags) {
   9797     return This->lpVtbl->PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags);
   9798 }
   9799 static FORCEINLINE HRESULT IInternetZoneManagerEx2_LogAction(IInternetZoneManagerEx2* This,DWORD dwAction,LPCWSTR pwszUrl,LPCWSTR pwszText,DWORD dwLogFlags) {
   9800     return This->lpVtbl->LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags);
   9801 }
   9802 static FORCEINLINE HRESULT IInternetZoneManagerEx2_CreateZoneEnumerator(IInternetZoneManagerEx2* This,DWORD *pdwEnum,DWORD *pdwCount,DWORD dwFlags) {
   9803     return This->lpVtbl->CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags);
   9804 }
   9805 static FORCEINLINE HRESULT IInternetZoneManagerEx2_GetZoneAt(IInternetZoneManagerEx2* This,DWORD dwEnum,DWORD dwIndex,DWORD *pdwZone) {
   9806     return This->lpVtbl->GetZoneAt(This,dwEnum,dwIndex,pdwZone);
   9807 }
   9808 static FORCEINLINE HRESULT IInternetZoneManagerEx2_DestroyZoneEnumerator(IInternetZoneManagerEx2* This,DWORD dwEnum) {
   9809     return This->lpVtbl->DestroyZoneEnumerator(This,dwEnum);
   9810 }
   9811 static FORCEINLINE HRESULT IInternetZoneManagerEx2_CopyTemplatePoliciesToZone(IInternetZoneManagerEx2* This,DWORD dwTemplate,DWORD dwZone,DWORD dwReserved) {
   9812     return This->lpVtbl->CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved);
   9813 }
   9814 /*** IInternetZoneManagerEx methods ***/
   9815 static FORCEINLINE HRESULT IInternetZoneManagerEx2_GetZoneActionPolicyEx(IInternetZoneManagerEx2* This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg,DWORD dwFlags) {
   9816     return This->lpVtbl->GetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags);
   9817 }
   9818 static FORCEINLINE HRESULT IInternetZoneManagerEx2_SetZoneActionPolicyEx(IInternetZoneManagerEx2* This,DWORD dwZone,DWORD dwAction,BYTE *pPolicy,DWORD cbPolicy,URLZONEREG urlZoneReg,DWORD dwFlags) {
   9819     return This->lpVtbl->SetZoneActionPolicyEx(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg,dwFlags);
   9820 }
   9821 /*** IInternetZoneManagerEx2 methods ***/
   9822 static FORCEINLINE HRESULT IInternetZoneManagerEx2_GetZoneAttributesEx(IInternetZoneManagerEx2* This,DWORD dwZone,ZONEATTRIBUTES *pZoneAttributes,DWORD dwFlags) {
   9823     return This->lpVtbl->GetZoneAttributesEx(This,dwZone,pZoneAttributes,dwFlags);
   9824 }
   9825 static FORCEINLINE HRESULT IInternetZoneManagerEx2_GetZoneSecurityState(IInternetZoneManagerEx2* This,DWORD dwZoneIndex,WINBOOL fRespectPolicy,LPDWORD pdwState,WINBOOL *pfPolicyEncountered) {
   9826     return This->lpVtbl->GetZoneSecurityState(This,dwZoneIndex,fRespectPolicy,pdwState,pfPolicyEncountered);
   9827 }
   9828 static FORCEINLINE HRESULT IInternetZoneManagerEx2_GetIESecurityState(IInternetZoneManagerEx2* This,WINBOOL fRespectPolicy,LPDWORD pdwState,WINBOOL *pfPolicyEncountered,WINBOOL fNoCache) {
   9829     return This->lpVtbl->GetIESecurityState(This,fRespectPolicy,pdwState,pfPolicyEncountered,fNoCache);
   9830 }
   9831 static FORCEINLINE HRESULT IInternetZoneManagerEx2_FixUnsecureSettings(IInternetZoneManagerEx2* This) {
   9832     return This->lpVtbl->FixUnsecureSettings(This);
   9833 }
   9834 #endif
   9835 #endif
   9836 
   9837 #endif
   9838 
   9839 HRESULT STDMETHODCALLTYPE IInternetZoneManagerEx2_GetZoneAttributesEx_Proxy(
   9840     IInternetZoneManagerEx2* This,
   9841     DWORD dwZone,
   9842     ZONEATTRIBUTES *pZoneAttributes,
   9843     DWORD dwFlags);
   9844 void __RPC_STUB IInternetZoneManagerEx2_GetZoneAttributesEx_Stub(
   9845     IRpcStubBuffer* This,
   9846     IRpcChannelBuffer* pRpcChannelBuffer,
   9847     PRPC_MESSAGE pRpcMessage,
   9848     DWORD* pdwStubPhase);
   9849 HRESULT STDMETHODCALLTYPE IInternetZoneManagerEx2_GetZoneSecurityState_Proxy(
   9850     IInternetZoneManagerEx2* This,
   9851     DWORD dwZoneIndex,
   9852     WINBOOL fRespectPolicy,
   9853     LPDWORD pdwState,
   9854     WINBOOL *pfPolicyEncountered);
   9855 void __RPC_STUB IInternetZoneManagerEx2_GetZoneSecurityState_Stub(
   9856     IRpcStubBuffer* This,
   9857     IRpcChannelBuffer* pRpcChannelBuffer,
   9858     PRPC_MESSAGE pRpcMessage,
   9859     DWORD* pdwStubPhase);
   9860 HRESULT STDMETHODCALLTYPE IInternetZoneManagerEx2_GetIESecurityState_Proxy(
   9861     IInternetZoneManagerEx2* This,
   9862     WINBOOL fRespectPolicy,
   9863     LPDWORD pdwState,
   9864     WINBOOL *pfPolicyEncountered,
   9865     WINBOOL fNoCache);
   9866 void __RPC_STUB IInternetZoneManagerEx2_GetIESecurityState_Stub(
   9867     IRpcStubBuffer* This,
   9868     IRpcChannelBuffer* pRpcChannelBuffer,
   9869     PRPC_MESSAGE pRpcMessage,
   9870     DWORD* pdwStubPhase);
   9871 HRESULT STDMETHODCALLTYPE IInternetZoneManagerEx2_FixUnsecureSettings_Proxy(
   9872     IInternetZoneManagerEx2* This);
   9873 void __RPC_STUB IInternetZoneManagerEx2_FixUnsecureSettings_Stub(
   9874     IRpcStubBuffer* This,
   9875     IRpcChannelBuffer* pRpcChannelBuffer,
   9876     PRPC_MESSAGE pRpcMessage,
   9877     DWORD* pdwStubPhase);
   9878 
   9879 #endif  /* __IInternetZoneManagerEx2_INTERFACE_DEFINED__ */
   9880 
   9881 #endif
   9882 #endif
   9883 
   9884 EXTERN_C const IID CLSID_SoftDistExt;
   9885 
   9886 #ifndef _LPSOFTDISTEXT_DEFINED
   9887 #define _LPSOFTDISTEXT_DEFINED
   9888 
   9889 #define SOFTDIST_FLAG_USAGE_EMAIL 0x1
   9890 #define SOFTDIST_FLAG_USAGE_PRECACHE 0x2
   9891 #define SOFTDIST_FLAG_USAGE_AUTOINSTALL 0x4
   9892 #define SOFTDIST_FLAG_DELETE_SUBSCRIPTION 0x8
   9893 
   9894 #define SOFTDIST_ADSTATE_NONE 0x0
   9895 #define SOFTDIST_ADSTATE_AVAILABLE 0x1
   9896 #define SOFTDIST_ADSTATE_DOWNLOADED 0x2
   9897 #define SOFTDIST_ADSTATE_INSTALLED 0x3
   9898 
   9899 typedef struct _tagCODEBASEHOLD {
   9900     ULONG cbSize;
   9901     LPWSTR szDistUnit;
   9902     LPWSTR szCodeBase;
   9903     DWORD dwVersionMS;
   9904     DWORD dwVersionLS;
   9905     DWORD dwStyle;
   9906 } CODEBASEHOLD;
   9907 typedef struct _tagCODEBASEHOLD *LPCODEBASEHOLD;
   9908 
   9909 typedef struct _tagSOFTDISTINFO {
   9910     ULONG cbSize;
   9911     DWORD dwFlags;
   9912     DWORD dwAdState;
   9913     LPWSTR szTitle;
   9914     LPWSTR szAbstract;
   9915     LPWSTR szHREF;
   9916     DWORD dwInstalledVersionMS;
   9917     DWORD dwInstalledVersionLS;
   9918     DWORD dwUpdateVersionMS;
   9919     DWORD dwUpdateVersionLS;
   9920     DWORD dwAdvertisedVersionMS;
   9921     DWORD dwAdvertisedVersionLS;
   9922     DWORD dwReserved;
   9923 } SOFTDISTINFO;
   9924 typedef struct _tagSOFTDISTINFO *LPSOFTDISTINFO;
   9925 
   9926 /*****************************************************************************
   9927  * ISoftDistExt interface
   9928  */
   9929 #ifndef __ISoftDistExt_INTERFACE_DEFINED__
   9930 #define __ISoftDistExt_INTERFACE_DEFINED__
   9931 
   9932 DEFINE_GUID(IID_ISoftDistExt, 0xb15b8dc1, 0xc7e1, 0x11d0, 0x86,0x80, 0x00,0xaa,0x00,0xbd,0xcb,0x71);
   9933 #if defined(__cplusplus) && !defined(CINTERFACE)
   9934 MIDL_INTERFACE("b15b8dc1-c7e1-11d0-8680-00aa00bdcb71")
   9935 ISoftDistExt : public IUnknown
   9936 {
   9937     virtual HRESULT STDMETHODCALLTYPE ProcessSoftDist(
   9938         LPCWSTR szCDFURL,
   9939         IXMLElement *pSoftDistElement,
   9940         LPSOFTDISTINFO lpsdi) = 0;
   9941 
   9942     virtual HRESULT STDMETHODCALLTYPE GetFirstCodeBase(
   9943         LPWSTR *szCodeBase,
   9944         LPDWORD dwMaxSize) = 0;
   9945 
   9946     virtual HRESULT STDMETHODCALLTYPE GetNextCodeBase(
   9947         LPWSTR *szCodeBase,
   9948         LPDWORD dwMaxSize) = 0;
   9949 
   9950     virtual HRESULT STDMETHODCALLTYPE AsyncInstallDistributionUnit(
   9951         IBindCtx *pbc,
   9952         LPVOID pvReserved,
   9953         DWORD flags,
   9954         LPCODEBASEHOLD lpcbh) = 0;
   9955 
   9956 };
   9957 #ifdef __CRT_UUID_DECL
   9958 __CRT_UUID_DECL(ISoftDistExt, 0xb15b8dc1, 0xc7e1, 0x11d0, 0x86,0x80, 0x00,0xaa,0x00,0xbd,0xcb,0x71)
   9959 #endif
   9960 #else
   9961 typedef struct ISoftDistExtVtbl {
   9962     BEGIN_INTERFACE
   9963 
   9964     /*** IUnknown methods ***/
   9965     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9966         ISoftDistExt* This,
   9967         REFIID riid,
   9968         void **ppvObject);
   9969 
   9970     ULONG (STDMETHODCALLTYPE *AddRef)(
   9971         ISoftDistExt* This);
   9972 
   9973     ULONG (STDMETHODCALLTYPE *Release)(
   9974         ISoftDistExt* This);
   9975 
   9976     /*** ISoftDistExt methods ***/
   9977     HRESULT (STDMETHODCALLTYPE *ProcessSoftDist)(
   9978         ISoftDistExt* This,
   9979         LPCWSTR szCDFURL,
   9980         IXMLElement *pSoftDistElement,
   9981         LPSOFTDISTINFO lpsdi);
   9982 
   9983     HRESULT (STDMETHODCALLTYPE *GetFirstCodeBase)(
   9984         ISoftDistExt* This,
   9985         LPWSTR *szCodeBase,
   9986         LPDWORD dwMaxSize);
   9987 
   9988     HRESULT (STDMETHODCALLTYPE *GetNextCodeBase)(
   9989         ISoftDistExt* This,
   9990         LPWSTR *szCodeBase,
   9991         LPDWORD dwMaxSize);
   9992 
   9993     HRESULT (STDMETHODCALLTYPE *AsyncInstallDistributionUnit)(
   9994         ISoftDistExt* This,
   9995         IBindCtx *pbc,
   9996         LPVOID pvReserved,
   9997         DWORD flags,
   9998         LPCODEBASEHOLD lpcbh);
   9999 
   10000     END_INTERFACE
   10001 } ISoftDistExtVtbl;
   10002 interface ISoftDistExt {
   10003     CONST_VTBL ISoftDistExtVtbl* lpVtbl;
   10004 };
   10005 
   10006 #ifdef COBJMACROS
   10007 #ifndef WIDL_C_INLINE_WRAPPERS
   10008 /*** IUnknown methods ***/
   10009 #define ISoftDistExt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   10010 #define ISoftDistExt_AddRef(This) (This)->lpVtbl->AddRef(This)
   10011 #define ISoftDistExt_Release(This) (This)->lpVtbl->Release(This)
   10012 /*** ISoftDistExt methods ***/
   10013 #define ISoftDistExt_ProcessSoftDist(This,szCDFURL,pSoftDistElement,lpsdi) (This)->lpVtbl->ProcessSoftDist(This,szCDFURL,pSoftDistElement,lpsdi)
   10014 #define ISoftDistExt_GetFirstCodeBase(This,szCodeBase,dwMaxSize) (This)->lpVtbl->GetFirstCodeBase(This,szCodeBase,dwMaxSize)
   10015 #define ISoftDistExt_GetNextCodeBase(This,szCodeBase,dwMaxSize) (This)->lpVtbl->GetNextCodeBase(This,szCodeBase,dwMaxSize)
   10016 #define ISoftDistExt_AsyncInstallDistributionUnit(This,pbc,pvReserved,flags,lpcbh) (This)->lpVtbl->AsyncInstallDistributionUnit(This,pbc,pvReserved,flags,lpcbh)
   10017 #else
   10018 /*** IUnknown methods ***/
   10019 static FORCEINLINE HRESULT ISoftDistExt_QueryInterface(ISoftDistExt* This,REFIID riid,void **ppvObject) {
   10020     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   10021 }
   10022 static FORCEINLINE ULONG ISoftDistExt_AddRef(ISoftDistExt* This) {
   10023     return This->lpVtbl->AddRef(This);
   10024 }
   10025 static FORCEINLINE ULONG ISoftDistExt_Release(ISoftDistExt* This) {
   10026     return This->lpVtbl->Release(This);
   10027 }
   10028 /*** ISoftDistExt methods ***/
   10029 static FORCEINLINE HRESULT ISoftDistExt_ProcessSoftDist(ISoftDistExt* This,LPCWSTR szCDFURL,IXMLElement *pSoftDistElement,LPSOFTDISTINFO lpsdi) {
   10030     return This->lpVtbl->ProcessSoftDist(This,szCDFURL,pSoftDistElement,lpsdi);
   10031 }
   10032 static FORCEINLINE HRESULT ISoftDistExt_GetFirstCodeBase(ISoftDistExt* This,LPWSTR *szCodeBase,LPDWORD dwMaxSize) {
   10033     return This->lpVtbl->GetFirstCodeBase(This,szCodeBase,dwMaxSize);
   10034 }
   10035 static FORCEINLINE HRESULT ISoftDistExt_GetNextCodeBase(ISoftDistExt* This,LPWSTR *szCodeBase,LPDWORD dwMaxSize) {
   10036     return This->lpVtbl->GetNextCodeBase(This,szCodeBase,dwMaxSize);
   10037 }
   10038 static FORCEINLINE HRESULT ISoftDistExt_AsyncInstallDistributionUnit(ISoftDistExt* This,IBindCtx *pbc,LPVOID pvReserved,DWORD flags,LPCODEBASEHOLD lpcbh) {
   10039     return This->lpVtbl->AsyncInstallDistributionUnit(This,pbc,pvReserved,flags,lpcbh);
   10040 }
   10041 #endif
   10042 #endif
   10043 
   10044 #endif
   10045 
   10046 HRESULT STDMETHODCALLTYPE ISoftDistExt_ProcessSoftDist_Proxy(
   10047     ISoftDistExt* This,
   10048     LPCWSTR szCDFURL,
   10049     IXMLElement *pSoftDistElement,
   10050     LPSOFTDISTINFO lpsdi);
   10051 void __RPC_STUB ISoftDistExt_ProcessSoftDist_Stub(
   10052     IRpcStubBuffer* This,
   10053     IRpcChannelBuffer* pRpcChannelBuffer,
   10054     PRPC_MESSAGE pRpcMessage,
   10055     DWORD* pdwStubPhase);
   10056 HRESULT STDMETHODCALLTYPE ISoftDistExt_GetFirstCodeBase_Proxy(
   10057     ISoftDistExt* This,
   10058     LPWSTR *szCodeBase,
   10059     LPDWORD dwMaxSize);
   10060 void __RPC_STUB ISoftDistExt_GetFirstCodeBase_Stub(
   10061     IRpcStubBuffer* This,
   10062     IRpcChannelBuffer* pRpcChannelBuffer,
   10063     PRPC_MESSAGE pRpcMessage,
   10064     DWORD* pdwStubPhase);
   10065 HRESULT STDMETHODCALLTYPE ISoftDistExt_GetNextCodeBase_Proxy(
   10066     ISoftDistExt* This,
   10067     LPWSTR *szCodeBase,
   10068     LPDWORD dwMaxSize);
   10069 void __RPC_STUB ISoftDistExt_GetNextCodeBase_Stub(
   10070     IRpcStubBuffer* This,
   10071     IRpcChannelBuffer* pRpcChannelBuffer,
   10072     PRPC_MESSAGE pRpcMessage,
   10073     DWORD* pdwStubPhase);
   10074 HRESULT STDMETHODCALLTYPE ISoftDistExt_AsyncInstallDistributionUnit_Proxy(
   10075     ISoftDistExt* This,
   10076     IBindCtx *pbc,
   10077     LPVOID pvReserved,
   10078     DWORD flags,
   10079     LPCODEBASEHOLD lpcbh);
   10080 void __RPC_STUB ISoftDistExt_AsyncInstallDistributionUnit_Stub(
   10081     IRpcStubBuffer* This,
   10082     IRpcChannelBuffer* pRpcChannelBuffer,
   10083     PRPC_MESSAGE pRpcMessage,
   10084     DWORD* pdwStubPhase);
   10085 
   10086 #endif  /* __ISoftDistExt_INTERFACE_DEFINED__ */
   10087 
   10088 
   10089 STDAPI GetSoftwareUpdateInfo(LPCWSTR szDistUnit, LPSOFTDISTINFO psdi);
   10090 STDAPI SetSoftwareUpdateAdvertisementState(LPCWSTR szDistUnit, DWORD dwAdState, DWORD dwAdvertisedVersionMS, DWORD dwAdvertisedVersionLS);
   10091 #endif
   10092 
   10093 #ifndef _LPCATALOGFILEINFO_DEFINED
   10094 #define _LPCATALOGFILEINFO_DEFINED
   10095 
   10096 /*****************************************************************************
   10097  * ICatalogFileInfo interface
   10098  */
   10099 #ifndef __ICatalogFileInfo_INTERFACE_DEFINED__
   10100 #define __ICatalogFileInfo_INTERFACE_DEFINED__
   10101 
   10102 typedef ICatalogFileInfo *LPCATALOGFILEINFO;
   10103 
   10104 DEFINE_GUID(IID_ICatalogFileInfo, 0x711c7600, 0x6b48, 0x11d1, 0xb4,0x03, 0x00,0xaa,0x00,0xb9,0x2a,0xf1);
   10105 #if defined(__cplusplus) && !defined(CINTERFACE)
   10106 MIDL_INTERFACE("711c7600-6b48-11d1-b403-00aa00b92af1")
   10107 ICatalogFileInfo : public IUnknown
   10108 {
   10109     virtual HRESULT STDMETHODCALLTYPE GetCatalogFile(
   10110         LPSTR *ppszCatalogFile) = 0;
   10111 
   10112     virtual HRESULT STDMETHODCALLTYPE GetJavaTrust(
   10113         void **ppJavaTrust) = 0;
   10114 
   10115 };
   10116 #ifdef __CRT_UUID_DECL
   10117 __CRT_UUID_DECL(ICatalogFileInfo, 0x711c7600, 0x6b48, 0x11d1, 0xb4,0x03, 0x00,0xaa,0x00,0xb9,0x2a,0xf1)
   10118 #endif
   10119 #else
   10120 typedef struct ICatalogFileInfoVtbl {
   10121     BEGIN_INTERFACE
   10122 
   10123     /*** IUnknown methods ***/
   10124     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   10125         ICatalogFileInfo* This,
   10126         REFIID riid,
   10127         void **ppvObject);
   10128 
   10129     ULONG (STDMETHODCALLTYPE *AddRef)(
   10130         ICatalogFileInfo* This);
   10131 
   10132     ULONG (STDMETHODCALLTYPE *Release)(
   10133         ICatalogFileInfo* This);
   10134 
   10135     /*** ICatalogFileInfo methods ***/
   10136     HRESULT (STDMETHODCALLTYPE *GetCatalogFile)(
   10137         ICatalogFileInfo* This,
   10138         LPSTR *ppszCatalogFile);
   10139 
   10140     HRESULT (STDMETHODCALLTYPE *GetJavaTrust)(
   10141         ICatalogFileInfo* This,
   10142         void **ppJavaTrust);
   10143 
   10144     END_INTERFACE
   10145 } ICatalogFileInfoVtbl;
   10146 interface ICatalogFileInfo {
   10147     CONST_VTBL ICatalogFileInfoVtbl* lpVtbl;
   10148 };
   10149 
   10150 #ifdef COBJMACROS
   10151 #ifndef WIDL_C_INLINE_WRAPPERS
   10152 /*** IUnknown methods ***/
   10153 #define ICatalogFileInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   10154 #define ICatalogFileInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   10155 #define ICatalogFileInfo_Release(This) (This)->lpVtbl->Release(This)
   10156 /*** ICatalogFileInfo methods ***/
   10157 #define ICatalogFileInfo_GetCatalogFile(This,ppszCatalogFile) (This)->lpVtbl->GetCatalogFile(This,ppszCatalogFile)
   10158 #define ICatalogFileInfo_GetJavaTrust(This,ppJavaTrust) (This)->lpVtbl->GetJavaTrust(This,ppJavaTrust)
   10159 #else
   10160 /*** IUnknown methods ***/
   10161 static FORCEINLINE HRESULT ICatalogFileInfo_QueryInterface(ICatalogFileInfo* This,REFIID riid,void **ppvObject) {
   10162     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   10163 }
   10164 static FORCEINLINE ULONG ICatalogFileInfo_AddRef(ICatalogFileInfo* This) {
   10165     return This->lpVtbl->AddRef(This);
   10166 }
   10167 static FORCEINLINE ULONG ICatalogFileInfo_Release(ICatalogFileInfo* This) {
   10168     return This->lpVtbl->Release(This);
   10169 }
   10170 /*** ICatalogFileInfo methods ***/
   10171 static FORCEINLINE HRESULT ICatalogFileInfo_GetCatalogFile(ICatalogFileInfo* This,LPSTR *ppszCatalogFile) {
   10172     return This->lpVtbl->GetCatalogFile(This,ppszCatalogFile);
   10173 }
   10174 static FORCEINLINE HRESULT ICatalogFileInfo_GetJavaTrust(ICatalogFileInfo* This,void **ppJavaTrust) {
   10175     return This->lpVtbl->GetJavaTrust(This,ppJavaTrust);
   10176 }
   10177 #endif
   10178 #endif
   10179 
   10180 #endif
   10181 
   10182 HRESULT STDMETHODCALLTYPE ICatalogFileInfo_GetCatalogFile_Proxy(
   10183     ICatalogFileInfo* This,
   10184     LPSTR *ppszCatalogFile);
   10185 void __RPC_STUB ICatalogFileInfo_GetCatalogFile_Stub(
   10186     IRpcStubBuffer* This,
   10187     IRpcChannelBuffer* pRpcChannelBuffer,
   10188     PRPC_MESSAGE pRpcMessage,
   10189     DWORD* pdwStubPhase);
   10190 HRESULT STDMETHODCALLTYPE ICatalogFileInfo_GetJavaTrust_Proxy(
   10191     ICatalogFileInfo* This,
   10192     void **ppJavaTrust);
   10193 void __RPC_STUB ICatalogFileInfo_GetJavaTrust_Stub(
   10194     IRpcStubBuffer* This,
   10195     IRpcChannelBuffer* pRpcChannelBuffer,
   10196     PRPC_MESSAGE pRpcMessage,
   10197     DWORD* pdwStubPhase);
   10198 
   10199 #endif  /* __ICatalogFileInfo_INTERFACE_DEFINED__ */
   10200 
   10201 #endif
   10202 
   10203 #ifndef _LPDATAFILTER_DEFINED
   10204 #define _LPDATAFILTER_DEFINED
   10205 
   10206 /*****************************************************************************
   10207  * IDataFilter interface
   10208  */
   10209 #ifndef __IDataFilter_INTERFACE_DEFINED__
   10210 #define __IDataFilter_INTERFACE_DEFINED__
   10211 
   10212 typedef IDataFilter *LPDATAFILTER;
   10213 
   10214 DEFINE_GUID(IID_IDataFilter, 0x69d14c80, 0xc18e, 0x11d0, 0xa9,0xce, 0x00,0x60,0x97,0x94,0x23,0x11);
   10215 #if defined(__cplusplus) && !defined(CINTERFACE)
   10216 MIDL_INTERFACE("69d14c80-c18e-11d0-a9ce-006097942311")
   10217 IDataFilter : public IUnknown
   10218 {
   10219     virtual HRESULT STDMETHODCALLTYPE DoEncode(
   10220         DWORD dwFlags,
   10221         LONG lInBufferSize,
   10222         BYTE *pbInBuffer,
   10223         LONG lOutBufferSize,
   10224         BYTE *pbOutBuffer,
   10225         LONG lInBytesAvailable,
   10226         LONG *plInBytesRead,
   10227         LONG *plOutBytesWritten,
   10228         DWORD dwReserved) = 0;
   10229 
   10230     virtual HRESULT STDMETHODCALLTYPE DoDecode(
   10231         DWORD dwFlags,
   10232         LONG lInBufferSize,
   10233         BYTE *pbInBuffer,
   10234         LONG lOutBufferSize,
   10235         BYTE *pbOutBuffer,
   10236         LONG lInBytesAvailable,
   10237         LONG *plInBytesRead,
   10238         LONG *plOutBytesWritten,
   10239         DWORD dwReserved) = 0;
   10240 
   10241     virtual HRESULT STDMETHODCALLTYPE SetEncodingLevel(
   10242         DWORD dwEncLevel) = 0;
   10243 
   10244 };
   10245 #ifdef __CRT_UUID_DECL
   10246 __CRT_UUID_DECL(IDataFilter, 0x69d14c80, 0xc18e, 0x11d0, 0xa9,0xce, 0x00,0x60,0x97,0x94,0x23,0x11)
   10247 #endif
   10248 #else
   10249 typedef struct IDataFilterVtbl {
   10250     BEGIN_INTERFACE
   10251 
   10252     /*** IUnknown methods ***/
   10253     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   10254         IDataFilter* This,
   10255         REFIID riid,
   10256         void **ppvObject);
   10257 
   10258     ULONG (STDMETHODCALLTYPE *AddRef)(
   10259         IDataFilter* This);
   10260 
   10261     ULONG (STDMETHODCALLTYPE *Release)(
   10262         IDataFilter* This);
   10263 
   10264     /*** IDataFilter methods ***/
   10265     HRESULT (STDMETHODCALLTYPE *DoEncode)(
   10266         IDataFilter* This,
   10267         DWORD dwFlags,
   10268         LONG lInBufferSize,
   10269         BYTE *pbInBuffer,
   10270         LONG lOutBufferSize,
   10271         BYTE *pbOutBuffer,
   10272         LONG lInBytesAvailable,
   10273         LONG *plInBytesRead,
   10274         LONG *plOutBytesWritten,
   10275         DWORD dwReserved);
   10276 
   10277     HRESULT (STDMETHODCALLTYPE *DoDecode)(
   10278         IDataFilter* This,
   10279         DWORD dwFlags,
   10280         LONG lInBufferSize,
   10281         BYTE *pbInBuffer,
   10282         LONG lOutBufferSize,
   10283         BYTE *pbOutBuffer,
   10284         LONG lInBytesAvailable,
   10285         LONG *plInBytesRead,
   10286         LONG *plOutBytesWritten,
   10287         DWORD dwReserved);
   10288 
   10289     HRESULT (STDMETHODCALLTYPE *SetEncodingLevel)(
   10290         IDataFilter* This,
   10291         DWORD dwEncLevel);
   10292 
   10293     END_INTERFACE
   10294 } IDataFilterVtbl;
   10295 interface IDataFilter {
   10296     CONST_VTBL IDataFilterVtbl* lpVtbl;
   10297 };
   10298 
   10299 #ifdef COBJMACROS
   10300 #ifndef WIDL_C_INLINE_WRAPPERS
   10301 /*** IUnknown methods ***/
   10302 #define IDataFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   10303 #define IDataFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
   10304 #define IDataFilter_Release(This) (This)->lpVtbl->Release(This)
   10305 /*** IDataFilter methods ***/
   10306 #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)
   10307 #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)
   10308 #define IDataFilter_SetEncodingLevel(This,dwEncLevel) (This)->lpVtbl->SetEncodingLevel(This,dwEncLevel)
   10309 #else
   10310 /*** IUnknown methods ***/
   10311 static FORCEINLINE HRESULT IDataFilter_QueryInterface(IDataFilter* This,REFIID riid,void **ppvObject) {
   10312     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   10313 }
   10314 static FORCEINLINE ULONG IDataFilter_AddRef(IDataFilter* This) {
   10315     return This->lpVtbl->AddRef(This);
   10316 }
   10317 static FORCEINLINE ULONG IDataFilter_Release(IDataFilter* This) {
   10318     return This->lpVtbl->Release(This);
   10319 }
   10320 /*** IDataFilter methods ***/
   10321 static FORCEINLINE HRESULT IDataFilter_DoEncode(IDataFilter* This,DWORD dwFlags,LONG lInBufferSize,BYTE *pbInBuffer,LONG lOutBufferSize,BYTE *pbOutBuffer,LONG lInBytesAvailable,LONG *plInBytesRead,LONG *plOutBytesWritten,DWORD dwReserved) {
   10322     return This->lpVtbl->DoEncode(This,dwFlags,lInBufferSize,pbInBuffer,lOutBufferSize,pbOutBuffer,lInBytesAvailable,plInBytesRead,plOutBytesWritten,dwReserved);
   10323 }
   10324 static FORCEINLINE HRESULT IDataFilter_DoDecode(IDataFilter* This,DWORD dwFlags,LONG lInBufferSize,BYTE *pbInBuffer,LONG lOutBufferSize,BYTE *pbOutBuffer,LONG lInBytesAvailable,LONG *plInBytesRead,LONG *plOutBytesWritten,DWORD dwReserved) {
   10325     return This->lpVtbl->DoDecode(This,dwFlags,lInBufferSize,pbInBuffer,lOutBufferSize,pbOutBuffer,lInBytesAvailable,plInBytesRead,plOutBytesWritten,dwReserved);
   10326 }
   10327 static FORCEINLINE HRESULT IDataFilter_SetEncodingLevel(IDataFilter* This,DWORD dwEncLevel) {
   10328     return This->lpVtbl->SetEncodingLevel(This,dwEncLevel);
   10329 }
   10330 #endif
   10331 #endif
   10332 
   10333 #endif
   10334 
   10335 HRESULT STDMETHODCALLTYPE IDataFilter_DoEncode_Proxy(
   10336     IDataFilter* This,
   10337     DWORD dwFlags,
   10338     LONG lInBufferSize,
   10339     BYTE *pbInBuffer,
   10340     LONG lOutBufferSize,
   10341     BYTE *pbOutBuffer,
   10342     LONG lInBytesAvailable,
   10343     LONG *plInBytesRead,
   10344     LONG *plOutBytesWritten,
   10345     DWORD dwReserved);
   10346 void __RPC_STUB IDataFilter_DoEncode_Stub(
   10347     IRpcStubBuffer* This,
   10348     IRpcChannelBuffer* pRpcChannelBuffer,
   10349     PRPC_MESSAGE pRpcMessage,
   10350     DWORD* pdwStubPhase);
   10351 HRESULT STDMETHODCALLTYPE IDataFilter_DoDecode_Proxy(
   10352     IDataFilter* This,
   10353     DWORD dwFlags,
   10354     LONG lInBufferSize,
   10355     BYTE *pbInBuffer,
   10356     LONG lOutBufferSize,
   10357     BYTE *pbOutBuffer,
   10358     LONG lInBytesAvailable,
   10359     LONG *plInBytesRead,
   10360     LONG *plOutBytesWritten,
   10361     DWORD dwReserved);
   10362 void __RPC_STUB IDataFilter_DoDecode_Stub(
   10363     IRpcStubBuffer* This,
   10364     IRpcChannelBuffer* pRpcChannelBuffer,
   10365     PRPC_MESSAGE pRpcMessage,
   10366     DWORD* pdwStubPhase);
   10367 HRESULT STDMETHODCALLTYPE IDataFilter_SetEncodingLevel_Proxy(
   10368     IDataFilter* This,
   10369     DWORD dwEncLevel);
   10370 void __RPC_STUB IDataFilter_SetEncodingLevel_Stub(
   10371     IRpcStubBuffer* This,
   10372     IRpcChannelBuffer* pRpcChannelBuffer,
   10373     PRPC_MESSAGE pRpcMessage,
   10374     DWORD* pdwStubPhase);
   10375 
   10376 #endif  /* __IDataFilter_INTERFACE_DEFINED__ */
   10377 
   10378 #endif
   10379 
   10380 #ifndef _LPENCODINGFILTERFACTORY_DEFINED
   10381 #define _LPENCODINGFILTERFACTORY_DEFINED
   10382 
   10383 typedef struct _tagPROTOCOLFILTERDATA {
   10384     DWORD cbSize;
   10385     IInternetProtocolSink *pProtocolSink;
   10386     IInternetProtocol *pProtocol;
   10387     IUnknown *pUnk;
   10388     DWORD dwFilterFlags;
   10389 } PROTOCOLFILTERDATA;
   10390 
   10391 /*****************************************************************************
   10392  * IEncodingFilterFactory interface
   10393  */
   10394 #ifndef __IEncodingFilterFactory_INTERFACE_DEFINED__
   10395 #define __IEncodingFilterFactory_INTERFACE_DEFINED__
   10396 
   10397 typedef IEncodingFilterFactory *LPENCODINGFILTERFACTORY;
   10398 
   10399 typedef struct _tagDATAINFO {
   10400     ULONG ulTotalSize;
   10401     ULONG ulavrPacketSize;
   10402     ULONG ulConnectSpeed;
   10403     ULONG ulProcessorSpeed;
   10404 } DATAINFO;
   10405 
   10406 DEFINE_GUID(IID_IEncodingFilterFactory, 0x70bdde00, 0xc18e, 0x11d0, 0xa9,0xce, 0x00,0x60,0x97,0x94,0x23,0x11);
   10407 #if defined(__cplusplus) && !defined(CINTERFACE)
   10408 MIDL_INTERFACE("70bdde00-c18e-11d0-a9ce-006097942311")
   10409 IEncodingFilterFactory : public IUnknown
   10410 {
   10411     virtual HRESULT STDMETHODCALLTYPE FindBestFilter(
   10412         LPCWSTR pwzCodeIn,
   10413         LPCWSTR pwzCodeOut,
   10414         DATAINFO info,
   10415         IDataFilter **ppDF) = 0;
   10416 
   10417     virtual HRESULT STDMETHODCALLTYPE GetDefaultFilter(
   10418         LPCWSTR pwzCodeIn,
   10419         LPCWSTR pwzCodeOut,
   10420         IDataFilter **ppDF) = 0;
   10421 
   10422 };
   10423 #ifdef __CRT_UUID_DECL
   10424 __CRT_UUID_DECL(IEncodingFilterFactory, 0x70bdde00, 0xc18e, 0x11d0, 0xa9,0xce, 0x00,0x60,0x97,0x94,0x23,0x11)
   10425 #endif
   10426 #else
   10427 typedef struct IEncodingFilterFactoryVtbl {
   10428     BEGIN_INTERFACE
   10429 
   10430     /*** IUnknown methods ***/
   10431     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   10432         IEncodingFilterFactory* This,
   10433         REFIID riid,
   10434         void **ppvObject);
   10435 
   10436     ULONG (STDMETHODCALLTYPE *AddRef)(
   10437         IEncodingFilterFactory* This);
   10438 
   10439     ULONG (STDMETHODCALLTYPE *Release)(
   10440         IEncodingFilterFactory* This);
   10441 
   10442     /*** IEncodingFilterFactory methods ***/
   10443     HRESULT (STDMETHODCALLTYPE *FindBestFilter)(
   10444         IEncodingFilterFactory* This,
   10445         LPCWSTR pwzCodeIn,
   10446         LPCWSTR pwzCodeOut,
   10447         DATAINFO info,
   10448         IDataFilter **ppDF);
   10449 
   10450     HRESULT (STDMETHODCALLTYPE *GetDefaultFilter)(
   10451         IEncodingFilterFactory* This,
   10452         LPCWSTR pwzCodeIn,
   10453         LPCWSTR pwzCodeOut,
   10454         IDataFilter **ppDF);
   10455 
   10456     END_INTERFACE
   10457 } IEncodingFilterFactoryVtbl;
   10458 interface IEncodingFilterFactory {
   10459     CONST_VTBL IEncodingFilterFactoryVtbl* lpVtbl;
   10460 };
   10461 
   10462 #ifdef COBJMACROS
   10463 #ifndef WIDL_C_INLINE_WRAPPERS
   10464 /*** IUnknown methods ***/
   10465 #define IEncodingFilterFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   10466 #define IEncodingFilterFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
   10467 #define IEncodingFilterFactory_Release(This) (This)->lpVtbl->Release(This)
   10468 /*** IEncodingFilterFactory methods ***/
   10469 #define IEncodingFilterFactory_FindBestFilter(This,pwzCodeIn,pwzCodeOut,info,ppDF) (This)->lpVtbl->FindBestFilter(This,pwzCodeIn,pwzCodeOut,info,ppDF)
   10470 #define IEncodingFilterFactory_GetDefaultFilter(This,pwzCodeIn,pwzCodeOut,ppDF) (This)->lpVtbl->GetDefaultFilter(This,pwzCodeIn,pwzCodeOut,ppDF)
   10471 #else
   10472 /*** IUnknown methods ***/
   10473 static FORCEINLINE HRESULT IEncodingFilterFactory_QueryInterface(IEncodingFilterFactory* This,REFIID riid,void **ppvObject) {
   10474     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   10475 }
   10476 static FORCEINLINE ULONG IEncodingFilterFactory_AddRef(IEncodingFilterFactory* This) {
   10477     return This->lpVtbl->AddRef(This);
   10478 }
   10479 static FORCEINLINE ULONG IEncodingFilterFactory_Release(IEncodingFilterFactory* This) {
   10480     return This->lpVtbl->Release(This);
   10481 }
   10482 /*** IEncodingFilterFactory methods ***/
   10483 static FORCEINLINE HRESULT IEncodingFilterFactory_FindBestFilter(IEncodingFilterFactory* This,LPCWSTR pwzCodeIn,LPCWSTR pwzCodeOut,DATAINFO info,IDataFilter **ppDF) {
   10484     return This->lpVtbl->FindBestFilter(This,pwzCodeIn,pwzCodeOut,info,ppDF);
   10485 }
   10486 static FORCEINLINE HRESULT IEncodingFilterFactory_GetDefaultFilter(IEncodingFilterFactory* This,LPCWSTR pwzCodeIn,LPCWSTR pwzCodeOut,IDataFilter **ppDF) {
   10487     return This->lpVtbl->GetDefaultFilter(This,pwzCodeIn,pwzCodeOut,ppDF);
   10488 }
   10489 #endif
   10490 #endif
   10491 
   10492 #endif
   10493 
   10494 HRESULT STDMETHODCALLTYPE IEncodingFilterFactory_FindBestFilter_Proxy(
   10495     IEncodingFilterFactory* This,
   10496     LPCWSTR pwzCodeIn,
   10497     LPCWSTR pwzCodeOut,
   10498     DATAINFO info,
   10499     IDataFilter **ppDF);
   10500 void __RPC_STUB IEncodingFilterFactory_FindBestFilter_Stub(
   10501     IRpcStubBuffer* This,
   10502     IRpcChannelBuffer* pRpcChannelBuffer,
   10503     PRPC_MESSAGE pRpcMessage,
   10504     DWORD* pdwStubPhase);
   10505 HRESULT STDMETHODCALLTYPE IEncodingFilterFactory_GetDefaultFilter_Proxy(
   10506     IEncodingFilterFactory* This,
   10507     LPCWSTR pwzCodeIn,
   10508     LPCWSTR pwzCodeOut,
   10509     IDataFilter **ppDF);
   10510 void __RPC_STUB IEncodingFilterFactory_GetDefaultFilter_Stub(
   10511     IRpcStubBuffer* This,
   10512     IRpcChannelBuffer* pRpcChannelBuffer,
   10513     PRPC_MESSAGE pRpcMessage,
   10514     DWORD* pdwStubPhase);
   10515 
   10516 #endif  /* __IEncodingFilterFactory_INTERFACE_DEFINED__ */
   10517 
   10518 #endif
   10519 
   10520 #ifndef _HITLOGGING_DEFINED
   10521 #define _HITLOGGING_DEFINED
   10522 
   10523 WINBOOL WINAPI IsLoggingEnabledA(LPCSTR pszUrl);
   10524 WINBOOL WINAPI IsLoggingEnabledW(LPCWSTR pwszUrl);
   10525 
   10526 #define IsLoggingEnabled __MINGW_NAME_AW(IsLoggingEnabled)
   10527 typedef struct _tagHIT_LOGGING_INFO {
   10528     DWORD dwStructSize;
   10529     LPSTR lpszLoggedUrlName;
   10530     SYSTEMTIME StartTime;
   10531     SYSTEMTIME EndTime;
   10532     LPSTR lpszExtendedInfo;
   10533 } HIT_LOGGING_INFO;
   10534 typedef struct _tagHIT_LOGGING_INFO *LPHIT_LOGGING_INFO;
   10535 
   10536 WINBOOL WINAPI WriteHitLogging(LPHIT_LOGGING_INFO lpLogginginfo);
   10537 
   10538 #define CONFIRMSAFETYACTION_LOADOBJECT 0x1
   10539 
   10540 struct CONFIRMSAFETY {
   10541     CLSID clsid;
   10542     IUnknown *pUnk;
   10543     DWORD dwFlags;
   10544 };
   10545 
   10546 
   10547 EXTERN_C const GUID GUID_CUSTOM_CONFIRMOBJECTSAFETY;
   10548 #endif
   10549 
   10550 #ifndef _LPIWRAPPEDPROTOCOL_DEFINED
   10551 #define _LPIWRAPPEDPROTOCOL_DEFINED
   10552 
   10553 /*****************************************************************************
   10554  * IWrappedProtocol interface
   10555  */
   10556 #ifndef __IWrappedProtocol_INTERFACE_DEFINED__
   10557 #define __IWrappedProtocol_INTERFACE_DEFINED__
   10558 
   10559 typedef IWrappedProtocol *LPIWRAPPEDPROTOCOL;
   10560 
   10561 DEFINE_GUID(IID_IWrappedProtocol, 0x53c84785, 0x8425, 0x4dc5, 0x97,0x1b, 0xe5,0x8d,0x9c,0x19,0xf9,0xb6);
   10562 #if defined(__cplusplus) && !defined(CINTERFACE)
   10563 MIDL_INTERFACE("53c84785-8425-4dc5-971b-e58d9c19f9b6")
   10564 IWrappedProtocol : public IUnknown
   10565 {
   10566     virtual HRESULT STDMETHODCALLTYPE GetWrapperCode(
   10567         LONG *pnCode,
   10568         DWORD_PTR dwReserved) = 0;
   10569 
   10570 };
   10571 #ifdef __CRT_UUID_DECL
   10572 __CRT_UUID_DECL(IWrappedProtocol, 0x53c84785, 0x8425, 0x4dc5, 0x97,0x1b, 0xe5,0x8d,0x9c,0x19,0xf9,0xb6)
   10573 #endif
   10574 #else
   10575 typedef struct IWrappedProtocolVtbl {
   10576     BEGIN_INTERFACE
   10577 
   10578     /*** IUnknown methods ***/
   10579     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   10580         IWrappedProtocol* This,
   10581         REFIID riid,
   10582         void **ppvObject);
   10583 
   10584     ULONG (STDMETHODCALLTYPE *AddRef)(
   10585         IWrappedProtocol* This);
   10586 
   10587     ULONG (STDMETHODCALLTYPE *Release)(
   10588         IWrappedProtocol* This);
   10589 
   10590     /*** IWrappedProtocol methods ***/
   10591     HRESULT (STDMETHODCALLTYPE *GetWrapperCode)(
   10592         IWrappedProtocol* This,
   10593         LONG *pnCode,
   10594         DWORD_PTR dwReserved);
   10595 
   10596     END_INTERFACE
   10597 } IWrappedProtocolVtbl;
   10598 interface IWrappedProtocol {
   10599     CONST_VTBL IWrappedProtocolVtbl* lpVtbl;
   10600 };
   10601 
   10602 #ifdef COBJMACROS
   10603 #ifndef WIDL_C_INLINE_WRAPPERS
   10604 /*** IUnknown methods ***/
   10605 #define IWrappedProtocol_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   10606 #define IWrappedProtocol_AddRef(This) (This)->lpVtbl->AddRef(This)
   10607 #define IWrappedProtocol_Release(This) (This)->lpVtbl->Release(This)
   10608 /*** IWrappedProtocol methods ***/
   10609 #define IWrappedProtocol_GetWrapperCode(This,pnCode,dwReserved) (This)->lpVtbl->GetWrapperCode(This,pnCode,dwReserved)
   10610 #else
   10611 /*** IUnknown methods ***/
   10612 static FORCEINLINE HRESULT IWrappedProtocol_QueryInterface(IWrappedProtocol* This,REFIID riid,void **ppvObject) {
   10613     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   10614 }
   10615 static FORCEINLINE ULONG IWrappedProtocol_AddRef(IWrappedProtocol* This) {
   10616     return This->lpVtbl->AddRef(This);
   10617 }
   10618 static FORCEINLINE ULONG IWrappedProtocol_Release(IWrappedProtocol* This) {
   10619     return This->lpVtbl->Release(This);
   10620 }
   10621 /*** IWrappedProtocol methods ***/
   10622 static FORCEINLINE HRESULT IWrappedProtocol_GetWrapperCode(IWrappedProtocol* This,LONG *pnCode,DWORD_PTR dwReserved) {
   10623     return This->lpVtbl->GetWrapperCode(This,pnCode,dwReserved);
   10624 }
   10625 #endif
   10626 #endif
   10627 
   10628 #endif
   10629 
   10630 HRESULT STDMETHODCALLTYPE IWrappedProtocol_GetWrapperCode_Proxy(
   10631     IWrappedProtocol* This,
   10632     LONG *pnCode,
   10633     DWORD_PTR dwReserved);
   10634 void __RPC_STUB IWrappedProtocol_GetWrapperCode_Stub(
   10635     IRpcStubBuffer* This,
   10636     IRpcChannelBuffer* pRpcChannelBuffer,
   10637     PRPC_MESSAGE pRpcMessage,
   10638     DWORD* pdwStubPhase);
   10639 
   10640 #endif  /* __IWrappedProtocol_INTERFACE_DEFINED__ */
   10641 
   10642 #endif
   10643 
   10644 #ifndef _LPGETBINDHANDLE_DEFINED
   10645 #define _LPGETBINDHANDLE_DEFINED
   10646 
   10647 /*****************************************************************************
   10648  * IGetBindHandle interface
   10649  */
   10650 #ifndef __IGetBindHandle_INTERFACE_DEFINED__
   10651 #define __IGetBindHandle_INTERFACE_DEFINED__
   10652 
   10653 typedef IGetBindHandle *LPGETBINDHANDLE;
   10654 
   10655 typedef enum __WIDL_urlmon_generated_name_00000012 {
   10656     BINDHANDLETYPES_APPCACHE = 0x0,
   10657     BINDHANDLETYPES_DEPENDENCY = 0x1,
   10658     BINDHANDLETYPES_COUNT = 0x2
   10659 } BINDHANDLETYPES;
   10660 
   10661 DEFINE_GUID(IID_IGetBindHandle, 0xaf0ff408, 0x129d, 0x4b20, 0x91,0xf0, 0x02,0xbd,0x23,0xd8,0x83,0x52);
   10662 #if defined(__cplusplus) && !defined(CINTERFACE)
   10663 MIDL_INTERFACE("af0ff408-129d-4b20-91f0-02bd23d88352")
   10664 IGetBindHandle : public IUnknown
   10665 {
   10666     virtual HRESULT STDMETHODCALLTYPE GetBindHandle(
   10667         BINDHANDLETYPES enumRequestedHandle,
   10668         HANDLE *pRetHandle) = 0;
   10669 
   10670 };
   10671 #ifdef __CRT_UUID_DECL
   10672 __CRT_UUID_DECL(IGetBindHandle, 0xaf0ff408, 0x129d, 0x4b20, 0x91,0xf0, 0x02,0xbd,0x23,0xd8,0x83,0x52)
   10673 #endif
   10674 #else
   10675 typedef struct IGetBindHandleVtbl {
   10676     BEGIN_INTERFACE
   10677 
   10678     /*** IUnknown methods ***/
   10679     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   10680         IGetBindHandle* This,
   10681         REFIID riid,
   10682         void **ppvObject);
   10683 
   10684     ULONG (STDMETHODCALLTYPE *AddRef)(
   10685         IGetBindHandle* This);
   10686 
   10687     ULONG (STDMETHODCALLTYPE *Release)(
   10688         IGetBindHandle* This);
   10689 
   10690     /*** IGetBindHandle methods ***/
   10691     HRESULT (STDMETHODCALLTYPE *GetBindHandle)(
   10692         IGetBindHandle* This,
   10693         BINDHANDLETYPES enumRequestedHandle,
   10694         HANDLE *pRetHandle);
   10695 
   10696     END_INTERFACE
   10697 } IGetBindHandleVtbl;
   10698 interface IGetBindHandle {
   10699     CONST_VTBL IGetBindHandleVtbl* lpVtbl;
   10700 };
   10701 
   10702 #ifdef COBJMACROS
   10703 #ifndef WIDL_C_INLINE_WRAPPERS
   10704 /*** IUnknown methods ***/
   10705 #define IGetBindHandle_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   10706 #define IGetBindHandle_AddRef(This) (This)->lpVtbl->AddRef(This)
   10707 #define IGetBindHandle_Release(This) (This)->lpVtbl->Release(This)
   10708 /*** IGetBindHandle methods ***/
   10709 #define IGetBindHandle_GetBindHandle(This,enumRequestedHandle,pRetHandle) (This)->lpVtbl->GetBindHandle(This,enumRequestedHandle,pRetHandle)
   10710 #else
   10711 /*** IUnknown methods ***/
   10712 static FORCEINLINE HRESULT IGetBindHandle_QueryInterface(IGetBindHandle* This,REFIID riid,void **ppvObject) {
   10713     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   10714 }
   10715 static FORCEINLINE ULONG IGetBindHandle_AddRef(IGetBindHandle* This) {
   10716     return This->lpVtbl->AddRef(This);
   10717 }
   10718 static FORCEINLINE ULONG IGetBindHandle_Release(IGetBindHandle* This) {
   10719     return This->lpVtbl->Release(This);
   10720 }
   10721 /*** IGetBindHandle methods ***/
   10722 static FORCEINLINE HRESULT IGetBindHandle_GetBindHandle(IGetBindHandle* This,BINDHANDLETYPES enumRequestedHandle,HANDLE *pRetHandle) {
   10723     return This->lpVtbl->GetBindHandle(This,enumRequestedHandle,pRetHandle);
   10724 }
   10725 #endif
   10726 #endif
   10727 
   10728 #endif
   10729 
   10730 HRESULT STDMETHODCALLTYPE IGetBindHandle_GetBindHandle_Proxy(
   10731     IGetBindHandle* This,
   10732     BINDHANDLETYPES enumRequestedHandle,
   10733     HANDLE *pRetHandle);
   10734 void __RPC_STUB IGetBindHandle_GetBindHandle_Stub(
   10735     IRpcStubBuffer* This,
   10736     IRpcChannelBuffer* pRpcChannelBuffer,
   10737     PRPC_MESSAGE pRpcMessage,
   10738     DWORD* pdwStubPhase);
   10739 
   10740 #endif  /* __IGetBindHandle_INTERFACE_DEFINED__ */
   10741 
   10742 #endif
   10743 
   10744 #ifndef _XHRPLUGGABLEPROTOCOL_DEFINED
   10745 #define _XHRPLUGGABLEPROTOCOL_DEFINED
   10746 
   10747 typedef struct _tagPROTOCOL_ARGUMENT {
   10748     LPCWSTR szMethod;
   10749     LPCWSTR szTargetUrl;
   10750 } PROTOCOL_ARGUMENT;
   10751 typedef struct _tagPROTOCOL_ARGUMENT *LPPROTOCOL_ARGUMENT;
   10752 #endif
   10753 
   10754 #ifndef _LPBINDCALLBACKREDIRECT_DEFINED
   10755 #define _LPBINDCALLBACKREDIRECT_DEFINED
   10756 
   10757 /*****************************************************************************
   10758  * IBindCallbackRedirect interface
   10759  */
   10760 #ifndef __IBindCallbackRedirect_INTERFACE_DEFINED__
   10761 #define __IBindCallbackRedirect_INTERFACE_DEFINED__
   10762 
   10763 typedef IBindCallbackRedirect *LPBINDCALLBACKREDIRECT;
   10764 
   10765 DEFINE_GUID(IID_IBindCallbackRedirect, 0x11c81bc2, 0x121e, 0x4ed5, 0xb9,0xc4, 0xb4,0x30,0xbd,0x54,0xf2,0xc0);
   10766 #if defined(__cplusplus) && !defined(CINTERFACE)
   10767 MIDL_INTERFACE("11c81bc2-121e-4ed5-b9c4-b430bd54f2c0")
   10768 IBindCallbackRedirect : public IUnknown
   10769 {
   10770     virtual HRESULT STDMETHODCALLTYPE Redirect(
   10771         LPCWSTR lpcUrl,
   10772         VARIANT_BOOL *vbCancel) = 0;
   10773 
   10774 };
   10775 #ifdef __CRT_UUID_DECL
   10776 __CRT_UUID_DECL(IBindCallbackRedirect, 0x11c81bc2, 0x121e, 0x4ed5, 0xb9,0xc4, 0xb4,0x30,0xbd,0x54,0xf2,0xc0)
   10777 #endif
   10778 #else
   10779 typedef struct IBindCallbackRedirectVtbl {
   10780     BEGIN_INTERFACE
   10781 
   10782     /*** IUnknown methods ***/
   10783     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   10784         IBindCallbackRedirect* This,
   10785         REFIID riid,
   10786         void **ppvObject);
   10787 
   10788     ULONG (STDMETHODCALLTYPE *AddRef)(
   10789         IBindCallbackRedirect* This);
   10790 
   10791     ULONG (STDMETHODCALLTYPE *Release)(
   10792         IBindCallbackRedirect* This);
   10793 
   10794     /*** IBindCallbackRedirect methods ***/
   10795     HRESULT (STDMETHODCALLTYPE *Redirect)(
   10796         IBindCallbackRedirect* This,
   10797         LPCWSTR lpcUrl,
   10798         VARIANT_BOOL *vbCancel);
   10799 
   10800     END_INTERFACE
   10801 } IBindCallbackRedirectVtbl;
   10802 interface IBindCallbackRedirect {
   10803     CONST_VTBL IBindCallbackRedirectVtbl* lpVtbl;
   10804 };
   10805 
   10806 #ifdef COBJMACROS
   10807 #ifndef WIDL_C_INLINE_WRAPPERS
   10808 /*** IUnknown methods ***/
   10809 #define IBindCallbackRedirect_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   10810 #define IBindCallbackRedirect_AddRef(This) (This)->lpVtbl->AddRef(This)
   10811 #define IBindCallbackRedirect_Release(This) (This)->lpVtbl->Release(This)
   10812 /*** IBindCallbackRedirect methods ***/
   10813 #define IBindCallbackRedirect_Redirect(This,lpcUrl,vbCancel) (This)->lpVtbl->Redirect(This,lpcUrl,vbCancel)
   10814 #else
   10815 /*** IUnknown methods ***/
   10816 static FORCEINLINE HRESULT IBindCallbackRedirect_QueryInterface(IBindCallbackRedirect* This,REFIID riid,void **ppvObject) {
   10817     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   10818 }
   10819 static FORCEINLINE ULONG IBindCallbackRedirect_AddRef(IBindCallbackRedirect* This) {
   10820     return This->lpVtbl->AddRef(This);
   10821 }
   10822 static FORCEINLINE ULONG IBindCallbackRedirect_Release(IBindCallbackRedirect* This) {
   10823     return This->lpVtbl->Release(This);
   10824 }
   10825 /*** IBindCallbackRedirect methods ***/
   10826 static FORCEINLINE HRESULT IBindCallbackRedirect_Redirect(IBindCallbackRedirect* This,LPCWSTR lpcUrl,VARIANT_BOOL *vbCancel) {
   10827     return This->lpVtbl->Redirect(This,lpcUrl,vbCancel);
   10828 }
   10829 #endif
   10830 #endif
   10831 
   10832 #endif
   10833 
   10834 HRESULT STDMETHODCALLTYPE IBindCallbackRedirect_Redirect_Proxy(
   10835     IBindCallbackRedirect* This,
   10836     LPCWSTR lpcUrl,
   10837     VARIANT_BOOL *vbCancel);
   10838 void __RPC_STUB IBindCallbackRedirect_Redirect_Stub(
   10839     IRpcStubBuffer* This,
   10840     IRpcChannelBuffer* pRpcChannelBuffer,
   10841     PRPC_MESSAGE pRpcMessage,
   10842     DWORD* pdwStubPhase);
   10843 
   10844 #endif  /* __IBindCallbackRedirect_INTERFACE_DEFINED__ */
   10845 
   10846 #endif
   10847 
   10848 #endif
   10849 /* Begin additional prototypes for all interfaces */
   10850 
   10851 ULONG           __RPC_USER STGMEDIUM_UserSize     (ULONG *, ULONG, STGMEDIUM *);
   10852 unsigned char * __RPC_USER STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, STGMEDIUM *);
   10853 unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, STGMEDIUM *);
   10854 void            __RPC_USER STGMEDIUM_UserFree     (ULONG *, STGMEDIUM *);
   10855 ULONG           __RPC_USER CLIPFORMAT_UserSize     (ULONG *, ULONG, CLIPFORMAT *);
   10856 unsigned char * __RPC_USER CLIPFORMAT_UserMarshal  (ULONG *, unsigned char *, CLIPFORMAT *);
   10857 unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(ULONG *, unsigned char *, CLIPFORMAT *);
   10858 void            __RPC_USER CLIPFORMAT_UserFree     (ULONG *, CLIPFORMAT *);
   10859 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
   10860 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
   10861 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
   10862 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
   10863 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
   10864 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
   10865 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
   10866 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
   10867 
   10868 /* End additional prototypes */
   10869 
   10870 #ifdef __cplusplus
   10871 }
   10872 #endif
   10873 
   10874 #endif /* __urlmon_h__ */
   10875