Home COM GDI+ WebBrowser Data Access 

URL Monikers

 

 

URL monikers allow an application to bind a resource—which is specified by a URL—to a moniker.

 

Overviews/Tutorials

Handling MIME Types in Internet Explorer

When Microsoft Internet Explorer downloads a file, it goes through several steps to ensure that the type of the file matches the Multipurpose Internet Mail Extensions (MIME) type declared by the HTTP server.

 

MIME Type Detection in Internet Explorer

In Internet Explorer 4.0 and later, MIME type determination occurs in URL monikers through the FindMimeFromData method. Determining the MIME type allows URL monikers and other components to find and launch the correct object server or application to handle the associated content. This section provides a brief summary of the logic used in determining the MIME type from these sources, and also discusses some of the issues involved.

 

URL Monikers

A URL moniker is a system-provided moniker class that supports asynchronous binding to a Uniform Resource Locator (URL). This article covers the moniker functionality exported by Urlmon.dll.

 

URL Monikers Constants

This section contains a list of constants available for URL Monikers.

 

URL Monikers Enumerations

This section lists the enumerations for URL Monikers.

 

URL Monikers Functions

This section lists the functions for URL Monikers.

 

URL Monikers Interfaces

This section lists the interfaces for URL Monikers.

 

URL Monikers Overviews and Tutorials

This section contains overviews and tutorials for URL Monikers.

 

URL Monikers Reference

This section contains reference information for URL Monikers.

 

URL Monikers Structures

This section contains a list of structures available for URL Monikers.

 

 

Interfaces

 

IAsyncMoniker

IAuthenticate

IBindHost

IBinding

IBindProtocol (not currently supported)

IBindStatusCallback

ICodeInstall

IEnumSTATURL

IHttpNegotiate

IHttpNegotiate2

IHttpSecurity

IInternetProtocolEx (IE 7.0)

IInternetSecurityManagerEx2 (IE 7.0)

 

 

IMonikerProp

IPersistMoniker

ISoftDistEx (not currently supported)

IUri (IE 7.0)

IUriContainer (IE 7.0)

IUrlHistoryNotify

IUrlHistoryStg

IUrlHistoryStg2

IWindowForBindingUI

IWinInetCacheHints

IWinInetHttpInfo

IWinInetInfo

 

 

Functions

 

AsyncInstallDistributionUnit

CoGetClassObjectFromURL

CoInternetCombineIUri

CoInternetCombineUrl

CoInternetCombineUrlEx

CoInternetCompareUrl

CoInternetGetSecurityUrlEx

CoInternetParseIUri

CoInternetQueryInfo

CompatFlagsFromClsid

CopyBindInfo

CopyStgMedium

CreateAsyncBindCtx

CreateAsyncBindCtxEx

CreateFormatEnumerator

CreateUri

CreateURLBinding

CreteURLMoniker

CreateURLMonikerEx

CreateURLMonikerEx2

FindMediaType

FindMediaTypeClass

 

 

FindMimeFromData

GetClassFileOrMime

GetClassURL

IsAsyncMoniker

IsValidURL

MkParseDisplayNameEx

ObtainUserAgentString

RegisterBindStatusCallback

RegisterFormatEnumerator

RegisterMediaTypeClass

RegisterMediaTypes

ReleaseBindInfo

RevokeBindStatusCallback

RevokeFormatEnumerator

URLDownloadToCacheFile

URLDownloadToFile

UrlMkGetSessionOption

UrlMkSetSessionOption

URLOpenBlockingStream

URLOpenPullStream

URLOpenStream

 

 

Structures

 

BINDINFO

 

Contains additional information on the requested binding operation. The meaning of this structure is specific to the type of asynchronous moniker.

 

TYPE BINDINFO
   cbSize AS DWORD
   szExtraInfo AS DWORD
   stgmedData AS STGMEDIUM
   grfBindInfoF AS DWORD
   dwBindVerb AS DWORD
   szCustomVerb AS DWORD
   cbStgmedData AS DWORD
   dwOptions AS DWORD
   dwOptionsFlags AS DWORD
   dwCodePage AS DWORD
   securityAttributes AS SECURITY_ATTRIBUTES
   iid AS GUID
   pUnk AS DWORD
   dwReserved AS DWORD
