zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

urlmon.h (348859B) - Raw


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