UrlMon.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:230k
源码类别:

模拟服务器

开发平台:

C/C++

  1. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  2. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  3.  /* File created by MIDL compiler version 6.00.0347 */
  4. /* Compiler settings for urlmon.idl:
  5.     Oicf, W1, Zp8, env=Win32 (32b run)
  6.     protocol : dce , ms_ext, c_ext
  7.     error checks: allocation ref bounds_check enum stub_data 
  8.     VC __declspec() decoration level: 
  9.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  10.          DECLSPEC_UUID(), MIDL_INTERFACE()
  11. */
  12. //@@MIDL_FILE_HEADING(  )
  13. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  14. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  15. #define __REQUIRED_RPCNDR_H_VERSION__ 440
  16. #endif
  17. #include "rpc.h"
  18. #include "rpcndr.h"
  19. #ifndef __RPCNDR_H_VERSION__
  20. #error this stub requires an updated version of <rpcndr.h>
  21. #endif // __RPCNDR_H_VERSION__
  22. #ifndef COM_NO_WINDOWS_H
  23. #include "windows.h"
  24. #include "ole2.h"
  25. #endif /*COM_NO_WINDOWS_H*/
  26. #ifndef __urlmon_h__
  27. #define __urlmon_h__
  28. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  29. #pragma once
  30. #endif
  31. /* Forward Declarations */ 
  32. #ifndef __IPersistMoniker_FWD_DEFINED__
  33. #define __IPersistMoniker_FWD_DEFINED__
  34. typedef interface IPersistMoniker IPersistMoniker;
  35. #endif  /* __IPersistMoniker_FWD_DEFINED__ */
  36. #ifndef __IMonikerProp_FWD_DEFINED__
  37. #define __IMonikerProp_FWD_DEFINED__
  38. typedef interface IMonikerProp IMonikerProp;
  39. #endif  /* __IMonikerProp_FWD_DEFINED__ */
  40. #ifndef __IBindProtocol_FWD_DEFINED__
  41. #define __IBindProtocol_FWD_DEFINED__
  42. typedef interface IBindProtocol IBindProtocol;
  43. #endif  /* __IBindProtocol_FWD_DEFINED__ */
  44. #ifndef __IBinding_FWD_DEFINED__
  45. #define __IBinding_FWD_DEFINED__
  46. typedef interface IBinding IBinding;
  47. #endif  /* __IBinding_FWD_DEFINED__ */
  48. #ifndef __IBindStatusCallback_FWD_DEFINED__
  49. #define __IBindStatusCallback_FWD_DEFINED__
  50. typedef interface IBindStatusCallback IBindStatusCallback;
  51. #endif  /* __IBindStatusCallback_FWD_DEFINED__ */
  52. #ifndef __IAuthenticate_FWD_DEFINED__
  53. #define __IAuthenticate_FWD_DEFINED__
  54. typedef interface IAuthenticate IAuthenticate;
  55. #endif  /* __IAuthenticate_FWD_DEFINED__ */
  56. #ifndef __IHttpNegotiate_FWD_DEFINED__
  57. #define __IHttpNegotiate_FWD_DEFINED__
  58. typedef interface IHttpNegotiate IHttpNegotiate;
  59. #endif  /* __IHttpNegotiate_FWD_DEFINED__ */
  60. #ifndef __IHttpNegotiate2_FWD_DEFINED__
  61. #define __IHttpNegotiate2_FWD_DEFINED__
  62. typedef interface IHttpNegotiate2 IHttpNegotiate2;
  63. #endif  /* __IHttpNegotiate2_FWD_DEFINED__ */
  64. #ifndef __IWindowForBindingUI_FWD_DEFINED__
  65. #define __IWindowForBindingUI_FWD_DEFINED__
  66. typedef interface IWindowForBindingUI IWindowForBindingUI;
  67. #endif  /* __IWindowForBindingUI_FWD_DEFINED__ */
  68. #ifndef __ICodeInstall_FWD_DEFINED__
  69. #define __ICodeInstall_FWD_DEFINED__
  70. typedef interface ICodeInstall ICodeInstall;
  71. #endif  /* __ICodeInstall_FWD_DEFINED__ */
  72. #ifndef __IWinInetInfo_FWD_DEFINED__
  73. #define __IWinInetInfo_FWD_DEFINED__
  74. typedef interface IWinInetInfo IWinInetInfo;
  75. #endif  /* __IWinInetInfo_FWD_DEFINED__ */
  76. #ifndef __IHttpSecurity_FWD_DEFINED__
  77. #define __IHttpSecurity_FWD_DEFINED__
  78. typedef interface IHttpSecurity IHttpSecurity;
  79. #endif  /* __IHttpSecurity_FWD_DEFINED__ */
  80. #ifndef __IWinInetHttpInfo_FWD_DEFINED__
  81. #define __IWinInetHttpInfo_FWD_DEFINED__
  82. typedef interface IWinInetHttpInfo IWinInetHttpInfo;
  83. #endif  /* __IWinInetHttpInfo_FWD_DEFINED__ */
  84. #ifndef __IBindHost_FWD_DEFINED__
  85. #define __IBindHost_FWD_DEFINED__
  86. typedef interface IBindHost IBindHost;
  87. #endif  /* __IBindHost_FWD_DEFINED__ */
  88. #ifndef __IInternet_FWD_DEFINED__
  89. #define __IInternet_FWD_DEFINED__
  90. typedef interface IInternet IInternet;
  91. #endif  /* __IInternet_FWD_DEFINED__ */
  92. #ifndef __IInternetBindInfo_FWD_DEFINED__
  93. #define __IInternetBindInfo_FWD_DEFINED__
  94. typedef interface IInternetBindInfo IInternetBindInfo;
  95. #endif  /* __IInternetBindInfo_FWD_DEFINED__ */
  96. #ifndef __IInternetProtocolRoot_FWD_DEFINED__
  97. #define __IInternetProtocolRoot_FWD_DEFINED__
  98. typedef interface IInternetProtocolRoot IInternetProtocolRoot;
  99. #endif  /* __IInternetProtocolRoot_FWD_DEFINED__ */
  100. #ifndef __IInternetProtocol_FWD_DEFINED__
  101. #define __IInternetProtocol_FWD_DEFINED__
  102. typedef interface IInternetProtocol IInternetProtocol;
  103. #endif  /* __IInternetProtocol_FWD_DEFINED__ */
  104. #ifndef __IInternetProtocolSink_FWD_DEFINED__
  105. #define __IInternetProtocolSink_FWD_DEFINED__
  106. typedef interface IInternetProtocolSink IInternetProtocolSink;
  107. #endif  /* __IInternetProtocolSink_FWD_DEFINED__ */
  108. #ifndef __IInternetProtocolSinkStackable_FWD_DEFINED__
  109. #define __IInternetProtocolSinkStackable_FWD_DEFINED__
  110. typedef interface IInternetProtocolSinkStackable IInternetProtocolSinkStackable;
  111. #endif  /* __IInternetProtocolSinkStackable_FWD_DEFINED__ */
  112. #ifndef __IInternetSession_FWD_DEFINED__
  113. #define __IInternetSession_FWD_DEFINED__
  114. typedef interface IInternetSession IInternetSession;
  115. #endif  /* __IInternetSession_FWD_DEFINED__ */
  116. #ifndef __IInternetThreadSwitch_FWD_DEFINED__
  117. #define __IInternetThreadSwitch_FWD_DEFINED__
  118. typedef interface IInternetThreadSwitch IInternetThreadSwitch;
  119. #endif  /* __IInternetThreadSwitch_FWD_DEFINED__ */
  120. #ifndef __IInternetPriority_FWD_DEFINED__
  121. #define __IInternetPriority_FWD_DEFINED__
  122. typedef interface IInternetPriority IInternetPriority;
  123. #endif  /* __IInternetPriority_FWD_DEFINED__ */
  124. #ifndef __IInternetProtocolInfo_FWD_DEFINED__
  125. #define __IInternetProtocolInfo_FWD_DEFINED__
  126. typedef interface IInternetProtocolInfo IInternetProtocolInfo;
  127. #endif  /* __IInternetProtocolInfo_FWD_DEFINED__ */
  128. #ifndef __IInternetSecurityMgrSite_FWD_DEFINED__
  129. #define __IInternetSecurityMgrSite_FWD_DEFINED__
  130. typedef interface IInternetSecurityMgrSite IInternetSecurityMgrSite;
  131. #endif  /* __IInternetSecurityMgrSite_FWD_DEFINED__ */
  132. #ifndef __IInternetSecurityManager_FWD_DEFINED__
  133. #define __IInternetSecurityManager_FWD_DEFINED__
  134. typedef interface IInternetSecurityManager IInternetSecurityManager;
  135. #endif  /* __IInternetSecurityManager_FWD_DEFINED__ */
  136. #ifndef __IInternetHostSecurityManager_FWD_DEFINED__
  137. #define __IInternetHostSecurityManager_FWD_DEFINED__
  138. typedef interface IInternetHostSecurityManager IInternetHostSecurityManager;
  139. #endif  /* __IInternetHostSecurityManager_FWD_DEFINED__ */
  140. #ifndef __IInternetZoneManager_FWD_DEFINED__
  141. #define __IInternetZoneManager_FWD_DEFINED__
  142. typedef interface IInternetZoneManager IInternetZoneManager;
  143. #endif  /* __IInternetZoneManager_FWD_DEFINED__ */
  144. #ifndef __ISoftDistExt_FWD_DEFINED__
  145. #define __ISoftDistExt_FWD_DEFINED__
  146. typedef interface ISoftDistExt ISoftDistExt;
  147. #endif  /* __ISoftDistExt_FWD_DEFINED__ */
  148. #ifndef __ICatalogFileInfo_FWD_DEFINED__
  149. #define __ICatalogFileInfo_FWD_DEFINED__
  150. typedef interface ICatalogFileInfo ICatalogFileInfo;
  151. #endif  /* __ICatalogFileInfo_FWD_DEFINED__ */
  152. #ifndef __IDataFilter_FWD_DEFINED__
  153. #define __IDataFilter_FWD_DEFINED__
  154. typedef interface IDataFilter IDataFilter;
  155. #endif  /* __IDataFilter_FWD_DEFINED__ */
  156. #ifndef __IEncodingFilterFactory_FWD_DEFINED__
  157. #define __IEncodingFilterFactory_FWD_DEFINED__
  158. typedef interface IEncodingFilterFactory IEncodingFilterFactory;
  159. #endif  /* __IEncodingFilterFactory_FWD_DEFINED__ */
  160. #ifndef __IWrappedProtocol_FWD_DEFINED__
  161. #define __IWrappedProtocol_FWD_DEFINED__
  162. typedef interface IWrappedProtocol IWrappedProtocol;
  163. #endif  /* __IWrappedProtocol_FWD_DEFINED__ */
  164. /* header files for imported files */
  165. #include "objidl.h"
  166. #include "oleidl.h"
  167. #include "servprov.h"
  168. #include "msxml.h"
  169. #ifdef __cplusplus
  170. extern "C"{
  171. #endif 
  172. void * __RPC_USER MIDL_user_allocate(size_t);
  173. void __RPC_USER MIDL_user_free( void * ); 
  174. /* interface __MIDL_itf_urlmon_0000 */
  175. /* [local] */ 
  176. //=--------------------------------------------------------------------------=
  177. // UrlMon.h
  178. //=--------------------------------------------------------------------------=
  179. // (C) Copyright 1995-1998 Microsoft Corporation.  All Rights Reserved.
  180. //
  181. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  182. // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  183. // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  184. // PARTICULAR PURPOSE.
  185. //=--------------------------------------------------------------------------=
  186. #pragma comment(lib,"uuid.lib")
  187. //---------------------------------------------------------------------------=
  188. // URL Moniker Interfaces.
  189. // Side-by-Side clsid
  190. EXTERN_C const IID CLSID_SBS_StdURLMoniker;  
  191. EXTERN_C const IID CLSID_SBS_HttpProtocol;   
  192. EXTERN_C const IID CLSID_SBS_FtpProtocol;    
  193. EXTERN_C const IID CLSID_SBS_GopherProtocol; 
  194. EXTERN_C const IID CLSID_SBS_HttpSProtocol;  
  195. EXTERN_C const IID CLSID_SBS_FileProtocol;   
  196. EXTERN_C const IID CLSID_SBS_MkProtocol;     
  197. EXTERN_C const IID CLSID_SBS_UrlMkBindCtx;   
  198. EXTERN_C const IID CLSID_SBS_SoftDistExt;  
  199. EXTERN_C const IID CLSID_SBS_StdEncodingFilterFac; 
  200. EXTERN_C const IID CLSID_SBS_DeCompMimeFilter;     
  201. EXTERN_C const IID CLSID_SBS_CdlProtocol;          
  202. EXTERN_C const IID CLSID_SBS_ClassInstallFilter;   
  203. EXTERN_C const IID CLSID_SBS_InternetSecurityManager;  
  204. EXTERN_C const IID CLSID_SBS_InternetZoneManager;  
  205. // END Side-by-Side clsid
  206. // These are for backwards compatibility with previous URLMON versions
  207. #define BINDF_DONTUSECACHE BINDF_GETNEWESTVERSION
  208. #define BINDF_DONTPUTINCACHE BINDF_NOWRITECACHE
  209. #define BINDF_NOCOPYDATA BINDF_PULLDATA
  210. #define INVALID_P_ROOT_SECURITY_ID ((BYTE*)-1)
  211. #define PI_DOCFILECLSIDLOOKUP PI_CLSIDLOOKUP
  212. EXTERN_C const IID IID_IAsyncMoniker;    
  213. EXTERN_C const IID CLSID_StdURLMoniker;  
  214. EXTERN_C const IID CLSID_HttpProtocol;   
  215. EXTERN_C const IID CLSID_FtpProtocol;    
  216. EXTERN_C const IID CLSID_GopherProtocol; 
  217. EXTERN_C const IID CLSID_HttpSProtocol;  
  218. EXTERN_C const IID CLSID_FileProtocol;   
  219. EXTERN_C const IID CLSID_MkProtocol;     
  220. EXTERN_C const IID CLSID_StdURLProtocol; 
  221. EXTERN_C const IID CLSID_UrlMkBindCtx;   
  222. EXTERN_C const IID CLSID_StdEncodingFilterFac; 
  223. EXTERN_C const IID CLSID_DeCompMimeFilter;     
  224. EXTERN_C const IID CLSID_CdlProtocol;          
  225. EXTERN_C const IID CLSID_ClassInstallFilter;   
  226. EXTERN_C const IID IID_IAsyncBindCtx;    
  227.  
  228. #define SZ_URLCONTEXT           OLESTR("URL Context")
  229. #define SZ_ASYNC_CALLEE         OLESTR("AsyncCallee")
  230. #define MKSYS_URLMONIKER         6            
  231. #define URL_MK_LEGACY            0            
  232. #define URL_MK_UNIFORM           1            
  233. #define URL_MK_NO_CANONICALIZE   2            
  234.  
  235. STDAPI CreateURLMoniker(LPMONIKER pMkCtx, LPCWSTR szURL, LPMONIKER FAR * ppmk);             
  236. STDAPI CreateURLMonikerEx(LPMONIKER pMkCtx, LPCWSTR szURL, LPMONIKER FAR * ppmk, DWORD dwFlags);             
  237. STDAPI GetClassURL(LPCWSTR szURL, CLSID *pClsID);                                           
  238. STDAPI CreateAsyncBindCtx(DWORD reserved, IBindStatusCallback *pBSCb,                       
  239.                                 IEnumFORMATETC *pEFetc, IBindCtx **ppBC);                   
  240. STDAPI CreateAsyncBindCtxEx(IBindCtx *pbc, DWORD dwOptions, IBindStatusCallback *pBSCb, IEnumFORMATETC *pEnum,   
  241.                             IBindCtx **ppBC, DWORD reserved);                                                     
  242. STDAPI MkParseDisplayNameEx(IBindCtx *pbc, LPCWSTR szDisplayName, ULONG *pchEaten,          
  243.                                 LPMONIKER *ppmk);                                           
  244. STDAPI RegisterBindStatusCallback(LPBC pBC, IBindStatusCallback *pBSCb,                     
  245.                                 IBindStatusCallback**  ppBSCBPrev, DWORD dwReserved);       
  246. STDAPI RevokeBindStatusCallback(LPBC pBC, IBindStatusCallback *pBSCb);                      
  247. STDAPI GetClassFileOrMime(LPBC pBC, LPCWSTR szFilename, LPVOID pBuffer, DWORD cbSize, LPCWSTR szMime, DWORD dwReserved, CLSID *pclsid); 
  248. STDAPI IsValidURL(LPBC pBC, LPCWSTR szURL, DWORD dwReserved);                               
  249. STDAPI CoGetClassObjectFromURL( REFCLSID rCLASSID,
  250.             LPCWSTR szCODE, DWORD dwFileVersionMS, 
  251.             DWORD dwFileVersionLS, LPCWSTR szTYPE,
  252.             LPBINDCTX pBindCtx, DWORD dwClsContext,
  253.             LPVOID pvReserved, REFIID riid, LPVOID * ppv);
  254. STDAPI FaultInIEFeature( HWND hWnd,
  255.             uCLSSPEC *pClassSpec,
  256.             QUERYCONTEXT *pQuery, DWORD dwFlags);                                           
  257. STDAPI GetComponentIDFromCLSSPEC(uCLSSPEC *pClassspec,
  258.              LPSTR * ppszComponentID);                                                      
  259. // flags for FaultInIEFeature
  260. #define FIEF_FLAG_FORCE_JITUI               0x1     // force JIT ui even if
  261.                                                  // previoulsy rejected by 
  262.                                                  // user in this session or
  263.                                                  // marked as Never Ask Again
  264. #define FIEF_FLAG_PEEK                      0x2     // just peek, don't faultin
  265. #define FIEF_FLAG_SKIP_INSTALLED_VERSION_CHECK        0x4     // force JIT without checking local version
  266.  
  267. //helper apis                                                                               
  268. STDAPI IsAsyncMoniker(IMoniker* pmk);                                                       
  269. STDAPI CreateURLBinding(LPCWSTR lpszUrl, IBindCtx *pbc, IBinding **ppBdg);                  
  270.  
  271. STDAPI RegisterMediaTypes(UINT ctypes, const LPCSTR* rgszTypes, CLIPFORMAT* rgcfTypes);            
  272. STDAPI FindMediaType(LPCSTR rgszTypes, CLIPFORMAT* rgcfTypes);                                       
  273. STDAPI CreateFormatEnumerator( UINT cfmtetc, FORMATETC* rgfmtetc, IEnumFORMATETC** ppenumfmtetc); 
  274. STDAPI RegisterFormatEnumerator(LPBC pBC, IEnumFORMATETC *pEFetc, DWORD reserved);          
  275. STDAPI RevokeFormatEnumerator(LPBC pBC, IEnumFORMATETC *pEFetc);                            
  276. STDAPI RegisterMediaTypeClass(LPBC pBC,UINT ctypes, const LPCSTR* rgszTypes, CLSID *rgclsID, DWORD reserved);    
  277. STDAPI FindMediaTypeClass(LPBC pBC, LPCSTR szType, CLSID *pclsID, DWORD reserved);                          
  278. STDAPI UrlMkSetSessionOption(DWORD dwOption, LPVOID pBuffer, DWORD dwBufferLength, DWORD dwReserved);       
  279. STDAPI UrlMkGetSessionOption(DWORD dwOption, LPVOID pBuffer, DWORD dwBufferLength, DWORD *pdwBufferLength, DWORD dwReserved);       
  280. STDAPI FindMimeFromData(                                                                                                                  
  281.                         LPBC pBC,                           // bind context - can be NULL                                                 
  282.                         LPCWSTR pwzUrl,                     // url - can be null                                                          
  283.                         LPVOID pBuffer,                     // buffer with data to sniff - can be null (pwzUrl must be valid)             
  284.                         DWORD cbSize,                       // size of buffer                                                             
  285.                         LPCWSTR pwzMimeProposed,            // proposed mime if - can be null                                             
  286.                         DWORD dwMimeFlags,                  // will be defined                                                            
  287.                         LPWSTR *ppwzMimeOut,                // the suggested mime                                                         
  288.                         DWORD dwReserved);                  // must be 0                                                                  
  289. #define     FMFD_DEFAULT        0x00000000 
  290. #define     FMFD_URLASFILENAME  0x00000001 
  291. STDAPI ObtainUserAgentString(DWORD dwOption, LPSTR pszUAOut, DWORD* cbSize);       
  292. STDAPI CompareSecurityIds(BYTE* pbSecurityId1, DWORD dwLen1, BYTE* pbSecurityId2, DWORD dwLen2, DWORD dwReserved);    
  293.  
  294. // URLMON-specific defines for UrlMkSetSessionOption() above
  295. #define URLMON_OPTION_USERAGENT  0x10000001
  296. #define URLMON_OPTION_USERAGENT_REFRESH  0x10000002
  297. #define URLMON_OPTION_URL_ENCODING       0x10000004
  298.  
  299. #define CF_NULL                 0                                  
  300. #define CFSTR_MIME_NULL         NULL                               
  301. #define CFSTR_MIME_TEXT         (TEXT("text/plain"))             
  302. #define CFSTR_MIME_RICHTEXT     (TEXT("text/richtext"))          
  303. #define CFSTR_MIME_X_BITMAP     (TEXT("image/x-xbitmap"))        
  304. #define CFSTR_MIME_POSTSCRIPT   (TEXT("application/postscript")) 
  305. #define CFSTR_MIME_AIFF         (TEXT("audio/aiff"))             
  306. #define CFSTR_MIME_BASICAUDIO   (TEXT("audio/basic"))            
  307. #define CFSTR_MIME_WAV          (TEXT("audio/wav"))              
  308. #define CFSTR_MIME_X_WAV        (TEXT("audio/x-wav"))            
  309. #define CFSTR_MIME_GIF          (TEXT("image/gif"))              
  310. #define CFSTR_MIME_PJPEG        (TEXT("image/pjpeg"))            
  311. #define CFSTR_MIME_JPEG         (TEXT("image/jpeg"))             
  312. #define CFSTR_MIME_TIFF         (TEXT("image/tiff"))             
  313. #define CFSTR_MIME_X_PNG        (TEXT("image/x-png"))            
  314. #define CFSTR_MIME_BMP          (TEXT("image/bmp"))              
  315. #define CFSTR_MIME_X_ART        (TEXT("image/x-jg"))             
  316. #define CFSTR_MIME_X_EMF        (TEXT("image/x-emf"))            
  317. #define CFSTR_MIME_X_WMF        (TEXT("image/x-wmf"))            
  318. #define CFSTR_MIME_AVI          (TEXT("video/avi"))              
  319. #define CFSTR_MIME_MPEG         (TEXT("video/mpeg"))             
  320. #define CFSTR_MIME_FRACTALS     (TEXT("application/fractals"))   
  321. #define CFSTR_MIME_RAWDATA      (TEXT("application/octet-stream"))
  322. #define CFSTR_MIME_RAWDATASTRM  (TEXT("application/octet-stream"))
  323. #define CFSTR_MIME_PDF          (TEXT("application/pdf"))        
  324. #define CFSTR_MIME_HTA          (TEXT("application/hta"))        
  325. #define CFSTR_MIME_X_AIFF       (TEXT("audio/x-aiff"))           
  326. #define CFSTR_MIME_X_REALAUDIO  (TEXT("audio/x-pn-realaudio"))   
  327. #define CFSTR_MIME_XBM          (TEXT("image/xbm"))              
  328. #define CFSTR_MIME_QUICKTIME    (TEXT("video/quicktime"))        
  329. #define CFSTR_MIME_X_MSVIDEO    (TEXT("video/x-msvideo"))        
  330. #define CFSTR_MIME_X_SGI_MOVIE  (TEXT("video/x-sgi-movie"))      
  331. #define CFSTR_MIME_HTML         (TEXT("text/html"))              
  332. #define CFSTR_MIME_XML          (TEXT("text/xml"))               
  333.  
  334. // MessageId: MK_S_ASYNCHRONOUS                                              
  335. // MessageText: Operation is successful, but will complete asynchronously.   
  336. //                                                                           
  337. #define MK_S_ASYNCHRONOUS    _HRESULT_TYPEDEF_(0x000401E8L)                  
  338. #ifndef S_ASYNCHRONOUS                                                       
  339. #define S_ASYNCHRONOUS       MK_S_ASYNCHRONOUS                               
  340. #endif                                                                       
  341.                                                                              
  342. #ifndef E_PENDING                                                            
  343. #define E_PENDING _HRESULT_TYPEDEF_(0x8000000AL)                             
  344. #endif                                                                       
  345.                                                                              
  346. //                                                                           
  347. //                                                                           
  348. // WinINet and protocol specific errors are mapped to one of the following   
  349. // error which are returned in IBSC::OnStopBinding                           
  350. //                                                                           
  351. //                                                                           
  352. // Note: FACILITY C is split into ranges of 1k                               
  353. // C0000 - C03FF  INET_E_ (URLMON's original hresult)                        
  354. // C0400 - C07FF  INET_E_CLIENT_xxx                                          
  355. // C0800 - C0BFF  INET_E_SERVER_xxx                                          
  356. // C0C00 - C0FFF  INET_E_????                                                
  357. // C1000 - C13FF  INET_E_AGENT_xxx (info delivery agents)                    
  358. #define INET_E_INVALID_URL               _HRESULT_TYPEDEF_(0x800C0002L)      
  359. #define INET_E_NO_SESSION                _HRESULT_TYPEDEF_(0x800C0003L)      
  360. #define INET_E_CANNOT_CONNECT            _HRESULT_TYPEDEF_(0x800C0004L)      
  361. #define INET_E_RESOURCE_NOT_FOUND        _HRESULT_TYPEDEF_(0x800C0005L)      
  362. #define INET_E_OBJECT_NOT_FOUND          _HRESULT_TYPEDEF_(0x800C0006L)      
  363. #define INET_E_DATA_NOT_AVAILABLE        _HRESULT_TYPEDEF_(0x800C0007L)      
  364. #define INET_E_DOWNLOAD_FAILURE          _HRESULT_TYPEDEF_(0x800C0008L)      
  365. #define INET_E_AUTHENTICATION_REQUIRED   _HRESULT_TYPEDEF_(0x800C0009L)      
  366. #define INET_E_NO_VALID_MEDIA            _HRESULT_TYPEDEF_(0x800C000AL)      
  367. #define INET_E_CONNECTION_TIMEOUT        _HRESULT_TYPEDEF_(0x800C000BL)      
  368. #define INET_E_INVALID_REQUEST           _HRESULT_TYPEDEF_(0x800C000CL)      
  369. #define INET_E_UNKNOWN_PROTOCOL          _HRESULT_TYPEDEF_(0x800C000DL)      
  370. #define INET_E_SECURITY_PROBLEM          _HRESULT_TYPEDEF_(0x800C000EL)      
  371. #define INET_E_CANNOT_LOAD_DATA          _HRESULT_TYPEDEF_(0x800C000FL)      
  372. #define INET_E_CANNOT_INSTANTIATE_OBJECT _HRESULT_TYPEDEF_(0x800C0010L)      
  373. #define INET_E_REDIRECT_FAILED           _HRESULT_TYPEDEF_(0x800C0014L)      
  374. #define INET_E_REDIRECT_TO_DIR           _HRESULT_TYPEDEF_(0x800C0015L)      
  375. #define INET_E_CANNOT_LOCK_REQUEST       _HRESULT_TYPEDEF_(0x800C0016L)      
  376. #define INET_E_USE_EXTEND_BINDING        _HRESULT_TYPEDEF_(0x800C0017L)      
  377. #define INET_E_TERMINATED_BIND           _HRESULT_TYPEDEF_(0x800C0018L)      
  378. #define INET_E_ERROR_FIRST               _HRESULT_TYPEDEF_(0x800C0002L)      
  379. #define INET_E_CODE_DOWNLOAD_DECLINED    _HRESULT_TYPEDEF_(0x800C0100L)      
  380. #define INET_E_RESULT_DISPATCHED         _HRESULT_TYPEDEF_(0x800C0200L)      
  381. #define INET_E_CANNOT_REPLACE_SFP_FILE   _HRESULT_TYPEDEF_(0x800C0300L)      
  382. #define INET_E_ERROR_LAST                INET_E_CANNOT_REPLACE_SFP_FILE
  383. #ifndef _LPPERSISTMONIKER_DEFINED
  384. #define _LPPERSISTMONIKER_DEFINED
  385. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_v0_0_c_ifspec;
  386. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_v0_0_s_ifspec;
  387. #ifndef __IPersistMoniker_INTERFACE_DEFINED__
  388. #define __IPersistMoniker_INTERFACE_DEFINED__
  389. /* interface IPersistMoniker */
  390. /* [unique][uuid][object] */ 
  391. typedef /* [unique] */ IPersistMoniker *LPPERSISTMONIKER;
  392. EXTERN_C const IID IID_IPersistMoniker;
  393. #if defined(__cplusplus) && !defined(CINTERFACE)
  394.     
  395.     MIDL_INTERFACE("79eac9c9-baf9-11ce-8c82-00aa004ba90b")
  396.     IPersistMoniker : public IUnknown
  397.     {
  398.     public:
  399.         virtual HRESULT STDMETHODCALLTYPE GetClassID( 
  400.             /* [out] */ CLSID *pClassID) = 0;
  401.         
  402.         virtual HRESULT STDMETHODCALLTYPE IsDirty( void) = 0;
  403.         
  404.         virtual HRESULT STDMETHODCALLTYPE Load( 
  405.             /* [in] */ BOOL fFullyAvailable,
  406.             /* [in] */ IMoniker *pimkName,
  407.             /* [in] */ LPBC pibc,
  408.             /* [in] */ DWORD grfMode) = 0;
  409.         
  410.         virtual HRESULT STDMETHODCALLTYPE Save( 
  411.             /* [in] */ IMoniker *pimkName,
  412.             /* [in] */ LPBC pbc,
  413.             /* [in] */ BOOL fRemember) = 0;
  414.         
  415.         virtual HRESULT STDMETHODCALLTYPE SaveCompleted( 
  416.             /* [in] */ IMoniker *pimkName,
  417.             /* [in] */ LPBC pibc) = 0;
  418.         
  419.         virtual HRESULT STDMETHODCALLTYPE GetCurMoniker( 
  420.             /* [out] */ IMoniker **ppimkName) = 0;
  421.         
  422.     };
  423.     
  424. #else  /* C style interface */
  425.     typedef struct IPersistMonikerVtbl
  426.     {
  427.         BEGIN_INTERFACE
  428.         
  429.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  430.             IPersistMoniker * This,
  431.             /* [in] */ REFIID riid,
  432.             /* [iid_is][out] */ void **ppvObject);
  433.         
  434.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  435.             IPersistMoniker * This);
  436.         
  437.         ULONG ( STDMETHODCALLTYPE *Release )( 
  438.             IPersistMoniker * This);
  439.         
  440.         HRESULT ( STDMETHODCALLTYPE *GetClassID )( 
  441.             IPersistMoniker * This,
  442.             /* [out] */ CLSID *pClassID);
  443.         
  444.         HRESULT ( STDMETHODCALLTYPE *IsDirty )( 
  445.             IPersistMoniker * This);
  446.         
  447.         HRESULT ( STDMETHODCALLTYPE *Load )( 
  448.             IPersistMoniker * This,
  449.             /* [in] */ BOOL fFullyAvailable,
  450.             /* [in] */ IMoniker *pimkName,
  451.             /* [in] */ LPBC pibc,
  452.             /* [in] */ DWORD grfMode);
  453.         
  454.         HRESULT ( STDMETHODCALLTYPE *Save )( 
  455.             IPersistMoniker * This,
  456.             /* [in] */ IMoniker *pimkName,
  457.             /* [in] */ LPBC pbc,
  458.             /* [in] */ BOOL fRemember);
  459.         
  460.         HRESULT ( STDMETHODCALLTYPE *SaveCompleted )( 
  461.             IPersistMoniker * This,
  462.             /* [in] */ IMoniker *pimkName,
  463.             /* [in] */ LPBC pibc);
  464.         
  465.         HRESULT ( STDMETHODCALLTYPE *GetCurMoniker )( 
  466.             IPersistMoniker * This,
  467.             /* [out] */ IMoniker **ppimkName);
  468.         
  469.         END_INTERFACE
  470.     } IPersistMonikerVtbl;
  471.     interface IPersistMoniker
  472.     {
  473.         CONST_VTBL struct IPersistMonikerVtbl *lpVtbl;
  474.     };
  475.     
  476. #ifdef COBJMACROS
  477. #define IPersistMoniker_QueryInterface(This,riid,ppvObject)
  478.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  479. #define IPersistMoniker_AddRef(This)
  480.     (This)->lpVtbl -> AddRef(This)
  481. #define IPersistMoniker_Release(This)
  482.     (This)->lpVtbl -> Release(This)
  483. #define IPersistMoniker_GetClassID(This,pClassID)
  484.     (This)->lpVtbl -> GetClassID(This,pClassID)
  485. #define IPersistMoniker_IsDirty(This)
  486.     (This)->lpVtbl -> IsDirty(This)
  487. #define IPersistMoniker_Load(This,fFullyAvailable,pimkName,pibc,grfMode)
  488.     (This)->lpVtbl -> Load(This,fFullyAvailable,pimkName,pibc,grfMode)
  489. #define IPersistMoniker_Save(This,pimkName,pbc,fRemember)
  490.     (This)->lpVtbl -> Save(This,pimkName,pbc,fRemember)
  491. #define IPersistMoniker_SaveCompleted(This,pimkName,pibc)
  492.     (This)->lpVtbl -> SaveCompleted(This,pimkName,pibc)
  493. #define IPersistMoniker_GetCurMoniker(This,ppimkName)
  494.     (This)->lpVtbl -> GetCurMoniker(This,ppimkName)
  495. #endif /* COBJMACROS */
  496. #endif  /* C style interface */
  497. HRESULT STDMETHODCALLTYPE IPersistMoniker_GetClassID_Proxy( 
  498.     IPersistMoniker * This,
  499.     /* [out] */ CLSID *pClassID);
  500. void __RPC_STUB IPersistMoniker_GetClassID_Stub(
  501.     IRpcStubBuffer *This,
  502.     IRpcChannelBuffer *_pRpcChannelBuffer,
  503.     PRPC_MESSAGE _pRpcMessage,
  504.     DWORD *_pdwStubPhase);
  505. HRESULT STDMETHODCALLTYPE IPersistMoniker_IsDirty_Proxy( 
  506.     IPersistMoniker * This);
  507. void __RPC_STUB IPersistMoniker_IsDirty_Stub(
  508.     IRpcStubBuffer *This,
  509.     IRpcChannelBuffer *_pRpcChannelBuffer,
  510.     PRPC_MESSAGE _pRpcMessage,
  511.     DWORD *_pdwStubPhase);
  512. HRESULT STDMETHODCALLTYPE IPersistMoniker_Load_Proxy( 
  513.     IPersistMoniker * This,
  514.     /* [in] */ BOOL fFullyAvailable,
  515.     /* [in] */ IMoniker *pimkName,
  516.     /* [in] */ LPBC pibc,
  517.     /* [in] */ DWORD grfMode);
  518. void __RPC_STUB IPersistMoniker_Load_Stub(
  519.     IRpcStubBuffer *This,
  520.     IRpcChannelBuffer *_pRpcChannelBuffer,
  521.     PRPC_MESSAGE _pRpcMessage,
  522.     DWORD *_pdwStubPhase);
  523. HRESULT STDMETHODCALLTYPE IPersistMoniker_Save_Proxy( 
  524.     IPersistMoniker * This,
  525.     /* [in] */ IMoniker *pimkName,
  526.     /* [in] */ LPBC pbc,
  527.     /* [in] */ BOOL fRemember);
  528. void __RPC_STUB IPersistMoniker_Save_Stub(
  529.     IRpcStubBuffer *This,
  530.     IRpcChannelBuffer *_pRpcChannelBuffer,
  531.     PRPC_MESSAGE _pRpcMessage,
  532.     DWORD *_pdwStubPhase);
  533. HRESULT STDMETHODCALLTYPE IPersistMoniker_SaveCompleted_Proxy( 
  534.     IPersistMoniker * This,
  535.     /* [in] */ IMoniker *pimkName,
  536.     /* [in] */ LPBC pibc);
  537. void __RPC_STUB IPersistMoniker_SaveCompleted_Stub(
  538.     IRpcStubBuffer *This,
  539.     IRpcChannelBuffer *_pRpcChannelBuffer,
  540.     PRPC_MESSAGE _pRpcMessage,
  541.     DWORD *_pdwStubPhase);
  542. HRESULT STDMETHODCALLTYPE IPersistMoniker_GetCurMoniker_Proxy( 
  543.     IPersistMoniker * This,
  544.     /* [out] */ IMoniker **ppimkName);
  545. void __RPC_STUB IPersistMoniker_GetCurMoniker_Stub(
  546.     IRpcStubBuffer *This,
  547.     IRpcChannelBuffer *_pRpcChannelBuffer,
  548.     PRPC_MESSAGE _pRpcMessage,
  549.     DWORD *_pdwStubPhase);
  550. #endif  /* __IPersistMoniker_INTERFACE_DEFINED__ */
  551. /* interface __MIDL_itf_urlmon_0173 */
  552. /* [local] */ 
  553. #endif
  554. #ifndef _LPMONIKERPROP_DEFINED
  555. #define _LPMONIKERPROP_DEFINED
  556. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0173_v0_0_c_ifspec;
  557. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0173_v0_0_s_ifspec;
  558. #ifndef __IMonikerProp_INTERFACE_DEFINED__
  559. #define __IMonikerProp_INTERFACE_DEFINED__
  560. /* interface IMonikerProp */
  561. /* [unique][uuid][object] */ 
  562. typedef /* [unique] */ IMonikerProp *LPMONIKERPROP;
  563. typedef /* [public][public] */ 
  564. enum __MIDL_IMonikerProp_0001
  565.     { MIMETYPEPROP = 0
  566.     }  MONIKERPROPERTY;
  567. EXTERN_C const IID IID_IMonikerProp;
  568. #if defined(__cplusplus) && !defined(CINTERFACE)
  569.     
  570.     MIDL_INTERFACE("a5ca5f7f-1847-4d87-9c5b-918509f7511d")
  571.     IMonikerProp : public IUnknown
  572.     {
  573.     public:
  574.         virtual HRESULT STDMETHODCALLTYPE PutProperty( 
  575.             /* [in] */ MONIKERPROPERTY mkp,
  576.             /* [in] */ LPCWSTR val) = 0;
  577.         
  578.     };
  579.     
  580. #else  /* C style interface */
  581.     typedef struct IMonikerPropVtbl
  582.     {
  583.         BEGIN_INTERFACE
  584.         
  585.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  586.             IMonikerProp * This,
  587.             /* [in] */ REFIID riid,
  588.             /* [iid_is][out] */ void **ppvObject);
  589.         
  590.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  591.             IMonikerProp * This);
  592.         
  593.         ULONG ( STDMETHODCALLTYPE *Release )( 
  594.             IMonikerProp * This);
  595.         
  596.         HRESULT ( STDMETHODCALLTYPE *PutProperty )( 
  597.             IMonikerProp * This,
  598.             /* [in] */ MONIKERPROPERTY mkp,
  599.             /* [in] */ LPCWSTR val);
  600.         
  601.         END_INTERFACE
  602.     } IMonikerPropVtbl;
  603.     interface IMonikerProp
  604.     {
  605.         CONST_VTBL struct IMonikerPropVtbl *lpVtbl;
  606.     };
  607.     
  608. #ifdef COBJMACROS
  609. #define IMonikerProp_QueryInterface(This,riid,ppvObject)
  610.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  611. #define IMonikerProp_AddRef(This)
  612.     (This)->lpVtbl -> AddRef(This)
  613. #define IMonikerProp_Release(This)
  614.     (This)->lpVtbl -> Release(This)
  615. #define IMonikerProp_PutProperty(This,mkp,val)
  616.     (This)->lpVtbl -> PutProperty(This,mkp,val)
  617. #endif /* COBJMACROS */
  618. #endif  /* C style interface */
  619. HRESULT STDMETHODCALLTYPE IMonikerProp_PutProperty_Proxy( 
  620.     IMonikerProp * This,
  621.     /* [in] */ MONIKERPROPERTY mkp,
  622.     /* [in] */ LPCWSTR val);
  623. void __RPC_STUB IMonikerProp_PutProperty_Stub(
  624.     IRpcStubBuffer *This,
  625.     IRpcChannelBuffer *_pRpcChannelBuffer,
  626.     PRPC_MESSAGE _pRpcMessage,
  627.     DWORD *_pdwStubPhase);
  628. #endif  /* __IMonikerProp_INTERFACE_DEFINED__ */
  629. /* interface __MIDL_itf_urlmon_0174 */
  630. /* [local] */ 
  631. #endif
  632. #ifndef _LPBINDPROTOCOL_DEFINED
  633. #define _LPBINDPROTOCOL_DEFINED
  634. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0174_v0_0_c_ifspec;
  635. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0174_v0_0_s_ifspec;
  636. #ifndef __IBindProtocol_INTERFACE_DEFINED__
  637. #define __IBindProtocol_INTERFACE_DEFINED__
  638. /* interface IBindProtocol */
  639. /* [unique][uuid][object][local] */ 
  640. typedef /* [unique] */ IBindProtocol *LPBINDPROTOCOL;
  641. EXTERN_C const IID IID_IBindProtocol;
  642. #if defined(__cplusplus) && !defined(CINTERFACE)
  643.     
  644.     MIDL_INTERFACE("79eac9cd-baf9-11ce-8c82-00aa004ba90b")
  645.     IBindProtocol : public IUnknown
  646.     {
  647.     public:
  648.         virtual HRESULT STDMETHODCALLTYPE CreateBinding( 
  649.             /* [in] */ LPCWSTR szUrl,
  650.             /* [in] */ IBindCtx *pbc,
  651.             /* [out] */ IBinding **ppb) = 0;
  652.         
  653.     };
  654.     
  655. #else  /* C style interface */
  656.     typedef struct IBindProtocolVtbl
  657.     {
  658.         BEGIN_INTERFACE
  659.         
  660.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  661.             IBindProtocol * This,
  662.             /* [in] */ REFIID riid,
  663.             /* [iid_is][out] */ void **ppvObject);
  664.         
  665.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  666.             IBindProtocol * This);
  667.         
  668.         ULONG ( STDMETHODCALLTYPE *Release )( 
  669.             IBindProtocol * This);
  670.         
  671.         HRESULT ( STDMETHODCALLTYPE *CreateBinding )( 
  672.             IBindProtocol * This,
  673.             /* [in] */ LPCWSTR szUrl,
  674.             /* [in] */ IBindCtx *pbc,
  675.             /* [out] */ IBinding **ppb);
  676.         
  677.         END_INTERFACE
  678.     } IBindProtocolVtbl;
  679.     interface IBindProtocol
  680.     {
  681.         CONST_VTBL struct IBindProtocolVtbl *lpVtbl;
  682.     };
  683.     
  684. #ifdef COBJMACROS
  685. #define IBindProtocol_QueryInterface(This,riid,ppvObject)
  686.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  687. #define IBindProtocol_AddRef(This)
  688.     (This)->lpVtbl -> AddRef(This)
  689. #define IBindProtocol_Release(This)
  690.     (This)->lpVtbl -> Release(This)
  691. #define IBindProtocol_CreateBinding(This,szUrl,pbc,ppb)
  692.     (This)->lpVtbl -> CreateBinding(This,szUrl,pbc,ppb)
  693. #endif /* COBJMACROS */
  694. #endif  /* C style interface */
  695. HRESULT STDMETHODCALLTYPE IBindProtocol_CreateBinding_Proxy( 
  696.     IBindProtocol * This,
  697.     /* [in] */ LPCWSTR szUrl,
  698.     /* [in] */ IBindCtx *pbc,
  699.     /* [out] */ IBinding **ppb);
  700. void __RPC_STUB IBindProtocol_CreateBinding_Stub(
  701.     IRpcStubBuffer *This,
  702.     IRpcChannelBuffer *_pRpcChannelBuffer,
  703.     PRPC_MESSAGE _pRpcMessage,
  704.     DWORD *_pdwStubPhase);
  705. #endif  /* __IBindProtocol_INTERFACE_DEFINED__ */
  706. /* interface __MIDL_itf_urlmon_0175 */
  707. /* [local] */ 
  708. #endif
  709. #ifndef _LPBINDING_DEFINED
  710. #define _LPBINDING_DEFINED
  711. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0175_v0_0_c_ifspec;
  712. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0175_v0_0_s_ifspec;
  713. #ifndef __IBinding_INTERFACE_DEFINED__
  714. #define __IBinding_INTERFACE_DEFINED__
  715. /* interface IBinding */
  716. /* [unique][uuid][object] */ 
  717. typedef /* [unique] */ IBinding *LPBINDING;
  718. EXTERN_C const IID IID_IBinding;
  719. #if defined(__cplusplus) && !defined(CINTERFACE)
  720.     
  721.     MIDL_INTERFACE("79eac9c0-baf9-11ce-8c82-00aa004ba90b")
  722.     IBinding : public IUnknown
  723.     {
  724.     public:
  725.         virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;
  726.         
  727.         virtual HRESULT STDMETHODCALLTYPE Suspend( void) = 0;
  728.         
  729.         virtual HRESULT STDMETHODCALLTYPE Resume( void) = 0;
  730.         
  731.         virtual HRESULT STDMETHODCALLTYPE SetPriority( 
  732.             /* [in] */ LONG nPriority) = 0;
  733.         
  734.         virtual HRESULT STDMETHODCALLTYPE GetPriority( 
  735.             /* [out] */ LONG *pnPriority) = 0;
  736.         
  737.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetBindResult( 
  738.             /* [out] */ CLSID *pclsidProtocol,
  739.             /* [out] */ DWORD *pdwResult,
  740.             /* [out] */ LPOLESTR *pszResult,
  741.             /* [out][in] */ DWORD *pdwReserved) = 0;
  742.         
  743.     };
  744.     
  745. #else  /* C style interface */
  746.     typedef struct IBindingVtbl
  747.     {
  748.         BEGIN_INTERFACE
  749.         
  750.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  751.             IBinding * This,
  752.             /* [in] */ REFIID riid,
  753.             /* [iid_is][out] */ void **ppvObject);
  754.         
  755.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  756.             IBinding * This);
  757.         
  758.         ULONG ( STDMETHODCALLTYPE *Release )( 
  759.             IBinding * This);
  760.         
  761.         HRESULT ( STDMETHODCALLTYPE *Abort )( 
  762.             IBinding * This);
  763.         
  764.         HRESULT ( STDMETHODCALLTYPE *Suspend )( 
  765.             IBinding * This);
  766.         
  767.         HRESULT ( STDMETHODCALLTYPE *Resume )( 
  768.             IBinding * This);
  769.         
  770.         HRESULT ( STDMETHODCALLTYPE *SetPriority )( 
  771.             IBinding * This,
  772.             /* [in] */ LONG nPriority);
  773.         
  774.         HRESULT ( STDMETHODCALLTYPE *GetPriority )( 
  775.             IBinding * This,
  776.             /* [out] */ LONG *pnPriority);
  777.         
  778.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetBindResult )( 
  779.             IBinding * This,
  780.             /* [out] */ CLSID *pclsidProtocol,
  781.             /* [out] */ DWORD *pdwResult,
  782.             /* [out] */ LPOLESTR *pszResult,
  783.             /* [out][in] */ DWORD *pdwReserved);
  784.         
  785.         END_INTERFACE
  786.     } IBindingVtbl;
  787.     interface IBinding
  788.     {
  789.         CONST_VTBL struct IBindingVtbl *lpVtbl;
  790.     };
  791.     
  792. #ifdef COBJMACROS
  793. #define IBinding_QueryInterface(This,riid,ppvObject)
  794.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  795. #define IBinding_AddRef(This)
  796.     (This)->lpVtbl -> AddRef(This)
  797. #define IBinding_Release(This)
  798.     (This)->lpVtbl -> Release(This)
  799. #define IBinding_Abort(This)
  800.     (This)->lpVtbl -> Abort(This)
  801. #define IBinding_Suspend(This)
  802.     (This)->lpVtbl -> Suspend(This)
  803. #define IBinding_Resume(This)
  804.     (This)->lpVtbl -> Resume(This)
  805. #define IBinding_SetPriority(This,nPriority)
  806.     (This)->lpVtbl -> SetPriority(This,nPriority)
  807. #define IBinding_GetPriority(This,pnPriority)
  808.     (This)->lpVtbl -> GetPriority(This,pnPriority)
  809. #define IBinding_GetBindResult(This,pclsidProtocol,pdwResult,pszResult,pdwReserved)
  810.     (This)->lpVtbl -> GetBindResult(This,pclsidProtocol,pdwResult,pszResult,pdwReserved)
  811. #endif /* COBJMACROS */
  812. #endif  /* C style interface */
  813. HRESULT STDMETHODCALLTYPE IBinding_Abort_Proxy( 
  814.     IBinding * This);
  815. void __RPC_STUB IBinding_Abort_Stub(
  816.     IRpcStubBuffer *This,
  817.     IRpcChannelBuffer *_pRpcChannelBuffer,
  818.     PRPC_MESSAGE _pRpcMessage,
  819.     DWORD *_pdwStubPhase);
  820. HRESULT STDMETHODCALLTYPE IBinding_Suspend_Proxy( 
  821.     IBinding * This);
  822. void __RPC_STUB IBinding_Suspend_Stub(
  823.     IRpcStubBuffer *This,
  824.     IRpcChannelBuffer *_pRpcChannelBuffer,
  825.     PRPC_MESSAGE _pRpcMessage,
  826.     DWORD *_pdwStubPhase);
  827. HRESULT STDMETHODCALLTYPE IBinding_Resume_Proxy( 
  828.     IBinding * This);
  829. void __RPC_STUB IBinding_Resume_Stub(
  830.     IRpcStubBuffer *This,
  831.     IRpcChannelBuffer *_pRpcChannelBuffer,
  832.     PRPC_MESSAGE _pRpcMessage,
  833.     DWORD *_pdwStubPhase);
  834. HRESULT STDMETHODCALLTYPE IBinding_SetPriority_Proxy( 
  835.     IBinding * This,
  836.     /* [in] */ LONG nPriority);
  837. void __RPC_STUB IBinding_SetPriority_Stub(
  838.     IRpcStubBuffer *This,
  839.     IRpcChannelBuffer *_pRpcChannelBuffer,
  840.     PRPC_MESSAGE _pRpcMessage,
  841.     DWORD *_pdwStubPhase);
  842. HRESULT STDMETHODCALLTYPE IBinding_GetPriority_Proxy( 
  843.     IBinding * This,
  844.     /* [out] */ LONG *pnPriority);
  845. void __RPC_STUB IBinding_GetPriority_Stub(
  846.     IRpcStubBuffer *This,
  847.     IRpcChannelBuffer *_pRpcChannelBuffer,
  848.     PRPC_MESSAGE _pRpcMessage,
  849.     DWORD *_pdwStubPhase);
  850. /* [call_as] */ HRESULT STDMETHODCALLTYPE IBinding_RemoteGetBindResult_Proxy( 
  851.     IBinding * This,
  852.     /* [out] */ CLSID *pclsidProtocol,
  853.     /* [out] */ DWORD *pdwResult,
  854.     /* [out] */ LPOLESTR *pszResult,
  855.     /* [in] */ DWORD dwReserved);
  856. void __RPC_STUB IBinding_RemoteGetBindResult_Stub(
  857.     IRpcStubBuffer *This,
  858.     IRpcChannelBuffer *_pRpcChannelBuffer,
  859.     PRPC_MESSAGE _pRpcMessage,
  860.     DWORD *_pdwStubPhase);
  861. #endif  /* __IBinding_INTERFACE_DEFINED__ */
  862. /* interface __MIDL_itf_urlmon_0176 */
  863. /* [local] */ 
  864. #endif
  865. #ifndef _LPBINDSTATUSCALLBACK_DEFINED
  866. #define _LPBINDSTATUSCALLBACK_DEFINED
  867. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0176_v0_0_c_ifspec;
  868. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0176_v0_0_s_ifspec;
  869. #ifndef __IBindStatusCallback_INTERFACE_DEFINED__
  870. #define __IBindStatusCallback_INTERFACE_DEFINED__
  871. /* interface IBindStatusCallback */
  872. /* [unique][uuid][object] */ 
  873. typedef /* [unique] */ IBindStatusCallback *LPBINDSTATUSCALLBACK;
  874. typedef /* [public] */ 
  875. enum __MIDL_IBindStatusCallback_0001
  876.     { BINDVERB_GET = 0,
  877. BINDVERB_POST = 0x1,
  878. BINDVERB_PUT = 0x2,
  879. BINDVERB_CUSTOM = 0x3
  880.     }  BINDVERB;
  881. typedef /* [public] */ 
  882. enum __MIDL_IBindStatusCallback_0002
  883.     { BINDINFOF_URLENCODESTGMEDDATA = 0x1,
  884. BINDINFOF_URLENCODEDEXTRAINFO = 0x2
  885.     }  BINDINFOF;
  886. typedef /* [public] */ 
  887. enum __MIDL_IBindStatusCallback_0003
  888.     { BINDF_ASYNCHRONOUS = 0x1,
  889. BINDF_ASYNCSTORAGE = 0x2,
  890. BINDF_NOPROGRESSIVERENDERING = 0x4,
  891. BINDF_OFFLINEOPERATION = 0x8,
  892. BINDF_GETNEWESTVERSION = 0x10,
  893. BINDF_NOWRITECACHE = 0x20,
  894. BINDF_NEEDFILE = 0x40,
  895. BINDF_PULLDATA = 0x80,
  896. BINDF_IGNORESECURITYPROBLEM = 0x100,
  897. BINDF_RESYNCHRONIZE = 0x200,
  898. BINDF_HYPERLINK = 0x400,
  899. BINDF_NO_UI = 0x800,
  900. BINDF_SILENTOPERATION = 0x1000,
  901. BINDF_PRAGMA_NO_CACHE = 0x2000,
  902. BINDF_GETCLASSOBJECT = 0x4000,
  903. BINDF_RESERVED_1 = 0x8000,
  904. BINDF_FREE_THREADED = 0x10000,
  905. BINDF_DIRECT_READ = 0x20000,
  906. BINDF_FORMS_SUBMIT = 0x40000,
  907. BINDF_GETFROMCACHE_IF_NET_FAIL = 0x80000,
  908. BINDF_FROMURLMON = 0x100000,
  909. BINDF_FWD_BACK = 0x200000,
  910. BINDF_PREFERDEFAULTHANDLER = 0x400000,
  911. BINDF_ENFORCERESTRICTED = 0x800000
  912.     }  BINDF;
  913. typedef /* [public] */ 
  914. enum __MIDL_IBindStatusCallback_0004
  915.     { URL_ENCODING_NONE = 0,
  916. URL_ENCODING_ENABLE_UTF8 = 0x10000000,
  917. URL_ENCODING_DISABLE_UTF8 = 0x20000000
  918.     }  URL_ENCODING;
  919. typedef struct _tagBINDINFO
  920.     {
  921.     ULONG cbSize;
  922.     LPWSTR szExtraInfo;
  923.     STGMEDIUM stgmedData;
  924.     DWORD grfBindInfoF;
  925.     DWORD dwBindVerb;
  926.     LPWSTR szCustomVerb;
  927.     DWORD cbstgmedData;
  928.     DWORD dwOptions;
  929.     DWORD dwOptionsFlags;
  930.     DWORD dwCodePage;
  931.     SECURITY_ATTRIBUTES securityAttributes;
  932.     IID iid;
  933.     IUnknown *pUnk;
  934.     DWORD dwReserved;
  935.     }  BINDINFO;
  936. typedef struct _REMSECURITY_ATTRIBUTES
  937.     {
  938.     DWORD nLength;
  939.     DWORD lpSecurityDescriptor;
  940.     BOOL bInheritHandle;
  941.     }  REMSECURITY_ATTRIBUTES;
  942. typedef struct _REMSECURITY_ATTRIBUTES *PREMSECURITY_ATTRIBUTES;
  943. typedef struct _REMSECURITY_ATTRIBUTES *LPREMSECURITY_ATTRIBUTES;
  944. typedef struct _tagRemBINDINFO
  945.     {
  946.     ULONG cbSize;
  947.     LPWSTR szExtraInfo;
  948.     DWORD grfBindInfoF;
  949.     DWORD dwBindVerb;
  950.     LPWSTR szCustomVerb;
  951.     DWORD cbstgmedData;
  952.     DWORD dwOptions;
  953.     DWORD dwOptionsFlags;
  954.     DWORD dwCodePage;
  955.     REMSECURITY_ATTRIBUTES securityAttributes;
  956.     IID iid;
  957.     IUnknown *pUnk;
  958.     DWORD dwReserved;
  959.     }  RemBINDINFO;
  960. typedef struct tagRemFORMATETC
  961.     {
  962.     DWORD cfFormat;
  963.     DWORD ptd;
  964.     DWORD dwAspect;
  965.     LONG lindex;
  966.     DWORD tymed;
  967.     }  RemFORMATETC;
  968. typedef struct tagRemFORMATETC *LPREMFORMATETC;
  969. typedef /* [public] */ 
  970. enum __MIDL_IBindStatusCallback_0005
  971.     { BINDINFO_OPTIONS_WININETFLAG = 0x10000,
  972. BINDINFO_OPTIONS_ENABLE_UTF8 = 0x20000,
  973. BINDINFO_OPTIONS_DISABLE_UTF8 = 0x40000,
  974. BINDINFO_OPTIONS_USE_IE_ENCODING = 0x80000,
  975. BINDINFO_OPTIONS_BINDTOOBJECT = 0x100000
  976.     }  BINDINFO_OPTIONS;
  977. typedef /* [public] */ 
  978. enum __MIDL_IBindStatusCallback_0006
  979.     { BSCF_FIRSTDATANOTIFICATION = 0x1,
  980. BSCF_INTERMEDIATEDATANOTIFICATION = 0x2,
  981. BSCF_LASTDATANOTIFICATION = 0x4,
  982. BSCF_DATAFULLYAVAILABLE = 0x8,
  983. BSCF_AVAILABLEDATASIZEUNKNOWN = 0x10
  984.     }  BSCF;
  985. typedef 
  986. enum tagBINDSTATUS
  987.     { BINDSTATUS_FINDINGRESOURCE = 1,
  988. BINDSTATUS_CONNECTING = BINDSTATUS_FINDINGRESOURCE + 1,
  989. BINDSTATUS_REDIRECTING = BINDSTATUS_CONNECTING + 1,
  990. BINDSTATUS_BEGINDOWNLOADDATA = BINDSTATUS_REDIRECTING + 1,
  991. BINDSTATUS_DOWNLOADINGDATA = BINDSTATUS_BEGINDOWNLOADDATA + 1,
  992. BINDSTATUS_ENDDOWNLOADDATA = BINDSTATUS_DOWNLOADINGDATA + 1,
  993. BINDSTATUS_BEGINDOWNLOADCOMPONENTS = BINDSTATUS_ENDDOWNLOADDATA + 1,
  994. BINDSTATUS_INSTALLINGCOMPONENTS = BINDSTATUS_BEGINDOWNLOADCOMPONENTS + 1,
  995. BINDSTATUS_ENDDOWNLOADCOMPONENTS = BINDSTATUS_INSTALLINGCOMPONENTS + 1,
  996. BINDSTATUS_USINGCACHEDCOPY = BINDSTATUS_ENDDOWNLOADCOMPONENTS + 1,
  997. BINDSTATUS_SENDINGREQUEST = BINDSTATUS_USINGCACHEDCOPY + 1,
  998. BINDSTATUS_CLASSIDAVAILABLE = BINDSTATUS_SENDINGREQUEST + 1,
  999. BINDSTATUS_MIMETYPEAVAILABLE = BINDSTATUS_CLASSIDAVAILABLE + 1,
  1000. BINDSTATUS_CACHEFILENAMEAVAILABLE = BINDSTATUS_MIMETYPEAVAILABLE + 1,
  1001. BINDSTATUS_BEGINSYNCOPERATION = BINDSTATUS_CACHEFILENAMEAVAILABLE + 1,
  1002. BINDSTATUS_ENDSYNCOPERATION = BINDSTATUS_BEGINSYNCOPERATION + 1,
  1003. BINDSTATUS_BEGINUPLOADDATA = BINDSTATUS_ENDSYNCOPERATION + 1,
  1004. BINDSTATUS_UPLOADINGDATA = BINDSTATUS_BEGINUPLOADDATA + 1,
  1005. BINDSTATUS_ENDUPLOADDATA = BINDSTATUS_UPLOADINGDATA + 1,
  1006. BINDSTATUS_PROTOCOLCLASSID = BINDSTATUS_ENDUPLOADDATA + 1,
  1007. BINDSTATUS_ENCODING = BINDSTATUS_PROTOCOLCLASSID + 1,
  1008. BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE = BINDSTATUS_ENCODING + 1,
  1009. BINDSTATUS_CLASSINSTALLLOCATION = BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE + 1,
  1010. BINDSTATUS_DECODING = BINDSTATUS_CLASSINSTALLLOCATION + 1,
  1011. BINDSTATUS_LOADINGMIMEHANDLER = BINDSTATUS_DECODING + 1,
  1012. BINDSTATUS_CONTENTDISPOSITIONATTACH = BINDSTATUS_LOADINGMIMEHANDLER + 1,
  1013. BINDSTATUS_FILTERREPORTMIMETYPE = BINDSTATUS_CONTENTDISPOSITIONATTACH + 1,
  1014. BINDSTATUS_CLSIDCANINSTANTIATE = BINDSTATUS_FILTERREPORTMIMETYPE + 1,
  1015. BINDSTATUS_IUNKNOWNAVAILABLE = BINDSTATUS_CLSIDCANINSTANTIATE + 1,
  1016. BINDSTATUS_DIRECTBIND = BINDSTATUS_IUNKNOWNAVAILABLE + 1,
  1017. BINDSTATUS_RAWMIMETYPE = BINDSTATUS_DIRECTBIND + 1,
  1018. BINDSTATUS_PROXYDETECTING = BINDSTATUS_RAWMIMETYPE + 1,
  1019. BINDSTATUS_ACCEPTRANGES = BINDSTATUS_PROXYDETECTING + 1,
  1020. BINDSTATUS_COOKIE_SENT = BINDSTATUS_ACCEPTRANGES + 1,
  1021. BINDSTATUS_COMPACT_POLICY_RECEIVED = BINDSTATUS_COOKIE_SENT + 1,
  1022. BINDSTATUS_COOKIE_SUPPRESSED = BINDSTATUS_COMPACT_POLICY_RECEIVED + 1,
  1023. BINDSTATUS_COOKIE_STATE_UNKNOWN = BINDSTATUS_COOKIE_SUPPRESSED + 1,
  1024. BINDSTATUS_COOKIE_STATE_ACCEPT = BINDSTATUS_COOKIE_STATE_UNKNOWN + 1,
  1025. BINDSTATUS_COOKIE_STATE_REJECT = BINDSTATUS_COOKIE_STATE_ACCEPT + 1,
  1026. BINDSTATUS_COOKIE_STATE_PROMPT = BINDSTATUS_COOKIE_STATE_REJECT + 1,
  1027. BINDSTATUS_COOKIE_STATE_LEASH = BINDSTATUS_COOKIE_STATE_PROMPT + 1,
  1028. BINDSTATUS_COOKIE_STATE_DOWNGRADE = BINDSTATUS_COOKIE_STATE_LEASH + 1,
  1029. BINDSTATUS_POLICY_HREF = BINDSTATUS_COOKIE_STATE_DOWNGRADE + 1,
  1030. BINDSTATUS_P3P_HEADER = BINDSTATUS_POLICY_HREF + 1,
  1031. BINDSTATUS_SESSION_COOKIE_RECEIVED = BINDSTATUS_P3P_HEADER + 1,
  1032. BINDSTATUS_PERSISTENT_COOKIE_RECEIVED = BINDSTATUS_SESSION_COOKIE_RECEIVED + 1,
  1033. BINDSTATUS_SESSION_COOKIES_ALLOWED = BINDSTATUS_PERSISTENT_COOKIE_RECEIVED + 1
  1034.     }  BINDSTATUS;
  1035. EXTERN_C const IID IID_IBindStatusCallback;
  1036. #if defined(__cplusplus) && !defined(CINTERFACE)
  1037.     
  1038.     MIDL_INTERFACE("79eac9c1-baf9-11ce-8c82-00aa004ba90b")
  1039.     IBindStatusCallback : public IUnknown
  1040.     {
  1041.     public:
  1042.         virtual HRESULT STDMETHODCALLTYPE OnStartBinding( 
  1043.             /* [in] */ DWORD dwReserved,
  1044.             /* [in] */ IBinding *pib) = 0;
  1045.         
  1046.         virtual HRESULT STDMETHODCALLTYPE GetPriority( 
  1047.             /* [out] */ LONG *pnPriority) = 0;
  1048.         
  1049.         virtual HRESULT STDMETHODCALLTYPE OnLowResource( 
  1050.             /* [in] */ DWORD reserved) = 0;
  1051.         
  1052.         virtual HRESULT STDMETHODCALLTYPE OnProgress( 
  1053.             /* [in] */ ULONG ulProgress,
  1054.             /* [in] */ ULONG ulProgressMax,
  1055.             /* [in] */ ULONG ulStatusCode,
  1056.             /* [in] */ LPCWSTR szStatusText) = 0;
  1057.         
  1058.         virtual HRESULT STDMETHODCALLTYPE OnStopBinding( 
  1059.             /* [in] */ HRESULT hresult,
  1060.             /* [unique][in] */ LPCWSTR szError) = 0;
  1061.         
  1062.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetBindInfo( 
  1063.             /* [out] */ DWORD *grfBINDF,
  1064.             /* [unique][out][in] */ BINDINFO *pbindinfo) = 0;
  1065.         
  1066.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE OnDataAvailable( 
  1067.             /* [in] */ DWORD grfBSCF,
  1068.             /* [in] */ DWORD dwSize,
  1069.             /* [in] */ FORMATETC *pformatetc,
  1070.             /* [in] */ STGMEDIUM *pstgmed) = 0;
  1071.         
  1072.         virtual HRESULT STDMETHODCALLTYPE OnObjectAvailable( 
  1073.             /* [in] */ REFIID riid,
  1074.             /* [iid_is][in] */ IUnknown *punk) = 0;
  1075.         
  1076.     };
  1077.     
  1078. #else  /* C style interface */
  1079.     typedef struct IBindStatusCallbackVtbl
  1080.     {
  1081.         BEGIN_INTERFACE
  1082.         
  1083.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1084.             IBindStatusCallback * This,
  1085.             /* [in] */ REFIID riid,
  1086.             /* [iid_is][out] */ void **ppvObject);
  1087.         
  1088.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1089.             IBindStatusCallback * This);
  1090.         
  1091.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1092.             IBindStatusCallback * This);
  1093.         
  1094.         HRESULT ( STDMETHODCALLTYPE *OnStartBinding )( 
  1095.             IBindStatusCallback * This,
  1096.             /* [in] */ DWORD dwReserved,
  1097.             /* [in] */ IBinding *pib);
  1098.         
  1099.         HRESULT ( STDMETHODCALLTYPE *GetPriority )( 
  1100.             IBindStatusCallback * This,
  1101.             /* [out] */ LONG *pnPriority);
  1102.         
  1103.         HRESULT ( STDMETHODCALLTYPE *OnLowResource )( 
  1104.             IBindStatusCallback * This,
  1105.             /* [in] */ DWORD reserved);
  1106.         
  1107.         HRESULT ( STDMETHODCALLTYPE *OnProgress )( 
  1108.             IBindStatusCallback * This,
  1109.             /* [in] */ ULONG ulProgress,
  1110.             /* [in] */ ULONG ulProgressMax,
  1111.             /* [in] */ ULONG ulStatusCode,
  1112.             /* [in] */ LPCWSTR szStatusText);
  1113.         
  1114.         HRESULT ( STDMETHODCALLTYPE *OnStopBinding )( 
  1115.             IBindStatusCallback * This,
  1116.             /* [in] */ HRESULT hresult,
  1117.             /* [unique][in] */ LPCWSTR szError);
  1118.         
  1119.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetBindInfo )( 
  1120.             IBindStatusCallback * This,
  1121.             /* [out] */ DWORD *grfBINDF,
  1122.             /* [unique][out][in] */ BINDINFO *pbindinfo);
  1123.         
  1124.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *OnDataAvailable )( 
  1125.             IBindStatusCallback * This,
  1126.             /* [in] */ DWORD grfBSCF,
  1127.             /* [in] */ DWORD dwSize,
  1128.             /* [in] */ FORMATETC *pformatetc,
  1129.             /* [in] */ STGMEDIUM *pstgmed);
  1130.         
  1131.         HRESULT ( STDMETHODCALLTYPE *OnObjectAvailable )( 
  1132.             IBindStatusCallback * This,
  1133.             /* [in] */ REFIID riid,
  1134.             /* [iid_is][in] */ IUnknown *punk);
  1135.         
  1136.         END_INTERFACE
  1137.     } IBindStatusCallbackVtbl;
  1138.     interface IBindStatusCallback
  1139.     {
  1140.         CONST_VTBL struct IBindStatusCallbackVtbl *lpVtbl;
  1141.     };
  1142.     
  1143. #ifdef COBJMACROS
  1144. #define IBindStatusCallback_QueryInterface(This,riid,ppvObject)
  1145.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1146. #define IBindStatusCallback_AddRef(This)
  1147.     (This)->lpVtbl -> AddRef(This)
  1148. #define IBindStatusCallback_Release(This)
  1149.     (This)->lpVtbl -> Release(This)
  1150. #define IBindStatusCallback_OnStartBinding(This,dwReserved,pib)
  1151.     (This)->lpVtbl -> OnStartBinding(This,dwReserved,pib)
  1152. #define IBindStatusCallback_GetPriority(This,pnPriority)
  1153.     (This)->lpVtbl -> GetPriority(This,pnPriority)
  1154. #define IBindStatusCallback_OnLowResource(This,reserved)
  1155.     (This)->lpVtbl -> OnLowResource(This,reserved)
  1156. #define IBindStatusCallback_OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText)
  1157.     (This)->lpVtbl -> OnProgress(This,ulProgress,ulProgressMax,ulStatusCode,szStatusText)
  1158. #define IBindStatusCallback_OnStopBinding(This,hresult,szError)
  1159.     (This)->lpVtbl -> OnStopBinding(This,hresult,szError)
  1160. #define IBindStatusCallback_GetBindInfo(This,grfBINDF,pbindinfo)
  1161.     (This)->lpVtbl -> GetBindInfo(This,grfBINDF,pbindinfo)
  1162. #define IBindStatusCallback_OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed)
  1163.     (This)->lpVtbl -> OnDataAvailable(This,grfBSCF,dwSize,pformatetc,pstgmed)
  1164. #define IBindStatusCallback_OnObjectAvailable(This,riid,punk)
  1165.     (This)->lpVtbl -> OnObjectAvailable(This,riid,punk)
  1166. #endif /* COBJMACROS */
  1167. #endif  /* C style interface */
  1168. HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnStartBinding_Proxy( 
  1169.     IBindStatusCallback * This,
  1170.     /* [in] */ DWORD dwReserved,
  1171.     /* [in] */ IBinding *pib);
  1172. void __RPC_STUB IBindStatusCallback_OnStartBinding_Stub(
  1173.     IRpcStubBuffer *This,
  1174.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1175.     PRPC_MESSAGE _pRpcMessage,
  1176.     DWORD *_pdwStubPhase);
  1177. HRESULT STDMETHODCALLTYPE IBindStatusCallback_GetPriority_Proxy( 
  1178.     IBindStatusCallback * This,
  1179.     /* [out] */ LONG *pnPriority);
  1180. void __RPC_STUB IBindStatusCallback_GetPriority_Stub(
  1181.     IRpcStubBuffer *This,
  1182.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1183.     PRPC_MESSAGE _pRpcMessage,
  1184.     DWORD *_pdwStubPhase);
  1185. HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnLowResource_Proxy( 
  1186.     IBindStatusCallback * This,
  1187.     /* [in] */ DWORD reserved);
  1188. void __RPC_STUB IBindStatusCallback_OnLowResource_Stub(
  1189.     IRpcStubBuffer *This,
  1190.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1191.     PRPC_MESSAGE _pRpcMessage,
  1192.     DWORD *_pdwStubPhase);
  1193. HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnProgress_Proxy( 
  1194.     IBindStatusCallback * This,
  1195.     /* [in] */ ULONG ulProgress,
  1196.     /* [in] */ ULONG ulProgressMax,
  1197.     /* [in] */ ULONG ulStatusCode,
  1198.     /* [in] */ LPCWSTR szStatusText);
  1199. void __RPC_STUB IBindStatusCallback_OnProgress_Stub(
  1200.     IRpcStubBuffer *This,
  1201.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1202.     PRPC_MESSAGE _pRpcMessage,
  1203.     DWORD *_pdwStubPhase);
  1204. HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnStopBinding_Proxy( 
  1205.     IBindStatusCallback * This,
  1206.     /* [in] */ HRESULT hresult,
  1207.     /* [unique][in] */ LPCWSTR szError);
  1208. void __RPC_STUB IBindStatusCallback_OnStopBinding_Stub(
  1209.     IRpcStubBuffer *This,
  1210.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1211.     PRPC_MESSAGE _pRpcMessage,
  1212.     DWORD *_pdwStubPhase);
  1213. /* [call_as] */ HRESULT STDMETHODCALLTYPE IBindStatusCallback_RemoteGetBindInfo_Proxy( 
  1214.     IBindStatusCallback * This,
  1215.     /* [out] */ DWORD *grfBINDF,
  1216.     /* [unique][out][in] */ RemBINDINFO *pbindinfo,
  1217.     /* [unique][out][in] */ RemSTGMEDIUM *pstgmed);
  1218. void __RPC_STUB IBindStatusCallback_RemoteGetBindInfo_Stub(
  1219.     IRpcStubBuffer *This,
  1220.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1221.     PRPC_MESSAGE _pRpcMessage,
  1222.     DWORD *_pdwStubPhase);
  1223. /* [call_as] */ HRESULT STDMETHODCALLTYPE IBindStatusCallback_RemoteOnDataAvailable_Proxy( 
  1224.     IBindStatusCallback * This,
  1225.     /* [in] */ DWORD grfBSCF,
  1226.     /* [in] */ DWORD dwSize,
  1227.     /* [in] */ RemFORMATETC *pformatetc,
  1228.     /* [in] */ RemSTGMEDIUM *pstgmed);
  1229. void __RPC_STUB IBindStatusCallback_RemoteOnDataAvailable_Stub(
  1230.     IRpcStubBuffer *This,
  1231.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1232.     PRPC_MESSAGE _pRpcMessage,
  1233.     DWORD *_pdwStubPhase);
  1234. HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnObjectAvailable_Proxy( 
  1235.     IBindStatusCallback * This,
  1236.     /* [in] */ REFIID riid,
  1237.     /* [iid_is][in] */ IUnknown *punk);
  1238. void __RPC_STUB IBindStatusCallback_OnObjectAvailable_Stub(
  1239.     IRpcStubBuffer *This,
  1240.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1241.     PRPC_MESSAGE _pRpcMessage,
  1242.     DWORD *_pdwStubPhase);
  1243. #endif  /* __IBindStatusCallback_INTERFACE_DEFINED__ */
  1244. /* interface __MIDL_itf_urlmon_0177 */
  1245. /* [local] */ 
  1246. #endif
  1247. #ifndef _LPAUTHENTICATION_DEFINED
  1248. #define _LPAUTHENTICATION_DEFINED
  1249. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0177_v0_0_c_ifspec;
  1250. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0177_v0_0_s_ifspec;
  1251. #ifndef __IAuthenticate_INTERFACE_DEFINED__
  1252. #define __IAuthenticate_INTERFACE_DEFINED__
  1253. /* interface IAuthenticate */
  1254. /* [unique][uuid][object] */ 
  1255. typedef /* [unique] */ IAuthenticate *LPAUTHENTICATION;
  1256. EXTERN_C const IID IID_IAuthenticate;
  1257. #if defined(__cplusplus) && !defined(CINTERFACE)
  1258.     
  1259.     MIDL_INTERFACE("79eac9d0-baf9-11ce-8c82-00aa004ba90b")
  1260.     IAuthenticate : public IUnknown
  1261.     {
  1262.     public:
  1263.         virtual HRESULT STDMETHODCALLTYPE Authenticate( 
  1264.             /* [out] */ HWND *phwnd,
  1265.             /* [out] */ LPWSTR *pszUsername,
  1266.             /* [out] */ LPWSTR *pszPassword) = 0;
  1267.         
  1268.     };
  1269.     
  1270. #else  /* C style interface */
  1271.     typedef struct IAuthenticateVtbl
  1272.     {
  1273.         BEGIN_INTERFACE
  1274.         
  1275.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1276.             IAuthenticate * This,
  1277.             /* [in] */ REFIID riid,
  1278.             /* [iid_is][out] */ void **ppvObject);
  1279.         
  1280.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1281.             IAuthenticate * This);
  1282.         
  1283.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1284.             IAuthenticate * This);
  1285.         
  1286.         HRESULT ( STDMETHODCALLTYPE *Authenticate )( 
  1287.             IAuthenticate * This,
  1288.             /* [out] */ HWND *phwnd,
  1289.             /* [out] */ LPWSTR *pszUsername,
  1290.             /* [out] */ LPWSTR *pszPassword);
  1291.         
  1292.         END_INTERFACE
  1293.     } IAuthenticateVtbl;
  1294.     interface IAuthenticate
  1295.     {
  1296.         CONST_VTBL struct IAuthenticateVtbl *lpVtbl;
  1297.     };
  1298.     
  1299. #ifdef COBJMACROS
  1300. #define IAuthenticate_QueryInterface(This,riid,ppvObject)
  1301.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1302. #define IAuthenticate_AddRef(This)
  1303.     (This)->lpVtbl -> AddRef(This)
  1304. #define IAuthenticate_Release(This)
  1305.     (This)->lpVtbl -> Release(This)
  1306. #define IAuthenticate_Authenticate(This,phwnd,pszUsername,pszPassword)
  1307.     (This)->lpVtbl -> Authenticate(This,phwnd,pszUsername,pszPassword)
  1308. #endif /* COBJMACROS */
  1309. #endif  /* C style interface */
  1310. HRESULT STDMETHODCALLTYPE IAuthenticate_Authenticate_Proxy( 
  1311.     IAuthenticate * This,
  1312.     /* [out] */ HWND *phwnd,
  1313.     /* [out] */ LPWSTR *pszUsername,
  1314.     /* [out] */ LPWSTR *pszPassword);
  1315. void __RPC_STUB IAuthenticate_Authenticate_Stub(
  1316.     IRpcStubBuffer *This,
  1317.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1318.     PRPC_MESSAGE _pRpcMessage,
  1319.     DWORD *_pdwStubPhase);
  1320. #endif  /* __IAuthenticate_INTERFACE_DEFINED__ */
  1321. /* interface __MIDL_itf_urlmon_0178 */
  1322. /* [local] */ 
  1323. #endif
  1324. #ifndef _LPHTTPNEGOTIATE_DEFINED
  1325. #define _LPHTTPNEGOTIATE_DEFINED
  1326. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0178_v0_0_c_ifspec;
  1327. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0178_v0_0_s_ifspec;
  1328. #ifndef __IHttpNegotiate_INTERFACE_DEFINED__
  1329. #define __IHttpNegotiate_INTERFACE_DEFINED__
  1330. /* interface IHttpNegotiate */
  1331. /* [unique][uuid][object] */ 
  1332. typedef /* [unique] */ IHttpNegotiate *LPHTTPNEGOTIATE;
  1333. EXTERN_C const IID IID_IHttpNegotiate;
  1334. #if defined(__cplusplus) && !defined(CINTERFACE)
  1335.     
  1336.     MIDL_INTERFACE("79eac9d2-baf9-11ce-8c82-00aa004ba90b")
  1337.     IHttpNegotiate : public IUnknown
  1338.     {
  1339.     public:
  1340.         virtual HRESULT STDMETHODCALLTYPE BeginningTransaction( 
  1341.             /* [in] */ LPCWSTR szURL,
  1342.             /* [unique][in] */ LPCWSTR szHeaders,
  1343.             /* [in] */ DWORD dwReserved,
  1344.             /* [out] */ LPWSTR *pszAdditionalHeaders) = 0;
  1345.         
  1346.         virtual HRESULT STDMETHODCALLTYPE OnResponse( 
  1347.             /* [in] */ DWORD dwResponseCode,
  1348.             /* [unique][in] */ LPCWSTR szResponseHeaders,
  1349.             /* [unique][in] */ LPCWSTR szRequestHeaders,
  1350.             /* [out] */ LPWSTR *pszAdditionalRequestHeaders) = 0;
  1351.         
  1352.     };
  1353.     
  1354. #else  /* C style interface */
  1355.     typedef struct IHttpNegotiateVtbl
  1356.     {
  1357.         BEGIN_INTERFACE
  1358.         
  1359.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1360.             IHttpNegotiate * This,
  1361.             /* [in] */ REFIID riid,
  1362.             /* [iid_is][out] */ void **ppvObject);
  1363.         
  1364.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1365.             IHttpNegotiate * This);
  1366.         
  1367.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1368.             IHttpNegotiate * This);
  1369.         
  1370.         HRESULT ( STDMETHODCALLTYPE *BeginningTransaction )( 
  1371.             IHttpNegotiate * This,
  1372.             /* [in] */ LPCWSTR szURL,
  1373.             /* [unique][in] */ LPCWSTR szHeaders,
  1374.             /* [in] */ DWORD dwReserved,
  1375.             /* [out] */ LPWSTR *pszAdditionalHeaders);
  1376.         
  1377.         HRESULT ( STDMETHODCALLTYPE *OnResponse )( 
  1378.             IHttpNegotiate * This,
  1379.             /* [in] */ DWORD dwResponseCode,
  1380.             /* [unique][in] */ LPCWSTR szResponseHeaders,
  1381.             /* [unique][in] */ LPCWSTR szRequestHeaders,
  1382.             /* [out] */ LPWSTR *pszAdditionalRequestHeaders);
  1383.         
  1384.         END_INTERFACE
  1385.     } IHttpNegotiateVtbl;
  1386.     interface IHttpNegotiate
  1387.     {
  1388.         CONST_VTBL struct IHttpNegotiateVtbl *lpVtbl;
  1389.     };
  1390.     
  1391. #ifdef COBJMACROS
  1392. #define IHttpNegotiate_QueryInterface(This,riid,ppvObject)
  1393.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1394. #define IHttpNegotiate_AddRef(This)
  1395.     (This)->lpVtbl -> AddRef(This)
  1396. #define IHttpNegotiate_Release(This)
  1397.     (This)->lpVtbl -> Release(This)
  1398. #define IHttpNegotiate_BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders)
  1399.     (This)->lpVtbl -> BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders)
  1400. #define IHttpNegotiate_OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders)
  1401.     (This)->lpVtbl -> OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders)
  1402. #endif /* COBJMACROS */
  1403. #endif  /* C style interface */
  1404. HRESULT STDMETHODCALLTYPE IHttpNegotiate_BeginningTransaction_Proxy( 
  1405.     IHttpNegotiate * This,
  1406.     /* [in] */ LPCWSTR szURL,
  1407.     /* [unique][in] */ LPCWSTR szHeaders,
  1408.     /* [in] */ DWORD dwReserved,
  1409.     /* [out] */ LPWSTR *pszAdditionalHeaders);
  1410. void __RPC_STUB IHttpNegotiate_BeginningTransaction_Stub(
  1411.     IRpcStubBuffer *This,
  1412.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1413.     PRPC_MESSAGE _pRpcMessage,
  1414.     DWORD *_pdwStubPhase);
  1415. HRESULT STDMETHODCALLTYPE IHttpNegotiate_OnResponse_Proxy( 
  1416.     IHttpNegotiate * This,
  1417.     /* [in] */ DWORD dwResponseCode,
  1418.     /* [unique][in] */ LPCWSTR szResponseHeaders,
  1419.     /* [unique][in] */ LPCWSTR szRequestHeaders,
  1420.     /* [out] */ LPWSTR *pszAdditionalRequestHeaders);
  1421. void __RPC_STUB IHttpNegotiate_OnResponse_Stub(
  1422.     IRpcStubBuffer *This,
  1423.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1424.     PRPC_MESSAGE _pRpcMessage,
  1425.     DWORD *_pdwStubPhase);
  1426. #endif  /* __IHttpNegotiate_INTERFACE_DEFINED__ */
  1427. /* interface __MIDL_itf_urlmon_0179 */
  1428. /* [local] */ 
  1429. #endif
  1430. #ifndef _LPHTTPNEGOTIATE2_DEFINED
  1431. #define _LPHTTPNEGOTIATE2_DEFINED
  1432. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0179_v0_0_c_ifspec;
  1433. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0179_v0_0_s_ifspec;
  1434. #ifndef __IHttpNegotiate2_INTERFACE_DEFINED__
  1435. #define __IHttpNegotiate2_INTERFACE_DEFINED__
  1436. /* interface IHttpNegotiate2 */
  1437. /* [unique][uuid][object] */ 
  1438. typedef /* [unique] */ IHttpNegotiate2 *LPHTTPNEGOTIATE2;
  1439. EXTERN_C const IID IID_IHttpNegotiate2;
  1440. #if defined(__cplusplus) && !defined(CINTERFACE)
  1441.     
  1442.     MIDL_INTERFACE("4F9F9FCB-E0F4-48eb-B7AB-FA2EA9365CB4")
  1443.     IHttpNegotiate2 : public IHttpNegotiate
  1444.     {
  1445.     public:
  1446.         virtual HRESULT STDMETHODCALLTYPE GetRootSecurityId( 
  1447.             /* [size_is][out] */ BYTE *pbSecurityId,
  1448.             /* [out][in] */ DWORD *pcbSecurityId,
  1449.             /* [in] */ DWORD_PTR dwReserved) = 0;
  1450.         
  1451.     };
  1452.     
  1453. #else  /* C style interface */
  1454.     typedef struct IHttpNegotiate2Vtbl
  1455.     {
  1456.         BEGIN_INTERFACE
  1457.         
  1458.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1459.             IHttpNegotiate2 * This,
  1460.             /* [in] */ REFIID riid,
  1461.             /* [iid_is][out] */ void **ppvObject);
  1462.         
  1463.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1464.             IHttpNegotiate2 * This);
  1465.         
  1466.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1467.             IHttpNegotiate2 * This);
  1468.         
  1469.         HRESULT ( STDMETHODCALLTYPE *BeginningTransaction )( 
  1470.             IHttpNegotiate2 * This,
  1471.             /* [in] */ LPCWSTR szURL,
  1472.             /* [unique][in] */ LPCWSTR szHeaders,
  1473.             /* [in] */ DWORD dwReserved,
  1474.             /* [out] */ LPWSTR *pszAdditionalHeaders);
  1475.         
  1476.         HRESULT ( STDMETHODCALLTYPE *OnResponse )( 
  1477.             IHttpNegotiate2 * This,
  1478.             /* [in] */ DWORD dwResponseCode,
  1479.             /* [unique][in] */ LPCWSTR szResponseHeaders,
  1480.             /* [unique][in] */ LPCWSTR szRequestHeaders,
  1481.             /* [out] */ LPWSTR *pszAdditionalRequestHeaders);
  1482.         
  1483.         HRESULT ( STDMETHODCALLTYPE *GetRootSecurityId )( 
  1484.             IHttpNegotiate2 * This,
  1485.             /* [size_is][out] */ BYTE *pbSecurityId,
  1486.             /* [out][in] */ DWORD *pcbSecurityId,
  1487.             /* [in] */ DWORD_PTR dwReserved);
  1488.         
  1489.         END_INTERFACE
  1490.     } IHttpNegotiate2Vtbl;
  1491.     interface IHttpNegotiate2
  1492.     {
  1493.         CONST_VTBL struct IHttpNegotiate2Vtbl *lpVtbl;
  1494.     };
  1495.     
  1496. #ifdef COBJMACROS
  1497. #define IHttpNegotiate2_QueryInterface(This,riid,ppvObject)
  1498.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1499. #define IHttpNegotiate2_AddRef(This)
  1500.     (This)->lpVtbl -> AddRef(This)
  1501. #define IHttpNegotiate2_Release(This)
  1502.     (This)->lpVtbl -> Release(This)
  1503. #define IHttpNegotiate2_BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders)
  1504.     (This)->lpVtbl -> BeginningTransaction(This,szURL,szHeaders,dwReserved,pszAdditionalHeaders)
  1505. #define IHttpNegotiate2_OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders)
  1506.     (This)->lpVtbl -> OnResponse(This,dwResponseCode,szResponseHeaders,szRequestHeaders,pszAdditionalRequestHeaders)
  1507. #define IHttpNegotiate2_GetRootSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved)
  1508.     (This)->lpVtbl -> GetRootSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved)
  1509. #endif /* COBJMACROS */
  1510. #endif  /* C style interface */
  1511. HRESULT STDMETHODCALLTYPE IHttpNegotiate2_GetRootSecurityId_Proxy( 
  1512.     IHttpNegotiate2 * This,
  1513.     /* [size_is][out] */ BYTE *pbSecurityId,
  1514.     /* [out][in] */ DWORD *pcbSecurityId,
  1515.     /* [in] */ DWORD_PTR dwReserved);
  1516. void __RPC_STUB IHttpNegotiate2_GetRootSecurityId_Stub(
  1517.     IRpcStubBuffer *This,
  1518.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1519.     PRPC_MESSAGE _pRpcMessage,
  1520.     DWORD *_pdwStubPhase);
  1521. #endif  /* __IHttpNegotiate2_INTERFACE_DEFINED__ */
  1522. /* interface __MIDL_itf_urlmon_0180 */
  1523. /* [local] */ 
  1524. #endif
  1525. #ifndef _LPWINDOWFORBINDINGUI_DEFINED
  1526. #define _LPWINDOWFORBINDINGUI_DEFINED
  1527. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0180_v0_0_c_ifspec;
  1528. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0180_v0_0_s_ifspec;
  1529. #ifndef __IWindowForBindingUI_INTERFACE_DEFINED__
  1530. #define __IWindowForBindingUI_INTERFACE_DEFINED__
  1531. /* interface IWindowForBindingUI */
  1532. /* [unique][uuid][object][local] */ 
  1533. typedef /* [unique] */ IWindowForBindingUI *LPWINDOWFORBINDINGUI;
  1534. EXTERN_C const IID IID_IWindowForBindingUI;
  1535. #if defined(__cplusplus) && !defined(CINTERFACE)
  1536.     
  1537.     MIDL_INTERFACE("79eac9d5-bafa-11ce-8c82-00aa004ba90b")
  1538.     IWindowForBindingUI : public IUnknown
  1539.     {
  1540.     public:
  1541.         virtual HRESULT STDMETHODCALLTYPE GetWindow( 
  1542.             /* [in] */ REFGUID rguidReason,
  1543.             /* [out] */ HWND *phwnd) = 0;
  1544.         
  1545.     };
  1546.     
  1547. #else  /* C style interface */
  1548.     typedef struct IWindowForBindingUIVtbl
  1549.     {
  1550.         BEGIN_INTERFACE
  1551.         
  1552.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1553.             IWindowForBindingUI * This,
  1554.             /* [in] */ REFIID riid,
  1555.             /* [iid_is][out] */ void **ppvObject);
  1556.         
  1557.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1558.             IWindowForBindingUI * This);
  1559.         
  1560.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1561.             IWindowForBindingUI * This);
  1562.         
  1563.         HRESULT ( STDMETHODCALLTYPE *GetWindow )( 
  1564.             IWindowForBindingUI * This,
  1565.             /* [in] */ REFGUID rguidReason,
  1566.             /* [out] */ HWND *phwnd);
  1567.         
  1568.         END_INTERFACE
  1569.     } IWindowForBindingUIVtbl;
  1570.     interface IWindowForBindingUI
  1571.     {
  1572.         CONST_VTBL struct IWindowForBindingUIVtbl *lpVtbl;
  1573.     };
  1574.     
  1575. #ifdef COBJMACROS
  1576. #define IWindowForBindingUI_QueryInterface(This,riid,ppvObject)
  1577.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1578. #define IWindowForBindingUI_AddRef(This)
  1579.     (This)->lpVtbl -> AddRef(This)
  1580. #define IWindowForBindingUI_Release(This)
  1581.     (This)->lpVtbl -> Release(This)
  1582. #define IWindowForBindingUI_GetWindow(This,rguidReason,phwnd)
  1583.     (This)->lpVtbl -> GetWindow(This,rguidReason,phwnd)
  1584. #endif /* COBJMACROS */
  1585. #endif  /* C style interface */
  1586. HRESULT STDMETHODCALLTYPE IWindowForBindingUI_GetWindow_Proxy( 
  1587.     IWindowForBindingUI * This,
  1588.     /* [in] */ REFGUID rguidReason,
  1589.     /* [out] */ HWND *phwnd);
  1590. void __RPC_STUB IWindowForBindingUI_GetWindow_Stub(
  1591.     IRpcStubBuffer *This,
  1592.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1593.     PRPC_MESSAGE _pRpcMessage,
  1594.     DWORD *_pdwStubPhase);
  1595. #endif  /* __IWindowForBindingUI_INTERFACE_DEFINED__ */
  1596. /* interface __MIDL_itf_urlmon_0181 */
  1597. /* [local] */ 
  1598. #endif
  1599. #ifndef _LPCODEINSTALL_DEFINED
  1600. #define _LPCODEINSTALL_DEFINED
  1601. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0181_v0_0_c_ifspec;
  1602. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0181_v0_0_s_ifspec;
  1603. #ifndef __ICodeInstall_INTERFACE_DEFINED__
  1604. #define __ICodeInstall_INTERFACE_DEFINED__
  1605. /* interface ICodeInstall */
  1606. /* [unique][uuid][object][local] */ 
  1607. typedef /* [unique] */ ICodeInstall *LPCODEINSTALL;
  1608. typedef /* [public] */ 
  1609. enum __MIDL_ICodeInstall_0001
  1610.     { CIP_DISK_FULL = 0,
  1611. CIP_ACCESS_DENIED = CIP_DISK_FULL + 1,
  1612. CIP_NEWER_VERSION_EXISTS = CIP_ACCESS_DENIED + 1,
  1613. CIP_OLDER_VERSION_EXISTS = CIP_NEWER_VERSION_EXISTS + 1,
  1614. CIP_NAME_CONFLICT = CIP_OLDER_VERSION_EXISTS + 1,
  1615. CIP_TRUST_VERIFICATION_COMPONENT_MISSING = CIP_NAME_CONFLICT + 1,
  1616. CIP_EXE_SELF_REGISTERATION_TIMEOUT = CIP_TRUST_VERIFICATION_COMPONENT_MISSING + 1,
  1617. CIP_UNSAFE_TO_ABORT = CIP_EXE_SELF_REGISTERATION_TIMEOUT + 1,
  1618. CIP_NEED_REBOOT = CIP_UNSAFE_TO_ABORT + 1
  1619.     }  CIP_STATUS;
  1620. EXTERN_C const IID IID_ICodeInstall;
  1621. #if defined(__cplusplus) && !defined(CINTERFACE)
  1622.     
  1623.     MIDL_INTERFACE("79eac9d1-baf9-11ce-8c82-00aa004ba90b")
  1624.     ICodeInstall : public IWindowForBindingUI
  1625.     {
  1626.     public:
  1627.         virtual HRESULT STDMETHODCALLTYPE OnCodeInstallProblem( 
  1628.             /* [in] */ ULONG ulStatusCode,
  1629.             /* [unique][in] */ LPCWSTR szDestination,
  1630.             /* [unique][in] */ LPCWSTR szSource,
  1631.             /* [in] */ DWORD dwReserved) = 0;
  1632.         
  1633.     };
  1634.     
  1635. #else  /* C style interface */
  1636.     typedef struct ICodeInstallVtbl
  1637.     {
  1638.         BEGIN_INTERFACE
  1639.         
  1640.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1641.             ICodeInstall * This,
  1642.             /* [in] */ REFIID riid,
  1643.             /* [iid_is][out] */ void **ppvObject);
  1644.         
  1645.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1646.             ICodeInstall * This);
  1647.         
  1648.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1649.             ICodeInstall * This);
  1650.         
  1651.         HRESULT ( STDMETHODCALLTYPE *GetWindow )( 
  1652.             ICodeInstall * This,
  1653.             /* [in] */ REFGUID rguidReason,
  1654.             /* [out] */ HWND *phwnd);
  1655.         
  1656.         HRESULT ( STDMETHODCALLTYPE *OnCodeInstallProblem )( 
  1657.             ICodeInstall * This,
  1658.             /* [in] */ ULONG ulStatusCode,
  1659.             /* [unique][in] */ LPCWSTR szDestination,
  1660.             /* [unique][in] */ LPCWSTR szSource,
  1661.             /* [in] */ DWORD dwReserved);
  1662.         
  1663.         END_INTERFACE
  1664.     } ICodeInstallVtbl;
  1665.     interface ICodeInstall
  1666.     {
  1667.         CONST_VTBL struct ICodeInstallVtbl *lpVtbl;
  1668.     };
  1669.     
  1670. #ifdef COBJMACROS
  1671. #define ICodeInstall_QueryInterface(This,riid,ppvObject)
  1672.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1673. #define ICodeInstall_AddRef(This)
  1674.     (This)->lpVtbl -> AddRef(This)
  1675. #define ICodeInstall_Release(This)
  1676.     (This)->lpVtbl -> Release(This)
  1677. #define ICodeInstall_GetWindow(This,rguidReason,phwnd)
  1678.     (This)->lpVtbl -> GetWindow(This,rguidReason,phwnd)
  1679. #define ICodeInstall_OnCodeInstallProblem(This,ulStatusCode,szDestination,szSource,dwReserved)
  1680.     (This)->lpVtbl -> OnCodeInstallProblem(This,ulStatusCode,szDestination,szSource,dwReserved)
  1681. #endif /* COBJMACROS */
  1682. #endif  /* C style interface */
  1683. HRESULT STDMETHODCALLTYPE ICodeInstall_OnCodeInstallProblem_Proxy( 
  1684.     ICodeInstall * This,
  1685.     /* [in] */ ULONG ulStatusCode,
  1686.     /* [unique][in] */ LPCWSTR szDestination,
  1687.     /* [unique][in] */ LPCWSTR szSource,
  1688.     /* [in] */ DWORD dwReserved);
  1689. void __RPC_STUB ICodeInstall_OnCodeInstallProblem_Stub(
  1690.     IRpcStubBuffer *This,
  1691.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1692.     PRPC_MESSAGE _pRpcMessage,
  1693.     DWORD *_pdwStubPhase);
  1694. #endif  /* __ICodeInstall_INTERFACE_DEFINED__ */
  1695. /* interface __MIDL_itf_urlmon_0182 */
  1696. /* [local] */ 
  1697. #endif
  1698. #ifndef _LPWININETINFO_DEFINED
  1699. #define _LPWININETINFO_DEFINED
  1700. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0182_v0_0_c_ifspec;
  1701. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0182_v0_0_s_ifspec;
  1702. #ifndef __IWinInetInfo_INTERFACE_DEFINED__
  1703. #define __IWinInetInfo_INTERFACE_DEFINED__
  1704. /* interface IWinInetInfo */
  1705. /* [unique][uuid][object] */ 
  1706. typedef /* [unique] */ IWinInetInfo *LPWININETINFO;
  1707. EXTERN_C const IID IID_IWinInetInfo;
  1708. #if defined(__cplusplus) && !defined(CINTERFACE)
  1709.     
  1710.     MIDL_INTERFACE("79eac9d6-bafa-11ce-8c82-00aa004ba90b")
  1711.     IWinInetInfo : public IUnknown
  1712.     {
  1713.     public:
  1714.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE QueryOption( 
  1715.             /* [in] */ DWORD dwOption,
  1716.             /* [size_is][out][in] */ LPVOID pBuffer,
  1717.             /* [out][in] */ DWORD *pcbBuf) = 0;
  1718.         
  1719.     };
  1720.     
  1721. #else  /* C style interface */
  1722.     typedef struct IWinInetInfoVtbl
  1723.     {
  1724.         BEGIN_INTERFACE
  1725.         
  1726.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1727.             IWinInetInfo * This,
  1728.             /* [in] */ REFIID riid,
  1729.             /* [iid_is][out] */ void **ppvObject);
  1730.         
  1731.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1732.             IWinInetInfo * This);
  1733.         
  1734.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1735.             IWinInetInfo * This);
  1736.         
  1737.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *QueryOption )( 
  1738.             IWinInetInfo * This,
  1739.             /* [in] */ DWORD dwOption,
  1740.             /* [size_is][out][in] */ LPVOID pBuffer,
  1741.             /* [out][in] */ DWORD *pcbBuf);
  1742.         
  1743.         END_INTERFACE
  1744.     } IWinInetInfoVtbl;
  1745.     interface IWinInetInfo
  1746.     {
  1747.         CONST_VTBL struct IWinInetInfoVtbl *lpVtbl;
  1748.     };
  1749.     
  1750. #ifdef COBJMACROS
  1751. #define IWinInetInfo_QueryInterface(This,riid,ppvObject)
  1752.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1753. #define IWinInetInfo_AddRef(This)
  1754.     (This)->lpVtbl -> AddRef(This)
  1755. #define IWinInetInfo_Release(This)
  1756.     (This)->lpVtbl -> Release(This)
  1757. #define IWinInetInfo_QueryOption(This,dwOption,pBuffer,pcbBuf)
  1758.     (This)->lpVtbl -> QueryOption(This,dwOption,pBuffer,pcbBuf)
  1759. #endif /* COBJMACROS */
  1760. #endif  /* C style interface */
  1761. /* [call_as] */ HRESULT STDMETHODCALLTYPE IWinInetInfo_RemoteQueryOption_Proxy( 
  1762.     IWinInetInfo * This,
  1763.     /* [in] */ DWORD dwOption,
  1764.     /* [size_is][out][in] */ BYTE *pBuffer,
  1765.     /* [out][in] */ DWORD *pcbBuf);
  1766. void __RPC_STUB IWinInetInfo_RemoteQueryOption_Stub(
  1767.     IRpcStubBuffer *This,
  1768.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1769.     PRPC_MESSAGE _pRpcMessage,
  1770.     DWORD *_pdwStubPhase);
  1771. #endif  /* __IWinInetInfo_INTERFACE_DEFINED__ */
  1772. /* interface __MIDL_itf_urlmon_0183 */
  1773. /* [local] */ 
  1774. #endif
  1775. #define WININETINFO_OPTION_LOCK_HANDLE 65534
  1776. #ifndef _LPHTTPSECURITY_DEFINED
  1777. #define _LPHTTPSECURITY_DEFINED
  1778. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0183_v0_0_c_ifspec;
  1779. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0183_v0_0_s_ifspec;
  1780. #ifndef __IHttpSecurity_INTERFACE_DEFINED__
  1781. #define __IHttpSecurity_INTERFACE_DEFINED__
  1782. /* interface IHttpSecurity */
  1783. /* [unique][uuid][object][local] */ 
  1784. typedef /* [unique] */ IHttpSecurity *LPHTTPSECURITY;
  1785. EXTERN_C const IID IID_IHttpSecurity;
  1786. #if defined(__cplusplus) && !defined(CINTERFACE)
  1787.     
  1788.     MIDL_INTERFACE("79eac9d7-bafa-11ce-8c82-00aa004ba90b")
  1789.     IHttpSecurity : public IWindowForBindingUI
  1790.     {
  1791.     public:
  1792.         virtual HRESULT STDMETHODCALLTYPE OnSecurityProblem( 
  1793.             /* [in] */ DWORD dwProblem) = 0;
  1794.         
  1795.     };
  1796.     
  1797. #else  /* C style interface */
  1798.     typedef struct IHttpSecurityVtbl
  1799.     {
  1800.         BEGIN_INTERFACE
  1801.         
  1802.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1803.             IHttpSecurity * This,
  1804.             /* [in] */ REFIID riid,
  1805.             /* [iid_is][out] */ void **ppvObject);
  1806.         
  1807.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1808.             IHttpSecurity * This);
  1809.         
  1810.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1811.             IHttpSecurity * This);
  1812.         
  1813.         HRESULT ( STDMETHODCALLTYPE *GetWindow )( 
  1814.             IHttpSecurity * This,
  1815.             /* [in] */ REFGUID rguidReason,
  1816.             /* [out] */ HWND *phwnd);
  1817.         
  1818.         HRESULT ( STDMETHODCALLTYPE *OnSecurityProblem )( 
  1819.             IHttpSecurity * This,
  1820.             /* [in] */ DWORD dwProblem);
  1821.         
  1822.         END_INTERFACE
  1823.     } IHttpSecurityVtbl;
  1824.     interface IHttpSecurity
  1825.     {
  1826.         CONST_VTBL struct IHttpSecurityVtbl *lpVtbl;
  1827.     };
  1828.     
  1829. #ifdef COBJMACROS
  1830. #define IHttpSecurity_QueryInterface(This,riid,ppvObject)
  1831.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1832. #define IHttpSecurity_AddRef(This)
  1833.     (This)->lpVtbl -> AddRef(This)
  1834. #define IHttpSecurity_Release(This)
  1835.     (This)->lpVtbl -> Release(This)
  1836. #define IHttpSecurity_GetWindow(This,rguidReason,phwnd)
  1837.     (This)->lpVtbl -> GetWindow(This,rguidReason,phwnd)
  1838. #define IHttpSecurity_OnSecurityProblem(This,dwProblem)
  1839.     (This)->lpVtbl -> OnSecurityProblem(This,dwProblem)
  1840. #endif /* COBJMACROS */
  1841. #endif  /* C style interface */
  1842. HRESULT STDMETHODCALLTYPE IHttpSecurity_OnSecurityProblem_Proxy( 
  1843.     IHttpSecurity * This,
  1844.     /* [in] */ DWORD dwProblem);
  1845. void __RPC_STUB IHttpSecurity_OnSecurityProblem_Stub(
  1846.     IRpcStubBuffer *This,
  1847.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1848.     PRPC_MESSAGE _pRpcMessage,
  1849.     DWORD *_pdwStubPhase);
  1850. #endif  /* __IHttpSecurity_INTERFACE_DEFINED__ */
  1851. /* interface __MIDL_itf_urlmon_0184 */
  1852. /* [local] */ 
  1853. #endif
  1854. #ifndef _LPWININETHTTPINFO_DEFINED
  1855. #define _LPWININETHTTPINFO_DEFINED
  1856. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0184_v0_0_c_ifspec;
  1857. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0184_v0_0_s_ifspec;
  1858. #ifndef __IWinInetHttpInfo_INTERFACE_DEFINED__
  1859. #define __IWinInetHttpInfo_INTERFACE_DEFINED__
  1860. /* interface IWinInetHttpInfo */
  1861. /* [unique][uuid][object] */ 
  1862. typedef /* [unique] */ IWinInetHttpInfo *LPWININETHTTPINFO;
  1863. EXTERN_C const IID IID_IWinInetHttpInfo;
  1864. #if defined(__cplusplus) && !defined(CINTERFACE)
  1865.     
  1866.     MIDL_INTERFACE("79eac9d8-bafa-11ce-8c82-00aa004ba90b")
  1867.     IWinInetHttpInfo : public IWinInetInfo
  1868.     {
  1869.     public:
  1870.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE QueryInfo( 
  1871.             /* [in] */ DWORD dwOption,
  1872.             /* [size_is][out][in] */ LPVOID pBuffer,
  1873.             /* [out][in] */ DWORD *pcbBuf,
  1874.             /* [out][in] */ DWORD *pdwFlags,
  1875.             /* [out][in] */ DWORD *pdwReserved) = 0;
  1876.         
  1877.     };
  1878.     
  1879. #else  /* C style interface */
  1880.     typedef struct IWinInetHttpInfoVtbl
  1881.     {
  1882.         BEGIN_INTERFACE
  1883.         
  1884.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1885.             IWinInetHttpInfo * This,
  1886.             /* [in] */ REFIID riid,
  1887.             /* [iid_is][out] */ void **ppvObject);
  1888.         
  1889.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1890.             IWinInetHttpInfo * This);
  1891.         
  1892.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1893.             IWinInetHttpInfo * This);
  1894.         
  1895.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *QueryOption )( 
  1896.             IWinInetHttpInfo * This,
  1897.             /* [in] */ DWORD dwOption,
  1898.             /* [size_is][out][in] */ LPVOID pBuffer,
  1899.             /* [out][in] */ DWORD *pcbBuf);
  1900.         
  1901.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *QueryInfo )( 
  1902.             IWinInetHttpInfo * This,
  1903.             /* [in] */ DWORD dwOption,
  1904.             /* [size_is][out][in] */ LPVOID pBuffer,
  1905.             /* [out][in] */ DWORD *pcbBuf,
  1906.             /* [out][in] */ DWORD *pdwFlags,
  1907.             /* [out][in] */ DWORD *pdwReserved);
  1908.         
  1909.         END_INTERFACE
  1910.     } IWinInetHttpInfoVtbl;
  1911.     interface IWinInetHttpInfo
  1912.     {
  1913.         CONST_VTBL struct IWinInetHttpInfoVtbl *lpVtbl;
  1914.     };
  1915.     
  1916. #ifdef COBJMACROS
  1917. #define IWinInetHttpInfo_QueryInterface(This,riid,ppvObject)
  1918.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1919. #define IWinInetHttpInfo_AddRef(This)
  1920.     (This)->lpVtbl -> AddRef(This)
  1921. #define IWinInetHttpInfo_Release(This)
  1922.     (This)->lpVtbl -> Release(This)
  1923. #define IWinInetHttpInfo_QueryOption(This,dwOption,pBuffer,pcbBuf)
  1924.     (This)->lpVtbl -> QueryOption(This,dwOption,pBuffer,pcbBuf)
  1925. #define IWinInetHttpInfo_QueryInfo(This,dwOption,pBuffer,pcbBuf,pdwFlags,pdwReserved)
  1926.     (This)->lpVtbl -> QueryInfo(This,dwOption,pBuffer,pcbBuf,pdwFlags,pdwReserved)
  1927. #endif /* COBJMACROS */
  1928. #endif  /* C style interface */
  1929. /* [call_as] */ HRESULT STDMETHODCALLTYPE IWinInetHttpInfo_RemoteQueryInfo_Proxy( 
  1930.     IWinInetHttpInfo * This,
  1931.     /* [in] */ DWORD dwOption,
  1932.     /* [size_is][out][in] */ BYTE *pBuffer,
  1933.     /* [out][in] */ DWORD *pcbBuf,
  1934.     /* [out][in] */ DWORD *pdwFlags,
  1935.     /* [out][in] */ DWORD *pdwReserved);
  1936. void __RPC_STUB IWinInetHttpInfo_RemoteQueryInfo_Stub(
  1937.     IRpcStubBuffer *This,
  1938.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1939.     PRPC_MESSAGE _pRpcMessage,
  1940.     DWORD *_pdwStubPhase);
  1941. #endif  /* __IWinInetHttpInfo_INTERFACE_DEFINED__ */
  1942. /* interface __MIDL_itf_urlmon_0185 */
  1943. /* [local] */ 
  1944. #endif
  1945. #define SID_IBindHost IID_IBindHost
  1946. #define SID_SBindHost IID_IBindHost
  1947. #ifndef _LPBINDHOST_DEFINED
  1948. #define _LPBINDHOST_DEFINED
  1949. EXTERN_C const GUID SID_BindHost;
  1950. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0185_v0_0_c_ifspec;
  1951. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0185_v0_0_s_ifspec;
  1952. #ifndef __IBindHost_INTERFACE_DEFINED__
  1953. #define __IBindHost_INTERFACE_DEFINED__
  1954. /* interface IBindHost */
  1955. /* [unique][uuid][object] */ 
  1956. typedef /* [unique] */ IBindHost *LPBINDHOST;
  1957. EXTERN_C const IID IID_IBindHost;
  1958. #if defined(__cplusplus) && !defined(CINTERFACE)
  1959.     
  1960.     MIDL_INTERFACE("fc4801a1-2ba9-11cf-a229-00aa003d7352")
  1961.     IBindHost : public IUnknown
  1962.     {
  1963.     public:
  1964.         virtual HRESULT STDMETHODCALLTYPE CreateMoniker( 
  1965.             /* [in] */ LPOLESTR szName,
  1966.             /* [in] */ IBindCtx *pBC,
  1967.             /* [out] */ IMoniker **ppmk,
  1968.             /* [in] */ DWORD dwReserved) = 0;
  1969.         
  1970.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE MonikerBindToStorage( 
  1971.             /* [in] */ IMoniker *pMk,
  1972.             /* [in] */ IBindCtx *pBC,
  1973.             /* [in] */ IBindStatusCallback *pBSC,
  1974.             /* [in] */ REFIID riid,
  1975.             /* [out] */ void **ppvObj) = 0;
  1976.         
  1977.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE MonikerBindToObject( 
  1978.             /* [in] */ IMoniker *pMk,
  1979.             /* [in] */ IBindCtx *pBC,
  1980.             /* [in] */ IBindStatusCallback *pBSC,
  1981.             /* [in] */ REFIID riid,
  1982.             /* [out] */ void **ppvObj) = 0;
  1983.         
  1984.     };
  1985.     
  1986. #else  /* C style interface */
  1987.     typedef struct IBindHostVtbl
  1988.     {
  1989.         BEGIN_INTERFACE
  1990.         
  1991.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1992.             IBindHost * This,
  1993.             /* [in] */ REFIID riid,
  1994.             /* [iid_is][out] */ void **ppvObject);
  1995.         
  1996.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1997.             IBindHost * This);
  1998.         
  1999.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2000.             IBindHost * This);
  2001.         
  2002.         HRESULT ( STDMETHODCALLTYPE *CreateMoniker )( 
  2003.             IBindHost * This,
  2004.             /* [in] */ LPOLESTR szName,
  2005.             /* [in] */ IBindCtx *pBC,
  2006.             /* [out] */ IMoniker **ppmk,
  2007.             /* [in] */ DWORD dwReserved);
  2008.         
  2009.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *MonikerBindToStorage )( 
  2010.             IBindHost * This,
  2011.             /* [in] */ IMoniker *pMk,
  2012.             /* [in] */ IBindCtx *pBC,
  2013.             /* [in] */ IBindStatusCallback *pBSC,
  2014.             /* [in] */ REFIID riid,
  2015.             /* [out] */ void **ppvObj);
  2016.         
  2017.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *MonikerBindToObject )( 
  2018.             IBindHost * This,
  2019.             /* [in] */ IMoniker *pMk,
  2020.             /* [in] */ IBindCtx *pBC,
  2021.             /* [in] */ IBindStatusCallback *pBSC,
  2022.             /* [in] */ REFIID riid,
  2023.             /* [out] */ void **ppvObj);
  2024.         
  2025.         END_INTERFACE
  2026.     } IBindHostVtbl;
  2027.     interface IBindHost
  2028.     {
  2029.         CONST_VTBL struct IBindHostVtbl *lpVtbl;
  2030.     };
  2031.     
  2032. #ifdef COBJMACROS
  2033. #define IBindHost_QueryInterface(This,riid,ppvObject)
  2034.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2035. #define IBindHost_AddRef(This)
  2036.     (This)->lpVtbl -> AddRef(This)
  2037. #define IBindHost_Release(This)
  2038.     (This)->lpVtbl -> Release(This)
  2039. #define IBindHost_CreateMoniker(This,szName,pBC,ppmk,dwReserved)
  2040.     (This)->lpVtbl -> CreateMoniker(This,szName,pBC,ppmk,dwReserved)
  2041. #define IBindHost_MonikerBindToStorage(This,pMk,pBC,pBSC,riid,ppvObj)
  2042.     (This)->lpVtbl -> MonikerBindToStorage(This,pMk,pBC,pBSC,riid,ppvObj)
  2043. #define IBindHost_MonikerBindToObject(This,pMk,pBC,pBSC,riid,ppvObj)
  2044.     (This)->lpVtbl -> MonikerBindToObject(This,pMk,pBC,pBSC,riid,ppvObj)
  2045. #endif /* COBJMACROS */
  2046. #endif  /* C style interface */
  2047. HRESULT STDMETHODCALLTYPE IBindHost_CreateMoniker_Proxy( 
  2048.     IBindHost * This,
  2049.     /* [in] */ LPOLESTR szName,
  2050.     /* [in] */ IBindCtx *pBC,
  2051.     /* [out] */ IMoniker **ppmk,
  2052.     /* [in] */ DWORD dwReserved);
  2053. void __RPC_STUB IBindHost_CreateMoniker_Stub(
  2054.     IRpcStubBuffer *This,
  2055.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2056.     PRPC_MESSAGE _pRpcMessage,
  2057.     DWORD *_pdwStubPhase);
  2058. /* [call_as] */ HRESULT STDMETHODCALLTYPE IBindHost_RemoteMonikerBindToStorage_Proxy( 
  2059.     IBindHost * This,
  2060.     /* [unique][in] */ IMoniker *pMk,
  2061.     /* [unique][in] */ IBindCtx *pBC,
  2062.     /* [unique][in] */ IBindStatusCallback *pBSC,
  2063.     /* [in] */ REFIID riid,
  2064.     /* [iid_is][out] */ IUnknown **ppvObj);
  2065. void __RPC_STUB IBindHost_RemoteMonikerBindToStorage_Stub(
  2066.     IRpcStubBuffer *This,
  2067.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2068.     PRPC_MESSAGE _pRpcMessage,
  2069.     DWORD *_pdwStubPhase);
  2070. /* [call_as] */ HRESULT STDMETHODCALLTYPE IBindHost_RemoteMonikerBindToObject_Proxy( 
  2071.     IBindHost * This,
  2072.     /* [unique][in] */ IMoniker *pMk,
  2073.     /* [unique][in] */ IBindCtx *pBC,
  2074.     /* [unique][in] */ IBindStatusCallback *pBSC,
  2075.     /* [in] */ REFIID riid,
  2076.     /* [iid_is][out] */ IUnknown **ppvObj);
  2077. void __RPC_STUB IBindHost_RemoteMonikerBindToObject_Stub(
  2078.     IRpcStubBuffer *This,
  2079.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2080.     PRPC_MESSAGE _pRpcMessage,
  2081.     DWORD *_pdwStubPhase);
  2082. #endif  /* __IBindHost_INTERFACE_DEFINED__ */
  2083. /* interface __MIDL_itf_urlmon_0186 */
  2084. /* [local] */ 
  2085. #endif
  2086.                                                                                                            
  2087. // These are for backwards compatibility with previous URLMON versions
  2088. // Flags for the UrlDownloadToCacheFile                                                                    
  2089. #define URLOSTRM_USECACHEDCOPY_ONLY             0x1      // Only get from cache                            
  2090. #define URLOSTRM_USECACHEDCOPY                  0x2      // Get from cache if available else download      
  2091. #define URLOSTRM_GETNEWESTVERSION               0x3      // Get new version only. But put it in cache too  
  2092.                                                                                                            
  2093.                                                                                                            
  2094. struct IBindStatusCallback;                                                                                
  2095. STDAPI HlinkSimpleNavigateToString(                                                                        
  2096.     /* [in] */ LPCWSTR szTarget,         // required - target document - null if local jump w/in doc       
  2097.     /* [in] */ LPCWSTR szLocation,       // optional, for navigation into middle of a doc                  
  2098.     /* [in] */ LPCWSTR szTargetFrameName,// optional, for targeting frame-sets                             
  2099.     /* [in] */ IUnknown *pUnk,           // required - we'll search this for other necessary interfaces    
  2100.     /* [in] */ IBindCtx *pbc,            // optional. caller may register an IBSC in this                  
  2101.     /* [in] */ IBindStatusCallback *,                                                                      
  2102.     /* [in] */ DWORD grfHLNF,            // flags                                                          
  2103.     /* [in] */ DWORD dwReserved          // for future use, must be NULL                                   
  2104. );                                                                                                         
  2105.                                                                                                            
  2106. STDAPI HlinkSimpleNavigateToMoniker(                                                                       
  2107.     /* [in] */ IMoniker *pmkTarget,      // required - target document - (may be null                      
  2108.     /* [in] */ LPCWSTR szLocation,       // optional, for navigation into middle of a doc                  
  2109.     /* [in] */ LPCWSTR szTargetFrameName,// optional, for targeting frame-sets                             
  2110.     /* [in] */ IUnknown *pUnk,           // required - we'll search this for other necessary interfaces    
  2111.     /* [in] */ IBindCtx *pbc,            // optional. caller may register an IBSC in this                  
  2112.     /* [in] */ IBindStatusCallback *,                                                                      
  2113.     /* [in] */ DWORD grfHLNF,            // flags                                                          
  2114.     /* [in] */ DWORD dwReserved          // for future use, must be NULL                                   
  2115. );                                                                                                         
  2116.                                                                                                            
  2117. STDAPI URLOpenStreamA(LPUNKNOWN,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);                                        
  2118. STDAPI URLOpenStreamW(LPUNKNOWN,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);                                       
  2119. STDAPI URLOpenPullStreamA(LPUNKNOWN,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);                                    
  2120. STDAPI URLOpenPullStreamW(LPUNKNOWN,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);                                   
  2121. STDAPI URLDownloadToFileA(LPUNKNOWN,LPCSTR,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);                             
  2122. STDAPI URLDownloadToFileW(LPUNKNOWN,LPCWSTR,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);                           
  2123. STDAPI URLDownloadToCacheFileA(LPUNKNOWN,LPCSTR,LPTSTR,DWORD,DWORD,LPBINDSTATUSCALLBACK);                  
  2124. STDAPI URLDownloadToCacheFileW(LPUNKNOWN,LPCWSTR,LPWSTR,DWORD,DWORD,LPBINDSTATUSCALLBACK);                 
  2125. STDAPI URLOpenBlockingStreamA(LPUNKNOWN,LPCSTR,LPSTREAM*,DWORD,LPBINDSTATUSCALLBACK);                      
  2126. STDAPI URLOpenBlockingStreamW(LPUNKNOWN,LPCWSTR,LPSTREAM*,DWORD,LPBINDSTATUSCALLBACK);                     
  2127.                                                                                                            
  2128. #ifdef UNICODE                                                                                             
  2129. #define URLOpenStream            URLOpenStreamW                                                            
  2130. #define URLOpenPullStream        URLOpenPullStreamW                                                        
  2131. #define URLDownloadToFile        URLDownloadToFileW                                                        
  2132. #define URLDownloadToCacheFile   URLDownloadToCacheFileW                                                   
  2133. #define URLOpenBlockingStream    URLOpenBlockingStreamW                                                    
  2134. #else                                                                                                      
  2135. #define URLOpenStream            URLOpenStreamA                                                            
  2136. #define URLOpenPullStream        URLOpenPullStreamA                                                        
  2137. #define URLDownloadToFile        URLDownloadToFileA                                                        
  2138. #define URLDownloadToCacheFile   URLDownloadToCacheFileA                                                   
  2139. #define URLOpenBlockingStream    URLOpenBlockingStreamA                                                    
  2140. #endif // !UNICODE                                                                                         
  2141.                                                                                                            
  2142.                                                                                                            
  2143. STDAPI HlinkGoBack(IUnknown *pUnk);                                                                        
  2144. STDAPI HlinkGoForward(IUnknown *pUnk);                                                                     
  2145. STDAPI HlinkNavigateString(IUnknown *pUnk, LPCWSTR szTarget);                                              
  2146. STDAPI HlinkNavigateMoniker(IUnknown *pUnk, IMoniker *pmkTarget);                                          
  2147.                                                                                                            
  2148. #ifndef  _URLMON_NO_ASYNC_PLUGABLE_PROTOCOLS_   
  2149. #ifndef _LPIINTERNET
  2150. #define _LPIINTERNET
  2151. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0186_v0_0_c_ifspec;
  2152. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0186_v0_0_s_ifspec;
  2153. #ifndef __IInternet_INTERFACE_DEFINED__
  2154. #define __IInternet_INTERFACE_DEFINED__
  2155. /* interface IInternet */
  2156. /* [unique][uuid][object][local] */ 
  2157. typedef /* [unique] */ IInternet *LPIINTERNET;
  2158. EXTERN_C const IID IID_IInternet;
  2159. #if defined(__cplusplus) && !defined(CINTERFACE)
  2160.     
  2161.     MIDL_INTERFACE("79eac9e0-baf9-11ce-8c82-00aa004ba90b")
  2162.     IInternet : public IUnknown
  2163.     {
  2164.     public:
  2165.     };
  2166.     
  2167. #else  /* C style interface */
  2168.     typedef struct IInternetVtbl
  2169.     {
  2170.         BEGIN_INTERFACE
  2171.         
  2172.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2173.             IInternet * This,
  2174.             /* [in] */ REFIID riid,
  2175.             /* [iid_is][out] */ void **ppvObject);
  2176.         
  2177.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2178.             IInternet * This);
  2179.         
  2180.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2181.             IInternet * This);
  2182.         
  2183.         END_INTERFACE
  2184.     } IInternetVtbl;
  2185.     interface IInternet
  2186.     {
  2187.         CONST_VTBL struct IInternetVtbl *lpVtbl;
  2188.     };
  2189.     
  2190. #ifdef COBJMACROS
  2191. #define IInternet_QueryInterface(This,riid,ppvObject)
  2192.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2193. #define IInternet_AddRef(This)
  2194.     (This)->lpVtbl -> AddRef(This)
  2195. #define IInternet_Release(This)
  2196.     (This)->lpVtbl -> Release(This)
  2197. #endif /* COBJMACROS */
  2198. #endif  /* C style interface */
  2199. #endif  /* __IInternet_INTERFACE_DEFINED__ */
  2200. /* interface __MIDL_itf_urlmon_0187 */
  2201. /* [local] */ 
  2202. #endif
  2203. #ifndef _LPIINTERNETBINDINFO
  2204. #define _LPIINTERNETBINDINFO
  2205. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0187_v0_0_c_ifspec;
  2206. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0187_v0_0_s_ifspec;
  2207. #ifndef __IInternetBindInfo_INTERFACE_DEFINED__
  2208. #define __IInternetBindInfo_INTERFACE_DEFINED__
  2209. /* interface IInternetBindInfo */
  2210. /* [unique][uuid][object][local] */ 
  2211. typedef /* [unique] */ IInternetBindInfo *LPIINTERNETBINDINFO;
  2212. typedef 
  2213. enum tagBINDSTRING
  2214.     { BINDSTRING_HEADERS = 1,
  2215. BINDSTRING_ACCEPT_MIMES = BINDSTRING_HEADERS + 1,
  2216. BINDSTRING_EXTRA_URL = BINDSTRING_ACCEPT_MIMES + 1,
  2217. BINDSTRING_LANGUAGE = BINDSTRING_EXTRA_URL + 1,
  2218. BINDSTRING_USERNAME = BINDSTRING_LANGUAGE + 1,
  2219. BINDSTRING_PASSWORD = BINDSTRING_USERNAME + 1,
  2220. BINDSTRING_UA_PIXELS = BINDSTRING_PASSWORD + 1,
  2221. BINDSTRING_UA_COLOR = BINDSTRING_UA_PIXELS + 1,
  2222. BINDSTRING_OS = BINDSTRING_UA_COLOR + 1,
  2223. BINDSTRING_USER_AGENT = BINDSTRING_OS + 1,
  2224. BINDSTRING_ACCEPT_ENCODINGS = BINDSTRING_USER_AGENT + 1,
  2225. BINDSTRING_POST_COOKIE = BINDSTRING_ACCEPT_ENCODINGS + 1,
  2226. BINDSTRING_POST_DATA_MIME = BINDSTRING_POST_COOKIE + 1,
  2227. BINDSTRING_URL = BINDSTRING_POST_DATA_MIME + 1,
  2228. BINDSTRING_IID = BINDSTRING_URL + 1,
  2229. BINDSTRING_FLAG_BIND_TO_OBJECT = BINDSTRING_IID + 1,
  2230. BINDSTRING_PTR_BIND_CONTEXT = BINDSTRING_FLAG_BIND_TO_OBJECT + 1
  2231.     }  BINDSTRING;
  2232. EXTERN_C const IID IID_IInternetBindInfo;
  2233. #if defined(__cplusplus) && !defined(CINTERFACE)
  2234.     
  2235.     MIDL_INTERFACE("79eac9e1-baf9-11ce-8c82-00aa004ba90b")
  2236.     IInternetBindInfo : public IUnknown
  2237.     {
  2238.     public:
  2239.         virtual HRESULT STDMETHODCALLTYPE GetBindInfo( 
  2240.             /* [out] */ DWORD *grfBINDF,
  2241.             /* [unique][out][in] */ BINDINFO *pbindinfo) = 0;
  2242.         
  2243.         virtual HRESULT STDMETHODCALLTYPE GetBindString( 
  2244.             /* [in] */ ULONG ulStringType,
  2245.             /* [out][in] */ LPOLESTR *ppwzStr,
  2246.             /* [in] */ ULONG cEl,
  2247.             /* [out][in] */ ULONG *pcElFetched) = 0;
  2248.         
  2249.     };
  2250.     
  2251. #else  /* C style interface */
  2252.     typedef struct IInternetBindInfoVtbl
  2253.     {
  2254.         BEGIN_INTERFACE
  2255.         
  2256.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2257.             IInternetBindInfo * This,
  2258.             /* [in] */ REFIID riid,
  2259.             /* [iid_is][out] */ void **ppvObject);
  2260.         
  2261.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2262.             IInternetBindInfo * This);
  2263.         
  2264.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2265.             IInternetBindInfo * This);
  2266.         
  2267.         HRESULT ( STDMETHODCALLTYPE *GetBindInfo )( 
  2268.             IInternetBindInfo * This,
  2269.             /* [out] */ DWORD *grfBINDF,
  2270.             /* [unique][out][in] */ BINDINFO *pbindinfo);
  2271.         
  2272.         HRESULT ( STDMETHODCALLTYPE *GetBindString )( 
  2273.             IInternetBindInfo * This,
  2274.             /* [in] */ ULONG ulStringType,
  2275.             /* [out][in] */ LPOLESTR *ppwzStr,
  2276.             /* [in] */ ULONG cEl,
  2277.             /* [out][in] */ ULONG *pcElFetched);
  2278.         
  2279.         END_INTERFACE
  2280.     } IInternetBindInfoVtbl;
  2281.     interface IInternetBindInfo
  2282.     {
  2283.         CONST_VTBL struct IInternetBindInfoVtbl *lpVtbl;
  2284.     };
  2285.     
  2286. #ifdef COBJMACROS
  2287. #define IInternetBindInfo_QueryInterface(This,riid,ppvObject)
  2288.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2289. #define IInternetBindInfo_AddRef(This)
  2290.     (This)->lpVtbl -> AddRef(This)
  2291. #define IInternetBindInfo_Release(This)
  2292.     (This)->lpVtbl -> Release(This)
  2293. #define IInternetBindInfo_GetBindInfo(This,grfBINDF,pbindinfo)
  2294.     (This)->lpVtbl -> GetBindInfo(This,grfBINDF,pbindinfo)
  2295. #define IInternetBindInfo_GetBindString(This,ulStringType,ppwzStr,cEl,pcElFetched)
  2296.     (This)->lpVtbl -> GetBindString(This,ulStringType,ppwzStr,cEl,pcElFetched)
  2297. #endif /* COBJMACROS */
  2298. #endif  /* C style interface */
  2299. HRESULT STDMETHODCALLTYPE IInternetBindInfo_GetBindInfo_Proxy( 
  2300.     IInternetBindInfo * This,
  2301.     /* [out] */ DWORD *grfBINDF,
  2302.     /* [unique][out][in] */ BINDINFO *pbindinfo);
  2303. void __RPC_STUB IInternetBindInfo_GetBindInfo_Stub(
  2304.     IRpcStubBuffer *This,
  2305.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2306.     PRPC_MESSAGE _pRpcMessage,
  2307.     DWORD *_pdwStubPhase);
  2308. HRESULT STDMETHODCALLTYPE IInternetBindInfo_GetBindString_Proxy( 
  2309.     IInternetBindInfo * This,
  2310.     /* [in] */ ULONG ulStringType,
  2311.     /* [out][in] */ LPOLESTR *ppwzStr,
  2312.     /* [in] */ ULONG cEl,
  2313.     /* [out][in] */ ULONG *pcElFetched);
  2314. void __RPC_STUB IInternetBindInfo_GetBindString_Stub(
  2315.     IRpcStubBuffer *This,
  2316.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2317.     PRPC_MESSAGE _pRpcMessage,
  2318.     DWORD *_pdwStubPhase);
  2319. #endif  /* __IInternetBindInfo_INTERFACE_DEFINED__ */
  2320. /* interface __MIDL_itf_urlmon_0188 */
  2321. /* [local] */ 
  2322. #endif
  2323. #ifndef _LPIINTERNETPROTOCOLROOT_DEFINED
  2324. #define _LPIINTERNETPROTOCOLROOT_DEFINED
  2325. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0188_v0_0_c_ifspec;
  2326. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0188_v0_0_s_ifspec;
  2327. #ifndef __IInternetProtocolRoot_INTERFACE_DEFINED__
  2328. #define __IInternetProtocolRoot_INTERFACE_DEFINED__
  2329. /* interface IInternetProtocolRoot */
  2330. /* [unique][uuid][object][local] */ 
  2331. typedef /* [unique] */ IInternetProtocolRoot *LPIINTERNETPROTOCOLROOT;
  2332. typedef 
  2333. enum _tagPI_FLAGS
  2334.     { PI_PARSE_URL = 0x1,
  2335. PI_FILTER_MODE = 0x2,
  2336. PI_FORCE_ASYNC = 0x4,
  2337. PI_USE_WORKERTHREAD = 0x8,
  2338. PI_MIMEVERIFICATION = 0x10,
  2339. PI_CLSIDLOOKUP = 0x20,
  2340. PI_DATAPROGRESS = 0x40,
  2341. PI_SYNCHRONOUS = 0x80,
  2342. PI_APARTMENTTHREADED = 0x100,
  2343. PI_CLASSINSTALL = 0x200,
  2344. PI_PASSONBINDCTX = 0x2000,
  2345. PI_NOMIMEHANDLER = 0x8000,
  2346. PI_LOADAPPDIRECT = 0x4000,
  2347. PD_FORCE_SWITCH = 0x10000,
  2348. PI_PREFERDEFAULTHANDLER = 0x20000
  2349.     }  PI_FLAGS;
  2350. typedef struct _tagPROTOCOLDATA
  2351.     {
  2352.     DWORD grfFlags;
  2353.     DWORD dwState;
  2354.     LPVOID pData;
  2355.     ULONG cbData;
  2356.     }  PROTOCOLDATA;
  2357. typedef struct _tagStartParam
  2358.     {
  2359.     IID iid;
  2360.     IBindCtx *pIBindCtx;
  2361.     IUnknown *pItf;
  2362.     }  StartParam;
  2363. EXTERN_C const IID IID_IInternetProtocolRoot;
  2364. #if defined(__cplusplus) && !defined(CINTERFACE)
  2365.     
  2366.     MIDL_INTERFACE("79eac9e3-baf9-11ce-8c82-00aa004ba90b")
  2367.     IInternetProtocolRoot : public IUnknown
  2368.     {
  2369.     public:
  2370.         virtual HRESULT STDMETHODCALLTYPE Start( 
  2371.             /* [in] */ LPCWSTR szUrl,
  2372.             /* [in] */ IInternetProtocolSink *pOIProtSink,
  2373.             /* [in] */ IInternetBindInfo *pOIBindInfo,
  2374.             /* [in] */ DWORD grfPI,
  2375.             /* [in] */ HANDLE_PTR dwReserved) = 0;
  2376.         
  2377.         virtual HRESULT STDMETHODCALLTYPE Continue( 
  2378.             /* [in] */ PROTOCOLDATA *pProtocolData) = 0;
  2379.         
  2380.         virtual HRESULT STDMETHODCALLTYPE Abort( 
  2381.             /* [in] */ HRESULT hrReason,
  2382.             /* [in] */ DWORD dwOptions) = 0;
  2383.         
  2384.         virtual HRESULT STDMETHODCALLTYPE Terminate( 
  2385.             /* [in] */ DWORD dwOptions) = 0;
  2386.         
  2387.         virtual HRESULT STDMETHODCALLTYPE Suspend( void) = 0;
  2388.         
  2389.         virtual HRESULT STDMETHODCALLTYPE Resume( void) = 0;
  2390.         
  2391.     };
  2392.     
  2393. #else  /* C style interface */
  2394.     typedef struct IInternetProtocolRootVtbl
  2395.     {
  2396.         BEGIN_INTERFACE
  2397.         
  2398.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2399.             IInternetProtocolRoot * This,
  2400.             /* [in] */ REFIID riid,
  2401.             /* [iid_is][out] */ void **ppvObject);
  2402.         
  2403.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2404.             IInternetProtocolRoot * This);
  2405.         
  2406.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2407.             IInternetProtocolRoot * This);
  2408.         
  2409.         HRESULT ( STDMETHODCALLTYPE *Start )( 
  2410.             IInternetProtocolRoot * This,
  2411.             /* [in] */ LPCWSTR szUrl,
  2412.             /* [in] */ IInternetProtocolSink *pOIProtSink,
  2413.             /* [in] */ IInternetBindInfo *pOIBindInfo,
  2414.             /* [in] */ DWORD grfPI,
  2415.             /* [in] */ HANDLE_PTR dwReserved);
  2416.         
  2417.         HRESULT ( STDMETHODCALLTYPE *Continue )( 
  2418.             IInternetProtocolRoot * This,
  2419.             /* [in] */ PROTOCOLDATA *pProtocolData);
  2420.         
  2421.         HRESULT ( STDMETHODCALLTYPE *Abort )( 
  2422.             IInternetProtocolRoot * This,
  2423.             /* [in] */ HRESULT hrReason,
  2424.             /* [in] */ DWORD dwOptions);
  2425.         
  2426.         HRESULT ( STDMETHODCALLTYPE *Terminate )( 
  2427.             IInternetProtocolRoot * This,
  2428.             /* [in] */ DWORD dwOptions);
  2429.         
  2430.         HRESULT ( STDMETHODCALLTYPE *Suspend )( 
  2431.             IInternetProtocolRoot * This);
  2432.         
  2433.         HRESULT ( STDMETHODCALLTYPE *Resume )( 
  2434.             IInternetProtocolRoot * This);
  2435.         
  2436.         END_INTERFACE
  2437.     } IInternetProtocolRootVtbl;
  2438.     interface IInternetProtocolRoot
  2439.     {
  2440.         CONST_VTBL struct IInternetProtocolRootVtbl *lpVtbl;
  2441.     };
  2442.     
  2443. #ifdef COBJMACROS
  2444. #define IInternetProtocolRoot_QueryInterface(This,riid,ppvObject)
  2445.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2446. #define IInternetProtocolRoot_AddRef(This)
  2447.     (This)->lpVtbl -> AddRef(This)
  2448. #define IInternetProtocolRoot_Release(This)
  2449.     (This)->lpVtbl -> Release(This)
  2450. #define IInternetProtocolRoot_Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved)
  2451.     (This)->lpVtbl -> Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved)
  2452. #define IInternetProtocolRoot_Continue(This,pProtocolData)
  2453.     (This)->lpVtbl -> Continue(This,pProtocolData)
  2454. #define IInternetProtocolRoot_Abort(This,hrReason,dwOptions)
  2455.     (This)->lpVtbl -> Abort(This,hrReason,dwOptions)
  2456. #define IInternetProtocolRoot_Terminate(This,dwOptions)
  2457.     (This)->lpVtbl -> Terminate(This,dwOptions)
  2458. #define IInternetProtocolRoot_Suspend(This)
  2459.     (This)->lpVtbl -> Suspend(This)
  2460. #define IInternetProtocolRoot_Resume(This)
  2461.     (This)->lpVtbl -> Resume(This)
  2462. #endif /* COBJMACROS */
  2463. #endif  /* C style interface */
  2464. HRESULT STDMETHODCALLTYPE IInternetProtocolRoot_Start_Proxy( 
  2465.     IInternetProtocolRoot * This,
  2466.     /* [in] */ LPCWSTR szUrl,
  2467.     /* [in] */ IInternetProtocolSink *pOIProtSink,
  2468.     /* [in] */ IInternetBindInfo *pOIBindInfo,
  2469.     /* [in] */ DWORD grfPI,
  2470.     /* [in] */ HANDLE_PTR dwReserved);
  2471. void __RPC_STUB IInternetProtocolRoot_Start_Stub(
  2472.     IRpcStubBuffer *This,
  2473.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2474.     PRPC_MESSAGE _pRpcMessage,
  2475.     DWORD *_pdwStubPhase);
  2476. HRESULT STDMETHODCALLTYPE IInternetProtocolRoot_Continue_Proxy( 
  2477.     IInternetProtocolRoot * This,
  2478.     /* [in] */ PROTOCOLDATA *pProtocolData);
  2479. void __RPC_STUB IInternetProtocolRoot_Continue_Stub(
  2480.     IRpcStubBuffer *This,
  2481.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2482.     PRPC_MESSAGE _pRpcMessage,
  2483.     DWORD *_pdwStubPhase);
  2484. HRESULT STDMETHODCALLTYPE IInternetProtocolRoot_Abort_Proxy( 
  2485.     IInternetProtocolRoot * This,
  2486.     /* [in] */ HRESULT hrReason,
  2487.     /* [in] */ DWORD dwOptions);
  2488. void __RPC_STUB IInternetProtocolRoot_Abort_Stub(
  2489.     IRpcStubBuffer *This,
  2490.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2491.     PRPC_MESSAGE _pRpcMessage,
  2492.     DWORD *_pdwStubPhase);
  2493. HRESULT STDMETHODCALLTYPE IInternetProtocolRoot_Terminate_Proxy( 
  2494.     IInternetProtocolRoot * This,
  2495.     /* [in] */ DWORD dwOptions);
  2496. void __RPC_STUB IInternetProtocolRoot_Terminate_Stub(
  2497.     IRpcStubBuffer *This,
  2498.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2499.     PRPC_MESSAGE _pRpcMessage,
  2500.     DWORD *_pdwStubPhase);
  2501. HRESULT STDMETHODCALLTYPE IInternetProtocolRoot_Suspend_Proxy( 
  2502.     IInternetProtocolRoot * This);
  2503. void __RPC_STUB IInternetProtocolRoot_Suspend_Stub(
  2504.     IRpcStubBuffer *This,
  2505.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2506.     PRPC_MESSAGE _pRpcMessage,
  2507.     DWORD *_pdwStubPhase);
  2508. HRESULT STDMETHODCALLTYPE IInternetProtocolRoot_Resume_Proxy( 
  2509.     IInternetProtocolRoot * This);
  2510. void __RPC_STUB IInternetProtocolRoot_Resume_Stub(
  2511.     IRpcStubBuffer *This,
  2512.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2513.     PRPC_MESSAGE _pRpcMessage,
  2514.     DWORD *_pdwStubPhase);
  2515. #endif  /* __IInternetProtocolRoot_INTERFACE_DEFINED__ */
  2516. /* interface __MIDL_itf_urlmon_0189 */
  2517. /* [local] */ 
  2518. #endif
  2519. #ifndef _LPIINTERNETPROTOCOL_DEFINED
  2520. #define _LPIINTERNETPROTOCOL_DEFINED
  2521. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0189_v0_0_c_ifspec;
  2522. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0189_v0_0_s_ifspec;
  2523. #ifndef __IInternetProtocol_INTERFACE_DEFINED__
  2524. #define __IInternetProtocol_INTERFACE_DEFINED__
  2525. /* interface IInternetProtocol */
  2526. /* [unique][uuid][object][local] */ 
  2527. typedef /* [unique] */ IInternetProtocol *LPIINTERNETPROTOCOL;
  2528. EXTERN_C const IID IID_IInternetProtocol;
  2529. #if defined(__cplusplus) && !defined(CINTERFACE)
  2530.     
  2531.     MIDL_INTERFACE("79eac9e4-baf9-11ce-8c82-00aa004ba90b")
  2532.     IInternetProtocol : public IInternetProtocolRoot
  2533.     {
  2534.     public:
  2535.         virtual HRESULT STDMETHODCALLTYPE Read( 
  2536.             /* [length_is][size_is][out][in] */ void *pv,
  2537.             /* [in] */ ULONG cb,
  2538.             /* [out] */ ULONG *pcbRead) = 0;
  2539.         
  2540.         virtual HRESULT STDMETHODCALLTYPE Seek( 
  2541.             /* [in] */ LARGE_INTEGER dlibMove,
  2542.             /* [in] */ DWORD dwOrigin,
  2543.             /* [out] */ ULARGE_INTEGER *plibNewPosition) = 0;
  2544.         
  2545.         virtual HRESULT STDMETHODCALLTYPE LockRequest( 
  2546.             /* [in] */ DWORD dwOptions) = 0;
  2547.         
  2548.         virtual HRESULT STDMETHODCALLTYPE UnlockRequest( void) = 0;
  2549.         
  2550.     };
  2551.     
  2552. #else  /* C style interface */
  2553.     typedef struct IInternetProtocolVtbl
  2554.     {
  2555.         BEGIN_INTERFACE
  2556.         
  2557.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2558.             IInternetProtocol * This,
  2559.             /* [in] */ REFIID riid,
  2560.             /* [iid_is][out] */ void **ppvObject);
  2561.         
  2562.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2563.             IInternetProtocol * This);
  2564.         
  2565.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2566.             IInternetProtocol * This);
  2567.         
  2568.         HRESULT ( STDMETHODCALLTYPE *Start )( 
  2569.             IInternetProtocol * This,
  2570.             /* [in] */ LPCWSTR szUrl,
  2571.             /* [in] */ IInternetProtocolSink *pOIProtSink,
  2572.             /* [in] */ IInternetBindInfo *pOIBindInfo,
  2573.             /* [in] */ DWORD grfPI,
  2574.             /* [in] */ HANDLE_PTR dwReserved);
  2575.         
  2576.         HRESULT ( STDMETHODCALLTYPE *Continue )( 
  2577.             IInternetProtocol * This,
  2578.             /* [in] */ PROTOCOLDATA *pProtocolData);
  2579.         
  2580.         HRESULT ( STDMETHODCALLTYPE *Abort )( 
  2581.             IInternetProtocol * This,
  2582.             /* [in] */ HRESULT hrReason,
  2583.             /* [in] */ DWORD dwOptions);
  2584.         
  2585.         HRESULT ( STDMETHODCALLTYPE *Terminate )( 
  2586.             IInternetProtocol * This,
  2587.             /* [in] */ DWORD dwOptions);
  2588.         
  2589.         HRESULT ( STDMETHODCALLTYPE *Suspend )( 
  2590.             IInternetProtocol * This);
  2591.         
  2592.         HRESULT ( STDMETHODCALLTYPE *Resume )( 
  2593.             IInternetProtocol * This);
  2594.         
  2595.         HRESULT ( STDMETHODCALLTYPE *Read )( 
  2596.             IInternetProtocol * This,
  2597.             /* [length_is][size_is][out][in] */ void *pv,
  2598.             /* [in] */ ULONG cb,
  2599.             /* [out] */ ULONG *pcbRead);
  2600.         
  2601.         HRESULT ( STDMETHODCALLTYPE *Seek )( 
  2602.             IInternetProtocol * This,
  2603.             /* [in] */ LARGE_INTEGER dlibMove,
  2604.             /* [in] */ DWORD dwOrigin,
  2605.             /* [out] */ ULARGE_INTEGER *plibNewPosition);
  2606.         
  2607.         HRESULT ( STDMETHODCALLTYPE *LockRequest )( 
  2608.             IInternetProtocol * This,
  2609.             /* [in] */ DWORD dwOptions);
  2610.         
  2611.         HRESULT ( STDMETHODCALLTYPE *UnlockRequest )( 
  2612.             IInternetProtocol * This);
  2613.         
  2614.         END_INTERFACE
  2615.     } IInternetProtocolVtbl;
  2616.     interface IInternetProtocol
  2617.     {
  2618.         CONST_VTBL struct IInternetProtocolVtbl *lpVtbl;
  2619.     };
  2620.     
  2621. #ifdef COBJMACROS
  2622. #define IInternetProtocol_QueryInterface(This,riid,ppvObject)
  2623.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2624. #define IInternetProtocol_AddRef(This)
  2625.     (This)->lpVtbl -> AddRef(This)
  2626. #define IInternetProtocol_Release(This)
  2627.     (This)->lpVtbl -> Release(This)
  2628. #define IInternetProtocol_Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved)
  2629.     (This)->lpVtbl -> Start(This,szUrl,pOIProtSink,pOIBindInfo,grfPI,dwReserved)
  2630. #define IInternetProtocol_Continue(This,pProtocolData)
  2631.     (This)->lpVtbl -> Continue(This,pProtocolData)
  2632. #define IInternetProtocol_Abort(This,hrReason,dwOptions)
  2633.     (This)->lpVtbl -> Abort(This,hrReason,dwOptions)
  2634. #define IInternetProtocol_Terminate(This,dwOptions)
  2635.     (This)->lpVtbl -> Terminate(This,dwOptions)
  2636. #define IInternetProtocol_Suspend(This)
  2637.     (This)->lpVtbl -> Suspend(This)
  2638. #define IInternetProtocol_Resume(This)
  2639.     (This)->lpVtbl -> Resume(This)
  2640. #define IInternetProtocol_Read(This,pv,cb,pcbRead)
  2641.     (This)->lpVtbl -> Read(This,pv,cb,pcbRead)
  2642. #define IInternetProtocol_Seek(This,dlibMove,dwOrigin,plibNewPosition)
  2643.     (This)->lpVtbl -> Seek(This,dlibMove,dwOrigin,plibNewPosition)
  2644. #define IInternetProtocol_LockRequest(This,dwOptions)
  2645.     (This)->lpVtbl -> LockRequest(This,dwOptions)
  2646. #define IInternetProtocol_UnlockRequest(This)
  2647.     (This)->lpVtbl -> UnlockRequest(This)
  2648. #endif /* COBJMACROS */
  2649. #endif  /* C style interface */
  2650. HRESULT STDMETHODCALLTYPE IInternetProtocol_Read_Proxy( 
  2651.     IInternetProtocol * This,
  2652.     /* [length_is][size_is][out][in] */ void *pv,
  2653.     /* [in] */ ULONG cb,
  2654.     /* [out] */ ULONG *pcbRead);
  2655. void __RPC_STUB IInternetProtocol_Read_Stub(
  2656.     IRpcStubBuffer *This,
  2657.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2658.     PRPC_MESSAGE _pRpcMessage,
  2659.     DWORD *_pdwStubPhase);
  2660. HRESULT STDMETHODCALLTYPE IInternetProtocol_Seek_Proxy( 
  2661.     IInternetProtocol * This,
  2662.     /* [in] */ LARGE_INTEGER dlibMove,
  2663.     /* [in] */ DWORD dwOrigin,
  2664.     /* [out] */ ULARGE_INTEGER *plibNewPosition);
  2665. void __RPC_STUB IInternetProtocol_Seek_Stub(
  2666.     IRpcStubBuffer *This,
  2667.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2668.     PRPC_MESSAGE _pRpcMessage,
  2669.     DWORD *_pdwStubPhase);
  2670. HRESULT STDMETHODCALLTYPE IInternetProtocol_LockRequest_Proxy( 
  2671.     IInternetProtocol * This,
  2672.     /* [in] */ DWORD dwOptions);
  2673. void __RPC_STUB IInternetProtocol_LockRequest_Stub(
  2674.     IRpcStubBuffer *This,
  2675.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2676.     PRPC_MESSAGE _pRpcMessage,
  2677.     DWORD *_pdwStubPhase);
  2678. HRESULT STDMETHODCALLTYPE IInternetProtocol_UnlockRequest_Proxy( 
  2679.     IInternetProtocol * This);
  2680. void __RPC_STUB IInternetProtocol_UnlockRequest_Stub(
  2681.     IRpcStubBuffer *This,
  2682.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2683.     PRPC_MESSAGE _pRpcMessage,
  2684.     DWORD *_pdwStubPhase);
  2685. #endif  /* __IInternetProtocol_INTERFACE_DEFINED__ */
  2686. /* interface __MIDL_itf_urlmon_0190 */
  2687. /* [local] */ 
  2688. #endif
  2689. #ifndef _LPIINTERNETPROTOCOLSINK_DEFINED
  2690. #define _LPIINTERNETPROTOCOLSINK_DEFINED
  2691. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0190_v0_0_c_ifspec;
  2692. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0190_v0_0_s_ifspec;
  2693. #ifndef __IInternetProtocolSink_INTERFACE_DEFINED__
  2694. #define __IInternetProtocolSink_INTERFACE_DEFINED__
  2695. /* interface IInternetProtocolSink */
  2696. /* [unique][uuid][object][local] */ 
  2697. typedef /* [unique] */ IInternetProtocolSink *LPIINTERNETPROTOCOLSINK;
  2698. EXTERN_C const IID IID_IInternetProtocolSink;
  2699. #if defined(__cplusplus) && !defined(CINTERFACE)
  2700.     
  2701.     MIDL_INTERFACE("79eac9e5-baf9-11ce-8c82-00aa004ba90b")
  2702.     IInternetProtocolSink : public IUnknown
  2703.     {
  2704.     public:
  2705.         virtual HRESULT STDMETHODCALLTYPE Switch( 
  2706.             /* [in] */ PROTOCOLDATA *pProtocolData) = 0;
  2707.         
  2708.         virtual HRESULT STDMETHODCALLTYPE ReportProgress( 
  2709.             /* [in] */ ULONG ulStatusCode,
  2710.             /* [in] */ LPCWSTR szStatusText) = 0;
  2711.         
  2712.         virtual HRESULT STDMETHODCALLTYPE ReportData( 
  2713.             /* [in] */ DWORD grfBSCF,