END TYPE

 

 

CONFIRMSAFETY

 

Contains a class identifier (CLSID) and pointer to an object.

 

TYPE CONFIRMSAFETY
   rclsid AS GUID
   pUnk AS DWORD
   dwFlags AS DWORD
END TYPE

 

 

STATURL

 

Contains statistics about a URL. This structure is filled by Microsoft Internet Explorer during calls to certain IUrlHistory interfaces.

 

TYPE STATURL

   cbSize AS DWORD
   pwcsUrl AS DWORD
   pwcsTitle AS DWORD
   ftLastVisited AS FILETIME
   ftLastUpdated AS FILETIME
   ftExpires AS FILETIME
   dwFlags AS DWORD
END TYPE
 

 

Enumerations

 

ADDURL_FLAG

 

%ADDURL_FIRST = 0
%ADDURL_ADDTOHISTORYANDCACHE = 0
%ADDURL_ADDTOCACHE = 1
%ADDURL_Max = 2147483647&

 

 

BINDF

 

Contains the values that determine how a resource should be bound to a moniker.

 

%BINDF_ASYNCHRONOUS = &H00000001
%BINDF_ASYNCSTORAGE = &H00000002
%BINDF_NOPROGRESSIVERENDERING = &H00000004
%BINDF_OFFLINEOPERATION = &H00000008
%BINDF_GETNEWESTVERSION = &H00000010
%BINDF_NOWRITECACHE = &H00000020
%BINDF_NEEDFILE = &H00000040
%BINDF_PULLDATA = &H00000080
%BINDF_IGNORESECURITYPROBLEM = &H00000100
%BINDF_RESYNCHRONIZE = &H00000200
%BINDF_HYPERLINK = &H00000400
%BINDF_NO_UI = &H00000800
%BINDF_SILENTOPERATION = &H00001000
%BINDF_PRAGMA_NO_CACHE = &H00002000
%BINDF_GETCLASSOBJECT = &H00004000
%BINDF_RESERVED_1 = &H00008000
%BINDF_FREE_THREADED = &H00010000
%BINDF_DIRECT_READ = &H00020000
%BINDF_FORMS_SUBMIT = &H00040000
%BINDF_GETFROMCACHE_IF_NET_FAIL = &H00080000
%BINDF_FROMURLMON = &H00100000
%BINDF_FWD_BACK = &H00200000
%BINDF_PREFERDEFAULTHANDLER = &H00400000
%BINDF_RESERVED_3 = &H00800000

 

 

BINDINFO_OPTIONS

 

Contains the option flags used in the BINDINFO structure.

 

%BINDINFO_OPTIONS_WININETFLAG = &H00010000
%BINDINFO_OPTIONS_ENABLE_UTF8 = &H00020000
%BINDINFO_OPTIONS_DISABLE_UTF8 = &H00040000
%BINDINFO_OPTIONS_USE_IE_ENCODING = &H00080000
%BINDINFO_OPTIONS_BINDTOOBJECT = &H00100000
%BINDINFO_OPTIONS_SECURITYOPTOUT = &H00200000
%BINDINFO_OPTIONS_IGNOREMIMETEXTPLAIN = &H00400000
%BINDINFO_OPTIONS_USEBINDSTRINGCREDS = &H00800000
%BINDINFO_OPTIONS_IGNOREHTTPHTTPSREDIRECTS = &H01000000
%BINDINFO_OPTIONS_DISABLEAUTOREDIRECTS = &H40000000
%BINDINFO_OPTIONS_SHDOCVW_NAVIGATE = &H80000000

 

 

BINDINFOF

 

Contains values that determine the use of URL encoding during the binding operation.

 

%BINDINFOF_URLENCODESTGMEDDATA = &H1
%BINDINFOF_URLENCODEDEXTRAINFO = &H2

 

 

BINDSTATUS

 

Contains values that are passed to the client application's implementation of the IBindStatusCallback::OnProgress method to indicate the progress of the bind operation.

 

%BINDSTATUS_FINDINGRESOURCE = 1
%BINDSTATUS_CONNECTING = %BINDSTATUS_FINDINGRESOURCE + 1
%BINDSTATUS_REDIRECTING = %BINDSTATUS_CONNECTING + 1
%BINDSTATUS_BEGINDOWNLOADDATA = %BINDSTATUS_REDIRECTING + 1
%BINDSTATUS_DOWNLOADINGDATA = %BINDSTATUS_BEGINDOWNLOADDATA + 1
%BINDSTATUS_ENDDOWNLOADDATA = %BINDSTATUS_DOWNLOADINGDATA + 1
%BINDSTATUS_BEGINDOWNLOADCOMPONENTS = %BINDSTATUS_ENDDOWNLOADDATA + 1
%BINDSTATUS_INSTALLINGCOMPONENTS = %BINDSTATUS_BEGINDOWNLOADCOMPONENTS + 1
%BINDSTATUS_ENDDOWNLOADCOMPONENTS = %BINDSTATUS_INSTALLINGCOMPONENTS + 1
%BINDSTATUS_USINGCACHEDCOPY = %BINDSTATUS_ENDDOWNLOADCOMPONENTS + 1
%BINDSTATUS_SENDINGREQUEST = %BINDSTATUS_USINGCACHEDCOPY + 1
%BINDSTATUS_CLASSIDAVAILABLE = %BINDSTATUS_SENDINGREQUEST + 1
%BINDSTATUS_MIMETYPEAVAILABLE = %BINDSTATUS_CLASSIDAVAILABLE + 1
%BINDSTATUS_CACHEFILENAMEAVAILABLE = %BINDSTATUS_MIMETYPEAVAILABLE + 1
%BINDSTATUS_BEGINSYNCOPERATION = %BINDSTATUS_CACHEFILENAMEAVAILABLE + 1
%BINDSTATUS_ENDSYNCOPERATION = %BINDSTATUS_BEGINSYNCOPERATION + 1
%BINDSTATUS_BEGINUPLOADDATA = %BINDSTATUS_ENDSYNCOPERATION + 1
%BINDSTATUS_UPLOADINGDATA = %BINDSTATUS_BEGINUPLOADDATA + 1
%BINDSTATUS_ENDUPLOADDATA = %BINDSTATUS_UPLOADINGDATA + 1
%BINDSTATUS_PROTOCOLCLASSID = %BINDSTATUS_ENDUPLOADDATA + 1
%BINDSTATUS_ENCODING = %BINDSTATUS_PROTOCOLCLASSID + 1
%BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE = %BINDSTATUS_ENCODING + 1
%BINDSTATUS_CLASSINSTALLLOCATION = %BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE + 1
%BINDSTATUS_DECODING = %BINDSTATUS_CLASSINSTALLLOCATION + 1
%BINDSTATUS_LOADINGMIMEHANDLER = %BINDSTATUS_DECODING + 1
%BINDSTATUS_CONTENTDISPOSITIONATTACH = %BINDSTATUS_LOADINGMIMEHANDLER + 1
%BINDSTATUS_FILTERREPORTMIMETYPE = %BINDSTATUS_CONTENTDISPOSITIONATTACH + 1
%BINDSTATUS_CLSIDCANINSTANTIATE = %BINDSTATUS_FILTERREPORTMIMETYPE + 1
%BINDSTATUS_IUNKNOWNAVAILABLE = %BINDSTATUS_CLSIDCANINSTANTIATE + 1
%BINDSTATUS_DIRECTBIND = %BINDSTATUS_IUNKNOWNAVAILABLE + 1
%BINDSTATUS_RAWMIMETYPE = %BINDSTATUS_DIRECTBIND + 1
%BINDSTATUS_PROXYDETECTING = %BINDSTATUS_RAWMIMETYPE + 1
%BINDSTATUS_ACCEPTRANGES = %BINDSTATUS_PROXYDETECTING + 1
%BINDSTATUS_COOKIE_SENT = %BINDSTATUS_ACCEPTRANGES + 1
%BINDSTATUS_COMPACT_POLICY_RECEIVED = %BINDSTATUS_COOKIE_SENT + 1
%BINDSTATUS_COOKIE_SUPPRESSED = %BINDSTATUS_COMPACT_POLICY_RECEIVED + 1
%BINDSTATUS_COOKIE_STATE_UNKNOWN = %BINDSTATUS_COOKIE_SUPPRESSED + 1
%BINDSTATUS_COOKIE_STATE_ACCEPT = %BINDSTATUS_COOKIE_STATE_UNKNOWN + 1
%BINDSTATUS_COOKIE_STATE_REJECT = %BINDSTATUS_COOKIE_STATE_ACCEPT + 1
%BINDSTATUS_COOKIE_STATE_PROMPT = %BINDSTATUS_COOKIE_STATE_REJECT + 1
%BINDSTATUS_COOKIE_STATE_LEASH = %BINDSTATUS_COOKIE_STATE_PROMPT + 1
%BINDSTATUS_COOKIE_STATE_DOWNGRADE = %BINDSTATUS_COOKIE_STATE_LEASH + 1
%BINDSTATUS_POLICY_HREF = %BINDSTATUS_COOKIE_STATE_DOWNGRADE + 1
%BINDSTATUS_P3P_HEADER = %BINDSTATUS_POLICY_HREF + 1
%BINDSTATUS_SESSION_COOKIE_RECEIVED = %BINDSTATUS_P3P_HEADER + 1
%BINDSTATUS_PERSISTENT_COOKIE_RECEIVED = %BINDSTATUS_SESSION_COOKIE_RECEIVED + 1
%BINDSTATUS_SESSION_COOKIES_ALLOWED = %BINDSTATUS_PERSISTENT_COOKIE_RECEIVED + 1
%BINDSTATUS_CACHECONTROL = %BINDSTATUS_SESSION_COOKIES_ALLOWED + 1
%BINDSTATUS_CONTENTDISPOSITIONFILENAME = %BINDSTATUS_CACHECONTROL + 1
%BINDSTATUS_MIMETEXTPLAINMISMATCH = %BINDSTATUS_CONTENTDISPOSITIONFILENAME + 1
%BINDSTATUS_PUBLISHERAVAILABLE = %BINDSTATUS_MIMETEXTPLAINMISMATCH + 1
%BINDSTATUS_DISPLAYNAMEAVAILABLE = %BINDSTATUS_PUBLISHERAVAILABLE + 1

 

 

