📄 urlmon.idl
字号:
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992-1997.
//
// File: urlmon.idl
//
// Contents: async moniker interfaces
//
// Classes:
//
// Functions:
//
//
//----------------------------------------------------------------------------
cpp_quote("//=--------------------------------------------------------------------------=")
cpp_quote("// UrlMon.h")
cpp_quote("//=--------------------------------------------------------------------------=")
cpp_quote("// (C) Copyright 1995 - 1998 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("")
import "objidl.idl";
import "oleidl.idl";
import "servprov.idl";
import "msxml.idl";
interface IPersistMoniker;
interface IBindProtocol;
interface IBinding;
interface IBindStatusCallback;
interface IBindStatusCallbackMsg;
interface IAuthenticate;
interface IWindowForBindingUI;
interface ICodeInstall;
interface IHttpNegotiate;
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 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(" ")
#pragma midl_echo("STDAPI CreateURLMoniker(LPMONIKER pMkCtx, LPCWSTR szURL, LPMONIKER FAR * ppmk); ")
#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); ")
#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(" ")
#pragma midl_echo("//helper apis ")
#pragma midl_echo("STDAPI IsAsyncMoniker(IMoniker* pmk); ")
#pragma midl_echo("STDAPI CreateURLBinding(LPCWSTR lpszUrl, IBindCtx *pbc, IBinding **ppBdg); ")
#pragma midl_echo(" ")
#pragma midl_echo("STDAPI RegisterMediaTypes(UINT ctypes, const LPCSTR* rgszTypes, CLIPFORMAT* rgcfTypes); ")
#pragma midl_echo("STDAPI FindMediaType(LPCSTR rgszTypes, 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, LPVOID pBuffer, DWORD dwBufferLength, DWORD dwReserved); ")
#pragma midl_echo("STDAPI UrlMkGetSessionOption(DWORD dwOption, LPVOID pBuffer, DWORD dwBufferLength, DWORD *pdwBufferLength, DWORD dwReserved); ")
#pragma midl_echo("STDAPI FindMimeFromData( ")
#pragma midl_echo(" LPBC pBC, // bind context - can be NULL ")
#pragma midl_echo(" LPCWSTR pwzUrl, // url - can be null ")
#pragma midl_echo(" 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(" LPCWSTR pwzMimeProposed, // proposed mime if - can be null ")
#pragma midl_echo(" DWORD dwMimeFlags, // will be defined ")
#pragma midl_echo(" LPWSTR *ppwzMimeOut, // the suggested mime ")
#pragma midl_echo(" DWORD dwReserved); // must be 0 ")
#pragma midl_echo("STDAPI ObtainUserAgentString(DWORD dwOption, LPSTR pszUAOut, DWORD* cbSize); ")
#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(" ")
#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_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(" ")
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) ")
//
// 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_ERROR_FIRST _HRESULT_TYPEDEF_(0x800C0002L) ")
cpp_quote("#define INET_E_ERROR_LAST INET_E_REDIRECT_TO_DIR")
//+---------------------------------------------------------------------------
//
// Copyright (C) Microsoft Corporation, 1995-1997.
//
// 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);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -