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

模拟服务器

开发平台:

C/C++

  1.             /* [in] */ ULONG ulProgress,
  2.             /* [in] */ ULONG ulProgressMax) = 0;
  3.         
  4.         virtual HRESULT STDMETHODCALLTYPE ReportResult( 
  5.             /* [in] */ HRESULT hrResult,
  6.             /* [in] */ DWORD dwError,
  7.             /* [in] */ LPCWSTR szResult) = 0;
  8.         
  9.     };
  10.     
  11. #else  /* C style interface */
  12.     typedef struct IInternetProtocolSinkVtbl
  13.     {
  14.         BEGIN_INTERFACE
  15.         
  16.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  17.             IInternetProtocolSink * This,
  18.             /* [in] */ REFIID riid,
  19.             /* [iid_is][out] */ void **ppvObject);
  20.         
  21.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  22.             IInternetProtocolSink * This);
  23.         
  24.         ULONG ( STDMETHODCALLTYPE *Release )( 
  25.             IInternetProtocolSink * This);
  26.         
  27.         HRESULT ( STDMETHODCALLTYPE *Switch )( 
  28.             IInternetProtocolSink * This,
  29.             /* [in] */ PROTOCOLDATA *pProtocolData);
  30.         
  31.         HRESULT ( STDMETHODCALLTYPE *ReportProgress )( 
  32.             IInternetProtocolSink * This,
  33.             /* [in] */ ULONG ulStatusCode,
  34.             /* [in] */ LPCWSTR szStatusText);
  35.         
  36.         HRESULT ( STDMETHODCALLTYPE *ReportData )( 
  37.             IInternetProtocolSink * This,
  38.             /* [in] */ DWORD grfBSCF,
  39.             /* [in] */ ULONG ulProgress,
  40.             /* [in] */ ULONG ulProgressMax);
  41.         
  42.         HRESULT ( STDMETHODCALLTYPE *ReportResult )( 
  43.             IInternetProtocolSink * This,
  44.             /* [in] */ HRESULT hrResult,
  45.             /* [in] */ DWORD dwError,
  46.             /* [in] */ LPCWSTR szResult);
  47.         
  48.         END_INTERFACE
  49.     } IInternetProtocolSinkVtbl;
  50.     interface IInternetProtocolSink
  51.     {
  52.         CONST_VTBL struct IInternetProtocolSinkVtbl *lpVtbl;
  53.     };
  54.     
  55. #ifdef COBJMACROS
  56. #define IInternetProtocolSink_QueryInterface(This,riid,ppvObject)
  57.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  58. #define IInternetProtocolSink_AddRef(This)
  59.     (This)->lpVtbl -> AddRef(This)
  60. #define IInternetProtocolSink_Release(This)
  61.     (This)->lpVtbl -> Release(This)
  62. #define IInternetProtocolSink_Switch(This,pProtocolData)
  63.     (This)->lpVtbl -> Switch(This,pProtocolData)
  64. #define IInternetProtocolSink_ReportProgress(This,ulStatusCode,szStatusText)
  65.     (This)->lpVtbl -> ReportProgress(This,ulStatusCode,szStatusText)
  66. #define IInternetProtocolSink_ReportData(This,grfBSCF,ulProgress,ulProgressMax)
  67.     (This)->lpVtbl -> ReportData(This,grfBSCF,ulProgress,ulProgressMax)
  68. #define IInternetProtocolSink_ReportResult(This,hrResult,dwError,szResult)
  69.     (This)->lpVtbl -> ReportResult(This,hrResult,dwError,szResult)
  70. #endif /* COBJMACROS */
  71. #endif  /* C style interface */
  72. HRESULT STDMETHODCALLTYPE IInternetProtocolSink_Switch_Proxy( 
  73.     IInternetProtocolSink * This,
  74.     /* [in] */ PROTOCOLDATA *pProtocolData);
  75. void __RPC_STUB IInternetProtocolSink_Switch_Stub(
  76.     IRpcStubBuffer *This,
  77.     IRpcChannelBuffer *_pRpcChannelBuffer,
  78.     PRPC_MESSAGE _pRpcMessage,
  79.     DWORD *_pdwStubPhase);
  80. HRESULT STDMETHODCALLTYPE IInternetProtocolSink_ReportProgress_Proxy( 
  81.     IInternetProtocolSink * This,
  82.     /* [in] */ ULONG ulStatusCode,
  83.     /* [in] */ LPCWSTR szStatusText);
  84. void __RPC_STUB IInternetProtocolSink_ReportProgress_Stub(
  85.     IRpcStubBuffer *This,
  86.     IRpcChannelBuffer *_pRpcChannelBuffer,
  87.     PRPC_MESSAGE _pRpcMessage,
  88.     DWORD *_pdwStubPhase);
  89. HRESULT STDMETHODCALLTYPE IInternetProtocolSink_ReportData_Proxy( 
  90.     IInternetProtocolSink * This,
  91.     /* [in] */ DWORD grfBSCF,
  92.     /* [in] */ ULONG ulProgress,
  93.     /* [in] */ ULONG ulProgressMax);
  94. void __RPC_STUB IInternetProtocolSink_ReportData_Stub(
  95.     IRpcStubBuffer *This,
  96.     IRpcChannelBuffer *_pRpcChannelBuffer,
  97.     PRPC_MESSAGE _pRpcMessage,
  98.     DWORD *_pdwStubPhase);
  99. HRESULT STDMETHODCALLTYPE IInternetProtocolSink_ReportResult_Proxy( 
  100.     IInternetProtocolSink * This,
  101.     /* [in] */ HRESULT hrResult,
  102.     /* [in] */ DWORD dwError,
  103.     /* [in] */ LPCWSTR szResult);
  104. void __RPC_STUB IInternetProtocolSink_ReportResult_Stub(
  105.     IRpcStubBuffer *This,
  106.     IRpcChannelBuffer *_pRpcChannelBuffer,
  107.     PRPC_MESSAGE _pRpcMessage,
  108.     DWORD *_pdwStubPhase);
  109. #endif  /* __IInternetProtocolSink_INTERFACE_DEFINED__ */
  110. /* interface __MIDL_itf_urlmon_0191 */
  111. /* [local] */ 
  112. #endif
  113. #ifndef _LPIINTERNETPROTOCOLSINKSTACKABLE_DEFINED
  114. #define _LPIINTERNETPROTOCOLSINKSTACKABLE_DEFINED
  115. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0191_v0_0_c_ifspec;
  116. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0191_v0_0_s_ifspec;
  117. #ifndef __IInternetProtocolSinkStackable_INTERFACE_DEFINED__
  118. #define __IInternetProtocolSinkStackable_INTERFACE_DEFINED__
  119. /* interface IInternetProtocolSinkStackable */
  120. /* [unique][uuid][object][local] */ 
  121. typedef /* [unique] */ IInternetProtocolSinkStackable *LPIINTERNETPROTOCOLSINKStackable;
  122. EXTERN_C const IID IID_IInternetProtocolSinkStackable;
  123. #if defined(__cplusplus) && !defined(CINTERFACE)
  124.     
  125.     MIDL_INTERFACE("79eac9f0-baf9-11ce-8c82-00aa004ba90b")
  126.     IInternetProtocolSinkStackable : public IUnknown
  127.     {
  128.     public:
  129.         virtual HRESULT STDMETHODCALLTYPE SwitchSink( 
  130.             /* [in] */ IInternetProtocolSink *pOIProtSink) = 0;
  131.         
  132.         virtual HRESULT STDMETHODCALLTYPE CommitSwitch( void) = 0;
  133.         
  134.         virtual HRESULT STDMETHODCALLTYPE RollbackSwitch( void) = 0;
  135.         
  136.     };
  137.     
  138. #else  /* C style interface */
  139.     typedef struct IInternetProtocolSinkStackableVtbl
  140.     {
  141.         BEGIN_INTERFACE
  142.         
  143.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  144.             IInternetProtocolSinkStackable * This,
  145.             /* [in] */ REFIID riid,
  146.             /* [iid_is][out] */ void **ppvObject);
  147.         
  148.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  149.             IInternetProtocolSinkStackable * This);
  150.         
  151.         ULONG ( STDMETHODCALLTYPE *Release )( 
  152.             IInternetProtocolSinkStackable * This);
  153.         
  154.         HRESULT ( STDMETHODCALLTYPE *SwitchSink )( 
  155.             IInternetProtocolSinkStackable * This,
  156.             /* [in] */ IInternetProtocolSink *pOIProtSink);
  157.         
  158.         HRESULT ( STDMETHODCALLTYPE *CommitSwitch )( 
  159.             IInternetProtocolSinkStackable * This);
  160.         
  161.         HRESULT ( STDMETHODCALLTYPE *RollbackSwitch )( 
  162.             IInternetProtocolSinkStackable * This);
  163.         
  164.         END_INTERFACE
  165.     } IInternetProtocolSinkStackableVtbl;
  166.     interface IInternetProtocolSinkStackable
  167.     {
  168.         CONST_VTBL struct IInternetProtocolSinkStackableVtbl *lpVtbl;
  169.     };
  170.     
  171. #ifdef COBJMACROS
  172. #define IInternetProtocolSinkStackable_QueryInterface(This,riid,ppvObject)
  173.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  174. #define IInternetProtocolSinkStackable_AddRef(This)
  175.     (This)->lpVtbl -> AddRef(This)
  176. #define IInternetProtocolSinkStackable_Release(This)
  177.     (This)->lpVtbl -> Release(This)
  178. #define IInternetProtocolSinkStackable_SwitchSink(This,pOIProtSink)
  179.     (This)->lpVtbl -> SwitchSink(This,pOIProtSink)
  180. #define IInternetProtocolSinkStackable_CommitSwitch(This)
  181.     (This)->lpVtbl -> CommitSwitch(This)
  182. #define IInternetProtocolSinkStackable_RollbackSwitch(This)
  183.     (This)->lpVtbl -> RollbackSwitch(This)
  184. #endif /* COBJMACROS */
  185. #endif  /* C style interface */
  186. HRESULT STDMETHODCALLTYPE IInternetProtocolSinkStackable_SwitchSink_Proxy( 
  187.     IInternetProtocolSinkStackable * This,
  188.     /* [in] */ IInternetProtocolSink *pOIProtSink);
  189. void __RPC_STUB IInternetProtocolSinkStackable_SwitchSink_Stub(
  190.     IRpcStubBuffer *This,
  191.     IRpcChannelBuffer *_pRpcChannelBuffer,
  192.     PRPC_MESSAGE _pRpcMessage,
  193.     DWORD *_pdwStubPhase);
  194. HRESULT STDMETHODCALLTYPE IInternetProtocolSinkStackable_CommitSwitch_Proxy( 
  195.     IInternetProtocolSinkStackable * This);
  196. void __RPC_STUB IInternetProtocolSinkStackable_CommitSwitch_Stub(
  197.     IRpcStubBuffer *This,
  198.     IRpcChannelBuffer *_pRpcChannelBuffer,
  199.     PRPC_MESSAGE _pRpcMessage,
  200.     DWORD *_pdwStubPhase);
  201. HRESULT STDMETHODCALLTYPE IInternetProtocolSinkStackable_RollbackSwitch_Proxy( 
  202.     IInternetProtocolSinkStackable * This);
  203. void __RPC_STUB IInternetProtocolSinkStackable_RollbackSwitch_Stub(
  204.     IRpcStubBuffer *This,
  205.     IRpcChannelBuffer *_pRpcChannelBuffer,
  206.     PRPC_MESSAGE _pRpcMessage,
  207.     DWORD *_pdwStubPhase);
  208. #endif  /* __IInternetProtocolSinkStackable_INTERFACE_DEFINED__ */
  209. /* interface __MIDL_itf_urlmon_0192 */
  210. /* [local] */ 
  211. #endif
  212. #ifndef _LPIINTERNETSESSION_DEFINED
  213. #define _LPIINTERNETSESSION_DEFINED
  214. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0192_v0_0_c_ifspec;
  215. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0192_v0_0_s_ifspec;
  216. #ifndef __IInternetSession_INTERFACE_DEFINED__
  217. #define __IInternetSession_INTERFACE_DEFINED__
  218. /* interface IInternetSession */
  219. /* [unique][uuid][object][local] */ 
  220. typedef /* [unique] */ IInternetSession *LPIINTERNETSESSION;
  221. typedef 
  222. enum _tagOIBDG_FLAGS
  223.     { OIBDG_APARTMENTTHREADED = 0x100,
  224. OIBDG_DATAONLY = 0x1000
  225.     }  OIBDG_FLAGS;
  226. EXTERN_C const IID IID_IInternetSession;
  227. #if defined(__cplusplus) && !defined(CINTERFACE)
  228.     
  229.     MIDL_INTERFACE("79eac9e7-baf9-11ce-8c82-00aa004ba90b")
  230.     IInternetSession : public IUnknown
  231.     {
  232.     public:
  233.         virtual HRESULT STDMETHODCALLTYPE RegisterNameSpace( 
  234.             /* [in] */ IClassFactory *pCF,
  235.             /* [in] */ REFCLSID rclsid,
  236.             /* [in] */ LPCWSTR pwzProtocol,
  237.             /* [in] */ ULONG cPatterns,
  238.             /* [in] */ const LPCWSTR *ppwzPatterns,
  239.             /* [in] */ DWORD dwReserved) = 0;
  240.         
  241.         virtual HRESULT STDMETHODCALLTYPE UnregisterNameSpace( 
  242.             /* [in] */ IClassFactory *pCF,
  243.             /* [in] */ LPCWSTR pszProtocol) = 0;
  244.         
  245.         virtual HRESULT STDMETHODCALLTYPE RegisterMimeFilter( 
  246.             /* [in] */ IClassFactory *pCF,
  247.             /* [in] */ REFCLSID rclsid,
  248.             /* [in] */ LPCWSTR pwzType) = 0;
  249.         
  250.         virtual HRESULT STDMETHODCALLTYPE UnregisterMimeFilter( 
  251.             /* [in] */ IClassFactory *pCF,
  252.             /* [in] */ LPCWSTR pwzType) = 0;
  253.         
  254.         virtual HRESULT STDMETHODCALLTYPE CreateBinding( 
  255.             /* [in] */ LPBC pBC,
  256.             /* [in] */ LPCWSTR szUrl,
  257.             /* [in] */ IUnknown *pUnkOuter,
  258.             /* [unique][out] */ IUnknown **ppUnk,
  259.             /* [unique][out] */ IInternetProtocol **ppOInetProt,
  260.             /* [in] */ DWORD dwOption) = 0;
  261.         
  262.         virtual HRESULT STDMETHODCALLTYPE SetSessionOption( 
  263.             /* [in] */ DWORD dwOption,
  264.             /* [in] */ LPVOID pBuffer,
  265.             /* [in] */ DWORD dwBufferLength,
  266.             /* [in] */ DWORD dwReserved) = 0;
  267.         
  268.         virtual HRESULT STDMETHODCALLTYPE GetSessionOption( 
  269.             /* [in] */ DWORD dwOption,
  270.             /* [out][in] */ LPVOID pBuffer,
  271.             /* [out][in] */ DWORD *pdwBufferLength,
  272.             /* [in] */ DWORD dwReserved) = 0;
  273.         
  274.     };
  275.     
  276. #else  /* C style interface */
  277.     typedef struct IInternetSessionVtbl
  278.     {
  279.         BEGIN_INTERFACE
  280.         
  281.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  282.             IInternetSession * This,
  283.             /* [in] */ REFIID riid,
  284.             /* [iid_is][out] */ void **ppvObject);
  285.         
  286.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  287.             IInternetSession * This);
  288.         
  289.         ULONG ( STDMETHODCALLTYPE *Release )( 
  290.             IInternetSession * This);
  291.         
  292.         HRESULT ( STDMETHODCALLTYPE *RegisterNameSpace )( 
  293.             IInternetSession * This,
  294.             /* [in] */ IClassFactory *pCF,
  295.             /* [in] */ REFCLSID rclsid,
  296.             /* [in] */ LPCWSTR pwzProtocol,
  297.             /* [in] */ ULONG cPatterns,
  298.             /* [in] */ const LPCWSTR *ppwzPatterns,
  299.             /* [in] */ DWORD dwReserved);
  300.         
  301.         HRESULT ( STDMETHODCALLTYPE *UnregisterNameSpace )( 
  302.             IInternetSession * This,
  303.             /* [in] */ IClassFactory *pCF,
  304.             /* [in] */ LPCWSTR pszProtocol);
  305.         
  306.         HRESULT ( STDMETHODCALLTYPE *RegisterMimeFilter )( 
  307.             IInternetSession * This,
  308.             /* [in] */ IClassFactory *pCF,
  309.             /* [in] */ REFCLSID rclsid,
  310.             /* [in] */ LPCWSTR pwzType);
  311.         
  312.         HRESULT ( STDMETHODCALLTYPE *UnregisterMimeFilter )( 
  313.             IInternetSession * This,
  314.             /* [in] */ IClassFactory *pCF,
  315.             /* [in] */ LPCWSTR pwzType);
  316.         
  317.         HRESULT ( STDMETHODCALLTYPE *CreateBinding )( 
  318.             IInternetSession * This,
  319.             /* [in] */ LPBC pBC,
  320.             /* [in] */ LPCWSTR szUrl,
  321.             /* [in] */ IUnknown *pUnkOuter,
  322.             /* [unique][out] */ IUnknown **ppUnk,
  323.             /* [unique][out] */ IInternetProtocol **ppOInetProt,
  324.             /* [in] */ DWORD dwOption);
  325.         
  326.         HRESULT ( STDMETHODCALLTYPE *SetSessionOption )( 
  327.             IInternetSession * This,
  328.             /* [in] */ DWORD dwOption,
  329.             /* [in] */ LPVOID pBuffer,
  330.             /* [in] */ DWORD dwBufferLength,
  331.             /* [in] */ DWORD dwReserved);
  332.         
  333.         HRESULT ( STDMETHODCALLTYPE *GetSessionOption )( 
  334.             IInternetSession * This,
  335.             /* [in] */ DWORD dwOption,
  336.             /* [out][in] */ LPVOID pBuffer,
  337.             /* [out][in] */ DWORD *pdwBufferLength,
  338.             /* [in] */ DWORD dwReserved);
  339.         
  340.         END_INTERFACE
  341.     } IInternetSessionVtbl;
  342.     interface IInternetSession
  343.     {
  344.         CONST_VTBL struct IInternetSessionVtbl *lpVtbl;
  345.     };
  346.     
  347. #ifdef COBJMACROS
  348. #define IInternetSession_QueryInterface(This,riid,ppvObject)
  349.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  350. #define IInternetSession_AddRef(This)
  351.     (This)->lpVtbl -> AddRef(This)
  352. #define IInternetSession_Release(This)
  353.     (This)->lpVtbl -> Release(This)
  354. #define IInternetSession_RegisterNameSpace(This,pCF,rclsid,pwzProtocol,cPatterns,ppwzPatterns,dwReserved)
  355.     (This)->lpVtbl -> RegisterNameSpace(This,pCF,rclsid,pwzProtocol,cPatterns,ppwzPatterns,dwReserved)
  356. #define IInternetSession_UnregisterNameSpace(This,pCF,pszProtocol)
  357.     (This)->lpVtbl -> UnregisterNameSpace(This,pCF,pszProtocol)
  358. #define IInternetSession_RegisterMimeFilter(This,pCF,rclsid,pwzType)
  359.     (This)->lpVtbl -> RegisterMimeFilter(This,pCF,rclsid,pwzType)
  360. #define IInternetSession_UnregisterMimeFilter(This,pCF,pwzType)
  361.     (This)->lpVtbl -> UnregisterMimeFilter(This,pCF,pwzType)
  362. #define IInternetSession_CreateBinding(This,pBC,szUrl,pUnkOuter,ppUnk,ppOInetProt,dwOption)
  363.     (This)->lpVtbl -> CreateBinding(This,pBC,szUrl,pUnkOuter,ppUnk,ppOInetProt,dwOption)
  364. #define IInternetSession_SetSessionOption(This,dwOption,pBuffer,dwBufferLength,dwReserved)
  365.     (This)->lpVtbl -> SetSessionOption(This,dwOption,pBuffer,dwBufferLength,dwReserved)
  366. #define IInternetSession_GetSessionOption(This,dwOption,pBuffer,pdwBufferLength,dwReserved)
  367.     (This)->lpVtbl -> GetSessionOption(This,dwOption,pBuffer,pdwBufferLength,dwReserved)
  368. #endif /* COBJMACROS */
  369. #endif  /* C style interface */
  370. HRESULT STDMETHODCALLTYPE IInternetSession_RegisterNameSpace_Proxy( 
  371.     IInternetSession * This,
  372.     /* [in] */ IClassFactory *pCF,
  373.     /* [in] */ REFCLSID rclsid,
  374.     /* [in] */ LPCWSTR pwzProtocol,
  375.     /* [in] */ ULONG cPatterns,
  376.     /* [in] */ const LPCWSTR *ppwzPatterns,
  377.     /* [in] */ DWORD dwReserved);
  378. void __RPC_STUB IInternetSession_RegisterNameSpace_Stub(
  379.     IRpcStubBuffer *This,
  380.     IRpcChannelBuffer *_pRpcChannelBuffer,
  381.     PRPC_MESSAGE _pRpcMessage,
  382.     DWORD *_pdwStubPhase);
  383. HRESULT STDMETHODCALLTYPE IInternetSession_UnregisterNameSpace_Proxy( 
  384.     IInternetSession * This,
  385.     /* [in] */ IClassFactory *pCF,
  386.     /* [in] */ LPCWSTR pszProtocol);
  387. void __RPC_STUB IInternetSession_UnregisterNameSpace_Stub(
  388.     IRpcStubBuffer *This,
  389.     IRpcChannelBuffer *_pRpcChannelBuffer,
  390.     PRPC_MESSAGE _pRpcMessage,
  391.     DWORD *_pdwStubPhase);
  392. HRESULT STDMETHODCALLTYPE IInternetSession_RegisterMimeFilter_Proxy( 
  393.     IInternetSession * This,
  394.     /* [in] */ IClassFactory *pCF,
  395.     /* [in] */ REFCLSID rclsid,
  396.     /* [in] */ LPCWSTR pwzType);
  397. void __RPC_STUB IInternetSession_RegisterMimeFilter_Stub(
  398.     IRpcStubBuffer *This,
  399.     IRpcChannelBuffer *_pRpcChannelBuffer,
  400.     PRPC_MESSAGE _pRpcMessage,
  401.     DWORD *_pdwStubPhase);
  402. HRESULT STDMETHODCALLTYPE IInternetSession_UnregisterMimeFilter_Proxy( 
  403.     IInternetSession * This,
  404.     /* [in] */ IClassFactory *pCF,
  405.     /* [in] */ LPCWSTR pwzType);
  406. void __RPC_STUB IInternetSession_UnregisterMimeFilter_Stub(
  407.     IRpcStubBuffer *This,
  408.     IRpcChannelBuffer *_pRpcChannelBuffer,
  409.     PRPC_MESSAGE _pRpcMessage,
  410.     DWORD *_pdwStubPhase);
  411. HRESULT STDMETHODCALLTYPE IInternetSession_CreateBinding_Proxy( 
  412.     IInternetSession * This,
  413.     /* [in] */ LPBC pBC,
  414.     /* [in] */ LPCWSTR szUrl,
  415.     /* [in] */ IUnknown *pUnkOuter,
  416.     /* [unique][out] */ IUnknown **ppUnk,
  417.     /* [unique][out] */ IInternetProtocol **ppOInetProt,
  418.     /* [in] */ DWORD dwOption);
  419. void __RPC_STUB IInternetSession_CreateBinding_Stub(
  420.     IRpcStubBuffer *This,
  421.     IRpcChannelBuffer *_pRpcChannelBuffer,
  422.     PRPC_MESSAGE _pRpcMessage,
  423.     DWORD *_pdwStubPhase);
  424. HRESULT STDMETHODCALLTYPE IInternetSession_SetSessionOption_Proxy( 
  425.     IInternetSession * This,
  426.     /* [in] */ DWORD dwOption,
  427.     /* [in] */ LPVOID pBuffer,
  428.     /* [in] */ DWORD dwBufferLength,
  429.     /* [in] */ DWORD dwReserved);
  430. void __RPC_STUB IInternetSession_SetSessionOption_Stub(
  431.     IRpcStubBuffer *This,
  432.     IRpcChannelBuffer *_pRpcChannelBuffer,
  433.     PRPC_MESSAGE _pRpcMessage,
  434.     DWORD *_pdwStubPhase);
  435. HRESULT STDMETHODCALLTYPE IInternetSession_GetSessionOption_Proxy( 
  436.     IInternetSession * This,
  437.     /* [in] */ DWORD dwOption,
  438.     /* [out][in] */ LPVOID pBuffer,
  439.     /* [out][in] */ DWORD *pdwBufferLength,
  440.     /* [in] */ DWORD dwReserved);
  441. void __RPC_STUB IInternetSession_GetSessionOption_Stub(
  442.     IRpcStubBuffer *This,
  443.     IRpcChannelBuffer *_pRpcChannelBuffer,
  444.     PRPC_MESSAGE _pRpcMessage,
  445.     DWORD *_pdwStubPhase);
  446. #endif  /* __IInternetSession_INTERFACE_DEFINED__ */
  447. /* interface __MIDL_itf_urlmon_0193 */
  448. /* [local] */ 
  449. #endif
  450. #ifndef _LPIINTERNETTHREADSWITCH_DEFINED
  451. #define _LPIINTERNETTHREADSWITCH_DEFINED
  452. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0193_v0_0_c_ifspec;
  453. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0193_v0_0_s_ifspec;
  454. #ifndef __IInternetThreadSwitch_INTERFACE_DEFINED__
  455. #define __IInternetThreadSwitch_INTERFACE_DEFINED__
  456. /* interface IInternetThreadSwitch */
  457. /* [unique][uuid][object][local] */ 
  458. typedef /* [unique] */ IInternetThreadSwitch *LPIINTERNETTHREADSWITCH;
  459. EXTERN_C const IID IID_IInternetThreadSwitch;
  460. #if defined(__cplusplus) && !defined(CINTERFACE)
  461.     
  462.     MIDL_INTERFACE("79eac9e8-baf9-11ce-8c82-00aa004ba90b")
  463.     IInternetThreadSwitch : public IUnknown
  464.     {
  465.     public:
  466.         virtual HRESULT STDMETHODCALLTYPE Prepare( void) = 0;
  467.         
  468.         virtual HRESULT STDMETHODCALLTYPE Continue( void) = 0;
  469.         
  470.     };
  471.     
  472. #else  /* C style interface */
  473.     typedef struct IInternetThreadSwitchVtbl
  474.     {
  475.         BEGIN_INTERFACE
  476.         
  477.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  478.             IInternetThreadSwitch * This,
  479.             /* [in] */ REFIID riid,
  480.             /* [iid_is][out] */ void **ppvObject);
  481.         
  482.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  483.             IInternetThreadSwitch * This);
  484.         
  485.         ULONG ( STDMETHODCALLTYPE *Release )( 
  486.             IInternetThreadSwitch * This);
  487.         
  488.         HRESULT ( STDMETHODCALLTYPE *Prepare )( 
  489.             IInternetThreadSwitch * This);
  490.         
  491.         HRESULT ( STDMETHODCALLTYPE *Continue )( 
  492.             IInternetThreadSwitch * This);
  493.         
  494.         END_INTERFACE
  495.     } IInternetThreadSwitchVtbl;
  496.     interface IInternetThreadSwitch
  497.     {
  498.         CONST_VTBL struct IInternetThreadSwitchVtbl *lpVtbl;
  499.     };
  500.     
  501. #ifdef COBJMACROS
  502. #define IInternetThreadSwitch_QueryInterface(This,riid,ppvObject)
  503.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  504. #define IInternetThreadSwitch_AddRef(This)
  505.     (This)->lpVtbl -> AddRef(This)
  506. #define IInternetThreadSwitch_Release(This)
  507.     (This)->lpVtbl -> Release(This)
  508. #define IInternetThreadSwitch_Prepare(This)
  509.     (This)->lpVtbl -> Prepare(This)
  510. #define IInternetThreadSwitch_Continue(This)
  511.     (This)->lpVtbl -> Continue(This)
  512. #endif /* COBJMACROS */
  513. #endif  /* C style interface */
  514. HRESULT STDMETHODCALLTYPE IInternetThreadSwitch_Prepare_Proxy( 
  515.     IInternetThreadSwitch * This);
  516. void __RPC_STUB IInternetThreadSwitch_Prepare_Stub(
  517.     IRpcStubBuffer *This,
  518.     IRpcChannelBuffer *_pRpcChannelBuffer,
  519.     PRPC_MESSAGE _pRpcMessage,
  520.     DWORD *_pdwStubPhase);
  521. HRESULT STDMETHODCALLTYPE IInternetThreadSwitch_Continue_Proxy( 
  522.     IInternetThreadSwitch * This);
  523. void __RPC_STUB IInternetThreadSwitch_Continue_Stub(
  524.     IRpcStubBuffer *This,
  525.     IRpcChannelBuffer *_pRpcChannelBuffer,
  526.     PRPC_MESSAGE _pRpcMessage,
  527.     DWORD *_pdwStubPhase);
  528. #endif  /* __IInternetThreadSwitch_INTERFACE_DEFINED__ */
  529. /* interface __MIDL_itf_urlmon_0194 */
  530. /* [local] */ 
  531. #endif
  532. #ifndef _LPIINTERNETPRIORITY_DEFINED
  533. #define _LPIINTERNETPRIORITY_DEFINED
  534. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0194_v0_0_c_ifspec;
  535. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0194_v0_0_s_ifspec;
  536. #ifndef __IInternetPriority_INTERFACE_DEFINED__
  537. #define __IInternetPriority_INTERFACE_DEFINED__
  538. /* interface IInternetPriority */
  539. /* [unique][uuid][object][local] */ 
  540. typedef /* [unique] */ IInternetPriority *LPIINTERNETPRIORITY;
  541. EXTERN_C const IID IID_IInternetPriority;
  542. #if defined(__cplusplus) && !defined(CINTERFACE)
  543.     
  544.     MIDL_INTERFACE("79eac9eb-baf9-11ce-8c82-00aa004ba90b")
  545.     IInternetPriority : public IUnknown
  546.     {
  547.     public:
  548.         virtual HRESULT STDMETHODCALLTYPE SetPriority( 
  549.             /* [in] */ LONG nPriority) = 0;
  550.         
  551.         virtual HRESULT STDMETHODCALLTYPE GetPriority( 
  552.             /* [out] */ LONG *pnPriority) = 0;
  553.         
  554.     };
  555.     
  556. #else  /* C style interface */
  557.     typedef struct IInternetPriorityVtbl
  558.     {
  559.         BEGIN_INTERFACE
  560.         
  561.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  562.             IInternetPriority * This,
  563.             /* [in] */ REFIID riid,
  564.             /* [iid_is][out] */ void **ppvObject);
  565.         
  566.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  567.             IInternetPriority * This);
  568.         
  569.         ULONG ( STDMETHODCALLTYPE *Release )( 
  570.             IInternetPriority * This);
  571.         
  572.         HRESULT ( STDMETHODCALLTYPE *SetPriority )( 
  573.             IInternetPriority * This,
  574.             /* [in] */ LONG nPriority);
  575.         
  576.         HRESULT ( STDMETHODCALLTYPE *GetPriority )( 
  577.             IInternetPriority * This,
  578.             /* [out] */ LONG *pnPriority);
  579.         
  580.         END_INTERFACE
  581.     } IInternetPriorityVtbl;
  582.     interface IInternetPriority
  583.     {
  584.         CONST_VTBL struct IInternetPriorityVtbl *lpVtbl;
  585.     };
  586.     
  587. #ifdef COBJMACROS
  588. #define IInternetPriority_QueryInterface(This,riid,ppvObject)
  589.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  590. #define IInternetPriority_AddRef(This)
  591.     (This)->lpVtbl -> AddRef(This)
  592. #define IInternetPriority_Release(This)
  593.     (This)->lpVtbl -> Release(This)
  594. #define IInternetPriority_SetPriority(This,nPriority)
  595.     (This)->lpVtbl -> SetPriority(This,nPriority)
  596. #define IInternetPriority_GetPriority(This,pnPriority)
  597.     (This)->lpVtbl -> GetPriority(This,pnPriority)
  598. #endif /* COBJMACROS */
  599. #endif  /* C style interface */
  600. HRESULT STDMETHODCALLTYPE IInternetPriority_SetPriority_Proxy( 
  601.     IInternetPriority * This,
  602.     /* [in] */ LONG nPriority);
  603. void __RPC_STUB IInternetPriority_SetPriority_Stub(
  604.     IRpcStubBuffer *This,
  605.     IRpcChannelBuffer *_pRpcChannelBuffer,
  606.     PRPC_MESSAGE _pRpcMessage,
  607.     DWORD *_pdwStubPhase);
  608. HRESULT STDMETHODCALLTYPE IInternetPriority_GetPriority_Proxy( 
  609.     IInternetPriority * This,
  610.     /* [out] */ LONG *pnPriority);
  611. void __RPC_STUB IInternetPriority_GetPriority_Stub(
  612.     IRpcStubBuffer *This,
  613.     IRpcChannelBuffer *_pRpcChannelBuffer,
  614.     PRPC_MESSAGE _pRpcMessage,
  615.     DWORD *_pdwStubPhase);
  616. #endif  /* __IInternetPriority_INTERFACE_DEFINED__ */
  617. /* interface __MIDL_itf_urlmon_0195 */
  618. /* [local] */ 
  619. #endif
  620. #ifndef _LPIINTERNETPROTOCOLINFO_DEFINED
  621. #define _LPIINTERNETPROTOCOLINFO_DEFINED
  622. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0195_v0_0_c_ifspec;
  623. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0195_v0_0_s_ifspec;
  624. #ifndef __IInternetProtocolInfo_INTERFACE_DEFINED__
  625. #define __IInternetProtocolInfo_INTERFACE_DEFINED__
  626. /* interface IInternetProtocolInfo */
  627. /* [unique][uuid][object][local] */ 
  628. typedef /* [unique] */ IInternetProtocolInfo *LPIINTERNETPROTOCOLINFO;
  629. typedef 
  630. enum _tagPARSEACTION
  631.     { PARSE_CANONICALIZE = 1,
  632. PARSE_FRIENDLY = PARSE_CANONICALIZE + 1,
  633. PARSE_SECURITY_URL = PARSE_FRIENDLY + 1,
  634. PARSE_ROOTDOCUMENT = PARSE_SECURITY_URL + 1,
  635. PARSE_DOCUMENT = PARSE_ROOTDOCUMENT + 1,
  636. PARSE_ANCHOR = PARSE_DOCUMENT + 1,
  637. PARSE_ENCODE = PARSE_ANCHOR + 1,
  638. PARSE_DECODE = PARSE_ENCODE + 1,
  639. PARSE_PATH_FROM_URL = PARSE_DECODE + 1,
  640. PARSE_URL_FROM_PATH = PARSE_PATH_FROM_URL + 1,
  641. PARSE_MIME = PARSE_URL_FROM_PATH + 1,
  642. PARSE_SERVER = PARSE_MIME + 1,
  643. PARSE_SCHEMA = PARSE_SERVER + 1,
  644. PARSE_SITE = PARSE_SCHEMA + 1,
  645. PARSE_DOMAIN = PARSE_SITE + 1,
  646. PARSE_LOCATION = PARSE_DOMAIN + 1,
  647. PARSE_SECURITY_DOMAIN = PARSE_LOCATION + 1,
  648. PARSE_ESCAPE = PARSE_SECURITY_DOMAIN + 1,
  649. PARSE_UNESCAPE = PARSE_ESCAPE + 1
  650.     }  PARSEACTION;
  651. typedef 
  652. enum _tagPSUACTION
  653.     { PSU_DEFAULT = 1,
  654. PSU_SECURITY_URL_ONLY = PSU_DEFAULT + 1
  655.     }  PSUACTION;
  656. typedef 
  657. enum _tagQUERYOPTION
  658.     { QUERY_EXPIRATION_DATE = 1,
  659. QUERY_TIME_OF_LAST_CHANGE = QUERY_EXPIRATION_DATE + 1,
  660. QUERY_CONTENT_ENCODING = QUERY_TIME_OF_LAST_CHANGE + 1,
  661. QUERY_CONTENT_TYPE = QUERY_CONTENT_ENCODING + 1,
  662. QUERY_REFRESH = QUERY_CONTENT_TYPE + 1,
  663. QUERY_RECOMBINE = QUERY_REFRESH + 1,
  664. QUERY_CAN_NAVIGATE = QUERY_RECOMBINE + 1,
  665. QUERY_USES_NETWORK = QUERY_CAN_NAVIGATE + 1,
  666. QUERY_IS_CACHED = QUERY_USES_NETWORK + 1,
  667. QUERY_IS_INSTALLEDENTRY = QUERY_IS_CACHED + 1,
  668. QUERY_IS_CACHED_OR_MAPPED = QUERY_IS_INSTALLEDENTRY + 1,
  669. QUERY_USES_CACHE = QUERY_IS_CACHED_OR_MAPPED + 1,
  670. QUERY_IS_SECURE = QUERY_USES_CACHE + 1,
  671. QUERY_IS_SAFE = QUERY_IS_SECURE + 1
  672.     }  QUERYOPTION;
  673. EXTERN_C const IID IID_IInternetProtocolInfo;
  674. #if defined(__cplusplus) && !defined(CINTERFACE)
  675.     
  676.     MIDL_INTERFACE("79eac9ec-baf9-11ce-8c82-00aa004ba90b")
  677.     IInternetProtocolInfo : public IUnknown
  678.     {
  679.     public:
  680.         virtual HRESULT STDMETHODCALLTYPE ParseUrl( 
  681.             /* [in] */ LPCWSTR pwzUrl,
  682.             /* [in] */ PARSEACTION ParseAction,
  683.             /* [in] */ DWORD dwParseFlags,
  684.             /* [out] */ LPWSTR pwzResult,
  685.             /* [in] */ DWORD cchResult,
  686.             /* [out] */ DWORD *pcchResult,
  687.             /* [in] */ DWORD dwReserved) = 0;
  688.         
  689.         virtual HRESULT STDMETHODCALLTYPE CombineUrl( 
  690.             /* [in] */ LPCWSTR pwzBaseUrl,
  691.             /* [in] */ LPCWSTR pwzRelativeUrl,
  692.             /* [in] */ DWORD dwCombineFlags,
  693.             /* [out] */ LPWSTR pwzResult,
  694.             /* [in] */ DWORD cchResult,
  695.             /* [out] */ DWORD *pcchResult,
  696.             /* [in] */ DWORD dwReserved) = 0;
  697.         
  698.         virtual HRESULT STDMETHODCALLTYPE CompareUrl( 
  699.             /* [in] */ LPCWSTR pwzUrl1,
  700.             /* [in] */ LPCWSTR pwzUrl2,
  701.             /* [in] */ DWORD dwCompareFlags) = 0;
  702.         
  703.         virtual HRESULT STDMETHODCALLTYPE QueryInfo( 
  704.             /* [in] */ LPCWSTR pwzUrl,
  705.             /* [in] */ QUERYOPTION OueryOption,
  706.             /* [in] */ DWORD dwQueryFlags,
  707.             /* [size_is][out][in] */ LPVOID pBuffer,
  708.             /* [in] */ DWORD cbBuffer,
  709.             /* [out][in] */ DWORD *pcbBuf,
  710.             /* [in] */ DWORD dwReserved) = 0;
  711.         
  712.     };
  713.     
  714. #else  /* C style interface */
  715.     typedef struct IInternetProtocolInfoVtbl
  716.     {
  717.         BEGIN_INTERFACE
  718.         
  719.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  720.             IInternetProtocolInfo * This,
  721.             /* [in] */ REFIID riid,
  722.             /* [iid_is][out] */ void **ppvObject);
  723.         
  724.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  725.             IInternetProtocolInfo * This);
  726.         
  727.         ULONG ( STDMETHODCALLTYPE *Release )( 
  728.             IInternetProtocolInfo * This);
  729.         
  730.         HRESULT ( STDMETHODCALLTYPE *ParseUrl )( 
  731.             IInternetProtocolInfo * This,
  732.             /* [in] */ LPCWSTR pwzUrl,
  733.             /* [in] */ PARSEACTION ParseAction,
  734.             /* [in] */ DWORD dwParseFlags,
  735.             /* [out] */ LPWSTR pwzResult,
  736.             /* [in] */ DWORD cchResult,
  737.             /* [out] */ DWORD *pcchResult,
  738.             /* [in] */ DWORD dwReserved);
  739.         
  740.         HRESULT ( STDMETHODCALLTYPE *CombineUrl )( 
  741.             IInternetProtocolInfo * This,
  742.             /* [in] */ LPCWSTR pwzBaseUrl,
  743.             /* [in] */ LPCWSTR pwzRelativeUrl,
  744.             /* [in] */ DWORD dwCombineFlags,
  745.             /* [out] */ LPWSTR pwzResult,
  746.             /* [in] */ DWORD cchResult,
  747.             /* [out] */ DWORD *pcchResult,
  748.             /* [in] */ DWORD dwReserved);
  749.         
  750.         HRESULT ( STDMETHODCALLTYPE *CompareUrl )( 
  751.             IInternetProtocolInfo * This,
  752.             /* [in] */ LPCWSTR pwzUrl1,
  753.             /* [in] */ LPCWSTR pwzUrl2,
  754.             /* [in] */ DWORD dwCompareFlags);
  755.         
  756.         HRESULT ( STDMETHODCALLTYPE *QueryInfo )( 
  757.             IInternetProtocolInfo * This,
  758.             /* [in] */ LPCWSTR pwzUrl,
  759.             /* [in] */ QUERYOPTION OueryOption,
  760.             /* [in] */ DWORD dwQueryFlags,
  761.             /* [size_is][out][in] */ LPVOID pBuffer,
  762.             /* [in] */ DWORD cbBuffer,
  763.             /* [out][in] */ DWORD *pcbBuf,
  764.             /* [in] */ DWORD dwReserved);
  765.         
  766.         END_INTERFACE
  767.     } IInternetProtocolInfoVtbl;
  768.     interface IInternetProtocolInfo
  769.     {
  770.         CONST_VTBL struct IInternetProtocolInfoVtbl *lpVtbl;
  771.     };
  772.     
  773. #ifdef COBJMACROS
  774. #define IInternetProtocolInfo_QueryInterface(This,riid,ppvObject)
  775.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  776. #define IInternetProtocolInfo_AddRef(This)
  777.     (This)->lpVtbl -> AddRef(This)
  778. #define IInternetProtocolInfo_Release(This)
  779.     (This)->lpVtbl -> Release(This)
  780. #define IInternetProtocolInfo_ParseUrl(This,pwzUrl,ParseAction,dwParseFlags,pwzResult,cchResult,pcchResult,dwReserved)
  781.     (This)->lpVtbl -> ParseUrl(This,pwzUrl,ParseAction,dwParseFlags,pwzResult,cchResult,pcchResult,dwReserved)
  782. #define IInternetProtocolInfo_CombineUrl(This,pwzBaseUrl,pwzRelativeUrl,dwCombineFlags,pwzResult,cchResult,pcchResult,dwReserved)
  783.     (This)->lpVtbl -> CombineUrl(This,pwzBaseUrl,pwzRelativeUrl,dwCombineFlags,pwzResult,cchResult,pcchResult,dwReserved)
  784. #define IInternetProtocolInfo_CompareUrl(This,pwzUrl1,pwzUrl2,dwCompareFlags)
  785.     (This)->lpVtbl -> CompareUrl(This,pwzUrl1,pwzUrl2,dwCompareFlags)
  786. #define IInternetProtocolInfo_QueryInfo(This,pwzUrl,OueryOption,dwQueryFlags,pBuffer,cbBuffer,pcbBuf,dwReserved)
  787.     (This)->lpVtbl -> QueryInfo(This,pwzUrl,OueryOption,dwQueryFlags,pBuffer,cbBuffer,pcbBuf,dwReserved)
  788. #endif /* COBJMACROS */
  789. #endif  /* C style interface */
  790. HRESULT STDMETHODCALLTYPE IInternetProtocolInfo_ParseUrl_Proxy( 
  791.     IInternetProtocolInfo * This,
  792.     /* [in] */ LPCWSTR pwzUrl,
  793.     /* [in] */ PARSEACTION ParseAction,
  794.     /* [in] */ DWORD dwParseFlags,
  795.     /* [out] */ LPWSTR pwzResult,
  796.     /* [in] */ DWORD cchResult,
  797.     /* [out] */ DWORD *pcchResult,
  798.     /* [in] */ DWORD dwReserved);
  799. void __RPC_STUB IInternetProtocolInfo_ParseUrl_Stub(
  800.     IRpcStubBuffer *This,
  801.     IRpcChannelBuffer *_pRpcChannelBuffer,
  802.     PRPC_MESSAGE _pRpcMessage,
  803.     DWORD *_pdwStubPhase);
  804. HRESULT STDMETHODCALLTYPE IInternetProtocolInfo_CombineUrl_Proxy( 
  805.     IInternetProtocolInfo * This,
  806.     /* [in] */ LPCWSTR pwzBaseUrl,
  807.     /* [in] */ LPCWSTR pwzRelativeUrl,
  808.     /* [in] */ DWORD dwCombineFlags,
  809.     /* [out] */ LPWSTR pwzResult,
  810.     /* [in] */ DWORD cchResult,
  811.     /* [out] */ DWORD *pcchResult,
  812.     /* [in] */ DWORD dwReserved);
  813. void __RPC_STUB IInternetProtocolInfo_CombineUrl_Stub(
  814.     IRpcStubBuffer *This,
  815.     IRpcChannelBuffer *_pRpcChannelBuffer,
  816.     PRPC_MESSAGE _pRpcMessage,
  817.     DWORD *_pdwStubPhase);
  818. HRESULT STDMETHODCALLTYPE IInternetProtocolInfo_CompareUrl_Proxy( 
  819.     IInternetProtocolInfo * This,
  820.     /* [in] */ LPCWSTR pwzUrl1,
  821.     /* [in] */ LPCWSTR pwzUrl2,
  822.     /* [in] */ DWORD dwCompareFlags);
  823. void __RPC_STUB IInternetProtocolInfo_CompareUrl_Stub(
  824.     IRpcStubBuffer *This,
  825.     IRpcChannelBuffer *_pRpcChannelBuffer,
  826.     PRPC_MESSAGE _pRpcMessage,
  827.     DWORD *_pdwStubPhase);
  828. HRESULT STDMETHODCALLTYPE IInternetProtocolInfo_QueryInfo_Proxy( 
  829.     IInternetProtocolInfo * This,
  830.     /* [in] */ LPCWSTR pwzUrl,
  831.     /* [in] */ QUERYOPTION OueryOption,
  832.     /* [in] */ DWORD dwQueryFlags,
  833.     /* [size_is][out][in] */ LPVOID pBuffer,
  834.     /* [in] */ DWORD cbBuffer,
  835.     /* [out][in] */ DWORD *pcbBuf,
  836.     /* [in] */ DWORD dwReserved);
  837. void __RPC_STUB IInternetProtocolInfo_QueryInfo_Stub(
  838.     IRpcStubBuffer *This,
  839.     IRpcChannelBuffer *_pRpcChannelBuffer,
  840.     PRPC_MESSAGE _pRpcMessage,
  841.     DWORD *_pdwStubPhase);
  842. #endif  /* __IInternetProtocolInfo_INTERFACE_DEFINED__ */
  843. /* interface __MIDL_itf_urlmon_0196 */
  844. /* [local] */ 
  845. #endif
  846. #define IOInet               IInternet            
  847. #define IOInetBindInfo       IInternetBindInfo    
  848. #define IOInetProtocolRoot   IInternetProtocolRoot
  849. #define IOInetProtocol       IInternetProtocol    
  850. #define IOInetProtocolSink   IInternetProtocolSink
  851. #define IOInetProtocolInfo   IInternetProtocolInfo
  852. #define IOInetSession        IInternetSession     
  853. #define IOInetPriority       IInternetPriority    
  854. #define IOInetThreadSwitch   IInternetThreadSwitch
  855. #define IOInetProtocolSinkStackable   IInternetProtocolSinkStackable
  856. #define LPOINET              LPIINTERNET             
  857. #define LPOINETPROTOCOLINFO  LPIINTERNETPROTOCOLINFO 
  858. #define LPOINETBINDINFO      LPIINTERNETBINDINFO     
  859. #define LPOINETPROTOCOLROOT  LPIINTERNETPROTOCOLROOT 
  860. #define LPOINETPROTOCOL      LPIINTERNETPROTOCOL     
  861. #define LPOINETPROTOCOLSINK  LPIINTERNETPROTOCOLSINK 
  862. #define LPOINETSESSION       LPIINTERNETSESSION      
  863. #define LPOINETTHREADSWITCH  LPIINTERNETTHREADSWITCH 
  864. #define LPOINETPRIORITY      LPIINTERNETPRIORITY     
  865. #define LPOINETPROTOCOLINFO  LPIINTERNETPROTOCOLINFO 
  866. #define LPOINETPROTOCOLSINKSTACKABLE  LPIINTERNETPROTOCOLSINKSTACKABLE 
  867. #define IID_IOInet               IID_IInternet            
  868. #define IID_IOInetBindInfo       IID_IInternetBindInfo    
  869. #define IID_IOInetProtocolRoot   IID_IInternetProtocolRoot
  870. #define IID_IOInetProtocol       IID_IInternetProtocol    
  871. #define IID_IOInetProtocolSink   IID_IInternetProtocolSink
  872. #define IID_IOInetProtocolInfo   IID_IInternetProtocolInfo
  873. #define IID_IOInetSession        IID_IInternetSession     
  874. #define IID_IOInetPriority       IID_IInternetPriority    
  875. #define IID_IOInetThreadSwitch   IID_IInternetThreadSwitch
  876. #define IID_IOInetProtocolSinkStackable   IID_IInternetProtocolSinkStackable
  877. STDAPI CoInternetParseUrl(               
  878.     LPCWSTR     pwzUrl,                  
  879.     PARSEACTION ParseAction,             
  880.     DWORD       dwFlags,                 
  881.     LPWSTR      pszResult,               
  882.     DWORD       cchResult,               
  883.     DWORD      *pcchResult,              
  884.     DWORD       dwReserved               
  885.     );                                   
  886. STDAPI CoInternetCombineUrl(             
  887.     LPCWSTR     pwzBaseUrl,              
  888.     LPCWSTR     pwzRelativeUrl,          
  889.     DWORD       dwCombineFlags,          
  890.     LPWSTR      pszResult,               
  891.     DWORD       cchResult,               
  892.     DWORD      *pcchResult,              
  893.     DWORD       dwReserved               
  894.     );                                   
  895. STDAPI CoInternetCompareUrl(             
  896.     LPCWSTR pwzUrl1,                     
  897.     LPCWSTR pwzUrl2,                     
  898.     DWORD dwFlags                        
  899.     );                                   
  900. STDAPI CoInternetGetProtocolFlags(       
  901.     LPCWSTR     pwzUrl,                  
  902.     DWORD      *pdwFlags,                
  903.     DWORD       dwReserved               
  904.     );                                   
  905. STDAPI CoInternetQueryInfo(              
  906.     LPCWSTR     pwzUrl,                  
  907.     QUERYOPTION QueryOptions,            
  908.     DWORD       dwQueryFlags,            
  909.     LPVOID      pvBuffer,                
  910.     DWORD       cbBuffer,                
  911.     DWORD      *pcbBuffer,               
  912.     DWORD       dwReserved               
  913.     );                                   
  914. STDAPI CoInternetGetSession(             
  915.     DWORD       dwSessionMode,           
  916.     IInternetSession **ppIInternetSession,
  917.     DWORD       dwReserved               
  918.     );                                   
  919. STDAPI CoInternetGetSecurityUrl(         
  920.     LPCWSTR pwzUrl,                      
  921.     LPWSTR  *ppwzSecUrl,                 
  922.     PSUACTION  psuAction,                
  923.     DWORD   dwReserved                   
  924.     );                                   
  925.  
  926. STDAPI CopyStgMedium(const STGMEDIUM * pcstgmedSrc,  
  927.                            STGMEDIUM * pstgmedDest); 
  928. STDAPI CopyBindInfo( const BINDINFO * pcbiSrc,   
  929.                            BINDINFO * pbiDest ); 
  930. STDAPI_(void) ReleaseBindInfo( BINDINFO * pbindinfo );  
  931.  
  932. #define INET_E_USE_DEFAULT_PROTOCOLHANDLER _HRESULT_TYPEDEF_(0x800C0011L)      
  933. #define INET_E_USE_DEFAULT_SETTING         _HRESULT_TYPEDEF_(0x800C0012L)      
  934. #define INET_E_DEFAULT_ACTION              INET_E_USE_DEFAULT_PROTOCOLHANDLER  
  935. #define INET_E_QUERYOPTION_UNKNOWN         _HRESULT_TYPEDEF_(0x800C0013L)      
  936. #define INET_E_REDIRECTING                 _HRESULT_TYPEDEF_(0x800C0014L)      
  937. #define OInetParseUrl               CoInternetParseUrl               
  938. #define OInetCombineUrl             CoInternetCombineUrl             
  939. #define OInetCompareUrl             CoInternetCompareUrl             
  940. #define OInetQueryInfo              CoInternetQueryInfo              
  941. #define OInetGetSession             CoInternetGetSession             
  942. #endif // !_URLMON_NO_ASYNC_PLUGABLE_PROTOCOLS_ 
  943. //
  944. // Static Protocol flags
  945. //
  946. #define PROTOCOLFLAG_NO_PICS_CHECK     0x00000001
  947. // Creates the security manager object. The first argument is the Service provider
  948. // to allow for delegation
  949. STDAPI CoInternetCreateSecurityManager(IServiceProvider *pSP, IInternetSecurityManager **ppSM, DWORD dwReserved);
  950. STDAPI CoInternetCreateZoneManager(IServiceProvider *pSP, IInternetZoneManager **ppZM, DWORD dwReserved);
  951. // Security manager CLSID's
  952. EXTERN_C const IID CLSID_InternetSecurityManager;  
  953. EXTERN_C const IID CLSID_InternetZoneManager;  
  954. // This service is used for delegation support on the Security Manager interface
  955. #define SID_SInternetSecurityManager         IID_IInternetSecurityManager
  956. #define SID_SInternetHostSecurityManager     IID_IInternetHostSecurityManager
  957. #ifndef _LPINTERNETSECURITYMGRSITE_DEFINED
  958. #define _LPINTERNETSECURITYMGRSITE_DEFINED
  959. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0196_v0_0_c_ifspec;
  960. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0196_v0_0_s_ifspec;
  961. #ifndef __IInternetSecurityMgrSite_INTERFACE_DEFINED__
  962. #define __IInternetSecurityMgrSite_INTERFACE_DEFINED__
  963. /* interface IInternetSecurityMgrSite */
  964. /* [unique][helpstring][uuid][object][local] */ 
  965. EXTERN_C const IID IID_IInternetSecurityMgrSite;
  966. #if defined(__cplusplus) && !defined(CINTERFACE)
  967.     
  968.     MIDL_INTERFACE("79eac9ed-baf9-11ce-8c82-00aa004ba90b")
  969.     IInternetSecurityMgrSite : public IUnknown
  970.     {
  971.     public:
  972.         virtual HRESULT STDMETHODCALLTYPE GetWindow( 
  973.             /* [out] */ HWND *phwnd) = 0;
  974.         
  975.         virtual HRESULT STDMETHODCALLTYPE EnableModeless( 
  976.             /* [in] */ BOOL fEnable) = 0;
  977.         
  978.     };
  979.     
  980. #else  /* C style interface */
  981.     typedef struct IInternetSecurityMgrSiteVtbl
  982.     {
  983.         BEGIN_INTERFACE
  984.         
  985.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  986.             IInternetSecurityMgrSite * This,
  987.             /* [in] */ REFIID riid,
  988.             /* [iid_is][out] */ void **ppvObject);
  989.         
  990.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  991.             IInternetSecurityMgrSite * This);
  992.         
  993.         ULONG ( STDMETHODCALLTYPE *Release )( 
  994.             IInternetSecurityMgrSite * This);
  995.         
  996.         HRESULT ( STDMETHODCALLTYPE *GetWindow )( 
  997.             IInternetSecurityMgrSite * This,
  998.             /* [out] */ HWND *phwnd);
  999.         
  1000.         HRESULT ( STDMETHODCALLTYPE *EnableModeless )( 
  1001.             IInternetSecurityMgrSite * This,
  1002.             /* [in] */ BOOL fEnable);
  1003.         
  1004.         END_INTERFACE
  1005.     } IInternetSecurityMgrSiteVtbl;
  1006.     interface IInternetSecurityMgrSite
  1007.     {
  1008.         CONST_VTBL struct IInternetSecurityMgrSiteVtbl *lpVtbl;
  1009.     };
  1010.     
  1011. #ifdef COBJMACROS
  1012. #define IInternetSecurityMgrSite_QueryInterface(This,riid,ppvObject)
  1013.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1014. #define IInternetSecurityMgrSite_AddRef(This)
  1015.     (This)->lpVtbl -> AddRef(This)
  1016. #define IInternetSecurityMgrSite_Release(This)
  1017.     (This)->lpVtbl -> Release(This)
  1018. #define IInternetSecurityMgrSite_GetWindow(This,phwnd)
  1019.     (This)->lpVtbl -> GetWindow(This,phwnd)
  1020. #define IInternetSecurityMgrSite_EnableModeless(This,fEnable)
  1021.     (This)->lpVtbl -> EnableModeless(This,fEnable)
  1022. #endif /* COBJMACROS */
  1023. #endif  /* C style interface */
  1024. HRESULT STDMETHODCALLTYPE IInternetSecurityMgrSite_GetWindow_Proxy( 
  1025.     IInternetSecurityMgrSite * This,
  1026.     /* [out] */ HWND *phwnd);
  1027. void __RPC_STUB IInternetSecurityMgrSite_GetWindow_Stub(
  1028.     IRpcStubBuffer *This,
  1029.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1030.     PRPC_MESSAGE _pRpcMessage,
  1031.     DWORD *_pdwStubPhase);
  1032. HRESULT STDMETHODCALLTYPE IInternetSecurityMgrSite_EnableModeless_Proxy( 
  1033.     IInternetSecurityMgrSite * This,
  1034.     /* [in] */ BOOL fEnable);
  1035. void __RPC_STUB IInternetSecurityMgrSite_EnableModeless_Stub(
  1036.     IRpcStubBuffer *This,
  1037.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1038.     PRPC_MESSAGE _pRpcMessage,
  1039.     DWORD *_pdwStubPhase);
  1040. #endif  /* __IInternetSecurityMgrSite_INTERFACE_DEFINED__ */
  1041. /* interface __MIDL_itf_urlmon_0197 */
  1042. /* [local] */ 
  1043. #endif
  1044. #ifndef _LPINTERNETSECURITYMANANGER_DEFINED
  1045. #define _LPINTERNETSECURITYMANANGER_DEFINED
  1046. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0197_v0_0_c_ifspec;
  1047. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0197_v0_0_s_ifspec;
  1048. #ifndef __IInternetSecurityManager_INTERFACE_DEFINED__
  1049. #define __IInternetSecurityManager_INTERFACE_DEFINED__
  1050. /* interface IInternetSecurityManager */
  1051. /* [object][unique][helpstring][uuid] */ 
  1052. #define MUTZ_NOSAVEDFILECHECK 0x00000001 // don't check file: for saved file comment
  1053. #define MUTZ_ENFORCERESTRICTED   0x00000100 // enforce restricted zone independent of URL
  1054. // MapUrlToZone returns the zone index given a URL
  1055. #define MAX_SIZE_SECURITY_ID 512 // bytes
  1056. typedef /* [public] */ 
  1057. enum __MIDL_IInternetSecurityManager_0001
  1058.     { PUAF_DEFAULT = 0,
  1059. PUAF_NOUI = 0x1,
  1060. PUAF_ISFILE = 0x2,
  1061. PUAF_WARN_IF_DENIED = 0x4,
  1062. PUAF_FORCEUI_FOREGROUND = 0x8,
  1063. PUAF_CHECK_TIFS = 0x10,
  1064. PUAF_DONTCHECKBOXINDIALOG = 0x20,
  1065. PUAF_TRUSTED = 0x40,
  1066. PUAF_ACCEPT_WILDCARD_SCHEME = 0x80,
  1067. PUAF_ENFORCERESTRICTED = 0x100
  1068.     }  PUAF;
  1069. // This is the wrapper function that most clients will use.
  1070. // It figures out the current Policy for the passed in Action,
  1071. // and puts up UI if the current Policy indicates that the user
  1072. // should be queried. It returns back the Policy which the caller
  1073. // will use to determine if the action should be allowed
  1074. // This is the wrapper function to conveniently read a custom policy.
  1075. typedef /* [public] */ 
  1076. enum __MIDL_IInternetSecurityManager_0002
  1077.     { SZM_CREATE = 0,
  1078. SZM_DELETE = 0x1
  1079.     }  SZM_FLAGS;
  1080. // SetZoneMapping
  1081. //    lpszPattern: string denoting a URL pattern
  1082. //        Examples of valid patterns:   
  1083. //            *://*.msn.com             
  1084. //            http://*.sony.co.jp       
  1085. //            *://et.msn.com            
  1086. //            ftp://157.54.23.41/       
  1087. //            https://localsvr          
  1088. //            file:localsvrshare     
  1089. //            *://157.54.100-200.*      
  1090. //        Examples of invalid patterns: 
  1091. //            http://*.lcs.mit.edu      
  1092. //            ftp://*                   
  1093. //    dwFlags: SZM_FLAGS values         
  1094. EXTERN_C const IID IID_IInternetSecurityManager;
  1095. #if defined(__cplusplus) && !defined(CINTERFACE)
  1096.     
  1097.     MIDL_INTERFACE("79eac9ee-baf9-11ce-8c82-00aa004ba90b")
  1098.     IInternetSecurityManager : public IUnknown
  1099.     {
  1100.     public:
  1101.         virtual HRESULT STDMETHODCALLTYPE SetSecuritySite( 
  1102.             /* [unique][in] */ IInternetSecurityMgrSite *pSite) = 0;
  1103.         
  1104.         virtual HRESULT STDMETHODCALLTYPE GetSecuritySite( 
  1105.             /* [out] */ IInternetSecurityMgrSite **ppSite) = 0;
  1106.         
  1107.         virtual HRESULT STDMETHODCALLTYPE MapUrlToZone( 
  1108.             /* [in] */ LPCWSTR pwszUrl,
  1109.             /* [out] */ DWORD *pdwZone,
  1110.             /* [in] */ DWORD dwFlags) = 0;
  1111.         
  1112.         virtual HRESULT STDMETHODCALLTYPE GetSecurityId( 
  1113.             /* [in] */ LPCWSTR pwszUrl,
  1114.             /* [size_is][out] */ BYTE *pbSecurityId,
  1115.             /* [out][in] */ DWORD *pcbSecurityId,
  1116.             /* [in] */ DWORD_PTR dwReserved) = 0;
  1117.         
  1118.         virtual HRESULT STDMETHODCALLTYPE ProcessUrlAction( 
  1119.             /* [in] */ LPCWSTR pwszUrl,
  1120.             /* [in] */ DWORD dwAction,
  1121.             /* [size_is][out] */ BYTE *pPolicy,
  1122.             /* [in] */ DWORD cbPolicy,
  1123.             /* [in] */ BYTE *pContext,
  1124.             /* [in] */ DWORD cbContext,
  1125.             /* [in] */ DWORD dwFlags,
  1126.             /* [in] */ DWORD dwReserved) = 0;
  1127.         
  1128.         virtual HRESULT STDMETHODCALLTYPE QueryCustomPolicy( 
  1129.             /* [in] */ LPCWSTR pwszUrl,
  1130.             /* [in] */ REFGUID guidKey,
  1131.             /* [size_is][size_is][out] */ BYTE **ppPolicy,
  1132.             /* [out] */ DWORD *pcbPolicy,
  1133.             /* [in] */ BYTE *pContext,
  1134.             /* [in] */ DWORD cbContext,
  1135.             /* [in] */ DWORD dwReserved) = 0;
  1136.         
  1137.         virtual HRESULT STDMETHODCALLTYPE SetZoneMapping( 
  1138.             /* [in] */ DWORD dwZone,
  1139.             /* [in] */ LPCWSTR lpszPattern,
  1140.             /* [in] */ DWORD dwFlags) = 0;
  1141.         
  1142.         virtual HRESULT STDMETHODCALLTYPE GetZoneMappings( 
  1143.             /* [in] */ DWORD dwZone,
  1144.             /* [out] */ IEnumString **ppenumString,
  1145.             /* [in] */ DWORD dwFlags) = 0;
  1146.         
  1147.     };
  1148.     
  1149. #else  /* C style interface */
  1150.     typedef struct IInternetSecurityManagerVtbl
  1151.     {
  1152.         BEGIN_INTERFACE
  1153.         
  1154.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1155.             IInternetSecurityManager * This,
  1156.             /* [in] */ REFIID riid,
  1157.             /* [iid_is][out] */ void **ppvObject);
  1158.         
  1159.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1160.             IInternetSecurityManager * This);
  1161.         
  1162.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1163.             IInternetSecurityManager * This);
  1164.         
  1165.         HRESULT ( STDMETHODCALLTYPE *SetSecuritySite )( 
  1166.             IInternetSecurityManager * This,
  1167.             /* [unique][in] */ IInternetSecurityMgrSite *pSite);
  1168.         
  1169.         HRESULT ( STDMETHODCALLTYPE *GetSecuritySite )( 
  1170.             IInternetSecurityManager * This,
  1171.             /* [out] */ IInternetSecurityMgrSite **ppSite);
  1172.         
  1173.         HRESULT ( STDMETHODCALLTYPE *MapUrlToZone )( 
  1174.             IInternetSecurityManager * This,
  1175.             /* [in] */ LPCWSTR pwszUrl,
  1176.             /* [out] */ DWORD *pdwZone,
  1177.             /* [in] */ DWORD dwFlags);
  1178.         
  1179.         HRESULT ( STDMETHODCALLTYPE *GetSecurityId )( 
  1180.             IInternetSecurityManager * This,
  1181.             /* [in] */ LPCWSTR pwszUrl,
  1182.             /* [size_is][out] */ BYTE *pbSecurityId,
  1183.             /* [out][in] */ DWORD *pcbSecurityId,
  1184.             /* [in] */ DWORD_PTR dwReserved);
  1185.         
  1186.         HRESULT ( STDMETHODCALLTYPE *ProcessUrlAction )( 
  1187.             IInternetSecurityManager * This,
  1188.             /* [in] */ LPCWSTR pwszUrl,
  1189.             /* [in] */ DWORD dwAction,
  1190.             /* [size_is][out] */ BYTE *pPolicy,
  1191.             /* [in] */ DWORD cbPolicy,
  1192.             /* [in] */ BYTE *pContext,
  1193.             /* [in] */ DWORD cbContext,
  1194.             /* [in] */ DWORD dwFlags,
  1195.             /* [in] */ DWORD dwReserved);
  1196.         
  1197.         HRESULT ( STDMETHODCALLTYPE *QueryCustomPolicy )( 
  1198.             IInternetSecurityManager * This,
  1199.             /* [in] */ LPCWSTR pwszUrl,
  1200.             /* [in] */ REFGUID guidKey,
  1201.             /* [size_is][size_is][out] */ BYTE **ppPolicy,
  1202.             /* [out] */ DWORD *pcbPolicy,
  1203.             /* [in] */ BYTE *pContext,
  1204.             /* [in] */ DWORD cbContext,
  1205.             /* [in] */ DWORD dwReserved);
  1206.         
  1207.         HRESULT ( STDMETHODCALLTYPE *SetZoneMapping )( 
  1208.             IInternetSecurityManager * This,
  1209.             /* [in] */ DWORD dwZone,
  1210.             /* [in] */ LPCWSTR lpszPattern,
  1211.             /* [in] */ DWORD dwFlags);
  1212.         
  1213.         HRESULT ( STDMETHODCALLTYPE *GetZoneMappings )( 
  1214.             IInternetSecurityManager * This,
  1215.             /* [in] */ DWORD dwZone,
  1216.             /* [out] */ IEnumString **ppenumString,
  1217.             /* [in] */ DWORD dwFlags);
  1218.         
  1219.         END_INTERFACE
  1220.     } IInternetSecurityManagerVtbl;
  1221.     interface IInternetSecurityManager
  1222.     {
  1223.         CONST_VTBL struct IInternetSecurityManagerVtbl *lpVtbl;
  1224.     };
  1225.     
  1226. #ifdef COBJMACROS
  1227. #define IInternetSecurityManager_QueryInterface(This,riid,ppvObject)
  1228.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1229. #define IInternetSecurityManager_AddRef(This)
  1230.     (This)->lpVtbl -> AddRef(This)
  1231. #define IInternetSecurityManager_Release(This)
  1232.     (This)->lpVtbl -> Release(This)
  1233. #define IInternetSecurityManager_SetSecuritySite(This,pSite)
  1234.     (This)->lpVtbl -> SetSecuritySite(This,pSite)
  1235. #define IInternetSecurityManager_GetSecuritySite(This,ppSite)
  1236.     (This)->lpVtbl -> GetSecuritySite(This,ppSite)
  1237. #define IInternetSecurityManager_MapUrlToZone(This,pwszUrl,pdwZone,dwFlags)
  1238.     (This)->lpVtbl -> MapUrlToZone(This,pwszUrl,pdwZone,dwFlags)
  1239. #define IInternetSecurityManager_GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved)
  1240.     (This)->lpVtbl -> GetSecurityId(This,pwszUrl,pbSecurityId,pcbSecurityId,dwReserved)
  1241. #define IInternetSecurityManager_ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved)
  1242.     (This)->lpVtbl -> ProcessUrlAction(This,pwszUrl,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved)
  1243. #define IInternetSecurityManager_QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved)
  1244.     (This)->lpVtbl -> QueryCustomPolicy(This,pwszUrl,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved)
  1245. #define IInternetSecurityManager_SetZoneMapping(This,dwZone,lpszPattern,dwFlags)
  1246.     (This)->lpVtbl -> SetZoneMapping(This,dwZone,lpszPattern,dwFlags)
  1247. #define IInternetSecurityManager_GetZoneMappings(This,dwZone,ppenumString,dwFlags)
  1248.     (This)->lpVtbl -> GetZoneMappings(This,dwZone,ppenumString,dwFlags)
  1249. #endif /* COBJMACROS */
  1250. #endif  /* C style interface */
  1251. HRESULT STDMETHODCALLTYPE IInternetSecurityManager_SetSecuritySite_Proxy( 
  1252.     IInternetSecurityManager * This,
  1253.     /* [unique][in] */ IInternetSecurityMgrSite *pSite);
  1254. void __RPC_STUB IInternetSecurityManager_SetSecuritySite_Stub(
  1255.     IRpcStubBuffer *This,
  1256.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1257.     PRPC_MESSAGE _pRpcMessage,
  1258.     DWORD *_pdwStubPhase);
  1259. HRESULT STDMETHODCALLTYPE IInternetSecurityManager_GetSecuritySite_Proxy( 
  1260.     IInternetSecurityManager * This,
  1261.     /* [out] */ IInternetSecurityMgrSite **ppSite);
  1262. void __RPC_STUB IInternetSecurityManager_GetSecuritySite_Stub(
  1263.     IRpcStubBuffer *This,
  1264.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1265.     PRPC_MESSAGE _pRpcMessage,
  1266.     DWORD *_pdwStubPhase);
  1267. HRESULT STDMETHODCALLTYPE IInternetSecurityManager_MapUrlToZone_Proxy( 
  1268.     IInternetSecurityManager * This,
  1269.     /* [in] */ LPCWSTR pwszUrl,
  1270.     /* [out] */ DWORD *pdwZone,
  1271.     /* [in] */ DWORD dwFlags);
  1272. void __RPC_STUB IInternetSecurityManager_MapUrlToZone_Stub(
  1273.     IRpcStubBuffer *This,
  1274.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1275.     PRPC_MESSAGE _pRpcMessage,
  1276.     DWORD *_pdwStubPhase);
  1277. HRESULT STDMETHODCALLTYPE IInternetSecurityManager_GetSecurityId_Proxy( 
  1278.     IInternetSecurityManager * This,
  1279.     /* [in] */ LPCWSTR pwszUrl,
  1280.     /* [size_is][out] */ BYTE *pbSecurityId,
  1281.     /* [out][in] */ DWORD *pcbSecurityId,
  1282.     /* [in] */ DWORD_PTR dwReserved);
  1283. void __RPC_STUB IInternetSecurityManager_GetSecurityId_Stub(
  1284.     IRpcStubBuffer *This,
  1285.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1286.     PRPC_MESSAGE _pRpcMessage,
  1287.     DWORD *_pdwStubPhase);
  1288. HRESULT STDMETHODCALLTYPE IInternetSecurityManager_ProcessUrlAction_Proxy( 
  1289.     IInternetSecurityManager * This,
  1290.     /* [in] */ LPCWSTR pwszUrl,
  1291.     /* [in] */ DWORD dwAction,
  1292.     /* [size_is][out] */ BYTE *pPolicy,
  1293.     /* [in] */ DWORD cbPolicy,
  1294.     /* [in] */ BYTE *pContext,
  1295.     /* [in] */ DWORD cbContext,
  1296.     /* [in] */ DWORD dwFlags,
  1297.     /* [in] */ DWORD dwReserved);
  1298. void __RPC_STUB IInternetSecurityManager_ProcessUrlAction_Stub(
  1299.     IRpcStubBuffer *This,
  1300.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1301.     PRPC_MESSAGE _pRpcMessage,
  1302.     DWORD *_pdwStubPhase);
  1303. HRESULT STDMETHODCALLTYPE IInternetSecurityManager_QueryCustomPolicy_Proxy( 
  1304.     IInternetSecurityManager * This,
  1305.     /* [in] */ LPCWSTR pwszUrl,
  1306.     /* [in] */ REFGUID guidKey,
  1307.     /* [size_is][size_is][out] */ BYTE **ppPolicy,
  1308.     /* [out] */ DWORD *pcbPolicy,
  1309.     /* [in] */ BYTE *pContext,
  1310.     /* [in] */ DWORD cbContext,
  1311.     /* [in] */ DWORD dwReserved);
  1312. void __RPC_STUB IInternetSecurityManager_QueryCustomPolicy_Stub(
  1313.     IRpcStubBuffer *This,
  1314.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1315.     PRPC_MESSAGE _pRpcMessage,
  1316.     DWORD *_pdwStubPhase);
  1317. HRESULT STDMETHODCALLTYPE IInternetSecurityManager_SetZoneMapping_Proxy( 
  1318.     IInternetSecurityManager * This,
  1319.     /* [in] */ DWORD dwZone,
  1320.     /* [in] */ LPCWSTR lpszPattern,
  1321.     /* [in] */ DWORD dwFlags);
  1322. void __RPC_STUB IInternetSecurityManager_SetZoneMapping_Stub(
  1323.     IRpcStubBuffer *This,
  1324.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1325.     PRPC_MESSAGE _pRpcMessage,
  1326.     DWORD *_pdwStubPhase);
  1327. HRESULT STDMETHODCALLTYPE IInternetSecurityManager_GetZoneMappings_Proxy( 
  1328.     IInternetSecurityManager * This,
  1329.     /* [in] */ DWORD dwZone,
  1330.     /* [out] */ IEnumString **ppenumString,
  1331.     /* [in] */ DWORD dwFlags);
  1332. void __RPC_STUB IInternetSecurityManager_GetZoneMappings_Stub(
  1333.     IRpcStubBuffer *This,
  1334.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1335.     PRPC_MESSAGE _pRpcMessage,
  1336.     DWORD *_pdwStubPhase);
  1337. #endif  /* __IInternetSecurityManager_INTERFACE_DEFINED__ */
  1338. /* interface __MIDL_itf_urlmon_0198 */
  1339. /* [local] */ 
  1340. #endif
  1341. #ifndef _LPINTERNETHOSTSECURITYMANANGER_DEFINED
  1342. #define _LPINTERNETHOSTSECURITYMANANGER_DEFINED
  1343. //This is the interface MSHTML exposes to its clients
  1344. //The clients need not pass in a URL to these functions
  1345. //since MSHTML maintains the notion of the current URL
  1346. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0198_v0_0_c_ifspec;
  1347. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0198_v0_0_s_ifspec;
  1348. #ifndef __IInternetHostSecurityManager_INTERFACE_DEFINED__
  1349. #define __IInternetHostSecurityManager_INTERFACE_DEFINED__
  1350. /* interface IInternetHostSecurityManager */
  1351. /* [unique][helpstring][uuid][object][local] */ 
  1352. EXTERN_C const IID IID_IInternetHostSecurityManager;
  1353. #if defined(__cplusplus) && !defined(CINTERFACE)
  1354.     
  1355.     MIDL_INTERFACE("3af280b6-cb3f-11d0-891e-00c04fb6bfc4")
  1356.     IInternetHostSecurityManager : public IUnknown
  1357.     {
  1358.     public:
  1359.         virtual HRESULT STDMETHODCALLTYPE GetSecurityId( 
  1360.             /* [size_is][out] */ BYTE *pbSecurityId,
  1361.             /* [out][in] */ DWORD *pcbSecurityId,
  1362.             /* [in] */ DWORD_PTR dwReserved) = 0;
  1363.         
  1364.         virtual HRESULT STDMETHODCALLTYPE ProcessUrlAction( 
  1365.             /* [in] */ DWORD dwAction,
  1366.             /* [size_is][out] */ BYTE *pPolicy,
  1367.             /* [in] */ DWORD cbPolicy,
  1368.             /* [in] */ BYTE *pContext,
  1369.             /* [in] */ DWORD cbContext,
  1370.             /* [in] */ DWORD dwFlags,
  1371.             /* [in] */ DWORD dwReserved) = 0;
  1372.         
  1373.         virtual HRESULT STDMETHODCALLTYPE QueryCustomPolicy( 
  1374.             /* [in] */ REFGUID guidKey,
  1375.             /* [size_is][size_is][out] */ BYTE **ppPolicy,
  1376.             /* [out] */ DWORD *pcbPolicy,
  1377.             /* [in] */ BYTE *pContext,
  1378.             /* [in] */ DWORD cbContext,
  1379.             /* [in] */ DWORD dwReserved) = 0;
  1380.         
  1381.     };
  1382.     
  1383. #else  /* C style interface */
  1384.     typedef struct IInternetHostSecurityManagerVtbl
  1385.     {
  1386.         BEGIN_INTERFACE
  1387.         
  1388.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1389.             IInternetHostSecurityManager * This,
  1390.             /* [in] */ REFIID riid,
  1391.             /* [iid_is][out] */ void **ppvObject);
  1392.         
  1393.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1394.             IInternetHostSecurityManager * This);
  1395.         
  1396.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1397.             IInternetHostSecurityManager * This);
  1398.         
  1399.         HRESULT ( STDMETHODCALLTYPE *GetSecurityId )( 
  1400.             IInternetHostSecurityManager * This,
  1401.             /* [size_is][out] */ BYTE *pbSecurityId,
  1402.             /* [out][in] */ DWORD *pcbSecurityId,
  1403.             /* [in] */ DWORD_PTR dwReserved);
  1404.         
  1405.         HRESULT ( STDMETHODCALLTYPE *ProcessUrlAction )( 
  1406.             IInternetHostSecurityManager * This,
  1407.             /* [in] */ DWORD dwAction,
  1408.             /* [size_is][out] */ BYTE *pPolicy,
  1409.             /* [in] */ DWORD cbPolicy,
  1410.             /* [in] */ BYTE *pContext,
  1411.             /* [in] */ DWORD cbContext,
  1412.             /* [in] */ DWORD dwFlags,
  1413.             /* [in] */ DWORD dwReserved);
  1414.         
  1415.         HRESULT ( STDMETHODCALLTYPE *QueryCustomPolicy )( 
  1416.             IInternetHostSecurityManager * This,
  1417.             /* [in] */ REFGUID guidKey,
  1418.             /* [size_is][size_is][out] */ BYTE **ppPolicy,
  1419.             /* [out] */ DWORD *pcbPolicy,
  1420.             /* [in] */ BYTE *pContext,
  1421.             /* [in] */ DWORD cbContext,
  1422.             /* [in] */ DWORD dwReserved);
  1423.         
  1424.         END_INTERFACE
  1425.     } IInternetHostSecurityManagerVtbl;
  1426.     interface IInternetHostSecurityManager
  1427.     {
  1428.         CONST_VTBL struct IInternetHostSecurityManagerVtbl *lpVtbl;
  1429.     };
  1430.     
  1431. #ifdef COBJMACROS
  1432. #define IInternetHostSecurityManager_QueryInterface(This,riid,ppvObject)
  1433.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1434. #define IInternetHostSecurityManager_AddRef(This)
  1435.     (This)->lpVtbl -> AddRef(This)
  1436. #define IInternetHostSecurityManager_Release(This)
  1437.     (This)->lpVtbl -> Release(This)
  1438. #define IInternetHostSecurityManager_GetSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved)
  1439.     (This)->lpVtbl -> GetSecurityId(This,pbSecurityId,pcbSecurityId,dwReserved)
  1440. #define IInternetHostSecurityManager_ProcessUrlAction(This,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved)
  1441.     (This)->lpVtbl -> ProcessUrlAction(This,dwAction,pPolicy,cbPolicy,pContext,cbContext,dwFlags,dwReserved)
  1442. #define IInternetHostSecurityManager_QueryCustomPolicy(This,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved)
  1443.     (This)->lpVtbl -> QueryCustomPolicy(This,guidKey,ppPolicy,pcbPolicy,pContext,cbContext,dwReserved)
  1444. #endif /* COBJMACROS */
  1445. #endif  /* C style interface */
  1446. HRESULT STDMETHODCALLTYPE IInternetHostSecurityManager_GetSecurityId_Proxy( 
  1447.     IInternetHostSecurityManager * This,
  1448.     /* [size_is][out] */ BYTE *pbSecurityId,
  1449.     /* [out][in] */ DWORD *pcbSecurityId,
  1450.     /* [in] */ DWORD_PTR dwReserved);
  1451. void __RPC_STUB IInternetHostSecurityManager_GetSecurityId_Stub(
  1452.     IRpcStubBuffer *This,
  1453.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1454.     PRPC_MESSAGE _pRpcMessage,
  1455.     DWORD *_pdwStubPhase);
  1456. HRESULT STDMETHODCALLTYPE IInternetHostSecurityManager_ProcessUrlAction_Proxy( 
  1457.     IInternetHostSecurityManager * This,
  1458.     /* [in] */ DWORD dwAction,
  1459.     /* [size_is][out] */ BYTE *pPolicy,
  1460.     /* [in] */ DWORD cbPolicy,
  1461.     /* [in] */ BYTE *pContext,
  1462.     /* [in] */ DWORD cbContext,
  1463.     /* [in] */ DWORD dwFlags,
  1464.     /* [in] */ DWORD dwReserved);
  1465. void __RPC_STUB IInternetHostSecurityManager_ProcessUrlAction_Stub(
  1466.     IRpcStubBuffer *This,
  1467.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1468.     PRPC_MESSAGE _pRpcMessage,
  1469.     DWORD *_pdwStubPhase);
  1470. HRESULT STDMETHODCALLTYPE IInternetHostSecurityManager_QueryCustomPolicy_Proxy( 
  1471.     IInternetHostSecurityManager * This,
  1472.     /* [in] */ REFGUID guidKey,
  1473.     /* [size_is][size_is][out] */ BYTE **ppPolicy,
  1474.     /* [out] */ DWORD *pcbPolicy,
  1475.     /* [in] */ BYTE *pContext,
  1476.     /* [in] */ DWORD cbContext,
  1477.     /* [in] */ DWORD dwReserved);
  1478. void __RPC_STUB IInternetHostSecurityManager_QueryCustomPolicy_Stub(
  1479.     IRpcStubBuffer *This,
  1480.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1481.     PRPC_MESSAGE _pRpcMessage,
  1482.     DWORD *_pdwStubPhase);
  1483. #endif  /* __IInternetHostSecurityManager_INTERFACE_DEFINED__ */
  1484. /* interface __MIDL_itf_urlmon_0199 */
  1485. /* [local] */ 
  1486. #endif
  1487. // The zone manager maintains policies for a set of standard actions. 
  1488. // These actions are identified by integral values (called action indexes)
  1489. // specified below.
  1490. // Minimum legal value for an action    
  1491. #define URLACTION_MIN                                          0x00001000
  1492. #define URLACTION_DOWNLOAD_MIN                                 0x00001000
  1493. #define URLACTION_DOWNLOAD_SIGNED_ACTIVEX                      0x00001001
  1494. #define URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX                    0x00001004
  1495. #define URLACTION_DOWNLOAD_CURR_MAX                            0x00001004
  1496. #define URLACTION_DOWNLOAD_MAX                                 0x000011FF
  1497. #define URLACTION_ACTIVEX_MIN                                  0x00001200
  1498. #define URLACTION_ACTIVEX_RUN                                  0x00001200
  1499. #define URLPOLICY_ACTIVEX_CHECK_LIST                           0x00010000
  1500. #define URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY               0x00001201 // aggregate next four
  1501. #define URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY                 0x00001202 //
  1502. #define URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY               0x00001203 //
  1503. #define URLACTION_SCRIPT_OVERRIDE_SAFETY                       0x00001401 //
  1504. #define URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY               0x00001204 //
  1505. #define URLACTION_ACTIVEX_TREATASUNTRUSTED                     0x00001205
  1506. #define URLACTION_ACTIVEX_CURR_MAX                             0x00001205
  1507. #define URLACTION_ACTIVEX_MAX                                  0x000013ff
  1508. #define URLACTION_SCRIPT_MIN                                   0x00001400
  1509. #define URLACTION_SCRIPT_RUN                                   0x00001400
  1510. #define URLACTION_SCRIPT_JAVA_USE                              0x00001402
  1511. #define URLACTION_SCRIPT_SAFE_ACTIVEX                          0x00001405
  1512. #define URLACTION_CROSS_DOMAIN_DATA                            0x00001406
  1513. #define URLACTION_SCRIPT_PASTE                                 0x00001407
  1514. #define URLACTION_SCRIPT_CURR_MAX                              0x00001407
  1515. #define URLACTION_SCRIPT_MAX                                   0x000015ff
  1516. #define URLACTION_HTML_MIN                                     0x00001600
  1517. #define URLACTION_HTML_SUBMIT_FORMS                            0x00001601 // aggregate next two
  1518. #define URLACTION_HTML_SUBMIT_FORMS_FROM                       0x00001602 //
  1519. #define URLACTION_HTML_SUBMIT_FORMS_TO                         0x00001603 //
  1520. #define URLACTION_HTML_FONT_DOWNLOAD                           0x00001604
  1521. #define URLACTION_HTML_JAVA_RUN                                0x00001605 // derive from Java custom policy
  1522. #define URLACTION_HTML_USERDATA_SAVE                           0x00001606
  1523. #define URLACTION_HTML_SUBFRAME_NAVIGATE                       0x00001607
  1524. #define URLACTION_HTML_META_REFRESH                            0x00001608
  1525. #define URLACTION_HTML_MIXED_CONTENT                           0x00001609
  1526. #define URLACTION_HTML_MAX                                     0x000017ff
  1527. #define URLACTION_SHELL_MIN                                    0x00001800
  1528. #define URLACTION_SHELL_INSTALL_DTITEMS                        0x00001800
  1529. #define URLACTION_SHELL_MOVE_OR_COPY                           0x00001802
  1530. #define URLACTION_SHELL_FILE_DOWNLOAD                          0x00001803
  1531. #define URLACTION_SHELL_VERB                                   0x00001804
  1532. #define URLACTION_SHELL_WEBVIEW_VERB                           0x00001805
  1533. #define URLACTION_SHELL_CURR_MAX                               0x00001805
  1534. #define URLACTION_SHELL_MAX                                    0x000019ff
  1535. #define URLACTION_NETWORK_MIN                                  0x00001A00
  1536. #define URLACTION_CREDENTIALS_USE                              0x00001A00
  1537. #define URLPOLICY_CREDENTIALS_SILENT_LOGON_OK        0x00000000
  1538. #define URLPOLICY_CREDENTIALS_MUST_PROMPT_USER       0x00010000
  1539. #define URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT     0x00020000
  1540. #define URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY         0x00030000
  1541. #define URLACTION_AUTHENTICATE_CLIENT                          0x00001A01
  1542. #define URLPOLICY_AUTHENTICATE_CLEARTEXT_OK          0x00000000
  1543. #define URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE    0x00010000
  1544. #define URLPOLICY_AUTHENTICATE_MUTUAL_ONLY           0x00030000
  1545. #define URLACTION_COOKIES                                      0x00001A02
  1546. #define URLACTION_COOKIES_SESSION                              0x00001A03
  1547. #define URLACTION_CLIENT_CERT_PROMPT                           0x00001A04
  1548. #define URLACTION_COOKIES_THIRD_PARTY                          0x00001A05
  1549. #define URLACTION_COOKIES_SESSION_THIRD_PARTY                  0x00001A06
  1550. #define URLACTION_COOKIES_ENABLED                              0x00001A10
  1551. #define URLACTION_NETWORK_CURR_MAX                             0x00001A10
  1552. #define URLACTION_NETWORK_MAX                                  0x00001Bff
  1553. #define URLACTION_JAVA_MIN                                     0x00001C00
  1554. #define URLACTION_JAVA_PERMISSIONS                             0x00001C00
  1555. #define URLPOLICY_JAVA_PROHIBIT                      0x00000000
  1556. #define URLPOLICY_JAVA_HIGH                          0x00010000
  1557. #define URLPOLICY_JAVA_MEDIUM                        0x00020000
  1558. #define URLPOLICY_JAVA_LOW                           0x00030000
  1559. #define URLPOLICY_JAVA_CUSTOM                        0x00800000
  1560. #define URLACTION_JAVA_CURR_MAX                                0x00001C00
  1561. #define URLACTION_JAVA_MAX                                     0x00001Cff
  1562. // The following Infodelivery actions should have no default policies
  1563. // in the registry.  They assume that no default policy means fall
  1564. // back to the global restriction.  If an admin sets a policy per
  1565. // zone, then it overrides the global restriction.
  1566. #define URLACTION_INFODELIVERY_MIN                           0x00001D00
  1567. #define URLACTION_INFODELIVERY_NO_ADDING_CHANNELS            0x00001D00
  1568. #define URLACTION_INFODELIVERY_NO_EDITING_CHANNELS           0x00001D01
  1569. #define URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS          0x00001D02
  1570. #define URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS       0x00001D03
  1571. #define URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS      0x00001D04
  1572. #define URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS     0x00001D05
  1573. #define URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING            0x00001D06
  1574. #define URLACTION_INFODELIVERY_CURR_MAX                      0x00001D06
  1575. #define URLACTION_INFODELIVERY_MAX                           0x00001Dff
  1576. #define URLACTION_CHANNEL_SOFTDIST_MIN                       0x00001E00
  1577. #define URLACTION_CHANNEL_SOFTDIST_PERMISSIONS               0x00001E05
  1578. #define URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT          0x00010000
  1579. #define URLPOLICY_CHANNEL_SOFTDIST_PRECACHE          0x00020000
  1580. #define URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL       0x00030000
  1581. #define URLACTION_CHANNEL_SOFTDIST_MAX                       0x00001Eff
  1582. // For each action specified above the system maintains
  1583. // a set of policies for the action. 
  1584. // The only policies supported currently are permissions (i.e. is something allowed)
  1585. // and logging status. 
  1586. // IMPORTANT: If you are defining your own policies don't overload the meaning of the
  1587. // loword of the policy. You can use the hiword to store any policy bits which are only
  1588. // meaningful to your action.
  1589. // For an example of how to do this look at the URLPOLICY_JAVA above
  1590. // Permissions 
  1591. #define URLPOLICY_ALLOW                0x00
  1592. #define URLPOLICY_QUERY                0x01
  1593. #define URLPOLICY_DISALLOW             0x03
  1594. // Notifications are not done when user already queried.
  1595. #define URLPOLICY_NOTIFY_ON_ALLOW      0x10
  1596. #define URLPOLICY_NOTIFY_ON_DISALLOW   0x20
  1597. // Logging is done regardless of whether user was queried.
  1598. #define URLPOLICY_LOG_ON_ALLOW         0x40
  1599. #define URLPOLICY_LOG_ON_DISALLOW      0x80
  1600. #define URLPOLICY_MASK_PERMISSIONS     0x0f
  1601. #define GetUrlPolicyPermissions(dw)        (dw & URLPOLICY_MASK_PERMISSIONS)
  1602. #define SetUrlPolicyPermissions(dw,dw2)    ((dw) = ((dw) & ~(URLPOLICY_MASK_PERMISSIONS)) | (dw2))
  1603. #define URLPOLICY_DONTCHECKDLGBOX     0x100
  1604. // The ordinal #'s that define the predefined zones internet explorer knows about. 
  1605. // When we support user-defined zones their zone numbers should be between 
  1606. // URLZONE_USER_MIN and URLZONE_USER_MAX
  1607. #ifndef _LPINTERNETZONEMANAGER_DEFINED
  1608. #define _LPINTERNETZONEMANAGER_DEFINED
  1609. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0199_v0_0_c_ifspec;
  1610. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0199_v0_0_s_ifspec;
  1611. #ifndef __IInternetZoneManager_INTERFACE_DEFINED__
  1612. #define __IInternetZoneManager_INTERFACE_DEFINED__
  1613. /* interface IInternetZoneManager */
  1614. /* [unique][helpstring][uuid][object][local] */ 
  1615. typedef /* [unique] */ IInternetZoneManager *LPURLZONEMANAGER;
  1616. typedef 
  1617. enum tagURLZONE
  1618.     { URLZONE_PREDEFINED_MIN = 0,
  1619. URLZONE_LOCAL_MACHINE = 0,
  1620. URLZONE_INTRANET = URLZONE_LOCAL_MACHINE + 1,
  1621. URLZONE_TRUSTED = URLZONE_INTRANET + 1,
  1622. URLZONE_INTERNET = URLZONE_TRUSTED + 1,
  1623. URLZONE_UNTRUSTED = URLZONE_INTERNET + 1,
  1624. URLZONE_PREDEFINED_MAX = 999,
  1625. URLZONE_USER_MIN = 1000,
  1626. URLZONE_USER_MAX = 10000
  1627.     }  URLZONE;
  1628. typedef 
  1629. enum tagURLTEMPLATE
  1630.     { URLTEMPLATE_CUSTOM = 0,
  1631. URLTEMPLATE_PREDEFINED_MIN = 0x10000,
  1632. URLTEMPLATE_LOW = 0x10000,
  1633. URLTEMPLATE_MEDLOW = 0x10500,
  1634. URLTEMPLATE_MEDIUM = 0x11000,
  1635. URLTEMPLATE_HIGH = 0x12000,
  1636. URLTEMPLATE_PREDEFINED_MAX = 0x20000
  1637.     }  URLTEMPLATE;
  1638. enum __MIDL_IInternetZoneManager_0001
  1639.     { MAX_ZONE_PATH = 260,
  1640. MAX_ZONE_DESCRIPTION = 200
  1641.     } ;
  1642. typedef /* [public] */ 
  1643. enum __MIDL_IInternetZoneManager_0002
  1644.     { ZAFLAGS_CUSTOM_EDIT = 0x1,
  1645. ZAFLAGS_ADD_SITES = 0x2,
  1646. ZAFLAGS_REQUIRE_VERIFICATION = 0x4,
  1647. ZAFLAGS_INCLUDE_PROXY_OVERRIDE = 0x8,
  1648. ZAFLAGS_INCLUDE_INTRANET_SITES = 0x10,
  1649. ZAFLAGS_NO_UI = 0x20,
  1650. ZAFLAGS_SUPPORTS_VERIFICATION = 0x40,
  1651. ZAFLAGS_UNC_AS_INTRANET = 0x80
  1652.     }  ZAFLAGS;
  1653. typedef struct _ZONEATTRIBUTES
  1654.     {
  1655.     ULONG cbSize;
  1656.     WCHAR szDisplayName[ 260 ];
  1657.     WCHAR szDescription[ 200 ];
  1658.     WCHAR szIconPath[ 260 ];
  1659.     DWORD dwTemplateMinLevel;
  1660.     DWORD dwTemplateRecommended;
  1661.     DWORD dwTemplateCurrentLevel;
  1662.     DWORD dwFlags;
  1663.     }  ZONEATTRIBUTES;
  1664. typedef struct _ZONEATTRIBUTES *LPZONEATTRIBUTES;
  1665. // Gets the zone attributes (information in registry other than actual security
  1666. // policies associated with the zone).  Zone attributes are fixed as:
  1667. // Sets the zone attributes (information in registry other than actual security
  1668. // policies associated with the zone).  Zone attributes as above.
  1669. // Returns S_OK or ??? if failed to write the zone attributes.
  1670. /* Registry Flags
  1671.     When reading, default behavior is:
  1672.         If HKLM allows override and HKCU value exists
  1673.             Then use HKCU value
  1674.             Else use HKLM value
  1675.     When writing, default behavior is same as HKCU
  1676.         If HKLM allows override
  1677.            Then Write to HKCU
  1678.            Else Fail
  1679. */
  1680. typedef 
  1681. enum _URLZONEREG
  1682.     { URLZONEREG_DEFAULT = 0,
  1683. URLZONEREG_HKLM = URLZONEREG_DEFAULT + 1,
  1684. URLZONEREG_HKCU = URLZONEREG_HKLM + 1
  1685.     }  URLZONEREG;
  1686. // Gets a named custom policy associated with a zone;
  1687. // e.g. the Java VM settings can be defined with a unique key such as 'Java'.
  1688. // Custom policy support is intended to allow extensibility from the predefined
  1689. // set of policies that IE4 has built in.
  1690. // 
  1691. // pwszKey is the string name designating the custom policy.  Components are
  1692. //   responsible for having unique names.
  1693. // ppPolicy is the callee allocated buffer for the policy byte blob; caller is
  1694. //   responsible for freeing this buffer eventually.
  1695. // pcbPolicy is the size of the byte blob returned.
  1696. // dwRegFlags determines how registry is accessed (see above).
  1697. // Returns S_OK if key is found and buffer allocated; ??? if key is not found (no buffer alloced).
  1698. // Sets a named custom policy associated with a zone;
  1699. // e.g. the Java VM settings can be defined with a unique key such as 'Java'.
  1700. // Custom policy support is intended to allow extensibility from the predefined
  1701. // set of policies that IE4 has built in.  
  1702. // 
  1703. // pwszKey is the string name designating the custom policy.  Components are
  1704. //   responsible for having unique names.
  1705. // ppPolicy is the caller allocated buffer for the policy byte blob.
  1706. // pcbPolicy is the size of the byte blob to be set.
  1707. // dwRegFlags determines if HTCU or HKLM is set.
  1708. // Returns S_OK or ??? if failed to write the zone custom policy.
  1709. // Gets action policy associated with a zone, the builtin, fixed-length policies info.
  1710. // dwAction is the action code for the action as defined above.
  1711. // pPolicy is the caller allocated buffer for the policy data.
  1712. // cbPolicy is the size of the caller allocated buffer.
  1713. // dwRegFlags determines how registry is accessed (see above).
  1714. // Returns S_OK if action is valid; ??? if action is not valid.
  1715. EXTERN_C const IID IID_IInternetZoneManager;
  1716. #if defined(__cplusplus) && !defined(CINTERFACE)
  1717.     
  1718.     MIDL_INTERFACE("79eac9ef-baf9-11ce-8c82-00aa004ba90b")
  1719.     IInternetZoneManager : public IUnknown
  1720.     {
  1721.     public:
  1722.         virtual HRESULT STDMETHODCALLTYPE GetZoneAttributes( 
  1723.             /* [in] */ DWORD dwZone,
  1724.             /* [unique][out][in] */ ZONEATTRIBUTES *pZoneAttributes) = 0;
  1725.         
  1726.         virtual HRESULT STDMETHODCALLTYPE SetZoneAttributes( 
  1727.             /* [in] */ DWORD dwZone,
  1728.             /* [in] */ ZONEATTRIBUTES *pZoneAttributes) = 0;
  1729.         
  1730.         virtual HRESULT STDMETHODCALLTYPE GetZoneCustomPolicy( 
  1731.             /* [in] */ DWORD dwZone,
  1732.             /* [in] */ REFGUID guidKey,
  1733.             /* [size_is][size_is][out] */ BYTE **ppPolicy,
  1734.             /* [out] */ DWORD *pcbPolicy,
  1735.             /* [in] */ URLZONEREG urlZoneReg) = 0;
  1736.         
  1737.         virtual HRESULT STDMETHODCALLTYPE SetZoneCustomPolicy( 
  1738.             /* [in] */ DWORD dwZone,
  1739.             /* [in] */ REFGUID guidKey,
  1740.             /* [size_is][in] */ BYTE *pPolicy,
  1741.             /* [in] */ DWORD cbPolicy,
  1742.             /* [in] */ URLZONEREG urlZoneReg) = 0;
  1743.         
  1744.         virtual HRESULT STDMETHODCALLTYPE GetZoneActionPolicy( 
  1745.             /* [in] */ DWORD dwZone,
  1746.             /* [in] */ DWORD dwAction,
  1747.             /* [size_is][out] */ BYTE *pPolicy,
  1748.             /* [in] */ DWORD cbPolicy,
  1749.             /* [in] */ URLZONEREG urlZoneReg) = 0;
  1750.         
  1751.         virtual HRESULT STDMETHODCALLTYPE SetZoneActionPolicy( 
  1752.             /* [in] */ DWORD dwZone,
  1753.             /* [in] */ DWORD dwAction,
  1754.             /* [size_is][in] */ BYTE *pPolicy,
  1755.             /* [in] */ DWORD cbPolicy,
  1756.             /* [in] */ URLZONEREG urlZoneReg) = 0;
  1757.         
  1758.         virtual HRESULT STDMETHODCALLTYPE PromptAction( 
  1759.             /* [in] */ DWORD dwAction,
  1760.             /* [in] */ HWND hwndParent,
  1761.             /* [in] */ LPCWSTR pwszUrl,
  1762.             /* [in] */ LPCWSTR pwszText,
  1763.             /* [in] */ DWORD dwPromptFlags) = 0;
  1764.         
  1765.         virtual HRESULT STDMETHODCALLTYPE LogAction( 
  1766.             /* [in] */ DWORD dwAction,
  1767.             /* [in] */ LPCWSTR pwszUrl,
  1768.             /* [in] */ LPCWSTR pwszText,
  1769.             /* [in] */ DWORD dwLogFlags) = 0;
  1770.         
  1771.         virtual HRESULT STDMETHODCALLTYPE CreateZoneEnumerator( 
  1772.             /* [out] */ DWORD *pdwEnum,
  1773.             /* [out] */ DWORD *pdwCount,
  1774.             /* [in] */ DWORD dwFlags) = 0;
  1775.         
  1776.         virtual HRESULT STDMETHODCALLTYPE GetZoneAt( 
  1777.             /* [in] */ DWORD dwEnum,
  1778.             /* [in] */ DWORD dwIndex,
  1779.             /* [out] */ DWORD *pdwZone) = 0;
  1780.         
  1781.         virtual HRESULT STDMETHODCALLTYPE DestroyZoneEnumerator( 
  1782.             /* [in] */ DWORD dwEnum) = 0;
  1783.         
  1784.         virtual HRESULT STDMETHODCALLTYPE CopyTemplatePoliciesToZone( 
  1785.             /* [in] */ DWORD dwTemplate,
  1786.             /* [in] */ DWORD dwZone,
  1787.             /* [in] */ DWORD dwReserved) = 0;
  1788.         
  1789.     };
  1790.     
  1791. #else  /* C style interface */
  1792.     typedef struct IInternetZoneManagerVtbl
  1793.     {
  1794.         BEGIN_INTERFACE
  1795.         
  1796.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1797.             IInternetZoneManager * This,
  1798.             /* [in] */ REFIID riid,
  1799.             /* [iid_is][out] */ void **ppvObject);
  1800.         
  1801.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1802.             IInternetZoneManager * This);
  1803.         
  1804.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1805.             IInternetZoneManager * This);
  1806.         
  1807.         HRESULT ( STDMETHODCALLTYPE *GetZoneAttributes )( 
  1808.             IInternetZoneManager * This,
  1809.             /* [in] */ DWORD dwZone,
  1810.             /* [unique][out][in] */ ZONEATTRIBUTES *pZoneAttributes);
  1811.         
  1812.         HRESULT ( STDMETHODCALLTYPE *SetZoneAttributes )( 
  1813.             IInternetZoneManager * This,
  1814.             /* [in] */ DWORD dwZone,
  1815.             /* [in] */ ZONEATTRIBUTES *pZoneAttributes);
  1816.         
  1817.         HRESULT ( STDMETHODCALLTYPE *GetZoneCustomPolicy )( 
  1818.             IInternetZoneManager * This,
  1819.             /* [in] */ DWORD dwZone,
  1820.             /* [in] */ REFGUID guidKey,
  1821.             /* [size_is][size_is][out] */ BYTE **ppPolicy,
  1822.             /* [out] */ DWORD *pcbPolicy,
  1823.             /* [in] */ URLZONEREG urlZoneReg);
  1824.         
  1825.         HRESULT ( STDMETHODCALLTYPE *SetZoneCustomPolicy )( 
  1826.             IInternetZoneManager * This,
  1827.             /* [in] */ DWORD dwZone,
  1828.             /* [in] */ REFGUID guidKey,
  1829.             /* [size_is][in] */ BYTE *pPolicy,
  1830.             /* [in] */ DWORD cbPolicy,
  1831.             /* [in] */ URLZONEREG urlZoneReg);
  1832.         
  1833.         HRESULT ( STDMETHODCALLTYPE *GetZoneActionPolicy )( 
  1834.             IInternetZoneManager * This,
  1835.             /* [in] */ DWORD dwZone,
  1836.             /* [in] */ DWORD dwAction,
  1837.             /* [size_is][out] */ BYTE *pPolicy,
  1838.             /* [in] */ DWORD cbPolicy,
  1839.             /* [in] */ URLZONEREG urlZoneReg);
  1840.         
  1841.         HRESULT ( STDMETHODCALLTYPE *SetZoneActionPolicy )( 
  1842.             IInternetZoneManager * This,
  1843.             /* [in] */ DWORD dwZone,
  1844.             /* [in] */ DWORD dwAction,
  1845.             /* [size_is][in] */ BYTE *pPolicy,
  1846.             /* [in] */ DWORD cbPolicy,
  1847.             /* [in] */ URLZONEREG urlZoneReg);
  1848.         
  1849.         HRESULT ( STDMETHODCALLTYPE *PromptAction )( 
  1850.             IInternetZoneManager * This,
  1851.             /* [in] */ DWORD dwAction,
  1852.             /* [in] */ HWND hwndParent,
  1853.             /* [in] */ LPCWSTR pwszUrl,
  1854.             /* [in] */ LPCWSTR pwszText,
  1855.             /* [in] */ DWORD dwPromptFlags);
  1856.         
  1857.         HRESULT ( STDMETHODCALLTYPE *LogAction )( 
  1858.             IInternetZoneManager * This,
  1859.             /* [in] */ DWORD dwAction,
  1860.             /* [in] */ LPCWSTR pwszUrl,
  1861.             /* [in] */ LPCWSTR pwszText,
  1862.             /* [in] */ DWORD dwLogFlags);
  1863.         
  1864.         HRESULT ( STDMETHODCALLTYPE *CreateZoneEnumerator )( 
  1865.             IInternetZoneManager * This,
  1866.             /* [out] */ DWORD *pdwEnum,
  1867.             /* [out] */ DWORD *pdwCount,
  1868.             /* [in] */ DWORD dwFlags);
  1869.         
  1870.         HRESULT ( STDMETHODCALLTYPE *GetZoneAt )( 
  1871.             IInternetZoneManager * This,
  1872.             /* [in] */ DWORD dwEnum,
  1873.             /* [in] */ DWORD dwIndex,
  1874.             /* [out] */ DWORD *pdwZone);
  1875.         
  1876.         HRESULT ( STDMETHODCALLTYPE *DestroyZoneEnumerator )( 
  1877.             IInternetZoneManager * This,
  1878.             /* [in] */ DWORD dwEnum);
  1879.         
  1880.         HRESULT ( STDMETHODCALLTYPE *CopyTemplatePoliciesToZone )( 
  1881.             IInternetZoneManager * This,
  1882.             /* [in] */ DWORD dwTemplate,
  1883.             /* [in] */ DWORD dwZone,
  1884.             /* [in] */ DWORD dwReserved);
  1885.         
  1886.         END_INTERFACE
  1887.     } IInternetZoneManagerVtbl;
  1888.     interface IInternetZoneManager
  1889.     {
  1890.         CONST_VTBL struct IInternetZoneManagerVtbl *lpVtbl;
  1891.     };
  1892.     
  1893. #ifdef COBJMACROS
  1894. #define IInternetZoneManager_QueryInterface(This,riid,ppvObject)
  1895.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1896. #define IInternetZoneManager_AddRef(This)
  1897.     (This)->lpVtbl -> AddRef(This)
  1898. #define IInternetZoneManager_Release(This)
  1899.     (This)->lpVtbl -> Release(This)
  1900. #define IInternetZoneManager_GetZoneAttributes(This,dwZone,pZoneAttributes)
  1901.     (This)->lpVtbl -> GetZoneAttributes(This,dwZone,pZoneAttributes)
  1902. #define IInternetZoneManager_SetZoneAttributes(This,dwZone,pZoneAttributes)
  1903.     (This)->lpVtbl -> SetZoneAttributes(This,dwZone,pZoneAttributes)
  1904. #define IInternetZoneManager_GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg)
  1905.     (This)->lpVtbl -> GetZoneCustomPolicy(This,dwZone,guidKey,ppPolicy,pcbPolicy,urlZoneReg)
  1906. #define IInternetZoneManager_SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg)
  1907.     (This)->lpVtbl -> SetZoneCustomPolicy(This,dwZone,guidKey,pPolicy,cbPolicy,urlZoneReg)
  1908. #define IInternetZoneManager_GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg)
  1909.     (This)->lpVtbl -> GetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg)
  1910. #define IInternetZoneManager_SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg)
  1911.     (This)->lpVtbl -> SetZoneActionPolicy(This,dwZone,dwAction,pPolicy,cbPolicy,urlZoneReg)
  1912. #define IInternetZoneManager_PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags)
  1913.     (This)->lpVtbl -> PromptAction(This,dwAction,hwndParent,pwszUrl,pwszText,dwPromptFlags)
  1914. #define IInternetZoneManager_LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags)
  1915.     (This)->lpVtbl -> LogAction(This,dwAction,pwszUrl,pwszText,dwLogFlags)
  1916. #define IInternetZoneManager_CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags)
  1917.     (This)->lpVtbl -> CreateZoneEnumerator(This,pdwEnum,pdwCount,dwFlags)
  1918. #define IInternetZoneManager_GetZoneAt(This,dwEnum,dwIndex,pdwZone)
  1919.     (This)->lpVtbl -> GetZoneAt(This,dwEnum,dwIndex,pdwZone)
  1920. #define IInternetZoneManager_DestroyZoneEnumerator(This,dwEnum)
  1921.     (This)->lpVtbl -> DestroyZoneEnumerator(This,dwEnum)
  1922. #define IInternetZoneManager_CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved)
  1923.     (This)->lpVtbl -> CopyTemplatePoliciesToZone(This,dwTemplate,dwZone,dwReserved)
  1924. #endif /* COBJMACROS */
  1925. #endif  /* C style interface */
  1926. HRESULT STDMETHODCALLTYPE IInternetZoneManager_GetZoneAttributes_Proxy( 
  1927.     IInternetZoneManager * This,
  1928.     /* [in] */ DWORD dwZone,
  1929.     /* [unique][out][in] */ ZONEATTRIBUTES *pZoneAttributes);
  1930. void __RPC_STUB IInternetZoneManager_GetZoneAttributes_Stub(
  1931.     IRpcStubBuffer *This,
  1932.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1933.     PRPC_MESSAGE _pRpcMessage,
  1934.     DWORD *_pdwStubPhase);
  1935. HRESULT STDMETHODCALLTYPE IInternetZoneManager_SetZoneAttributes_Proxy( 
  1936.     IInternetZoneManager * This,
  1937.     /* [in] */ DWORD dwZone,
  1938.     /* [in] */ ZONEATTRIBUTES *pZoneAttributes);
  1939. void __RPC_STUB IInternetZoneManager_SetZoneAttributes_Stub(
  1940.     IRpcStubBuffer *This,
  1941.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1942.     PRPC_MESSAGE _pRpcMessage,
  1943.     DWORD *_pdwStubPhase);
  1944. HRESULT STDMETHODCALLTYPE IInternetZoneManager_GetZoneCustomPolicy_Proxy( 
  1945.     IInternetZoneManager * This,
  1946.     /* [in] */ DWORD dwZone,
  1947.     /* [in] */ REFGUID guidKey,
  1948.     /* [size_is][size_is][out] */ BYTE **ppPolicy,
  1949.     /* [out] */ DWORD *pcbPolicy,
  1950.     /* [in] */ URLZONEREG urlZoneReg);
  1951. void __RPC_STUB IInternetZoneManager_GetZoneCustomPolicy_Stub(
  1952.     IRpcStubBuffer *This,
  1953.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1954.     PRPC_MESSAGE _pRpcMessage,
  1955.     DWORD *_pdwStubPhase);
  1956. HRESULT STDMETHODCALLTYPE IInternetZoneManager_SetZoneCustomPolicy_Proxy( 
  1957.     IInternetZoneManager * This,
  1958.     /* [in] */ DWORD dwZone,
  1959.     /* [in] */ REFGUID guidKey,
  1960.     /* [size_is][in] */ BYTE *pPolicy,
  1961.     /* [in] */ DWORD cbPolicy,
  1962.     /* [in] */ URLZONEREG urlZoneReg);
  1963. void __RPC_STUB IInternetZoneManager_SetZoneCustomPolicy_Stub(
  1964.     IRpcStubBuffer *This,
  1965.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1966.     PRPC_MESSAGE _pRpcMessage,
  1967.     DWORD *_pdwStubPhase);
  1968. HRESULT STDMETHODCALLTYPE IInternetZoneManager_GetZoneActionPolicy_Proxy( 
  1969.     IInternetZoneManager * This,
  1970.     /* [in] */ DWORD dwZone,
  1971.     /* [in] */ DWORD dwAction,
  1972.     /* [size_is][out] */ BYTE *pPolicy,
  1973.     /* [in] */ DWORD cbPolicy,
  1974.     /* [in] */ URLZONEREG urlZoneReg);
  1975. void __RPC_STUB IInternetZoneManager_GetZoneActionPolicy_Stub(
  1976.     IRpcStubBuffer *This,
  1977.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1978.     PRPC_MESSAGE _pRpcMessage,
  1979.     DWORD *_pdwStubPhase);
  1980. HRESULT STDMETHODCALLTYPE IInternetZoneManager_SetZoneActionPolicy_Proxy( 
  1981.     IInternetZoneManager * This,
  1982.     /* [in] */ DWORD dwZone,
  1983.     /* [in] */ DWORD dwAction,
  1984.     /* [size_is][in] */ BYTE *pPolicy,
  1985.     /* [in] */ DWORD cbPolicy,
  1986.     /* [in] */ URLZONEREG urlZoneReg);
  1987. void __RPC_STUB IInternetZoneManager_SetZoneActionPolicy_Stub(
  1988.     IRpcStubBuffer *This,
  1989.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1990.     PRPC_MESSAGE _pRpcMessage,
  1991.     DWORD *_pdwStubPhase);
  1992. HRESULT STDMETHODCALLTYPE IInternetZoneManager_PromptAction_Proxy( 
  1993.     IInternetZoneManager * This,
  1994.     /* [in] */ DWORD dwAction,
  1995.     /* [in] */ HWND hwndParent,
  1996.     /* [in] */ LPCWSTR pwszUrl,
  1997.     /* [in] */ LPCWSTR pwszText,
  1998.     /* [in] */ DWORD dwPromptFlags);
  1999. void __RPC_STUB IInternetZoneManager_PromptAction_Stub(
  2000.     IRpcStubBuffer *This,
  2001.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2002.     PRPC_MESSAGE _pRpcMessage,
  2003.     DWORD *_pdwStubPhase);
  2004. HRESULT STDMETHODCALLTYPE IInternetZoneManager_LogAction_Proxy( 
  2005.     IInternetZoneManager * This,
  2006.     /* [in] */ DWORD dwAction,
  2007.     /* [in] */ LPCWSTR pwszUrl,
  2008.     /* [in] */ LPCWSTR pwszText,
  2009.     /* [in] */ DWORD dwLogFlags);
  2010. void __RPC_STUB IInternetZoneManager_LogAction_Stub(
  2011.     IRpcStubBuffer *This,
  2012.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2013.     PRPC_MESSAGE _pRpcMessage,
  2014.     DWORD *_pdwStubPhase);
  2015. HRESULT STDMETHODCALLTYPE IInternetZoneManager_CreateZoneEnumerator_Proxy( 
  2016.     IInternetZoneManager * This,
  2017.     /* [out] */ DWORD *pdwEnum,
  2018.     /* [out] */ DWORD *pdwCount,
  2019.     /* [in] */ DWORD dwFlags);
  2020. void __RPC_STUB IInternetZoneManager_CreateZoneEnumerator_Stub(
  2021.     IRpcStubBuffer *This,
  2022.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2023.     PRPC_MESSAGE _pRpcMessage,
  2024.     DWORD *_pdwStubPhase);
  2025. HRESULT STDMETHODCALLTYPE IInternetZoneManager_GetZoneAt_Proxy( 
  2026.     IInternetZoneManager * This,
  2027.     /* [in] */ DWORD dwEnum,
  2028.     /* [in] */ DWORD dwIndex,
  2029.     /* [out] */ DWORD *pdwZone);
  2030. void __RPC_STUB IInternetZoneManager_GetZoneAt_Stub(
  2031.     IRpcStubBuffer *This,
  2032.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2033.     PRPC_MESSAGE _pRpcMessage,
  2034.     DWORD *_pdwStubPhase);
  2035. HRESULT STDMETHODCALLTYPE IInternetZoneManager_DestroyZoneEnumerator_Proxy( 
  2036.     IInternetZoneManager * This,
  2037.     /* [in] */ DWORD dwEnum);
  2038. void __RPC_STUB IInternetZoneManager_DestroyZoneEnumerator_Stub(
  2039.     IRpcStubBuffer *This,
  2040.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2041.     PRPC_MESSAGE _pRpcMessage,
  2042.     DWORD *_pdwStubPhase);
  2043. HRESULT STDMETHODCALLTYPE IInternetZoneManager_CopyTemplatePoliciesToZone_Proxy( 
  2044.     IInternetZoneManager * This,
  2045.     /* [in] */ DWORD dwTemplate,
  2046.     /* [in] */ DWORD dwZone,
  2047.     /* [in] */ DWORD dwReserved);
  2048. void __RPC_STUB IInternetZoneManager_CopyTemplatePoliciesToZone_Stub(
  2049.     IRpcStubBuffer *This,
  2050.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2051.     PRPC_MESSAGE _pRpcMessage,
  2052.     DWORD *_pdwStubPhase);
  2053. #endif  /* __IInternetZoneManager_INTERFACE_DEFINED__ */
  2054. /* interface __MIDL_itf_urlmon_0200 */
  2055. /* [local] */ 
  2056. #endif
  2057. EXTERN_C const IID CLSID_SoftDistExt;  
  2058. #ifndef _LPSOFTDISTEXT_DEFINED
  2059. #define _LPSOFTDISTEXT_DEFINED
  2060. #define SOFTDIST_FLAG_USAGE_EMAIL        0x00000001
  2061. #define SOFTDIST_FLAG_USAGE_PRECACHE     0x00000002
  2062. #define SOFTDIST_FLAG_USAGE_AUTOINSTALL  0x00000004
  2063. #define SOFTDIST_FLAG_DELETE_SUBSCRIPTION 0x00000008
  2064. #define SOFTDIST_ADSTATE_NONE                0x00000000
  2065. #define SOFTDIST_ADSTATE_AVAILABLE       0x00000001
  2066. #define SOFTDIST_ADSTATE_DOWNLOADED      0x00000002
  2067. #define SOFTDIST_ADSTATE_INSTALLED           0x00000003
  2068. typedef struct _tagCODEBASEHOLD
  2069.     {
  2070.     ULONG cbSize;
  2071.     LPWSTR szDistUnit;
  2072.     LPWSTR szCodeBase;
  2073.     DWORD dwVersionMS;
  2074.     DWORD dwVersionLS;
  2075.     DWORD dwStyle;
  2076.     }  CODEBASEHOLD;
  2077. typedef struct _tagCODEBASEHOLD *LPCODEBASEHOLD;
  2078. typedef struct _tagSOFTDISTINFO
  2079.     {
  2080.     ULONG cbSize;
  2081.     DWORD dwFlags;
  2082.     DWORD dwAdState;
  2083.     LPWSTR szTitle;
  2084.     LPWSTR szAbstract;
  2085.     LPWSTR szHREF;
  2086.     DWORD dwInstalledVersionMS;
  2087.     DWORD dwInstalledVersionLS;
  2088.     DWORD dwUpdateVersionMS;
  2089.     DWORD dwUpdateVersionLS;
  2090.     DWORD dwAdvertisedVersionMS;
  2091.     DWORD dwAdvertisedVersionLS;
  2092.     DWORD dwReserved;
  2093.     }  SOFTDISTINFO;
  2094. typedef struct _tagSOFTDISTINFO *LPSOFTDISTINFO;
  2095. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0200_v0_0_c_ifspec;
  2096. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0200_v0_0_s_ifspec;
  2097. #ifndef __ISoftDistExt_INTERFACE_DEFINED__
  2098. #define __ISoftDistExt_INTERFACE_DEFINED__
  2099. /* interface ISoftDistExt */
  2100. /* [unique][helpstring][uuid][object][local] */ 
  2101. EXTERN_C const IID IID_ISoftDistExt;
  2102. #if defined(__cplusplus) && !defined(CINTERFACE)
  2103.     
  2104.     MIDL_INTERFACE("B15B8DC1-C7E1-11d0-8680-00AA00BDCB71")
  2105.     ISoftDistExt : public IUnknown
  2106.     {
  2107.     public:
  2108.         virtual HRESULT STDMETHODCALLTYPE ProcessSoftDist( 
  2109.             /* [in] */ LPCWSTR szCDFURL,
  2110.             /* [in] */ IXMLElement *pSoftDistElement,
  2111.             /* [out][in] */ LPSOFTDISTINFO lpsdi) = 0;
  2112.         
  2113.         virtual HRESULT STDMETHODCALLTYPE GetFirstCodeBase( 
  2114.             /* [in] */ LPWSTR *szCodeBase,
  2115.             /* [in] */ LPDWORD dwMaxSize) = 0;
  2116.         
  2117.         virtual HRESULT STDMETHODCALLTYPE GetNextCodeBase( 
  2118.             /* [in] */ LPWSTR *szCodeBase,
  2119.             /* [in] */ LPDWORD dwMaxSize) = 0;
  2120.         
  2121.         virtual HRESULT STDMETHODCALLTYPE AsyncInstallDistributionUnit( 
  2122.             /* [in] */ IBindCtx *pbc,
  2123.             /* [in] */ LPVOID pvReserved,
  2124.             /* [in] */ DWORD flags,
  2125.             /* [in] */ LPCODEBASEHOLD lpcbh) = 0;
  2126.         
  2127.     };
  2128.     
  2129. #else  /* C style interface */
  2130.     typedef struct ISoftDistExtVtbl
  2131.     {
  2132.         BEGIN_INTERFACE
  2133.         
  2134.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2135.             ISoftDistExt * This,
  2136.             /* [in] */ REFIID riid,
  2137.             /* [iid_is][out] */ void **ppvObject);
  2138.         
  2139.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2140.             ISoftDistExt * This);
  2141.         
  2142.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2143.             ISoftDistExt * This);
  2144.         
  2145.         HRESULT ( STDMETHODCALLTYPE *ProcessSoftDist )( 
  2146.             ISoftDistExt * This,
  2147.             /* [in] */ LPCWSTR szCDFURL,
  2148.             /* [in] */ IXMLElement *pSoftDistElement,
  2149.             /* [out][in] */ LPSOFTDISTINFO lpsdi);
  2150.         
  2151.         HRESULT ( STDMETHODCALLTYPE *GetFirstCodeBase )( 
  2152.             ISoftDistExt * This,
  2153.             /* [in] */ LPWSTR *szCodeBase,
  2154.             /* [in] */ LPDWORD dwMaxSize);
  2155.         
  2156.         HRESULT ( STDMETHODCALLTYPE *GetNextCodeBase )( 
  2157.             ISoftDistExt * This,
  2158.             /* [in] */ LPWSTR *szCodeBase,
  2159.             /* [in] */ LPDWORD dwMaxSize);
  2160.         
  2161.         HRESULT ( STDMETHODCALLTYPE *AsyncInstallDistributionUnit )( 
  2162.             ISoftDistExt * This,
  2163.             /* [in] */ IBindCtx *pbc,
  2164.             /* [in] */ LPVOID pvReserved,
  2165.             /* [in] */ DWORD flags,
  2166.             /* [in] */ LPCODEBASEHOLD lpcbh);
  2167.         
  2168.         END_INTERFACE
  2169.     } ISoftDistExtVtbl;
  2170.     interface ISoftDistExt
  2171.     {
  2172.         CONST_VTBL struct ISoftDistExtVtbl *lpVtbl;
  2173.     };
  2174.     
  2175. #ifdef COBJMACROS
  2176. #define ISoftDistExt_QueryInterface(This,riid,ppvObject)
  2177.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2178. #define ISoftDistExt_AddRef(This)
  2179.     (This)->lpVtbl -> AddRef(This)
  2180. #define ISoftDistExt_Release(This)
  2181.     (This)->lpVtbl -> Release(This)
  2182. #define ISoftDistExt_ProcessSoftDist(This,szCDFURL,pSoftDistElement,lpsdi)
  2183.     (This)->lpVtbl -> ProcessSoftDist(This,szCDFURL,pSoftDistElement,lpsdi)
  2184. #define ISoftDistExt_GetFirstCodeBase(This,szCodeBase,dwMaxSize)
  2185.     (This)->lpVtbl -> GetFirstCodeBase(This,szCodeBase,dwMaxSize)
  2186. #define ISoftDistExt_GetNextCodeBase(This,szCodeBase,dwMaxSize)
  2187.     (This)->lpVtbl -> GetNextCodeBase(This,szCodeBase,dwMaxSize)
  2188. #define ISoftDistExt_AsyncInstallDistributionUnit(This,pbc,pvReserved,flags,lpcbh)
  2189.     (This)->lpVtbl -> AsyncInstallDistributionUnit(This,pbc,pvReserved,flags,lpcbh)
  2190. #endif /* COBJMACROS */
  2191. #endif  /* C style interface */
  2192. HRESULT STDMETHODCALLTYPE ISoftDistExt_ProcessSoftDist_Proxy( 
  2193.     ISoftDistExt * This,
  2194.     /* [in] */ LPCWSTR szCDFURL,
  2195.     /* [in] */ IXMLElement *pSoftDistElement,
  2196.     /* [out][in] */ LPSOFTDISTINFO lpsdi);
  2197. void __RPC_STUB ISoftDistExt_ProcessSoftDist_Stub(
  2198.     IRpcStubBuffer *This,
  2199.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2200.     PRPC_MESSAGE _pRpcMessage,
  2201.     DWORD *_pdwStubPhase);
  2202. HRESULT STDMETHODCALLTYPE ISoftDistExt_GetFirstCodeBase_Proxy( 
  2203.     ISoftDistExt * This,
  2204.     /* [in] */ LPWSTR *szCodeBase,
  2205.     /* [in] */ LPDWORD dwMaxSize);
  2206. void __RPC_STUB ISoftDistExt_GetFirstCodeBase_Stub(
  2207.     IRpcStubBuffer *This,
  2208.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2209.     PRPC_MESSAGE _pRpcMessage,
  2210.     DWORD *_pdwStubPhase);
  2211. HRESULT STDMETHODCALLTYPE ISoftDistExt_GetNextCodeBase_Proxy( 
  2212.     ISoftDistExt * This,
  2213.     /* [in] */ LPWSTR *szCodeBase,
  2214.     /* [in] */ LPDWORD dwMaxSize);
  2215. void __RPC_STUB ISoftDistExt_GetNextCodeBase_Stub(
  2216.     IRpcStubBuffer *This,
  2217.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2218.     PRPC_MESSAGE _pRpcMessage,
  2219.     DWORD *_pdwStubPhase);
  2220. HRESULT STDMETHODCALLTYPE ISoftDistExt_AsyncInstallDistributionUnit_Proxy( 
  2221.     ISoftDistExt * This,
  2222.     /* [in] */ IBindCtx *pbc,
  2223.     /* [in] */ LPVOID pvReserved,
  2224.     /* [in] */ DWORD flags,
  2225.     /* [in] */ LPCODEBASEHOLD lpcbh);
  2226. void __RPC_STUB ISoftDistExt_AsyncInstallDistributionUnit_Stub(
  2227.     IRpcStubBuffer *This,
  2228.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2229.     PRPC_MESSAGE _pRpcMessage,
  2230.     DWORD *_pdwStubPhase);
  2231. #endif  /* __ISoftDistExt_INTERFACE_DEFINED__ */
  2232. /* interface __MIDL_itf_urlmon_0201 */
  2233. /* [local] */ 
  2234. STDAPI GetSoftwareUpdateInfo( LPCWSTR szDistUnit, LPSOFTDISTINFO psdi );
  2235. STDAPI SetSoftwareUpdateAdvertisementState( LPCWSTR szDistUnit, DWORD dwAdState, DWORD dwAdvertisedVersionMS, DWORD dwAdvertisedVersionLS );
  2236. #endif
  2237. #ifndef _LPCATALOGFILEINFO_DEFINED
  2238. #define _LPCATALOGFILEINFO_DEFINED
  2239. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0201_v0_0_c_ifspec;
  2240. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0201_v0_0_s_ifspec;
  2241. #ifndef __ICatalogFileInfo_INTERFACE_DEFINED__
  2242. #define __ICatalogFileInfo_INTERFACE_DEFINED__
  2243. /* interface ICatalogFileInfo */
  2244. /* [unique][uuid][object][local] */ 
  2245. typedef /* [unique] */ ICatalogFileInfo *LPCATALOGFILEINFO;
  2246. EXTERN_C const IID IID_ICatalogFileInfo;
  2247. #if defined(__cplusplus) && !defined(CINTERFACE)
  2248.     
  2249.     MIDL_INTERFACE("711C7600-6B48-11d1-B403-00AA00B92AF1")
  2250.     ICatalogFileInfo : public IUnknown
  2251.     {
  2252.     public:
  2253.         virtual HRESULT STDMETHODCALLTYPE GetCatalogFile( 
  2254.             /* [out] */ LPSTR *ppszCatalogFile) = 0;
  2255.         
  2256.         virtual HRESULT STDMETHODCALLTYPE GetJavaTrust( 
  2257.             /* [out] */ void **ppJavaTrust) = 0;
  2258.         
  2259.     };
  2260.     
  2261. #else  /* C style interface */
  2262.     typedef struct ICatalogFileInfoVtbl
  2263.     {
  2264.         BEGIN_INTERFACE
  2265.         
  2266.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2267.             ICatalogFileInfo * This,
  2268.             /* [in] */ REFIID riid,
  2269.             /* [iid_is][out] */ void **ppvObject);
  2270.         
  2271.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2272.             ICatalogFileInfo * This);
  2273.         
  2274.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2275.             ICatalogFileInfo * This);
  2276.         
  2277.         HRESULT ( STDMETHODCALLTYPE *GetCatalogFile )( 
  2278.             ICatalogFileInfo * This,
  2279.             /* [out] */ LPSTR *ppszCatalogFile);
  2280.         
  2281.         HRESULT ( STDMETHODCALLTYPE *GetJavaTrust )( 
  2282.             ICatalogFileInfo * This,
  2283.             /* [out] */ void **ppJavaTrust);
  2284.         
  2285.         END_INTERFACE
  2286.     } ICatalogFileInfoVtbl;
  2287.     interface ICatalogFileInfo
  2288.     {
  2289.         CONST_VTBL struct ICatalogFileInfoVtbl *lpVtbl;
  2290.     };
  2291.     
  2292. #ifdef COBJMACROS
  2293. #define ICatalogFileInfo_QueryInterface(This,riid,ppvObject)
  2294.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2295. #define ICatalogFileInfo_AddRef(This)
  2296.     (This)->lpVtbl -> AddRef(This)
  2297. #define ICatalogFileInfo_Release(This)
  2298.     (This)->lpVtbl -> Release(This)
  2299. #define ICatalogFileInfo_GetCatalogFile(This,ppszCatalogFile)
  2300.     (This)->lpVtbl -> GetCatalogFile(This,ppszCatalogFile)
  2301. #define ICatalogFileInfo_GetJavaTrust(This,ppJavaTrust)
  2302.     (This)->lpVtbl -> GetJavaTrust(This,ppJavaTrust)
  2303. #endif /* COBJMACROS */
  2304. #endif  /* C style interface */
  2305. HRESULT STDMETHODCALLTYPE ICatalogFileInfo_GetCatalogFile_Proxy( 
  2306.     ICatalogFileInfo * This,
  2307.     /* [out] */ LPSTR *ppszCatalogFile);
  2308. void __RPC_STUB ICatalogFileInfo_GetCatalogFile_Stub(
  2309.     IRpcStubBuffer *This,
  2310.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2311.     PRPC_MESSAGE _pRpcMessage,
  2312.     DWORD *_pdwStubPhase);
  2313. HRESULT STDMETHODCALLTYPE ICatalogFileInfo_GetJavaTrust_Proxy( 
  2314.     ICatalogFileInfo * This,
  2315.     /* [out] */ void **ppJavaTrust);
  2316. void __RPC_STUB ICatalogFileInfo_GetJavaTrust_Stub(
  2317.     IRpcStubBuffer *This,
  2318.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2319.     PRPC_MESSAGE _pRpcMessage,
  2320.     DWORD *_pdwStubPhase);
  2321. #endif  /* __ICatalogFileInfo_INTERFACE_DEFINED__ */
  2322. /* interface __MIDL_itf_urlmon_0202 */
  2323. /* [local] */ 
  2324. #endif
  2325. #ifndef _LPDATAFILTER_DEFINED
  2326. #define _LPDATAFILTER_DEFINED
  2327. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0202_v0_0_c_ifspec;
  2328. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0202_v0_0_s_ifspec;
  2329. #ifndef __IDataFilter_INTERFACE_DEFINED__
  2330. #define __IDataFilter_INTERFACE_DEFINED__
  2331. /* interface IDataFilter */
  2332. /* [unique][uuid][object] */ 
  2333. typedef /* [unique] */ IDataFilter *LPDATAFILTER;
  2334. EXTERN_C const IID IID_IDataFilter;
  2335. #if defined(__cplusplus) && !defined(CINTERFACE)
  2336.     
  2337.     MIDL_INTERFACE("69d14c80-c18e-11d0-a9ce-006097942311")
  2338.     IDataFilter : public IUnknown
  2339.     {
  2340.     public:
  2341.         virtual HRESULT STDMETHODCALLTYPE DoEncode( 
  2342.             /* [in] */ DWORD dwFlags,
  2343.             /* [in] */ LONG lInBufferSize,
  2344.             /* [size_is][in] */ BYTE *pbInBuffer,
  2345.             /* [in] */ LONG lOutBufferSize,
  2346.             /* [size_is][out] */ BYTE *pbOutBuffer,
  2347.             /* [in] */ LONG lInBytesAvailable,
  2348.             /* [out] */ LONG *plInBytesRead,
  2349.             /* [out] */ LONG *plOutBytesWritten,
  2350.             /* [in] */ DWORD dwReserved) = 0;
  2351.         
  2352.         virtual HRESULT STDMETHODCALLTYPE DoDecode( 
  2353.             /* [in] */ DWORD dwFlags,
  2354.             /* [in] */ LONG lInBufferSize,
  2355.             /* [size_is][in] */ BYTE *pbInBuffer,
  2356.             /* [in] */ LONG lOutBufferSize,
  2357.             /* [size_is][out] */ BYTE *pbOutBuffer,
  2358.             /* [in] */ LONG lInBytesAvailable,
  2359.             /* [out] */ LONG *plInBytesRead,
  2360.             /* [out] */ LONG *plOutBytesWritten,
  2361.             /* [in] */ DWORD dwReserved) = 0;
  2362.         
  2363.         virtual HRESULT STDMETHODCALLTYPE SetEncodingLevel( 
  2364.             /* [in] */ DWORD dwEncLevel) = 0;
  2365.         
  2366.     };
  2367.     
  2368. #else  /* C style interface */
  2369.     typedef struct IDataFilterVtbl
  2370.     {
  2371.         BEGIN_INTERFACE
  2372.         
  2373.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2374.             IDataFilter * This,
  2375.             /* [in] */ REFIID riid,
  2376.             /* [iid_is][out] */ void **ppvObject);
  2377.         
  2378.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2379.             IDataFilter * This);
  2380.         
  2381.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2382.             IDataFilter * This);
  2383.         
  2384.         HRESULT ( STDMETHODCALLTYPE *DoEncode )( 
  2385.             IDataFilter * This,
  2386.             /* [in] */ DWORD dwFlags,
  2387.             /* [in] */ LONG lInBufferSize,
  2388.             /* [size_is][in] */ BYTE *pbInBuffer,
  2389.             /* [in] */ LONG lOutBufferSize,
  2390.             /* [size_is][out] */ BYTE *pbOutBuffer,
  2391.             /* [in] */ LONG lInBytesAvailable,
  2392.             /* [out] */ LONG *plInBytesRead,
  2393.             /* [out] */ LONG *plOutBytesWritten,
  2394.             /* [in] */ DWORD dwReserved);
  2395.         
  2396.         HRESULT ( STDMETHODCALLTYPE *DoDecode )( 
  2397.             IDataFilter * This,
  2398.             /* [in] */ DWORD dwFlags,
  2399.             /* [in] */ LONG lInBufferSize,
  2400.             /* [size_is][in] */ BYTE *pbInBuffer,
  2401.             /* [in] */ LONG lOutBufferSize,
  2402.             /* [size_is][out] */ BYTE *pbOutBuffer,
  2403.             /* [in] */ LONG lInBytesAvailable,
  2404.             /* [out] */ LONG *plInBytesRead,
  2405.             /* [out] */ LONG *plOutBytesWritten,
  2406.             /* [in] */ DWORD dwReserved);
  2407.         
  2408.         HRESULT ( STDMETHODCALLTYPE *SetEncodingLevel )( 
  2409.             IDataFilter * This,
  2410.             /* [in] */ DWORD dwEncLevel);
  2411.         
  2412.         END_INTERFACE
  2413.     } IDataFilterVtbl;
  2414.     interface IDataFilter
  2415.     {
  2416.         CONST_VTBL struct IDataFilterVtbl *lpVtbl;
  2417.     };
  2418.     
  2419. #ifdef COBJMACROS
  2420. #define IDataFilter_QueryInterface(This,riid,ppvObject)
  2421.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2422. #define IDataFilter_AddRef(This)
  2423.     (This)->lpVtbl -> AddRef(This)
  2424. #define IDataFilter_Release(This)
  2425.     (This)->lpVtbl -> Release(This)
  2426. #define IDataFilter_DoEncode(This,dwFlags,lInBufferSize,pbInBuffer,lOutBufferSize,pbOutBuffer,lInBytesAvailable,plInBytesRead,plOutBytesWritten,dwReserved)
  2427.     (This)->lpVtbl -> DoEncode(This,dwFlags,lInBufferSize,pbInBuffer,lOutBufferSize,pbOutBuffer,lInBytesAvailable,plInBytesRead,plOutBytesWritten,dwReserved)
  2428. #define IDataFilter_DoDecode(This,dwFlags,lInBufferSize,pbInBuffer,lOutBufferSize,pbOutBuffer,lInBytesAvailable,plInBytesRead,plOutBytesWritten,dwReserved)
  2429.     (This)->lpVtbl -> DoDecode(This,dwFlags,lInBufferSize,pbInBuffer,lOutBufferSize,pbOutBuffer,lInBytesAvailable,plInBytesRead,plOutBytesWritten,dwReserved)
  2430. #define IDataFilter_SetEncodingLevel(This,dwEncLevel)
  2431.     (This)->lpVtbl -> SetEncodingLevel(This,dwEncLevel)
  2432. #endif /* COBJMACROS */
  2433. #endif  /* C style interface */
  2434. HRESULT STDMETHODCALLTYPE IDataFilter_DoEncode_Proxy( 
  2435.     IDataFilter * This,
  2436.     /* [in] */ DWORD dwFlags,
  2437.     /* [in] */ LONG lInBufferSize,
  2438.     /* [size_is][in] */ BYTE *pbInBuffer,
  2439.     /* [in] */ LONG lOutBufferSize,
  2440.     /* [size_is][out] */ BYTE *pbOutBuffer,
  2441.     /* [in] */ LONG lInBytesAvailable,
  2442.     /* [out] */ LONG *plInBytesRead,
  2443.     /* [out] */ LONG *plOutBytesWritten,
  2444.     /* [in] */ DWORD dwReserved);
  2445. void __RPC_STUB IDataFilter_DoEncode_Stub(
  2446.     IRpcStubBuffer *This,
  2447.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2448.     PRPC_MESSAGE _pRpcMessage,
  2449.     DWORD *_pdwStubPhase);
  2450. HRESULT STDMETHODCALLTYPE IDataFilter_DoDecode_Proxy( 
  2451.     IDataFilter * This,
  2452.     /* [in] */ DWORD dwFlags,
  2453.     /* [in] */ LONG lInBufferSize,
  2454.     /* [size_is][in] */ BYTE *pbInBuffer,
  2455.     /* [in] */ LONG lOutBufferSize,
  2456.     /* [size_is][out] */ BYTE *pbOutBuffer,
  2457.     /* [in] */ LONG lInBytesAvailable,
  2458.     /* [out] */ LONG *plInBytesRead,
  2459.     /* [out] */ LONG *plOutBytesWritten,
  2460.     /* [in] */ DWORD dwReserved);
  2461. void __RPC_STUB IDataFilter_DoDecode_Stub(
  2462.     IRpcStubBuffer *This,
  2463.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2464.     PRPC_MESSAGE _pRpcMessage,
  2465.     DWORD *_pdwStubPhase);
  2466. HRESULT STDMETHODCALLTYPE IDataFilter_SetEncodingLevel_Proxy( 
  2467.     IDataFilter * This,
  2468.     /* [in] */ DWORD dwEncLevel);
  2469. void __RPC_STUB IDataFilter_SetEncodingLevel_Stub(
  2470.     IRpcStubBuffer *This,
  2471.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2472.     PRPC_MESSAGE _pRpcMessage,
  2473.     DWORD *_pdwStubPhase);
  2474. #endif  /* __IDataFilter_INTERFACE_DEFINED__ */
  2475. /* interface __MIDL_itf_urlmon_0203 */
  2476. /* [local] */ 
  2477. #endif
  2478. #ifndef _LPENCODINGFILTERFACTORY_DEFINED
  2479. #define _LPENCODINGFILTERFACTORY_DEFINED
  2480. typedef struct _tagPROTOCOLFILTERDATA
  2481.     {
  2482.     DWORD cbSize;
  2483.     IInternetProtocolSink *pProtocolSink;
  2484.     IInternetProtocol *pProtocol;
  2485.     IUnknown *pUnk;
  2486.     DWORD dwFilterFlags;
  2487.     }  PROTOCOLFILTERDATA;
  2488. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0203_v0_0_c_ifspec;
  2489. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0203_v0_0_s_ifspec;
  2490. #ifndef __IEncodingFilterFactory_INTERFACE_DEFINED__
  2491. #define __IEncodingFilterFactory_INTERFACE_DEFINED__
  2492. /* interface IEncodingFilterFactory */
  2493. /* [unique][uuid][object][local] */ 
  2494. typedef /* [unique] */ IEncodingFilterFactory *LPENCODINGFILTERFACTORY;
  2495. typedef struct _tagDATAINFO
  2496.     {
  2497.     ULONG ulTotalSize;
  2498.     ULONG ulavrPacketSize;
  2499.     ULONG ulConnectSpeed;
  2500.     ULONG ulProcessorSpeed;
  2501.     }  DATAINFO;
  2502. EXTERN_C const IID IID_IEncodingFilterFactory;
  2503. #if defined(__cplusplus) && !defined(CINTERFACE)
  2504.     
  2505.     MIDL_INTERFACE("70bdde00-c18e-11d0-a9ce-006097942311")
  2506.     IEncodingFilterFactory : public IUnknown
  2507.     {
  2508.     public:
  2509.         virtual HRESULT STDMETHODCALLTYPE FindBestFilter( 
  2510.             /* [in] */ LPCWSTR pwzCodeIn,
  2511.             /* [in] */ LPCWSTR pwzCodeOut,
  2512.             /* [in] */ DATAINFO info,
  2513.             /* [out] */ IDataFilter **ppDF) = 0;
  2514.         
  2515.         virtual HRESULT STDMETHODCALLTYPE GetDefaultFilter( 
  2516.             /* [in] */ LPCWSTR pwzCodeIn,
  2517.             /* [in] */ LPCWSTR pwzCodeOut,
  2518.             /* [out] */ IDataFilter **ppDF) = 0;
  2519.         
  2520.     };
  2521.     
  2522. #else  /* C style interface */
  2523.     typedef struct IEncodingFilterFactoryVtbl
  2524.     {
  2525.         BEGIN_INTERFACE
  2526.         
  2527.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2528.             IEncodingFilterFactory * This,
  2529.             /* [in] */ REFIID riid,
  2530.             /* [iid_is][out] */ void **ppvObject);
  2531.         
  2532.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2533.             IEncodingFilterFactory * This);
  2534.         
  2535.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2536.             IEncodingFilterFactory * This);
  2537.         
  2538.         HRESULT ( STDMETHODCALLTYPE *FindBestFilter )( 
  2539.             IEncodingFilterFactory * This,
  2540.             /* [in] */ LPCWSTR pwzCodeIn,
  2541.             /* [in] */ LPCWSTR pwzCodeOut,
  2542.             /* [in] */ DATAINFO info,
  2543.             /* [out] */ IDataFilter **ppDF);
  2544.         
  2545.         HRESULT ( STDMETHODCALLTYPE *GetDefaultFilter )( 
  2546.             IEncodingFilterFactory * This,
  2547.             /* [in] */ LPCWSTR pwzCodeIn,
  2548.             /* [in] */ LPCWSTR pwzCodeOut,
  2549.             /* [out] */ IDataFilter **ppDF);
  2550.         
  2551.         END_INTERFACE
  2552.     } IEncodingFilterFactoryVtbl;
  2553.     interface IEncodingFilterFactory
  2554.     {
  2555.         CONST_VTBL struct IEncodingFilterFactoryVtbl *lpVtbl;
  2556.     };
  2557.     
  2558. #ifdef COBJMACROS
  2559. #define IEncodingFilterFactory_QueryInterface(This,riid,ppvObject)
  2560.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2561. #define IEncodingFilterFactory_AddRef(This)
  2562.     (This)->lpVtbl -> AddRef(This)
  2563. #define IEncodingFilterFactory_Release(This)
  2564.     (This)->lpVtbl -> Release(This)
  2565. #define IEncodingFilterFactory_FindBestFilter(This,pwzCodeIn,pwzCodeOut,info,ppDF)
  2566.     (This)->lpVtbl -> FindBestFilter(This,pwzCodeIn,pwzCodeOut,info,ppDF)
  2567. #define IEncodingFilterFactory_GetDefaultFilter(This,pwzCodeIn,pwzCodeOut,ppDF)
  2568.     (This)->lpVtbl -> GetDefaultFilter(This,pwzCodeIn,pwzCodeOut,ppDF)
  2569. #endif /* COBJMACROS */
  2570. #endif  /* C style interface */
  2571. HRESULT STDMETHODCALLTYPE IEncodingFilterFactory_FindBestFilter_Proxy( 
  2572.     IEncodingFilterFactory * This,
  2573.     /* [in] */ LPCWSTR pwzCodeIn,
  2574.     /* [in] */ LPCWSTR pwzCodeOut,
  2575.     /* [in] */ DATAINFO info,
  2576.     /* [out] */ IDataFilter **ppDF);
  2577. void __RPC_STUB IEncodingFilterFactory_FindBestFilter_Stub(
  2578.     IRpcStubBuffer *This,
  2579.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2580.     PRPC_MESSAGE _pRpcMessage,
  2581.     DWORD *_pdwStubPhase);
  2582. HRESULT STDMETHODCALLTYPE IEncodingFilterFactory_GetDefaultFilter_Proxy( 
  2583.     IEncodingFilterFactory * This,
  2584.     /* [in] */ LPCWSTR pwzCodeIn,
  2585.     /* [in] */ LPCWSTR pwzCodeOut,
  2586.     /* [out] */ IDataFilter **ppDF);
  2587. void __RPC_STUB IEncodingFilterFactory_GetDefaultFilter_Stub(
  2588.     IRpcStubBuffer *This,
  2589.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2590.     PRPC_MESSAGE _pRpcMessage,
  2591.     DWORD *_pdwStubPhase);
  2592. #endif  /* __IEncodingFilterFactory_INTERFACE_DEFINED__ */
  2593. /* interface __MIDL_itf_urlmon_0204 */
  2594. /* [local] */ 
  2595. #endif
  2596. #ifndef _HITLOGGING_DEFINED
  2597. #define _HITLOGGING_DEFINED
  2598. // Logging-specific apis
  2599. BOOL WINAPI IsLoggingEnabledA(IN LPCSTR  pszUrl);                    
  2600. BOOL WINAPI IsLoggingEnabledW(IN LPCWSTR  pwszUrl);                  
  2601. #ifdef UNICODE                                                       
  2602. #define IsLoggingEnabled         IsLoggingEnabledW                   
  2603. #else                                                                
  2604. #define IsLoggingEnabled         IsLoggingEnabledA                   
  2605. #endif // !UNICODE                                                   
  2606. typedef struct _tagHIT_LOGGING_INFO
  2607.     {
  2608.     DWORD dwStructSize;
  2609.     LPSTR lpszLoggedUrlName;
  2610.     SYSTEMTIME StartTime;
  2611.     SYSTEMTIME EndTime;
  2612.     LPSTR lpszExtendedInfo;
  2613.     }  HIT_LOGGING_INFO;
  2614. typedef struct _tagHIT_LOGGING_INFO *LPHIT_LOGGING_INFO;
  2615. BOOL WINAPI WriteHitLogging(IN LPHIT_LOGGING_INFO lpLogginginfo);    
  2616. #define CONFIRMSAFETYACTION_LOADOBJECT  0x00000001
  2617. struct CONFIRMSAFETY
  2618.     {
  2619.     CLSID clsid;
  2620.     IUnknown *pUnk;
  2621.     DWORD dwFlags;
  2622.     } ;
  2623. EXTERN_C const GUID GUID_CUSTOM_CONFIRMOBJECTSAFETY; 
  2624. #endif
  2625. #ifndef _LPIWRAPPEDPROTOCOL_DEFINED
  2626. #define _LPIWRAPPEDPROTOCOL_DEFINED
  2627. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0204_v0_0_c_ifspec;
  2628. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0204_v0_0_s_ifspec;
  2629. #ifndef __IWrappedProtocol_INTERFACE_DEFINED__
  2630. #define __IWrappedProtocol_INTERFACE_DEFINED__
  2631. /* interface IWrappedProtocol */
  2632. /* [unique][uuid][object][local] */ 
  2633. typedef /* [unique] */ IWrappedProtocol *LPIWRAPPEDPROTOCOL;
  2634. EXTERN_C const IID IID_IWrappedProtocol;
  2635. #if defined(__cplusplus) && !defined(CINTERFACE)
  2636.     
  2637.     MIDL_INTERFACE("53c84785-8425-4dc5-971b-e58d9c19f9b6")
  2638.     IWrappedProtocol : public IUnknown
  2639.     {
  2640.     public:
  2641.         virtual HRESULT STDMETHODCALLTYPE GetWrapperCode( 
  2642.             /* [out] */ LONG *pnCode,
  2643.             /* [in] */ DWORD_PTR dwReserved) = 0;
  2644.         
  2645.     };
  2646.     
  2647. #else  /* C style interface */
  2648.     typedef struct IWrappedProtocolVtbl
  2649.     {
  2650.         BEGIN_INTERFACE
  2651.         
  2652.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2653.             IWrappedProtocol * This,
  2654.             /* [in] */ REFIID riid,
  2655.             /* [iid_is][out] */ void **ppvObject);
  2656.         
  2657.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2658.             IWrappedProtocol * This);
  2659.         
  2660.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2661.             IWrappedProtocol * This);
  2662.         
  2663.         HRESULT ( STDMETHODCALLTYPE *GetWrapperCode )( 
  2664.             IWrappedProtocol * This,
  2665.             /* [out] */ LONG *pnCode,
  2666.             /* [in] */ DWORD_PTR dwReserved);
  2667.         
  2668.         END_INTERFACE
  2669.     } IWrappedProtocolVtbl;
  2670.     interface IWrappedProtocol
  2671.     {
  2672.         CONST_VTBL struct IWrappedProtocolVtbl *lpVtbl;
  2673.     };
  2674.     
  2675. #ifdef COBJMACROS
  2676. #define IWrappedProtocol_QueryInterface(This,riid,ppvObject)
  2677.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2678. #define IWrappedProtocol_AddRef(This)
  2679.     (This)->lpVtbl -> AddRef(This)
  2680. #define IWrappedProtocol_Release(This)
  2681.     (This)->lpVtbl -> Release(This)
  2682. #define IWrappedProtocol_GetWrapperCode(This,pnCode,dwReserved)
  2683.     (This)->lpVtbl -> GetWrapperCode(This,pnCode,dwReserved)
  2684. #endif /* COBJMACROS */
  2685. #endif  /* C style interface */
  2686. HRESULT STDMETHODCALLTYPE IWrappedProtocol_GetWrapperCode_Proxy( 
  2687.     IWrappedProtocol * This,
  2688.     /* [out] */ LONG *pnCode,
  2689.     /* [in] */ DWORD_PTR dwReserved);
  2690. void __RPC_STUB IWrappedProtocol_GetWrapperCode_Stub(
  2691.     IRpcStubBuffer *This,
  2692.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2693.     PRPC_MESSAGE _pRpcMessage,
  2694.     DWORD *_pdwStubPhase);
  2695. #endif  /* __IWrappedProtocol_INTERFACE_DEFINED__ */
  2696. /* interface __MIDL_itf_urlmon_0205 */
  2697. /* [local] */ 
  2698. #endif
  2699. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0205_v0_0_c_ifspec;
  2700. extern RPC_IF_HANDLE __MIDL_itf_urlmon_0205_v0_0_s_ifspec;
  2701. /* Additional Prototypes for ALL interfaces */
  2702. unsigned long             __RPC_USER  HWND_UserSize(     unsigned long *, unsigned long            , HWND * ); 
  2703. unsigned char * __RPC_USER  HWND_UserMarshal(  unsigned long *, unsigned char *, HWND * ); 
  2704. unsigned char * __RPC_USER  HWND_UserUnmarshal(unsigned long *, unsigned char *, HWND * ); 
  2705. void                      __RPC_USER  HWND_UserFree(     unsigned long *, HWND * ); 
  2706. /* [local] */ HRESULT STDMETHODCALLTYPE IBinding_GetBindResult_Proxy( 
  2707.     IBinding * This,
  2708.     /* [out] */ CLSID *pclsidProtocol,
  2709.     /* [out] */ DWORD *pdwResult,
  2710.     /* [out] */ LPOLESTR *pszResult,
  2711.     /* [out][in] */ DWORD *pdwReserved);
  2712. /* [call_as] */ HRESULT STDMETHODCALLTYPE IBinding_GetBindResult_Stub( 
  2713.     IBinding * This,
  2714.     /* [out] */ CLSID *pclsidProtocol,
  2715.     /* [out] */ DWORD *pdwResult,
  2716.     /* [out] */ LPOLESTR *pszResult,
  2717.     /* [in] */ DWORD dwReserved);
  2718. /* [local] */ HRESULT STDMETHODCALLTYPE IBindStatusCallback_GetBindInfo_Proxy( 
  2719.     IBindStatusCallback * This,
  2720.     /* [out] */ DWORD *grfBINDF,
  2721.     /* [unique][out][in] */ BINDINFO *pbindinfo);
  2722. /* [call_as] */ HRESULT STDMETHODCALLTYPE IBindStatusCallback_GetBindInfo_Stub( 
  2723.     IBindStatusCallback * This,
  2724.     /* [out] */ DWORD *grfBINDF,
  2725.     /* [unique][out][in] */ RemBINDINFO *pbindinfo,
  2726.     /* [unique][out][in] */ RemSTGMEDIUM *pstgmed);
  2727. /* [local] */ HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnDataAvailable_Proxy( 
  2728.     IBindStatusCallback * This,
  2729.     /* [in] */ DWORD grfBSCF,
  2730.     /* [in] */ DWORD dwSize,
  2731.     /* [in] */ FORMATETC *pformatetc,
  2732.     /* [in] */ STGMEDIUM *pstgmed);
  2733. /* [call_as] */ HRESULT STDMETHODCALLTYPE IBindStatusCallback_OnDataAvailable_Stub( 
  2734.     IBindStatusCallback * This,
  2735.     /* [in] */ DWORD grfBSCF,
  2736.     /* [in] */ DWORD dwSize,
  2737.     /* [in] */ RemFORMATETC *pformatetc,
  2738.     /* [in] */ RemSTGMEDIUM *pstgmed);
  2739. /* [local] */ HRESULT STDMETHODCALLTYPE IWinInetInfo_QueryOption_Proxy( 
  2740.     IWinInetInfo * This,
  2741.     /* [in] */ DWORD dwOption,
  2742.     /* [size_is][out][in] */ LPVOID pBuffer,
  2743.     /* [out][in] */ DWORD *pcbBuf);
  2744. /* [call_as] */ HRESULT STDMETHODCALLTYPE IWinInetInfo_QueryOption_Stub( 
  2745.     IWinInetInfo * This,
  2746.     /* [in] */ DWORD dwOption,
  2747.     /* [size_is][out][in] */ BYTE *pBuffer,
  2748.     /* [out][in] */ DWORD *pcbBuf);
  2749. /* [local] */ HRESULT STDMETHODCALLTYPE IWinInetHttpInfo_QueryInfo_Proxy( 
  2750.     IWinInetHttpInfo * This,
  2751.     /* [in] */ DWORD dwOption,
  2752.     /* [size_is][out][in] */ LPVOID pBuffer,
  2753.     /* [out][in] */ DWORD *pcbBuf,
  2754.     /* [out][in] */ DWORD *pdwFlags,
  2755.     /* [out][in] */ DWORD *pdwReserved);
  2756. /* [call_as] */ HRESULT STDMETHODCALLTYPE IWinInetHttpInfo_QueryInfo_Stub( 
  2757.     IWinInetHttpInfo * This,
  2758.     /* [in] */ DWORD dwOption,
  2759.     /* [size_is][out][in] */ BYTE *pBuffer,
  2760.     /* [out][in] */ DWORD *pcbBuf,
  2761.     /* [out][in] */ DWORD *pdwFlags,
  2762.     /* [out][in] */ DWORD *pdwReserved);
  2763. /* [local] */ HRESULT STDMETHODCALLTYPE IBindHost_MonikerBindToStorage_Proxy( 
  2764.     IBindHost * This,
  2765.     /* [in] */ IMoniker *pMk,
  2766.     /* [in] */ IBindCtx *pBC,
  2767.     /* [in] */ IBindStatusCallback *pBSC,
  2768.     /* [in] */ REFIID riid,
  2769.     /* [out] */ void **ppvObj);
  2770. /* [call_as] */ HRESULT STDMETHODCALLTYPE IBindHost_MonikerBindToStorage_Stub( 
  2771.     IBindHost * This,
  2772.     /* [unique][in] */ IMoniker *pMk,
  2773.     /* [unique][in] */ IBindCtx *pBC,
  2774.     /* [unique][in] */ IBindStatusCallback *pBSC,
  2775.     /* [in] */ REFIID riid,
  2776.     /* [iid_is][out] */ IUnknown **ppvObj);
  2777. /* [local] */ HRESULT STDMETHODCALLTYPE IBindHost_MonikerBindToObject_Proxy( 
  2778.     IBindHost * This,
  2779.     /* [in] */ IMoniker *pMk,
  2780.     /* [in] */ IBindCtx *pBC,
  2781.     /* [in] */ IBindStatusCallback *pBSC,
  2782.     /* [in] */ REFIID riid,
  2783.     /* [out] */ void **ppvObj);
  2784. /* [call_as] */ HRESULT STDMETHODCALLTYPE IBindHost_MonikerBindToObject_Stub( 
  2785.     IBindHost * This,
  2786.     /* [unique][in] */ IMoniker *pMk,
  2787.     /* [unique][in] */ IBindCtx *pBC,
  2788.     /* [unique][in] */ IBindStatusCallback *pBSC,
  2789.     /* [in] */ REFIID riid,
  2790.     /* [iid_is][out] */ IUnknown **ppvObj);
  2791. /* end of Additional Prototypes */
  2792. #ifdef __cplusplus
  2793. }
  2794. #endif
  2795. #endif