BINDVERB

 

Contains values that specify an action, such as an HTTP request, to be performed during the binding operation.

 

%BINDVERB_GET = 0
%BINDVERB_POST = &H1
%BINDVERB_PUT = &H2
%BINDVERB_CUSTOM = &H3

 

 

BSCF

 

Values from the BSCF enumeration are passed to the client in IBindStatusCallback::OnDataAvailable to indicate the type of data that is available.

 

%BSCF_FIRSTDATANOTIFICATION = &H1
%BSCF_INTERMEDIATEDATANOTIFICATION = &H2
%BSCF_LASTDATANOTIFICATION = &H4
%BSCF_DATAFULLYAVAILABLE = &H8
%BSCF_AVAILABLEDATASIZEUNKNOWN = &H10

 

 

CIP_STATUS

 

Contains the various application installation or file download problem statuses.

 

%CIP_DISK_FULL = 0
%CIP_ACCESS_DENIED = 1
%CIP_NEWER_VERSION_EXISTS = 2
%CIP_OLDER_VERSION_EXISTS = 3
%CIP_NAME_CONFLICT = 4
%CIP_TRUST_VERIFICATION_COMPONENT_MISSING = 5
%CIP_EXE_SELF_REGISTERATION_TIMEOUT = 6
%CIP_UNSAFE_TO_ABORT = 7
%CIP_NEED_REBOOT = 8
%CIP_NEED_REBOOT_UI_PERMISSION = 9

 

 

MONIKERPROPERTY

 

Contains values that identify properties of a moniker.

 

%MIMETYPEPROP = &H00000000
%USE_SRC_URL = &H00000001
%CLASSIDPROP = &H00000002
%TRUSTEDDOWNLOADPROP = &H00000003
%POPUPLEVELPROP = &H00000004

 

 

