mirror of https://github.com/UMSKT/xpmgr.git
4272 lines
175 KiB
Plaintext
4272 lines
175 KiB
Plaintext
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//
|
|
// File: urlmon.idl
|
|
//
|
|
// Contents: async moniker interfaces
|
|
//
|
|
// Classes:
|
|
//
|
|
// Functions:
|
|
//
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("//=--------------------------------------------------------------------------=")
|
|
cpp_quote("// UrlMon.h")
|
|
cpp_quote("//=--------------------------------------------------------------------------=")
|
|
cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.")
|
|
cpp_quote("//")
|
|
cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF")
|
|
cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO")
|
|
cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A")
|
|
cpp_quote("// PARTICULAR PURPOSE.")
|
|
cpp_quote("//=--------------------------------------------------------------------------=")
|
|
cpp_quote("")
|
|
cpp_quote("#pragma comment(lib,\"uuid.lib\")")
|
|
cpp_quote("")
|
|
cpp_quote("//---------------------------------------------------------------------------=")
|
|
cpp_quote("// URL Moniker Interfaces.")
|
|
cpp_quote("")
|
|
|
|
#ifdef UNIX
|
|
typedef unsigned long HANDLE_PTR;
|
|
#endif /* UNIX */
|
|
|
|
import "objidl.idl";
|
|
import "oleidl.idl";
|
|
import "servprov.idl";
|
|
import "msxml.idl";
|
|
|
|
interface IPersistMoniker;
|
|
interface IBindProtocol;
|
|
interface IBinding;
|
|
interface IBindStatusCallback;
|
|
interface IBindStatusCallbackEx;
|
|
interface IBindStatusCallbackMsg;
|
|
interface IAuthenticate;
|
|
interface IAuthenticateEx;
|
|
interface IWindowForBindingUI;
|
|
interface ICodeInstall;
|
|
interface IHttpNegotiate;
|
|
interface IHttpNegotiate2;
|
|
interface IHttpNegotiate3;
|
|
interface IWinInetFileStream;
|
|
|
|
cpp_quote("// Side-by-Side clsid")
|
|
cpp_quote("EXTERN_C const IID CLSID_SBS_StdURLMoniker; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_SBS_HttpProtocol; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_SBS_FtpProtocol; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_SBS_GopherProtocol; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_SBS_HttpSProtocol; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_SBS_FileProtocol; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_SBS_MkProtocol; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_SBS_UrlMkBindCtx; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_SBS_SoftDistExt; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_SBS_StdEncodingFilterFac; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_SBS_DeCompMimeFilter; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_SBS_CdlProtocol; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_SBS_ClassInstallFilter; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_SBS_InternetSecurityManager; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_SBS_InternetZoneManager; ")
|
|
cpp_quote("// END Side-by-Side clsid")
|
|
|
|
|
|
cpp_quote("// These are for backwards compatibility with previous URLMON versions")
|
|
cpp_quote("#define BINDF_DONTUSECACHE BINDF_GETNEWESTVERSION")
|
|
cpp_quote("#define BINDF_DONTPUTINCACHE BINDF_NOWRITECACHE")
|
|
cpp_quote("#define BINDF_NOCOPYDATA BINDF_PULLDATA")
|
|
cpp_quote("#define INVALID_P_ROOT_SECURITY_ID ((BYTE*)-1)")
|
|
|
|
cpp_quote("#define PI_DOCFILECLSIDLOOKUP PI_CLSIDLOOKUP")
|
|
|
|
cpp_quote("EXTERN_C const IID IID_IAsyncMoniker; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_StdURLMoniker; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_HttpProtocol; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_FtpProtocol; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_GopherProtocol; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_HttpSProtocol; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_FileProtocol; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_MkProtocol; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_StdURLProtocol; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_UrlMkBindCtx; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_StdEncodingFilterFac; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_DeCompMimeFilter; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_CdlProtocol; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_ClassInstallFilter; ")
|
|
cpp_quote("EXTERN_C const IID IID_IAsyncBindCtx; ")
|
|
|
|
#pragma midl_echo(" ")
|
|
#pragma midl_echo("#define SZ_URLCONTEXT OLESTR(\"URL Context\")")
|
|
#pragma midl_echo("#define SZ_ASYNC_CALLEE OLESTR(\"AsyncCallee\")")
|
|
|
|
#pragma midl_echo("#define MKSYS_URLMONIKER 6 ")
|
|
#pragma midl_echo("#define URL_MK_LEGACY 0 ")
|
|
#pragma midl_echo("#define URL_MK_UNIFORM 1 ")
|
|
#pragma midl_echo("#define URL_MK_NO_CANONICALIZE 2 ")
|
|
#pragma midl_echo(" ")
|
|
#pragma midl_echo("STDAPI CreateURLMoniker(LPMONIKER pMkCtx, LPCWSTR szURL, LPMONIKER FAR * ppmk); ")
|
|
#pragma midl_echo("STDAPI CreateURLMonikerEx(LPMONIKER pMkCtx, LPCWSTR szURL, LPMONIKER FAR * ppmk, DWORD dwFlags); ")
|
|
#pragma midl_echo("STDAPI GetClassURL(LPCWSTR szURL, CLSID *pClsID); ")
|
|
#pragma midl_echo("STDAPI CreateAsyncBindCtx(DWORD reserved, IBindStatusCallback *pBSCb, ")
|
|
#pragma midl_echo(" IEnumFORMATETC *pEFetc, IBindCtx **ppBC); ")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
|
|
#pragma midl_echo("STDAPI CreateURLMonikerEx2(LPMONIKER pMkCtx, IUri* pUri, LPMONIKER FAR * ppmk, DWORD dwFlags); ")
|
|
cpp_quote("#endif")
|
|
|
|
#pragma midl_echo("STDAPI CreateAsyncBindCtxEx(IBindCtx *pbc, DWORD dwOptions, IBindStatusCallback *pBSCb, IEnumFORMATETC *pEnum, ")
|
|
#pragma midl_echo(" IBindCtx **ppBC, DWORD reserved); ")
|
|
|
|
#pragma midl_echo("STDAPI MkParseDisplayNameEx(IBindCtx *pbc, LPCWSTR szDisplayName, ULONG *pchEaten, ")
|
|
#pragma midl_echo(" LPMONIKER *ppmk); ")
|
|
#pragma midl_echo("STDAPI RegisterBindStatusCallback(LPBC pBC, IBindStatusCallback *pBSCb, ")
|
|
#pragma midl_echo(" IBindStatusCallback** ppBSCBPrev, DWORD dwReserved); ")
|
|
#pragma midl_echo("STDAPI RevokeBindStatusCallback(LPBC pBC, IBindStatusCallback *pBSCb); ")
|
|
|
|
#pragma midl_echo("STDAPI GetClassFileOrMime(LPBC pBC, LPCWSTR szFilename, LPVOID pBuffer, DWORD cbSize, LPCWSTR szMime, DWORD dwReserved, CLSID *pclsid); ")
|
|
#pragma midl_echo("STDAPI IsValidURL(LPBC pBC, LPCWSTR szURL, DWORD dwReserved); ")
|
|
|
|
|
|
#pragma midl_echo("STDAPI CoGetClassObjectFromURL( REFCLSID rCLASSID,")
|
|
#pragma midl_echo(" LPCWSTR szCODE, DWORD dwFileVersionMS, ")
|
|
#pragma midl_echo(" DWORD dwFileVersionLS, LPCWSTR szTYPE,")
|
|
#pragma midl_echo(" LPBINDCTX pBindCtx, DWORD dwClsContext,")
|
|
#pragma midl_echo(" LPVOID pvReserved, REFIID riid, LPVOID * ppv);")
|
|
|
|
#pragma midl_echo("STDAPI IEInstallScope(__out LPDWORD pdwScope);")
|
|
|
|
#pragma midl_echo("STDAPI FaultInIEFeature( HWND hWnd,")
|
|
#pragma midl_echo(" __in uCLSSPEC *pClassSpec,")
|
|
#pragma midl_echo(" __inout_opt QUERYCONTEXT *pQuery, DWORD dwFlags); ")
|
|
|
|
#pragma midl_echo("STDAPI GetComponentIDFromCLSSPEC(__in uCLSSPEC *pClassspec,")
|
|
#pragma midl_echo(" __deref_out LPSTR * ppszComponentID); ")
|
|
|
|
#pragma midl_echo("// flags for FaultInIEFeature")
|
|
#pragma midl_echo("#define FIEF_FLAG_FORCE_JITUI 0x1 // force JIT ui even if")
|
|
#pragma midl_echo(" // previoulsy rejected by ")
|
|
#pragma midl_echo(" // user in this session or")
|
|
#pragma midl_echo(" // marked as Never Ask Again")
|
|
#pragma midl_echo("#define FIEF_FLAG_PEEK 0x2 // just peek, don't faultin")
|
|
#pragma midl_echo("#define FIEF_FLAG_SKIP_INSTALLED_VERSION_CHECK 0x4 // force JIT without checking local version")
|
|
|
|
|
|
|
|
#pragma midl_echo(" ")
|
|
#pragma midl_echo("//helper apis ")
|
|
#pragma midl_echo("STDAPI IsAsyncMoniker(IMoniker* pmk); ")
|
|
#pragma midl_echo("STDAPI CreateURLBinding(LPCWSTR lpszUrl, __in IBindCtx *pbc, __deref_inout IBinding **ppBdg);")
|
|
#pragma midl_echo(" ")
|
|
#pragma midl_echo("STDAPI RegisterMediaTypes(UINT ctypes, const LPCSTR* rgszTypes, CLIPFORMAT* rgcfTypes); ")
|
|
#pragma midl_echo("STDAPI FindMediaType(LPCSTR rgszTypes, __out CLIPFORMAT* rgcfTypes); ")
|
|
#pragma midl_echo("STDAPI CreateFormatEnumerator( UINT cfmtetc, FORMATETC* rgfmtetc, IEnumFORMATETC** ppenumfmtetc); ")
|
|
#pragma midl_echo("STDAPI RegisterFormatEnumerator(LPBC pBC, IEnumFORMATETC *pEFetc, DWORD reserved); ")
|
|
#pragma midl_echo("STDAPI RevokeFormatEnumerator(LPBC pBC, IEnumFORMATETC *pEFetc); ")
|
|
#pragma midl_echo("STDAPI RegisterMediaTypeClass(LPBC pBC,UINT ctypes, const LPCSTR* rgszTypes, CLSID *rgclsID, DWORD reserved); ")
|
|
#pragma midl_echo("STDAPI FindMediaTypeClass(LPBC pBC, LPCSTR szType, CLSID *pclsID, DWORD reserved); ")
|
|
#pragma midl_echo("STDAPI UrlMkSetSessionOption(DWORD dwOption, __in_bcount_opt(dwBufferLength) LPVOID pBuffer, DWORD dwBufferLength, __reserved DWORD dwReserved); ")
|
|
#pragma midl_echo("STDAPI UrlMkGetSessionOption(DWORD dwOption, __out_bcount_part_opt(dwBufferLength,*pdwBufferLengthOut) LPVOID pBuffer, DWORD dwBufferLength, __out DWORD *pdwBufferLengthOut, __reserved DWORD dwReserved); ")
|
|
|
|
#pragma midl_echo("STDAPI FindMimeFromData( ")
|
|
#pragma midl_echo(" __in_opt LPBC pBC, // bind context - can be NULL ")
|
|
#pragma midl_echo(" __in_opt LPCWSTR pwzUrl, // url - can be null ")
|
|
#pragma midl_echo(" __in_bcount_opt(cbSize) LPVOID pBuffer, // buffer with data to sniff - can be null (pwzUrl must be valid) ")
|
|
#pragma midl_echo(" DWORD cbSize, // size of buffer ")
|
|
#pragma midl_echo(" __in_opt LPCWSTR pwzMimeProposed, // proposed mime if - can be null ")
|
|
#pragma midl_echo(" DWORD dwMimeFlags, // will be defined ")
|
|
#pragma midl_echo(" __deref_out LPWSTR *ppwzMimeOut, // the suggested mime ")
|
|
#pragma midl_echo(" __reserved DWORD dwReserved); // must be 0 ")
|
|
|
|
|
|
#pragma midl_echo("#define FMFD_DEFAULT 0x00000000 ")
|
|
#pragma midl_echo("#define FMFD_URLASFILENAME 0x00000001 ")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
#pragma midl_echo("#define FMFD_ENABLEMIMESNIFFING 0x00000002 ")
|
|
#pragma midl_echo("#define FMFD_IGNOREMIMETEXTPLAIN 0x00000004 ")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
|
|
#pragma midl_echo("#define FMFD_SERVERMIME 0x00000008 ")
|
|
|
|
#pragma midl_echo("#define UAS_EXACTLEGACY 0x00001000 ")
|
|
#pragma midl_echo("STDAPI ObtainUserAgentString( ")
|
|
#pragma midl_echo(" DWORD dwOption, ")
|
|
#pragma midl_echo(" __out_ecount_part(*cbSize, *cbSize) LPSTR pszUAOut, ")
|
|
#pragma midl_echo(" __inout DWORD *cbSize); ")
|
|
|
|
#pragma midl_echo("STDAPI CompareSecurityIds(BYTE* pbSecurityId1, DWORD dwLen1, BYTE* pbSecurityId2, DWORD dwLen2, DWORD dwReserved); ")
|
|
|
|
#pragma midl_echo("STDAPI CompatFlagsFromClsid(CLSID *pclsid, LPDWORD pdwCompatFlags, LPDWORD pdwMiscStatusFlags); ")
|
|
|
|
#pragma midl_echo(" ")
|
|
#pragma midl_echo("// URLMON-specific defines for UrlMkSetSessionOption() above")
|
|
#pragma midl_echo("#define URLMON_OPTION_USERAGENT 0x10000001")
|
|
#pragma midl_echo("#define URLMON_OPTION_USERAGENT_REFRESH 0x10000002")
|
|
#pragma midl_echo("#define URLMON_OPTION_URL_ENCODING 0x10000004")
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
#pragma midl_echo("#define URLMON_OPTION_USE_BINDSTRINGCREDS 0x10000008")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
|
|
#pragma midl_echo("#define URLMON_OPTION_USE_BROWSERAPPSDOCUMENTS 0x10000010")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE70)")
|
|
|
|
|
|
#pragma midl_echo(" ")
|
|
#pragma midl_echo("#define CF_NULL 0 ")
|
|
#pragma midl_echo("#define CFSTR_MIME_NULL NULL ")
|
|
// 7 bit MIME Types
|
|
#pragma midl_echo("#define CFSTR_MIME_TEXT (TEXT(\"text/plain\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_RICHTEXT (TEXT(\"text/richtext\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_X_BITMAP (TEXT(\"image/x-xbitmap\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_POSTSCRIPT (TEXT(\"application/postscript\")) ")
|
|
// 8 bit MIME Types
|
|
#pragma midl_echo("#define CFSTR_MIME_AIFF (TEXT(\"audio/aiff\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_BASICAUDIO (TEXT(\"audio/basic\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_WAV (TEXT(\"audio/wav\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_X_WAV (TEXT(\"audio/x-wav\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_GIF (TEXT(\"image/gif\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_PJPEG (TEXT(\"image/pjpeg\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_JPEG (TEXT(\"image/jpeg\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_TIFF (TEXT(\"image/tiff\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_X_PNG (TEXT(\"image/x-png\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_BMP (TEXT(\"image/bmp\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_X_ART (TEXT(\"image/x-jg\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_X_EMF (TEXT(\"image/x-emf\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_X_WMF (TEXT(\"image/x-wmf\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_AVI (TEXT(\"video/avi\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_MPEG (TEXT(\"video/mpeg\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_FRACTALS (TEXT(\"application/fractals\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_RAWDATA (TEXT(\"application/octet-stream\"))")
|
|
#pragma midl_echo("#define CFSTR_MIME_RAWDATASTRM (TEXT(\"application/octet-stream\"))")
|
|
#pragma midl_echo("#define CFSTR_MIME_PDF (TEXT(\"application/pdf\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_HTA (TEXT(\"application/hta\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_X_AIFF (TEXT(\"audio/x-aiff\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_X_REALAUDIO (TEXT(\"audio/x-pn-realaudio\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_XBM (TEXT(\"image/xbm\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_QUICKTIME (TEXT(\"video/quicktime\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_X_MSVIDEO (TEXT(\"video/x-msvideo\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_X_SGI_MOVIE (TEXT(\"video/x-sgi-movie\")) ")
|
|
// 7 or 8 bit MIME Types
|
|
#pragma midl_echo("#define CFSTR_MIME_HTML (TEXT(\"text/html\")) ")
|
|
#pragma midl_echo("#define CFSTR_MIME_XML (TEXT(\"text/xml\")) ")
|
|
#pragma midl_echo(" ")
|
|
|
|
cpp_quote("// MessageId: MK_S_ASYNCHRONOUS ")
|
|
cpp_quote("// MessageText: Operation is successful, but will complete asynchronously. ")
|
|
cpp_quote("// ")
|
|
cpp_quote("#define MK_S_ASYNCHRONOUS _HRESULT_TYPEDEF_(0x000401E8L) ")
|
|
cpp_quote("#ifndef S_ASYNCHRONOUS ")
|
|
cpp_quote("#define S_ASYNCHRONOUS MK_S_ASYNCHRONOUS ")
|
|
cpp_quote("#endif ")
|
|
cpp_quote(" ")
|
|
cpp_quote("#ifndef E_PENDING ")
|
|
cpp_quote("#define E_PENDING _HRESULT_TYPEDEF_(0x8000000AL) ")
|
|
cpp_quote("#endif ")
|
|
cpp_quote(" ")
|
|
cpp_quote("// ")
|
|
cpp_quote("// ")
|
|
cpp_quote("// WinINet and protocol specific errors are mapped to one of the following ")
|
|
cpp_quote("// error which are returned in IBSC::OnStopBinding ")
|
|
cpp_quote("// ")
|
|
cpp_quote("// ")
|
|
cpp_quote("// Note: FACILITY C is split into ranges of 1k ")
|
|
cpp_quote("// C0000 - C03FF INET_E_ (URLMON's original hresult) ")
|
|
cpp_quote("// C0400 - C07FF INET_E_CLIENT_xxx ")
|
|
cpp_quote("// C0800 - C0BFF INET_E_SERVER_xxx ")
|
|
cpp_quote("// C0C00 - C0FFF INET_E_???? ")
|
|
cpp_quote("// C1000 - C13FF INET_E_AGENT_xxx (info delivery agents) ")
|
|
|
|
//
|
|
// url could not be parsed
|
|
//
|
|
cpp_quote("#define INET_E_INVALID_URL _HRESULT_TYPEDEF_(0x800C0002L) ")
|
|
//
|
|
// InternetOpen failed - no session was established
|
|
//
|
|
cpp_quote("#define INET_E_NO_SESSION _HRESULT_TYPEDEF_(0x800C0003L) ")
|
|
//
|
|
// InternetConnect failed - no
|
|
//
|
|
cpp_quote("#define INET_E_CANNOT_CONNECT _HRESULT_TYPEDEF_(0x800C0004L) ")
|
|
//
|
|
// the server or proxy was not found
|
|
//
|
|
cpp_quote("#define INET_E_RESOURCE_NOT_FOUND _HRESULT_TYPEDEF_(0x800C0005L) ")
|
|
//
|
|
// the actual object was not found - e.g. http: 404
|
|
//
|
|
cpp_quote("#define INET_E_OBJECT_NOT_FOUND _HRESULT_TYPEDEF_(0x800C0006L) ")
|
|
//
|
|
// connection was established but data can not be retrieved
|
|
// no filename from cache invalid etc.
|
|
//
|
|
cpp_quote("#define INET_E_DATA_NOT_AVAILABLE _HRESULT_TYPEDEF_(0x800C0007L) ")
|
|
//
|
|
// generic download failure - connection broke
|
|
//
|
|
cpp_quote("#define INET_E_DOWNLOAD_FAILURE _HRESULT_TYPEDEF_(0x800C0008L) ")
|
|
//
|
|
// to access to this object need authentication e.g. http: 401
|
|
//
|
|
cpp_quote("#define INET_E_AUTHENTICATION_REQUIRED _HRESULT_TYPEDEF_(0x800C0009L) ")
|
|
//
|
|
// the object is not available of the required type http: 403 no object
|
|
//
|
|
cpp_quote("#define INET_E_NO_VALID_MEDIA _HRESULT_TYPEDEF_(0x800C000AL) ")
|
|
//
|
|
// the internet connection timed out
|
|
//
|
|
cpp_quote("#define INET_E_CONNECTION_TIMEOUT _HRESULT_TYPEDEF_(0x800C000BL) ")
|
|
//
|
|
// the request was invalid
|
|
//
|
|
cpp_quote("#define INET_E_INVALID_REQUEST _HRESULT_TYPEDEF_(0x800C000CL) ")
|
|
//
|
|
// protocol is not know and no plugable protocol is registered
|
|
//
|
|
cpp_quote("#define INET_E_UNKNOWN_PROTOCOL _HRESULT_TYPEDEF_(0x800C000DL) ")
|
|
//
|
|
// security problem encountered
|
|
//
|
|
cpp_quote("#define INET_E_SECURITY_PROBLEM _HRESULT_TYPEDEF_(0x800C000EL) ")
|
|
//
|
|
// object could not be loaded; IPersistXXX::Load failed
|
|
//
|
|
cpp_quote("#define INET_E_CANNOT_LOAD_DATA _HRESULT_TYPEDEF_(0x800C000FL) ")
|
|
//
|
|
// CoCreateInstance failed.
|
|
//
|
|
cpp_quote("#define INET_E_CANNOT_INSTANTIATE_OBJECT _HRESULT_TYPEDEF_(0x800C0010L) ")
|
|
//
|
|
// invalid certificate.
|
|
//
|
|
cpp_quote("#define INET_E_INVALID_CERTIFICATE _HRESULT_TYPEDEF_(0x800C0019L) ")
|
|
//
|
|
// Redirect failed.
|
|
//
|
|
cpp_quote("#define INET_E_REDIRECT_FAILED _HRESULT_TYPEDEF_(0x800C0014L) ")
|
|
//
|
|
// Redirect to directory.
|
|
//
|
|
cpp_quote("#define INET_E_REDIRECT_TO_DIR _HRESULT_TYPEDEF_(0x800C0015L) ")
|
|
//
|
|
// HResult range returned in OnStopBinding
|
|
//
|
|
//
|
|
// Data can not be locked
|
|
//
|
|
cpp_quote("#define INET_E_CANNOT_LOCK_REQUEST _HRESULT_TYPEDEF_(0x800C0016L) ")
|
|
cpp_quote("#define INET_E_USE_EXTEND_BINDING _HRESULT_TYPEDEF_(0x800C0017L) ")
|
|
cpp_quote("#define INET_E_TERMINATED_BIND _HRESULT_TYPEDEF_(0x800C0018L) ")
|
|
cpp_quote("#define INET_E_RESERVED_1 _HRESULT_TYPEDEF_(0x800C001AL) ")
|
|
cpp_quote("#define INET_E_BLOCKED_REDIRECT_XSECURITYID _HRESULT_TYPEDEF_(0x800C001BL) ")
|
|
cpp_quote("#define INET_E_ERROR_FIRST _HRESULT_TYPEDEF_(0x800C0002L) ")
|
|
|
|
// User declined download of component
|
|
cpp_quote("#define INET_E_CODE_DOWNLOAD_DECLINED _HRESULT_TYPEDEF_(0x800C0100L) ")
|
|
cpp_quote("#define INET_E_RESULT_DISPATCHED _HRESULT_TYPEDEF_(0x800C0200L) ")
|
|
|
|
// Exact code download version requested not found
|
|
cpp_quote("#define INET_E_CANNOT_REPLACE_SFP_FILE _HRESULT_TYPEDEF_(0x800C0300L) ")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
// Authenticode prompt UI was not shown because the page is not in the ActiveX permissive state
|
|
cpp_quote("#define INET_E_CODE_INSTALL_SUPPRESSED _HRESULT_TYPEDEF_(0x800C0400L) ")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
|
|
// AX installation blocked by hash policy.
|
|
cpp_quote("#define INET_E_CODE_INSTALL_BLOCKED_BY_HASH_POLICY _HRESULT_TYPEDEF_(0x800C0500L) ")
|
|
|
|
// URL download is blocked
|
|
cpp_quote("#define INET_E_DOWNLOAD_BLOCKED_BY_INPRIVATE _HRESULT_TYPEDEF_(0x800C0501L) ")
|
|
|
|
// NOTE: Please update INET_E_ERROR_LAST if you add an error code with a higher number:
|
|
cpp_quote("#define INET_E_ERROR_LAST INET_E_DOWNLOAD_BLOCKED_BY_INPRIVATE")
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IPersistMoniker interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
cpp_quote("#ifndef _LPPERSISTMONIKER_DEFINED")
|
|
cpp_quote("#define _LPPERSISTMONIKER_DEFINED")
|
|
|
|
[
|
|
object,
|
|
uuid(79eac9c9-baf9-11ce-8c82-00aa004ba90b),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IPersistMoniker : IUnknown
|
|
{
|
|
typedef [unique] IPersistMoniker *LPPERSISTMONIKER;
|
|
|
|
HRESULT GetClassID(
|
|
[out] CLSID *pClassID
|
|
);
|
|
|
|
HRESULT IsDirty(void);
|
|
|
|
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);
|
|
}
|
|
|
|
cpp_quote("#endif")
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IMonikerProp interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
cpp_quote("#ifndef _LPMONIKERPROP_DEFINED")
|
|
cpp_quote("#define _LPMONIKERPROP_DEFINED")
|
|
|
|
[
|
|
object,
|
|
uuid(a5ca5f7f-1847-4d87-9c5b-918509f7511d),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IMonikerProp : IUnknown
|
|
{
|
|
typedef [unique] IMonikerProp *LPMONIKERPROP;
|
|
|
|
typedef enum {
|
|
MIMETYPEPROP = 0x00000000,
|
|
USE_SRC_URL = 0X00000001,
|
|
CLASSIDPROP = 0x00000002,
|
|
TRUSTEDDOWNLOADPROP = 0x00000003,
|
|
POPUPLEVELPROP = 0x00000004,
|
|
} MONIKERPROPERTY;
|
|
|
|
HRESULT PutProperty (
|
|
[in] MONIKERPROPERTY mkp,
|
|
[in] LPCWSTR val
|
|
);
|
|
}
|
|
|
|
cpp_quote("#endif")
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IBindProtocol interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPBINDPROTOCOL_DEFINED")
|
|
cpp_quote("#define _LPBINDPROTOCOL_DEFINED")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(79eac9cd-baf9-11ce-8c82-00aa004ba90b),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
|
|
interface IBindProtocol : IUnknown
|
|
{
|
|
typedef [unique] IBindProtocol *LPBINDPROTOCOL;
|
|
|
|
HRESULT CreateBinding(
|
|
[in] LPCWSTR szUrl,
|
|
[in] IBindCtx *pbc,
|
|
[out] IBinding ** ppb);
|
|
}
|
|
|
|
cpp_quote("#endif")
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IBinding interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
cpp_quote("#ifndef _LPBINDING_DEFINED")
|
|
cpp_quote("#define _LPBINDING_DEFINED")
|
|
|
|
[
|
|
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, annotation("__RPC__out")] LPOLESTR *pszResult,
|
|
[in, out] DWORD *pdwReserved);
|
|
|
|
[call_as(GetBindResult)]
|
|
HRESULT RemoteGetBindResult(
|
|
[out] CLSID *pclsidProtocol,
|
|
[out] DWORD *pdwResult,
|
|
[out] LPOLESTR *pszResult,
|
|
[in] DWORD dwReserved);
|
|
|
|
}
|
|
|
|
cpp_quote("#endif")
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IBindStatusCallback interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPBINDSTATUSCALLBACK_DEFINED")
|
|
cpp_quote("#define _LPBINDSTATUSCALLBACK_DEFINED")
|
|
|
|
[
|
|
object,
|
|
uuid(79eac9c1-baf9-11ce-8c82-00aa004ba90b),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IBindStatusCallback: IUnknown
|
|
{
|
|
typedef [unique] IBindStatusCallback *LPBINDSTATUSCALLBACK;
|
|
|
|
typedef enum
|
|
{
|
|
BINDVERB_GET = 0x00000000, // default action
|
|
BINDVERB_POST = 0x00000001, // post verb
|
|
BINDVERB_PUT = 0x00000002, // put verb
|
|
BINDVERB_CUSTOM = 0x00000003, // custom verb
|
|
BINDVERB_RESERVED1 = 0x00000004, // reserved
|
|
} BINDVERB;
|
|
|
|
typedef enum
|
|
{
|
|
BINDINFOF_URLENCODESTGMEDDATA = 0x00000001, // url encode the stgmed data
|
|
BINDINFOF_URLENCODEDEXTRAINFO = 0x00000002, // url encode the extra info
|
|
} BINDINFOF;
|
|
|
|
|
|
// flags that describe the type of transaction that caller wants
|
|
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
|
|
|
|
// bindstatus callback from client is free threaded
|
|
,BINDF_FREE_THREADED = 0x00010000
|
|
// client does not need to know excat size of data available
|
|
// hence the read goes directly to e.g. socket
|
|
,BINDF_DIRECT_READ = 0x00020000
|
|
// is the transaction a forms submit.
|
|
,BINDF_FORMS_SUBMIT = 0x00040000
|
|
,BINDF_GETFROMCACHE_IF_NET_FAIL = 0x00080000
|
|
// binding is from UrlMoniker
|
|
,BINDF_FROMURLMON = 0x00100000
|
|
,BINDF_FWD_BACK = 0x00200000
|
|
|
|
,BINDF_PREFERDEFAULTHANDLER = 0x00400000
|
|
,BINDF_ENFORCERESTRICTED = 0x00800000
|
|
|
|
// Note:
|
|
// the highest byte 0x??000000 is used internally
|
|
// see other documentation
|
|
} BINDF;
|
|
|
|
typedef enum
|
|
{
|
|
URL_ENCODING_NONE = 0x00000000
|
|
,URL_ENCODING_ENABLE_UTF8 = 0x10000000
|
|
,URL_ENCODING_DISABLE_UTF8 = 0x20000000
|
|
} URL_ENCODING;
|
|
|
|
typedef struct _tagBINDINFO
|
|
{
|
|
ULONG cbSize;
|
|
LPWSTR szExtraInfo; // e.g. string added to the URL string [range byte]
|
|
STGMEDIUM stgmedData; // e.g. put or post data
|
|
DWORD grfBindInfoF; // e.g. how meddata should be treaded
|
|
DWORD dwBindVerb; // e.g. put, post, ...
|
|
LPWSTR szCustomVerb; // e.g. custom verb
|
|
DWORD cbstgmedData; // size of data in stgmedData
|
|
DWORD dwOptions; // additional option
|
|
DWORD dwOptionsFlags; // options flags
|
|
DWORD dwCodePage; // the code used to convert the url
|
|
SECURITY_ATTRIBUTES securityAttributes;
|
|
IID iid; // iid of pUnk
|
|
IUnknown *pUnk; // pUnk - whatever
|
|
DWORD dwReserved; // should be null
|
|
|
|
} BINDINFO;
|
|
|
|
typedef struct _REMSECURITY_ATTRIBUTES
|
|
{
|
|
DWORD nLength;
|
|
DWORD lpSecurityDescriptor;
|
|
BOOL bInheritHandle;
|
|
} REMSECURITY_ATTRIBUTES, *PREMSECURITY_ATTRIBUTES, *LPREMSECURITY_ATTRIBUTES;
|
|
|
|
typedef struct _tagRemBINDINFO
|
|
{
|
|
ULONG cbSize;
|
|
LPWSTR szExtraInfo; // e.g. string added to the URL string [range byte]
|
|
DWORD grfBindInfoF; // e.g. how meddata should be treaded
|
|
DWORD dwBindVerb; // e.g. put, post, ...
|
|
LPWSTR szCustomVerb; // e.g. custom verb
|
|
DWORD cbstgmedData; // size of data in stgmedData
|
|
DWORD dwOptions; // additional options
|
|
DWORD dwOptionsFlags; // options flags
|
|
DWORD dwCodePage; // the code used to convert the url
|
|
REMSECURITY_ATTRIBUTES securityAttributes;
|
|
IID iid; // iid of pUnk
|
|
IUnknown *pUnk; // pUnk - whatever
|
|
DWORD dwReserved; // should be null
|
|
|
|
} RemBINDINFO;
|
|
|
|
typedef struct tagRemFORMATETC {
|
|
DWORD cfFormat;
|
|
DWORD ptd;
|
|
DWORD dwAspect;
|
|
LONG lindex;
|
|
DWORD tymed;
|
|
} RemFORMATETC, *LPREMFORMATETC;
|
|
|
|
// Options flag
|
|
typedef enum
|
|
{
|
|
BINDINFO_OPTIONS_WININETFLAG = 0x00010000
|
|
|
|
,BINDINFO_OPTIONS_ENABLE_UTF8 = 0x00020000
|
|
,BINDINFO_OPTIONS_DISABLE_UTF8 = 0x00040000
|
|
,BINDINFO_OPTIONS_USE_IE_ENCODING = 0x00080000
|
|
|
|
,BINDINFO_OPTIONS_BINDTOOBJECT = 0x00100000
|
|
,BINDINFO_OPTIONS_SECURITYOPTOUT = 0x00200000
|
|
,BINDINFO_OPTIONS_IGNOREMIMETEXTPLAIN = 0x00400000
|
|
,BINDINFO_OPTIONS_USEBINDSTRINGCREDS = 0x00800000
|
|
,BINDINFO_OPTIONS_IGNOREHTTPHTTPSREDIRECTS = 0x01000000
|
|
,BINDINFO_OPTIONS_IGNORE_SSLERRORS_ONCE = 0x02000000
|
|
// skip 0x04000000, whcih was used downlevel for a security fix
|
|
//,BINDINFO_OPTIONS_UNPROTECTED_BINDING = 0x04000000
|
|
,BINDINFO_WPC_DOWNLOADBLOCKED = 0x08000000
|
|
,BINDINFO_WPC_LOGGING_ENABLED = 0x10000000
|
|
,BINDINFO_OPTIONS_ALLOWCONNECTDATA = 0x20000000
|
|
,BINDINFO_OPTIONS_DISABLEAUTOREDIRECTS = 0x40000000
|
|
,BINDINFO_OPTIONS_SHDOCVW_NAVIGATE = (int) 0x80000000
|
|
|
|
// Note:
|
|
// the lowest bytes 0x0000???? are used extended binding
|
|
} BINDINFO_OPTIONS;
|
|
|
|
|
|
|
|
// Data notification flags
|
|
typedef enum
|
|
{
|
|
BSCF_FIRSTDATANOTIFICATION = 0x00000001
|
|
,BSCF_INTERMEDIATEDATANOTIFICATION = 0x00000002
|
|
,BSCF_LASTDATANOTIFICATION = 0x00000004
|
|
,BSCF_DATAFULLYAVAILABLE = 0x00000008
|
|
,BSCF_AVAILABLEDATASIZEUNKNOWN = 0x00000010
|
|
,BSCF_SKIPDRAINDATAFORFILEURLS = 0x00000020
|
|
,BSCF_64BITLENGTHDOWNLOAD = 0x00000040
|
|
} BSCF;
|
|
|
|
typedef enum tagBINDSTATUS
|
|
{
|
|
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_ENDUPLOADDATA
|
|
,BINDSTATUS_PROTOCOLCLASSID
|
|
,BINDSTATUS_ENCODING
|
|
,BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE
|
|
,BINDSTATUS_CLASSINSTALLLOCATION
|
|
,BINDSTATUS_DECODING
|
|
,BINDSTATUS_LOADINGMIMEHANDLER
|
|
,BINDSTATUS_CONTENTDISPOSITIONATTACH
|
|
,BINDSTATUS_FILTERREPORTMIMETYPE
|
|
,BINDSTATUS_CLSIDCANINSTANTIATE
|
|
,BINDSTATUS_IUNKNOWNAVAILABLE
|
|
,BINDSTATUS_DIRECTBIND
|
|
,BINDSTATUS_RAWMIMETYPE
|
|
,BINDSTATUS_PROXYDETECTING
|
|
,BINDSTATUS_ACCEPTRANGES
|
|
,BINDSTATUS_COOKIE_SENT
|
|
,BINDSTATUS_COMPACT_POLICY_RECEIVED
|
|
,BINDSTATUS_COOKIE_SUPPRESSED
|
|
,BINDSTATUS_COOKIE_STATE_UNKNOWN
|
|
,BINDSTATUS_COOKIE_STATE_ACCEPT
|
|
,BINDSTATUS_COOKIE_STATE_REJECT
|
|
,BINDSTATUS_COOKIE_STATE_PROMPT
|
|
,BINDSTATUS_COOKIE_STATE_LEASH
|
|
,BINDSTATUS_COOKIE_STATE_DOWNGRADE
|
|
,BINDSTATUS_POLICY_HREF
|
|
,BINDSTATUS_P3P_HEADER
|
|
,BINDSTATUS_SESSION_COOKIE_RECEIVED
|
|
,BINDSTATUS_PERSISTENT_COOKIE_RECEIVED
|
|
,BINDSTATUS_SESSION_COOKIES_ALLOWED
|
|
,BINDSTATUS_CACHECONTROL
|
|
,BINDSTATUS_CONTENTDISPOSITIONFILENAME
|
|
,BINDSTATUS_MIMETEXTPLAINMISMATCH
|
|
,BINDSTATUS_PUBLISHERAVAILABLE
|
|
,BINDSTATUS_DISPLAYNAMEAVAILABLE
|
|
,BINDSTATUS_SSLUX_NAVBLOCKED
|
|
,BINDSTATUS_SERVER_MIMETYPEAVAILABLE
|
|
,BINDSTATUS_SNIFFED_CLASSIDAVAILABLE
|
|
,BINDSTATUS_64BIT_PROGRESS
|
|
} 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, unique] 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
|
|
);
|
|
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IBindStatusCallbackEx interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPBINDSTATUSCALLBACKEX_DEFINED")
|
|
cpp_quote("#define _LPBINDSTATUSCALLBACKEX_DEFINED")
|
|
|
|
[
|
|
object,
|
|
uuid(aaa74ef9-8ee7-4659-88d9-f8c504da73cc),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IBindStatusCallbackEx: IBindStatusCallback
|
|
{
|
|
typedef [unique] IBindStatusCallbackEx *LPBINDSTATUSCALLBACKEX;
|
|
|
|
// grfBINDF2 flags
|
|
typedef enum
|
|
{
|
|
BINDF2_DISABLEBASICOVERHTTP = 0x00000001,
|
|
BINDF2_DISABLEAUTOCOOKIEHANDLING = 0x00000002,
|
|
BINDF2_READ_DATA_GREATER_THAN_4GB = 0x00000004,
|
|
BINDF2_DISABLE_HTTP_REDIRECT_XSECURITYID = 0x00000008,
|
|
BINDF2_RESERVED_3 = 0x20000000,
|
|
BINDF2_RESERVED_2 = 0x40000000,
|
|
BINDF2_RESERVED_1 = 0x80000000,
|
|
} BINDF2;
|
|
|
|
[local]
|
|
HRESULT GetBindInfoEx(
|
|
[out] DWORD *grfBINDF,
|
|
[in, out, unique] BINDINFO *pbindinfo,
|
|
[out] DWORD *grfBINDF2,
|
|
[out] DWORD *pdwReserved
|
|
);
|
|
|
|
[call_as(GetBindInfoEx)]
|
|
HRESULT RemoteGetBindInfoEx(
|
|
[out] DWORD *grfBINDF,
|
|
[in, out, unique] RemBINDINFO * pbindinfo,
|
|
[in, out, unique] RemSTGMEDIUM* pstgmed,
|
|
[out] DWORD *grfBINDF2,
|
|
[out] DWORD *pdwReserved
|
|
);
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IAuthenticate interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPAUTHENTICATION_DEFINED")
|
|
cpp_quote("#define _LPAUTHENTICATION_DEFINED")
|
|
|
|
[
|
|
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
|
|
);
|
|
}
|
|
|
|
cpp_quote("#endif")
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IAuthenticateEx interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPAUTHENTICATIONEX_DEFINED")
|
|
cpp_quote("#define _LPAUTHENTICATIONEX_DEFINED")
|
|
|
|
[
|
|
object,
|
|
uuid(2ad1edaf-d83d-48b5-9adf-03dbe19f53bd),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IAuthenticateEx : IAuthenticate
|
|
{
|
|
typedef [unique] IAuthenticateEx *LPAUTHENTICATIONEX;
|
|
|
|
// flags that pass info about the authentication request
|
|
typedef enum
|
|
{
|
|
AUTHENTICATEF_PROXY = 0x00000001,
|
|
AUTHENTICATEF_BASIC = 0x00000002,
|
|
AUTHENTICATEF_HTTP = 0x00000004,
|
|
|
|
} AUTHENTICATEF;
|
|
|
|
typedef struct _tagAUTHENTICATEINFO
|
|
{
|
|
DWORD dwFlags;
|
|
DWORD dwReserved; // should be null
|
|
|
|
} AUTHENTICATEINFO;
|
|
|
|
HRESULT AuthenticateEx(
|
|
[out] HWND* phwnd,
|
|
[out] LPWSTR *pszUsername,
|
|
[out] LPWSTR *pszPassword,
|
|
[in] AUTHENTICATEINFO *pauthinfo
|
|
);
|
|
}
|
|
|
|
cpp_quote("#endif")
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IHttpNegotiate interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPHTTPNEGOTIATE_DEFINED")
|
|
cpp_quote("#define _LPHTTPNEGOTIATE_DEFINED")
|
|
|
|
[
|
|
object,
|
|
uuid(79eac9d2-baf9-11ce-8c82-00aa004ba90b),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IHttpNegotiate : IUnknown
|
|
{
|
|
typedef [unique] IHttpNegotiate *LPHTTPNEGOTIATE;
|
|
|
|
HRESULT BeginningTransaction(
|
|
[in] LPCWSTR szURL,
|
|
[in, unique] LPCWSTR szHeaders,
|
|
[in] DWORD dwReserved,
|
|
[out] LPWSTR *pszAdditionalHeaders
|
|
);
|
|
|
|
HRESULT OnResponse(
|
|
[in] DWORD dwResponseCode,
|
|
[in, unique] LPCWSTR szResponseHeaders,
|
|
[in, unique] LPCWSTR szRequestHeaders,
|
|
[out] LPWSTR *pszAdditionalRequestHeaders
|
|
);
|
|
}
|
|
|
|
cpp_quote("#endif")
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IHttpNegotiate2 interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPHTTPNEGOTIATE2_DEFINED")
|
|
cpp_quote("#define _LPHTTPNEGOTIATE2_DEFINED")
|
|
|
|
[
|
|
object,
|
|
uuid(4F9F9FCB-E0F4-48eb-B7AB-FA2EA9365CB4),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IHttpNegotiate2 : IHttpNegotiate
|
|
{
|
|
typedef [unique] IHttpNegotiate2 *LPHTTPNEGOTIATE2;
|
|
|
|
HRESULT GetRootSecurityId
|
|
(
|
|
[out, size_is(*pcbSecurityId)]
|
|
BYTE* pbSecurityId,
|
|
[in, out]
|
|
DWORD* pcbSecurityId,
|
|
[in] DWORD_PTR dwReserved
|
|
);
|
|
}
|
|
|
|
cpp_quote("#endif")
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation.
|
|
//
|
|
// Contents: IHttpNegotiate3 interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPHTTPNEGOTIATE3_DEFINED")
|
|
cpp_quote("#define _LPHTTPNEGOTIATE3_DEFINED")
|
|
|
|
[
|
|
object,
|
|
uuid(57b6c80a-34c2-4602-bc26-66a02fc57153),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IHttpNegotiate3 : IHttpNegotiate2
|
|
{
|
|
typedef [unique] IHttpNegotiate3 *LPHTTPNEGOTIATE3;
|
|
|
|
HRESULT GetSerializedClientCertContext
|
|
(
|
|
[out, size_is(, *pcbCert)]
|
|
BYTE** ppbCert,
|
|
[out] DWORD* pcbCert
|
|
);
|
|
}
|
|
|
|
cpp_quote("#endif")
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IWinInetFileStream interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPWININETFILESTREAM_DEFINED")
|
|
cpp_quote("#define _LPWININETFILESTREAM_DEFINED")
|
|
|
|
[
|
|
object,
|
|
uuid(F134C4B7-B1F8-4e75-B886-74B90943BECB),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IWinInetFileStream : IUnknown
|
|
{
|
|
typedef [unique] IWinInetFileStream *LPWININETFILESTREAM;
|
|
|
|
HRESULT SetHandleForUnlock
|
|
(
|
|
[in] DWORD_PTR hWinInetLockHandle,
|
|
[in] DWORD_PTR dwReserved
|
|
);
|
|
|
|
HRESULT SetDeleteFile
|
|
(
|
|
[in] DWORD_PTR dwReserved
|
|
);
|
|
}
|
|
|
|
cpp_quote("#endif")
|
|
|
|
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IWindowForBindingUI interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPWINDOWFORBINDINGUI_DEFINED")
|
|
cpp_quote("#define _LPWINDOWFORBINDINGUI_DEFINED")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(79eac9d5-bafa-11ce-8c82-00aa004ba90b),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IWindowForBindingUI : IUnknown
|
|
{
|
|
typedef [unique] IWindowForBindingUI *LPWINDOWFORBINDINGUI;
|
|
|
|
HRESULT GetWindow(
|
|
[in] REFGUID rguidReason,
|
|
[out] HWND* phwnd);
|
|
}
|
|
|
|
cpp_quote("#endif")
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: ICodeDownloadClient interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPCODEINSTALL_DEFINED")
|
|
cpp_quote("#define _LPCODEINSTALL_DEFINED")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(79eac9d1-baf9-11ce-8c82-00aa004ba90b),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
|
|
interface ICodeInstall : IWindowForBindingUI
|
|
{
|
|
typedef [unique] ICodeInstall *LPCODEINSTALL;
|
|
|
|
typedef enum {
|
|
CIP_DISK_FULL,
|
|
CIP_ACCESS_DENIED,
|
|
CIP_NEWER_VERSION_EXISTS,
|
|
CIP_OLDER_VERSION_EXISTS,
|
|
CIP_NAME_CONFLICT,
|
|
CIP_TRUST_VERIFICATION_COMPONENT_MISSING,
|
|
CIP_EXE_SELF_REGISTERATION_TIMEOUT,
|
|
CIP_UNSAFE_TO_ABORT,
|
|
CIP_NEED_REBOOT,
|
|
CIP_NEED_REBOOT_UI_PERMISSION
|
|
} CIP_STATUS;
|
|
|
|
HRESULT OnCodeInstallProblem(
|
|
[in] ULONG ulStatusCode, // contingency status
|
|
[in, unique] LPCWSTR szDestination, // file that needs to be updated
|
|
[in, unique] LPCWSTR szSource, // new version from 'net (a temp file)
|
|
[in] DWORD dwReserved
|
|
);
|
|
|
|
}
|
|
|
|
cpp_quote("#endif")
|
|
|
|
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-2005.
|
|
//
|
|
// Contents: IUri interface definition
|
|
//
|
|
// The string properties returned must always be the same between calls to
|
|
// the same object. That is once an implementation of IUri is created it
|
|
// cannot change its string properties.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPUri_DEFINED")
|
|
cpp_quote("#define _LPUri_DEFINED")
|
|
|
|
[
|
|
object,
|
|
uuid(A39EE748-6A27-4817-A6F2-13914BEF5890),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IUri : IUnknown
|
|
{
|
|
[helpstring("Uri_PROPERTYs represent properties that an URI may contain. "
|
|
"The Uri_PROPERTIYs in the range Uri_PROPERTY_STRING_START to "
|
|
"Uri_PROPERTY_STRING_LAST are string properties and the rest are DWORD "
|
|
"properties.")]
|
|
typedef enum
|
|
{
|
|
Uri_PROPERTY_ABSOLUTE_URI = 0,
|
|
Uri_PROPERTY_STRING_START = Uri_PROPERTY_ABSOLUTE_URI,
|
|
Uri_PROPERTY_AUTHORITY = 1,
|
|
Uri_PROPERTY_DISPLAY_URI = 2,
|
|
Uri_PROPERTY_DOMAIN = 3,
|
|
Uri_PROPERTY_EXTENSION = 4,
|
|
Uri_PROPERTY_FRAGMENT = 5,
|
|
Uri_PROPERTY_HOST = 6,
|
|
Uri_PROPERTY_PASSWORD = 7,
|
|
Uri_PROPERTY_PATH = 8,
|
|
Uri_PROPERTY_PATH_AND_QUERY = 9,
|
|
Uri_PROPERTY_QUERY = 10,
|
|
Uri_PROPERTY_RAW_URI = 11,
|
|
Uri_PROPERTY_SCHEME_NAME = 12,
|
|
Uri_PROPERTY_USER_INFO = 13,
|
|
Uri_PROPERTY_USER_NAME = 14,
|
|
Uri_PROPERTY_STRING_LAST = Uri_PROPERTY_USER_NAME,
|
|
|
|
Uri_PROPERTY_HOST_TYPE = 15,
|
|
Uri_PROPERTY_DWORD_START = Uri_PROPERTY_HOST_TYPE,
|
|
Uri_PROPERTY_PORT = 16,
|
|
Uri_PROPERTY_SCHEME = 17,
|
|
Uri_PROPERTY_ZONE = 18,
|
|
Uri_PROPERTY_DWORD_LAST = Uri_PROPERTY_ZONE,
|
|
} Uri_PROPERTY;
|
|
|
|
[helpstring("Uri_HOST_TYPE describes in what format the host in an URI "
|
|
"was specified.")]
|
|
typedef enum
|
|
{
|
|
Uri_HOST_UNKNOWN,
|
|
Uri_HOST_DNS,
|
|
Uri_HOST_IPV4,
|
|
Uri_HOST_IPV6,
|
|
Uri_HOST_IDN,
|
|
} Uri_HOST_TYPE;
|
|
|
|
[helpstring("The parameter property must be a string property. "
|
|
"The parameter pbstrProperty will be set to a new BSTR containing "
|
|
"the value of the specified string property. SysFreeString should "
|
|
"be used by the caller to free the new BSTR. The parameter dwFlags "
|
|
"is specific to each property. This method will fail if the specified "
|
|
"property isn't a string property. This method will return S_FALSE "
|
|
" and set the BSTR to an empty string if the URI doesn't contain the specified "
|
|
"property.")]
|
|
HRESULT GetPropertyBSTR(
|
|
[in, range(Uri_PROPERTY_STRING_START, Uri_PROPERTY_STRING_LAST)] Uri_PROPERTY uriProp,
|
|
[out] BSTR* pbstrProperty,
|
|
[in] DWORD dwFlags);
|
|
|
|
[helpstring("pcchProperty is set to the length of the value of the string "
|
|
"property excluding the NULL terminator. The parameter dwFlags is "
|
|
"specific to each property. This method will fail if the specified "
|
|
"property isn't a string property. This method will return S_FALSE "
|
|
"and set pcchProperty to 0 if the URI doesn't contain the "
|
|
"specified property. Call this function if you want the length "
|
|
"but don't necessarily want to create a new BSTR.")]
|
|
HRESULT GetPropertyLength(
|
|
[in, range(Uri_PROPERTY_STRING_START, Uri_PROPERTY_STRING_LAST)] Uri_PROPERTY uriProp,
|
|
[out] DWORD* pcchProperty,
|
|
[in] DWORD dwFlags);
|
|
|
|
[helpstring("pdwProperty is set to the value of the specified DWORD "
|
|
"property. The dwFlags parameter is specific to each property. "
|
|
"This method will fail if the specified property isn't a DWORD "
|
|
"property. This method will return S_FALSE and set pdwProperty to 0 "
|
|
"if the specified property doesn't exist in the URI.")]
|
|
HRESULT GetPropertyDWORD(
|
|
[in, range(Uri_PROPERTY_DWORD_START, Uri_PROPERTY_DWORD_LAST)] Uri_PROPERTY uriProp,
|
|
[out] DWORD* pdwProperty,
|
|
[in] DWORD dwFlags);
|
|
|
|
[helpstring("pfHasProperty is set TRUE if the specified property exists "
|
|
"in the URI.")]
|
|
HRESULT HasProperty(
|
|
[in, range(Uri_PROPERTY_STRING_START, Uri_PROPERTY_DWORD_LAST)] Uri_PROPERTY uriProp,
|
|
[out] BOOL* pfHasProperty);
|
|
|
|
[helpstring("This function is for convenience and is the same as calling "
|
|
"GetPropertyBSTR with the respective property.")]
|
|
HRESULT GetAbsoluteUri(
|
|
[out] BSTR* pbstrAbsoluteUri);
|
|
|
|
[helpstring("This function is for convenience and is the same as calling "
|
|
"GetPropertyBSTR with the respective property.")]
|
|
HRESULT GetAuthority(
|
|
[out] BSTR* pbstrAuthority);
|
|
|
|
[helpstring("This function is for convenience and is the same as calling "
|
|
"GetPropertyBSTR with the respective property.")]
|
|
HRESULT GetDisplayUri(
|
|
[out] BSTR* pbstrDisplayString);
|
|
|
|
[helpstring("This function is for convenience and is the same as calling "
|
|
"GetPropertyBSTR with the respective property.")]
|
|
HRESULT GetDomain(
|
|
[out] BSTR* pbstrDomain);
|
|
|
|
[helpstring("This function is for convenience and is the same as calling "
|
|
"GetPropertyBSTR with the respective property.")]
|
|
HRESULT GetExtension(
|
|
[out] BSTR* pbstrExtension);
|
|
|
|
[helpstring("This function is for convenience and is the same as calling "
|
|
"GetPropertyBSTR with the respective property.")]
|
|
HRESULT GetFragment(
|
|
[out] BSTR* pbstrFragment);
|
|
|
|
[helpstring("This function is for convenience and is the same as calling "
|
|
"GetPropertyBSTR with the respective property.")]
|
|
HRESULT GetHost(
|
|
[out] BSTR* pbstrHost);
|
|
|
|
[helpstring("This function is for convenience and is the same as calling "
|
|
"GetPropertyBSTR with the respective property.")]
|
|
HRESULT GetPassword(
|
|
[out] BSTR* pbstrPassword);
|
|
|
|
[helpstring("This function is for convenience and is the same as calling "
|
|
"GetPropertyBSTR with the respective property.")]
|
|
HRESULT GetPath(
|
|
[out] BSTR* pbstrPath);
|
|
|
|
[helpstring("This function is for convenience and is the same as calling "
|
|
"GetPropertyBSTR with the respective property.")]
|
|
HRESULT GetPathAndQuery(
|
|
[out] BSTR* pbstrPathAndQuery);
|
|
|
|
[helpstring("This function is for convenience and is the same as calling "
|
|
"GetPropertyBSTR with the respective property.")]
|
|
HRESULT GetQuery(
|
|
[out] BSTR* pbstrQuery);
|
|
|
|
[helpstring("This function is for convenience and is the same as calling "
|
|
"GetPropertyBSTR with the respective property.")]
|
|
HRESULT GetRawUri(
|
|
[out] BSTR* pbstrRawUri);
|
|
|
|
[helpstring("This function is for convenience and is the same as calling "
|
|
"GetPropertyBSTR with the respective property.")]
|
|
HRESULT GetSchemeName(
|
|
[out] BSTR* pbstrSchemeName);
|
|
|
|
[helpstring("This function is for convenience and is the same as calling "
|
|
"GetPropertyBSTR with the respective property.")]
|
|
HRESULT GetUserInfo(
|
|
[out] BSTR* pbstrUserInfo);
|
|
|
|
[helpstring("This function is for convenience and is the same as calling "
|
|
"GetPropertyBSTR with the respective property.")]
|
|
HRESULT GetUserName(
|
|
[out] BSTR* pbstrUserName);
|
|
|
|
[helpstring("This function is for convenience and is the same as calling "
|
|
"GetPropertyDWORD with the respective property.")]
|
|
HRESULT GetHostType(
|
|
[out] DWORD* pdwHostType);
|
|
|
|
[helpstring("This function is for convenience and is the same as calling "
|
|
"GetPropertyDWORD with the respective property.")]
|
|
HRESULT GetPort(
|
|
[out] DWORD* pdwPort);
|
|
|
|
[helpstring("This function is for convenience and is the same as calling "
|
|
"GetPropertyDWORD with the respective property.")]
|
|
HRESULT GetScheme(
|
|
[out] DWORD* pdwScheme);
|
|
|
|
[helpstring("This function is for convenience and is the same as calling "
|
|
"GetPropertyDWORD with the respective property.")]
|
|
HRESULT GetZone(
|
|
[out] DWORD* pdwZone);
|
|
|
|
[helpstring("This function sets pdwFlags to a bitmap using the values "
|
|
"Uri_HAS_PROPERTY.")]
|
|
HRESULT GetProperties(
|
|
[out] LPDWORD pdwFlags);
|
|
|
|
[helpstring("pfEqual is set TRUE if the logical content of the URIs are "
|
|
"the same")]
|
|
HRESULT IsEqual(
|
|
[in] IUri* pUri,
|
|
[out] BOOL* pfEqual);
|
|
}
|
|
|
|
#pragma midl_echo("STDAPI CreateUri(__in LPCWSTR pwzURI,")
|
|
#pragma midl_echo(" __in DWORD dwFlags,")
|
|
#pragma midl_echo(" __reserved DWORD_PTR dwReserved, // must be 0")
|
|
#pragma midl_echo(" __out IUri** ppURI);")
|
|
#pragma midl_echo("")
|
|
#pragma midl_echo("STDAPI CreateUriWithFragment(")
|
|
#pragma midl_echo(" __in LPCWSTR pwzURI,")
|
|
#pragma midl_echo(" __in_opt LPCWSTR pwzFragment, // can be NULL")
|
|
#pragma midl_echo(" __in DWORD dwFlags,")
|
|
#pragma midl_echo(" __reserved DWORD_PTR dwReserved, // must be 0")
|
|
#pragma midl_echo(" __out IUri** ppURI);")
|
|
#pragma midl_echo("")
|
|
#pragma midl_echo("STDAPI CreateUriFromMultiByteString(")
|
|
#pragma midl_echo(" __in LPCSTR pszANSIInputUri,")
|
|
#pragma midl_echo(" DWORD dwEncodingFlags, // ORed set of Uri_ENCODING_ flags")
|
|
#pragma midl_echo(" DWORD dwCodePage,")
|
|
#pragma midl_echo(" DWORD dwCreateFlags,")
|
|
#pragma midl_echo(" __reserved DWORD_PTR dwReserved, // must be 0")
|
|
#pragma midl_echo(" __out IUri** ppUri);")
|
|
#pragma midl_echo("")
|
|
#pragma midl_echo("//The following flags are used with IUri::GetProperties.")
|
|
#pragma midl_echo("#define Uri_HAS_ABSOLUTE_URI (1 << Uri_PROPERTY_ABSOLUTE_URI)")
|
|
#pragma midl_echo("#define Uri_HAS_AUTHORITY (1 << Uri_PROPERTY_AUTHORITY)")
|
|
#pragma midl_echo("#define Uri_HAS_DISPLAY_URI (1 << Uri_PROPERTY_DISPLAY_URI)")
|
|
#pragma midl_echo("#define Uri_HAS_DOMAIN (1 << Uri_PROPERTY_DOMAIN)")
|
|
#pragma midl_echo("#define Uri_HAS_EXTENSION (1 << Uri_PROPERTY_EXTENSION)")
|
|
#pragma midl_echo("#define Uri_HAS_FRAGMENT (1 << Uri_PROPERTY_FRAGMENT)")
|
|
#pragma midl_echo("#define Uri_HAS_HOST (1 << Uri_PROPERTY_HOST)")
|
|
#pragma midl_echo("#define Uri_HAS_PASSWORD (1 << Uri_PROPERTY_PASSWORD)")
|
|
#pragma midl_echo("#define Uri_HAS_PATH (1 << Uri_PROPERTY_PATH)")
|
|
#pragma midl_echo("#define Uri_HAS_QUERY (1 << Uri_PROPERTY_QUERY)")
|
|
#pragma midl_echo("#define Uri_HAS_RAW_URI (1 << Uri_PROPERTY_RAW_URI)")
|
|
#pragma midl_echo("#define Uri_HAS_SCHEME_NAME (1 << Uri_PROPERTY_SCHEME_NAME)")
|
|
#pragma midl_echo("#define Uri_HAS_USER_NAME (1 << Uri_PROPERTY_USER_NAME)")
|
|
#pragma midl_echo("#define Uri_HAS_PATH_AND_QUERY (1 << Uri_PROPERTY_PATH_AND_QUERY)")
|
|
#pragma midl_echo("#define Uri_HAS_USER_INFO (1 << Uri_PROPERTY_USER_INFO)")
|
|
#pragma midl_echo("#define Uri_HAS_HOST_TYPE (1 << Uri_PROPERTY_HOST_TYPE)")
|
|
#pragma midl_echo("#define Uri_HAS_PORT (1 << Uri_PROPERTY_PORT)")
|
|
#pragma midl_echo("#define Uri_HAS_SCHEME (1 << Uri_PROPERTY_SCHEME)")
|
|
#pragma midl_echo("#define Uri_HAS_ZONE (1 << Uri_PROPERTY_ZONE)")
|
|
#pragma midl_echo("")
|
|
#pragma midl_echo("//The following public Uri_CREATE flags may be passed in ")
|
|
#pragma midl_echo("//through the dwFlags parameter of the CreateUri functions.")
|
|
#pragma midl_echo("//Note that ALLOW_RELATIVE and ALLOW_IMPLICIT_WILDCARD_SCHEME are mutually exclusive and may not be passed together.")
|
|
#pragma midl_echo("#define Uri_CREATE_ALLOW_RELATIVE 0x00000001 // When the scheme is unspecified and not implicit file, assume relative.")
|
|
#pragma midl_echo("#define Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME 0x00000002 // When the scheme is unspecified and not implicit file, assume wildcard.")
|
|
#pragma midl_echo("#define Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME 0x00000004 // When the scheme is unspecified and it starts with X: or \\\\ assume its a file scheme.")
|
|
#pragma midl_echo("#define Uri_CREATE_NOFRAG 0x00000008 // If there's a query string don't look for a fragment")
|
|
#pragma midl_echo("#define Uri_CREATE_NO_CANONICALIZE 0x00000010 // Do not canonicalize the scheme, host, authority, or path")
|
|
#pragma midl_echo("#define Uri_CREATE_CANONICALIZE 0x00000100 // DEFAULT: Canonicalize the scheme, host, authority, and path")
|
|
#pragma midl_echo("#define Uri_CREATE_FILE_USE_DOS_PATH 0x00000020 // Use DOS path compat mode for file URI creation")
|
|
#pragma midl_echo("#define Uri_CREATE_DECODE_EXTRA_INFO 0x00000040 // Beta2 DEFAULT: Decode the contents of query and fragment, then re-encode reserved characters")
|
|
#pragma midl_echo("#define Uri_CREATE_NO_DECODE_EXTRA_INFO 0x00000080 // Beta1 DEFAULT: Neither decode nor re-encode any part of the query or fragment")
|
|
#pragma midl_echo("#define Uri_CREATE_CRACK_UNKNOWN_SCHEMES 0x00000200 // Beta2 DEFAULT: Heirarchical URIs with present and unknown schemes will be treated like heirarchical URIs")
|
|
#pragma midl_echo("#define Uri_CREATE_NO_CRACK_UNKNOWN_SCHEMES 0x00000400 // Beta1 DEFAULT: Heirarchical URIs with present and unknown schemes will be treated like opaque URIs")
|
|
#pragma midl_echo("#define Uri_CREATE_PRE_PROCESS_HTML_URI 0x00000800 // DEFAULT: Perform pre-processing on the URI to remove control characters and whitespace as if the URI comes from the raw href value of an HTML page.")
|
|
#pragma midl_echo("#define Uri_CREATE_NO_PRE_PROCESS_HTML_URI 0x00001000 // Don't perform pre-processing to remove control characters and whitespace as appropriate.")
|
|
#pragma midl_echo("#define Uri_CREATE_IE_SETTINGS 0x00002000 // Use IE registry settings for such things as whether or not to use IDN.")
|
|
#pragma midl_echo("#define Uri_CREATE_NO_IE_SETTINGS 0x00004000 // DEFAULT: Don't use IE registry settings.")
|
|
#pragma midl_echo("#define Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS 0x00008000 // Don't percent-encode characters that are forbidden by the RFC.")
|
|
|
|
#pragma midl_echo("//The following flags may be passed in through the dwFlags ")
|
|
#pragma midl_echo("//parameter of the IUri::GetPropertyBSTR or IUri::GetPropertyLength functions.")
|
|
#pragma midl_echo("//The following flags apply only to the property Uri_PROPERTY_DISPLAY_URI:")
|
|
#pragma midl_echo("#define Uri_DISPLAY_NO_FRAGMENT 0x00000001 // Exclude fragment from the DisplayUri, if one exists")
|
|
#pragma midl_echo("#define Uri_PUNYCODE_IDN_HOST 0x00000002 // Show the hostname encoded as punycode inside the Host, Domain, or AbsoluteUri properties, if the Uri is IDN")
|
|
#pragma midl_echo("#define Uri_DISPLAY_IDN_HOST 0x00000004 // Show the hostname encoded as punycode or Unicode as it would appear in the DisplayUri property. This applies to the Host, Domain, and AbsoluteUri properties.")
|
|
|
|
#pragma midl_echo("// The following are Uri_ENCODING_ flags for use with the function CreateUriFromMultiByteString")
|
|
#pragma midl_echo("#define Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8 0x00000001")
|
|
#pragma midl_echo("#define Uri_ENCODING_USER_INFO_AND_PATH_IS_CP 0x00000002")
|
|
#pragma midl_echo("#define Uri_ENCODING_HOST_IS_IDN 0x00000004")
|
|
#pragma midl_echo("#define Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8 0x00000008")
|
|
#pragma midl_echo("#define Uri_ENCODING_HOST_IS_PERCENT_ENCODED_CP 0x00000010")
|
|
#pragma midl_echo("#define Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8 0x00000020")
|
|
#pragma midl_echo("#define Uri_ENCODING_QUERY_AND_FRAGMENT_IS_CP 0x00000040")
|
|
#pragma midl_echo("#define Uri_ENCODING_RFC (Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8 | Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8 | Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8)")
|
|
|
|
#pragma midl_echo("")
|
|
#pragma midl_echo("//The following flags may be passed in through the dwUriBuilderFlags ")
|
|
#pragma midl_echo("//parameter of the IUriBuilder::CreateUri")
|
|
#pragma midl_echo("#define UriBuilder_USE_ORIGINAL_FLAGS 0x00000001 // Use the create flags from the underlying IUri if they are available.")
|
|
#pragma midl_echo("")
|
|
|
|
|
|
cpp_quote("#endif")
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(a158a630-ed6f-45fb-b987-f68676f57752),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IUriContainer : IUnknown
|
|
{
|
|
[helpstring("GetIUri will set ppIUri to the IUri contained by the "
|
|
"IUriContainer. The IUri is AddRefed before being passed out.")]
|
|
HRESULT GetIUri([out] IUri** ppIUri);
|
|
}
|
|
|
|
|
|
[
|
|
helpstring("Interface used to create a new IUri by modifying an existing one"),
|
|
local,
|
|
object,
|
|
uuid(4221B2E1-8955-46c0-BD5B-DE9897565DE7),
|
|
pointer_default(unique)
|
|
]
|
|
interface IUriBuilder: IUnknown
|
|
{
|
|
[helpstring("Returns a new IUri* object based on changes made to the base IUri using the same flags to create the original IUri. If no changes are made, the method may return a pointer to the original IUri (after incrementing the reference count).")]
|
|
HRESULT CreateUriSimple(
|
|
[in] DWORD dwAllowEncodingPropertyMask,
|
|
[in] DWORD_PTR dwReserved,
|
|
[out, annotation("__deref_out")]IUri **ppIUri);
|
|
|
|
[helpstring("Returns a new IUri* object based on changes made to the base IUri. If no changes are made, the method may return a pointer to the original IUri (after incrementing the reference count).")]
|
|
HRESULT CreateUri(
|
|
[in] DWORD dwCreateFlags,
|
|
[in] DWORD dwAllowEncodingPropertyMask,
|
|
[in] DWORD_PTR dwReserved,
|
|
[out, annotation("__deref_out")]IUri **ppIUri);
|
|
|
|
[helpstring("Returns a new IUri* object based on changes made to the base IUri. If no changes are made, the method may return a pointer to the original IUri (after incrementing the reference count).")]
|
|
HRESULT CreateUriWithFlags(
|
|
[in] DWORD dwCreateFlags,
|
|
[in] DWORD dwUriBuilderFlags,
|
|
[in] DWORD dwAllowEncodingPropertyMask,
|
|
[in] DWORD_PTR dwReserved,
|
|
[out, annotation("__deref_out")]IUri **ppIUri);
|
|
|
|
[helpstring("Gets a pointer to the original IUri* on which this IUri is based; the calling context must Release() the pointer.")]
|
|
HRESULT GetIUri(
|
|
[out, annotation("__deref_out_opt")]IUri **ppIUri);
|
|
|
|
[helpstring("Sets the IUri* held by the IUriBuilder; invalidates all properties and releases the current IUri*")]
|
|
HRESULT SetIUri(
|
|
[in, unique, annotation("__in_opt")]IUri *pIUri);
|
|
|
|
[helpstring("Gets a pointer the Fragment property; returns S_FALSE if the property has not been set; the calling context must not free the returned pointer.")]
|
|
HRESULT GetFragment(
|
|
[out, annotation("__out")] DWORD *pcchFragment,
|
|
[out, annotation("__deref_out_opt")]LPCWSTR *ppwzFragment);
|
|
|
|
[helpstring("Gets the Host property; returns S_FALSE if the property has not been set; the calling context must not free the returned pointer.")]
|
|
HRESULT GetHost(
|
|
[out, annotation("__out")] DWORD *pcchHost,
|
|
[out, annotation("__deref_out_opt")]LPCWSTR *ppwzHost);
|
|
|
|
[helpstring("Gets the Password property; returns S_FALSE if the property has not been set; the calling context must not free the returned pointer.")]
|
|
HRESULT GetPassword(
|
|
[out, annotation("__out")] DWORD *pcchPassword,
|
|
[out, annotation("__deref_out_opt")]LPCWSTR *ppwzPassword);
|
|
|
|
[helpstring("Gets the Path property; returns S_FALSE if the property has not been set; the calling context must not free the returned pointer.")]
|
|
HRESULT GetPath(
|
|
[out, annotation("__out")] DWORD *pcchPath,
|
|
[out, annotation("__deref_out_opt")]LPCWSTR *ppwzPath);
|
|
|
|
[helpstring("Gets the Port property; returns S_FALSE if the property has not been set.")]
|
|
HRESULT GetPort(
|
|
[out, annotation("__out")]BOOL *pfHasPort,
|
|
[out, annotation("__out")]DWORD *pdwPort);
|
|
|
|
[helpstring("Gets the Query property; returns S_FALSE if the property has not been set; the calling context must not free the returned pointer.")]
|
|
HRESULT GetQuery(
|
|
[out, annotation("__out")] DWORD *pcchQuery,
|
|
[out, annotation("__deref_out_opt")]LPCWSTR *ppwzQuery);
|
|
|
|
[helpstring("Gets the SchemeName property; returns S_FALSE if the property has not been set; the calling context must not free the returned pointer.")]
|
|
HRESULT GetSchemeName(
|
|
[out, annotation("__out")] DWORD *pcchSchemeName,
|
|
[out, annotation("__deref_out_opt")]LPCWSTR *ppwzSchemeName);
|
|
|
|
[helpstring("Gets the UserName property; returns S_FALSE if the property has not been set; the calling context must not free the returned pointer.")]
|
|
HRESULT GetUserName(
|
|
[out, annotation("__out")] DWORD *pcchUserName,
|
|
[out, annotation("__deref_out_opt")]LPCWSTR *ppwzUserName);
|
|
|
|
[helpstring("Sets Fragment to pwzNewValue; invalidates AbsoluteUri, DisplayUri")]
|
|
HRESULT SetFragment(
|
|
[in, annotation("__in_opt")]LPCWSTR pwzNewValue);
|
|
|
|
[helpstring("Sets Host to pwzNewValue; invalidates Authority, AbsoluteUri, Domain; pwzNewValue must be neither empty nor NULL")]
|
|
HRESULT SetHost(
|
|
[in, annotation("__in")]LPCWSTR pwzNewValue);
|
|
|
|
[helpstring("Sets Password to pwzNewValue; invalidates Authority, AbsoluteUri")]
|
|
HRESULT SetPassword(
|
|
[in, annotation("__in_opt")]LPCWSTR pwzNewValue);
|
|
|
|
[helpstring("Sets Path to pwzNewValue; invalidates AbsoluteUri, DisplayUri, PathAndQuery; pwzNewValue must be an absolute path if non-NULL")]
|
|
HRESULT SetPath(
|
|
[in, annotation("__in_opt")]LPCWSTR pwzNewValue);
|
|
|
|
[helpstring("Sets Port to dwNewValue; invalidates AbsoluteUri, Authority, DisplayUri")]
|
|
HRESULT SetPort(
|
|
[in]BOOL fHasPort,
|
|
[in]DWORD dwNewValue);
|
|
|
|
[helpstring("Sets Query to pwzNewValue; invalidates AbsoluteUri, DisplayUri, PathAndQuery")]
|
|
HRESULT SetQuery(
|
|
[in, annotation("__in_opt")]LPCWSTR pwzNewValue);
|
|
|
|
[helpstring("Sets SchemeName to pwzNewValue; invalidates AbsoluteUri, DisplayUri; pwzNewValue must be neither empty nor NULL")]
|
|
HRESULT SetSchemeName(
|
|
[in, annotation("__in")]LPCWSTR pwzNewValue);
|
|
|
|
[helpstring("Sets UserName to pwzNewValue; invalidates Authority, AbsoluteUri")]
|
|
HRESULT SetUserName(
|
|
[in, annotation("__in_opt")]LPCWSTR pwzNewValue);
|
|
|
|
[helpstring("Removes the properties indicated by the bits in dwPropertyMask (from constants Uri_HAS_* flags) as well as any derived properties; SchemeName may not be removed")]
|
|
HRESULT RemoveProperties(
|
|
[in]DWORD dwPropertyMask);
|
|
|
|
[helpstring("Returns TRUE if the IUriBuilder has been changed from the values from the base IUri*")]
|
|
HRESULT HasBeenModified(
|
|
[out,annotation("__out")]BOOL *pfModified);
|
|
};
|
|
|
|
|
|
[
|
|
helpstring("Interface to create an IUriBuilder appropriate to the this object"),
|
|
local,
|
|
object,
|
|
uuid(E982CE48-0B96-440c-BC37-0C869B27A29E),
|
|
pointer_default(unique)
|
|
]
|
|
interface IUriBuilderFactory: IUnknown
|
|
{
|
|
[helpstring("Return an IUriBuilder that can operate on this object (but which points to no IUri)")]
|
|
HRESULT CreateIUriBuilder(
|
|
[in, annotation("__in")] DWORD dwFlags,
|
|
[in, annotation("__in")] DWORD_PTR dwReserved,
|
|
[out, annotation("__deref_out")] IUriBuilder **ppIUriBuilder);
|
|
|
|
[helpstring("Return an IUriBuilder that can operate on this object (and holds a reference to it)")]
|
|
HRESULT CreateInitializedIUriBuilder(
|
|
[in, annotation("__in")] DWORD dwFlags,
|
|
[in, annotation("__in")] DWORD_PTR dwReserved,
|
|
[out, annotation("__deref_out")] IUriBuilder **ppIUriBuilder);
|
|
};
|
|
|
|
|
|
#pragma midl_echo("STDAPI CreateIUriBuilder(")
|
|
#pragma midl_echo(" __in_opt IUri *pIUri,")
|
|
#pragma midl_echo(" __in DWORD dwFlags,")
|
|
#pragma midl_echo(" __in DWORD_PTR dwReserved,")
|
|
#pragma midl_echo(" __deref_out IUriBuilder **ppIUriBuilder")
|
|
#pragma midl_echo(" );")
|
|
|
|
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE70)")
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IWinInetInfo interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPWININETINFO_DEFINED")
|
|
cpp_quote("#define _LPWININETINFO_DEFINED")
|
|
|
|
[
|
|
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);
|
|
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
cpp_quote("#define WININETINFO_OPTION_LOCK_HANDLE 65534")
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IHttpSecurity interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPHTTPSECURITY_DEFINED")
|
|
cpp_quote("#define _LPHTTPSECURITY_DEFINED")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(79eac9d7-bafa-11ce-8c82-00aa004ba90b),
|
|
|
|
pointer_default(unique)
|
|
]
|
|
|
|
|
|
interface IHttpSecurity : IWindowForBindingUI
|
|
{
|
|
typedef [unique] IHttpSecurity *LPHTTPSECURITY;
|
|
|
|
HRESULT OnSecurityProblem(
|
|
[in] DWORD dwProblem);
|
|
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IWinInetHttpInfo interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPWININETHTTPINFO_DEFINED")
|
|
cpp_quote("#define _LPWININETHTTPINFO_DEFINED")
|
|
|
|
[
|
|
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
|
|
);
|
|
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IWinInetCacheHints interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPWININETCACHEHINTS_DEFINED")
|
|
cpp_quote("#define _LPWININETCACHEHINTS_DEFINED")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(DD1EC3B3-8391-4fdb-A9E6-347C3CAAA7DD),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IWinInetCacheHints : IUnknown
|
|
{
|
|
typedef [unique] IWinInetCacheHints *LPWININETCACHEHINTS;
|
|
|
|
HRESULT SetCacheExtension(
|
|
[in] LPCWSTR pwzExt,
|
|
[in,out,size_is(*pcbCacheFile)] LPVOID pszCacheFile,
|
|
[in, out] DWORD* pcbCacheFile,
|
|
[in, out] DWORD* pdwWinInetError,
|
|
[in, out] DWORD* pdwReserved
|
|
);
|
|
}
|
|
cpp_quote("#endif")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IWinInetCacheHints interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPWININETCACHEHINTS2_DEFINED")
|
|
cpp_quote("#define _LPWININETCACHEHINTS2_DEFINED")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(7857AEAC-D31F-49bf-884E-DD46DF36780A),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IWinInetCacheHints2 : IWinInetCacheHints
|
|
{
|
|
typedef [unique] IWinInetCacheHints2 *LPWININETCACHEHINTS2;
|
|
|
|
HRESULT SetCacheExtension2(
|
|
[in] LPCWSTR pwzExt,
|
|
[out, size_is(sizeof(WCHAR) * (*pcchCacheFile)),
|
|
annotation("__RPC__out_ecount(*pcchCacheFile)")]
|
|
WCHAR *pwzCacheFile,
|
|
[in, out] DWORD* pcchCacheFile,
|
|
[out] DWORD* pdwWinInetError,
|
|
[out] DWORD* pdwReserved
|
|
);
|
|
}
|
|
cpp_quote("#endif")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE70)")
|
|
|
|
|
|
cpp_quote("#define SID_IBindHost IID_IBindHost")
|
|
cpp_quote("#define SID_SBindHost IID_IBindHost")
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IBindHost definition
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPBINDHOST_DEFINED")
|
|
cpp_quote("#define _LPBINDHOST_DEFINED")
|
|
|
|
cpp_quote("EXTERN_C const GUID SID_BindHost;")
|
|
[
|
|
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);
|
|
}
|
|
|
|
cpp_quote("#endif")
|
|
|
|
// urlhlink stuff
|
|
#pragma midl_echo(" ")
|
|
cpp_quote("// These are for backwards compatibility with previous URLMON versions")
|
|
#pragma midl_echo("// Flags for the UrlDownloadToCacheFile ")
|
|
#pragma midl_echo("#define URLOSTRM_USECACHEDCOPY_ONLY 0x1 // Only get from cache ")
|
|
#pragma midl_echo("#define URLOSTRM_USECACHEDCOPY 0x2 // Get from cache if available else download ")
|
|
#pragma midl_echo("#define URLOSTRM_GETNEWESTVERSION 0x3 // Get new version only. But put it in cache too ")
|
|
#pragma midl_echo(" ")
|
|
#pragma midl_echo(" ")
|
|
#pragma midl_echo("struct IBindStatusCallback; ")
|
|
#pragma midl_echo("STDAPI HlinkSimpleNavigateToString( ")
|
|
#pragma midl_echo(" /* [in] */ LPCWSTR szTarget, // required - target document - null if local jump w/in doc ")
|
|
#pragma midl_echo(" /* [in] */ LPCWSTR szLocation, // optional, for navigation into middle of a doc ")
|
|
#pragma midl_echo(" /* [in] */ LPCWSTR szTargetFrameName,// optional, for targeting frame-sets ")
|
|
#pragma midl_echo(" /* [in] */ IUnknown *pUnk, // required - we'll search this for other necessary interfaces ")
|
|
#pragma midl_echo(" /* [in] */ IBindCtx *pbc, // optional. caller may register an IBSC in this ")
|
|
#pragma midl_echo(" /* [in] */ IBindStatusCallback *, ")
|
|
#pragma midl_echo(" /* [in] */ DWORD grfHLNF, // flags ")
|
|
#pragma midl_echo(" /* [in] */ DWORD dwReserved // for future use, must be NULL ")
|
|
#pragma midl_echo("); ")
|
|
#pragma midl_echo(" ")
|
|
#pragma midl_echo("STDAPI HlinkSimpleNavigateToMoniker( ")
|
|
#pragma midl_echo(" /* [in] */ IMoniker *pmkTarget, // required - target document - (may be null ")
|
|
#pragma midl_echo(" /* [in] */ LPCWSTR szLocation, // optional, for navigation into middle of a doc ")
|
|
#pragma midl_echo(" /* [in] */ LPCWSTR szTargetFrameName,// optional, for targeting frame-sets ")
|
|
#pragma midl_echo(" /* [in] */ IUnknown *pUnk, // required - we'll search this for other necessary interfaces ")
|
|
#pragma midl_echo(" /* [in] */ IBindCtx *pbc, // optional. caller may register an IBSC in this ")
|
|
#pragma midl_echo(" /* [in] */ IBindStatusCallback *, ")
|
|
#pragma midl_echo(" /* [in] */ DWORD grfHLNF, // flags ")
|
|
#pragma midl_echo(" /* [in] */ DWORD dwReserved // for future use, must be NULL ")
|
|
#pragma midl_echo("); ")
|
|
//#pragma midl_echo("typedef HRESULT (STDAPICALLTYPE *LPFNUOSCALLBACK)(LPBINDSTATUSCALLBACK); ")
|
|
#pragma midl_echo(" ")
|
|
#pragma midl_echo("STDAPI URLOpenStreamA(LPUNKNOWN,LPCSTR,DWORD,LPBINDSTATUSCALLBACK); ")
|
|
#pragma midl_echo("STDAPI URLOpenStreamW(LPUNKNOWN,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK); ")
|
|
#pragma midl_echo("STDAPI URLOpenPullStreamA(LPUNKNOWN,LPCSTR,DWORD,LPBINDSTATUSCALLBACK); ")
|
|
#pragma midl_echo("STDAPI URLOpenPullStreamW(LPUNKNOWN,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK); ")
|
|
#pragma midl_echo("STDAPI URLDownloadToFileA(LPUNKNOWN,LPCSTR,LPCSTR,DWORD,LPBINDSTATUSCALLBACK); ")
|
|
#pragma midl_echo("STDAPI URLDownloadToFileW(LPUNKNOWN,LPCWSTR,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK); ")
|
|
#pragma midl_echo("STDAPI URLDownloadToCacheFileA(__in_opt LPUNKNOWN, __in LPCSTR, __out_ecount(cchFileName) LPSTR, DWORD cchFileName, DWORD, __in_opt LPBINDSTATUSCALLBACK);")
|
|
#pragma midl_echo("STDAPI URLDownloadToCacheFileW(__in_opt LPUNKNOWN, __in LPCWSTR, __out_ecount(cchFileName) LPWSTR, DWORD cchFileName, DWORD, __in_opt LPBINDSTATUSCALLBACK);")
|
|
#pragma midl_echo("STDAPI URLOpenBlockingStreamA(LPUNKNOWN,LPCSTR,LPSTREAM*,DWORD,LPBINDSTATUSCALLBACK); ")
|
|
#pragma midl_echo("STDAPI URLOpenBlockingStreamW(LPUNKNOWN,LPCWSTR,LPSTREAM*,DWORD,LPBINDSTATUSCALLBACK); ")
|
|
#pragma midl_echo(" ")
|
|
#pragma midl_echo("#ifdef UNICODE ")
|
|
#pragma midl_echo("#define URLOpenStream URLOpenStreamW ")
|
|
#pragma midl_echo("#define URLOpenPullStream URLOpenPullStreamW ")
|
|
#pragma midl_echo("#define URLDownloadToFile URLDownloadToFileW ")
|
|
#pragma midl_echo("#define URLDownloadToCacheFile URLDownloadToCacheFileW ")
|
|
#pragma midl_echo("#define URLOpenBlockingStream URLOpenBlockingStreamW ")
|
|
#pragma midl_echo("#else ")
|
|
#pragma midl_echo("#define URLOpenStream URLOpenStreamA ")
|
|
#pragma midl_echo("#define URLOpenPullStream URLOpenPullStreamA ")
|
|
#pragma midl_echo("#define URLDownloadToFile URLDownloadToFileA ")
|
|
#pragma midl_echo("#define URLDownloadToCacheFile URLDownloadToCacheFileA ")
|
|
#pragma midl_echo("#define URLOpenBlockingStream URLOpenBlockingStreamA ")
|
|
#pragma midl_echo("#endif // !UNICODE ")
|
|
#pragma midl_echo(" ")
|
|
#pragma midl_echo(" ")
|
|
#pragma midl_echo("STDAPI HlinkGoBack(IUnknown *pUnk); ")
|
|
#pragma midl_echo("STDAPI HlinkGoForward(IUnknown *pUnk); ")
|
|
#pragma midl_echo("STDAPI HlinkNavigateString(IUnknown *pUnk, LPCWSTR szTarget); ")
|
|
#pragma midl_echo("STDAPI HlinkNavigateMoniker(IUnknown *pUnk, IMoniker *pmkTarget); ")
|
|
#pragma midl_echo(" ")
|
|
// urlhlink end
|
|
|
|
|
|
//
|
|
// Some components to not want the new async plugable protocol interfaces (e.g OLE)
|
|
//
|
|
#pragma midl_echo("#ifndef _URLMON_NO_ASYNC_PLUGABLE_PROTOCOLS_ ")
|
|
|
|
interface IInternet;
|
|
interface IInternetBindInfo;
|
|
interface IInternetBindInfoEx;
|
|
interface IInternetProtocolRoot;
|
|
interface IInternetProtocol;
|
|
interface IInternetProtocolEx;
|
|
interface IInternetProtocolSink;
|
|
interface IInternetProtocolInfo;
|
|
interface IInternetSession;
|
|
interface IInternetProtocolSinkStackable;
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IInternet interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPIINTERNET")
|
|
cpp_quote("#define _LPIINTERNET")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(79eac9e0-baf9-11ce-8c82-00aa004ba90b),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IInternet : IUnknown
|
|
{
|
|
typedef [unique] IInternet *LPIINTERNET;
|
|
|
|
|
|
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IInternetBindInfo interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPIINTERNETBINDINFO")
|
|
cpp_quote("#define _LPIINTERNETBINDINFO")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(79eac9e1-baf9-11ce-8c82-00aa004ba90b),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IInternetBindInfo : IUnknown
|
|
{
|
|
typedef [unique] IInternetBindInfo *LPIINTERNETBINDINFO;
|
|
|
|
typedef enum tagBINDSTRING
|
|
{
|
|
BINDSTRING_HEADERS = 1
|
|
,BINDSTRING_ACCEPT_MIMES
|
|
,BINDSTRING_EXTRA_URL
|
|
,BINDSTRING_LANGUAGE
|
|
,BINDSTRING_USERNAME
|
|
,BINDSTRING_PASSWORD
|
|
,BINDSTRING_UA_PIXELS
|
|
,BINDSTRING_UA_COLOR
|
|
,BINDSTRING_OS
|
|
,BINDSTRING_USER_AGENT
|
|
,BINDSTRING_ACCEPT_ENCODINGS
|
|
,BINDSTRING_POST_COOKIE
|
|
,BINDSTRING_POST_DATA_MIME
|
|
,BINDSTRING_URL
|
|
,BINDSTRING_IID
|
|
,BINDSTRING_FLAG_BIND_TO_OBJECT
|
|
,BINDSTRING_PTR_BIND_CONTEXT
|
|
,BINDSTRING_XDR_ORIGIN
|
|
} BINDSTRING;
|
|
|
|
|
|
HRESULT GetBindInfo(
|
|
[out] DWORD *grfBINDF,
|
|
[in, out, unique] BINDINFO * pbindinfo
|
|
);
|
|
|
|
HRESULT GetBindString(
|
|
[in] ULONG ulStringType,
|
|
[in, out, annotation("__RPC__out")] LPOLESTR *ppwzStr,
|
|
[in] ULONG cEl,
|
|
[in, out] ULONG *pcElFetched
|
|
);
|
|
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IInternetBindInfoEx interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPIINTERNETBINDINFOEX")
|
|
cpp_quote("#define _LPIINTERNETBINDINFOEX")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(a3e015b7-a82c-4dcd-a150-569aeeed36ab),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IInternetBindInfoEx : IInternetBindInfo
|
|
{
|
|
typedef [unique] IInternetBindInfoEx *LPIINTERNETBINDINFOEX;
|
|
|
|
HRESULT GetBindInfoEx(
|
|
[out] DWORD *grfBINDF,
|
|
[in, out, unique] BINDINFO * pbindinfo,
|
|
[out] DWORD *grfBINDF2,
|
|
[out] DWORD *pdwReserved
|
|
);
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IInternetProtocolRoot interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPIINTERNETPROTOCOLROOT_DEFINED")
|
|
cpp_quote("#define _LPIINTERNETPROTOCOLROOT_DEFINED")
|
|
|
|
[
|
|
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
|
|
// new flags to deal with mime handler
|
|
// and to load app directly
|
|
,PI_PASSONBINDCTX = 0x00002000
|
|
,PI_NOMIMEHANDLER = 0x00008000
|
|
,PI_LOADAPPDIRECT = 0x00004000
|
|
// flags used in the protocol data on switch
|
|
,PD_FORCE_SWITCH = 0x00010000
|
|
,PI_PREFERDEFAULTHANDLER = 0x00020000
|
|
|
|
} PI_FLAGS;
|
|
|
|
typedef struct _tagPROTOCOLDATA
|
|
{
|
|
DWORD grfFlags;
|
|
DWORD dwState;
|
|
LPVOID pData;
|
|
ULONG cbData;
|
|
} PROTOCOLDATA;
|
|
|
|
typedef struct _tagStartParam
|
|
{
|
|
IID iid;
|
|
IBindCtx *pIBindCtx;
|
|
IUnknown *pItf;
|
|
} StartParam;
|
|
|
|
|
|
HRESULT Start(
|
|
[in] LPCWSTR szUrl,
|
|
[in] IInternetProtocolSink *pOIProtSink,
|
|
[in] IInternetBindInfo *pOIBindInfo,
|
|
[in] DWORD grfPI,
|
|
[in] HANDLE_PTR dwReserved
|
|
);
|
|
|
|
HRESULT Continue(
|
|
[in] PROTOCOLDATA *pProtocolData
|
|
);
|
|
|
|
HRESULT Abort(
|
|
[in] HRESULT hrReason,
|
|
[in] DWORD dwOptions
|
|
);
|
|
|
|
HRESULT Terminate(
|
|
[in] DWORD dwOptions
|
|
);
|
|
|
|
HRESULT Suspend();
|
|
|
|
HRESULT Resume();
|
|
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IInternetProtocol interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPIINTERNETPROTOCOL_DEFINED")
|
|
cpp_quote("#define _LPIINTERNETPROTOCOL_DEFINED")
|
|
|
|
[
|
|
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();
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IInternetProtocolEx interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPIINTERNETPROTOCOLEX_DEFINED")
|
|
cpp_quote("#define _LPIINTERNETPROTOCOLEX_DEFINED")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(C7A98E66-1010-492c-A1C8-C809E1F75905),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IInternetProtocolEx: IInternetProtocol
|
|
{
|
|
HRESULT StartEx(
|
|
[in] IUri *pUri,
|
|
[in] IInternetProtocolSink *pOIProtSink,
|
|
[in] IInternetBindInfo *pOIBindInfo,
|
|
[in] DWORD grfPI,
|
|
[in] HANDLE_PTR dwReserved
|
|
);
|
|
}
|
|
cpp_quote("#endif")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE70)")
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IInternetProtocolSink interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPIINTERNETPROTOCOLSINK_DEFINED")
|
|
cpp_quote("#define _LPIINTERNETPROTOCOLSINK_DEFINED")
|
|
|
|
[
|
|
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
|
|
);
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IInternetProtocolSinkStackable interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPIINTERNETPROTOCOLSINKSTACKABLE_DEFINED")
|
|
cpp_quote("#define _LPIINTERNETPROTOCOLSINKSTACKABLE_DEFINED")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(79eac9f0-baf9-11ce-8c82-00aa004ba90b),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IInternetProtocolSinkStackable : IUnknown
|
|
{
|
|
typedef [unique] IInternetProtocolSinkStackable *LPIINTERNETPROTOCOLSINKStackable;
|
|
|
|
HRESULT SwitchSink(
|
|
[in] IInternetProtocolSink *pOIProtSink
|
|
);
|
|
|
|
HRESULT CommitSwitch();
|
|
HRESULT RollbackSwitch();
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995 - 1997.
|
|
//
|
|
// Contents: IInternetSession interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPIINTERNETSESSION_DEFINED")
|
|
cpp_quote("#define _LPIINTERNETSESSION_DEFINED")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(79eac9e7-baf9-11ce-8c82-00aa004ba90b),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
|
|
interface IInternetSession : IUnknown
|
|
{
|
|
typedef [unique] IInternetSession *LPIINTERNETSESSION;
|
|
|
|
typedef enum _tagOIBDG_FLAGS
|
|
{
|
|
// default is free threaded
|
|
OIBDG_APARTMENTTHREADED = 0x00000100
|
|
,OIBDG_DATAONLY = 0x00001000
|
|
} OIBDG_FLAGS;
|
|
|
|
HRESULT RegisterNameSpace(
|
|
[in] IClassFactory *pCF,
|
|
[in] REFCLSID rclsid,
|
|
[in] LPCWSTR pwzProtocol,
|
|
[in] ULONG cPatterns,
|
|
[in] const LPCWSTR *ppwzPatterns,
|
|
[in] DWORD dwReserved
|
|
);
|
|
|
|
HRESULT UnregisterNameSpace(
|
|
[in] IClassFactory *pCF,
|
|
[in] LPCWSTR pszProtocol
|
|
);
|
|
|
|
HRESULT RegisterMimeFilter(
|
|
[in] IClassFactory *pCF,
|
|
[in] REFCLSID rclsid,
|
|
[in] LPCWSTR pwzType
|
|
);
|
|
|
|
HRESULT UnregisterMimeFilter(
|
|
[in] IClassFactory *pCF,
|
|
[in] LPCWSTR pwzType
|
|
);
|
|
|
|
HRESULT CreateBinding(
|
|
[in] LPBC pBC,
|
|
[in] LPCWSTR szUrl,
|
|
[in] IUnknown *pUnkOuter,
|
|
[out, unique] IUnknown **ppUnk,
|
|
[out, unique] IInternetProtocol **ppOInetProt,
|
|
[in] DWORD dwOption
|
|
);
|
|
|
|
HRESULT SetSessionOption(
|
|
[in] DWORD dwOption,
|
|
[in] LPVOID pBuffer,
|
|
[in] DWORD dwBufferLength,
|
|
[in] DWORD dwReserved
|
|
);
|
|
|
|
HRESULT GetSessionOption(
|
|
[in] DWORD dwOption,
|
|
[in, out] LPVOID pBuffer,
|
|
[in, out] DWORD *pdwBufferLength,
|
|
[in] DWORD dwReserved
|
|
);
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IInternetThreadSwitch interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPIINTERNETTHREADSWITCH_DEFINED")
|
|
cpp_quote("#define _LPIINTERNETTHREADSWITCH_DEFINED")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(79eac9e8-baf9-11ce-8c82-00aa004ba90b),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IInternetThreadSwitch : IUnknown
|
|
{
|
|
typedef [unique] IInternetThreadSwitch *LPIINTERNETTHREADSWITCH;
|
|
|
|
HRESULT Prepare();
|
|
|
|
HRESULT Continue();
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IInternetPriority interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPIINTERNETPRIORITY_DEFINED")
|
|
cpp_quote("#define _LPIINTERNETPRIORITY_DEFINED")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(79eac9eb-baf9-11ce-8c82-00aa004ba90b),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IInternetPriority : IUnknown
|
|
{
|
|
typedef [unique] IInternetPriority *LPIINTERNETPRIORITY;
|
|
|
|
HRESULT SetPriority(
|
|
[in] LONG nPriority
|
|
);
|
|
|
|
HRESULT GetPriority(
|
|
[out] LONG * pnPriority
|
|
);
|
|
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IInternetProtocolInfo interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPIINTERNETPROTOCOLINFO_DEFINED")
|
|
cpp_quote("#define _LPIINTERNETPROTOCOLINFO_DEFINED")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(79eac9ec-baf9-11ce-8c82-00aa004ba90b),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IInternetProtocolInfo : IUnknown
|
|
{
|
|
typedef [unique] IInternetProtocolInfo *LPIINTERNETPROTOCOLINFO;
|
|
|
|
typedef enum _tagPARSEACTION
|
|
{
|
|
PARSE_CANONICALIZE = 1 // compute canonical URL
|
|
,PARSE_FRIENDLY // get user friendly name from URL
|
|
,PARSE_SECURITY_URL // get security URL.
|
|
,PARSE_ROOTDOCUMENT // returns URL of root document for site
|
|
,PARSE_DOCUMENT // Strips of #anchor
|
|
,PARSE_ANCHOR // Strips of everything before #anchor
|
|
,PARSE_ENCODE_IS_UNESCAPE // decode/unescape (misnamed constant) - deprecated for PARSE_UNESCAPE
|
|
,PARSE_DECODE_IS_ESCAPE // encode/escape (misnamed constant) - deprecated for PARSE_ESCAPE
|
|
,PARSE_PATH_FROM_URL // get the path if apply
|
|
,PARSE_URL_FROM_PATH // create a url from the path
|
|
,PARSE_MIME // return mime of this url
|
|
,PARSE_SERVER // return server
|
|
,PARSE_SCHEMA
|
|
,PARSE_SITE
|
|
,PARSE_DOMAIN
|
|
,PARSE_LOCATION
|
|
,PARSE_SECURITY_DOMAIN // returns the canonical security form of the URL.
|
|
,PARSE_ESCAPE // encode the url
|
|
,PARSE_UNESCAPE // decode the url
|
|
} PARSEACTION;
|
|
|
|
// Actions for CoInternetGetSecurityURL function.
|
|
typedef enum _tagPSUACTION
|
|
{
|
|
PSU_DEFAULT = 1 // gets security URL and returns its domain.
|
|
,PSU_SECURITY_URL_ONLY // gets just the security URL
|
|
} PSUACTION;
|
|
|
|
//
|
|
// Query options - needs more work on possible options
|
|
//
|
|
typedef enum _tagQUERYOPTION
|
|
{
|
|
QUERY_EXPIRATION_DATE = 1 // the expiration date in form of systemtime
|
|
,QUERY_TIME_OF_LAST_CHANGE // time of last change in form of systemtime
|
|
,QUERY_CONTENT_ENCODING // the content concoding schema
|
|
,QUERY_CONTENT_TYPE // the content type header (mime and charset)
|
|
,QUERY_REFRESH // the refresh
|
|
,QUERY_RECOMBINE // combine the page URL with the nearest base if TRUE
|
|
,QUERY_CAN_NAVIGATE // does the protocol navigate (unlike mailto)
|
|
,QUERY_USES_NETWORK // will URL hit network
|
|
,QUERY_IS_CACHED // is data cached locally?
|
|
,QUERY_IS_INSTALLEDENTRY // Is the entry installed locally (on cdrom)
|
|
,QUERY_IS_CACHED_OR_MAPPED // is the entry in cache or is it on a mapped drive
|
|
// It may be mapped but may not actually be present
|
|
,QUERY_USES_CACHE // does the protocol use the internet cache
|
|
,QUERY_IS_SECURE // is the protocol encrypted
|
|
,QUERY_IS_SAFE // the protocol serves only trusted (e.g. local resource) content
|
|
,QUERY_USES_HISTORYFOLDER // should the urls from this protocol appear in history
|
|
} QUERYOPTION;
|
|
|
|
//
|
|
// returns:
|
|
// S_OK on success
|
|
// S_FALSE on success but buffer is too small
|
|
// INET_E_DEFAULT_ACTION if action is not know should be handled be default implementation
|
|
//
|
|
HRESULT ParseUrl(
|
|
[in] LPCWSTR pwzUrl,
|
|
[in] PARSEACTION ParseAction,
|
|
[in] DWORD dwParseFlags,
|
|
[out, annotation("__RPC__out")] LPWSTR pwzResult,
|
|
[in] DWORD cchResult,
|
|
[out] DWORD *pcchResult,
|
|
[in] DWORD dwReserved
|
|
);
|
|
|
|
//
|
|
// returns:
|
|
// S_OK on success
|
|
// S_FALSE on success but buffer is too small
|
|
// INET_E_DEFAULT_ACTION if action is not know should be handled be default implementation
|
|
//
|
|
HRESULT CombineUrl(
|
|
[in] LPCWSTR pwzBaseUrl,
|
|
[in] LPCWSTR pwzRelativeUrl,
|
|
[in] DWORD dwCombineFlags,
|
|
[out, annotation("__RPC__in")] LPWSTR pwzResult,
|
|
[in] DWORD cchResult,
|
|
[out] DWORD *pcchResult,
|
|
[in] DWORD dwReserved
|
|
);
|
|
|
|
//
|
|
// returns:
|
|
// S_OK if equal
|
|
// S_FALSE otherwise
|
|
//
|
|
HRESULT CompareUrl(
|
|
[in] LPCWSTR pwzUrl1,
|
|
[in] LPCWSTR pwzUrl2,
|
|
[in] DWORD dwCompareFlags
|
|
);
|
|
|
|
//
|
|
// returns:
|
|
// S_OK on success
|
|
// S_FALSE on success but buffer is too small
|
|
// INET_E_QUERYOPTION_UNKNOWN
|
|
//
|
|
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("#ifndef URLMON_STRICT")
|
|
cpp_quote("// PARSE_ENCODE was misnamed and is deprecated for PARSE_UNESCAPE")
|
|
cpp_quote("#define PARSE_ENCODE PARSE_ENCODE_IS_UNESCAPE")
|
|
cpp_quote("// PARSE_DECODE was misnamed and is deprecated for PARSE_ESCAPE")
|
|
cpp_quote("#define PARSE_DECODE PARSE_DECODE_IS_ESCAPE")
|
|
cpp_quote("#endif //!URLMON_STRICT")
|
|
|
|
cpp_quote("#endif")
|
|
|
|
//
|
|
// compatablility defines
|
|
//
|
|
cpp_quote("#define IOInet IInternet ")
|
|
cpp_quote("#define IOInetBindInfo IInternetBindInfo ")
|
|
cpp_quote("#define IOInetBindInfoEx IInternetBindInfoEx ")
|
|
cpp_quote("#define IOInetProtocolRoot IInternetProtocolRoot")
|
|
cpp_quote("#define IOInetProtocol IInternetProtocol ")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
|
|
cpp_quote("#define IOInetProtocolEx IInternetProtocolEx ")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE70)")
|
|
|
|
cpp_quote("#define IOInetProtocolSink IInternetProtocolSink")
|
|
cpp_quote("#define IOInetProtocolInfo IInternetProtocolInfo")
|
|
cpp_quote("#define IOInetSession IInternetSession ")
|
|
cpp_quote("#define IOInetPriority IInternetPriority ")
|
|
cpp_quote("#define IOInetThreadSwitch IInternetThreadSwitch")
|
|
cpp_quote("#define IOInetProtocolSinkStackable IInternetProtocolSinkStackable")
|
|
|
|
cpp_quote("#define LPOINET LPIINTERNET ")
|
|
cpp_quote("#define LPOINETPROTOCOLINFO LPIINTERNETPROTOCOLINFO ")
|
|
cpp_quote("#define LPOINETBINDINFO LPIINTERNETBINDINFO ")
|
|
cpp_quote("#define LPOINETPROTOCOLROOT LPIINTERNETPROTOCOLROOT ")
|
|
cpp_quote("#define LPOINETPROTOCOL LPIINTERNETPROTOCOL ")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
|
|
cpp_quote("#define LPOINETPROTOCOLEX LPIINTERNETPROTOCOLEX ")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE70)")
|
|
|
|
cpp_quote("#define LPOINETPROTOCOLSINK LPIINTERNETPROTOCOLSINK ")
|
|
cpp_quote("#define LPOINETSESSION LPIINTERNETSESSION ")
|
|
cpp_quote("#define LPOINETTHREADSWITCH LPIINTERNETTHREADSWITCH ")
|
|
cpp_quote("#define LPOINETPRIORITY LPIINTERNETPRIORITY ")
|
|
cpp_quote("#define LPOINETPROTOCOLINFO LPIINTERNETPROTOCOLINFO ")
|
|
cpp_quote("#define LPOINETPROTOCOLSINKSTACKABLE LPIINTERNETPROTOCOLSINKSTACKABLE ")
|
|
|
|
|
|
cpp_quote("#define IID_IOInet IID_IInternet ")
|
|
cpp_quote("#define IID_IOInetBindInfo IID_IInternetBindInfo ")
|
|
cpp_quote("#define IID_IOInetBindInfoEx IID_IInternetBindInfoEx ")
|
|
cpp_quote("#define IID_IOInetProtocolRoot IID_IInternetProtocolRoot")
|
|
cpp_quote("#define IID_IOInetProtocol IID_IInternetProtocol ")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
|
|
cpp_quote("#define IID_IOInetProtocolEx IID_IInternetProtocolEx ")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE70)")
|
|
|
|
cpp_quote("#define IID_IOInetProtocolSink IID_IInternetProtocolSink")
|
|
cpp_quote("#define IID_IOInetProtocolInfo IID_IInternetProtocolInfo")
|
|
cpp_quote("#define IID_IOInetSession IID_IInternetSession ")
|
|
cpp_quote("#define IID_IOInetPriority IID_IInternetPriority ")
|
|
cpp_quote("#define IID_IOInetThreadSwitch IID_IInternetThreadSwitch")
|
|
cpp_quote("#define IID_IOInetProtocolSinkStackable IID_IInternetProtocolSinkStackable")
|
|
|
|
|
|
//
|
|
// OInet helper functions for url parsing
|
|
//
|
|
#pragma midl_echo("STDAPI CoInternetParseUrl( ")
|
|
#pragma midl_echo(" LPCWSTR pwzUrl, ")
|
|
#pragma midl_echo(" PARSEACTION ParseAction, ")
|
|
#pragma midl_echo(" DWORD dwFlags, ")
|
|
#pragma midl_echo(" __out_ecount_part(cchResult,*pcchResult+1) LPWSTR pszResult, ")
|
|
#pragma midl_echo(" DWORD cchResult, ")
|
|
#pragma midl_echo(" __out DWORD *pcchResult, ")
|
|
#pragma midl_echo(" DWORD dwReserved ")
|
|
#pragma midl_echo(" ); ")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
|
|
#pragma midl_echo("STDAPI CoInternetParseIUri( ")
|
|
#pragma midl_echo(" __in IUri *pIUri, ")
|
|
#pragma midl_echo(" PARSEACTION ParseAction, ")
|
|
#pragma midl_echo(" DWORD dwFlags, ")
|
|
#pragma midl_echo(" __out_ecount_part(cchResult,*pcchResult+1) LPWSTR pwzResult, ")
|
|
#pragma midl_echo(" DWORD cchResult, ")
|
|
#pragma midl_echo(" __out DWORD *pcchResult, ")
|
|
#pragma midl_echo(" DWORD_PTR dwReserved ")
|
|
#pragma midl_echo(" ); ")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE70)")
|
|
|
|
#pragma midl_echo("STDAPI CoInternetCombineUrl( ")
|
|
#pragma midl_echo(" LPCWSTR pwzBaseUrl, ")
|
|
#pragma midl_echo(" LPCWSTR pwzRelativeUrl, ")
|
|
#pragma midl_echo(" DWORD dwCombineFlags, ")
|
|
#pragma midl_echo(" __out_ecount_part(cchResult,*pcchResult+1) LPWSTR pszResult, ")
|
|
#pragma midl_echo(" DWORD cchResult, ")
|
|
#pragma midl_echo(" __out_opt DWORD *pcchResult, ")
|
|
#pragma midl_echo(" __reserved DWORD dwReserved ")
|
|
#pragma midl_echo(" ); ")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
|
|
#pragma midl_echo("STDAPI CoInternetCombineUrlEx( ")
|
|
#pragma midl_echo(" __in_opt IUri *pBaseUri, ")
|
|
#pragma midl_echo(" __in_opt LPCWSTR pwzRelativeUrl, ")
|
|
#pragma midl_echo(" DWORD dwCombineFlags, ")
|
|
#pragma midl_echo(" __deref_out IUri **ppCombinedUri, ")
|
|
#pragma midl_echo(" __in_opt DWORD_PTR dwReserved ")
|
|
#pragma midl_echo(" ); ")
|
|
#pragma midl_echo("STDAPI CoInternetCombineIUri ( ")
|
|
#pragma midl_echo(" __in IUri *pBaseUri, ")
|
|
#pragma midl_echo(" __in IUri *pRelativeUri, ")
|
|
#pragma midl_echo(" DWORD dwCombineFlags, ")
|
|
#pragma midl_echo(" __deref_out IUri **ppCombinedUri, ")
|
|
#pragma midl_echo(" __in_opt DWORD_PTR dwReserved ")
|
|
#pragma midl_echo(" ); ")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE70)")
|
|
|
|
#pragma midl_echo("STDAPI CoInternetCompareUrl( ")
|
|
#pragma midl_echo(" LPCWSTR pwzUrl1, ")
|
|
#pragma midl_echo(" LPCWSTR pwzUrl2, ")
|
|
#pragma midl_echo(" DWORD dwFlags ")
|
|
#pragma midl_echo(" ); ")
|
|
#pragma midl_echo("STDAPI CoInternetGetProtocolFlags( ")
|
|
#pragma midl_echo(" LPCWSTR pwzUrl, ")
|
|
#pragma midl_echo(" __out DWORD *pdwFlags, ")
|
|
#pragma midl_echo(" DWORD dwReserved ")
|
|
#pragma midl_echo(" ); ")
|
|
#pragma midl_echo("STDAPI CoInternetQueryInfo( ")
|
|
#pragma midl_echo(" LPCWSTR pwzUrl, ")
|
|
#pragma midl_echo(" QUERYOPTION QueryOptions, ")
|
|
#pragma midl_echo(" DWORD dwQueryFlags, ")
|
|
#pragma midl_echo(" __out_bcount_part(cbBuffer, *pcbBuffer) LPVOID pvBuffer,")
|
|
#pragma midl_echo(" __in_range(>=, sizeof(DWORD)) DWORD cbBuffer, ")
|
|
#pragma midl_echo(" __out_opt DWORD *pcbBuffer, ")
|
|
#pragma midl_echo(" DWORD dwReserved ")
|
|
#pragma midl_echo(" ); ")
|
|
#pragma midl_echo("STDAPI CoInternetGetSession( ")
|
|
#pragma midl_echo(" DWORD dwSessionMode, ")
|
|
#pragma midl_echo(" __deref_out IInternetSession **ppIInternetSession,")
|
|
#pragma midl_echo(" DWORD dwReserved ")
|
|
#pragma midl_echo(" ); ")
|
|
#pragma midl_echo("STDAPI CoInternetGetSecurityUrl( ")
|
|
#pragma midl_echo(" LPCWSTR pwszUrl, ")
|
|
#pragma midl_echo(" __deref_out LPWSTR *ppwszSecUrl, ")
|
|
#pragma midl_echo(" __in PSUACTION psuAction, ")
|
|
#pragma midl_echo(" __reserved DWORD dwReserved ")
|
|
#pragma midl_echo(" ); ")
|
|
#pragma midl_echo("STDAPI AsyncInstallDistributionUnit( ")
|
|
#pragma midl_echo(" LPCWSTR szDistUnit, ")
|
|
#pragma midl_echo(" LPCWSTR szTYPE, ")
|
|
#pragma midl_echo(" LPCWSTR szExt, ")
|
|
#pragma midl_echo(" DWORD dwFileVersionMS, ")
|
|
#pragma midl_echo(" DWORD dwFileVersionLS, ")
|
|
#pragma midl_echo(" LPCWSTR szURL, ")
|
|
#pragma midl_echo(" IBindCtx *pbc, ")
|
|
#pragma midl_echo(" LPVOID pvReserved, ")
|
|
#pragma midl_echo(" DWORD flags ")
|
|
#pragma midl_echo(" ); ")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
|
|
#pragma midl_echo("STDAPI CoInternetGetSecurityUrlEx( ")
|
|
#pragma midl_echo(" __in IUri *pUri, ")
|
|
#pragma midl_echo(" __deref_out IUri **ppSecUri, ")
|
|
#pragma midl_echo(" PSUACTION psuAction, ")
|
|
#pragma midl_echo(" __reserved DWORD_PTR dwReserved
|
|
")
|
|
#pragma midl_echo(" ); ")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE70)")
|
|
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
//
|
|
// Feature options, primarily for Springboard
|
|
//
|
|
|
|
cpp_quote("#ifndef _INTERNETFEATURELIST_DEFINED")
|
|
cpp_quote("#define _INTERNETFEATURELIST_DEFINED")
|
|
|
|
typedef enum _tagINTERNETFEATURELIST
|
|
{
|
|
FEATURE_OBJECT_CACHING = 0,
|
|
FEATURE_ZONE_ELEVATION,
|
|
FEATURE_MIME_HANDLING,
|
|
FEATURE_MIME_SNIFFING,
|
|
FEATURE_WINDOW_RESTRICTIONS,
|
|
FEATURE_WEBOC_POPUPMANAGEMENT,
|
|
FEATURE_BEHAVIORS,
|
|
FEATURE_DISABLE_MK_PROTOCOL,
|
|
FEATURE_LOCALMACHINE_LOCKDOWN,
|
|
FEATURE_SECURITYBAND,
|
|
FEATURE_RESTRICT_ACTIVEXINSTALL,
|
|
FEATURE_VALIDATE_NAVIGATE_URL,
|
|
FEATURE_RESTRICT_FILEDOWNLOAD,
|
|
FEATURE_ADDON_MANAGEMENT,
|
|
FEATURE_PROTOCOL_LOCKDOWN,
|
|
FEATURE_HTTP_USERNAME_PASSWORD_DISABLE,
|
|
FEATURE_SAFE_BINDTOOBJECT,
|
|
FEATURE_UNC_SAVEDFILECHECK,
|
|
FEATURE_GET_URL_DOM_FILEPATH_UNENCODED,
|
|
FEATURE_TABBED_BROWSING,
|
|
FEATURE_SSLUX,
|
|
FEATURE_DISABLE_NAVIGATION_SOUNDS,
|
|
FEATURE_DISABLE_LEGACY_COMPRESSION,
|
|
FEATURE_FORCE_ADDR_AND_STATUS,
|
|
FEATURE_XMLHTTP,
|
|
FEATURE_DISABLE_TELNET_PROTOCOL,
|
|
FEATURE_FEEDS,
|
|
FEATURE_BLOCK_INPUT_PROMPTS,
|
|
FEATURE_ENTRY_COUNT, // This should be the last item
|
|
} INTERNETFEATURELIST;
|
|
|
|
cpp_quote("")
|
|
cpp_quote("// CoInternetSetFeatureEnabled can be used to set/reset features. ")
|
|
cpp_quote("// The following flags control where the feature is set")
|
|
cpp_quote("")
|
|
cpp_quote("#define SET_FEATURE_ON_THREAD 0x00000001")
|
|
cpp_quote("#define SET_FEATURE_ON_PROCESS 0x00000002")
|
|
cpp_quote("#define SET_FEATURE_IN_REGISTRY 0x00000004")
|
|
cpp_quote("#define SET_FEATURE_ON_THREAD_LOCALMACHINE 0x00000008")
|
|
cpp_quote("#define SET_FEATURE_ON_THREAD_INTRANET 0x00000010")
|
|
cpp_quote("#define SET_FEATURE_ON_THREAD_TRUSTED 0x00000020")
|
|
cpp_quote("#define SET_FEATURE_ON_THREAD_INTERNET 0x00000040")
|
|
cpp_quote("#define SET_FEATURE_ON_THREAD_RESTRICTED 0x00000080")
|
|
|
|
cpp_quote("")
|
|
cpp_quote("// CoInternetIsFeatureEnabled can be used to get features. ")
|
|
cpp_quote("// The following flags control where the feature is obtained from")
|
|
cpp_quote("// default is from process")
|
|
cpp_quote("")
|
|
cpp_quote("#define GET_FEATURE_FROM_THREAD 0x00000001")
|
|
cpp_quote("#define GET_FEATURE_FROM_PROCESS 0x00000002")
|
|
cpp_quote("#define GET_FEATURE_FROM_REGISTRY 0x00000004")
|
|
cpp_quote("#define GET_FEATURE_FROM_THREAD_LOCALMACHINE 0x00000008")
|
|
cpp_quote("#define GET_FEATURE_FROM_THREAD_INTRANET 0x00000010")
|
|
cpp_quote("#define GET_FEATURE_FROM_THREAD_TRUSTED 0x00000020")
|
|
cpp_quote("#define GET_FEATURE_FROM_THREAD_INTERNET 0x00000040")
|
|
cpp_quote("#define GET_FEATURE_FROM_THREAD_RESTRICTED 0x00000080")
|
|
|
|
cpp_quote("#endif")
|
|
|
|
//
|
|
// OInet helper functions for looking up if features are enabled
|
|
//
|
|
|
|
#pragma midl_echo("STDAPI CoInternetSetFeatureEnabled( ")
|
|
#pragma midl_echo(" INTERNETFEATURELIST FeatureEntry, ")
|
|
#pragma midl_echo(" DWORD dwFlags, ")
|
|
#pragma midl_echo(" BOOL fEnable ")
|
|
#pragma midl_echo(" ); ")
|
|
|
|
#pragma midl_echo("STDAPI CoInternetIsFeatureEnabled( ")
|
|
#pragma midl_echo(" INTERNETFEATURELIST FeatureEntry, ")
|
|
#pragma midl_echo(" DWORD dwFlags ")
|
|
#pragma midl_echo(" ); ")
|
|
|
|
#pragma midl_echo("STDAPI CoInternetIsFeatureEnabledForUrl( ")
|
|
#pragma midl_echo(" INTERNETFEATURELIST FeatureEntry, ")
|
|
#pragma midl_echo(" DWORD dwFlags, ")
|
|
#pragma midl_echo(" LPCWSTR szURL, ")
|
|
#pragma midl_echo(" IInternetSecurityManager *pSecMgr ")
|
|
#pragma midl_echo(" ); ")
|
|
|
|
#pragma midl_echo("STDAPI CoInternetIsFeatureEnabledForIUri( ")
|
|
#pragma midl_echo(" INTERNETFEATURELIST FeatureEntry, ")
|
|
#pragma midl_echo(" DWORD dwFlags, ")
|
|
#pragma midl_echo(" IUri * pIUri, ")
|
|
#pragma midl_echo(" IInternetSecurityManagerEx2 *pSecMgr ")
|
|
#pragma midl_echo(" ); ")
|
|
|
|
#pragma midl_echo("STDAPI CoInternetIsFeatureZoneElevationEnabled( ")
|
|
#pragma midl_echo(" LPCWSTR szFromURL, ")
|
|
#pragma midl_echo(" LPCWSTR szToURL, ")
|
|
#pragma midl_echo(" IInternetSecurityManager *pSecMgr, ")
|
|
#pragma midl_echo(" DWORD dwFlags ")
|
|
#pragma midl_echo(" ); ")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
|
|
//
|
|
// STGMEDIUMs and BINDINFO helper utils
|
|
//
|
|
#pragma midl_echo(" ")
|
|
#pragma midl_echo("STDAPI CopyStgMedium(const STGMEDIUM * pcstgmedSrc, ")
|
|
#pragma midl_echo(" STGMEDIUM * pstgmedDest); ")
|
|
|
|
#pragma midl_echo("STDAPI CopyBindInfo( const BINDINFO * pcbiSrc, ")
|
|
#pragma midl_echo(" BINDINFO * pbiDest ); ")
|
|
|
|
#pragma midl_echo("STDAPI_(void) ReleaseBindInfo( BINDINFO * pbindinfo ); ")
|
|
#pragma midl_echo(" ")
|
|
|
|
cpp_quote("#define INET_E_USE_DEFAULT_PROTOCOLHANDLER _HRESULT_TYPEDEF_(0x800C0011L) ")
|
|
cpp_quote("#define INET_E_USE_DEFAULT_SETTING _HRESULT_TYPEDEF_(0x800C0012L) ")
|
|
cpp_quote("#define INET_E_DEFAULT_ACTION INET_E_USE_DEFAULT_PROTOCOLHANDLER ")
|
|
cpp_quote("#define INET_E_QUERYOPTION_UNKNOWN _HRESULT_TYPEDEF_(0x800C0013L) ")
|
|
cpp_quote("#define INET_E_REDIRECTING _HRESULT_TYPEDEF_(0x800C0014L) ")
|
|
|
|
cpp_quote("#define OInetParseUrl CoInternetParseUrl ")
|
|
cpp_quote("#define OInetCombineUrl CoInternetCombineUrl ")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
|
|
cpp_quote("#define OInetCombineUrlEx CoInternetCombineUrlEx ")
|
|
cpp_quote("#define OInetCombineIUri CoInternetCombineIUri ")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE70)")
|
|
|
|
cpp_quote("#define OInetCompareUrl CoInternetCompareUrl ")
|
|
cpp_quote("#define OInetQueryInfo CoInternetQueryInfo ")
|
|
cpp_quote("#define OInetGetSession CoInternetGetSession ")
|
|
|
|
#pragma midl_echo("#endif // !_URLMON_NO_ASYNC_PLUGABLE_PROTOCOLS_ ")
|
|
|
|
cpp_quote("//")
|
|
cpp_quote("// Static Protocol flags")
|
|
cpp_quote("//")
|
|
cpp_quote("#define PROTOCOLFLAG_NO_PICS_CHECK 0x00000001")
|
|
cpp_quote("")
|
|
|
|
|
|
|
|
cpp_quote("// Creates the security manager object. The first argument is the Service provider")
|
|
cpp_quote("// to allow for delegation")
|
|
cpp_quote("STDAPI CoInternetCreateSecurityManager(IServiceProvider *pSP, IInternetSecurityManager **ppSM, DWORD dwReserved);")
|
|
cpp_quote("")
|
|
cpp_quote("STDAPI CoInternetCreateZoneManager(IServiceProvider *pSP, IInternetZoneManager **ppZM, DWORD dwReserved);")
|
|
cpp_quote("")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("// Security manager CLSID's")
|
|
cpp_quote("EXTERN_C const IID CLSID_InternetSecurityManager; ")
|
|
cpp_quote("EXTERN_C const IID CLSID_InternetZoneManager; ")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
cpp_quote("EXTERN_C const IID CLSID_PersistentZoneIdentifier; ")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
|
|
cpp_quote("// This service is used for delegation support on the Security Manager interface")
|
|
cpp_quote("#define SID_SInternetSecurityManager IID_IInternetSecurityManager")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
cpp_quote("#define SID_SInternetSecurityManagerEx IID_IInternetSecurityManagerEx")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
|
|
cpp_quote("#define SID_SInternetSecurityManagerEx2 IID_IInternetSecurityManagerEx2")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE70)")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("#define SID_SInternetHostSecurityManager IID_IInternetHostSecurityManager")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("#ifndef _LPINTERNETSECURITYMGRSITE_DEFINED")
|
|
cpp_quote("#define _LPINTERNETSECURITYMGRSITE_DEFINED")
|
|
[
|
|
|
|
local,
|
|
object,
|
|
uuid(79eac9ed-baf9-11ce-8c82-00aa004ba90b),
|
|
helpstring("IInternetSecurityMgrSite Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IInternetSecurityMgrSite : IUnknown
|
|
{
|
|
HRESULT GetWindow (
|
|
[out] HWND* phwnd);
|
|
HRESULT EnableModeless (
|
|
[in] BOOL fEnable);
|
|
};
|
|
cpp_quote("#endif")
|
|
|
|
cpp_quote("#ifndef _LPINTERNETSECURITYMANANGER_DEFINED")
|
|
cpp_quote("#define _LPINTERNETSECURITYMANANGER_DEFINED")
|
|
|
|
[
|
|
|
|
uuid(79eac9ee-baf9-11ce-8c82-00aa004ba90b),
|
|
helpstring("IInternetSecurityManager Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IInternetSecurityManager : IUnknown
|
|
{
|
|
HRESULT SetSecuritySite
|
|
(
|
|
[in,unique] IInternetSecurityMgrSite *pSite
|
|
);
|
|
|
|
HRESULT GetSecuritySite
|
|
(
|
|
[out] IInternetSecurityMgrSite **ppSite
|
|
);
|
|
|
|
cpp_quote("#define MUTZ_NOSAVEDFILECHECK 0x00000001 // don't check file: for saved file comment")
|
|
cpp_quote("#define MUTZ_ISFILE 0x00000002 // Assume URL if File, url does not need file://")
|
|
cpp_quote("#define MUTZ_ACCEPT_WILDCARD_SCHEME 0x00000080 // Accept a wildcard scheme")
|
|
cpp_quote("#define MUTZ_ENFORCERESTRICTED 0x00000100 // enforce restricted zone independent of URL")
|
|
cpp_quote("#define MUTZ_RESERVED 0x00000200 // This is same as PUAF_NOSAVEDFILECHECK. However we already have MUTZ_NOSAVEDFILECHECK for this.")
|
|
cpp_quote("#define MUTZ_REQUIRESAVEDFILECHECK 0x00000400 // always check the file for MOTW (overriding FEATURE_UNC_SAVEDFILECHECK)")
|
|
cpp_quote("#define MUTZ_DONT_UNESCAPE 0x00000800 // Do not unescape the url")
|
|
cpp_quote("#define MUTZ_DONT_USE_CACHE 0x00001000 // Do not check the cache")
|
|
cpp_quote("#define MUTZ_FORCE_INTRANET_FLAGS 0x00002000 // Force the intranet flags to be active")
|
|
cpp_quote("#define MUTZ_IGNORE_ZONE_MAPPINGS 0x00004000 // Don't look up the Zone Mappings")
|
|
|
|
HRESULT MapUrlToZone
|
|
(
|
|
[in] LPCWSTR pwszUrl,
|
|
[out] DWORD* pdwZone,
|
|
[in] DWORD dwFlags
|
|
);
|
|
|
|
cpp_quote("// MapUrlToZone returns the zone index given a URL")
|
|
|
|
cpp_quote("#define MAX_SIZE_SECURITY_ID 512 // bytes")
|
|
|
|
HRESULT GetSecurityId
|
|
(
|
|
[in] LPCWSTR pwszUrl,
|
|
[out, size_is(*pcbSecurityId)]
|
|
BYTE* pbSecurityId,
|
|
[in, out]
|
|
DWORD* pcbSecurityId,
|
|
[in] DWORD_PTR dwReserved
|
|
);
|
|
|
|
// Flags passed into ProcessUrlAction.
|
|
typedef enum
|
|
{
|
|
PUAF_DEFAULT = 0x00000000,
|
|
PUAF_NOUI = 0x00000001,
|
|
PUAF_ISFILE = 0x00000002, // Assume URL if File, url does not need file://
|
|
PUAF_WARN_IF_DENIED = 0x00000004,
|
|
PUAF_FORCEUI_FOREGROUND = 0x00000008,
|
|
PUAF_CHECK_TIFS = 0x00000010,
|
|
PUAF_DONTCHECKBOXINDIALOG = 0x00000020,
|
|
PUAF_TRUSTED = 0x00000040,
|
|
PUAF_ACCEPT_WILDCARD_SCHEME = 0x00000080,
|
|
PUAF_ENFORCERESTRICTED = 0x00000100,
|
|
PUAF_NOSAVEDFILECHECK = 0x00000200, // don't check file: for saved comment
|
|
PUAF_REQUIRESAVEDFILECHECK = 0x00000400, // always check the file for MOTW (overriding FEATURE_UNC_SAVEDFILECHECK)
|
|
PUAF_DONT_USE_CACHE = 0x00001000, // don't use the MUTZ zone cache - recompute the zone.
|
|
PUAF_RESERVED1 = 0x00002000, // RESERVED for MUTZ_FORCE_INTRANET_FLAGS.
|
|
PUAF_RESERVED2 = 0x00004000, // RESERVED for MUTZ_IGNORE_ZONE_MAPPINGS.
|
|
PUAF_LMZ_UNLOCKED = 0x00010000, // flag to retrieve local machine policies when LMZL is on
|
|
PUAF_LMZ_LOCKED = 0x00020000, // flag to force retrieving locked down local machine policies when LMZL is on
|
|
PUAF_DEFAULTZONEPOL = 0x00040000, // flag to retrieve Default Security Zone policies when NPL is on
|
|
PUAF_NPL_USE_LOCKED_IF_RESTRICTED = 0x00080000, // flag to tell urlmon that trident wants to use locked zones if needed.
|
|
PUAF_NOUIIFLOCKED = 0x00100000, // flag to turn off UI if Urlmon figures it is using the locked zone.
|
|
PUAF_DRAGPROTOCOLCHECK = 0x00200000 // flag to check for allow-list drag protcols when URLACTION_SHELL_MOVE_OR_COPY is allow
|
|
} PUAF ;
|
|
|
|
typedef enum
|
|
{
|
|
PUAFOUT_DEFAULT = 0x00000000,
|
|
PUAFOUT_ISLOCKZONEPOLICY = 0x00000001
|
|
} PUAFOUT ;
|
|
|
|
HRESULT ProcessUrlAction
|
|
(
|
|
[in] LPCWSTR pwszUrl,
|
|
[in] DWORD dwAction,
|
|
[out, size_is(cbPolicy)]
|
|
BYTE* pPolicy, // output buffer pointer
|
|
[in] DWORD cbPolicy, // output buffer size
|
|
[in, unique]
|
|
BYTE* pContext, // context (used by the delegation routines)
|
|
[in] DWORD cbContext, // size of the Context
|
|
[in] DWORD dwFlags, // See enum PUAF for details.
|
|
[in] DWORD dwReserved
|
|
);
|
|
cpp_quote("// This is the wrapper function that most clients will use.")
|
|
cpp_quote("// It figures out the current Policy for the passed in Action,")
|
|
cpp_quote("// and puts up UI if the current Policy indicates that the user")
|
|
cpp_quote("// should be queried. It returns back the Policy which the caller")
|
|
cpp_quote("// will use to determine if the action should be allowed")
|
|
|
|
HRESULT QueryCustomPolicy
|
|
(
|
|
[in] LPCWSTR pwszUrl,
|
|
[in] REFGUID guidKey,
|
|
[out, size_is(,*pcbPolicy)] // allocation via IMemAlloc; caller frees
|
|
BYTE** ppPolicy, // pointer to output buffer pointer
|
|
[out] DWORD* pcbPolicy, // pointer to output buffer size
|
|
[in] BYTE* pContext, // context (used by the delegation routines)
|
|
[in] DWORD cbContext, // size of the Context
|
|
[in] DWORD dwReserved
|
|
);
|
|
cpp_quote("// This is the wrapper function to conveniently read a custom policy.")
|
|
|
|
// create/enumerate mappings
|
|
|
|
typedef enum
|
|
{
|
|
SZM_CREATE = 0x00000000, // create new mapping, error's if mapping already exists.
|
|
SZM_DELETE = 0x00000001, // delete the mapping
|
|
}
|
|
SZM_FLAGS;
|
|
|
|
HRESULT SetZoneMapping
|
|
(
|
|
[in] DWORD dwZone, // absolute zone index
|
|
[in] LPCWSTR lpszPattern, // URL pattern with limited wildcarding
|
|
[in] DWORD dwFlags // add, change, delete
|
|
);
|
|
|
|
cpp_quote("// SetZoneMapping")
|
|
cpp_quote("// lpszPattern: string denoting a URL pattern")
|
|
cpp_quote("// Examples of valid patterns: ")
|
|
cpp_quote("// *://*.msn.com ")
|
|
cpp_quote("// http://*.sony.co.jp ")
|
|
cpp_quote("// *://et.msn.com ")
|
|
cpp_quote("// ftp://157.54.23.41/ ")
|
|
cpp_quote("// https://localsvr ")
|
|
cpp_quote("// file:\\localsvr\share ")
|
|
cpp_quote("// *://157.54.100-200.* ")
|
|
cpp_quote("// Examples of invalid patterns: ")
|
|
cpp_quote("// http://*.lcs.mit.edu ")
|
|
cpp_quote("// ftp://* ")
|
|
cpp_quote("// dwFlags: SZM_FLAGS values ")
|
|
|
|
HRESULT GetZoneMappings
|
|
(
|
|
[in] DWORD dwZone, // absolute zone index
|
|
[out] IEnumString **ppenumString, // output buffer size
|
|
[in] DWORD dwFlags // reserved, pass 0
|
|
);
|
|
// Returns an enumerator of strings for the mappings of a zone.
|
|
// dwFlags is for future use; pass in 0.
|
|
|
|
};
|
|
cpp_quote("#endif")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
cpp_quote("#ifndef _LPINTERNETSECURITYMANANGEREX_DEFINED")
|
|
cpp_quote("#define _LPINTERNETSECURITYMANANGEREX_DEFINED")
|
|
|
|
[
|
|
|
|
uuid(F164EDF1-CC7C-4f0d-9A94-34222625C393),
|
|
helpstring("IInternetSecurityManagerEx Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IInternetSecurityManagerEx : IInternetSecurityManager
|
|
{
|
|
HRESULT ProcessUrlActionEx
|
|
(
|
|
[in] LPCWSTR pwszUrl,
|
|
[in] DWORD dwAction,
|
|
[out, size_is(cbPolicy)]
|
|
BYTE* pPolicy, // output buffer pointer
|
|
[in] DWORD cbPolicy, // output buffer size
|
|
[in] BYTE* pContext, // context (used by the delegation routines)
|
|
[in] DWORD cbContext, // size of the Context
|
|
[in] DWORD dwFlags, // See enum PUAF for details.
|
|
[in] DWORD dwReserved,
|
|
[out] DWORD *pdwOutFlags //See enum PUAF for details
|
|
);
|
|
|
|
cpp_quote("// This is the wrapper function that most clients will use.")
|
|
cpp_quote("// It figures out the current Policy for the passed in Action,")
|
|
cpp_quote("// and puts up UI if the current Policy indicates that the user")
|
|
cpp_quote("// should be queried. It returns back the Policy which the caller")
|
|
cpp_quote("// will use to determine if the action should be allowed")
|
|
}
|
|
cpp_quote("#endif")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
|
|
cpp_quote("#ifndef _LPINTERNETSECURITYMANANGEREx2_DEFINED")
|
|
cpp_quote("#define _LPINTERNETSECURITYMANANGEREx2_DEFINED")
|
|
|
|
[
|
|
|
|
uuid(F1E50292-A795-4117-8E09-2B560A72AC60),
|
|
helpstring("IInternetSecurityManagerEx2 Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IInternetSecurityManagerEx2 : IInternetSecurityManagerEx
|
|
{
|
|
HRESULT MapUrlToZoneEx2
|
|
(
|
|
[in] IUri* pUri,
|
|
[out] DWORD* pdwZone,
|
|
[in] DWORD dwFlags,
|
|
[out] LPWSTR* ppwszMappedUrl,
|
|
[out] DWORD* pdwOutFlags
|
|
);
|
|
|
|
HRESULT ProcessUrlActionEx2
|
|
(
|
|
[in] IUri* pUri,
|
|
[in] DWORD dwAction,
|
|
[out, size_is(cbPolicy)]
|
|
BYTE* pPolicy, // output buffer pointer
|
|
[in] DWORD cbPolicy, // output buffer size
|
|
[in, unique]
|
|
BYTE* pContext, // context (used by the delegation routines)
|
|
[in] DWORD cbContext, // size of the Context
|
|
[in] DWORD dwFlags, // See enum PUAF for details.
|
|
[in] DWORD_PTR dwReserved,
|
|
[out] DWORD* pdwOutFlags
|
|
);
|
|
|
|
HRESULT GetSecurityIdEx2
|
|
(
|
|
[in] IUri* pUri,
|
|
[out, size_is(*pcbSecurityId)]
|
|
BYTE* pbSecurityId,
|
|
[in, out]
|
|
DWORD* pcbSecurityId,
|
|
[in] DWORD_PTR dwReserved
|
|
);
|
|
HRESULT QueryCustomPolicyEx2
|
|
(
|
|
[in] IUri* pUri,
|
|
[in] REFGUID guidKey,
|
|
[out, size_is(,*pcbPolicy)] // allocation via IMemAlloc; caller frees
|
|
BYTE** ppPolicy, // pointer to output buffer pointer
|
|
[out] DWORD* pcbPolicy, // pointer to output buffer size
|
|
[in] BYTE* pContext, // context (used by the delegation routines)
|
|
[in] DWORD cbContext, // size of the Context
|
|
[in] DWORD_PTR dwReserved
|
|
);
|
|
}
|
|
|
|
cpp_quote("#endif")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE70)")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
// implmented by CLSID_ PersistentZoneIdentifier (along with IPersistFile)
|
|
// to access or change the Zone attached to a local file
|
|
[
|
|
object,
|
|
uuid(cd45f185-1b21-48e2-967b-ead743a8914e),
|
|
pointer_default(unique)
|
|
]
|
|
interface IZoneIdentifier : IUnknown
|
|
{
|
|
HRESULT GetId([out] DWORD *pdwZone);
|
|
HRESULT SetId([in] DWORD dwZone);
|
|
HRESULT Remove();
|
|
};
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
|
|
cpp_quote("#ifndef _LPINTERNETHOSTSECURITYMANANGER_DEFINED")
|
|
cpp_quote("#define _LPINTERNETHOSTSECURITYMANANGER_DEFINED")
|
|
|
|
cpp_quote("//This is the interface MSHTML exposes to its clients")
|
|
cpp_quote("//The clients need not pass in a URL to these functions")
|
|
cpp_quote("//since MSHTML maintains the notion of the current URL")
|
|
|
|
[
|
|
|
|
local,
|
|
object,
|
|
uuid(3af280b6-cb3f-11d0-891e-00c04fb6bfc4),
|
|
helpstring("IInternetHostSecurityManager Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IInternetHostSecurityManager : IUnknown
|
|
{
|
|
|
|
HRESULT GetSecurityId
|
|
(
|
|
[out, size_is(*pcbSecurityId)]
|
|
BYTE* pbSecurityId,
|
|
[in, out]
|
|
DWORD* pcbSecurityId,
|
|
[in] DWORD_PTR dwReserved
|
|
);
|
|
|
|
HRESULT ProcessUrlAction
|
|
(
|
|
[in] DWORD dwAction,
|
|
[out, size_is(cbPolicy)]
|
|
BYTE* pPolicy, // output buffer pointer
|
|
[in] DWORD cbPolicy, // output buffer size
|
|
[in] BYTE* pContext, // context (used by the delegation routines)
|
|
[in] DWORD cbContext, // size of the Context
|
|
[in] DWORD dwFlags, // See enum PUAF for details.
|
|
[in] DWORD dwReserved
|
|
);
|
|
|
|
HRESULT QueryCustomPolicy
|
|
(
|
|
[in] REFGUID guidKey,
|
|
[out, size_is(,*pcbPolicy)] // allocation via IMemAlloc; caller frees
|
|
BYTE** ppPolicy, // pointer to output buffer pointer
|
|
[out] DWORD* pcbPolicy, // pointer to output buffer size
|
|
[in] BYTE* pContext, // context (used by the delegation routines)
|
|
[in] DWORD cbContext, // size of the Context
|
|
[in] DWORD dwReserved
|
|
);
|
|
|
|
};
|
|
cpp_quote("#endif")
|
|
|
|
cpp_quote("")
|
|
cpp_quote("// The zone manager maintains policies for a set of standard actions. ")
|
|
cpp_quote("// These actions are identified by integral values (called action indexes)")
|
|
cpp_quote("// specified below.")
|
|
cpp_quote("")
|
|
cpp_quote("// Minimum legal value for an action ")
|
|
cpp_quote("#define URLACTION_MIN 0x00001000")
|
|
cpp_quote("")
|
|
cpp_quote("#define URLACTION_DOWNLOAD_MIN 0x00001000")
|
|
cpp_quote("#define URLACTION_DOWNLOAD_SIGNED_ACTIVEX 0x00001001")
|
|
cpp_quote("#define URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX 0x00001004")
|
|
cpp_quote("#define URLACTION_DOWNLOAD_CURR_MAX 0x00001004")
|
|
cpp_quote("#define URLACTION_DOWNLOAD_MAX 0x000011FF")
|
|
cpp_quote("")
|
|
cpp_quote("#define URLACTION_ACTIVEX_MIN 0x00001200")
|
|
cpp_quote("#define URLACTION_ACTIVEX_RUN 0x00001200")
|
|
cpp_quote("#define URLPOLICY_ACTIVEX_CHECK_LIST 0x00010000")
|
|
cpp_quote("#define URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY 0x00001201 // aggregate next four")
|
|
cpp_quote("#define URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY 0x00001202 //")
|
|
cpp_quote("#define URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY 0x00001203 //")
|
|
cpp_quote("#define URLACTION_SCRIPT_OVERRIDE_SAFETY 0x00001401 //")
|
|
cpp_quote("#define URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY 0x00001204 //")
|
|
cpp_quote("#define URLACTION_ACTIVEX_TREATASUNTRUSTED 0x00001205")
|
|
cpp_quote("#define URLACTION_ACTIVEX_NO_WEBOC_SCRIPT 0x00001206")
|
|
cpp_quote("#define URLACTION_ACTIVEX_OVERRIDE_REPURPOSEDETECTION 0x00001207")
|
|
cpp_quote("#define URLACTION_ACTIVEX_OVERRIDE_OPTIN 0x00001208")
|
|
cpp_quote("#define URLACTION_ACTIVEX_SCRIPTLET_RUN 0x00001209")
|
|
cpp_quote("#define URLACTION_ACTIVEX_DYNSRC_VIDEO_AND_ANIMATION 0x0000120A //")
|
|
cpp_quote("#define URLACTION_ACTIVEX_OVERRIDE_DOMAINLIST 0x0000120B")
|
|
cpp_quote("#define URLACTION_ACTIVEX_CURR_MAX 0x0000120B")
|
|
cpp_quote("#define URLACTION_ACTIVEX_MAX 0x000013ff")
|
|
cpp_quote("")
|
|
cpp_quote("#define URLACTION_SCRIPT_MIN 0x00001400")
|
|
cpp_quote("#define URLACTION_SCRIPT_RUN 0x00001400")
|
|
cpp_quote("#define URLACTION_SCRIPT_JAVA_USE 0x00001402")
|
|
cpp_quote("#define URLACTION_SCRIPT_SAFE_ACTIVEX 0x00001405")
|
|
cpp_quote("#define URLACTION_CROSS_DOMAIN_DATA 0x00001406")
|
|
cpp_quote("#define URLACTION_SCRIPT_PASTE 0x00001407")
|
|
cpp_quote("#define URLACTION_ALLOW_XDOMAIN_SUBFRAME_RESIZE 0x00001408")
|
|
cpp_quote("#define URLACTION_SCRIPT_XSSFILTER 0x00001409")
|
|
cpp_quote("#define URLACTION_SCRIPT_CURR_MAX 0x00001409")
|
|
cpp_quote("#define URLACTION_SCRIPT_MAX 0x000015ff")
|
|
cpp_quote("")
|
|
cpp_quote("#define URLACTION_HTML_MIN 0x00001600")
|
|
cpp_quote("#define URLACTION_HTML_SUBMIT_FORMS 0x00001601 // aggregate next two")
|
|
cpp_quote("#define URLACTION_HTML_SUBMIT_FORMS_FROM 0x00001602 //")
|
|
cpp_quote("#define URLACTION_HTML_SUBMIT_FORMS_TO 0x00001603 //")
|
|
cpp_quote("#define URLACTION_HTML_FONT_DOWNLOAD 0x00001604")
|
|
cpp_quote("#define URLACTION_HTML_JAVA_RUN 0x00001605 // derive from Java custom policy")
|
|
cpp_quote("#define URLACTION_HTML_USERDATA_SAVE 0x00001606")
|
|
cpp_quote("#define URLACTION_HTML_SUBFRAME_NAVIGATE 0x00001607")
|
|
cpp_quote("#define URLACTION_HTML_META_REFRESH 0x00001608")
|
|
cpp_quote("#define URLACTION_HTML_MIXED_CONTENT 0x00001609")
|
|
cpp_quote("#define URLACTION_HTML_INCLUDE_FILE_PATH 0x0000160A")
|
|
//cpp_quote("#define URLACTION_HTML_CURR_MAX 0x0000160A")
|
|
cpp_quote("#define URLACTION_HTML_MAX 0x000017ff")
|
|
cpp_quote("")
|
|
cpp_quote("#define URLACTION_SHELL_MIN 0x00001800")
|
|
cpp_quote("#define URLACTION_SHELL_INSTALL_DTITEMS 0x00001800")
|
|
cpp_quote("#define URLACTION_SHELL_MOVE_OR_COPY 0x00001802")
|
|
cpp_quote("#define URLACTION_SHELL_FILE_DOWNLOAD 0x00001803")
|
|
cpp_quote("#define URLACTION_SHELL_VERB 0x00001804")
|
|
cpp_quote("#define URLACTION_SHELL_WEBVIEW_VERB 0x00001805")
|
|
cpp_quote("#define URLACTION_SHELL_SHELLEXECUTE 0x00001806")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
// URLACTION_SHELL_SHELLEXECUTE and URLACTION_SHELL_EXECUTE_HIGHRISK are deliberately the same value
|
|
cpp_quote("#define URLACTION_SHELL_EXECUTE_HIGHRISK 0x00001806")
|
|
cpp_quote("#define URLACTION_SHELL_EXECUTE_MODRISK 0x00001807")
|
|
cpp_quote("#define URLACTION_SHELL_EXECUTE_LOWRISK 0x00001808")
|
|
cpp_quote("#define URLACTION_SHELL_POPUPMGR 0x00001809")
|
|
cpp_quote("#define URLACTION_SHELL_RTF_OBJECTS_LOAD 0x0000180A")
|
|
cpp_quote("#define URLACTION_SHELL_ENHANCED_DRAGDROP_SECURITY 0x0000180B")
|
|
cpp_quote("#define URLACTION_SHELL_EXTENSIONSECURITY 0x0000180C")
|
|
cpp_quote("#define URLACTION_SHELL_SECURE_DRAGSOURCE 0x0000180D")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_WIN7)")
|
|
cpp_quote("#define URLACTION_SHELL_REMOTEQUERY 0x0000180E")
|
|
cpp_quote("#define URLACTION_SHELL_PREVIEW 0x0000180F")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_WIN7)")
|
|
cpp_quote("#define URLACTION_SHELL_CURR_MAX 0x0000180F")
|
|
cpp_quote("#define URLACTION_SHELL_MAX 0x000019ff")
|
|
cpp_quote("")
|
|
cpp_quote("#define URLACTION_NETWORK_MIN 0x00001A00")
|
|
cpp_quote("")
|
|
cpp_quote("#define URLACTION_CREDENTIALS_USE 0x00001A00")
|
|
cpp_quote("#define URLPOLICY_CREDENTIALS_SILENT_LOGON_OK 0x00000000")
|
|
cpp_quote("#define URLPOLICY_CREDENTIALS_MUST_PROMPT_USER 0x00010000")
|
|
cpp_quote("#define URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT 0x00020000")
|
|
cpp_quote("#define URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY 0x00030000")
|
|
cpp_quote("")
|
|
cpp_quote("#define URLACTION_AUTHENTICATE_CLIENT 0x00001A01")
|
|
cpp_quote("#define URLPOLICY_AUTHENTICATE_CLEARTEXT_OK 0x00000000")
|
|
cpp_quote("#define URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE 0x00010000")
|
|
cpp_quote("#define URLPOLICY_AUTHENTICATE_MUTUAL_ONLY 0x00030000")
|
|
cpp_quote("")
|
|
cpp_quote("")
|
|
cpp_quote("#define URLACTION_COOKIES 0x00001A02")
|
|
cpp_quote("#define URLACTION_COOKIES_SESSION 0x00001A03")
|
|
cpp_quote("")
|
|
cpp_quote("#define URLACTION_CLIENT_CERT_PROMPT 0x00001A04")
|
|
cpp_quote("")
|
|
cpp_quote("#define URLACTION_COOKIES_THIRD_PARTY 0x00001A05")
|
|
cpp_quote("#define URLACTION_COOKIES_SESSION_THIRD_PARTY 0x00001A06")
|
|
cpp_quote("")
|
|
cpp_quote("#define URLACTION_COOKIES_ENABLED 0x00001A10")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("#define URLACTION_NETWORK_CURR_MAX 0x00001A10")
|
|
cpp_quote("#define URLACTION_NETWORK_MAX 0x00001Bff")
|
|
cpp_quote("")
|
|
cpp_quote("")
|
|
cpp_quote("#define URLACTION_JAVA_MIN 0x00001C00")
|
|
cpp_quote("#define URLACTION_JAVA_PERMISSIONS 0x00001C00")
|
|
cpp_quote("#define URLPOLICY_JAVA_PROHIBIT 0x00000000")
|
|
cpp_quote("#define URLPOLICY_JAVA_HIGH 0x00010000")
|
|
cpp_quote("#define URLPOLICY_JAVA_MEDIUM 0x00020000")
|
|
cpp_quote("#define URLPOLICY_JAVA_LOW 0x00030000")
|
|
cpp_quote("#define URLPOLICY_JAVA_CUSTOM 0x00800000")
|
|
cpp_quote("#define URLACTION_JAVA_CURR_MAX 0x00001C00")
|
|
cpp_quote("#define URLACTION_JAVA_MAX 0x00001Cff")
|
|
|
|
cpp_quote("")
|
|
cpp_quote("")
|
|
cpp_quote("// The following Infodelivery actions should have no default policies")
|
|
cpp_quote("// in the registry. They assume that no default policy means fall")
|
|
cpp_quote("// back to the global restriction. If an admin sets a policy per")
|
|
cpp_quote("// zone, then it overrides the global restriction.")
|
|
cpp_quote("")
|
|
cpp_quote("#define URLACTION_INFODELIVERY_MIN 0x00001D00")
|
|
cpp_quote("#define URLACTION_INFODELIVERY_NO_ADDING_CHANNELS 0x00001D00")
|
|
cpp_quote("#define URLACTION_INFODELIVERY_NO_EDITING_CHANNELS 0x00001D01")
|
|
cpp_quote("#define URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS 0x00001D02")
|
|
cpp_quote("#define URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS 0x00001D03")
|
|
cpp_quote("#define URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS 0x00001D04")
|
|
cpp_quote("#define URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS 0x00001D05")
|
|
cpp_quote("#define URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING 0x00001D06")
|
|
cpp_quote("#define URLACTION_INFODELIVERY_CURR_MAX 0x00001D06")
|
|
cpp_quote("#define URLACTION_INFODELIVERY_MAX 0x00001Dff")
|
|
|
|
cpp_quote("#define URLACTION_CHANNEL_SOFTDIST_MIN 0x00001E00")
|
|
cpp_quote("#define URLACTION_CHANNEL_SOFTDIST_PERMISSIONS 0x00001E05")
|
|
cpp_quote("#define URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT 0x00010000")
|
|
cpp_quote("#define URLPOLICY_CHANNEL_SOFTDIST_PRECACHE 0x00020000")
|
|
cpp_quote("#define URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL 0x00030000")
|
|
cpp_quote("#define URLACTION_CHANNEL_SOFTDIST_MAX 0x00001Eff")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE80)")
|
|
cpp_quote("#define URLACTION_DOTNET_USERCONTROLS 0x00002005")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE80)")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
cpp_quote("#define URLACTION_BEHAVIOR_MIN 0x00002000")
|
|
cpp_quote("#define URLACTION_BEHAVIOR_RUN 0x00002000")
|
|
cpp_quote("#define URLPOLICY_BEHAVIOR_CHECK_LIST 0x00010000")
|
|
cpp_quote("")
|
|
cpp_quote("// The following actions correspond to the Feature options above." )
|
|
cpp_quote("// However, they are NOT in the same order." )
|
|
cpp_quote("#define URLACTION_FEATURE_MIN 0x00002100")
|
|
cpp_quote("#define URLACTION_FEATURE_MIME_SNIFFING 0x00002100")
|
|
cpp_quote("#define URLACTION_FEATURE_ZONE_ELEVATION 0x00002101")
|
|
cpp_quote("#define URLACTION_FEATURE_WINDOW_RESTRICTIONS 0x00002102")
|
|
cpp_quote("#define URLACTION_FEATURE_SCRIPT_STATUS_BAR 0x00002103")
|
|
cpp_quote("#define URLACTION_FEATURE_FORCE_ADDR_AND_STATUS 0x00002104")
|
|
cpp_quote("#define URLACTION_FEATURE_BLOCK_INPUT_PROMPTS 0x00002105")
|
|
cpp_quote("#define URLACTION_FEATURE_DATA_BINDING 0x00002106")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("#define URLACTION_AUTOMATIC_DOWNLOAD_UI_MIN 0x00002200")
|
|
cpp_quote("#define URLACTION_AUTOMATIC_DOWNLOAD_UI 0x00002200")
|
|
cpp_quote("#define URLACTION_AUTOMATIC_ACTIVEX_UI 0x00002201")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("#define URLACTION_ALLOW_RESTRICTEDPROTOCOLS 0x00002300")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
|
|
|
|
cpp_quote("// Whether to do the Anti-Phishing check." )
|
|
cpp_quote("#define URLACTION_ALLOW_APEVALUATION 0x00002301")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("// The following ExpressAPP and XPS actions are trumped by registry in")
|
|
cpp_quote("// case of Internet Explorer upgrade from IE 6.0 which honors registry.")
|
|
cpp_quote("#define URLACTION_WINDOWS_BROWSER_APPLICATIONS 0x00002400")
|
|
cpp_quote("#define URLACTION_XPS_DOCUMENTS 0x00002401")
|
|
cpp_quote("#define URLACTION_LOOSE_XAML 0x00002402")
|
|
cpp_quote("#define URLACTION_LOWRIGHTS 0x00002500")
|
|
cpp_quote("// The following action belong to WinFX Bootstrapper")
|
|
cpp_quote("#define URLACTION_WINFX_SETUP 0x00002600")
|
|
cpp_quote("")
|
|
cpp_quote("#define URLACTION_INPRIVATE_BLOCKING 0x00002700")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE70)")
|
|
|
|
cpp_quote("// For each action specified above the system maintains")
|
|
cpp_quote("// a set of policies for the action. ")
|
|
cpp_quote("// The only policies supported currently are permissions (i.e. is something allowed)")
|
|
cpp_quote("// and logging status. ")
|
|
cpp_quote("// IMPORTANT: If you are defining your own policies don't overload the meaning of the")
|
|
cpp_quote("// loword of the policy. You can use the hiword to store any policy bits which are only")
|
|
cpp_quote("// meaningful to your action.")
|
|
cpp_quote("// For an example of how to do this look at the URLPOLICY_JAVA above")
|
|
cpp_quote("")
|
|
cpp_quote("// Permissions ")
|
|
cpp_quote("#define URLPOLICY_ALLOW 0x00")
|
|
cpp_quote("#define URLPOLICY_QUERY 0x01")
|
|
cpp_quote("#define URLPOLICY_DISALLOW 0x03")
|
|
cpp_quote("")
|
|
cpp_quote("// Notifications are not done when user already queried.") // CUT
|
|
cpp_quote("#define URLPOLICY_NOTIFY_ON_ALLOW 0x10")
|
|
cpp_quote("#define URLPOLICY_NOTIFY_ON_DISALLOW 0x20")
|
|
cpp_quote("")
|
|
cpp_quote("// Logging is done regardless of whether user was queried.") // CUT
|
|
cpp_quote("#define URLPOLICY_LOG_ON_ALLOW 0x40")
|
|
cpp_quote("#define URLPOLICY_LOG_ON_DISALLOW 0x80")
|
|
cpp_quote("")
|
|
cpp_quote("#define URLPOLICY_MASK_PERMISSIONS 0x0f")
|
|
cpp_quote("#define GetUrlPolicyPermissions(dw) (dw & URLPOLICY_MASK_PERMISSIONS)")
|
|
cpp_quote("#define SetUrlPolicyPermissions(dw,dw2) ((dw) = ((dw) & ~(URLPOLICY_MASK_PERMISSIONS)) | (dw2))")
|
|
cpp_quote("")
|
|
cpp_quote("")
|
|
cpp_quote("#define URLPOLICY_DONTCHECKDLGBOX 0x100")
|
|
|
|
cpp_quote("// The ordinal #'s that define the predefined zones internet explorer knows about. ")
|
|
cpp_quote("// When we support user-defined zones their zone numbers should be between ")
|
|
cpp_quote("// URLZONE_USER_MIN and URLZONE_USER_MAX")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
cpp_quote("// Custom policy to query whether the local machine zone")
|
|
cpp_quote("// has been unlocked for current document.")
|
|
cpp_quote("EXTERN_C const GUID GUID_CUSTOM_LOCALMACHINEZONEUNLOCKED; ")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IInternetZoneManager interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPINTERNETZONEMANAGER_DEFINED")
|
|
cpp_quote("#define _LPINTERNETZONEMANAGER_DEFINED")
|
|
|
|
[
|
|
|
|
local,
|
|
object,
|
|
uuid(79eac9ef-baf9-11ce-8c82-00aa004ba90b),
|
|
helpstring("IInternetZoneManager Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IInternetZoneManager : IUnknown
|
|
{
|
|
typedef [unique] IInternetZoneManager *LPURLZONEMANAGER;
|
|
|
|
|
|
typedef enum tagURLZONE
|
|
{
|
|
URLZONE_INVALID = -1, // Invalid Zone. Should only be used if no appropriate zone available.
|
|
URLZONE_PREDEFINED_MIN = 0,
|
|
URLZONE_LOCAL_MACHINE = 0, // local machine zone is not exposed in UI
|
|
URLZONE_INTRANET, // My Intranet zone
|
|
URLZONE_TRUSTED, // Trusted Web sites zone
|
|
URLZONE_INTERNET, // The Internet zone
|
|
URLZONE_UNTRUSTED, // Untrusted sites zone
|
|
URLZONE_PREDEFINED_MAX = 999,
|
|
|
|
URLZONE_USER_MIN = 1000,
|
|
URLZONE_USER_MAX = 10000,
|
|
} URLZONE;
|
|
|
|
cpp_quote("// Enhanced Security Configuration zone mapping flag for IInternetSecurityManager::SetZoneMapping")
|
|
cpp_quote("#define URLZONE_ESC_FLAG 0x100")
|
|
|
|
typedef enum tagURLTEMPLATE
|
|
{
|
|
// This value is just used to indicate the current set
|
|
// of policies are not based on any template.
|
|
URLTEMPLATE_CUSTOM = 0x000000,
|
|
|
|
URLTEMPLATE_PREDEFINED_MIN = 0x10000,
|
|
URLTEMPLATE_LOW = 0x10000,
|
|
URLTEMPLATE_MEDLOW = 0x10500,
|
|
URLTEMPLATE_MEDIUM = 0x11000,
|
|
URLTEMPLATE_MEDHIGH = 0x11500,
|
|
URLTEMPLATE_HIGH = 0x12000,
|
|
URLTEMPLATE_PREDEFINED_MAX = 0x20000
|
|
} URLTEMPLATE ;
|
|
|
|
|
|
|
|
enum { MAX_ZONE_PATH = 260, MAX_ZONE_DESCRIPTION = 200 };
|
|
|
|
typedef enum {
|
|
ZAFLAGS_CUSTOM_EDIT = 0x00000001,
|
|
ZAFLAGS_ADD_SITES = 0x00000002,
|
|
ZAFLAGS_REQUIRE_VERIFICATION = 0x00000004,
|
|
ZAFLAGS_INCLUDE_PROXY_OVERRIDE = 0x00000008, // Intranet only.
|
|
ZAFLAGS_INCLUDE_INTRANET_SITES = 0x00000010, // Intranet only.
|
|
ZAFLAGS_NO_UI = 0x00000020, // Don't display UI (used for local machine)
|
|
ZAFLAGS_SUPPORTS_VERIFICATION = 0x00000040, // Supports server verification.
|
|
ZAFLAGS_UNC_AS_INTRANET = 0x00000080,
|
|
ZAFLAGS_DETECT_INTRANET = 0x00000100, // Intranet only.
|
|
|
|
// Locked/Unlocked state specific flags.
|
|
ZAFLAGS_USE_LOCKED_ZONES = 0x00010000,
|
|
// Used ONLY in GetZoneAttributes to specify that Template Matching should be done to verify
|
|
// that zone's Current Level is correct.
|
|
ZAFLAGS_VERIFY_TEMPLATE_SETTINGS = 0x00020000,
|
|
// Bypass the zonemgr cache for this setting
|
|
ZAFLAGS_NO_CACHE = 0x00040000,
|
|
} ZAFLAGS ;
|
|
|
|
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; // ZAFLAGS.
|
|
} ZONEATTRIBUTES, *LPZONEATTRIBUTES;
|
|
|
|
HRESULT GetZoneAttributes
|
|
(
|
|
[in] DWORD dwZone,
|
|
[in, out, unique]
|
|
ZONEATTRIBUTES* pZoneAttributes
|
|
);
|
|
|
|
cpp_quote("// Gets the zone attributes (information in registry other than actual security")
|
|
cpp_quote("// policies associated with the zone). Zone attributes are fixed as:")
|
|
|
|
|
|
HRESULT SetZoneAttributes
|
|
(
|
|
[in] DWORD dwZone,
|
|
[in] ZONEATTRIBUTES* pZoneAttributes
|
|
);
|
|
cpp_quote("// Sets the zone attributes (information in registry other than actual security")
|
|
cpp_quote("// policies associated with the zone). Zone attributes as above.")
|
|
cpp_quote("// Returns S_OK or ??? if failed to write the zone attributes.")
|
|
|
|
|
|
cpp_quote("/* Registry Flags")
|
|
cpp_quote("")
|
|
cpp_quote(" When reading, default behavior is:")
|
|
cpp_quote(" If HKLM allows override and HKCU value exists")
|
|
cpp_quote(" Then use HKCU value")
|
|
cpp_quote(" Else use HKLM value")
|
|
cpp_quote(" When writing, default behavior is same as HKCU")
|
|
cpp_quote(" If HKLM allows override")
|
|
cpp_quote(" Then Write to HKCU")
|
|
cpp_quote(" Else Fail")
|
|
cpp_quote("*/")
|
|
|
|
typedef enum _URLZONEREG
|
|
{
|
|
URLZONEREG_DEFAULT=0,
|
|
URLZONEREG_HKLM,
|
|
URLZONEREG_HKCU
|
|
} URLZONEREG;
|
|
|
|
HRESULT GetZoneCustomPolicy
|
|
(
|
|
[in] DWORD dwZone, // zone index
|
|
[in] REFGUID guidKey, // key to lookup value
|
|
[out, size_is(,*pcbPolicy)] // allocation via IMemAlloc; caller frees
|
|
BYTE** ppPolicy, // pointer to output buffer pointer
|
|
[out] DWORD* pcbPolicy, // pointer to output buffer size
|
|
[in] URLZONEREG urlZoneReg // effective, HKCU, or HKLM
|
|
);
|
|
|
|
cpp_quote("// Gets a named custom policy associated with a zone;")
|
|
cpp_quote("// e.g. the Java VM settings can be defined with a unique key such as 'Java'.")
|
|
cpp_quote("// Custom policy support is intended to allow extensibility from the predefined")
|
|
cpp_quote("// set of policies that IE4 has built in.")
|
|
cpp_quote("// ")
|
|
cpp_quote("// pwszKey is the string name designating the custom policy. Components are")
|
|
cpp_quote("// responsible for having unique names.")
|
|
cpp_quote("// ppPolicy is the callee allocated buffer for the policy byte blob; caller is")
|
|
cpp_quote("// responsible for freeing this buffer eventually.")
|
|
cpp_quote("// pcbPolicy is the size of the byte blob returned.")
|
|
cpp_quote("// dwRegFlags determines how registry is accessed (see above).")
|
|
cpp_quote("// Returns S_OK if key is found and buffer allocated; ??? if key is not found (no buffer alloced).")
|
|
|
|
HRESULT SetZoneCustomPolicy
|
|
(
|
|
[in] DWORD dwZone, // zone index
|
|
[in] REFGUID guidKey, // key to lookup value
|
|
[in, size_is(cbPolicy)]
|
|
BYTE* pPolicy, // input buffer pointer
|
|
[in] DWORD cbPolicy, // input data size
|
|
[in] URLZONEREG urlZoneReg // default, HKCU, or HKLM
|
|
);
|
|
cpp_quote("// Sets a named custom policy associated with a zone;")
|
|
cpp_quote("// e.g. the Java VM settings can be defined with a unique key such as 'Java'.")
|
|
cpp_quote("// Custom policy support is intended to allow extensibility from the predefined")
|
|
cpp_quote("// set of policies that IE4 has built in. ")
|
|
cpp_quote("// ")
|
|
cpp_quote("// pwszKey is the string name designating the custom policy. Components are")
|
|
cpp_quote("// responsible for having unique names.")
|
|
cpp_quote("// ppPolicy is the caller allocated buffer for the policy byte blob.")
|
|
cpp_quote("// pcbPolicy is the size of the byte blob to be set.")
|
|
cpp_quote("// dwRegFlags determines if HTCU or HKLM is set.")
|
|
cpp_quote("// Returns S_OK or ??? if failed to write the zone custom policy.")
|
|
|
|
|
|
HRESULT GetZoneActionPolicy
|
|
(
|
|
[in] DWORD dwZone, // zone index
|
|
[in] DWORD dwAction, // index number of action
|
|
[out, size_is(cbPolicy)]
|
|
BYTE* pPolicy, // output buffer pointer
|
|
[in] DWORD cbPolicy, // output buffer size
|
|
[in] URLZONEREG urlZoneReg // effective, HKCU, or HKLM
|
|
);
|
|
|
|
cpp_quote("// Gets action policy associated with a zone, the builtin, fixed-length policies info.")
|
|
cpp_quote("")
|
|
cpp_quote("// dwAction is the action code for the action as defined above.")
|
|
cpp_quote("// pPolicy is the caller allocated buffer for the policy data.")
|
|
cpp_quote("// cbPolicy is the size of the caller allocated buffer.")
|
|
cpp_quote("// dwRegFlags determines how registry is accessed (see above).")
|
|
cpp_quote("// Returns S_OK if action is valid; ??? if action is not valid.")
|
|
|
|
HRESULT SetZoneActionPolicy
|
|
(
|
|
[in] DWORD dwZone, // zone index
|
|
[in] DWORD dwAction, // index number of action
|
|
[in, size_is(cbPolicy)]
|
|
BYTE* pPolicy, // input buffer pointer
|
|
[in] DWORD cbPolicy, // input data size
|
|
[in] URLZONEREG urlZoneReg // HKCU, or HKLM
|
|
);
|
|
// Sets action policy associated with a zone, the builtin, fixed-length policies info.
|
|
//
|
|
// dwAction is the action code as defined above.
|
|
// pPolicy is the caller allocated buffer for the policy data.
|
|
// cbPolicy is the size of the caller allocated buffer.
|
|
// dwRegFlags determines how registry is accessed (see above).
|
|
// Returns S_OK if action is valid; ??? if action is not valid.
|
|
|
|
|
|
// UI, logging, and wrapper for both
|
|
// This function is not implemented yet.
|
|
HRESULT PromptAction
|
|
(
|
|
[in] DWORD dwAction, // action type
|
|
[in] HWND hwndParent, // parent window handle
|
|
[in] LPCWSTR pwszUrl, // URL to display
|
|
[in] LPCWSTR pwszText, // dialog text
|
|
[in] DWORD dwPromptFlags // reserved, pass 0
|
|
);
|
|
// This method presents UI to ask user about specified action
|
|
|
|
|
|
// This function is not implemented.
|
|
HRESULT LogAction
|
|
(
|
|
[in] DWORD dwAction, // action type
|
|
[in] LPCWSTR pwszUrl, // URL to log
|
|
[in] LPCWSTR pwszText, // associated text
|
|
[in] DWORD dwLogFlags // reserved, pass 0
|
|
);
|
|
|
|
|
|
// zone enumeration
|
|
|
|
HRESULT CreateZoneEnumerator
|
|
(
|
|
[out] DWORD* pdwEnum, // enum handle
|
|
[out] DWORD* pdwCount, // # of elements in the list.
|
|
[in] DWORD dwFlags // reserved, pass 0
|
|
);
|
|
// Returns enumerator handle needed to enumerate defined zones.
|
|
// The zone enumeration corresponds to a snap-shot of the zones when
|
|
// the Create call is made.
|
|
|
|
HRESULT GetZoneAt
|
|
(
|
|
[in] DWORD dwEnum, // returned by CreateZoneEnumerator
|
|
[in] DWORD dwIndex, // 0-based
|
|
[out] DWORD* pdwZone // absolute zone index.
|
|
);
|
|
|
|
|
|
HRESULT DestroyZoneEnumerator
|
|
(
|
|
[in] DWORD dwEnum // enum handle
|
|
);
|
|
// Destroys resources associated with an enumerator
|
|
|
|
|
|
HRESULT CopyTemplatePoliciesToZone
|
|
(
|
|
[in] DWORD dwTemplate, // High, medium or low
|
|
[in] DWORD dwZone, // Zone to copy policies to.
|
|
[in] DWORD dwReserved
|
|
);
|
|
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-2004.
|
|
//
|
|
// Contents: IInternetZoneManagerEx interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPINTERNETZONEMANAGEREX_DEFINED")
|
|
cpp_quote("#define _LPINTERNETZONEMANAGEREX_DEFINED")
|
|
|
|
[
|
|
|
|
local,
|
|
object,
|
|
uuid(A4C23339-8E06-431e-9BF4-7E711C085648),
|
|
helpstring("IInternetZoneManagerEx Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IInternetZoneManagerEx : IInternetZoneManager
|
|
{
|
|
HRESULT GetZoneActionPolicyEx
|
|
(
|
|
[in] DWORD dwZone, // zone index
|
|
[in] DWORD dwAction, // index number of action
|
|
[out, size_is(cbPolicy)]
|
|
BYTE* pPolicy, // output buffer pointer
|
|
[in] DWORD cbPolicy, // output buffer size
|
|
[in] URLZONEREG urlZoneReg, // effective, HKCU, or HKLM
|
|
[in] DWORD dwFlags //Lockdown Zones or Normal Zones via ZAFLAGS
|
|
);
|
|
|
|
cpp_quote("// Gets action policy associated with a zone, the builtin, fixed-length policies info.")
|
|
cpp_quote("")
|
|
cpp_quote("// dwAction is the action code for the action as defined above.")
|
|
cpp_quote("// pPolicy is the caller allocated buffer for the policy data.")
|
|
cpp_quote("// cbPolicy is the size of the caller allocated buffer.")
|
|
cpp_quote("// dwRegFlags determines how registry is accessed (see above).")
|
|
cpp_quote("// dwFlags determine which registry policies are accessed (see above).")
|
|
cpp_quote("// Returns S_OK if action is valid; ??? if action is not valid.")
|
|
|
|
HRESULT SetZoneActionPolicyEx
|
|
(
|
|
[in] DWORD dwZone, // zone index
|
|
[in] DWORD dwAction, // index number of action
|
|
[in, size_is(cbPolicy)]
|
|
BYTE* pPolicy, // input buffer pointer
|
|
[in] DWORD cbPolicy, // input data size
|
|
[in] URLZONEREG urlZoneReg, // HKCU, or HKLM
|
|
[in] DWORD dwFlags //Lockdown Zones or Normal Zones via ZAFLAGS
|
|
);
|
|
// Sets action policy associated with a zone, the builtin, fixed-length policies info.
|
|
//
|
|
// dwAction is the action code as defined above.
|
|
// pPolicy is the caller allocated buffer for the policy data.
|
|
// cbPolicy is the size of the caller allocated buffer.
|
|
// urlZoneReg determines how registry is accessed (see above).
|
|
// dwFlags determine which registry policies are accessed (see above).
|
|
// Returns S_OK if action is valid; ??? if action is not valid.
|
|
}
|
|
cpp_quote("#endif")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE60SP2)")
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-2004.
|
|
//
|
|
// Contents: IInternetZoneManagerEx2 interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPINTERNETZONEMANAGEREX2_DEFINED")
|
|
cpp_quote("#define _LPINTERNETZONEMANAGEREX2_DEFINED")
|
|
|
|
cpp_quote("#define SECURITY_IE_STATE_GREEN 0x00000000")
|
|
cpp_quote("#define SECURITY_IE_STATE_RED 0x00000001")
|
|
|
|
[
|
|
|
|
local,
|
|
object,
|
|
uuid(EDC17559-DD5D-4846-8EEF-8BECBA5A4ABF),
|
|
helpstring("IInternetZoneManagerEx2 Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IInternetZoneManagerEx2 : IInternetZoneManagerEx
|
|
{
|
|
HRESULT GetZoneAttributesEx
|
|
(
|
|
[in] DWORD dwZone,
|
|
[in, out, unique]
|
|
ZONEATTRIBUTES* pZoneAttributes,
|
|
[in] DWORD dwFlags // can only be ZAFLAGS_VERIFY_TEMPLATE_SETTINGS
|
|
);
|
|
|
|
HRESULT GetZoneSecurityState
|
|
(
|
|
[in] DWORD dwZoneIndex,
|
|
[in] BOOL fRespectPolicy,
|
|
[in, out] LPDWORD pdwState,
|
|
[in, out] BOOL* pfPolicyEncountered
|
|
);
|
|
|
|
HRESULT GetIESecurityState
|
|
(
|
|
[in] BOOL fRespectPolicy,
|
|
[in, out] LPDWORD pdwState,
|
|
[in, out] BOOL* pfPolicyEncountered,
|
|
[in] BOOL fNoCache
|
|
);
|
|
|
|
HRESULT FixUnsecureSettings();
|
|
|
|
cpp_quote("// Gets the zone attributes (information in registry other than actual security")
|
|
cpp_quote("// policies associated with the zone). Zone attributes are fixed as:")
|
|
cpp_quote("// Can also verify template settings by matching current settings with security template")
|
|
}
|
|
cpp_quote("#endif")
|
|
cpp_quote("#endif //(_WIN32_IE >= _WIN32_IE_IE70)")
|
|
|
|
cpp_quote("EXTERN_C const IID CLSID_SoftDistExt; ")
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: ISoftDistExt interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPSOFTDISTEXT_DEFINED")
|
|
cpp_quote("#define _LPSOFTDISTEXT_DEFINED")
|
|
|
|
cpp_quote("")
|
|
cpp_quote("#define SOFTDIST_FLAG_USAGE_EMAIL 0x00000001")
|
|
cpp_quote("#define SOFTDIST_FLAG_USAGE_PRECACHE 0x00000002")
|
|
cpp_quote("#define SOFTDIST_FLAG_USAGE_AUTOINSTALL 0x00000004")
|
|
cpp_quote("#define SOFTDIST_FLAG_DELETE_SUBSCRIPTION 0x00000008")
|
|
cpp_quote("")
|
|
cpp_quote("")
|
|
cpp_quote("#define SOFTDIST_ADSTATE_NONE 0x00000000")
|
|
cpp_quote("#define SOFTDIST_ADSTATE_AVAILABLE 0x00000001")
|
|
cpp_quote("#define SOFTDIST_ADSTATE_DOWNLOADED 0x00000002")
|
|
cpp_quote("#define SOFTDIST_ADSTATE_INSTALLED 0x00000003")
|
|
cpp_quote("")
|
|
typedef struct _tagCODEBASEHOLD
|
|
{
|
|
ULONG cbSize;
|
|
LPWSTR szDistUnit;
|
|
LPWSTR szCodeBase;
|
|
DWORD dwVersionMS;
|
|
DWORD dwVersionLS;
|
|
DWORD dwStyle;
|
|
} CODEBASEHOLD, *LPCODEBASEHOLD;
|
|
|
|
typedef struct _tagSOFTDISTINFO
|
|
{
|
|
ULONG cbSize;
|
|
DWORD dwFlags;
|
|
DWORD dwAdState;
|
|
LPWSTR szTitle;
|
|
LPWSTR szAbstract;
|
|
LPWSTR szHREF;
|
|
DWORD dwInstalledVersionMS;
|
|
DWORD dwInstalledVersionLS;
|
|
DWORD dwUpdateVersionMS;
|
|
DWORD dwUpdateVersionLS;
|
|
DWORD dwAdvertisedVersionMS;
|
|
DWORD dwAdvertisedVersionLS;
|
|
DWORD dwReserved;
|
|
} SOFTDISTINFO, *LPSOFTDISTINFO;
|
|
|
|
[
|
|
|
|
local,
|
|
object,
|
|
uuid(B15B8DC1-C7E1-11d0-8680-00AA00BDCB71),
|
|
helpstring("ISoftDistExt Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface ISoftDistExt : IUnknown
|
|
{
|
|
|
|
HRESULT ProcessSoftDist
|
|
(
|
|
[in] LPCWSTR szCDFURL,
|
|
[in] IXMLElement *pSoftDistElement,
|
|
[in, out] LPSOFTDISTINFO lpsdi
|
|
);
|
|
|
|
|
|
HRESULT GetFirstCodeBase
|
|
(
|
|
[in, annotation("__RPC__in")] LPWSTR *szCodeBase,
|
|
[in] LPDWORD dwMaxSize
|
|
);
|
|
|
|
HRESULT GetNextCodeBase
|
|
(
|
|
[in, annotation("__RPC__in")] LPWSTR *szCodeBase,
|
|
[in] LPDWORD dwMaxSize
|
|
);
|
|
|
|
HRESULT AsyncInstallDistributionUnit
|
|
(
|
|
[in] IBindCtx *pbc,
|
|
[in] LPVOID pvReserved,
|
|
[in] DWORD flags,
|
|
[in] LPCODEBASEHOLD lpcbh
|
|
);
|
|
|
|
}
|
|
|
|
cpp_quote("STDAPI GetSoftwareUpdateInfo( LPCWSTR szDistUnit, LPSOFTDISTINFO psdi );")
|
|
cpp_quote("STDAPI SetSoftwareUpdateAdvertisementState( LPCWSTR szDistUnit, DWORD dwAdState, DWORD dwAdvertisedVersionMS, DWORD dwAdvertisedVersionLS );")
|
|
|
|
cpp_quote("#endif")
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: ICatalogFileInfo interface definition
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPCATALOGFILEINFO_DEFINED")
|
|
cpp_quote("#define _LPCATALOGFILEINFO_DEFINED")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(711C7600-6B48-11d1-B403-00AA00B92AF1),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
|
|
interface ICatalogFileInfo : IUnknown
|
|
{
|
|
|
|
typedef [unique] ICatalogFileInfo *LPCATALOGFILEINFO;
|
|
|
|
HRESULT GetCatalogFile(
|
|
[out, annotation("__RPC__out")] LPSTR *ppszCatalogFile // Catalog file path
|
|
);
|
|
HRESULT GetJavaTrust(
|
|
[out] void **ppJavaTrust // Java Trust structure
|
|
);
|
|
|
|
}
|
|
|
|
cpp_quote("#endif")
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IDataFilter definition
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPDATAFILTER_DEFINED")
|
|
cpp_quote("#define _LPDATAFILTER_DEFINED")
|
|
|
|
[
|
|
object,
|
|
uuid(69d14c80-c18e-11d0-a9ce-006097942311),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IDataFilter: IUnknown
|
|
{
|
|
typedef [unique] IDataFilter *LPDATAFILTER;
|
|
|
|
HRESULT DoEncode(
|
|
[in] DWORD dwFlags,
|
|
[in] LONG lInBufferSize,
|
|
[in, size_is(lInBufferSize)]
|
|
BYTE* pbInBuffer,
|
|
[in] LONG lOutBufferSize,
|
|
[out, size_is(lOutBufferSize)]
|
|
BYTE* pbOutBuffer,
|
|
[in] LONG lInBytesAvailable,
|
|
[out] LONG* plInBytesRead,
|
|
[out] LONG* plOutBytesWritten,
|
|
[in] DWORD dwReserved
|
|
);
|
|
|
|
HRESULT DoDecode(
|
|
[in] DWORD dwFlags,
|
|
[in] LONG lInBufferSize,
|
|
[in, size_is(lInBufferSize)]
|
|
BYTE* pbInBuffer,
|
|
[in] LONG lOutBufferSize,
|
|
[out, size_is(lOutBufferSize)]
|
|
BYTE* pbOutBuffer,
|
|
[in] LONG lInBytesAvailable,
|
|
[out] LONG* plInBytesRead,
|
|
[out] LONG* plOutBytesWritten,
|
|
[in] DWORD dwReserved
|
|
);
|
|
|
|
HRESULT SetEncodingLevel(
|
|
[in] DWORD dwEncLevel
|
|
);
|
|
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: IEncodingFilterFactory definition
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
cpp_quote("#ifndef _LPENCODINGFILTERFACTORY_DEFINED")
|
|
cpp_quote("#define _LPENCODINGFILTERFACTORY_DEFINED")
|
|
|
|
typedef struct _tagPROTOCOLFILTERDATA
|
|
{
|
|
DWORD cbSize;
|
|
IInternetProtocolSink *pProtocolSink; // out parameter
|
|
IInternetProtocol *pProtocol; // in parameter
|
|
IUnknown *pUnk;
|
|
DWORD dwFilterFlags;
|
|
} PROTOCOLFILTERDATA;
|
|
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(70bdde00-c18e-11d0-a9ce-006097942311),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IEncodingFilterFactory : IUnknown
|
|
{
|
|
typedef [unique] IEncodingFilterFactory *LPENCODINGFILTERFACTORY;
|
|
|
|
typedef struct _tagDATAINFO
|
|
{
|
|
ULONG ulTotalSize;
|
|
ULONG ulavrPacketSize;
|
|
ULONG ulConnectSpeed;
|
|
ULONG ulProcessorSpeed;
|
|
} DATAINFO ;
|
|
|
|
|
|
HRESULT FindBestFilter(
|
|
[in] LPCWSTR pwzCodeIn,
|
|
[in] LPCWSTR pwzCodeOut,
|
|
[in] DATAINFO info,
|
|
[out] IDataFilter** ppDF
|
|
);
|
|
|
|
HRESULT GetDefaultFilter(
|
|
[in] LPCWSTR pwzCodeIn,
|
|
[in] LPCWSTR pwzCodeOut,
|
|
[out] IDataFilter** ppDF
|
|
);
|
|
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995-1998.
|
|
//
|
|
// Contents: Hit Logging Apis definition
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
|
|
cpp_quote("#ifndef _HITLOGGING_DEFINED")
|
|
cpp_quote("#define _HITLOGGING_DEFINED")
|
|
|
|
cpp_quote("// Logging-specific apis")
|
|
#pragma midl_echo("BOOL WINAPI IsLoggingEnabledA(__in LPCSTR pszUrl); ")
|
|
#pragma midl_echo("BOOL WINAPI IsLoggingEnabledW(__in LPCWSTR pwszUrl); ")
|
|
|
|
cpp_quote("#ifdef UNICODE ")
|
|
cpp_quote("#define IsLoggingEnabled IsLoggingEnabledW ")
|
|
cpp_quote("#else ")
|
|
cpp_quote("#define IsLoggingEnabled IsLoggingEnabledA ")
|
|
cpp_quote("#endif // !UNICODE ")
|
|
|
|
// HIT_LOGGING_INFO
|
|
typedef struct _tagHIT_LOGGING_INFO {
|
|
DWORD dwStructSize;
|
|
LPSTR lpszLoggedUrlName;
|
|
SYSTEMTIME StartTime;
|
|
SYSTEMTIME EndTime;
|
|
LPSTR lpszExtendedInfo;
|
|
} HIT_LOGGING_INFO, * LPHIT_LOGGING_INFO;
|
|
|
|
#pragma midl_echo("BOOL WINAPI WriteHitLogging(__in LPHIT_LOGGING_INFO lpLogginginfo); ")
|
|
|
|
cpp_quote("#define CONFIRMSAFETYACTION_LOADOBJECT 0x00000001")
|
|
|
|
struct CONFIRMSAFETY
|
|
{
|
|
CLSID clsid;
|
|
IUnknown * pUnk;
|
|
DWORD dwFlags;
|
|
};
|
|
|
|
cpp_quote("EXTERN_C const GUID GUID_CUSTOM_CONFIRMOBJECTSAFETY; ")
|
|
|
|
cpp_quote("#endif")
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 2000.
|
|
//
|
|
// Contents: IWrappedProtocol definition
|
|
//
|
|
//---------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPIWRAPPEDPROTOCOL_DEFINED")
|
|
cpp_quote("#define _LPIWRAPPEDPROTOCOL_DEFINED")
|
|
[
|
|
local,
|
|
object,
|
|
uuid(53c84785-8425-4dc5-971b-e58d9c19f9b6),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IWrappedProtocol : IUnknown
|
|
{
|
|
typedef [unique] IWrappedProtocol *LPIWRAPPEDPROTOCOL;
|
|
|
|
HRESULT GetWrapperCode(
|
|
[out] LONG * pnCode,
|
|
[in] DWORD_PTR dwReserved
|
|
);
|
|
}
|
|
cpp_quote("#endif")
|
|
|