From b7c6280e9540cd1327abd55c815cdbb144f256e4 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Wed, 3 Sep 2003 23:52:07 +0000 Subject: [PATCH] Converted urlmon.h to IDL. --- include/Makefile.in | 2 +- include/urlmon.h | 1742 ++++++++++++++++++++++++++++++++++++++++----------- include/urlmon.idl | 539 ++++++++++++++++ include/wtypes.h | 6 + include/wtypes.idl | 7 + 5 files changed, 1944 insertions(+), 352 deletions(-) rewrite include/urlmon.h (71%) create mode 100644 include/urlmon.idl diff --git a/include/Makefile.in b/include/Makefile.in index cbccbb54023..d058ada5687 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -12,6 +12,7 @@ IDL_SRCS = \ servprov.idl \ strmif.idl \ unknwn.idl \ + urlmon.idl \ wtypes.idl IDL_INCLUDES = \ @@ -160,7 +161,6 @@ WINDOWS_INCLUDES = \ tapi.h \ tchar.h \ tlhelp32.h \ - urlmon.h \ uuids.h \ ver.h \ vfw.h \ diff --git a/include/urlmon.h b/include/urlmon.h dissimilarity index 71% index 8113db619b2..ffef8099c8a 100644 --- a/include/urlmon.h +++ b/include/urlmon.h @@ -1,351 +1,1391 @@ -/* - * Copyright (C) 2000 Ulrich Czekalla - * - * 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 - */ - -#include -#include -#ifndef COM_NO_WINDOWS_H -#include -#include -#endif - -#ifndef __WINE_URLMON_H -#define __WINE_URLMON_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif /* defined(__cplusplus) */ - -DEFINE_GUID(IID_IBinding, 0x79EAC9C0, 0xBAF9, 0x11CE, - 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B); -typedef struct IBinding IBinding,*LPBINDING; - -DEFINE_GUID(IID_IBindStatusCallback, 0x79EAC9C1, 0xBAF9, 0x11CE, - 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B); -typedef struct IBindStatusCallback IBindStatusCallback,*LPBINDSTATUSCALLBACK; - -DEFINE_GUID(IID_IBindHost, 0XFC4801A1, 0X2BA9, 0X11CF, - 0XA2, 0X29, 0X00, 0XAA, 0X00, 0X3D, 0X73, 0X52); -typedef struct IBindHost IBindHost,*LPBINDHOST; - -DEFINE_GUID(IID_IWinInetInfo, 0x79EAC9D6, 0xBAFA, 0x11CE, - 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0X0B); -typedef struct IWinInetInfo IWinInetInfo,*LPWININETINFO; - -DEFINE_GUID(IID_IWinInetHttpInfo, 0x79EAC9D8, 0xBAFA, 0x11CE, - 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0X0B); -typedef struct IWinInetHttpInfo IWinInetHttpInfo,*LPWININETHTTPINFO; - -DEFINE_GUID(IID_IPersistMoniker, 0x79eac9c9, 0xbaf9, 0x11ce, - 0x8c, 0x82, 0x00, 0xaa, 0x00, 0x4b, 0xa9, 0x0b); -typedef struct IPersistMoniker IPersistMoniker; - -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_RESERVED_3 = 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 enum { - BSCF_FIRSTDATANOTIFICATION = 0x01, - BSCF_INTERMEDIATEDATANOTIFICATION = 0x02, - BSCF_LASTDATANOTIFICATION = 0x04, - BSCF_DATAFULLYAVAILABLE = 0x08, - BSCF_AVAILABLEDATASIZEUNKNOWN = 0x10 -} BSCF; - -typedef enum BINDSTATUS { - BINDSTATUS_FINDINGRESOURCE, - 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; - -#define MK_S_ASYNCHRONOUS 0x000401E8 -#define S_ASYNCHRONOUS MK_S_ASYNCHRONOUS - -#define INET_E_ERROR_FIRST 0x800C0002L -#define INET_E_INVALID_URL 0x800C0002L -#define INET_E_NO_SESSION 0x800C0003L -#define INET_E_CANNOT_CONNECT 0x800C0004L -#define INET_E_RESOURCE_NOT_FOUND 0x800C0005L -#define INET_E_OBJECT_NOT_FOUND 0x800C0006L -#define INET_E_DATA_NOT_AVAILABLE 0x800C0007L -#define INET_E_DOWNLOAD_FAILURE 0x800C0008L -#define INET_E_AUTHENTICATION_REQUIRED 0x800C0009L -#define INET_E_NO_VALID_MEDIA 0x800C000AL -#define INET_E_CONNECTION_TIMEOUT 0x800C000BL -#define INET_E_INVALID_REQUEST 0x800C000CL -#define INET_E_UNKNOWN_PROTOCOL 0x800C000DL -#define INET_E_SECURITY_PROBLEM 0x800C000EL -#define INET_E_CANNOT_LOAD_DATA 0x800C000FL -#define INET_E_CANNOT_INSTANTIATE_OBJECT 0x800C0010L -#define INET_E_QUERYOPTION_UNKNOWN 0x800C0013L -#define INET_E_REDIRECT_FAILED 0x800C0014L -#define INET_E_REDIRECT_TO_DIR 0x800C0015L -#define INET_E_CANNOT_LOCK_REQUEST 0x800C0016L -#define INET_E_ERROR_LAST INET_E_REDIRECT_TO_DIR - - -/***************************************************************************** - * IBinding interface - */ -#define INTERFACE IBinding -#define IBinding_METHODS \ - IUnknown_METHODS \ - STDMETHOD(Abort)(THIS) PURE; \ - STDMETHOD(Suspend)(THIS) PURE; \ - STDMETHOD(Resume)(THIS) PURE; \ - STDMETHOD(SetPriority)(THIS_ LONG nPriority) PURE; \ - STDMETHOD(GetPriority)(THIS_ LONG *pnPriority) PURE; \ - STDMETHOD(GetBindResult)(THIS_ CLSID *pclsidProtocol, DWORD *pdwResult, LPOLESTR *pszResult, DWORD *pdwReserved) PURE; -ICOM_DEFINE(IBinding,IUnknown) -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IBinding_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IBinding_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IBinding_Release(p) (p)->lpVtbl->Release(p) -/*** IBinding methods ***/ -#define IBinding_Abort(p) (p)->lpVtbl->Abort(p) -#define IBinding_Suspend(p) (p)->lpVtbl->Suspend(p) -#define IBinding_Resume(p) (p)->lpVtbl->Resume(p) -#define IBinding_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) -#define IBinding_GetPriority(p,a) (p)->lpVtbl->GetPriority(p,a) -#define IBinding_GetBindResult(p,a,b,c,d) (p)->lpVtbl->GetBindResult(p,a,b,c,d) -#endif - -/***************************************************************************** - * IBindStatusCallback interface - */ -#define INTERFACE IBindStatusCallback -#define IBindStatusCallback_METHODS \ - IUnknown_METHODS \ - STDMETHOD(OnStartBinding)(THIS_ DWORD dwReserved, IBinding *pib) PURE; \ - STDMETHOD(GetPriority)(THIS_ LONG *pnPriority) PURE; \ - STDMETHOD(OnLowResource)(THIS) PURE; \ - STDMETHOD(OnProgress)(THIS_ ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText) PURE; \ - STDMETHOD(OnStopBinding)(THIS_ HRESULT hresult, LPCWSTR szError) PURE; \ - STDMETHOD(GetBindInfo)(THIS_ DWORD *grfBINDF, BINDINFO *pbindinfo) PURE; \ - STDMETHOD(OnDataAvailable)(THIS_ DWORD grfBSCF, DWORD dwSize, FORMATETC *pformatetc, STGMEDIUM *pstgmed) PURE; \ - STDMETHOD(OnObjectAvailable)(THIS_ REFIID iid, IUnknown *punk) PURE; -ICOM_DEFINE(IBindStatusCallback,IUnknown) -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IBindStatusCallback_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IBindStatusCallback_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IBindStatusCallback_Release(p) (p)->lpVtbl->Release(p) -/*** IBindStatusCallback methods ***/ -#define IBindStatusCallback_OnStartBinding(p,a,b) (p)->lpVtbl->OnStartBinding(p,a,b) -#define IBindStatusCallback_GetPriority(p,a) (p)->lpVtbl->GetPriority(p,a) -#define IBindStatusCallback_OnLowResource(p) (p)->lpVtbl->OnLowResource(p) -#define IBindStatusCallback_OnProgress(p,a,b,c,d) (p)->lpVtbl->OnProgress(p,a,b,c,d) -#define IBindStatusCallback_OnStopBinding(p,a,b) (p)->lpVtbl->OnStopBinding(p,a,b) -#define IBindStatusCallback_GetBindInfo(p,a,b) (p)->lpVtbl->GetBindInfo(p,a,b) -#define IBindStatusCallback_OnDataAvailable(p,a,b,c,d) (p)->lpVtbl->OnDataAvailable(p,a,b,c,d) -#define IBindStatusCallback_OnObjectAvailable(p,a,b) (p)->lpVtbl->OnObjectAvailable(p,a,b) -#endif - -/***************************************************************************** - * IBindHost interface - */ -#define INTERFACE IBindHost -#define IBindHost_METHODS \ - IUnknown_METHODS \ - STDMETHOD(CreateMoniker)(THIS_ LPOLESTR szName, IBindCtx *pBC, IMoniker **ppmk, DWORD dwReserved) PURE; \ - STDMETHOD(MonikerBindToStorage)(THIS_ IMoniker *pMk, IBindCtx *pBC, IBindStatusCallback *pBSC, REFIID riid, LPVOID *ppvObj) PURE; \ - STDMETHOD(MonikerBindToObject)(THIS_ IMoniker *pMk, IBindCtx *pBC, IBindStatusCallback *pBSC, REFIID riid, LPVOID *ppvObj) PURE; -ICOM_DEFINE(IBindHost,IUnknown) -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IBindHost_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IBindHost_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IBindHost_Release(p) (p)->lpVtbl->Release(p) -/*** IBindHost methods ***/ -#define IBindHost_CreateMoniker(p,a,b,c,d) (p)->lpVtbl->CreateMoniker(p,a,b,c,d) -#define IBindHost_MonikerBindToStorage(p,a,b,c,d,e) (p)->lpVtbl->MonikerBindToStorage(p,a,b,c,d,e) -#define IBindHost_MonikerBindToObject(p,a,b,c,d,e) (p)->lpVtbl->MonikerBindToObject(p,a,b,c,d,e) -#endif - -/*** IUnknown methods ***/ -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; - -/***************************************************************************** - * IWinInetInfo interface - */ -#define INTERFACE IWinInetInfo -#define IWinInetInfo_METHODS \ - IUnknown_METHODS \ - STDMETHOD(QueryOption)(THIS_ DWORD dwOption, LPVOID pBuffer, DWORD *pcbBuf) PURE; -ICOM_DEFINE(IWinInetInfo,IUnknown) -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IWinInetInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IWinInetInfo_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IWinInetInfo_Release(p) (p)->lpVtbl->Release(p) -/*** IWinInetInfo methods ***/ -#define IWinInetInfo_QueryOption(p,a,b,c) (p)->lpVtbl->QueryOption(p,a,b,c) -#endif - -/***************************************************************************** - * IWinInetHttpInfo interface - */ -#define INTERFACE IWinInetHttpInfo -#define IWinInetHttpInfo_METHODS \ - IWinInetInfo_METHODS \ - STDMETHOD(QueryInfo)(THIS_ DWORD dwOption, LPVOID pBuffer, DWORD *pcbBuf, DWORD *pdwFlags, DWORD *pdwReserved) PURE; -ICOM_DEFINE(IWinInetHttpInfo,IWinInetInfo) -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IWinInetHttpInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IWinInetHttpInfo_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IWinInetHttpInfo_Release(p) (p)->lpVtbl->Release(p) -/*** IWinInetHttpInfo methods ***/ -#define IWinInetHttpInfo_QueryInfo(p,a,b,c,d,e) (p)->lpVtbl->QueryInfo(p,a,b,c,d,e) -#endif - -#define INTERFACE IPersistMoniker -#define IPersistMoniker_METHODS \ - IUnknown_METHODS \ - STDMETHOD(GetClassID)(THIS_ CLSID *pClassID ) PURE; \ - STDMETHOD(IsDirty)(THIS ) PURE; \ - STDMETHOD(Load)(THIS_ BOOL fFullyAvailable, IMoniker *pimkName, LPBC pibc, DWORD grfMode ) PURE; \ - STDMETHOD(Save)(THIS_ IMoniker *pinkName, LPBC pibc, BOOL fRemember ) PURE; \ - STDMETHOD(SaveCompleted)(THIS_ IMoniker *pinkName, LPBC pibc ) PURE; \ - STDMETHOD(GetCurMoniker)(THIS_ IMoniker *pinkName ) PURE; -ICOM_DEFINE(IPersistMoniker,IUnknown) -#undef INTERFACE - -#ifdef COBJMACROS -#define IPersistMoniker_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IPersistMoniker_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IPersistMoniker_Release(p) (p)->lpVtbl->Release(p) -#define IPersistMoniker_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a) -#define IPersistMoniker_IsDirty(p) (p)->lpVtbl->IsDirty(p) -#define IPersistMoniker_Load(p,a,b,c,d) (p)->lpVtbl->Load(p,a,b,c,d) -#define IPersistMoniker_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c) -#define IPersistMoniker_SaveCompleted(p,a,b) (p)->lpVtbl->SaveCompleted(p,a,b) -#define IPersistMoniker_GetCurMoniker(p,a) (p)->lpVtbl->GetCurMoniker(p,a) -#endif - -HRESULT WINAPI CreateURLMoniker(IMoniker *pmkContext, LPCWSTR szURL, IMoniker **ppmk); -HRESULT WINAPI RegisterBindStatusCallback(IBindCtx *pbc, IBindStatusCallback *pbsc, IBindStatusCallback **ppbsc, DWORD dwReserved); -HRESULT WINAPI CompareSecurityIds(BYTE*,DWORD,BYTE*,DWORD,DWORD); - -HRESULT WINAPI URLDownloadToFileA(LPUNKNOWN pCaller, LPCSTR szURL, LPCSTR szFileName, DWORD dwReserved, LPBINDSTATUSCALLBACK lpfnCB); -HRESULT WINAPI URLDownloadToFileW(LPUNKNOWN pCaller, LPCWSTR szURL, LPCWSTR szFileName, DWORD dwReserved, LPBINDSTATUSCALLBACK lpfnCB); - - -#ifdef __cplusplus -} /* extern "C" */ -#endif /* defined(__cplusplus) */ - -#endif /* __WINE_URLMON_H */ +/*** Autogenerated by WIDL 0.1 from urlmon.idl - Do not edit ***/ +#include +#include + +#ifndef __WIDL_URLMON_H +#define __WIDL_URLMON_H +#ifdef __cplusplus +extern "C" { +#endif +#include +#include +#include +#ifndef __IBinding_FWD_DEFINED__ +#define __IBinding_FWD_DEFINED__ +typedef struct IBinding IBinding; +#endif + +typedef IBinding *LPBINDING; + +/***************************************************************************** + * IBinding interface + */ +#ifndef __IBinding_INTERFACE_DEFINED__ +#define __IBinding_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IBinding, 0x79eac9c0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IBinding : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Abort( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE Suspend( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE Resume( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPriority( + LONG nPriority) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPriority( + LONG* pnPriority) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBindResult( + CLSID* pclsidProtocol, + DWORD* pdwResult, + LPOLESTR* pszResult, + DWORD* pdwReserved) = 0; + +}; +#else +typedef struct IBindingVtbl IBindingVtbl; +struct IBinding { + const IBindingVtbl* lpVtbl; +}; +struct IBindingVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBinding* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBinding* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBinding* This); + + /*** IBinding methods ***/ + HRESULT (STDMETHODCALLTYPE *Abort)( + IBinding* This); + + HRESULT (STDMETHODCALLTYPE *Suspend)( + IBinding* This); + + HRESULT (STDMETHODCALLTYPE *Resume)( + IBinding* This); + + HRESULT (STDMETHODCALLTYPE *SetPriority)( + IBinding* This, + LONG nPriority); + + HRESULT (STDMETHODCALLTYPE *GetPriority)( + IBinding* This, + LONG* pnPriority); + + HRESULT (STDMETHODCALLTYPE *GetBindResult)( + IBinding* This, + CLSID* pclsidProtocol, + DWORD* pdwResult, + LPOLESTR* pszResult, + DWORD* pdwReserved); + +}; + +/*** IUnknown methods ***/ +#define IBinding_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IBinding_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IBinding_Release(p) (p)->lpVtbl->Release(p) +/*** IBinding methods ***/ +#define IBinding_Abort(p) (p)->lpVtbl->Abort(p) +#define IBinding_Suspend(p) (p)->lpVtbl->Suspend(p) +#define IBinding_Resume(p) (p)->lpVtbl->Resume(p) +#define IBinding_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) +#define IBinding_GetPriority(p,a) (p)->lpVtbl->GetPriority(p,a) +#define IBinding_GetBindResult(p,a,b,c,d) (p)->lpVtbl->GetBindResult(p,a,b,c,d) + +#endif + +#define IBinding_METHODS \ + ICOM_MSVTABLE_COMPAT_FIELDS \ + /*** IUnknown methods ***/ \ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ + STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ + STDMETHOD_(ULONG,Release)(THIS) PURE; \ + /*** IBinding methods ***/ \ + STDMETHOD_(HRESULT,Abort)(THIS) PURE; \ + STDMETHOD_(HRESULT,Suspend)(THIS) PURE; \ + STDMETHOD_(HRESULT,Resume)(THIS) PURE; \ + STDMETHOD_(HRESULT,SetPriority)(THIS_ LONG nPriority) PURE; \ + STDMETHOD_(HRESULT,GetPriority)(THIS_ LONG* pnPriority) PURE; \ + STDMETHOD_(HRESULT,GetBindResult)(THIS_ CLSID* pclsidProtocol, DWORD* pdwResult, LPOLESTR* pszResult, DWORD* pdwReserved) PURE; + +HRESULT CALLBACK IBinding_Abort_Proxy( + IBinding* This); +void __RPC_STUB IBinding_Abort_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IBinding_Suspend_Proxy( + IBinding* This); +void __RPC_STUB IBinding_Suspend_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IBinding_Resume_Proxy( + IBinding* This); +void __RPC_STUB IBinding_Resume_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IBinding_SetPriority_Proxy( + IBinding* This, + LONG nPriority); +void __RPC_STUB IBinding_SetPriority_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IBinding_GetPriority_Proxy( + IBinding* This, + LONG* pnPriority); +void __RPC_STUB IBinding_GetPriority_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IBinding_RemoteGetBindResult_Proxy( + IBinding* This, + CLSID* pclsidProtocol, + DWORD* pdwResult, + LPOLESTR* pszResult, + DWORD dwReserved); +void __RPC_STUB IBinding_RemoteGetBindResult_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IBinding_GetBindResult_Proxy( + IBinding* This, + CLSID* pclsidProtocol, + DWORD* pdwResult, + LPOLESTR* pszResult, + DWORD* pdwReserved); +HRESULT __RPC_STUB IBinding_GetBindResult_Stub( + IBinding* This, + CLSID* pclsidProtocol, + DWORD* pdwResult, + LPOLESTR* pszResult, + DWORD dwReserved); + +#endif /* __IBinding_INTERFACE_DEFINED__ */ + +#ifndef __IBindStatusCallback_FWD_DEFINED__ +#define __IBindStatusCallback_FWD_DEFINED__ +typedef struct IBindStatusCallback IBindStatusCallback; +#endif + +typedef IBindStatusCallback *LPBINDSTATUSCALLBACK; + +typedef enum { + BINDF_ASYNCHRONOUS = 0x1, + BINDF_ASYNCSTORAGE = 0x2, + BINDF_NOPROGRESSIVERENDERING = 0x4, + BINDF_OFFLINEOPERATION = 0x8, + BINDF_GETNEWESTVERSION = 0x10, + BINDF_NOWRITECACHE = 0x20, + BINDF_NEEDFILE = 0x40, + BINDF_PULLDATA = 0x80, + BINDF_IGNORESECURITYPROBLEM = 0x100, + BINDF_RESYNCHRONIZE = 0x200, + BINDF_HYPERLINK = 0x400, + BINDF_NO_UI = 0x800, + BINDF_SILENTOPERATION = 0x1000, + BINDF_PRAGMA_NO_CACHE = 0x2000, + BINDF_GETCLASSOBJECT = 0x4000, + BINDF_RESERVED_1 = 0x8000, + BINDF_FREE_THREADED = 0x10000, + BINDF_DIRECT_READ = 0x20000, + BINDF_FORMS_SUBMIT = 0x40000, + BINDF_GETFROMCACHE_IF_NET_FAIL = 0x80000, + BINDF_FROMURLMON = 0x100000, + BINDF_FWD_BACK = 0x200000, + BINDF_PREFERDEFAULTHANDLER = 0x400000, + BINDF_ENFORCERESTRICTED = 0x800000 +} 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 = 0x1, + BSCF_INTERMEDIATEDATANOTIFICATION = 0x2, + BSCF_LASTDATANOTIFICATION = 0x4, + BSCF_DATAFULLYAVAILABLE = 0x8, + 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; + +/***************************************************************************** + * IBindStatusCallback interface + */ +#ifndef __IBindStatusCallback_INTERFACE_DEFINED__ +#define __IBindStatusCallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IBindStatusCallback, 0x79eac9c1, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IBindStatusCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE OnStartBinding( + DWORD dwReserved, + IBinding* pib) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPriority( + LONG* pnPriority) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnLowResource( + DWORD reserved) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnProgress( + ULONG ulProgress, + ULONG ulProgressMax, + ULONG ulStatusCode, + LPCWSTR szStatusText) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnStopBinding( + HRESULT hresult, + LPCWSTR szError) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBindInfo( + DWORD* grfBINDF, + BINDINFO* pbindinfo) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnDataAvailable( + DWORD grfBSCF, + DWORD dwSize, + FORMATETC* pformatetc, + STGMEDIUM* pstgmed) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnObjectAvailable( + REFIID riid, + IUnknown* punk) = 0; + +}; +#else +typedef struct IBindStatusCallbackVtbl IBindStatusCallbackVtbl; +struct IBindStatusCallback { + const IBindStatusCallbackVtbl* lpVtbl; +}; +struct IBindStatusCallbackVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBindStatusCallback* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBindStatusCallback* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBindStatusCallback* This); + + /*** IBindStatusCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *OnStartBinding)( + IBindStatusCallback* This, + DWORD dwReserved, + IBinding* pib); + + HRESULT (STDMETHODCALLTYPE *GetPriority)( + IBindStatusCallback* This, + LONG* pnPriority); + + HRESULT (STDMETHODCALLTYPE *OnLowResource)( + IBindStatusCallback* This, + DWORD reserved); + + HRESULT (STDMETHODCALLTYPE *OnProgress)( + IBindStatusCallback* This, + ULONG ulProgress, + ULONG ulProgressMax, + ULONG ulStatusCode, + LPCWSTR szStatusText); + + HRESULT (STDMETHODCALLTYPE *OnStopBinding)( + IBindStatusCallback* This, + HRESULT hresult, + LPCWSTR szError); + + HRESULT (STDMETHODCALLTYPE *GetBindInfo)( + IBindStatusCallback* This, + DWORD* grfBINDF, + BINDINFO* pbindinfo); + + HRESULT (STDMETHODCALLTYPE *OnDataAvailable)( + IBindStatusCallback* This, + DWORD grfBSCF, + DWORD dwSize, + FORMATETC* pformatetc, + STGMEDIUM* pstgmed); + + HRESULT (STDMETHODCALLTYPE *OnObjectAvailable)( + IBindStatusCallback* This, + REFIID riid, + IUnknown* punk); + +}; + +/*** IUnknown methods ***/ +#define IBindStatusCallback_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IBindStatusCallback_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IBindStatusCallback_Release(p) (p)->lpVtbl->Release(p) +/*** IBindStatusCallback methods ***/ +#define IBindStatusCallback_OnStartBinding(p,a,b) (p)->lpVtbl->OnStartBinding(p,a,b) +#define IBindStatusCallback_GetPriority(p,a) (p)->lpVtbl->GetPriority(p,a) +#define IBindStatusCallback_OnLowResource(p,a) (p)->lpVtbl->OnLowResource(p,a) +#define IBindStatusCallback_OnProgress(p,a,b,c,d) (p)->lpVtbl->OnProgress(p,a,b,c,d) +#define IBindStatusCallback_OnStopBinding(p,a,b) (p)->lpVtbl->OnStopBinding(p,a,b) +#define IBindStatusCallback_GetBindInfo(p,a,b) (p)->lpVtbl->GetBindInfo(p,a,b) +#define IBindStatusCallback_OnDataAvailable(p,a,b,c,d) (p)->lpVtbl->OnDataAvailable(p,a,b,c,d) +#define IBindStatusCallback_OnObjectAvailable(p,a,b) (p)->lpVtbl->OnObjectAvailable(p,a,b) + +#endif + +#define IBindStatusCallback_METHODS \ + ICOM_MSVTABLE_COMPAT_FIELDS \ + /*** IUnknown methods ***/ \ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ + STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ + STDMETHOD_(ULONG,Release)(THIS) PURE; \ + /*** IBindStatusCallback methods ***/ \ + STDMETHOD_(HRESULT,OnStartBinding)(THIS_ DWORD dwReserved, IBinding* pib) PURE; \ + STDMETHOD_(HRESULT,GetPriority)(THIS_ LONG* pnPriority) PURE; \ + STDMETHOD_(HRESULT,OnLowResource)(THIS_ DWORD reserved) PURE; \ + STDMETHOD_(HRESULT,OnProgress)(THIS_ ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText) PURE; \ + STDMETHOD_(HRESULT,OnStopBinding)(THIS_ HRESULT hresult, LPCWSTR szError) PURE; \ + STDMETHOD_(HRESULT,GetBindInfo)(THIS_ DWORD* grfBINDF, BINDINFO* pbindinfo) PURE; \ + STDMETHOD_(HRESULT,OnDataAvailable)(THIS_ DWORD grfBSCF, DWORD dwSize, FORMATETC* pformatetc, STGMEDIUM* pstgmed) PURE; \ + STDMETHOD_(HRESULT,OnObjectAvailable)(THIS_ REFIID riid, IUnknown* punk) PURE; + +HRESULT CALLBACK IBindStatusCallback_OnStartBinding_Proxy( + IBindStatusCallback* This, + DWORD dwReserved, + IBinding* pib); +void __RPC_STUB IBindStatusCallback_OnStartBinding_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IBindStatusCallback_GetPriority_Proxy( + IBindStatusCallback* This, + LONG* pnPriority); +void __RPC_STUB IBindStatusCallback_GetPriority_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IBindStatusCallback_OnLowResource_Proxy( + IBindStatusCallback* This, + DWORD reserved); +void __RPC_STUB IBindStatusCallback_OnLowResource_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IBindStatusCallback_OnProgress_Proxy( + IBindStatusCallback* This, + ULONG ulProgress, + ULONG ulProgressMax, + ULONG ulStatusCode, + LPCWSTR szStatusText); +void __RPC_STUB IBindStatusCallback_OnProgress_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IBindStatusCallback_OnStopBinding_Proxy( + IBindStatusCallback* This, + HRESULT hresult, + LPCWSTR szError); +void __RPC_STUB IBindStatusCallback_OnStopBinding_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IBindStatusCallback_RemoteGetBindInfo_Proxy( + IBindStatusCallback* This, + DWORD* grfBINDF, + RemBINDINFO* pbindinfo, + RemSTGMEDIUM* pstgmed); +void __RPC_STUB IBindStatusCallback_RemoteGetBindInfo_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IBindStatusCallback_GetBindInfo_Proxy( + IBindStatusCallback* This, + DWORD* grfBINDF, + BINDINFO* pbindinfo); +HRESULT __RPC_STUB IBindStatusCallback_GetBindInfo_Stub( + IBindStatusCallback* This, + DWORD* grfBINDF, + RemBINDINFO* pbindinfo, + RemSTGMEDIUM* pstgmed); +HRESULT CALLBACK IBindStatusCallback_RemoteOnDataAvailable_Proxy( + IBindStatusCallback* This, + DWORD grfBSCF, + DWORD dwSize, + RemFORMATETC* pformatetc, + RemSTGMEDIUM* pstgmed); +void __RPC_STUB IBindStatusCallback_RemoteOnDataAvailable_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IBindStatusCallback_OnDataAvailable_Proxy( + IBindStatusCallback* This, + DWORD grfBSCF, + DWORD dwSize, + FORMATETC* pformatetc, + STGMEDIUM* pstgmed); +HRESULT __RPC_STUB IBindStatusCallback_OnDataAvailable_Stub( + IBindStatusCallback* This, + DWORD grfBSCF, + DWORD dwSize, + RemFORMATETC* pformatetc, + RemSTGMEDIUM* pstgmed); +HRESULT CALLBACK IBindStatusCallback_OnObjectAvailable_Proxy( + IBindStatusCallback* This, + REFIID riid, + IUnknown* punk); +void __RPC_STUB IBindStatusCallback_OnObjectAvailable_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IBindStatusCallback_INTERFACE_DEFINED__ */ + +#ifndef __IBindHost_FWD_DEFINED__ +#define __IBindHost_FWD_DEFINED__ +typedef struct IBindHost IBindHost; +#endif + +typedef IBindHost *LPBINDHOST; + +/***************************************************************************** + * IBindHost interface + */ +#ifndef __IBindHost_INTERFACE_DEFINED__ +#define __IBindHost_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IBindHost, 0xfc4801a1, 0x2ba9, 0x11cf, 0xa2,0x29, 0x00,0xaa,0x00,0x3d,0x73,0x52); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IBindHost : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE CreateMoniker( + LPOLESTR szName, + IBindCtx* pBC, + IMoniker** ppmk, + DWORD dwReserved) = 0; + + virtual HRESULT STDMETHODCALLTYPE MonikerBindToStorage( + IMoniker* pMk, + IBindCtx* pBC, + IBindStatusCallback* pBSC, + REFIID riid, + void** ppvObj) = 0; + + virtual HRESULT STDMETHODCALLTYPE MonikerBindToObject( + IMoniker* pMk, + IBindCtx* pBC, + IBindStatusCallback* pBSC, + REFIID riid, + void** ppvObj) = 0; + +}; +#else +typedef struct IBindHostVtbl IBindHostVtbl; +struct IBindHost { + const IBindHostVtbl* lpVtbl; +}; +struct IBindHostVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBindHost* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBindHost* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBindHost* This); + + /*** IBindHost methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateMoniker)( + IBindHost* This, + LPOLESTR szName, + IBindCtx* pBC, + IMoniker** ppmk, + DWORD dwReserved); + + HRESULT (STDMETHODCALLTYPE *MonikerBindToStorage)( + IBindHost* This, + IMoniker* pMk, + IBindCtx* pBC, + IBindStatusCallback* pBSC, + REFIID riid, + void** ppvObj); + + HRESULT (STDMETHODCALLTYPE *MonikerBindToObject)( + IBindHost* This, + IMoniker* pMk, + IBindCtx* pBC, + IBindStatusCallback* pBSC, + REFIID riid, + void** ppvObj); + +}; + +/*** IUnknown methods ***/ +#define IBindHost_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IBindHost_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IBindHost_Release(p) (p)->lpVtbl->Release(p) +/*** IBindHost methods ***/ +#define IBindHost_CreateMoniker(p,a,b,c,d) (p)->lpVtbl->CreateMoniker(p,a,b,c,d) +#define IBindHost_MonikerBindToStorage(p,a,b,c,d,e) (p)->lpVtbl->MonikerBindToStorage(p,a,b,c,d,e) +#define IBindHost_MonikerBindToObject(p,a,b,c,d,e) (p)->lpVtbl->MonikerBindToObject(p,a,b,c,d,e) + +#endif + +#define IBindHost_METHODS \ + ICOM_MSVTABLE_COMPAT_FIELDS \ + /*** IUnknown methods ***/ \ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ + STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ + STDMETHOD_(ULONG,Release)(THIS) PURE; \ + /*** IBindHost methods ***/ \ + STDMETHOD_(HRESULT,CreateMoniker)(THIS_ LPOLESTR szName, IBindCtx* pBC, IMoniker** ppmk, DWORD dwReserved) PURE; \ + STDMETHOD_(HRESULT,MonikerBindToStorage)(THIS_ IMoniker* pMk, IBindCtx* pBC, IBindStatusCallback* pBSC, REFIID riid, void** ppvObj) PURE; \ + STDMETHOD_(HRESULT,MonikerBindToObject)(THIS_ IMoniker* pMk, IBindCtx* pBC, IBindStatusCallback* pBSC, REFIID riid, void** ppvObj) PURE; + +HRESULT CALLBACK IBindHost_CreateMoniker_Proxy( + IBindHost* This, + LPOLESTR szName, + IBindCtx* pBC, + IMoniker** ppmk, + DWORD dwReserved); +void __RPC_STUB IBindHost_CreateMoniker_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IBindHost_RemoteMonikerBindToStorage_Proxy( + IBindHost* This, + IMoniker* pMk, + IBindCtx* pBC, + IBindStatusCallback* pBSC, + REFIID riid, + IUnknown** ppvObj); +void __RPC_STUB IBindHost_RemoteMonikerBindToStorage_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IBindHost_MonikerBindToStorage_Proxy( + IBindHost* This, + IMoniker* pMk, + IBindCtx* pBC, + IBindStatusCallback* pBSC, + REFIID riid, + void** ppvObj); +HRESULT __RPC_STUB IBindHost_MonikerBindToStorage_Stub( + IBindHost* This, + IMoniker* pMk, + IBindCtx* pBC, + IBindStatusCallback* pBSC, + REFIID riid, + IUnknown** ppvObj); +HRESULT CALLBACK IBindHost_RemoteMonikerBindToObject_Proxy( + IBindHost* This, + IMoniker* pMk, + IBindCtx* pBC, + IBindStatusCallback* pBSC, + REFIID riid, + IUnknown** ppvObj); +void __RPC_STUB IBindHost_RemoteMonikerBindToObject_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IBindHost_MonikerBindToObject_Proxy( + IBindHost* This, + IMoniker* pMk, + IBindCtx* pBC, + IBindStatusCallback* pBSC, + REFIID riid, + void** ppvObj); +HRESULT __RPC_STUB IBindHost_MonikerBindToObject_Stub( + IBindHost* This, + IMoniker* pMk, + IBindCtx* pBC, + IBindStatusCallback* pBSC, + REFIID riid, + IUnknown** ppvObj); + +#endif /* __IBindHost_INTERFACE_DEFINED__ */ + +#ifndef __IWinInetInfo_FWD_DEFINED__ +#define __IWinInetInfo_FWD_DEFINED__ +typedef struct IWinInetInfo IWinInetInfo; +#endif + +typedef IWinInetInfo *LPWININETINFO; + +/***************************************************************************** + * IWinInetInfo interface + */ +#ifndef __IWinInetInfo_INTERFACE_DEFINED__ +#define __IWinInetInfo_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWinInetInfo, 0x79eac9d6, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IWinInetInfo : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE QueryOption( + DWORD dwOption, + LPVOID pBuffer, + DWORD* pcbBuf) = 0; + +}; +#else +typedef struct IWinInetInfoVtbl IWinInetInfoVtbl; +struct IWinInetInfo { + const IWinInetInfoVtbl* lpVtbl; +}; +struct IWinInetInfoVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWinInetInfo* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWinInetInfo* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWinInetInfo* This); + + /*** IWinInetInfo methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryOption)( + IWinInetInfo* This, + DWORD dwOption, + LPVOID pBuffer, + DWORD* pcbBuf); + +}; + +/*** IUnknown methods ***/ +#define IWinInetInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IWinInetInfo_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IWinInetInfo_Release(p) (p)->lpVtbl->Release(p) +/*** IWinInetInfo methods ***/ +#define IWinInetInfo_QueryOption(p,a,b,c) (p)->lpVtbl->QueryOption(p,a,b,c) + +#endif + +#define IWinInetInfo_METHODS \ + ICOM_MSVTABLE_COMPAT_FIELDS \ + /*** IUnknown methods ***/ \ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ + STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ + STDMETHOD_(ULONG,Release)(THIS) PURE; \ + /*** IWinInetInfo methods ***/ \ + STDMETHOD_(HRESULT,QueryOption)(THIS_ DWORD dwOption, LPVOID pBuffer, DWORD* pcbBuf) PURE; + +HRESULT CALLBACK IWinInetInfo_RemoteQueryOption_Proxy( + IWinInetInfo* This, + DWORD dwOption, + BYTE* pBuffer, + DWORD* pcbBuf); +void __RPC_STUB IWinInetInfo_RemoteQueryOption_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IWinInetInfo_QueryOption_Proxy( + IWinInetInfo* This, + DWORD dwOption, + LPVOID pBuffer, + DWORD* pcbBuf); +HRESULT __RPC_STUB IWinInetInfo_QueryOption_Stub( + IWinInetInfo* This, + DWORD dwOption, + BYTE* pBuffer, + DWORD* pcbBuf); + +#endif /* __IWinInetInfo_INTERFACE_DEFINED__ */ + +#ifndef __IWinInetHttpInfo_FWD_DEFINED__ +#define __IWinInetHttpInfo_FWD_DEFINED__ +typedef struct IWinInetHttpInfo IWinInetHttpInfo; +#endif + +typedef IWinInetHttpInfo *LPWININETHTTPINFO; + +/***************************************************************************** + * IWinInetHttpInfo interface + */ +#ifndef __IWinInetHttpInfo_INTERFACE_DEFINED__ +#define __IWinInetHttpInfo_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWinInetHttpInfo, 0x79eac9d8, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IWinInetHttpInfo : public IWinInetInfo +{ + virtual HRESULT STDMETHODCALLTYPE QueryInfo( + DWORD dwOption, + LPVOID pBuffer, + DWORD* pcbBuf, + DWORD* pdwFlags, + DWORD* pdwReserved) = 0; + +}; +#else +typedef struct IWinInetHttpInfoVtbl IWinInetHttpInfoVtbl; +struct IWinInetHttpInfo { + const IWinInetHttpInfoVtbl* lpVtbl; +}; +struct IWinInetHttpInfoVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWinInetHttpInfo* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWinInetHttpInfo* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWinInetHttpInfo* This); + + /*** IWinInetInfo methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryOption)( + IWinInetHttpInfo* This, + DWORD dwOption, + LPVOID pBuffer, + DWORD* pcbBuf); + + /*** IWinInetHttpInfo methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInfo)( + IWinInetHttpInfo* This, + DWORD dwOption, + LPVOID pBuffer, + DWORD* pcbBuf, + DWORD* pdwFlags, + DWORD* pdwReserved); + +}; + +/*** IUnknown methods ***/ +#define IWinInetHttpInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IWinInetHttpInfo_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IWinInetHttpInfo_Release(p) (p)->lpVtbl->Release(p) +/*** IWinInetInfo methods ***/ +#define IWinInetHttpInfo_QueryOption(p,a,b,c) (p)->lpVtbl->QueryOption(p,a,b,c) +/*** IWinInetHttpInfo methods ***/ +#define IWinInetHttpInfo_QueryInfo(p,a,b,c,d,e) (p)->lpVtbl->QueryInfo(p,a,b,c,d,e) + +#endif + +#define IWinInetHttpInfo_METHODS \ + ICOM_MSVTABLE_COMPAT_FIELDS \ + /*** IUnknown methods ***/ \ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ + STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ + STDMETHOD_(ULONG,Release)(THIS) PURE; \ + /*** IWinInetInfo methods ***/ \ + STDMETHOD_(HRESULT,QueryOption)(THIS_ DWORD dwOption, LPVOID pBuffer, DWORD* pcbBuf) PURE; \ + /*** IWinInetHttpInfo methods ***/ \ + STDMETHOD_(HRESULT,QueryInfo)(THIS_ DWORD dwOption, LPVOID pBuffer, DWORD* pcbBuf, DWORD* pdwFlags, DWORD* pdwReserved) PURE; + +HRESULT CALLBACK IWinInetHttpInfo_RemoteQueryInfo_Proxy( + IWinInetHttpInfo* This, + DWORD dwOption, + BYTE* pBuffer, + DWORD* pcbBuf, + DWORD* pdwFlags, + DWORD* pdwReserved); +void __RPC_STUB IWinInetHttpInfo_RemoteQueryInfo_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IWinInetHttpInfo_QueryInfo_Proxy( + IWinInetHttpInfo* This, + DWORD dwOption, + LPVOID pBuffer, + DWORD* pcbBuf, + DWORD* pdwFlags, + DWORD* pdwReserved); +HRESULT __RPC_STUB IWinInetHttpInfo_QueryInfo_Stub( + IWinInetHttpInfo* This, + DWORD dwOption, + BYTE* pBuffer, + DWORD* pcbBuf, + DWORD* pdwFlags, + DWORD* pdwReserved); + +#endif /* __IWinInetHttpInfo_INTERFACE_DEFINED__ */ + +#ifndef __IPersistMoniker_FWD_DEFINED__ +#define __IPersistMoniker_FWD_DEFINED__ +typedef struct IPersistMoniker IPersistMoniker; +#endif + +typedef IPersistMoniker *LPPERSISTMONIKER; + +/***************************************************************************** + * IPersistMoniker interface + */ +#ifndef __IPersistMoniker_INTERFACE_DEFINED__ +#define __IPersistMoniker_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IPersistMoniker, 0x79eac9c9, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IPersistMoniker : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetClassID( + CLSID* pClassID) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsDirty( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE Load( + BOOL fFullyAvailable, + IMoniker* pimkName, + LPBC pibc, + DWORD grfMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE Save( + IMoniker* pimkName, + LPBC pbc, + BOOL fRemember) = 0; + + virtual HRESULT STDMETHODCALLTYPE SaveCompleted( + IMoniker* pimkName, + LPBC pibc) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurMoniker( + IMoniker** ppimkName) = 0; + +}; +#else +typedef struct IPersistMonikerVtbl IPersistMonikerVtbl; +struct IPersistMoniker { + const IPersistMonikerVtbl* lpVtbl; +}; +struct IPersistMonikerVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IPersistMoniker* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IPersistMoniker* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IPersistMoniker* This); + + /*** IPersistMoniker methods ***/ + HRESULT (STDMETHODCALLTYPE *GetClassID)( + IPersistMoniker* This, + CLSID* pClassID); + + HRESULT (STDMETHODCALLTYPE *IsDirty)( + IPersistMoniker* This); + + HRESULT (STDMETHODCALLTYPE *Load)( + IPersistMoniker* This, + BOOL fFullyAvailable, + IMoniker* pimkName, + LPBC pibc, + DWORD grfMode); + + HRESULT (STDMETHODCALLTYPE *Save)( + IPersistMoniker* This, + IMoniker* pimkName, + LPBC pbc, + BOOL fRemember); + + HRESULT (STDMETHODCALLTYPE *SaveCompleted)( + IPersistMoniker* This, + IMoniker* pimkName, + LPBC pibc); + + HRESULT (STDMETHODCALLTYPE *GetCurMoniker)( + IPersistMoniker* This, + IMoniker** ppimkName); + +}; + +/*** IUnknown methods ***/ +#define IPersistMoniker_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IPersistMoniker_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IPersistMoniker_Release(p) (p)->lpVtbl->Release(p) +/*** IPersistMoniker methods ***/ +#define IPersistMoniker_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a) +#define IPersistMoniker_IsDirty(p) (p)->lpVtbl->IsDirty(p) +#define IPersistMoniker_Load(p,a,b,c,d) (p)->lpVtbl->Load(p,a,b,c,d) +#define IPersistMoniker_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c) +#define IPersistMoniker_SaveCompleted(p,a,b) (p)->lpVtbl->SaveCompleted(p,a,b) +#define IPersistMoniker_GetCurMoniker(p,a) (p)->lpVtbl->GetCurMoniker(p,a) + +#endif + +#define IPersistMoniker_METHODS \ + ICOM_MSVTABLE_COMPAT_FIELDS \ + /*** IUnknown methods ***/ \ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ + STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ + STDMETHOD_(ULONG,Release)(THIS) PURE; \ + /*** IPersistMoniker methods ***/ \ + STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \ + STDMETHOD_(HRESULT,IsDirty)(THIS) PURE; \ + STDMETHOD_(HRESULT,Load)(THIS_ BOOL fFullyAvailable, IMoniker* pimkName, LPBC pibc, DWORD grfMode) PURE; \ + STDMETHOD_(HRESULT,Save)(THIS_ IMoniker* pimkName, LPBC pbc, BOOL fRemember) PURE; \ + STDMETHOD_(HRESULT,SaveCompleted)(THIS_ IMoniker* pimkName, LPBC pibc) PURE; \ + STDMETHOD_(HRESULT,GetCurMoniker)(THIS_ IMoniker** ppimkName) PURE; + +HRESULT CALLBACK IPersistMoniker_GetClassID_Proxy( + IPersistMoniker* This, + CLSID* pClassID); +void __RPC_STUB IPersistMoniker_GetClassID_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IPersistMoniker_IsDirty_Proxy( + IPersistMoniker* This); +void __RPC_STUB IPersistMoniker_IsDirty_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IPersistMoniker_Load_Proxy( + IPersistMoniker* This, + BOOL fFullyAvailable, + IMoniker* pimkName, + LPBC pibc, + DWORD grfMode); +void __RPC_STUB IPersistMoniker_Load_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IPersistMoniker_Save_Proxy( + IPersistMoniker* This, + IMoniker* pimkName, + LPBC pbc, + BOOL fRemember); +void __RPC_STUB IPersistMoniker_Save_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IPersistMoniker_SaveCompleted_Proxy( + IPersistMoniker* This, + IMoniker* pimkName, + LPBC pibc); +void __RPC_STUB IPersistMoniker_SaveCompleted_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IPersistMoniker_GetCurMoniker_Proxy( + IPersistMoniker* This, + IMoniker** ppimkName); +void __RPC_STUB IPersistMoniker_GetCurMoniker_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IPersistMoniker_INTERFACE_DEFINED__ */ + +#ifndef __IInternetProtocolInfo_FWD_DEFINED__ +#define __IInternetProtocolInfo_FWD_DEFINED__ +typedef struct IInternetProtocolInfo IInternetProtocolInfo; +#endif + +typedef 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; + +/***************************************************************************** + * IInternetProtocolInfo interface + */ +#ifndef __IInternetProtocolInfo_INTERFACE_DEFINED__ +#define __IInternetProtocolInfo_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IInternetProtocolInfo, 0x79eac9ec, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IInternetProtocolInfo : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE ParseUrl( + LPCWSTR pwzUrl, + PARSEACTION ParseAction, + DWORD dwParseFlags, + LPWSTR pwzResult, + DWORD cchResult, + DWORD* pcchResult, + DWORD dwReserved) = 0; + + virtual HRESULT STDMETHODCALLTYPE CombineUrl( + LPCWSTR pwzBaseUrl, + LPCWSTR pwzRelativeUrl, + DWORD dwCombineFlags, + LPWSTR pwzResult, + DWORD cchResult, + DWORD* pcchResult, + DWORD dwReserved) = 0; + + virtual HRESULT STDMETHODCALLTYPE CompareUrl( + LPCWSTR pwzUrl1, + LPCWSTR pwzUrl2, + DWORD dwCompareFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE QueryInfo( + LPCWSTR pwzUrl, + QUERYOPTION OueryOption, + DWORD dwQueryFlags, + LPVOID pBuffer, + DWORD cbBuffer, + DWORD* pcbBuf, + DWORD dwReserved) = 0; + +}; +#else +typedef struct IInternetProtocolInfoVtbl IInternetProtocolInfoVtbl; +struct IInternetProtocolInfo { + const IInternetProtocolInfoVtbl* lpVtbl; +}; +struct IInternetProtocolInfoVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IInternetProtocolInfo* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IInternetProtocolInfo* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IInternetProtocolInfo* This); + + /*** IInternetProtocolInfo methods ***/ + HRESULT (STDMETHODCALLTYPE *ParseUrl)( + IInternetProtocolInfo* This, + LPCWSTR pwzUrl, + PARSEACTION ParseAction, + DWORD dwParseFlags, + LPWSTR pwzResult, + DWORD cchResult, + DWORD* pcchResult, + DWORD dwReserved); + + HRESULT (STDMETHODCALLTYPE *CombineUrl)( + IInternetProtocolInfo* This, + LPCWSTR pwzBaseUrl, + LPCWSTR pwzRelativeUrl, + DWORD dwCombineFlags, + LPWSTR pwzResult, + DWORD cchResult, + DWORD* pcchResult, + DWORD dwReserved); + + HRESULT (STDMETHODCALLTYPE *CompareUrl)( + IInternetProtocolInfo* This, + LPCWSTR pwzUrl1, + LPCWSTR pwzUrl2, + DWORD dwCompareFlags); + + HRESULT (STDMETHODCALLTYPE *QueryInfo)( + IInternetProtocolInfo* This, + LPCWSTR pwzUrl, + QUERYOPTION OueryOption, + DWORD dwQueryFlags, + LPVOID pBuffer, + DWORD cbBuffer, + DWORD* pcbBuf, + DWORD dwReserved); + +}; + +/*** IUnknown methods ***/ +#define IInternetProtocolInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IInternetProtocolInfo_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IInternetProtocolInfo_Release(p) (p)->lpVtbl->Release(p) +/*** IInternetProtocolInfo methods ***/ +#define IInternetProtocolInfo_ParseUrl(p,a,b,c,d,e,f,g) (p)->lpVtbl->ParseUrl(p,a,b,c,d,e,f,g) +#define IInternetProtocolInfo_CombineUrl(p,a,b,c,d,e,f,g) (p)->lpVtbl->CombineUrl(p,a,b,c,d,e,f,g) +#define IInternetProtocolInfo_CompareUrl(p,a,b,c) (p)->lpVtbl->CompareUrl(p,a,b,c) +#define IInternetProtocolInfo_QueryInfo(p,a,b,c,d,e,f,g) (p)->lpVtbl->QueryInfo(p,a,b,c,d,e,f,g) + +#endif + +#define IInternetProtocolInfo_METHODS \ + ICOM_MSVTABLE_COMPAT_FIELDS \ + /*** IUnknown methods ***/ \ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ + STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ + STDMETHOD_(ULONG,Release)(THIS) PURE; \ + /*** IInternetProtocolInfo methods ***/ \ + STDMETHOD_(HRESULT,ParseUrl)(THIS_ LPCWSTR pwzUrl, PARSEACTION ParseAction, DWORD dwParseFlags, LPWSTR pwzResult, DWORD cchResult, DWORD* pcchResult, DWORD dwReserved) PURE; \ + STDMETHOD_(HRESULT,CombineUrl)(THIS_ LPCWSTR pwzBaseUrl, LPCWSTR pwzRelativeUrl, DWORD dwCombineFlags, LPWSTR pwzResult, DWORD cchResult, DWORD* pcchResult, DWORD dwReserved) PURE; \ + STDMETHOD_(HRESULT,CompareUrl)(THIS_ LPCWSTR pwzUrl1, LPCWSTR pwzUrl2, DWORD dwCompareFlags) PURE; \ + STDMETHOD_(HRESULT,QueryInfo)(THIS_ LPCWSTR pwzUrl, QUERYOPTION OueryOption, DWORD dwQueryFlags, LPVOID pBuffer, DWORD cbBuffer, DWORD* pcbBuf, DWORD dwReserved) PURE; + +HRESULT CALLBACK IInternetProtocolInfo_ParseUrl_Proxy( + IInternetProtocolInfo* This, + LPCWSTR pwzUrl, + PARSEACTION ParseAction, + DWORD dwParseFlags, + LPWSTR pwzResult, + DWORD cchResult, + DWORD* pcchResult, + DWORD dwReserved); +void __RPC_STUB IInternetProtocolInfo_ParseUrl_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IInternetProtocolInfo_CombineUrl_Proxy( + IInternetProtocolInfo* This, + LPCWSTR pwzBaseUrl, + LPCWSTR pwzRelativeUrl, + DWORD dwCombineFlags, + LPWSTR pwzResult, + DWORD cchResult, + DWORD* pcchResult, + DWORD dwReserved); +void __RPC_STUB IInternetProtocolInfo_CombineUrl_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IInternetProtocolInfo_CompareUrl_Proxy( + IInternetProtocolInfo* This, + LPCWSTR pwzUrl1, + LPCWSTR pwzUrl2, + DWORD dwCompareFlags); +void __RPC_STUB IInternetProtocolInfo_CompareUrl_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IInternetProtocolInfo_QueryInfo_Proxy( + IInternetProtocolInfo* This, + LPCWSTR pwzUrl, + QUERYOPTION OueryOption, + DWORD dwQueryFlags, + LPVOID pBuffer, + DWORD cbBuffer, + DWORD* pcbBuf, + DWORD dwReserved); +void __RPC_STUB IInternetProtocolInfo_QueryInfo_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IInternetProtocolInfo_INTERFACE_DEFINED__ */ + +#define MK_S_ASYNCHRONOUS 0x000401E8 +#define S_ASYNCHRONOUS MK_S_ASYNCHRONOUS +#define INET_E_ERROR_FIRST 0x800C0002L +#define INET_E_INVALID_URL 0x800C0002L +#define INET_E_NO_SESSION 0x800C0003L +#define INET_E_CANNOT_CONNECT 0x800C0004L +#define INET_E_RESOURCE_NOT_FOUND 0x800C0005L +#define INET_E_OBJECT_NOT_FOUND 0x800C0006L +#define INET_E_DATA_NOT_AVAILABLE 0x800C0007L +#define INET_E_DOWNLOAD_FAILURE 0x800C0008L +#define INET_E_AUTHENTICATION_REQUIRED 0x800C0009L +#define INET_E_NO_VALID_MEDIA 0x800C000AL +#define INET_E_CONNECTION_TIMEOUT 0x800C000BL +#define INET_E_INVALID_REQUEST 0x800C000CL +#define INET_E_UNKNOWN_PROTOCOL 0x800C000DL +#define INET_E_SECURITY_PROBLEM 0x800C000EL +#define INET_E_CANNOT_LOAD_DATA 0x800C000FL +#define INET_E_CANNOT_INSTANTIATE_OBJECT 0x800C0010L +#define INET_E_QUERYOPTION_UNKNOWN 0x800C0013L +#define INET_E_REDIRECT_FAILED 0x800C0014L +#define INET_E_REDIRECT_TO_DIR 0x800C0015L +#define INET_E_CANNOT_LOCK_REQUEST 0x800C0016L +#define INET_E_ERROR_LAST INET_E_REDIRECT_TO_DIR +HRESULT WINAPI CreateURLMoniker(IMoniker *pmkContext, LPCWSTR szURL, IMoniker **ppmk); +HRESULT WINAPI RegisterBindStatusCallback(IBindCtx *pbc, IBindStatusCallback *pbsc, IBindStatusCallback **ppbsc, DWORD dwReserved); +HRESULT WINAPI CompareSecurityIds(BYTE*,DWORD,BYTE*,DWORD,DWORD); +HRESULT WINAPI URLDownloadToFileA(LPUNKNOWN pCaller, LPCSTR szURL, LPCSTR szFileName, DWORD dwReserved, LPBINDSTATUSCALLBACK lpfnCB); +HRESULT WINAPI URLDownloadToFileW(LPUNKNOWN pCaller, LPCWSTR szURL, LPCWSTR szFileName, DWORD dwReserved, LPBINDSTATUSCALLBACK lpfnCB); +#ifdef __cplusplus +} +#endif +#endif /* __WIDL_URLMON_H */ diff --git a/include/urlmon.idl b/include/urlmon.idl new file mode 100644 index 00000000000..e89f800ef7f --- /dev/null +++ b/include/urlmon.idl @@ -0,0 +1,539 @@ +/* + * 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";*/ + + +/***************************************************************************** + * 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 + { + 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); +} + + +/***************************************************************************** + * IBindHost interface + */ +[ + 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); +} + + +/***************************************************************************** + * 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); +} + + +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);") diff --git a/include/wtypes.h b/include/wtypes.h index 3d79234967a..ae79eff8462 100644 --- a/include/wtypes.h +++ b/include/wtypes.h @@ -131,6 +131,12 @@ typedef struct _SECURITY_DESCRIPTOR { PACL Dacl; } SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR; +typedef struct _SECURITY_ATTRIBUTES { + DWORD nLength; + LPVOID lpSecurityDescriptor; + BOOL bInheritHandle; +} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES; + typedef struct tagSIZE { LONG cx; LONG cy; diff --git a/include/wtypes.idl b/include/wtypes.idl index 9bf5bacaf05..5a05e5a4bb2 100644 --- a/include/wtypes.idl +++ b/include/wtypes.idl @@ -126,6 +126,13 @@ typedef struct _SECURITY_DESCRIPTOR { PACL Dacl; } SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR; +typedef struct _SECURITY_ATTRIBUTES +{ + DWORD nLength; + LPVOID lpSecurityDescriptor; + BOOL bInheritHandle; +} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES; + typedef struct tagSIZE { LONG cx; -- 2.11.4.GIT