QUERYOPTION

 

Contains the available query options.

 

%QUERY_EXPIRATION_DATE = 1
%QUERY_TIME_OF_LAST_CHANGE = %QUERY_EXPIRATION_DATE + 1
%QUERY_CONTENT_ENCODING = %QUERY_TIME_OF_LAST_CHANGE + 1
%QUERY_CONTENT_TYPE = %QUERY_CONTENT_ENCODING + 1
%QUERY_REFRESH = %QUERY_CONTENT_TYPE + 1
%QUERY_RECOMBINE = %QUERY_REFRESH + 1
%QUERY_CAN_NAVIGATE = %QUERY_RECOMBINE + 1
%QUERY_USES_NETWORK = %QUERY_CAN_NAVIGATE + 1
%QUERY_IS_CACHED = %QUERY_USES_NETWORK + 1
%QUERY_IS_INSTALLEDENTRY = %QUERY_IS_CACHED + 1
%QUERY_IS_CACHED_OR_MAPPED = %QUERY_IS_INSTALLEDENTRY + 1
%QUERY_USES_CACHE = %QUERY_IS_CACHED_OR_MAPPED + 1
%QUERY_IS_SECURE = %QUERY_USES_CACHE + 1
%QUERY_IS_SAFE = %QUERY_IS_SECURE + 1

 

 

URL_ENCODING

 

Contains the flags that control the encoding of URLs.

 

%URL_ENCODING_NONE = &H00000000
%URL_ENCODING_ENABLE_UTF8 = &H10000000
%URL_ENCODING_DISABLE_UTF8 = &H20000000

 

 

Constants

 

URL Moniker Error Codes

 

%INET_E_INVALID_URL = &H800C0002&
%INET_E_NO_SESSION = &H800C0003&
%INET_E_CANNOT_CONNECT = &H800C0004&
%INET_E_RESOURCE_NOT_FOUND = &H800C0005&
%INET_E_OBJECT_NOT_FOUND = &H800C0006&
%INET_E_DATA_NOT_AVAILABLE = &H800C0007&
%INET_E_DOWNLOAD_FAILURE = &H800C0008&
%INET_E_AUTHENTICATION_REQUIRED = &H800C0009&
%INET_E_NO_VALID_MEDIA = &H800C000A&
%INET_E_CONNECTION_TIMEOUT = &H800C000B&
%INET_E_INVALID_REQUEST = &H800C000C&
%INET_E_UNKNOWN_PROTOCOL = &H800C000D&
%INET_E_SECURITY_PROBLEM = &H800C000E&
%INET_E_CANNOT_LOAD_DATA = &H800C000F&
%INET_E_CANNOT_INSTANTIATE_OBJECT = &H800C0010&
%INET_E_REDIRECT_FAILED = &H800C0014&
%INET_E_REDIRECT_TO_DIR = &H800C0015&
%INET_E_CANNOT_LOCK_REQUEST = &H800C0016&
%INET_E_USE_EXTEND_BINDING = &H800C0017&
%INET_E_TERMINATED_BIND = &H800C0018&
%INET_E_ERROR_FIRST = &H800C0002&
%INET_E_CODE_DOWNLOAD_DECLINED = &H800C0100&
%INET_E_RESULT_DISPATCHED = &H800C0200&
%INET_E_CANNOT_REPLACE_SFP_FILE = &H800C0300&
%INET_E_CODE_INSTALL_SUPPRESSED = &H800C0400&
%INET_E_ERROR_LAST = %INET_E_CANNOT_REPLACE_SFP_FILE

 

 

Flags

 

IUrlHistory Flags

 

%STATURL_QUERYFLAG_ISCACHED = &H00010000
%STATURL_QUERYFLAG_NOURL = &H00020000
%STATURL_QUERYFLAG_NOTITLE = &H00040000
%STATURL_QUERYFLAG_TOPLEVEL = &H00080000
%STATURLFLAG_ISCACHED = &H00000001
%STATURLFLAG_ISTOPLEVEL = &H00000002

 

 

Page last updated on Saturday, 07 January 2006 18:27:06 +0100