| /* | |
| * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| */ | |
| import "objidl.idl"; | |
| import "oleidl.idl"; | |
| import "servprov.idl"; | |
| /*import "msxml.idl";*/ | |
| interface IInternetProtocolSink; | |
| /***************************************************************************** | |
| * 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 | |
| { | |
| 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 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; | |
| 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_VERFIEDMIMETYPEAVAILABLE, | |
| 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; | |
| 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); | |
| } | |
| /***************************************************************************** | |
| * 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); | |
| } | |
| /***************************************************************************** | |
| * 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); | |
| } | |
| /***************************************************************************** | |
| * 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); | |
| } | |
| /***************************************************************************** | |
| * 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; | |
| 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); | |
| } | |
| /***************************************************************************** | |
| * 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] DWORD 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 | |
| } 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*/ void **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 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); | |
| }; | |
| /***************************************************************************** | |
| * 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_MEDIUM = 0x11000, | |
| 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 ; | |
| 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 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); | |
| } | |
| 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 MK_S_ASYNCHRONOUS 0x000401E8") | |
| cpp_quote("#define S_ASYNCHRONOUS MK_S_ASYNCHRONOUS") | |
| cpp_quote("#define INET_E_ERROR_FIRST 0x800C0002L") | |
| cpp_quote("#define INET_E_INVALID_URL 0x800C0002L") | |
| cpp_quote("#define INET_E_NO_SESSION 0x800C0003L") | |
| cpp_quote("#define INET_E_CANNOT_CONNECT 0x800C0004L") | |
| cpp_quote("#define INET_E_RESOURCE_NOT_FOUND 0x800C0005L") | |
| cpp_quote("#define INET_E_OBJECT_NOT_FOUND 0x800C0006L") | |
| cpp_quote("#define INET_E_DATA_NOT_AVAILABLE 0x800C0007L") | |
| cpp_quote("#define INET_E_DOWNLOAD_FAILURE 0x800C0008L") | |
| cpp_quote("#define INET_E_AUTHENTICATION_REQUIRED 0x800C0009L") | |
| cpp_quote("#define INET_E_NO_VALID_MEDIA 0x800C000AL") | |
| cpp_quote("#define INET_E_CONNECTION_TIMEOUT 0x800C000BL") | |
| cpp_quote("#define INET_E_INVALID_REQUEST 0x800C000CL") | |
| cpp_quote("#define INET_E_UNKNOWN_PROTOCOL 0x800C000DL") | |
| cpp_quote("#define INET_E_SECURITY_PROBLEM 0x800C000EL") | |
| cpp_quote("#define INET_E_CANNOT_LOAD_DATA 0x800C000FL") | |
| cpp_quote("#define INET_E_CANNOT_INSTANTIATE_OBJECT 0x800C0010L") | |
| cpp_quote("#define INET_E_QUERYOPTION_UNKNOWN 0x800C0013L") | |
| cpp_quote("#define INET_E_REDIRECT_FAILED 0x800C0014L") | |
| cpp_quote("#define INET_E_REDIRECT_TO_DIR 0x800C0015L") | |
| cpp_quote("#define INET_E_CANNOT_LOCK_REQUEST 0x800C0016L") | |
| cpp_quote("#define INET_E_ERROR_LAST INET_E_REDIRECT_TO_DIR") | |
| cpp_quote("HRESULT WINAPI CreateURLMoniker(IMoniker *pmkContext, LPCWSTR szURL, IMoniker **ppmk);") | |
| 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 pCaller, LPCSTR szURL, LPCSTR szFileName, DWORD dwReserved, LPBINDSTATUSCALLBACK lpfnCB);") | |
| cpp_quote("HRESULT WINAPI URLDownloadToFileW(LPUNKNOWN pCaller, LPCWSTR szURL, LPCWSTR szFileName, DWORD dwReserved, LPBINDSTATUSCALLBACK lpfnCB);") | |
| 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 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("#define OInetCombineUrl CoInternetCombineUrl") | |
| cpp_quote("#define OInetCompareUrl CoInternetCompareUrl") | |
| cpp_quote("#define OInetGetSession CoInternetGetSession") | |
| cpp_quote("#define MKSYS_URLMONIKER 6") |