|  | /* | 
|  | * Copyright (C) 2000 Ulrich Czekalla | 
|  | * Copyright (C) 2003 Alexandre Julliard | 
|  | * | 
|  | * This library is free software; you can redistribute it and/or | 
|  | * modify it under the terms of the GNU Lesser General Public | 
|  | * License as published by the Free Software Foundation; either | 
|  | * version 2.1 of the License, or (at your option) any later version. | 
|  | * | 
|  | * This library is distributed in the hope that it will be useful, | 
|  | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
|  | * Lesser General Public License for more details. | 
|  | * | 
|  | * You should have received a copy of the GNU Lesser General Public | 
|  | * License along with this library; if not, write to the Free Software | 
|  | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
|  | */ | 
|  |  | 
|  | import "objidl.idl"; | 
|  | import "oleidl.idl"; | 
|  | import "servprov.idl"; | 
|  | import "msxml.idl"; | 
|  |  | 
|  | cpp_quote("#ifdef WINE_NO_UNICODE_MACROS") | 
|  | cpp_quote("#undef GetUserName") | 
|  | cpp_quote("#undef SetPort") | 
|  | cpp_quote("#endif") | 
|  |  | 
|  | interface IInternetProtocolSink; | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IInternet interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(79eac9e0-baf9-11ce-8c82-00aa004ba90b), | 
|  | pointer_default(unique), | 
|  | local | 
|  | ] | 
|  | interface IInternet : IUnknown | 
|  | { | 
|  | typedef [unique] IInternet *LPIINTERNET; | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IBinding interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(79eac9c0-baf9-11ce-8c82-00aa004ba90b), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IBinding : IUnknown | 
|  | { | 
|  | typedef [unique] IBinding *LPBINDING; | 
|  |  | 
|  | HRESULT Abort(); | 
|  | HRESULT Suspend(); | 
|  | HRESULT Resume(); | 
|  |  | 
|  | HRESULT SetPriority( | 
|  | [in] LONG nPriority); | 
|  |  | 
|  | HRESULT GetPriority( | 
|  | [out] LONG * pnPriority); | 
|  |  | 
|  | [local] | 
|  | HRESULT GetBindResult( | 
|  | [out] CLSID *pclsidProtocol, | 
|  | [out] DWORD *pdwResult, | 
|  | [out] LPOLESTR *pszResult, | 
|  | [in, out] DWORD *pdwReserved); | 
|  |  | 
|  | [call_as(GetBindResult)] | 
|  | HRESULT RemoteGetBindResult( | 
|  | [out] CLSID *pclsidProtocol, | 
|  | [out] DWORD *pdwResult, | 
|  | [out] LPOLESTR *pszResult, | 
|  | [in] DWORD dwReserved); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IBindStatusCallback interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(79eac9c1-baf9-11ce-8c82-00aa004ba90b), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IBindStatusCallback : IUnknown | 
|  | { | 
|  | typedef [unique] IBindStatusCallback *LPBINDSTATUSCALLBACK; | 
|  |  | 
|  | typedef enum | 
|  | { | 
|  | BINDVERB_GET    = 0x00000000, | 
|  | BINDVERB_POST   = 0x00000001, | 
|  | BINDVERB_PUT    = 0x00000002, | 
|  | BINDVERB_CUSTOM = 0x00000003 | 
|  | } BINDVERB; | 
|  |  | 
|  | typedef enum | 
|  | { | 
|  | BINDINFOF_URLENCODESTGMEDDATA = 0x00000001, | 
|  | BINDINFOF_URLENCODEDEXTRAINFO = 0x00000002 | 
|  | } BINDINFOF; | 
|  |  | 
|  | typedef enum | 
|  | { | 
|  | BINDF_ASYNCHRONOUS = 0x00000001, | 
|  | BINDF_ASYNCSTORAGE = 0x00000002, | 
|  | BINDF_NOPROGRESSIVERENDERING = 0x00000004, | 
|  | BINDF_OFFLINEOPERATION = 0x00000008, | 
|  | BINDF_GETNEWESTVERSION = 0x00000010, | 
|  | BINDF_NOWRITECACHE = 0x00000020, | 
|  | BINDF_NEEDFILE = 0x00000040, | 
|  | BINDF_PULLDATA = 0x00000080, | 
|  | BINDF_IGNORESECURITYPROBLEM = 0x00000100, | 
|  | BINDF_RESYNCHRONIZE = 0x00000200, | 
|  | BINDF_HYPERLINK = 0x00000400, | 
|  | BINDF_NO_UI = 0x00000800, | 
|  | BINDF_SILENTOPERATION = 0x00001000, | 
|  | BINDF_PRAGMA_NO_CACHE = 0x00002000, | 
|  | BINDF_GETCLASSOBJECT = 0x00004000, | 
|  | BINDF_RESERVED_1 = 0x00008000, | 
|  | BINDF_FREE_THREADED = 0x00010000, | 
|  | BINDF_DIRECT_READ = 0x00020000, | 
|  | BINDF_FORMS_SUBMIT = 0x00040000, | 
|  | BINDF_GETFROMCACHE_IF_NET_FAIL = 0x00080000, | 
|  | BINDF_FROMURLMON = 0x00100000, | 
|  | BINDF_FWD_BACK = 0x00200000, | 
|  | BINDF_PREFERDEFAULTHANDLER = 0x00400000, | 
|  | BINDF_ENFORCERESTRICTED = 0x00800000 | 
|  | } BINDF; | 
|  |  | 
|  | typedef enum | 
|  | { | 
|  | URL_ENCODING_NONE         = 0x00000000, | 
|  | URL_ENCODING_ENABLE_UTF8  = 0x10000000, | 
|  | URL_ENCODING_DISABLE_UTF8 = 0x20000000 | 
|  | } URL_ENCODING; | 
|  |  | 
|  | typedef struct _tagBINDINFO | 
|  | { | 
|  | ULONG cbSize; | 
|  | LPWSTR szExtraInfo; | 
|  | STGMEDIUM stgmedData; | 
|  | DWORD grfBindInfoF; | 
|  | DWORD dwBindVerb; | 
|  | LPWSTR szCustomVerb; | 
|  | DWORD cbstgmedData; | 
|  | DWORD dwOptions; | 
|  | DWORD dwOptionsFlags; | 
|  | DWORD dwCodePage; | 
|  | SECURITY_ATTRIBUTES securityAttributes; | 
|  | IID iid; | 
|  | IUnknown *pUnk; | 
|  | DWORD dwReserved; | 
|  | } BINDINFO; | 
|  |  | 
|  | typedef struct _REMSECURITY_ATTRIBUTES | 
|  | { | 
|  | DWORD nLength; | 
|  | DWORD lpSecurityDescriptor; | 
|  | BOOL bInheritHandle; | 
|  | } REMSECURITY_ATTRIBUTES, *PREMSECURITY_ATTRIBUTES, *LPREMSECURITY_ATTRIBUTES; | 
|  |  | 
|  | typedef struct _tagRemBINDINFO | 
|  | { | 
|  | ULONG cbSize; | 
|  | LPWSTR szExtraInfo; | 
|  | DWORD grfBindInfoF; | 
|  | DWORD dwBindVerb; | 
|  | LPWSTR szCustomVerb; | 
|  | DWORD cbstgmedData; | 
|  | DWORD dwOptions; | 
|  | DWORD dwOptionsFlags; | 
|  | DWORD dwCodePage; | 
|  | REMSECURITY_ATTRIBUTES securityAttributes; | 
|  | IID iid; | 
|  | IUnknown *pUnk; | 
|  | DWORD dwReserved; | 
|  | } RemBINDINFO; | 
|  |  | 
|  | typedef struct tagRemFORMATETC | 
|  | { | 
|  | DWORD cfFormat; | 
|  | DWORD ptd; | 
|  | DWORD dwAspect; | 
|  | LONG lindex; | 
|  | DWORD tymed; | 
|  | } RemFORMATETC, *LPREMFORMATETC; | 
|  |  | 
|  | typedef enum | 
|  | { | 
|  | BSCF_FIRSTDATANOTIFICATION = 0x01, | 
|  | BSCF_INTERMEDIATEDATANOTIFICATION = 0x02, | 
|  | BSCF_LASTDATANOTIFICATION = 0x04, | 
|  | BSCF_DATAFULLYAVAILABLE = 0x08, | 
|  | BSCF_AVAILABLEDATASIZEUNKNOWN = 0x10, | 
|  | BSCF_SKIPDRAINDATAFORFILEURLS = 0x20, | 
|  | BSCF_64BITLENGTHDOWNLOAD = 0x40 | 
|  | } BSCF; | 
|  |  | 
|  | typedef enum BINDSTATUS | 
|  | { | 
|  | BINDSTATUS_FINDINGRESOURCE = 1, | 
|  | BINDSTATUS_CONNECTING, | 
|  | BINDSTATUS_REDIRECTING, | 
|  | BINDSTATUS_BEGINDOWNLOADDATA, | 
|  | BINDSTATUS_DOWNLOADINGDATA, | 
|  | BINDSTATUS_ENDDOWNLOADDATA, | 
|  | BINDSTATUS_BEGINDOWNLOADCOMPONENTS, | 
|  | BINDSTATUS_INSTALLINGCOMPONENTS, | 
|  | BINDSTATUS_ENDDOWNLOADCOMPONENTS, | 
|  | BINDSTATUS_USINGCACHEDCOPY, | 
|  | BINDSTATUS_SENDINGREQUEST, | 
|  | BINDSTATUS_CLASSIDAVAILABLE, | 
|  | BINDSTATUS_MIMETYPEAVAILABLE, | 
|  | BINDSTATUS_CACHEFILENAMEAVAILABLE, | 
|  | BINDSTATUS_BEGINSYNCOPERATION, | 
|  | BINDSTATUS_ENDSYNCOPERATION, | 
|  | BINDSTATUS_BEGINUPLOADDATA, | 
|  | BINDSTATUS_UPLOADINGDATA, | 
|  | BINDSTATUS_ENDUPLOADINGDATA, | 
|  | BINDSTATUS_PROTOCOLCLASSID, | 
|  | BINDSTATUS_ENCODING, | 
|  | BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE, | 
|  | BINDSTATUS_CLASSINSTALLLOCATION, | 
|  | BINDSTATUS_DECODING, | 
|  | BINDSTATUS_LOADINGMIMEHANDLER, | 
|  | BINDSTATUS_CONTENTDISPOSITIONATTACH, | 
|  | BINDSTATUS_FILTERREPORTMIMETYPE, | 
|  | BINDSTATUS_CLSIDCANINSTANTIATE, | 
|  | BINDSTATUS_IUNKNOWNAVAILABLE, | 
|  | BINDSTATUS_DIRECTBIND, | 
|  | BINDSTATUS_RAWMIMETYPE, | 
|  | BINDSTATUS_PROXYDETECTING, | 
|  | BINDSTATUS_ACCEPTRANGES, | 
|  | BINDSTATUS_COOKIE_SENT, | 
|  | BINDSTATUS_COMPACT_POLICY_RECEIVED, | 
|  | BINDSTATUS_COOKIE_SUPPRESSED, | 
|  | BINDSTATUS_COOKIE_STATE_UNKNOWN, | 
|  | BINDSTATUS_COOKIE_STATE_ACCEPT, | 
|  | BINDSTATUS_COOKIE_STATE_REJECT, | 
|  | BINDSTATUS_COOKIE_STATE_PROMPT, | 
|  | BINDSTATUS_COOKIE_STATE_LEASH, | 
|  | BINDSTATUS_COOKIE_STATE_DOWNGRADE, | 
|  | BINDSTATUS_POLICY_HREF, | 
|  | BINDSTATUS_P3P_HEADER, | 
|  | BINDSTATUS_SESSION_COOKIE_RECEIVED, | 
|  | BINDSTATUS_PERSISTENT_COOKIE_RECEIVED, | 
|  | BINDSTATUS_SESSION_COOKIES_ALLOWED, | 
|  | BINDSTATUS_CACHECONTROL, | 
|  | BINDSTATUS_CONTENTDISPOSITIONFILENAME, | 
|  | BINDSTATUS_MIMETEXTPLAINMISMATCH, | 
|  | BINDSTATUS_PUBLISHERAVAILABLE, | 
|  | BINDSTATUS_DISPLAYNAMEAVAILABLE | 
|  | } BINDSTATUS; | 
|  |  | 
|  |  | 
|  | HRESULT OnStartBinding( | 
|  | [in] DWORD dwReserved, | 
|  | [in] IBinding * pib); | 
|  |  | 
|  | HRESULT GetPriority( | 
|  | [out] LONG * pnPriority); | 
|  |  | 
|  | HRESULT OnLowResource( | 
|  | [in] DWORD reserved); | 
|  |  | 
|  | HRESULT OnProgress( | 
|  | [in] ULONG ulProgress, | 
|  | [in] ULONG ulProgressMax, | 
|  | [in] ULONG ulStatusCode, | 
|  | [in] LPCWSTR szStatusText); | 
|  |  | 
|  | HRESULT OnStopBinding( | 
|  | [in] HRESULT hresult, | 
|  | [in, unique] LPCWSTR szError); | 
|  |  | 
|  | [local] | 
|  | HRESULT GetBindInfo( | 
|  | [out] DWORD *grfBINDF, | 
|  | [in, out, unique] BINDINFO * pbindinfo); | 
|  |  | 
|  | [call_as(GetBindInfo)] | 
|  | HRESULT RemoteGetBindInfo( | 
|  | [out] DWORD *grfBINDF, | 
|  | [in, out, unique] RemBINDINFO * pbindinfo, | 
|  | [in, out, unique] RemSTGMEDIUM* pstgmed); | 
|  |  | 
|  | [local] | 
|  | HRESULT OnDataAvailable( | 
|  | [in] DWORD grfBSCF, | 
|  | [in] DWORD dwSize, | 
|  | [in] FORMATETC* pformatetc, | 
|  | [in] STGMEDIUM* pstgmed); | 
|  |  | 
|  | [call_as(OnDataAvailable)] | 
|  | HRESULT RemoteOnDataAvailable( | 
|  | [in] DWORD grfBSCF, | 
|  | [in] DWORD dwSize, | 
|  | [in] RemFORMATETC *pformatetc, | 
|  | [in] RemSTGMEDIUM* pstgmed); | 
|  |  | 
|  | HRESULT OnObjectAvailable( | 
|  | [in] REFIID riid, | 
|  | [in, iid_is(riid)] IUnknown* punk); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IBindStatusCallbackEx interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(aaa74ef9-8ee7-4659-88d9-f8c504da73cc), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IBindStatusCallbackEx : IBindStatusCallback | 
|  | { | 
|  | typedef [unique] IBindStatusCallbackEx *LPBINDSTATUSCALLBACKEX; | 
|  |  | 
|  | typedef enum { | 
|  | BINDF2_DISABLEBASICOVERHTTP               = 0x00000001, | 
|  | BINDF2_DISABLEAUTOCOOKIEHANDLING          = 0x00000002, | 
|  | BINDF2_READ_DATA_GREATER_THAN_4GB         = 0x00000004, | 
|  | BINDF2_DISABLE_HTTP_REDIRECT_XSECURITYID  = 0x00000008, | 
|  | BINDF2_RESERVED_3                         = 0x20000000, | 
|  | BINDF2_RESERVED_2                         = 0x40000000, | 
|  | BINDF2_RESERVED_1                         = 0x80000000, | 
|  | } BINDF2; | 
|  |  | 
|  | [local] | 
|  | HRESULT GetBindInfoEx( | 
|  | [out] DWORD *grfBINDF, | 
|  | [in, out, unique] BINDINFO *pbindinfo, | 
|  | [out] DWORD *grfBINDF2, | 
|  | [out] DWORD *pdwReserved); | 
|  |  | 
|  | [call_as(GetBindInfoEx)] | 
|  | HRESULT RemoteGetBindInfoEx( | 
|  | [out] DWORD *grfBINDF, | 
|  | [in, out, unique] RemBINDINFO *pbindinfo, | 
|  | [in, out, unique] RemSTGMEDIUM *pstgmed, | 
|  | [out] DWORD *grfBINDF2, | 
|  | [out] DWORD *pdwReserved); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IAuthenticate interface | 
|  | */ | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(79EAC9D0-BAf9-11CE-8C82-00AA004BA90B), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IAuthenticate : IUnknown | 
|  | { | 
|  | typedef [unique] IAuthenticate *LPAUTHENTICATION; | 
|  |  | 
|  | HRESULT Authenticate( | 
|  | [out] HWND* phwnd, | 
|  | [out] LPWSTR *pszUsername, | 
|  | [out] LPWSTR *pszPassword); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IHttpNegotiate interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(79EAC9D2-BAF9-11CE-8C82-00AA004BA90B), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IHttpNegotiate : IUnknown | 
|  | { | 
|  | typedef [unique] IHttpNegotiate *LPHTTPNEGOTIATE; | 
|  |  | 
|  | HRESULT BeginningTransaction( | 
|  | [in] LPCWSTR szURL, | 
|  | [in, unique] LPCWSTR szHeaders, | 
|  | [in] DWORD dwReserved, | 
|  | [out] LPWSTR *pszAdditionalHeaders); | 
|  |  | 
|  | HRESULT OnResponse( | 
|  | [in] DWORD dwResponseCode, | 
|  | [in, unique] LPCWSTR szResponseHeaders, | 
|  | [in, unique] LPCWSTR szRequestHeaders, | 
|  | [out] LPWSTR *pszAdditionalRequestHeaders); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IHttpNegotiate2 interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(4F9F9FCB-E0F4-48eb-B7AB-FA2EA9365CB4), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IHttpNegotiate2 : IHttpNegotiate | 
|  | { | 
|  | typedef [unique] IHttpNegotiate2 *LPHTTPNEGOTIATE2; | 
|  |  | 
|  | HRESULT GetRootSecurityId( | 
|  | [out, size_is(*pcbSecurityId)] BYTE *pbSecurityId, | 
|  | [in, out] DWORD *pcbSecurityId, | 
|  | [in] DWORD_PTR dwReserved); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IBindHost interface | 
|  | */ | 
|  | cpp_quote("#define SID_IBindHost IID_IBindHost") | 
|  | cpp_quote("#define SID_SBindHost IID_IBindHost") | 
|  | [ | 
|  | object, | 
|  | uuid(fc4801a1-2ba9-11cf-a229-00aa003d7352), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IBindHost : IUnknown | 
|  | { | 
|  | typedef [unique] IBindHost *LPBINDHOST; | 
|  |  | 
|  | HRESULT CreateMoniker( | 
|  | [in] LPOLESTR szName, | 
|  | [in] IBindCtx *pBC, | 
|  | [out] IMoniker** ppmk, | 
|  | [in] DWORD dwReserved); | 
|  |  | 
|  | [local] | 
|  | HRESULT MonikerBindToStorage( | 
|  | [in] IMoniker *pMk, | 
|  | [in] IBindCtx *pBC, | 
|  | [in] IBindStatusCallback *pBSC, | 
|  | [in] REFIID riid, | 
|  | [out] void **ppvObj); | 
|  |  | 
|  | [call_as(MonikerBindToStorage)] | 
|  | HRESULT RemoteMonikerBindToStorage( | 
|  | [in, unique] IMoniker *pMk, | 
|  | [in, unique] IBindCtx *pBC, | 
|  | [in, unique] IBindStatusCallback *pBSC, | 
|  | [in] REFIID riid, | 
|  | [out, iid_is(riid)] IUnknown **ppvObj); | 
|  |  | 
|  | [local] | 
|  | HRESULT MonikerBindToObject( | 
|  | [in] IMoniker *pMk, | 
|  | [in] IBindCtx *pBC, | 
|  | [in] IBindStatusCallback *pBSC, | 
|  | [in] REFIID riid, | 
|  | [out] void **ppvObj); | 
|  |  | 
|  | [call_as(MonikerBindToObject)] | 
|  | HRESULT RemoteMonikerBindToObject( | 
|  | [in, unique] IMoniker *pMk, | 
|  | [in, unique] IBindCtx *pBC, | 
|  | [in, unique] IBindStatusCallback *pBSC, | 
|  | [in] REFIID riid, | 
|  | [out, iid_is(riid)] IUnknown **ppvObj); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IWinInetInfo interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(79eac9d6-bafa-11ce-8c82-00aa004ba90b), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IWinInetInfo : IUnknown | 
|  | { | 
|  | typedef [unique] IWinInetInfo *LPWININETINFO; | 
|  |  | 
|  | [local] | 
|  | HRESULT QueryOption( | 
|  | [in] DWORD dwOption, | 
|  | [in, out, size_is(*pcbBuf)] LPVOID pBuffer, | 
|  | [in, out] DWORD *pcbBuf); | 
|  |  | 
|  | [call_as(QueryOption)] | 
|  | HRESULT RemoteQueryOption( | 
|  | [in] DWORD  dwOption, | 
|  | [in, out, size_is(*pcbBuf)] BYTE *pBuffer, | 
|  | [in, out] DWORD *pcbBuf); | 
|  | } | 
|  |  | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IWinInetHttpInfo interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(79eac9d8-bafa-11ce-8c82-00aa004ba90b), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IWinInetHttpInfo : IWinInetInfo | 
|  | { | 
|  | typedef [unique] IWinInetHttpInfo *LPWININETHTTPINFO; | 
|  |  | 
|  | [local] | 
|  | HRESULT QueryInfo( | 
|  | [in] DWORD dwOption, | 
|  | [in, out,size_is(*pcbBuf)] LPVOID pBuffer, | 
|  | [in, out] DWORD *pcbBuf, | 
|  | [in, out] DWORD *pdwFlags, | 
|  | [in, out] DWORD *pdwReserved); | 
|  |  | 
|  | [call_as(QueryInfo)] | 
|  | HRESULT RemoteQueryInfo( | 
|  | [in] DWORD dwOption, | 
|  | [in,out,size_is(*pcbBuf)] BYTE *pBuffer, | 
|  | [in, out] DWORD *pcbBuf, | 
|  | [in, out] DWORD *pdwFlags, | 
|  | [in, out] DWORD *pdwReserved); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IWindowForBindingUI interface | 
|  | */ | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(79eac9d5-bafa-11ce-8c82-00aa004ba90b), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IWindowForBindingUI : IUnknown | 
|  | { | 
|  | typedef [unique] IWindowForBindingUI *LPWINDOWFORBINDINGUI; | 
|  |  | 
|  | HRESULT GetWindow( | 
|  | [in] REFGUID rguidReason, | 
|  | [out] HWND *phwnd); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IHttpSecurity interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(79eac9d7-bafa-11ce-8c82-00aa004ba90b), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IHttpSecurity : IWindowForBindingUI | 
|  | { | 
|  | typedef [unique] IHttpSecurity *LPHTTPSECURITY; | 
|  |  | 
|  | HRESULT OnSecurityProblem( | 
|  | [in] DWORD dwProblem); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IPersistMoniker interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(79eac9c9-baf9-11ce-8c82-00aa004ba90b), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IPersistMoniker : IUnknown | 
|  | { | 
|  | typedef [unique] IPersistMoniker *LPPERSISTMONIKER; | 
|  |  | 
|  | HRESULT GetClassID( | 
|  | [out] CLSID *pClassID); | 
|  |  | 
|  | HRESULT IsDirty(); | 
|  |  | 
|  | HRESULT Load( | 
|  | [in] BOOL fFullyAvailable, | 
|  | [in] IMoniker *pimkName, | 
|  | [in] LPBC pibc, | 
|  | [in] DWORD grfMode); | 
|  |  | 
|  | HRESULT Save( | 
|  | [in] IMoniker *pimkName, | 
|  | [in] LPBC pbc, | 
|  | [in] BOOL fRemember); | 
|  |  | 
|  | HRESULT SaveCompleted( | 
|  | [in] IMoniker *pimkName, | 
|  | [in] LPBC pibc); | 
|  |  | 
|  | HRESULT GetCurMoniker( | 
|  | [out] IMoniker **ppimkName); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IMonikerProp interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(A5CA5F7F-1847-4D87-9C5B-918509F7511D), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IMonikerProp : IUnknown | 
|  | { | 
|  | typedef [unique] IMonikerProp *LPMONIKERPROP; | 
|  |  | 
|  | typedef enum { | 
|  | MIMETYPEPROP        = 0, | 
|  | USE_SRC_URL         = 1, | 
|  | CLASSIDPROP         = 2, | 
|  | TRUSTEDDOWNLOADPROP = 3, | 
|  | POPUPLEVELPROP      = 4 | 
|  | } MONIKERPROPERTY; | 
|  |  | 
|  | HRESULT PutProperty( | 
|  | [in] MONIKERPROPERTY mkp, | 
|  | [in] LPCWSTR val); | 
|  | } | 
|  |  | 
|  | cpp_quote("#ifndef _LPBINDPROTOCOL_DEFINED") | 
|  | cpp_quote("#define _LPBINDPROTOCOL_DEFINED") | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IBindProtocol interface | 
|  | */ | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(79EAC9CD-BAF9-11CE-8C82-00AA004BA90B), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IBindProtocol : IUnknown | 
|  | { | 
|  | typedef [unique] IBindProtocol *LPBINDPROTOCOL; | 
|  |  | 
|  | HRESULT CreateBinding( | 
|  | [in] LPCWSTR szUrl, | 
|  | [in] IBindCtx *pbc, | 
|  | [out] IBinding **ppb); | 
|  | } | 
|  |  | 
|  | cpp_quote("#endif /* !defined _LPBINDPROTOCOL_DEFINED */") | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IInternetBindInfo interface | 
|  | */ | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(79EAC9E1-BAF9-11CE-8C82-00AA004BA90B), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IInternetBindInfo : IUnknown | 
|  | { | 
|  | typedef [unique] IInternetBindInfo *LPIINTERNETBINDINFO; | 
|  |  | 
|  | typedef enum tagBINDSTRING | 
|  | { | 
|  | BINDSTRING_HEADERS = 1, | 
|  | BINDSTRING_ACCEPT_MIMES, | 
|  | BINDSTRING_EXTRA_URL, | 
|  | BINDSTRING_LANGUAGE, | 
|  | BINDSTRING_USERNAME, | 
|  | BINDSTRING_PASSWORD, | 
|  | BINDSTRING_UA_PIXELS, | 
|  | BINDSTRING_UA_COLOR, | 
|  | BINDSTRING_OS, | 
|  | BINDSTRING_USER_AGENT, | 
|  | BINDSTRING_ACCEPT_ENCODINGS, | 
|  | BINDSTRING_POST_COOKIE, | 
|  | BINDSTRING_POST_DATA_MIME, | 
|  | BINDSTRING_URL, | 
|  | BINDSTRING_IID, | 
|  | BINDSTRING_FLAG_BIND_TO_OBJECT, | 
|  | BINDSTRING_PTR_BIND_CONTEXT | 
|  | } BINDSTRING; | 
|  |  | 
|  | HRESULT GetBindInfo( | 
|  | [out] DWORD *grfBINDF, | 
|  | [in, out, unique] BINDINFO *pbindinfo); | 
|  |  | 
|  | HRESULT GetBindString( | 
|  | [in]      ULONG ulStringType, | 
|  | [in, out] LPOLESTR *ppwzStr, | 
|  | [in]      ULONG cEl, | 
|  | [in, out] ULONG *pcElFetched); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IInternetPriority interface | 
|  | */ | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(79EAC9EB-BAF9-11CE-8C82-00AA004BA90B), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IInternetPriority : IUnknown | 
|  | { | 
|  | typedef [unique] IInternetPriority *LPIINTERNETPRIORITY; | 
|  |  | 
|  | HRESULT SetPriority([in] LONG nPriority); | 
|  | HRESULT GetPriority([out] LONG *pnPriority); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IInternetProtocolRoot interface | 
|  | */ | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(79EAC9E3-BAF9-11CE-8C82-00AA004BA90B), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IInternetProtocolRoot : IUnknown | 
|  | { | 
|  | typedef [unique] IInternetProtocolRoot *LPIINTERNETPROTOCOLROOT; | 
|  |  | 
|  | typedef enum _tagPI_FLAGS | 
|  | { | 
|  | PI_PARSE_URL         = 0x00000001, | 
|  | PI_FILTER_MODE       = 0x00000002, | 
|  | PI_FORCE_ASYNC       = 0x00000004, | 
|  | PI_USE_WORKERTHREAD  = 0x00000008, | 
|  | PI_MIMEVERIFICATION  = 0x00000010, | 
|  | PI_CLSIDLOOKUP       = 0x00000020, | 
|  | PI_DATAPROGRESS      = 0x00000040, | 
|  | PI_SYNCHRONOUS       = 0x00000080, | 
|  | PI_APARTMENTTHREADED = 0x00000100, | 
|  | PI_CLASSINSTALL      = 0x00000200, | 
|  | PD_FORCE_SWITCH      = 0x00010000 | 
|  | } PI_FLAGS; | 
|  |  | 
|  | typedef struct _tagPROTOCOLDATA | 
|  | { | 
|  | DWORD grfFlags; | 
|  | DWORD dwState; | 
|  | LPVOID pData; | 
|  | ULONG cbData; | 
|  | } PROTOCOLDATA; | 
|  |  | 
|  | HRESULT Start( | 
|  | [in] LPCWSTR szUrl, | 
|  | [in] IInternetProtocolSink *pOIProtSink, | 
|  | [in] IInternetBindInfo *pOIBindInfo, | 
|  | [in] DWORD grfPI, | 
|  | [in] HANDLE_PTR dwReserved); | 
|  |  | 
|  | HRESULT Continue( | 
|  | [in] PROTOCOLDATA *pProtocolData); | 
|  |  | 
|  | HRESULT Abort( | 
|  | [in] HRESULT hrReason, | 
|  | [in] DWORD dwOptions); | 
|  |  | 
|  | HRESULT Terminate( | 
|  | [in] DWORD dwOptions); | 
|  |  | 
|  | HRESULT Suspend(); | 
|  |  | 
|  | HRESULT Resume(); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IInternetProtocolSink interface | 
|  | */ | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(79EAC9E5-BAF9-11CE-8C82-00AA004BA90B), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IInternetProtocolSink : IUnknown | 
|  | { | 
|  | typedef [unique] IInternetProtocolSink *LPIINTERNETPROTOCOLSINK; | 
|  |  | 
|  | HRESULT Switch( | 
|  | [in] PROTOCOLDATA *pProtocolData); | 
|  |  | 
|  | HRESULT ReportProgress( | 
|  | [in] ULONG ulStatusCode, | 
|  | [in] LPCWSTR szStatusText); | 
|  |  | 
|  | HRESULT ReportData( | 
|  | [in] DWORD grfBSCF, | 
|  | [in] ULONG ulProgress, | 
|  | [in] ULONG ulProgressMax); | 
|  |  | 
|  | HRESULT ReportResult( | 
|  | [in] HRESULT hrResult, | 
|  | [in] DWORD dwError, | 
|  | [in] LPCWSTR szResult); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IInternetProtocol interface | 
|  | */ | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(79EAC9E4-BAF9-11CE-8C82-00AA004BA90B), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IInternetProtocol : IInternetProtocolRoot | 
|  | { | 
|  | typedef [unique] IInternetProtocol *LPIINTERNETPROTOCOL; | 
|  |  | 
|  | HRESULT Read( | 
|  | [in,out, size_is(cb), length_is(*pcbRead)] void *pv, | 
|  | [in]  ULONG cb, | 
|  | [out] ULONG *pcbRead); | 
|  |  | 
|  | HRESULT Seek( | 
|  | [in]  LARGE_INTEGER dlibMove, | 
|  | [in]  DWORD dwOrigin, | 
|  | [out] ULARGE_INTEGER *plibNewPosition); | 
|  |  | 
|  | HRESULT LockRequest( | 
|  | [in] DWORD dwOptions); | 
|  |  | 
|  | HRESULT UnlockRequest(); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IInternetProtocolInfo interface | 
|  | */ | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(79eac9ec-baf9-11ce-8c82-00aa004ba90b), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IInternetProtocolInfo : IUnknown | 
|  | { | 
|  | typedef [unique] IInternetProtocolInfo *LPIINTERNETPROTOCOLINFO; | 
|  |  | 
|  | typedef enum _tagPARSEACTION | 
|  | { | 
|  | PARSE_CANONICALIZE = 1, | 
|  | PARSE_FRIENDLY, | 
|  | PARSE_SECURITY_URL, | 
|  | PARSE_ROOTDOCUMENT, | 
|  | PARSE_DOCUMENT, | 
|  | PARSE_ANCHOR, | 
|  | PARSE_ENCODE, | 
|  | PARSE_DECODE, | 
|  | PARSE_PATH_FROM_URL, | 
|  | PARSE_URL_FROM_PATH, | 
|  | PARSE_MIME, | 
|  | PARSE_SERVER, | 
|  | PARSE_SCHEMA, | 
|  | PARSE_SITE, | 
|  | PARSE_DOMAIN, | 
|  | PARSE_LOCATION, | 
|  | PARSE_SECURITY_DOMAIN, | 
|  | PARSE_ESCAPE, | 
|  | PARSE_UNESCAPE | 
|  | } PARSEACTION; | 
|  |  | 
|  | typedef enum _tagPSUACTION | 
|  | { | 
|  | PSU_DEFAULT = 1, | 
|  | PSU_SECURITY_URL_ONLY | 
|  | } PSUACTION; | 
|  |  | 
|  | typedef enum _tagQUERYOPTION | 
|  | { | 
|  | QUERY_EXPIRATION_DATE = 1, | 
|  | QUERY_TIME_OF_LAST_CHANGE, | 
|  | QUERY_CONTENT_ENCODING, | 
|  | QUERY_CONTENT_TYPE, | 
|  | QUERY_REFRESH, | 
|  | QUERY_RECOMBINE, | 
|  | QUERY_CAN_NAVIGATE, | 
|  | QUERY_USES_NETWORK, | 
|  | QUERY_IS_CACHED, | 
|  | QUERY_IS_INSTALLEDENTRY, | 
|  | QUERY_IS_CACHED_OR_MAPPED, | 
|  | QUERY_USES_CACHE, | 
|  | QUERY_IS_SECURE, | 
|  | QUERY_IS_SAFE, | 
|  | QUERY_USES_HISTORYFOLDER | 
|  | } QUERYOPTION; | 
|  |  | 
|  | HRESULT ParseUrl( | 
|  | [in] LPCWSTR pwzUrl, | 
|  | [in] PARSEACTION ParseAction, | 
|  | [in] DWORD dwParseFlags, | 
|  | [out] LPWSTR pwzResult, | 
|  | [in] DWORD cchResult, | 
|  | [out] DWORD *pcchResult, | 
|  | [in] DWORD dwReserved); | 
|  |  | 
|  | HRESULT CombineUrl( | 
|  | [in] LPCWSTR pwzBaseUrl, | 
|  | [in] LPCWSTR pwzRelativeUrl, | 
|  | [in] DWORD dwCombineFlags, | 
|  | [out] LPWSTR pwzResult, | 
|  | [in] DWORD cchResult, | 
|  | [out] DWORD *pcchResult, | 
|  | [in] DWORD dwReserved); | 
|  |  | 
|  | HRESULT CompareUrl( | 
|  | [in] LPCWSTR pwzUrl1, | 
|  | [in] LPCWSTR pwzUrl2, | 
|  | [in] DWORD dwCompareFlags); | 
|  |  | 
|  | HRESULT QueryInfo( | 
|  | [in] LPCWSTR pwzUrl, | 
|  | [in] QUERYOPTION OueryOption, | 
|  | [in] DWORD dwQueryFlags, | 
|  | [in, out,size_is(*pcbBuf)] LPVOID pBuffer, | 
|  | [in] DWORD cbBuffer, | 
|  | [in, out] DWORD *pcbBuf, | 
|  | [in] DWORD dwReserved); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IInternetSession interface | 
|  | */ | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(79eac9e7-baf9-11ce-8c82-00aa004ba90b), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IInternetSession : IUnknown | 
|  | { | 
|  | typedef [unique] IInternetSession *LPIINTERNETSESSION; | 
|  |  | 
|  | typedef enum _tagOIBDG_FLAGS | 
|  | { | 
|  | OIBDG_APARTMENTTHREADED = 0x0100, | 
|  | OIBDG_DATAONLY          = 0x1000 | 
|  | } OIBDG_FLAGS; | 
|  |  | 
|  | HRESULT RegisterNameSpace( | 
|  | [in] IClassFactory *pCF, | 
|  | [in] REFCLSID rclsid, | 
|  | [in] LPCWSTR pwzProtocol, | 
|  | [in] ULONG cPatterns, | 
|  | [in] const LPCWSTR *ppwzPatterns, | 
|  | [in] DWORD dwReserved); | 
|  |  | 
|  | HRESULT UnregisterNameSpace( | 
|  | [in] IClassFactory *pCF, | 
|  | [in] LPCWSTR pszProtocol); | 
|  |  | 
|  | HRESULT RegisterMimeFilter( | 
|  | [in] IClassFactory *pCF, | 
|  | [in] REFCLSID rclsid, | 
|  | [in] LPCWSTR pwzType); | 
|  |  | 
|  | HRESULT UnregisterMimeFilter( | 
|  | [in] IClassFactory *pCF, | 
|  | [in] LPCWSTR pwzType); | 
|  |  | 
|  | HRESULT CreateBinding( | 
|  | [in] LPBC pBC, | 
|  | [in] LPCWSTR szUrl, | 
|  | [in] IUnknown *pUnkOuter, | 
|  | [out, unique] IUnknown **ppUnk, | 
|  | [out, unique] IInternetProtocol **ppOInetProt, | 
|  | [in] DWORD dwOption); | 
|  |  | 
|  | HRESULT SetSessionOption( | 
|  | [in] DWORD dwOption, | 
|  | [in] LPVOID pBuffer, | 
|  | [in] DWORD dwBufferLength, | 
|  | [in] DWORD dwReserved); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IInternetSecurityMgrSite interface | 
|  | */ | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(79eac9ed-baf9-11ce-8c82-00aa004ba90b), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IInternetSecurityMgrSite : IUnknown | 
|  | { | 
|  | HRESULT GetWindow( | 
|  | [out] HWND *phwnd); | 
|  |  | 
|  | HRESULT EnableModeless( | 
|  | [in] BOOL fEnable); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IInternetSecurityManager interface | 
|  | */ | 
|  | cpp_quote("#define SID_SInternetSecurityManager IID_IInternetSecurityManager") | 
|  |  | 
|  | [ | 
|  | object, | 
|  | uuid(79eac9ee-baf9-11ce-8c82-00aa004ba90b), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IInternetSecurityManager : IUnknown | 
|  | { | 
|  | HRESULT SetSecuritySite( | 
|  | [in, unique] IInternetSecurityMgrSite *pSite); | 
|  |  | 
|  | HRESULT GetSecuritySite( | 
|  | [out] IInternetSecurityMgrSite **ppSite); | 
|  |  | 
|  | HRESULT MapUrlToZone( | 
|  | [in] LPCWSTR pwszUrl, | 
|  | [out] DWORD *pdwZone, | 
|  | [in] DWORD dwFlags); | 
|  |  | 
|  | cpp_quote("#define MAX_SIZE_SECURITY_ID 512") | 
|  |  | 
|  | HRESULT GetSecurityId( | 
|  | [in] LPCWSTR pwszUrl, | 
|  | [out, size_is(*pcbSecurityId)] BYTE *pbSecurityId, | 
|  | [in, out] DWORD *pcbSecurityId, | 
|  | [in] DWORD_PTR dwReserved); | 
|  |  | 
|  |  | 
|  | typedef enum { | 
|  | PUAF_DEFAULT                = 0x00, | 
|  | PUAF_NOUI                   = 0x01, | 
|  | PUAF_ISFILE                 = 0x02, | 
|  | PUAF_WARN_IF_DENIED         = 0x04, | 
|  | PUAF_FORCEUI_FOREGROUND     = 0x08, | 
|  | PUAF_CHECK_TIPS             = 0x10 | 
|  | } PUAF; | 
|  |  | 
|  | HRESULT ProcessUrlAction( | 
|  | [in] LPCWSTR pwszUrl, | 
|  | [in] DWORD dwAction, | 
|  | [out, size_is(cbPolicy)] BYTE *pPolicy, | 
|  | [in] DWORD cbPolicy, | 
|  | [in] BYTE *pContext, | 
|  | [in] DWORD cbContext, | 
|  | [in] DWORD dwFlags, | 
|  | [in] DWORD dwReserved); | 
|  |  | 
|  | HRESULT QueryCustomPolicy( | 
|  | [in] LPCWSTR pwszUrl, | 
|  | [in] REFGUID guidKey, | 
|  | [out, size_is(,*pcbPolicy)] BYTE **ppPolicy, | 
|  | [out] DWORD *pcbPolicy, | 
|  | [in] BYTE *pContext, | 
|  | [in] DWORD cbContext, | 
|  | [in] DWORD dwReserved); | 
|  |  | 
|  | typedef enum { | 
|  | SZM_CREATE = 0x0, | 
|  | SZM_DELETE = 0x1 | 
|  | } SZM_FLAGS; | 
|  |  | 
|  | HRESULT SetZoneMapping( | 
|  | [in] DWORD dwZone, | 
|  | [in] LPCWSTR lpszPattern, | 
|  | [in] DWORD dwFlags); | 
|  |  | 
|  | HRESULT GetZoneMappings( | 
|  | [in] DWORD dwZone, | 
|  | [out] IEnumString **ppenumString, | 
|  | [in] DWORD dwFlags); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IInternetHostSecurityManager interface | 
|  | */ | 
|  | cpp_quote("#define SID_SInternetHostSecurityManager IID_IInternetHostSecurityManager") | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(3af280b6-cb3f-11d0-891e-00c04fb6bfc4), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IInternetHostSecurityManager : IUnknown | 
|  | { | 
|  | HRESULT GetSecurityId( | 
|  | [out, size_is(*pcbSecurityId)] BYTE *pbSecurityId, | 
|  | [in, out] DWORD *pcbSecurityId, | 
|  | [in] DWORD_PTR dwReserved); | 
|  |  | 
|  | HRESULT ProcessUrlAction( | 
|  | [in] DWORD dwAction, | 
|  | [out, size_is(cbPolicy)] BYTE *pPolicy, | 
|  | [in] DWORD cbPolicy, | 
|  | [in] BYTE *pContext, | 
|  | [in] DWORD cbContext, | 
|  | [in] DWORD dwFlags, | 
|  | [in] DWORD dwReserved); | 
|  |  | 
|  | HRESULT QueryCustomPolicy( | 
|  | [in] REFGUID guidKey, | 
|  | [out, size_is(,*pcbPolicy)] BYTE **ppPolicy, | 
|  | [out] DWORD *pcbPolicy, | 
|  | [in] BYTE *pContext, | 
|  | [in] DWORD cbContext, | 
|  | [in] DWORD dwReserved); | 
|  | } | 
|  |  | 
|  | cpp_quote("#define URLACTION_MIN                        0x00001000") | 
|  | cpp_quote("#define URLACTION_DOWNLOAD_MIN               0x00001000") | 
|  | cpp_quote("#define URLACTION_DOWNLOAD_SIGNED_ACTIVEX    0x00001001") | 
|  | cpp_quote("#define URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX  0x00001004") | 
|  | cpp_quote("#define URLACTION_DOWNLOAD_CURR_MAX          0x00001004") | 
|  | cpp_quote("#define URLACTION_DOWNLOAD_MAX               0x000011ff") | 
|  |  | 
|  | cpp_quote("#define URLACTION_ACTIVEX_MIN                     0x00001200") | 
|  | cpp_quote("#define URLACTION_ACTIVEX_RUN                     0x00001200") | 
|  | cpp_quote("#define URLPOLICY_ACTIVEX_CHECK_LIST              0x00010000") | 
|  | cpp_quote("#define URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY  0x00001201") | 
|  | cpp_quote("#define URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY    0x00001202") | 
|  | cpp_quote("#define URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY  0x00001203") | 
|  | cpp_quote("#define URLACTION_SCRIPT_OVERRIDE_SAFETY          0x00001401") | 
|  | cpp_quote("#define URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY  0x00001204") | 
|  | cpp_quote("#define URLACTION_ACTIVEX_TREATASUNTRUSTED        0x00001205") | 
|  | cpp_quote("#define URLACTION_ACTIVEX_CURR_MAX                0x00001205") | 
|  | cpp_quote("#define URLACTION_ACTIVEX_MAX                     0x000013ff") | 
|  |  | 
|  | cpp_quote("#define URLACTION_SCRIPT_MIN           0x00001400") | 
|  | cpp_quote("#define URLACTION_SCRIPT_RUN           0x00001400") | 
|  | cpp_quote("#define URLACTION_SCRIPT_JAVA_USE      0x00001402") | 
|  | cpp_quote("#define URLACTION_SCRIPT_SAFE_ACTIVEX  0x00001405") | 
|  | cpp_quote("#define URLACTION_CROSS_DOMAIN_DATA    0x00001406") | 
|  | cpp_quote("#define URLACTION_SCRIPT_PASTE         0x00001407") | 
|  | cpp_quote("#define URLACTION_SCRIPT_CURR_MAX      0x00001407") | 
|  | cpp_quote("#define URLACTION_SCRIPT_MAX           0x000015ff") | 
|  |  | 
|  | cpp_quote("#define URLACTION_HTML_MIN                0x00001600") | 
|  | cpp_quote("#define URLACTION_HTML_SUBMIT_FORMS       0x00001601") | 
|  | cpp_quote("#define URLACTION_HTML_SUBMIT_FORMS_FROM  0x00001602") | 
|  | cpp_quote("#define URLACTION_HTML_SUBMIT_FORMS_TO    0x00001603") | 
|  | cpp_quote("#define URLACTION_HTML_FONT_DOWNLOAD      0x00001604") | 
|  | cpp_quote("#define URLACTION_HTML_JAVA_RUN           0x00001605") | 
|  | cpp_quote("#define URLACTION_HTML_USERDATA_SAVE      0x00001606") | 
|  | cpp_quote("#define URLACTION_HTML_SUBFRAME_NAVIGATE  0x00001607") | 
|  | cpp_quote("#define URLACTION_HTML_META_REFRESH       0x00001608") | 
|  | cpp_quote("#define URLACTION_HTML_MIXED_CONTENT      0x00001609") | 
|  | cpp_quote("#define URLACTION_HTML_MAX                0x000017ff") | 
|  |  | 
|  | cpp_quote("#define URLACTION_SHELL_MIN              0x00001800") | 
|  | cpp_quote("#define URLACTION_SHELL_INSTALL_DTITEMS  0x00001800") | 
|  | cpp_quote("#define URLACTION_SHELL_MOVE_OR_COPY     0x00001802") | 
|  | cpp_quote("#define URLACTION_SHELL_FILE_DOWNLOAD    0x00001803") | 
|  | cpp_quote("#define URLACTION_SHELL_VERB             0x00001804") | 
|  | cpp_quote("#define URLACTION_SHELL_WEBVIEW_VERB     0x00001805") | 
|  | cpp_quote("#define URLACTION_SHELL_CURR_MAX         0x00001805") | 
|  | cpp_quote("#define URLACTION_SHELL_MAX              0x000019ff") | 
|  |  | 
|  | cpp_quote("#define URLACTION_NETWORK_MIN                  0x00001a00") | 
|  | cpp_quote("#define URLACTION_CREDENTIALS_USE              0x00001a00") | 
|  | cpp_quote("#define URLACTION_AUTHENTICATE_CLIENT          0x00001a01") | 
|  | cpp_quote("#define URLACTION_COOKIES                      0x00001a02") | 
|  | cpp_quote("#define URLACTION_COOKIES_SESSION              0x00001a03") | 
|  | cpp_quote("#define URLACTION_CLIENT_CERT_PROMPT           0x00001a04") | 
|  | cpp_quote("#define URLACTION_COOKIES_THIRD_PARTY          0x00001a05") | 
|  | cpp_quote("#define URLACTION_COOKIES_SESSION_THIRD_PARTY  0x00001a06") | 
|  | cpp_quote("#define URLACTION_COOKIES_ENABLED              0x00001a10") | 
|  | cpp_quote("#define URLACTION_NETWORK_CURR_MAX             0x00001a10") | 
|  | cpp_quote("#define URLACTION_NETWORK_MAX                  0x00001bff") | 
|  |  | 
|  | cpp_quote("#define URLACTION_JAVA_MIN          0x00001c00") | 
|  | cpp_quote("#define URLACTION_JAVA_PERMISSIONS  0x00001c00") | 
|  | cpp_quote("#define URLPOLICY_JAVA_PROHIBIT     0x00000000") | 
|  | cpp_quote("#define URLPOLICY_JAVA_HIGH         0x00010000") | 
|  | cpp_quote("#define URLPOLICY_JAVA_MEDIUM       0x00020000") | 
|  | cpp_quote("#define URLPOLICY_JAVA_LOW          0x00030000") | 
|  | cpp_quote("#define URLPOLICY_JAVA_CUSTOM       0x00800000") | 
|  | cpp_quote("#define URLACTION_JAVA_CURR_MAX     0x00001c00") | 
|  | cpp_quote("#define URLACTION_JAVA_MAX          0x00001cff") | 
|  |  | 
|  | cpp_quote("#define URLACTION_INFODELIVERY_MIN                        0x00001d00") | 
|  | cpp_quote("#define URLACTION_INFODELIVERY_NO_ADDING_CHANNELS         0x00001d00") | 
|  | cpp_quote("#define URLACTION_INFODELIVERY_NO_EDITING_CHANNELS        0x00001d01") | 
|  | cpp_quote("#define URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS       0x00001d02") | 
|  | cpp_quote("#define URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS    0x00001d03") | 
|  | cpp_quote("#define URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS   0x00001d04") | 
|  | cpp_quote("#define URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS  0x00001d05") | 
|  | cpp_quote("#define URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING         0x00001d06") | 
|  | cpp_quote("#define URLACTION_INFODELIVERY_CURR_MAX                   0x00001d06") | 
|  | cpp_quote("#define URLACTION_INFODELIVERY_MAX                        0x00001dff") | 
|  |  | 
|  | cpp_quote("#define URLACTION_CHANNEL_SOFTDIST_MIN          0x00001e00") | 
|  | cpp_quote("#define URLACTION_CHANNEL_SOFTDIST_PERMISSIONS  0x00001e05") | 
|  | cpp_quote("#define URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT     0x00010000") | 
|  | cpp_quote("#define URLPOLICY_CHANNEL_SOFTDIST_PRECACHE     0x00020000") | 
|  | cpp_quote("#define URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL  0x00030000") | 
|  | cpp_quote("#define URLACTION_CHANNEL_SOFTDIST_MAX          0x00001eff") | 
|  |  | 
|  | cpp_quote("#define URLPOLICY_ALLOW     0x00") | 
|  | cpp_quote("#define URLPOLICY_QUERY     0x01") | 
|  | cpp_quote("#define URLPOLICY_DISALLOW  0x03") | 
|  |  | 
|  | cpp_quote("#define URLPOLICY_NOTIFY_ON_ALLOW     0x10") | 
|  | cpp_quote("#define URLPOLICY_NOTIFY_ON_DISALLOW  0x20") | 
|  |  | 
|  | cpp_quote("#define URLPOLICY_LOG_ON_ALLOW     0x40") | 
|  | cpp_quote("#define URLPOLICY_LOG_ON_DISALLOW  0x80") | 
|  |  | 
|  | cpp_quote("#define URLPOLICY_DONTCHECKDLGBOX     0x100") | 
|  |  | 
|  | cpp_quote("#define URLPOLICY_CREDENTIALS_SILENT_LOGON_OK     0x00000000") | 
|  | cpp_quote("#define URLPOLICY_CREDENTIALS_MUST_PROMPT_USER    0x00010000") | 
|  | cpp_quote("#define URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT  0x00020000") | 
|  | cpp_quote("#define URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY      0x00030000") | 
|  |  | 
|  | cpp_quote("#define URLPOLICY_AUTHENTICATE_CLEARTEXT_OK        0x00000000") | 
|  | cpp_quote("#define URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE  0x00010000") | 
|  | cpp_quote("#define URLPOLICY_AUTHENTICATE_MUTUAL_ONLY         0x00030000") | 
|  |  | 
|  | cpp_quote("#define URLPOLICY_MASK_PERMISSIONS  0x0f") | 
|  | cpp_quote("#define GetUrlPolicyPermissions(dw)      (dw & URLPOLICY_MASK_PERMISSIONS)") | 
|  | cpp_quote("#define SetUrlPolicyPermissions(dw,dw2)  ((dw) = ((dw) & ~URLPOLICY_MASK_PERMISSIONS) | (dw2))") | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IInternetZoneManager interface | 
|  | */ | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(79EAC9EF-BAf9-11CE-8C82-00AA004BA90B), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IInternetZoneManager : IUnknown | 
|  | { | 
|  | typedef [unique] IInternetZoneManager* LPURLZONEMANAGER; | 
|  |  | 
|  | typedef enum tagURLZONE | 
|  | { | 
|  | URLZONE_PREDEFINED_MIN  = 0, | 
|  | URLZONE_LOCAL_MACHINE   = 0, | 
|  | URLZONE_INTRANET        = 1, | 
|  | URLZONE_TRUSTED         = 2, | 
|  | URLZONE_INTERNET        = 3, | 
|  | URLZONE_UNTRUSTED       = 4, | 
|  | URLZONE_PREDEFINED_MAX  = 999, | 
|  | URLZONE_USER_MIN        = 1000, | 
|  | URLZONE_USER_MAX        = 10000, | 
|  | }  URLZONE; | 
|  |  | 
|  | typedef enum tagURLTEMPLATE | 
|  | { | 
|  | URLTEMPLATE_CUSTOM         = 0x00000, | 
|  | URLTEMPLATE_PREDEFINED_MIN = 0x10000, | 
|  | URLTEMPLATE_LOW            = 0x10000, | 
|  | URLTEMPLATE_MEDLOW         = 0x10500, | 
|  | URLTEMPLATE_MEDIUM         = 0x11000, | 
|  | URLTEMPLATE_MEDHIGH        = 0x11500, | 
|  | URLTEMPLATE_HIGH           = 0x12000, | 
|  | URLTEMPLATE_PREDEFINED_MAX = 0x20000, | 
|  | } URLTEMPLATE ; | 
|  |  | 
|  | typedef enum { | 
|  | ZAFLAGS_CUSTOM_EDIT              = 0x00000001, | 
|  | ZAFLAGS_ADD_SITES                = 0x00000002, | 
|  | ZAFLAGS_REQUIRE_VERIFICATION     = 0x00000004, | 
|  | ZAFLAGS_INCLUDE_PROXY_OVERRIDE   = 0x00000008, | 
|  | ZAFLAGS_INCLUDE_INTRANET_SITES   = 0x00000010, | 
|  | ZAFLAGS_NO_UI                    = 0x00000020, | 
|  | ZAFLAGS_SUPPORTS_VERIFICATION    = 0x00000040, | 
|  | ZAFLAGS_UNC_AS_INTRANET          = 0x00000080, | 
|  | ZAFLAGS_DETECT_INTRANET          = 0x00000100, | 
|  | ZAFLAGS_USE_LOCKED_ZONES         = 0x00010000, | 
|  | ZAFLAGS_VERIFY_TEMPLATE_SETTINGS = 0x00020000, | 
|  | ZAFLAGS_NO_CACHE                 = 0x00040000, | 
|  | } ZAFLAGS ; | 
|  |  | 
|  | enum { | 
|  | MAX_ZONE_PATH        = 260, | 
|  | MAX_ZONE_DESCRIPTION = 200 | 
|  | }; | 
|  |  | 
|  | typedef struct _ZONEATTRIBUTES { | 
|  | ULONG cbSize; | 
|  | WCHAR szDisplayName[MAX_ZONE_PATH]; | 
|  | WCHAR szDescription[MAX_ZONE_DESCRIPTION]; | 
|  | WCHAR szIconPath[MAX_ZONE_PATH]; | 
|  | DWORD dwTemplateMinLevel; | 
|  | DWORD dwTemplateRecommended; | 
|  | DWORD dwTemplateCurrentLevel; | 
|  | DWORD dwFlags; | 
|  | } ZONEATTRIBUTES, *LPZONEATTRIBUTES; | 
|  |  | 
|  | typedef enum _URLZONEREG { | 
|  | URLZONEREG_DEFAULT, | 
|  | URLZONEREG_HKLM, | 
|  | URLZONEREG_HKCU | 
|  | } URLZONEREG; | 
|  |  | 
|  | HRESULT GetZoneAttributes( | 
|  | [in]              DWORD dwZone, | 
|  | [in, out, unique] ZONEATTRIBUTES* pZoneAttributes); | 
|  |  | 
|  | HRESULT SetZoneAttributes( | 
|  | [in] DWORD dwZone, | 
|  | [in] ZONEATTRIBUTES* pZoneAttributes); | 
|  |  | 
|  | HRESULT GetZoneCustomPolicy( | 
|  | [in]  DWORD dwZone, | 
|  | [in]  REFGUID guidKey, | 
|  | [out] BYTE **ppPolicy, | 
|  | [out] DWORD* pcbPolicy, | 
|  | [in]  URLZONEREG ulrZoneReg); | 
|  |  | 
|  | HRESULT SetZoneCustomPolicy( | 
|  | [in] DWORD dwZone, | 
|  | [in] REFGUID guidKey, | 
|  | [in] BYTE *ppPolicy, | 
|  | [in] DWORD pcbPolicy, | 
|  | [in] URLZONEREG ulrZoneReg); | 
|  |  | 
|  | HRESULT GetZoneActionPolicy( | 
|  | [in]  DWORD dwZone, | 
|  | [in]  DWORD dwAction, | 
|  | [out] BYTE* pPolicy, | 
|  | [in]  DWORD cbPolicy, | 
|  | [in]  URLZONEREG urlZoneReg); | 
|  |  | 
|  | HRESULT SetZoneActionPolicy( | 
|  | [in] DWORD dwZone, | 
|  | [in] DWORD dwAction, | 
|  | [in] BYTE* pPolicy, | 
|  | [in] DWORD cbPolicy, | 
|  | [in] URLZONEREG urlZoneReg); | 
|  |  | 
|  | HRESULT PromptAction( | 
|  | [in] DWORD dwAction, | 
|  | [in] HWND hwndParent, | 
|  | [in] LPCWSTR pwszUrl, | 
|  | [in] LPCWSTR pwszText, | 
|  | [in] DWORD dwPromptFlags ); | 
|  |  | 
|  | HRESULT LogAction( | 
|  | [in] DWORD dwAction, | 
|  | [in] LPCWSTR pwszUrl, | 
|  | [in] LPCWSTR pwszText, | 
|  | [in] DWORD dwLogFlags); | 
|  |  | 
|  | HRESULT CreateZoneEnumerator( | 
|  | [out] DWORD* pdwEnum, | 
|  | [out] DWORD* pdwCount, | 
|  | [in]  DWORD dwFlags); | 
|  |  | 
|  | HRESULT GetZoneAt( | 
|  | [in]  DWORD dwEnum, | 
|  | [in]  DWORD dwIndex, | 
|  | [out] DWORD* pdwZone); | 
|  |  | 
|  | HRESULT DestroyZoneEnumerator( | 
|  | [in] DWORD dwEnum); | 
|  |  | 
|  | HRESULT CopyTemplatePoliciesToZone( | 
|  | [in] DWORD dwTemplate, | 
|  | [in] DWORD dwZone, | 
|  | [in] DWORD dwReserved); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IInternetZoneManagerEx interface | 
|  | */ | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(A4C23339-8E06-431E-9BF4-7E711C085648), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IInternetZoneManagerEx : IInternetZoneManager | 
|  | { | 
|  | HRESULT GetZoneActionPolicyEx( | 
|  | [in]  DWORD dwZone, | 
|  | [in]  DWORD dwAction, | 
|  | [out] BYTE* pPolicy, | 
|  | [in]  DWORD cbPolicy, | 
|  | [in]  URLZONEREG urlZoneReg, | 
|  | [in]  DWORD dwFlags); | 
|  |  | 
|  | HRESULT SetZoneActionPolicyEx( | 
|  | [in] DWORD dwZone, | 
|  | [in] DWORD dwAction, | 
|  | [in] BYTE* pPolicy, | 
|  | [in] DWORD cbPolicy, | 
|  | [in] URLZONEREG urlZoneReg, | 
|  | [in] DWORD dwFlags); | 
|  |  | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IInternetZoneManagerEx2 interface | 
|  | */ | 
|  |  | 
|  | cpp_quote("#define SECURITY_IE_STATE_GREEN 0") | 
|  | cpp_quote("#define SECURITY_IE_STATE_RED   1") | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(EDC17559-DD5D-4846-8EEF-8BECBA5A4ABF), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IInternetZoneManagerEx2 : IInternetZoneManagerEx | 
|  | { | 
|  | HRESULT GetZoneAttributesEx( | 
|  | [in]              DWORD dwZone, | 
|  | [in, out, unique] ZONEATTRIBUTES* pZoneAttributes, | 
|  | [in]              DWORD dwFlags); | 
|  |  | 
|  | HRESULT GetZoneSecurityState( | 
|  | [in]      DWORD dwZoneIndex, | 
|  | [in]      BOOL fRespectPolicy, | 
|  | [in, out] LPDWORD pdwState, | 
|  | [in, out] BOOL *pfPolicyEncountered); | 
|  |  | 
|  | HRESULT GetIESecurityState( | 
|  | [in]      BOOL fRespectPolicy, | 
|  | [in, out] LPDWORD pdwState, | 
|  | [in, out] BOOL *pfPolicyEncountered, | 
|  | [in]      BOOL fNoCache); | 
|  |  | 
|  | HRESULT FixInsecureSettings(void); | 
|  |  | 
|  | } | 
|  |  | 
|  |  | 
|  | typedef struct _tagSOFTDISTINFO | 
|  | { | 
|  | ULONG cbSize; | 
|  | DWORD dwFlags; | 
|  | DWORD dwAdState; | 
|  | LPWSTR szTitle; | 
|  | LPWSTR szAbstract; | 
|  | LPWSTR szHREF; | 
|  | DWORD dwInstalledVersionMS; | 
|  | DWORD dwInstalledVersionLS; | 
|  | DWORD dwUpdateVersionMS; | 
|  | DWORD dwUpdateVersionLS; | 
|  | DWORD dwAdvertisedVersionMS; | 
|  | DWORD dwAdvertisedVersionLS; | 
|  | DWORD dwReserved; | 
|  | } SOFTDISTINFO, *LPSOFTDISTINFO; | 
|  |  | 
|  | typedef struct _tagCODEBASEHOLD | 
|  | { | 
|  | DWORD cbSize; | 
|  | LPWSTR szDistUnit; | 
|  | LPWSTR szCodeBase; | 
|  | DWORD dwVersionMS; | 
|  | DWORD dwVersionLS; | 
|  | DWORD dwStyle; | 
|  | } CODEBASEHOLD, *LPCODEBASEHOLD; | 
|  |  | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(b15b8dc1-c7e1-11d0-8680-00aa00bdcb71), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface ISoftDistExt : IUnknown | 
|  | { | 
|  | HRESULT ProcessSoftDist( | 
|  | [in] LPCWSTR szCDFURL, | 
|  | [in] IXMLElement *pSoftDistElement, | 
|  | [in, out] LPSOFTDISTINFO lpsdi ); | 
|  |  | 
|  | HRESULT GetFirstCodeBase( | 
|  | [in] LPWSTR *szCodeBase, | 
|  | [in] LPDWORD dwMaxSize ); | 
|  |  | 
|  | HRESULT GetNextCodeBase( | 
|  | [in] LPWSTR *szCodeBase, | 
|  | [in] LPDWORD dwMaxSize ); | 
|  |  | 
|  | HRESULT AsyncInstallDistributionUnit( | 
|  | [in] IBindCtx *pbc, | 
|  | [in] LPVOID lpReserved, | 
|  | [in] DWORD flags, | 
|  | [in] LPCODEBASEHOLD lpcbh); | 
|  | } | 
|  |  | 
|  | typedef enum _tagINTERNETFEATURELIST | 
|  | { | 
|  | FEATURE_OBJECT_CACHING, | 
|  | FEATURE_ZONE_ELEVATION, | 
|  | FEATURE_MIME_HANDLING, | 
|  | FEATURE_MIME_SNIFFING, | 
|  | FEATURE_WINDOW_RESTRICTIONS, | 
|  | FEATURE_WEBOC_POPUPMANAGEMENT, | 
|  | FEATURE_BEHAVIORS, | 
|  | FEATURE_DISABLE_MK_PROTOCOL, | 
|  | FEATURE_LOCALMACHINE_LOCKDOWN, | 
|  | FEATURE_SECURITYBAND, | 
|  | FEATURE_RESTRICT_ACTIVEXINSTALL, | 
|  | FEATURE_VALIDATE_NAVIGATE_URL, | 
|  | FEATURE_RESTRICT_FILEDOWNLOAD, | 
|  | FEATURE_ADDON_MANAGEMENT, | 
|  | FEATURE_PROTOCOL_LOCKDOWN, | 
|  | FEATURE_HTTP_USERNAME_PASSWORD_DISABLE, | 
|  | FEATURE_SAFE_BINDTOOBJECT, | 
|  | FEATURE_UNC_SAVEDFILECHECK, | 
|  | FEATURE_GET_URL_DOM_FILEPATH_UNENCODED, | 
|  | FEATURE_TABBED_BROWSING, | 
|  | FEATURE_SSLUX, | 
|  | FEATURE_DISABLE_NAVIGATION_SOUNDS, | 
|  | FEATURE_DISABLE_LEGACY_COMPRESSION, | 
|  | FEATURE_FORCE_ADDR_AND_STATUS, | 
|  | FEATURE_XMLHTTP, | 
|  | FEATURE_DISABLE_TELNET_PROTOCOL, | 
|  | FEATURE_FEEDS, | 
|  | FEATURE_BLOCK_INPUT_PROMPTS, | 
|  | FEATURE_DOMSTORAGE, | 
|  | FEATURE_XDOMAINREQUEST, | 
|  | FEATURE_DATAURI, | 
|  | FEATURE_AJAX_CONNECTIONSERVICES, | 
|  | FEATURE_ENTRY_COUNT | 
|  | } INTERNETFEATURELIST; | 
|  |  | 
|  | typedef struct _tagPROTOCOLFILTERDATA { | 
|  | DWORD cbSize; | 
|  | IInternetProtocolSink *pProtocolSink; | 
|  | IInternetProtocol *pProtocol; | 
|  | IUnknown *pUnk; | 
|  | DWORD dwFilterFlags; | 
|  | } PROTOCOLFILTERDATA; | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IUri interface | 
|  | */ | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(a39ee748-6a27-4817-a6f2-13914bef5890), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IUri : IUnknown | 
|  | { | 
|  | typedef enum | 
|  | { | 
|  | Uri_PROPERTY_ABSOLUTE_URI = 0, | 
|  | Uri_PROPERTY_STRING_START = Uri_PROPERTY_ABSOLUTE_URI, | 
|  | Uri_PROPERTY_AUTHORITY = 1, | 
|  | Uri_PROPERTY_DISPLAY_URI = 2, | 
|  | Uri_PROPERTY_DOMAIN = 3, | 
|  | Uri_PROPERTY_EXTENSION = 4, | 
|  | Uri_PROPERTY_FRAGMENT = 5, | 
|  | Uri_PROPERTY_HOST = 6, | 
|  | Uri_PROPERTY_PASSWORD = 7, | 
|  | Uri_PROPERTY_PATH = 8, | 
|  | Uri_PROPERTY_PATH_AND_QUERY = 9, | 
|  | Uri_PROPERTY_QUERY = 10, | 
|  | Uri_PROPERTY_RAW_URI = 11, | 
|  | Uri_PROPERTY_SCHEME_NAME = 12, | 
|  | Uri_PROPERTY_USER_INFO = 13, | 
|  | Uri_PROPERTY_USER_NAME = 14, | 
|  | Uri_PROPERTY_STRING_LAST = Uri_PROPERTY_USER_NAME, | 
|  | Uri_PROPERTY_HOST_TYPE = 15, | 
|  | Uri_PROPERTY_DWORD_START = Uri_PROPERTY_HOST_TYPE, | 
|  | Uri_PROPERTY_PORT = 16, | 
|  | Uri_PROPERTY_SCHEME = 17, | 
|  | Uri_PROPERTY_ZONE = 18, | 
|  | Uri_PROPERTY_DWORD_LAST = Uri_PROPERTY_ZONE | 
|  | } Uri_PROPERTY; | 
|  |  | 
|  | HRESULT GetPropertyBSTR( | 
|  | [in]  Uri_PROPERTY uriProp, | 
|  | [out] BSTR *pbstrProperty, | 
|  | [in]  DWORD dwFlags); | 
|  |  | 
|  | HRESULT GetPropertyLength( | 
|  | [in]  Uri_PROPERTY uriProp, | 
|  | [out] DWORD *pcchProperty, | 
|  | [in]  DWORD dwFlags); | 
|  |  | 
|  | HRESULT GetPropertyDWORD( | 
|  | [in]  Uri_PROPERTY uriProp, | 
|  | [out] DWORD *pdwProperty, | 
|  | [in]  DWORD dwFlags); | 
|  |  | 
|  | HRESULT HasProperty( | 
|  | [in] Uri_PROPERTY uriProp, | 
|  | [out] BOOL *pfHasProperty); | 
|  |  | 
|  | HRESULT GetAbsoluteUri( | 
|  | [out] BSTR *pbstrAbsoluteUri); | 
|  |  | 
|  | HRESULT GetAuthority( | 
|  | [out] BSTR *pbstrAuthority); | 
|  |  | 
|  | HRESULT GetDisplayUri( | 
|  | [out] BSTR *pbstrDisplayString); | 
|  |  | 
|  | HRESULT GetDomain( | 
|  | [out] BSTR *pbstrDomain); | 
|  |  | 
|  | HRESULT GetExtension( | 
|  | [out] BSTR *pbstrExtension); | 
|  |  | 
|  | HRESULT GetFragment( | 
|  | [out] BSTR *pbstrFragment); | 
|  |  | 
|  | HRESULT GetHost( | 
|  | [out] BSTR *pbstrHost); | 
|  |  | 
|  | HRESULT GetPassword( | 
|  | [out] BSTR *pbstrPassword); | 
|  |  | 
|  | HRESULT GetPath( | 
|  | [out] BSTR *pbstrPath); | 
|  |  | 
|  | HRESULT GetPathAndQuery( | 
|  | [out] BSTR *pbstrPathAndQuery); | 
|  |  | 
|  | HRESULT GetQuery( | 
|  | [out] BSTR *pbstrQuery); | 
|  |  | 
|  | HRESULT GetRawUri( | 
|  | [out] BSTR *pbstrRawUri); | 
|  |  | 
|  | HRESULT GetSchemeName( | 
|  | [out] BSTR *pbstrSchemeName); | 
|  |  | 
|  | HRESULT GetUserInfo( | 
|  | [out] BSTR *pbstrUserInfo); | 
|  |  | 
|  | HRESULT GetUserName( | 
|  | [out] BSTR *pbstrUserName); | 
|  |  | 
|  | HRESULT GetHostType( | 
|  | [out] DWORD *pdwHostType); | 
|  |  | 
|  | HRESULT GetPort( | 
|  | [out] DWORD *pdwPort); | 
|  |  | 
|  | HRESULT GetScheme( | 
|  | [out] DWORD *pdwScheme); | 
|  |  | 
|  | HRESULT GetZone( | 
|  | [out] DWORD *pdwZone); | 
|  |  | 
|  | HRESULT GetProperties( | 
|  | [out] LPDWORD pdwFlags); | 
|  |  | 
|  | HRESULT IsEqual( | 
|  | [in]  IUri *pUri, | 
|  | [out] BOOL *pfEqual); | 
|  | } | 
|  |  | 
|  | cpp_quote("HRESULT WINAPI CreateUri(LPCWSTR,DWORD,DWORD_PTR,IUri**);") | 
|  | cpp_quote("HRESULT WINAPI CreateUriWithFragment(LPCWSTR,LPCWSTR,DWORD,DWORD_PTR,IUri**);") | 
|  | cpp_quote("HRESULT WINAPI CreateUriFromMultiByteString(LPCSTR,DWORD,DWORD,DWORD,DWORD_PTR,IUri**);") | 
|  |  | 
|  | cpp_quote("#define Uri_HAS_ABSOLUTE_URI    (1 << Uri_PROPERTY_ABSOLUTE_URI)") | 
|  | cpp_quote("#define Uri_HAS_AUTHORITY       (1 << Uri_PROPERTY_AUTHORITY)") | 
|  | cpp_quote("#define Uri_HAS_DISPLAY_URI     (1 << Uri_PROPERTY_DISPLAY_URI)") | 
|  | cpp_quote("#define Uri_HAS_DOMAIN          (1 << Uri_PROPERTY_DOMAIN)") | 
|  | cpp_quote("#define Uri_HAS_EXTENSION       (1 << Uri_PROPERTY_EXTENSION)") | 
|  | cpp_quote("#define Uri_HAS_FRAGMENT        (1 << Uri_PROPERTY_FRAGMENT)") | 
|  | cpp_quote("#define Uri_HAS_HOST            (1 << Uri_PROPERTY_HOST)") | 
|  | cpp_quote("#define Uri_HAS_PASSWORD        (1 << Uri_PROPERTY_PASSWORD)") | 
|  | cpp_quote("#define Uri_HAS_PATH            (1 << Uri_PROPERTY_PATH)") | 
|  | cpp_quote("#define Uri_HAS_QUERY           (1 << Uri_PROPERTY_QUERY)") | 
|  | cpp_quote("#define Uri_HAS_RAW_URI         (1 << Uri_PROPERTY_RAW_URI)") | 
|  | cpp_quote("#define Uri_HAS_SCHEME_NAME     (1 << Uri_PROPERTY_SCHEME_NAME)") | 
|  | cpp_quote("#define Uri_HAS_USER_NAME       (1 << Uri_PROPERTY_USER_NAME)") | 
|  | cpp_quote("#define Uri_HAS_PATH_AND_QUERY  (1 << Uri_PROPERTY_PATH_AND_QUERY)") | 
|  | cpp_quote("#define Uri_HAS_USER_INFO       (1 << Uri_PROPERTY_USER_INFO)") | 
|  | cpp_quote("#define Uri_HAS_HOST_TYPE       (1 << Uri_PROPERTY_HOST_TYPE)") | 
|  | cpp_quote("#define Uri_HAS_PORT            (1 << Uri_PROPERTY_PORT)") | 
|  | cpp_quote("#define Uri_HAS_SCHEME          (1 << Uri_PROPERTY_SCHEME)") | 
|  | cpp_quote("#define Uri_HAS_ZONE            (1 << Uri_PROPERTY_ZONE)") | 
|  |  | 
|  | cpp_quote("#define Uri_CREATE_ALLOW_RELATIVE                  0x0001") | 
|  | cpp_quote("#define Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME  0x0002") | 
|  | cpp_quote("#define Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME      0x0004") | 
|  | cpp_quote("#define Uri_CREATE_NOFRAG                          0x0008") | 
|  | cpp_quote("#define Uri_CREATE_NO_CANONICALIZE                 0x0010") | 
|  | cpp_quote("#define Uri_CREATE_CANONICALIZE                    0x0100") | 
|  | cpp_quote("#define Uri_CREATE_FILE_USE_DOS_PATH               0x0020") | 
|  | cpp_quote("#define Uri_CREATE_DECODE_EXTRA_INFO               0x0040") | 
|  | cpp_quote("#define Uri_CREATE_NO_DECODE_EXTRA_INFO            0x0080") | 
|  | cpp_quote("#define Uri_CREATE_CRACK_UNKNOWN_SCHEMES           0x0200") | 
|  | cpp_quote("#define Uri_CREATE_NO_CRACK_UNKNOWN_SCHEMES        0x0400") | 
|  | cpp_quote("#define Uri_CREATE_PRE_PROCESS_HTML_URI            0x0800") | 
|  | cpp_quote("#define Uri_CREATE_NO_PRE_PROCESS_HTML_URI         0x1000") | 
|  | cpp_quote("#define Uri_CREATE_IE_SETTINGS                     0x2000") | 
|  | cpp_quote("#define Uri_CREATE_NO_IE_SETTINGS                  0x4000") | 
|  | cpp_quote("#define Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS  0x8000") | 
|  |  | 
|  | cpp_quote("#define Uri_DISPLAY_NO_FRAGMENT  0x00000001") | 
|  | cpp_quote("#define Uri_PUNYCODE_IDN_HOST    0x00000002") | 
|  | cpp_quote("#define Uri_DISPLAY_IDN_HOST     0x00000004") | 
|  |  | 
|  | cpp_quote("#define Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8   0x00000001") | 
|  | cpp_quote("#define Uri_ENCODING_USER_INFO_AND_PATH_IS_CP                     0x00000002") | 
|  | cpp_quote("#define Uri_ENCODING_HOST_IS_IDN                                  0x00000004") | 
|  | cpp_quote("#define Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8                 0x00000008") | 
|  | cpp_quote("#define Uri_ENCODING_HOST_IS_PERCENT_ENCODED_CP                   0x00000010") | 
|  | cpp_quote("#define Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8   0x00000020") | 
|  | cpp_quote("#define Uri_ENCODING_QUERY_AND_FRAGMENT_IS_CP                     0x00000040") | 
|  | cpp_quote("#define Uri_ENCODING_RFC (Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8|Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8|Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8)") | 
|  |  | 
|  | cpp_quote("#define UriBuilder_USE_ORIGINAL_FLAGS  0x00000001") | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IUriContainer interface | 
|  | */ | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(a158a630-ed6f-45fb-b987-f68676f57752), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IUriContainer : IUnknown | 
|  | { | 
|  | HRESULT GetIUri([out] IUri **ppIUri); | 
|  | } | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IUriBuilder interface | 
|  | */ | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(4221b2e1-8955-46c0-bd5b-de9897565de7), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IUriBuilder: IUnknown | 
|  | { | 
|  | HRESULT CreateUriSimple( | 
|  | [in]  DWORD       dwAllowEncodingPropertyMask, | 
|  | [in]  DWORD_PTR   dwReserved, | 
|  | [out] IUri      **ppIUri); | 
|  |  | 
|  | HRESULT CreateUri( | 
|  | [in]  DWORD       dwCreateFlags, | 
|  | [in]  DWORD       dwAllowEncodingPropertyMask, | 
|  | [in]  DWORD_PTR   dwReserved, | 
|  | [out] IUri      **ppIUri); | 
|  |  | 
|  | HRESULT CreateUriWithFlags( | 
|  | [in]  DWORD       dwCreateFlags, | 
|  | [in]  DWORD       dwUriBuilderFlags, | 
|  | [in]  DWORD       dwAllowEncodingPropertyMask, | 
|  | [in]  DWORD_PTR   dwReserved, | 
|  | [out] IUri      **ppIUri); | 
|  |  | 
|  | HRESULT GetIUri( | 
|  | [out] IUri **ppIUri); | 
|  |  | 
|  | HRESULT SetIUri( | 
|  | [in, unique] IUri *pIUri); | 
|  |  | 
|  | HRESULT GetFragment( | 
|  | [out] DWORD   *pcchFragment, | 
|  | [out] LPCWSTR *ppwzFragment); | 
|  |  | 
|  | HRESULT GetHost( | 
|  | [out] DWORD   *pcchHost, | 
|  | [out] LPCWSTR *ppwzHost); | 
|  |  | 
|  | HRESULT GetPassword( | 
|  | [out] DWORD   *pcchPassword, | 
|  | [out] LPCWSTR *ppwzPassword); | 
|  |  | 
|  | HRESULT GetPath( | 
|  | [out] DWORD   *pcchPath, | 
|  | [out] LPCWSTR *ppwzPath); | 
|  |  | 
|  | HRESULT GetPort( | 
|  | [out] BOOL  *pfHasPort, | 
|  | [out] DWORD *pdwPort); | 
|  |  | 
|  | HRESULT GetQuery( | 
|  | [out] DWORD   *pcchQuery, | 
|  | [out] LPCWSTR *ppwzQuery); | 
|  |  | 
|  | HRESULT GetSchemeName( | 
|  | [out] DWORD   *pcchSchemeName, | 
|  | [out] LPCWSTR *ppwzSchemeName); | 
|  |  | 
|  | HRESULT GetUserName( | 
|  | [out] DWORD   *pcchUserName, | 
|  | [out] LPCWSTR *ppwzUserName); | 
|  |  | 
|  | HRESULT SetFragment( | 
|  | [in] LPCWSTR pwzNewValue); | 
|  |  | 
|  | HRESULT SetHost( | 
|  | [in] LPCWSTR pwzNewValue); | 
|  |  | 
|  | HRESULT SetPassword( | 
|  | [in] LPCWSTR pwzNewValue); | 
|  |  | 
|  | HRESULT SetPath( | 
|  | [in] LPCWSTR pwzNewValue); | 
|  |  | 
|  | HRESULT SetPort( | 
|  | [in] BOOL  fHasPort, | 
|  | [in] DWORD dwNewValue); | 
|  |  | 
|  | HRESULT SetQuery( | 
|  | [in] LPCWSTR pwzNewValue); | 
|  |  | 
|  | HRESULT SetSchemeName( | 
|  | [in] LPCWSTR pwzNewValue); | 
|  |  | 
|  | HRESULT SetUserName( | 
|  | [in] LPCWSTR pwzNewValue); | 
|  |  | 
|  | HRESULT RemoveProperties( | 
|  | [in] DWORD dwPropertyMask); | 
|  |  | 
|  | HRESULT HasBeenModified( | 
|  | [out] BOOL *pfModified); | 
|  | }; | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IInternetProtocolEx interface | 
|  | */ | 
|  | [ | 
|  | local, | 
|  | object, | 
|  | uuid(c7a98e66-1010-492c-a1c8-c809e1f75905), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IInternetProtocolEx : IInternetProtocol | 
|  | { | 
|  | HRESULT StartEx( | 
|  | [in] IUri *pUri, | 
|  | [in] IInternetProtocolSink *pOIProtSink, | 
|  | [in] IInternetBindInfo *pOIBindInfo, | 
|  | [in] DWORD grfPI, | 
|  | [in] HANDLE *dwReserved); | 
|  | } | 
|  |  | 
|  | cpp_quote("#define CONFIRMSAFETYACTION_LOADOBJECT  0x00000001") | 
|  |  | 
|  | struct CONFIRMSAFETY | 
|  | { | 
|  | CLSID clsid; | 
|  | IUnknown *pUnk; | 
|  | DWORD dwFlags; | 
|  | }; | 
|  |  | 
|  | cpp_quote("EXTERN_C const GUID GUID_CUSTOM_CONFIRMOBJECTSAFETY;") | 
|  |  | 
|  | cpp_quote("DEFINE_GUID(CLSID_InternetSecurityManager, 0x7b8a2d94, 0x0ac9, 0x11d1, 0x89, 0x6c, 0x00, 0xc0, 0x4f, 0xB6, 0xbf, 0xc4);") | 
|  | cpp_quote("DEFINE_GUID(CLSID_InternetZoneManager, 0x7B8A2D95, 0x0AC9, 0x11D1, 0x89, 0x6C, 0x00, 0xC0, 0x4F, 0xB6, 0xBF, 0xC4);") | 
|  | cpp_quote("DEFINE_GUID(IID_IAsyncMoniker, 0x79EAC9D3, 0xBAF9, 0x11CE, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B);") | 
|  | cpp_quote("DEFINE_GUID(IID_IAsyncBindCtx, 0x79EAC9D4, 0xBAF9, 0x11CE, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B);") | 
|  | cpp_quote("DEFINE_GUID(CLSID_StdURLMoniker, 0x79EAC9E0, 0xBAF9, 0x11CE, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B);") | 
|  | cpp_quote("DEFINE_GUID(CLSID_DeCompMimeFilter, 0x8f6b0360, 0xb80d, 0x11d0, 0xa9,0xb3, 0x00,0x60,0x97,0x94,0x23,0x11);") | 
|  |  | 
|  | cpp_quote("DEFINE_GUID(CLSID_CdlProtocol, 0x3dd53d40, 0x7b8b, 0x11D0, 0xb0,0x13, 0x00,0xaa,0x00,0x59,0xce,0x02);") | 
|  | cpp_quote("DEFINE_GUID(CLSID_FileProtocol, 0x79EAC9E7, 0xBAF9, 0x11CE, 0x8C,0x82, 0x00,0xAA,0x00,0x4B,0xA9,0x0B);") | 
|  | cpp_quote("DEFINE_GUID(CLSID_FtpProtocol, 0x79EAC9E3, 0xBAF9, 0x11CE, 0x8C,0x82, 0x00,0xAA,0x00,0x4B,0xA9,0x0B);") | 
|  | cpp_quote("DEFINE_GUID(CLSID_GopherProtocol, 0x79EAC9E4, 0xBAF9, 0x11CE, 0x8C,0x82, 0x00,0xAA,0x00,0x4B,0xA9,0x0B);") | 
|  | cpp_quote("DEFINE_GUID(CLSID_HttpProtocol, 0x79EAC9E2, 0xBAF9, 0x11CE, 0x8C,0x82, 0x00,0xAA,0x00,0x4B,0xA9,0x0B);") | 
|  | cpp_quote("DEFINE_GUID(CLSID_HttpSProtocol, 0x79EAC9E5, 0xBAF9, 0x11CE, 0x8C,0x82, 0x00,0xAA,0x00,0x4B,0xA9,0x0B);") | 
|  | cpp_quote("DEFINE_GUID(CLSID_MkProtocol, 0x79EAC9E6, 0xBAF9, 0x11CE, 0x8C,0x82, 0x00,0xAA,0x00,0x4B,0xA9,0x0B);") | 
|  |  | 
|  | cpp_quote("#define URLMON_OPTION_USERAGENT          0x10000001") | 
|  | cpp_quote("#define URLMON_OPTION_USERAGENT_REFRESH  0x10000002") | 
|  | cpp_quote("#define URLMON_OPTION_URL_ENCODING       0x10000004") | 
|  |  | 
|  | cpp_quote("#define MK_S_ASYNCHRONOUS                _HRESULT_TYPEDEF_(0x000401E8)") | 
|  | cpp_quote("#ifndef S_ASYNCHRONOUS") | 
|  | cpp_quote("#define S_ASYNCHRONOUS                   MK_S_ASYNCHRONOUS") | 
|  | cpp_quote("#endif") | 
|  |  | 
|  | cpp_quote("#define INET_E_ERROR_FIRST               _HRESULT_TYPEDEF_(0x800C0002)") | 
|  | cpp_quote("#define INET_E_INVALID_URL               _HRESULT_TYPEDEF_(0x800C0002)") | 
|  | cpp_quote("#define INET_E_NO_SESSION                _HRESULT_TYPEDEF_(0x800C0003)") | 
|  | cpp_quote("#define INET_E_CANNOT_CONNECT            _HRESULT_TYPEDEF_(0x800C0004)") | 
|  | cpp_quote("#define INET_E_RESOURCE_NOT_FOUND        _HRESULT_TYPEDEF_(0x800C0005)") | 
|  | cpp_quote("#define INET_E_OBJECT_NOT_FOUND          _HRESULT_TYPEDEF_(0x800C0006)") | 
|  | cpp_quote("#define INET_E_DATA_NOT_AVAILABLE        _HRESULT_TYPEDEF_(0x800C0007)") | 
|  | cpp_quote("#define INET_E_DOWNLOAD_FAILURE          _HRESULT_TYPEDEF_(0x800C0008)") | 
|  | cpp_quote("#define INET_E_AUTHENTICATION_REQUIRED   _HRESULT_TYPEDEF_(0x800C0009)") | 
|  | cpp_quote("#define INET_E_NO_VALID_MEDIA            _HRESULT_TYPEDEF_(0x800C000A)") | 
|  | cpp_quote("#define INET_E_CONNECTION_TIMEOUT        _HRESULT_TYPEDEF_(0x800C000B)") | 
|  | cpp_quote("#define INET_E_INVALID_REQUEST           _HRESULT_TYPEDEF_(0x800C000C)") | 
|  | cpp_quote("#define INET_E_UNKNOWN_PROTOCOL          _HRESULT_TYPEDEF_(0x800C000D)") | 
|  | cpp_quote("#define INET_E_SECURITY_PROBLEM          _HRESULT_TYPEDEF_(0x800C000E)") | 
|  | cpp_quote("#define INET_E_CANNOT_LOAD_DATA          _HRESULT_TYPEDEF_(0x800C000F)") | 
|  | cpp_quote("#define INET_E_CANNOT_INSTANTIATE_OBJECT _HRESULT_TYPEDEF_(0x800C0010)") | 
|  | cpp_quote("#define INET_E_USE_DEFAULT_PROTOCOLHANDLER _HRESULT_TYPEDEF_(0x800C0011)") | 
|  | cpp_quote("#define INET_E_QUERYOPTION_UNKNOWN       _HRESULT_TYPEDEF_(0x800C0013)") | 
|  | cpp_quote("#define INET_E_REDIRECT_FAILED           _HRESULT_TYPEDEF_(0x800C0014)") | 
|  | cpp_quote("#define INET_E_REDIRECT_TO_DIR           _HRESULT_TYPEDEF_(0x800C0015)") | 
|  | cpp_quote("#define INET_E_CANNOT_LOCK_REQUEST       _HRESULT_TYPEDEF_(0x800C0016)") | 
|  | cpp_quote("#define INET_E_ERROR_LAST                INET_E_REDIRECT_TO_DIR") | 
|  | cpp_quote("#define INET_E_DEFAULT_ACTION            INET_E_USE_DEFAULT_PROTOCOLHANDLER") | 
|  |  | 
|  | cpp_quote("HRESULT WINAPI CoGetClassObjectFromURL(REFCLSID, LPCWSTR, DWORD, DWORD, LPCWSTR, LPBINDCTX, DWORD, LPVOID, REFIID, LPVOID*);") | 
|  | cpp_quote("HRESULT WINAPI CreateURLMoniker(IMoniker *pmkContext, LPCWSTR szURL, IMoniker **ppmk);") | 
|  | cpp_quote("HRESULT WINAPI CreateURLMonikerEx(IMoniker*,LPCWSTR,IMoniker**,DWORD);") | 
|  | cpp_quote("HRESULT WINAPI CreateURLMonikerEx2(IMoniker*,IUri*,IMoniker**,DWORD);") | 
|  | cpp_quote("HRESULT WINAPI RegisterBindStatusCallback(IBindCtx *pbc, IBindStatusCallback *pbsc, IBindStatusCallback **ppbsc, DWORD dwReserved);") | 
|  | cpp_quote("HRESULT WINAPI CompareSecurityIds(BYTE*,DWORD,BYTE*,DWORD,DWORD);") | 
|  | cpp_quote("HRESULT WINAPI URLDownloadToFileA(LPUNKNOWN,LPCSTR,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);") | 
|  | cpp_quote("HRESULT WINAPI URLDownloadToFileW(LPUNKNOWN,LPCWSTR,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);") | 
|  | cpp_quote("HRESULT WINAPI URLDownloadToCacheFileA(LPUNKNOWN,LPCSTR,LPSTR,DWORD,DWORD,LPBINDSTATUSCALLBACK);") | 
|  | cpp_quote("HRESULT WINAPI URLDownloadToCacheFileW(LPUNKNOWN,LPCWSTR,LPWSTR,DWORD,DWORD,LPBINDSTATUSCALLBACK);") | 
|  | cpp_quote("HRESULT WINAPI CoInternetGetSession(DWORD,IInternetSession**,DWORD);") | 
|  | cpp_quote("HRESULT WINAPI MkParseDisplayNameEx(IBindCtx*,LPCWSTR,ULONG*,IMoniker**);") | 
|  | cpp_quote("HRESULT WINAPI IsAsyncMoniker(IMoniker* pmk);") | 
|  | cpp_quote("HRESULT WINAPI CreateAsyncBindCtx(DWORD, IBindStatusCallback*, IEnumFORMATETC*, IBindCtx**);") | 
|  | cpp_quote("HRESULT WINAPI CreateAsyncBindCtxEx(IBindCtx*,DWORD,IBindStatusCallback*,IEnumFORMATETC*,IBindCtx**,DWORD);") | 
|  | cpp_quote("HRESULT WINAPI CoInternetCreateSecurityManager(IServiceProvider*,IInternetSecurityManager**,DWORD);") | 
|  | cpp_quote("HRESULT WINAPI CoInternetCombineUrl(LPCWSTR,LPCWSTR,DWORD,LPWSTR,DWORD,DWORD*,DWORD);") | 
|  | cpp_quote("HRESULT WINAPI CoInternetCompareUrl(LPCWSTR,LPCWSTR,DWORD);") | 
|  | cpp_quote("HRESULT WINAPI CoInternetCreateZoneManager(IServiceProvider*, IInternetZoneManager**, DWORD);") | 
|  | cpp_quote("HRESULT WINAPI CoInternetParseUrl(LPCWSTR,PARSEACTION,DWORD,LPWSTR,DWORD,DWORD*,DWORD);") | 
|  | cpp_quote("HRESULT WINAPI CoInternetQueryInfo(LPCWSTR,QUERYOPTION,DWORD,LPVOID,DWORD,DWORD*,DWORD);") | 
|  | cpp_quote("HRESULT WINAPI CoInternetSetFeatureEnabled(INTERNETFEATURELIST,DWORD,BOOL);") | 
|  | cpp_quote("HRESULT WINAPI CoInternetGetSecurityUrl(LPCWSTR,LPWSTR*,PSUACTION,DWORD);") | 
|  | cpp_quote("HRESULT WINAPI CreateFormatEnumerator(UINT,FORMATETC*,IEnumFORMATETC**);") | 
|  | cpp_quote("HRESULT WINAPI GetSoftwareUpdateInfo( LPCWSTR szDistUnit, LPSOFTDISTINFO psdi);") | 
|  | cpp_quote("HRESULT WINAPI FaultInIEFeature(HWND,uCLSSPEC*,QUERYCONTEXT*,DWORD);") | 
|  | cpp_quote("HRESULT WINAPI FindMimeFromData(LPBC,LPCWSTR,LPVOID,DWORD,LPCWSTR,DWORD,LPWSTR*,DWORD);") | 
|  | cpp_quote("HRESULT WINAPI GetClassFileOrMime(LPBC,LPCWSTR,LPVOID,DWORD,LPCWSTR,DWORD,CLSID*);") | 
|  | cpp_quote("HRESULT WINAPI HlinkGoBack(IUnknown*);") | 
|  | cpp_quote("HRESULT WINAPI HlinkGoForward(IUnknown*);") | 
|  | cpp_quote("HRESULT WINAPI HlinkNavigateMoniker(IUnknown*,IMoniker*);") | 
|  | cpp_quote("HRESULT WINAPI HlinkNavigateString(IUnknown*,LPCWSTR);") | 
|  | cpp_quote("HRESULT WINAPI HlinkSimpleNavigateToMoniker(IMoniker*,LPCWSTR,LPCWSTR,IUnknown*,IBindCtx*,IBindStatusCallback*,DWORD,DWORD);") | 
|  | cpp_quote("HRESULT WINAPI HlinkSimpleNavigateToString(LPCWSTR,LPCWSTR,LPCWSTR,IUnknown*,IBindCtx*,IBindStatusCallback*,DWORD,DWORD);") | 
|  | cpp_quote("HRESULT WINAPI IsValidURL(LPBC,LPCWSTR,DWORD);") | 
|  | cpp_quote("HRESULT WINAPI ObtainUserAgentString(DWORD,LPSTR,DWORD*);") | 
|  | cpp_quote("HRESULT WINAPI RegisterFormatEnumerator(LPBC,IEnumFORMATETC*,DWORD);") | 
|  | cpp_quote("HRESULT WINAPI RevokeFormatEnumerator(LPBC,IEnumFORMATETC*);") | 
|  | cpp_quote("HRESULT WINAPI RevokeBindStatusCallback(LPBC,IBindStatusCallback*);") | 
|  | cpp_quote("HRESULT WINAPI CopyStgMedium(const STGMEDIUM*,STGMEDIUM*);") | 
|  | cpp_quote("void WINAPI ReleaseBindInfo(BINDINFO*);") | 
|  | cpp_quote("HRESULT WINAPI UrlMkGetSessionOption(DWORD,LPVOID,DWORD,DWORD*,DWORD);") | 
|  | cpp_quote("HRESULT WINAPI UrlMkSetSessionOption(DWORD,LPVOID,DWORD,DWORD);") | 
|  | cpp_quote("HRESULT WINAPI URLOpenStreamA(LPUNKNOWN,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);") | 
|  | cpp_quote("HRESULT WINAPI URLOpenStreamW(LPUNKNOWN,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);") | 
|  | cpp_quote("HRESULT WINAPI URLOpenPullStreamA(LPUNKNOWN,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);") | 
|  | cpp_quote("HRESULT WINAPI URLOpenPullStreamW(LPUNKNOWN,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);") | 
|  | cpp_quote("HRESULT WINAPI URLOpenBlockingStreamA(LPUNKNOWN,LPCSTR,LPSTREAM*,DWORD,LPBINDSTATUSCALLBACK);") | 
|  | cpp_quote("HRESULT WINAPI URLOpenBlockingStreamW(LPUNKNOWN,LPCWSTR,LPSTREAM*,DWORD,LPBINDSTATUSCALLBACK);") | 
|  |  | 
|  | cpp_quote("#define OInetCombineUrl CoInternetCombineUrl") | 
|  | cpp_quote("#define OInetCompareUrl CoInternetCompareUrl") | 
|  | cpp_quote("#define OInetGetSession CoInternetGetSession") | 
|  |  | 
|  | cpp_quote("BOOL WINAPI IsLoggingEnabledA(LPCSTR);") | 
|  | cpp_quote("BOOL WINAPI IsLoggingEnabledW(LPCWSTR);") | 
|  | cpp_quote("#define IsLoggingEnabled WINELIB_NAME_AW(IsLoggingEnabled)") | 
|  |  | 
|  | cpp_quote("#define MKSYS_URLMONIKER 6") | 
|  | cpp_quote("#define URL_MK_LEGACY            0") | 
|  | cpp_quote("#define URL_MK_UNIFORM           1") |