Advertisement
Guest User

Untitled

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