ReactOS 0.4.17-dev-573-g8315b8c
urlmon.idl File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

interface  IInternet
 
interface  IBinding
 
interface  IBindStatusCallback
 
struct  IBindStatusCallback::_tagBINDINFO
 
struct  IBindStatusCallback::_REMSECURITY_ATTRIBUTES
 
struct  IBindStatusCallback::_tagRemBINDINFO
 
struct  IBindStatusCallback::tagRemFORMATETC
 
interface  IBindStatusCallbackEx
 
interface  IAuthenticate
 
interface  IAuthenticateEx
 
struct  IAuthenticateEx::_tagAUTHENTICATEINFO
 
interface  IHttpNegotiate
 
interface  IHttpNegotiate2
 
interface  IBindHost
 
interface  IWinInetInfo
 
interface  IWinInetHttpInfo
 
interface  IWinInetHttpTimeouts
 
interface  IWindowForBindingUI
 
interface  ICodeInstall
 
interface  IHttpSecurity
 
interface  IPersistMoniker
 
interface  IMonikerProp
 
interface  IBindProtocol
 
interface  IInternetBindInfo
 
interface  IInternetPriority
 
interface  IInternetProtocolRoot
 
struct  IInternetProtocolRoot::_tagPROTOCOLDATA
 
interface  IInternetProtocolSink
 
interface  IInternetProtocol
 
interface  IInternetProtocolInfo
 
interface  IInternetSession
 
interface  IInternetSecurityMgrSite
 
interface  IInternetSecurityManager
 
interface  IInternetSecurityManagerEx
 
interface  IInternetSecurityManagerEx2
 
interface  IInternetHostSecurityManager
 
interface  IInternetZoneManager
 
struct  IInternetZoneManager::_ZONEATTRIBUTES
 
interface  IInternetZoneManagerEx
 
interface  struct
 
struct  _tagCODEBASEHOLD
 
interface  enum
 
struct  _tagPROTOCOLFILTERDATA
 
interface  IUri
 
interface  IUriContainer
 
interface  IUriBuilder
 
interface  IUriBuilderFactory
 
interface  IInternetProtocolEx
 
interface  IGetBindHandle
 
interface  IBindCallbackRedirect
 
struct  CONFIRMSAFETY
 

Typedefs

typedef struct _tagCODEBASEHOLD CODEBASEHOLD
 
typedef struct _tagCODEBASEHOLDLPCODEBASEHOLD
 
typedef enum FEATURE_ZONE_ELEVATION
 
typedef enum FEATURE_MIME_HANDLING
 
typedef enum FEATURE_MIME_SNIFFING
 
typedef enum FEATURE_WINDOW_RESTRICTIONS
 
typedef enum FEATURE_WEBOC_POPUPMANAGEMENT
 
typedef enum FEATURE_BEHAVIORS
 
typedef enum FEATURE_DISABLE_MK_PROTOCOL
 
typedef enum FEATURE_LOCALMACHINE_LOCKDOWN
 
typedef enum FEATURE_SECURITYBAND
 
typedef enum FEATURE_RESTRICT_ACTIVEXINSTALL
 
typedef enum FEATURE_VALIDATE_NAVIGATE_URL
 
typedef enum FEATURE_RESTRICT_FILEDOWNLOAD
 
typedef enum FEATURE_ADDON_MANAGEMENT
 
typedef enum FEATURE_PROTOCOL_LOCKDOWN
 
typedef enum FEATURE_HTTP_USERNAME_PASSWORD_DISABLE
 
typedef enum FEATURE_SAFE_BINDTOOBJECT
 
typedef enum FEATURE_UNC_SAVEDFILECHECK
 
typedef enum FEATURE_GET_URL_DOM_FILEPATH_UNENCODED
 
typedef enum FEATURE_TABBED_BROWSING
 
typedef enum FEATURE_SSLUX
 
typedef enum FEATURE_DISABLE_NAVIGATION_SOUNDS
 
typedef enum FEATURE_DISABLE_LEGACY_COMPRESSION
 
typedef enum FEATURE_FORCE_ADDR_AND_STATUS
 
typedef enum FEATURE_XMLHTTP
 
typedef enum FEATURE_DISABLE_TELNET_PROTOCOL
 
typedef enum FEATURE_FEEDS
 
typedef enum FEATURE_BLOCK_INPUT_PROMPTS
 
typedef enum INTERNETFEATURELIST
 
typedef struct _tagPROTOCOLFILTERDATA PROTOCOLFILTERDATA
 

Functions

HRESULT WINAPI CreateUri (LPCWSTR, DWORD, DWORD_PTR, IUri **)
 
HRESULT WINAPI CreateUriWithFragment (LPCWSTR, LPCWSTR, DWORD, DWORD_PTR, IUri **)
 
HRESULT WINAPI CreateUriFromMultiByteString (LPCSTR, DWORD, DWORD, DWORD, DWORD_PTR, IUri **)
 
HRESULT WINAPI CreateIUriBuilder (IUri *, DWORD, DWORD_PTR, IUriBuilder **)
 
 DEFINE_GUID (CLSID_InternetSecurityManager, 0x7b8a2d94, 0x0ac9, 0x11d1, 0x89, 0x6c, 0x00, 0xc0, 0x4f, 0xB6, 0xbf, 0xc4)
 
 DEFINE_GUID (CLSID_InternetZoneManager, 0x7B8A2D95, 0x0AC9, 0x11D1, 0x89, 0x6C, 0x00, 0xC0, 0x4F, 0xB6, 0xBF, 0xC4)
 
 DEFINE_GUID (IID_IAsyncMoniker, 0x79EAC9D3, 0xBAF9, 0x11CE, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B)
 
 DEFINE_GUID (IID_IAsyncBindCtx, 0x79EAC9D4, 0xBAF9, 0x11CE, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B)
 
 DEFINE_GUID (CLSID_StdURLMoniker, 0x79EAC9E0, 0xBAF9, 0x11CE, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B)
 
 DEFINE_GUID (CLSID_DeCompMimeFilter, 0x8f6b0360, 0xb80d, 0x11d0, 0xa9, 0xb3, 0x00, 0x60, 0x97, 0x94, 0x23, 0x11)
 
 DEFINE_GUID (CLSID_CdlProtocol, 0x3dd53d40, 0x7b8b, 0x11D0, 0xb0, 0x13, 0x00, 0xaa, 0x00, 0x59, 0xce, 0x02)
 
 DEFINE_GUID (CLSID_FileProtocol, 0x79EAC9E7, 0xBAF9, 0x11CE, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B)
 
 DEFINE_GUID (CLSID_FtpProtocol, 0x79EAC9E3, 0xBAF9, 0x11CE, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B)
 
 DEFINE_GUID (CLSID_GopherProtocol, 0x79EAC9E4, 0xBAF9, 0x11CE, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B)
 
 DEFINE_GUID (CLSID_HttpProtocol, 0x79EAC9E2, 0xBAF9, 0x11CE, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B)
 
 DEFINE_GUID (CLSID_HttpSProtocol, 0x79EAC9E5, 0xBAF9, 0x11CE, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B)
 
 DEFINE_GUID (CLSID_MkProtocol, 0x79EAC9E6, 0xBAF9, 0x11CE, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B)
 
HRESULT WINAPI CoGetClassObjectFromURL (REFCLSID, LPCWSTR, DWORD, DWORD, LPCWSTR, LPBINDCTX, DWORD, LPVOID, REFIID, LPVOID *)
 
HRESULT WINAPI CreateURLMoniker (IMoniker *pmkContext, LPCWSTR szURL, IMoniker **ppmk)
 
HRESULT WINAPI CreateURLMonikerEx (IMoniker *, LPCWSTR, IMoniker **, DWORD)
 
HRESULT WINAPI CreateURLMonikerEx2 (IMoniker *, IUri *, IMoniker **, DWORD)
 
HRESULT WINAPI RegisterBindStatusCallback (IBindCtx *pbc, IBindStatusCallback *pbsc, IBindStatusCallback **ppbsc, DWORD dwReserved)
 
HRESULT WINAPI CompareSecurityIds (BYTE *, DWORD, BYTE *, DWORD, DWORD)
 
HRESULT WINAPI URLDownloadToFileA (LPUNKNOWN, LPCSTR, LPCSTR, DWORD, LPBINDSTATUSCALLBACK)
 
HRESULT WINAPI URLDownloadToFileW (LPUNKNOWN, LPCWSTR, LPCWSTR, DWORD, LPBINDSTATUSCALLBACK)
 
HRESULT WINAPI URLDownloadToCacheFileA (LPUNKNOWN, LPCSTR, LPSTR, DWORD, DWORD, LPBINDSTATUSCALLBACK)
 
HRESULT WINAPI URLDownloadToCacheFileW (LPUNKNOWN, LPCWSTR, LPWSTR, DWORD, DWORD, LPBINDSTATUSCALLBACK)
 
HRESULT WINAPI CoInternetGetSession (DWORD, IInternetSession **, DWORD)
 
HRESULT WINAPI MkParseDisplayNameEx (IBindCtx *, LPCWSTR, ULONG *, IMoniker **)
 
HRESULT WINAPI IsAsyncMoniker (IMoniker *pmk)
 
HRESULT WINAPI CreateAsyncBindCtx (DWORD, IBindStatusCallback *, IEnumFORMATETC *, IBindCtx **)
 
HRESULT WINAPI CreateAsyncBindCtxEx (IBindCtx *, DWORD, IBindStatusCallback *, IEnumFORMATETC *, IBindCtx **, DWORD)
 
HRESULT WINAPI CoInternetCreateSecurityManager (IServiceProvider *, IInternetSecurityManager **, DWORD)
 
HRESULT WINAPI CoInternetCombineUrl (LPCWSTR, LPCWSTR, DWORD, LPWSTR, DWORD, DWORD *, DWORD)
 
HRESULT WINAPI CoInternetCombineUrlEx (IUri *, LPCWSTR, DWORD, IUri **, DWORD_PTR)
 
HRESULT WINAPI CoInternetCompareUrl (LPCWSTR, LPCWSTR, DWORD)
 
HRESULT WINAPI CoInternetCombineIUri (IUri *, IUri *, DWORD, IUri **, DWORD_PTR)
 
HRESULT WINAPI CoInternetCreateZoneManager (IServiceProvider *, IInternetZoneManager **, DWORD)
 
HRESULT WINAPI CoInternetParseUrl (LPCWSTR, PARSEACTION, DWORD, LPWSTR, DWORD, DWORD *, DWORD)
 
HRESULT WINAPI CoInternetParseIUri (IUri *, PARSEACTION, DWORD, LPWSTR, DWORD, DWORD *, DWORD_PTR)
 
HRESULT WINAPI CoInternetQueryInfo (LPCWSTR, QUERYOPTION, DWORD, LPVOID, DWORD, DWORD *, DWORD)
 
HRESULT WINAPI CoInternetSetFeatureEnabled (INTERNETFEATURELIST, DWORD, BOOL)
 
HRESULT WINAPI CoInternetIsFeatureEnabled (INTERNETFEATURELIST, DWORD dwFlags)
 
HRESULT WINAPI CoInternetIsFeatureEnabledForUrl (INTERNETFEATURELIST, DWORD, LPCWSTR, IInternetSecurityManager *)
 
HRESULT WINAPI CoInternetGetSecurityUrl (LPCWSTR, LPWSTR *, PSUACTION, DWORD)
 
HRESULT WINAPI CoInternetGetSecurityUrlEx (IUri *, IUri **, PSUACTION, DWORD_PTR)
 
HRESULT WINAPI AsyncInstallDistributionUnit (LPCWSTR, LPCWSTR, LPCWSTR, DWORD, DWORD, LPCWSTR, IBindCtx *, LPVOID, DWORD)
 
HRESULT WINAPI CreateFormatEnumerator (UINT, FORMATETC *, IEnumFORMATETC **)
 
HRESULT WINAPI GetSoftwareUpdateInfo (LPCWSTR szDistUnit, LPSOFTDISTINFO psdi)
 
HRESULT WINAPI FaultInIEFeature (HWND, uCLSSPEC *, QUERYCONTEXT *, DWORD)
 
HRESULT WINAPI FindMimeFromData (LPBC, LPCWSTR, LPVOID, DWORD, LPCWSTR, DWORD, LPWSTR *, DWORD)
 
HRESULT WINAPI GetClassFileOrMime (LPBC, LPCWSTR, LPVOID, DWORD, LPCWSTR, DWORD, CLSID *)
 
HRESULT WINAPI HlinkGoBack (IUnknown *)
 
HRESULT WINAPI HlinkGoForward (IUnknown *)
 
HRESULT WINAPI HlinkNavigateMoniker (IUnknown *, IMoniker *)
 
HRESULT WINAPI HlinkNavigateString (IUnknown *, LPCWSTR)
 
HRESULT WINAPI HlinkSimpleNavigateToMoniker (IMoniker *, LPCWSTR, LPCWSTR, IUnknown *, IBindCtx *, IBindStatusCallback *, DWORD, DWORD)
 
HRESULT WINAPI HlinkSimpleNavigateToString (LPCWSTR, LPCWSTR, LPCWSTR, IUnknown *, IBindCtx *, IBindStatusCallback *, DWORD, DWORD)
 
HRESULT WINAPI IsValidURL (LPBC, LPCWSTR, DWORD)
 
HRESULT WINAPI ObtainUserAgentString (DWORD, LPSTR, DWORD *)
 
HRESULT WINAPI RegisterFormatEnumerator (LPBC, IEnumFORMATETC *, DWORD)
 
HRESULT WINAPI RevokeFormatEnumerator (LPBC, IEnumFORMATETC *)
 
HRESULT WINAPI RevokeBindStatusCallback (LPBC, IBindStatusCallback *)
 
HRESULT WINAPI CopyStgMedium (const STGMEDIUM *, STGMEDIUM *)
 
HRESULT WINAPI CopyBindInfo (const BINDINFO *, BINDINFO *)
 
void WINAPI ReleaseBindInfo (BINDINFO *)
 
HRESULT WINAPI UrlMkGetSessionOption (DWORD, LPVOID, DWORD, DWORD *, DWORD)
 
HRESULT WINAPI UrlMkSetSessionOption (DWORD, LPVOID, DWORD, DWORD)
 
HRESULT WINAPI URLOpenStreamA (LPUNKNOWN, LPCSTR, DWORD, LPBINDSTATUSCALLBACK)
 
HRESULT WINAPI URLOpenStreamW (LPUNKNOWN, LPCWSTR, DWORD, LPBINDSTATUSCALLBACK)
 
HRESULT WINAPI URLOpenPullStreamA (LPUNKNOWN, LPCSTR, DWORD, LPBINDSTATUSCALLBACK)
 
HRESULT WINAPI URLOpenPullStreamW (LPUNKNOWN, LPCWSTR, DWORD, LPBINDSTATUSCALLBACK)
 
HRESULT WINAPI URLOpenBlockingStreamA (LPUNKNOWN, LPCSTR, LPSTREAM *, DWORD, LPBINDSTATUSCALLBACK)
 
HRESULT WINAPI URLOpenBlockingStreamW (LPUNKNOWN, LPCWSTR, LPSTREAM *, DWORD, LPBINDSTATUSCALLBACK)
 
BOOL WINAPI IsLoggingEnabledA (LPCSTR)
 
BOOL WINAPI IsLoggingEnabledW (LPCWSTR)
 

Variables

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
 
EXTERN_C const GUID GUID_CUSTOM_CONFIRMOBJECTSAFETY
 

Typedef Documentation

◆ CODEBASEHOLD

◆ FEATURE_ADDON_MANAGEMENT

◆ FEATURE_BEHAVIORS

◆ FEATURE_BLOCK_INPUT_PROMPTS

◆ FEATURE_DISABLE_LEGACY_COMPRESSION

◆ FEATURE_DISABLE_MK_PROTOCOL

◆ FEATURE_DISABLE_NAVIGATION_SOUNDS

◆ FEATURE_DISABLE_TELNET_PROTOCOL

◆ FEATURE_FEEDS

◆ FEATURE_FORCE_ADDR_AND_STATUS

◆ FEATURE_GET_URL_DOM_FILEPATH_UNENCODED

◆ FEATURE_HTTP_USERNAME_PASSWORD_DISABLE

◆ FEATURE_LOCALMACHINE_LOCKDOWN

◆ FEATURE_MIME_HANDLING

◆ FEATURE_MIME_SNIFFING

◆ FEATURE_PROTOCOL_LOCKDOWN

◆ FEATURE_RESTRICT_ACTIVEXINSTALL

◆ FEATURE_RESTRICT_FILEDOWNLOAD

◆ FEATURE_SAFE_BINDTOOBJECT

◆ FEATURE_SECURITYBAND

◆ FEATURE_SSLUX

◆ FEATURE_TABBED_BROWSING

◆ FEATURE_UNC_SAVEDFILECHECK

◆ FEATURE_VALIDATE_NAVIGATE_URL

◆ FEATURE_WEBOC_POPUPMANAGEMENT

◆ FEATURE_WINDOW_RESTRICTIONS

◆ FEATURE_XMLHTTP

◆ FEATURE_ZONE_ELEVATION

◆ INTERNETFEATURELIST

◆ LPCODEBASEHOLD

◆ PROTOCOLFILTERDATA

Function Documentation

◆ AsyncInstallDistributionUnit()

HRESULT WINAPI AsyncInstallDistributionUnit ( LPCWSTR  ,
LPCWSTR  ,
LPCWSTR  ,
DWORD  ,
DWORD  ,
LPCWSTR  ,
IBindCtx ,
LPVOID  ,
DWORD   
)

◆ CoGetClassObjectFromURL()

HRESULT WINAPI CoGetClassObjectFromURL ( REFCLSID  rclsid,
LPCWSTR  szCodeURL,
DWORD  dwFileVersionMS,
DWORD  dwFileVersionLS,
LPCWSTR  szContentType,
LPBINDCTX  pBindCtx,
DWORD  dwClsContext,
LPVOID  pvReserved,
REFIID  riid,
LPVOID ppv 
)

Definition at line 539 of file urlmon_main.c.

543{
544 FIXME("(%s %s %ld %ld %s %p %ld %p %s %p) Stub!\n", debugstr_guid(rclsid), debugstr_w(szCodeURL),
545 dwFileVersionMS, dwFileVersionLS, debugstr_w(szContentType), pBindCtx, dwClsContext, pvReserved,
547 return E_NOINTERFACE;
548}
#define FIXME(fmt,...)
Definition: precomp.h:53
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define debugstr_guid
Definition: kernel32.h:35
#define debugstr_w
Definition: kernel32.h:32
static LPCWSTR LPVOID pvReserved
Definition: asmcache.c:749
#define E_NOINTERFACE
Definition: winerror.h:3479

◆ CoInternetCombineIUri()

HRESULT WINAPI CoInternetCombineIUri ( IUri pBaseUri,
IUri pRelativeUri,
DWORD  dwCombineFlags,
IUri **  ppCombinedUri,
DWORD_PTR  dwReserved 
)

Definition at line 6396 of file uri.c.

6398{
6399 HRESULT hr;
6401 Uri *relative, *base;
6402 TRACE("(%p %p %lx %p %Ix)\n", pBaseUri, pRelativeUri, dwCombineFlags, ppCombinedUri, dwReserved);
6403
6404 if(!ppCombinedUri)
6405 return E_INVALIDARG;
6406
6407 if(!pBaseUri || !pRelativeUri) {
6408 *ppCombinedUri = NULL;
6409 return E_INVALIDARG;
6410 }
6411
6412 relative = get_uri_obj(pRelativeUri);
6413 base = get_uri_obj(pBaseUri);
6414 if(!relative || !base) {
6415 *ppCombinedUri = NULL;
6416 FIXME("(%p %p %lx %p %Ix) Unknown IUri types not supported yet.\n",
6417 pBaseUri, pRelativeUri, dwCombineFlags, ppCombinedUri, dwReserved);
6418 return E_NOTIMPL;
6419 }
6420
6421 info = get_protocol_info(base->canon_uri);
6422 if(info) {
6424 DWORD result_len = 0;
6425
6426 hr = IInternetProtocolInfo_CombineUrl(info, base->canon_uri, relative->canon_uri, dwCombineFlags,
6427 result, INTERNET_MAX_URL_LENGTH+1, &result_len, 0);
6428 IInternetProtocolInfo_Release(info);
6429 if(SUCCEEDED(hr)) {
6430 hr = CreateUri(result, Uri_CREATE_ALLOW_RELATIVE, 0, ppCombinedUri);
6431 if(SUCCEEDED(hr))
6432 return hr;
6433 }
6434 }
6435
6436 return combine_uri(base, relative, dwCombineFlags, ppCombinedUri, 0);
6437}
#define E_INVALIDARG
Definition: ddrawi.h:101
#define E_NOTIMPL
Definition: ddrawi.h:99
HRESULT hr
Definition: delayimp.cpp:582
#define NULL
Definition: types.h:112
IInternetProtocolInfo * get_protocol_info(LPCWSTR url)
Definition: session.c:173
HRESULT WINAPI CreateUri(LPCWSTR pwzURI, DWORD dwFlags, DWORD_PTR dwReserved, IUri **ppURI)
Definition: uri.c:5382
static HRESULT combine_uri(Uri *base, Uri *relative, DWORD flags, IUri **result, DWORD extras)
Definition: uri.c:6132
static Uri * get_uri_obj(IUri *uri)
Definition: uri.c:236
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint64EXT * result
Definition: glext.h:11304
#define SUCCEEDED(hr)
Definition: intsafe.h:50
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:95
short WCHAR
Definition: pedump.c:58
#define TRACE(s)
Definition: solgame.cpp:4
Definition: uri.c:54
WCHAR * canon_uri
Definition: uri.c:65
#define INTERNET_MAX_URL_LENGTH
Definition: wininet.h:51

Referenced by create_uri(), CreateURLMonikerEx2(), and xslt_doc_get_uri().

◆ CoInternetCombineUrl()

HRESULT WINAPI CoInternetCombineUrl ( LPCWSTR  pwzBaseUrl,
LPCWSTR  pwzRelativeUrl,
DWORD  dwCombineFlags,
LPWSTR  pwzResult,
DWORD  cchResult,
DWORD pcchResult,
DWORD  dwReserved 
)

Definition at line 359 of file internet.c.

362{
364 DWORD size = cchResult;
366
367 TRACE("(%s,%s,0x%08lx,%p,%ld,%p,%ld)\n", debugstr_w(pwzBaseUrl),
368 debugstr_w(pwzRelativeUrl), dwCombineFlags, pwzResult, cchResult, pcchResult,
369 dwReserved);
370
371 protocol_info = get_protocol_info(pwzBaseUrl);
372
373 if(protocol_info) {
374 hres = IInternetProtocolInfo_CombineUrl(protocol_info, pwzBaseUrl, pwzRelativeUrl,
375 dwCombineFlags, pwzResult, cchResult, pcchResult, dwReserved);
376 IInternetProtocolInfo_Release(protocol_info);
377 if(SUCCEEDED(hres))
378 return hres;
379 }
380
381
382 hres = UrlCombineW(pwzBaseUrl, pwzRelativeUrl, pwzResult, &size, dwCombineFlags);
383
384 if(pcchResult)
385 *pcchResult = size;
386
387 return hres;
388}
HRESULT WINAPI UrlCombineW(const WCHAR *baseW, const WCHAR *relativeW, WCHAR *combined, DWORD *combined_len, DWORD flags)
Definition: path.c:4948
GLsizeiptr size
Definition: glext.h:5919
HRESULT hres
Definition: protocol.c:465
static IInternetProtocolInfo protocol_info
Definition: misc.c:929

◆ CoInternetCombineUrlEx()

HRESULT WINAPI CoInternetCombineUrlEx ( IUri pBaseUri,
LPCWSTR  pwzRelativeUrl,
DWORD  dwCombineFlags,
IUri **  ppCombinedUri,
DWORD_PTR  dwReserved 
)

Definition at line 6442 of file uri.c.

6444{
6445 IUri *relative;
6446 Uri *base;
6447 HRESULT hr;
6449
6450 TRACE("(%p %s %lx %p %Ix)\n", pBaseUri, debugstr_w(pwzRelativeUrl), dwCombineFlags,
6451 ppCombinedUri, dwReserved);
6452
6453 if(!ppCombinedUri)
6454 return E_POINTER;
6455
6456 if(!pwzRelativeUrl) {
6457 *ppCombinedUri = NULL;
6458 return E_UNEXPECTED;
6459 }
6460
6461 if(!pBaseUri) {
6462 *ppCombinedUri = NULL;
6463 return E_INVALIDARG;
6464 }
6465
6466 base = get_uri_obj(pBaseUri);
6467 if(!base) {
6468 *ppCombinedUri = NULL;
6469 FIXME("(%p %s %lx %p %Ix) Unknown IUri's not supported yet.\n", pBaseUri, debugstr_w(pwzRelativeUrl),
6470 dwCombineFlags, ppCombinedUri, dwReserved);
6471 return E_NOTIMPL;
6472 }
6473
6474 info = get_protocol_info(base->canon_uri);
6475 if(info) {
6477 DWORD result_len = 0;
6478
6479 hr = IInternetProtocolInfo_CombineUrl(info, base->canon_uri, pwzRelativeUrl, dwCombineFlags,
6480 result, INTERNET_MAX_URL_LENGTH+1, &result_len, 0);
6481 IInternetProtocolInfo_Release(info);
6482 if(SUCCEEDED(hr)) {
6483 hr = CreateUri(result, Uri_CREATE_ALLOW_RELATIVE, 0, ppCombinedUri);
6484 if(SUCCEEDED(hr))
6485 return hr;
6486 }
6487 }
6488
6489 hr = CreateUri(pwzRelativeUrl, Uri_CREATE_ALLOW_RELATIVE|Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME, 0, &relative);
6490 if(FAILED(hr)) {
6491 *ppCombinedUri = NULL;
6492 return hr;
6493 }
6494
6495 hr = combine_uri(base, get_uri_obj(relative), dwCombineFlags, ppCombinedUri, COMBINE_URI_FORCE_FLAG_USE);
6496
6497 IUri_Release(relative);
6498 return hr;
6499}
#define COMBINE_URI_FORCE_FLAG_USE
Definition: uri.c:48
#define FAILED(hr)
Definition: intsafe.h:51
#define E_UNEXPECTED
Definition: winerror.h:3528
#define E_POINTER
Definition: winerror.h:3480

Referenced by check_codebase(), combine_url(), create_relative_uri(), CreateURLMonikerEx(), httprequest_open(), and navigate_url().

◆ CoInternetCompareUrl()

HRESULT WINAPI CoInternetCompareUrl ( LPCWSTR  pwzUrl1,
LPCWSTR  pwzUrl2,
DWORD  dwCompareFlags 
)

Definition at line 393 of file internet.c.

394{
397
398 TRACE("(%s,%s,%08lx)\n", debugstr_w(pwzUrl1), debugstr_w(pwzUrl2), dwCompareFlags);
399
401
402 if(protocol_info) {
403 hres = IInternetProtocolInfo_CompareUrl(protocol_info, pwzUrl1, pwzUrl2, dwCompareFlags);
404 IInternetProtocolInfo_Release(protocol_info);
405 if(SUCCEEDED(hres))
406 return hres;
407 }
408
409 return UrlCompareW(pwzUrl1, pwzUrl2, dwCompareFlags) ? S_FALSE : S_OK;
410}
INT WINAPI UrlCompareW(const WCHAR *url1, const WCHAR *url2, BOOL ignore_slash)
Definition: path.c:4430
#define S_OK
Definition: intsafe.h:52
#define S_FALSE
Definition: winerror.h:3451

◆ CoInternetCreateSecurityManager()

HRESULT WINAPI CoInternetCreateSecurityManager ( IServiceProvider pSP,
IInternetSecurityManager **  ppSM,
DWORD  dwReserved 
)

Definition at line 1799 of file sec_mgr.c.

1801{
1802 TRACE("%p %p %ld\n", pSP, ppSM, dwReserved );
1803
1804 if(pSP)
1805 FIXME("pSP not supported\n");
1806
1807 return SecManagerImpl_Construct(NULL, (void**) ppSM);
1808}
HRESULT SecManagerImpl_Construct(IUnknown *pUnkOuter, LPVOID *ppobj)
Definition: sec_mgr.c:1206

Referenced by HTMLOuterWindow_Create(), and security_enum_zones().

◆ CoInternetCreateZoneManager()

HRESULT WINAPI CoInternetCreateZoneManager ( IServiceProvider pSP,
IInternetZoneManager **  ppZM,
DWORD  dwReserved 
)

Definition at line 1813 of file sec_mgr.c.

1814{
1815 TRACE("(%p %p %lx)\n", pSP, ppZM, dwReserved);
1816 return ZoneMgrImpl_Construct(NULL, (void**)ppZM);
1817}
HRESULT ZoneMgrImpl_Construct(IUnknown *pUnkOuter, LPVOID *ppobj)
Definition: sec_mgr.c:1781

Referenced by security_enum_zones().

◆ CoInternetGetSecurityUrl()

HRESULT WINAPI CoInternetGetSecurityUrl ( LPCWSTR  pwzUrl,
LPWSTR ppwzSecUrl,
PSUACTION  psuAction,
DWORD  dwReserved 
)

Definition at line 1935 of file sec_mgr.c.

1936{
1937 WCHAR *secure_url;
1938 HRESULT hres;
1939
1940 TRACE("(%p,%p,%u,%lu)\n", pwzUrl, ppwzSecUrl, psuAction, dwReserved);
1941
1942 hres = parse_security_url(pwzUrl, psuAction, &secure_url);
1943 if(FAILED(hres))
1944 return hres;
1945
1946 if(psuAction != PSU_SECURITY_URL_ONLY) {
1947 PARSEDURLW parsed_url = { sizeof(parsed_url) };
1948 DWORD size;
1949
1950 /* FIXME: Use helpers from uri.c */
1951 if(SUCCEEDED(ParseURLW(secure_url, &parsed_url))) {
1952 WCHAR *new_url;
1953
1954 switch(parsed_url.nScheme) {
1955 case URL_SCHEME_FTP:
1956 case URL_SCHEME_HTTP:
1957 case URL_SCHEME_HTTPS:
1958 size = lstrlenW(secure_url)+1;
1959 new_url = CoTaskMemAlloc(size * sizeof(WCHAR));
1960 if(new_url)
1962 else
1964 CoTaskMemFree(secure_url);
1965 if(hres != S_OK) {
1966 WARN("UrlGetPart failed: %08lx\n", hres);
1967 CoTaskMemFree(new_url);
1968 return FAILED(hres) ? hres : E_FAIL;
1969 }
1970 secure_url = new_url;
1971 }
1972 }
1973 }
1974
1975 *ppwzSecUrl = secure_url;
1976 return S_OK;
1977}
#define WARN(fmt,...)
Definition: precomp.h:61
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define E_FAIL
Definition: ddrawi.h:102
void *WINAPI CoTaskMemAlloc(SIZE_T size)
Definition: malloc.c:381
void WINAPI CoTaskMemFree(void *ptr)
Definition: malloc.c:389
#define lstrlenW
Definition: compat.h:750
HRESULT WINAPI ParseURLW(const WCHAR *url, PARSEDURLW *result)
Definition: path.c:2807
HRESULT WINAPI UrlGetPartW(const WCHAR *url, WCHAR *out, DWORD *out_len, DWORD part, DWORD flags)
Definition: path.c:4628
static HRESULT parse_security_url(const WCHAR *url, PSUACTION action, WCHAR **result)
Definition: sec_mgr.c:1819
@ URL_SCHEME_HTTPS
Definition: shlwapi.h:555
@ URL_SCHEME_FTP
Definition: shlwapi.h:545
@ URL_SCHEME_HTTP
Definition: shlwapi.h:546
@ URL_PART_HOSTNAME
Definition: shlwapi.h:587
#define URL_PARTFLAG_KEEPSCHEME
Definition: shlwapi.h:594

Referenced by map_url_to_zone().

◆ CoInternetGetSecurityUrlEx()

HRESULT WINAPI CoInternetGetSecurityUrlEx ( IUri pUri,
IUri **  ppSecUri,
PSUACTION  psuAction,
DWORD_PTR  dwReserved 
)

Definition at line 1982 of file sec_mgr.c.

1983{
1984 URL_SCHEME scheme_type;
1985 BSTR secure_uri;
1986 WCHAR *ret_url;
1987 HRESULT hres;
1988
1989 TRACE("(%p,%p,%u,%Iu)\n", pUri, ppSecUri, psuAction, dwReserved);
1990
1991 if(!pUri || !ppSecUri)
1992 return E_INVALIDARG;
1993
1994 hres = IUri_GetDisplayUri(pUri, &secure_uri);
1995 if(FAILED(hres))
1996 return hres;
1997
1998 hres = parse_security_url(secure_uri, psuAction, &ret_url);
1999 SysFreeString(secure_uri);
2000 if(FAILED(hres))
2001 return hres;
2002
2003 /* File URIs have to hierarchical. */
2004 hres = IUri_GetScheme(pUri, (DWORD*)&scheme_type);
2005 if(SUCCEEDED(hres) && scheme_type == URL_SCHEME_FILE) {
2006 const WCHAR *tmp = ret_url;
2007
2008 /* Check and see if a "//" is after the scheme name. */
2009 tmp += ARRAY_SIZE(L"file");
2010 if(*tmp != '/' || *(tmp+1) != '/')
2012 }
2013
2014 if(SUCCEEDED(hres))
2015 hres = CreateUri(ret_url, Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME, 0, ppSecUri);
2016 CoTaskMemFree(ret_url);
2017 return hres;
2018}
#define ARRAY_SIZE(A)
Definition: main.h:20
OLECHAR * BSTR
Definition: compat.h:2293
#define L(x)
Definition: resources.c:13
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:273
URL_SCHEME
Definition: shlwapi.h:542
@ URL_SCHEME_FILE
Definition: shlwapi.h:553

Referenced by map_uri_to_zone().

◆ CoInternetGetSession()

HRESULT WINAPI CoInternetGetSession ( DWORD  dwSessionMode,
IInternetSession **  ppIInternetSession,
DWORD  dwReserved 
)

Definition at line 473 of file session.c.

475{
476 TRACE("(%ld %p %ld)\n", dwSessionMode, ppIInternetSession, dwReserved);
477
478 if(dwSessionMode)
479 ERR("dwSessionMode=%ld\n", dwSessionMode);
480 if(dwReserved)
481 ERR("dwReserved=%ld\n", dwReserved);
482
483 IInternetSession_AddRef(&InternetSession);
484 *ppIInternetSession = &InternetSession;
485 return S_OK;
486}
#define ERR(fmt,...)
Definition: precomp.h:57
static IInternetSession InternetSession
Definition: session.c:455

Referenced by register_protocol(), and register_protocols().

◆ CoInternetIsFeatureEnabled()

HRESULT WINAPI CoInternetIsFeatureEnabled ( INTERNETFEATURELIST  FeatureEntry,
DWORD  dwFlags 
)

Definition at line 616 of file internet.c.

617{
618 TRACE("(%d, %08lx)\n", FeatureEntry, dwFlags);
619 return get_internet_feature(FeatureEntry, dwFlags);
620}
static HRESULT get_internet_feature(INTERNETFEATURELIST feature, DWORD flags)
Definition: internet.c:587
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141

Referenced by CoInternetIsFeatureEnabledForUrl(), and CoInternetIsFeatureZoneElevationEnabled().

◆ CoInternetIsFeatureEnabledForUrl()

HRESULT WINAPI CoInternetIsFeatureEnabledForUrl ( INTERNETFEATURELIST  FeatureEntry,
DWORD  dwFlags,
LPCWSTR  szURL,
IInternetSecurityManager pSecMgr 
)

Definition at line 625 of file internet.c.

627{
628 DWORD urlaction = 0;
630
631 TRACE("(%d %08lx %s %p)\n", FeatureEntry, dwFlags, debugstr_w(szURL), pSecMgr);
632
633 if(FeatureEntry == FEATURE_MIME_SNIFFING)
634 urlaction = URLACTION_FEATURE_MIME_SNIFFING;
635 else if(FeatureEntry == FEATURE_WINDOW_RESTRICTIONS)
636 urlaction = URLACTION_FEATURE_WINDOW_RESTRICTIONS;
637 else if(FeatureEntry == FEATURE_ZONE_ELEVATION)
638 urlaction = URLACTION_FEATURE_ZONE_ELEVATION;
639
640 if(!szURL || !urlaction || !pSecMgr)
641 return CoInternetIsFeatureEnabled(FeatureEntry, dwFlags);
642
643 switch(dwFlags) {
644 case GET_FEATURE_FROM_THREAD:
645 case GET_FEATURE_FROM_THREAD_LOCALMACHINE:
646 case GET_FEATURE_FROM_THREAD_INTRANET:
647 case GET_FEATURE_FROM_THREAD_TRUSTED:
648 case GET_FEATURE_FROM_THREAD_INTERNET:
649 case GET_FEATURE_FROM_THREAD_RESTRICTED:
650 FIXME("unsupported flags %lx\n", dwFlags);
651 return E_NOTIMPL;
652
653 case GET_FEATURE_FROM_PROCESS:
654 hres = CoInternetIsFeatureEnabled(FeatureEntry, dwFlags);
655 if(hres != S_OK)
656 return hres;
657 /* fall through */
658
659 default: {
660 DWORD policy = URLPOLICY_DISALLOW;
661
662 hres = IInternetSecurityManager_ProcessUrlAction(pSecMgr, szURL, urlaction,
663 (BYTE*)&policy, sizeof(DWORD), NULL, 0, PUAF_NOUI, 0);
664 if(hres!=S_OK || policy!=URLPOLICY_ALLOW)
665 return S_OK;
666 return S_FALSE;
667 }
668 }
669}
WINBASEAPI _Check_return_ _Out_ AppPolicyProcessTerminationMethod * policy
Definition: appmodel.h:78
HRESULT WINAPI CoInternetIsFeatureEnabled(INTERNETFEATURELIST FeatureEntry, DWORD dwFlags)
Definition: internet.c:616
unsigned char BYTE
Definition: xxhash.c:193

◆ CoInternetParseIUri()

HRESULT WINAPI CoInternetParseIUri ( IUri pIUri,
PARSEACTION  ParseAction,
DWORD  dwFlags,
LPWSTR  pwzResult,
DWORD  cchResult,
DWORD pcchResult,
DWORD_PTR  dwReserved 
)

Definition at line 6927 of file uri.c.

6930{
6931 HRESULT hr;
6932 Uri *uri;
6934
6935 TRACE("(%p %d %lx %p %ld %p %Ix)\n", pIUri, ParseAction, dwFlags, pwzResult,
6936 cchResult, pcchResult, dwReserved);
6937
6938 if(!pcchResult)
6939 return E_POINTER;
6940
6941 if(!pwzResult || !pIUri) {
6942 *pcchResult = 0;
6943 return E_INVALIDARG;
6944 }
6945
6946 if(!(uri = get_uri_obj(pIUri))) {
6947 *pcchResult = 0;
6948 FIXME("(%p %d %lx %p %ld %p %Ix) Unknown IUri's not supported for this action.\n",
6949 pIUri, ParseAction, dwFlags, pwzResult, cchResult, pcchResult, dwReserved);
6950 return E_NOTIMPL;
6951 }
6952
6953 info = get_protocol_info(uri->canon_uri);
6954 if(info) {
6955 hr = IInternetProtocolInfo_ParseUrl(info, uri->canon_uri, ParseAction, dwFlags,
6956 pwzResult, cchResult, pcchResult, 0);
6957 IInternetProtocolInfo_Release(info);
6958 if(SUCCEEDED(hr)) return hr;
6959 }
6960
6961 switch(ParseAction) {
6962 case PARSE_CANONICALIZE:
6963 hr = parse_canonicalize(uri, dwFlags, pwzResult, cchResult, pcchResult);
6964 break;
6965 case PARSE_FRIENDLY:
6966 hr = parse_friendly(pIUri, pwzResult, cchResult, pcchResult);
6967 break;
6968 case PARSE_ROOTDOCUMENT:
6969 hr = parse_rootdocument(uri, pwzResult, cchResult, pcchResult);
6970 break;
6971 case PARSE_DOCUMENT:
6972 hr = parse_document(uri, pwzResult, cchResult, pcchResult);
6973 break;
6974 case PARSE_PATH_FROM_URL:
6975 hr = parse_path_from_url(uri, pwzResult, cchResult, pcchResult);
6976 break;
6977 case PARSE_URL_FROM_PATH:
6978 hr = parse_url_from_path(pIUri, pwzResult, cchResult, pcchResult);
6979 break;
6980 case PARSE_SCHEMA:
6981 hr = parse_schema(pIUri, pwzResult, cchResult, pcchResult);
6982 break;
6983 case PARSE_SITE:
6984 hr = parse_site(pIUri, pwzResult, cchResult, pcchResult);
6985 break;
6986 case PARSE_DOMAIN:
6987 hr = parse_domain(pIUri, pwzResult, cchResult, pcchResult);
6988 break;
6989 case PARSE_LOCATION:
6990 case PARSE_ANCHOR:
6991 hr = parse_anchor(pIUri, pwzResult, cchResult, pcchResult);
6992 break;
6993 case PARSE_SECURITY_URL:
6994 case PARSE_MIME:
6995 case PARSE_SERVER:
6996 case PARSE_SECURITY_DOMAIN:
6997 *pcchResult = 0;
6998 hr = E_FAIL;
6999 break;
7000 default:
7001 *pcchResult = 0;
7002 hr = E_NOTIMPL;
7003 FIXME("(%p %d %lx %p %ld %p %Ix) Partial stub.\n", pIUri, ParseAction, dwFlags,
7004 pwzResult, cchResult, pcchResult, dwReserved);
7005 }
7006
7007 return hr;
7008}
static HRESULT parse_site(IUri *uri, LPWSTR output, DWORD output_len, DWORD *result_len)
Definition: uri.c:6840
static HRESULT parse_domain(IUri *uri, LPWSTR output, DWORD output_len, DWORD *result_len)
Definition: uri.c:6868
static HRESULT parse_anchor(IUri *uri, LPWSTR output, DWORD output_len, DWORD *result_len)
Definition: uri.c:6896
static HRESULT parse_path_from_url(const Uri *uri, LPWSTR output, DWORD output_len, DWORD *result_len)
Definition: uri.c:6724
static HRESULT parse_rootdocument(const Uri *uri, LPWSTR output, DWORD output_len, DWORD *result_len)
Definition: uri.c:6640
static HRESULT parse_canonicalize(const Uri *uri, DWORD flags, LPWSTR output, DWORD output_len, DWORD *result_len)
Definition: uri.c:6501
static HRESULT parse_document(const Uri *uri, LPWSTR output, DWORD output_len, DWORD *result_len)
Definition: uri.c:6691
static HRESULT parse_url_from_path(IUri *uri, LPWSTR output, DWORD output_len, DWORD *result_len)
Definition: uri.c:6782
static HRESULT parse_schema(IUri *uri, LPWSTR output, DWORD output_len, DWORD *result_len)
Definition: uri.c:6811
static HRESULT parse_friendly(IUri *uri, LPWSTR output, DWORD output_len, DWORD *result_len)
Definition: uri.c:6612
const WCHAR * uri
Definition: sec_mgr.c:1564

Referenced by FileProtocol_StartEx(), and nsFileURL_GetFile().

◆ CoInternetParseUrl()

HRESULT WINAPI CoInternetParseUrl ( LPCWSTR  pwzUrl,
PARSEACTION  ParseAction,
DWORD  dwFlags,
LPWSTR  pszResult,
DWORD  cchResult,
DWORD pcchResult,
DWORD  dwReserved 
)

Definition at line 325 of file internet.c.

327{
328 if(dwReserved)
329 WARN("dwReserved = %ld\n", dwReserved);
330
331 switch(ParseAction) {
332 case PARSE_CANONICALIZE:
333 return parse_canonicalize_url(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
334 case PARSE_SECURITY_URL:
335 return parse_security_url(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
336 case PARSE_ENCODE:
337 case PARSE_UNESCAPE:
338 return parse_encode(pwzUrl, ParseAction, dwFlags, pszResult, cchResult, pcchResult);
339 case PARSE_PATH_FROM_URL:
340 return parse_path_from_url(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
341 case PARSE_SCHEMA:
342 return parse_schema(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
343 case PARSE_SECURITY_DOMAIN:
344 return parse_security_domain(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
345 case PARSE_DOMAIN:
346 return parse_domain(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
347 case PARSE_ROOTDOCUMENT:
348 return parse_rootdocument(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
349 default:
350 FIXME("not supported action %d\n", ParseAction);
351 }
352
353 return E_NOTIMPL;
354}
static HRESULT parse_canonicalize_url(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
Definition: internet.c:109
static HRESULT parse_encode(LPCWSTR url, PARSEACTION action, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
Definition: internet.c:154
static HRESULT parse_security_domain(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
Definition: internet.c:207
static HRESULT parse_rootdocument(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
Definition: internet.c:258
static HRESULT parse_schema(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
Definition: internet.c:82
static HRESULT parse_domain(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
Definition: internet.c:228
static HRESULT parse_path_from_url(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
Definition: internet.c:181
static HRESULT parse_security_url(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
Definition: internet.c:135

Referenced by get_protocol_info(), is_registered_protocol(), OleLoadPicturePath(), ResProtocol_Start(), try_application_url(), and UniformResourceLocatorW_InvokeCommand().

◆ CoInternetQueryInfo()

HRESULT WINAPI CoInternetQueryInfo ( LPCWSTR  pwzUrl,
QUERYOPTION  QueryOption,
DWORD  dwQueryFlags,
LPVOID  pvBuffer,
DWORD  cbBuffer,
DWORD pcbBuffer,
DWORD  dwReserved 
)

Definition at line 418 of file internet.c.

421{
424
425 TRACE("(%s, %x, %lx, %p, %lx, %p, %lx)\n", debugstr_w(pwzUrl),
426 QueryOption, dwQueryFlags, pvBuffer, cbBuffer, pcbBuffer, dwReserved);
427
429
430 if(protocol_info) {
431 hres = IInternetProtocolInfo_QueryInfo(protocol_info, pwzUrl, QueryOption, dwQueryFlags,
432 pvBuffer, cbBuffer, pcbBuffer, dwReserved);
433 IInternetProtocolInfo_Release(protocol_info);
434
435 return SUCCEEDED(hres) ? hres : E_FAIL;
436 }
437
438 switch(QueryOption) {
439 case QUERY_USES_NETWORK:
440 if(!pvBuffer || cbBuffer < sizeof(DWORD))
441 return E_FAIL;
442
443 *(DWORD*)pvBuffer = 0;
444 if(pcbBuffer)
445 *pcbBuffer = sizeof(DWORD);
446 break;
447
448 default:
449 FIXME("Not supported option %d\n", QueryOption);
450 return E_NOTIMPL;
451 }
452
453 return S_OK;
454}
#define DWORD
Definition: nt_native.h:44

◆ CoInternetSetFeatureEnabled()

HRESULT WINAPI CoInternetSetFeatureEnabled ( INTERNETFEATURELIST  FeatureEntry,
DWORD  dwFlags,
BOOL  fEnable 
)

Definition at line 607 of file internet.c.

608{
609 TRACE("(%d, %08lx, %x)\n", FeatureEntry, dwFlags, fEnable);
610 return set_internet_feature(FeatureEntry, dwFlags, fEnable);
611}
static HRESULT set_internet_feature(INTERNETFEATURELIST feature, DWORD flags, BOOL enable)
Definition: internet.c:466

◆ CompareSecurityIds()

HRESULT WINAPI CompareSecurityIds ( BYTE secid1,
DWORD  size1,
BYTE secid2,
DWORD  size2,
DWORD  reserved 
)

Definition at line 2023 of file sec_mgr.c.

2024{
2025 FIXME("(%p %ld %p %ld %lx)\n", secid1, size1, secid2, size2, reserved);
2026 return E_NOTIMPL;
2027}
r reserved
Definition: btrfs.c:3006
static const BYTE secid2[]
Definition: sec_mgr.c:121
static const BYTE secid1[]
Definition: sec_mgr.c:120

◆ CopyBindInfo()

HRESULT WINAPI CopyBindInfo ( const BINDINFO *  pcbiSrc,
BINDINFO *  pcbiDest 
)

Definition at line 643 of file urlmon_main.c.

644{
645 DWORD size;
647
648 TRACE("(%p %p)\n", pcbiSrc, pcbiDest);
649
650 if(!pcbiSrc || !pcbiDest)
651 return E_POINTER;
652 if(!pcbiSrc->cbSize || !pcbiDest->cbSize)
653 return E_INVALIDARG;
654
655 size = pcbiDest->cbSize;
656 if(size > pcbiSrc->cbSize) {
657 memcpy(pcbiDest, pcbiSrc, pcbiSrc->cbSize);
658 memset((char*)pcbiDest+pcbiSrc->cbSize, 0, size-pcbiSrc->cbSize);
659 } else {
660 memcpy(pcbiDest, pcbiSrc, size);
661 }
662 pcbiDest->cbSize = size;
663
664 size = FIELD_OFFSET(BINDINFO, szExtraInfo)+sizeof(void*);
665 if(pcbiSrc->cbSize>=size && pcbiDest->cbSize>=size && pcbiSrc->szExtraInfo) {
666 size = (lstrlenW(pcbiSrc->szExtraInfo)+1)*sizeof(WCHAR);
667 pcbiDest->szExtraInfo = CoTaskMemAlloc(size);
668 if(!pcbiDest->szExtraInfo)
669 return E_OUTOFMEMORY;
670 memcpy(pcbiDest->szExtraInfo, pcbiSrc->szExtraInfo, size);
671 }
672
673 size = FIELD_OFFSET(BINDINFO, stgmedData)+sizeof(STGMEDIUM);
674 if(pcbiSrc->cbSize>=size && pcbiDest->cbSize>=size) {
675 hres = CopyStgMedium(&pcbiSrc->stgmedData, &pcbiDest->stgmedData);
676 if(FAILED(hres)) {
677 CoTaskMemFree(pcbiDest->szExtraInfo);
678 return hres;
679 }
680 }
681
682 size = FIELD_OFFSET(BINDINFO, szCustomVerb)+sizeof(void*);
683 if(pcbiSrc->cbSize>=size && pcbiDest->cbSize>=size && pcbiSrc->szCustomVerb) {
684 size = (lstrlenW(pcbiSrc->szCustomVerb)+1)*sizeof(WCHAR);
685 pcbiDest->szCustomVerb = CoTaskMemAlloc(size);
686 if(!pcbiDest->szCustomVerb) {
687 CoTaskMemFree(pcbiDest->szExtraInfo);
688 ReleaseStgMedium(&pcbiDest->stgmedData);
689 return E_OUTOFMEMORY;
690 }
691 memcpy(pcbiDest->szCustomVerb, pcbiSrc->szCustomVerb, size);
692 }
693
694 size = FIELD_OFFSET(BINDINFO, securityAttributes)+sizeof(SECURITY_ATTRIBUTES);
695 if(pcbiDest->cbSize >= size)
696 memset(&pcbiDest->securityAttributes, 0, sizeof(SECURITY_ATTRIBUTES));
697
698 if(pcbiSrc->pUnk)
699 IUnknown_AddRef(pcbiDest->pUnk);
700
701 return S_OK;
702}
struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES
void WINAPI ReleaseStgMedium(STGMEDIUM *pmedium)
Definition: ole2.c:2014
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
#define memset(x, y, z)
Definition: compat.h:39
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
HRESULT WINAPI CopyStgMedium(const STGMEDIUM *src, STGMEDIUM *dst)
Definition: urlmon_main.c:586

Referenced by InternetBindInfo_GetBindInfo().

◆ CopyStgMedium()

HRESULT WINAPI CopyStgMedium ( const STGMEDIUM *  src,
STGMEDIUM *  dst 
)

Definition at line 586 of file urlmon_main.c.

587{
588 TRACE("(%p %p)\n", src, dst);
589
590 if(!src || !dst)
591 return E_POINTER;
592
593 *dst = *src;
594
595 switch(dst->tymed) {
596 case TYMED_NULL:
597 break;
598 case TYMED_FILE:
599 if(src->lpszFileName && !src->pUnkForRelease) {
600 DWORD size = (lstrlenW(src->lpszFileName)+1)*sizeof(WCHAR);
601 dst->lpszFileName = CoTaskMemAlloc(size);
602 if(!dst->lpszFileName)
603 return E_OUTOFMEMORY;
604 memcpy(dst->lpszFileName, src->lpszFileName, size);
605 }
606 break;
607 case TYMED_ISTREAM:
608 if(dst->pstm)
609 IStream_AddRef(dst->pstm);
610 break;
611 case TYMED_ISTORAGE:
612 if(dst->pstg)
613 IStorage_AddRef(dst->pstg);
614 break;
615 case TYMED_HGLOBAL:
616 if(dst->hGlobal) {
617 SIZE_T size = GlobalSize(src->hGlobal);
618 char *src_ptr, *dst_ptr;
619
620 dst->hGlobal = GlobalAlloc(GMEM_FIXED, size);
621 if(!dst->hGlobal)
622 return E_OUTOFMEMORY;
623 dst_ptr = GlobalLock(dst->hGlobal);
624 src_ptr = GlobalLock(src->hGlobal);
625 memcpy(dst_ptr, src_ptr, size);
626 GlobalUnlock(src_ptr);
627 GlobalUnlock(dst_ptr);
628 }
629 break;
630 default:
631 FIXME("Unimplemented tymed %ld\n", src->tymed);
632 }
633
634 if(dst->pUnkForRelease)
635 IUnknown_AddRef(dst->pUnkForRelease);
636
637 return S_OK;
638}
GLenum src
Definition: glext.h:6340
GLenum GLenum dst
Definition: glext.h:6340
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
Definition: heapmem.c:1190
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
Definition: heapmem.c:368
SIZE_T NTAPI GlobalSize(HGLOBAL hMem)
Definition: heapmem.c:1090
static ERESOURCE GlobalLock
Definition: sys_arch.c:8
ULONG_PTR SIZE_T
Definition: typedefs.h:80
#define GMEM_FIXED
Definition: winbase.h:317

Referenced by CopyBindInfo().

◆ CreateAsyncBindCtx()

HRESULT WINAPI CreateAsyncBindCtx ( DWORD  reserved,
IBindStatusCallback callback,
IEnumFORMATETC format,
IBindCtx **  pbind 
)

Definition at line 899 of file bindctx.c.

901{
902 IBindCtx *bindctx;
904
905 TRACE("(%08lx %p %p %p)\n", reserved, callback, format, pbind);
906
907 if(!pbind || !callback)
908 return E_INVALIDARG;
909
910 hres = CreateBindCtx(0, &bindctx);
911 if(FAILED(hres))
912 return hres;
913
914 hres = init_bindctx(bindctx, 0, callback, format);
915 if(FAILED(hres)) {
916 IBindCtx_Release(bindctx);
917 return hres;
918 }
919
920 *pbind = bindctx;
921 return S_OK;
922}
static IPrintDialogCallback callback
Definition: printdlg.c:326
HRESULT WINAPI CreateBindCtx(DWORD reserved, IBindCtx **bind_context)
Definition: bindctx.c:491
Definition: format.c:58
static HRESULT init_bindctx(IBindCtx *bindctx, DWORD options, IBindStatusCallback *callback, IEnumFORMATETC *format)
Definition: bindctx.c:867

Referenced by BindAsyncMoniker(), download_to_cache(), download_url(), hlink_frame_navigate(), install_codebase(), MimeHtmlProtocol_Start(), navigate_bsc(), navigate_new_window(), start_binding(), test_BindToObject(), test_BindToStorage(), test_CreateAsyncBindCtx(), test_ReportResult(), test_StdURLMoniker(), URLDownloadToFileW(), and xmldoc_put_URL().

◆ CreateAsyncBindCtxEx()

HRESULT WINAPI CreateAsyncBindCtxEx ( IBindCtx ibind,
DWORD  options,
IBindStatusCallback callback,
IEnumFORMATETC format,
IBindCtx **  pbind,
DWORD  reserved 
)

Definition at line 929 of file bindctx.c.

932{
934 IBindCtx *bindctx;
936
937 TRACE("(%p %08lx %p %p %p %ld)\n", ibind, options, callback, format, pbind, reserved);
938
939 if(!pbind)
940 return E_INVALIDARG;
941
942 if(reserved)
943 WARN("reserved=%ld\n", reserved);
944
945 if(ibind) {
946 IBindCtx_AddRef(ibind);
947 bindctx = ibind;
948 }else {
949 hres = CreateBindCtx(0, &bindctx);
950 if(FAILED(hres))
951 return hres;
952 }
953
954 ret = malloc(sizeof(AsyncBindCtx));
955
956 ret->IBindCtx_iface.lpVtbl = &AsyncBindCtxVtbl;
957 ret->ref = 1;
958 ret->bindctx = bindctx;
959
960 hres = init_bindctx(&ret->IBindCtx_iface, options, callback, format);
961 if(FAILED(hres)) {
962 IBindCtx_Release(&ret->IBindCtx_iface);
963 return hres;
964 }
965
966 *pbind = &ret->IBindCtx_iface;
967 return S_OK;
968}
#define malloc
Definition: debug_ros.c:4
return ret
Definition: mutex.c:146
static const IBindCtxVtbl AsyncBindCtxVtbl
Definition: bindctx.c:850

Referenced by load_doc_mon().

◆ CreateFormatEnumerator()

HRESULT WINAPI CreateFormatEnumerator ( UINT  cfmtetc,
FORMATETC *  rgfmtetc,
IEnumFORMATETC **  ppenumfmtetc 
)

Definition at line 177 of file format.c.

179{
180 TRACE("(%d %p %p)\n", cfmtetc, rgfmtetc, ppenumfmtetc);
181
182 if(!ppenumfmtetc)
183 return E_INVALIDARG;
184 if(!cfmtetc)
185 return E_FAIL;
186
187 *ppenumfmtetc = EnumFORMATETC_Create(cfmtetc, rgfmtetc, 0);
188 return S_OK;
189}
static IEnumFORMATETC * EnumFORMATETC_Create(UINT cfmtetc, const FORMATETC *rgfmtetc, UINT it)
Definition: format.c:157

Referenced by RegisterDefaultAcceptHeaders(), test_CreateFormatEnum(), and test_RegisterFormatEnumerator().

◆ CreateIUriBuilder()

HRESULT WINAPI CreateIUriBuilder ( IUri pIUri,
DWORD  dwFlags,
DWORD_PTR  dwReserved,
IUriBuilder **  ppIUriBuilder 
)

Definition at line 6035 of file uri.c.

6036{
6037 UriBuilder *ret;
6038
6039 TRACE("(%p %lx %Ix %p)\n", pIUri, dwFlags, dwReserved, ppIUriBuilder);
6040
6041 if(!ppIUriBuilder)
6042 return E_POINTER;
6043
6044 ret = calloc(1, sizeof(UriBuilder));
6045 if(!ret)
6046 return E_OUTOFMEMORY;
6047
6048 ret->IUriBuilder_iface.lpVtbl = &UriBuilderVtbl;
6049 ret->ref = 1;
6050
6051 if(pIUri) {
6052 Uri *uri;
6053
6054 if((uri = get_uri_obj(pIUri))) {
6055 if(!uri->create_flags) {
6056 free(ret);
6057 return E_UNEXPECTED;
6058 }
6059 IUri_AddRef(pIUri);
6060 ret->uri = uri;
6061
6062 if(uri->has_port)
6063 /* Windows doesn't set 'has_port' to TRUE in this case. */
6064 ret->port = uri->port;
6065
6066 } else {
6067 free(ret);
6068 *ppIUriBuilder = NULL;
6069 FIXME("(%p %lx %Ix %p): Unknown IUri types not supported yet.\n", pIUri, dwFlags,
6070 dwReserved, ppIUriBuilder);
6071 return E_NOTIMPL;
6072 }
6073 }
6074
6075 *ppIUriBuilder = &ret->IUriBuilder_iface;
6076 return S_OK;
6077}
#define free
Definition: debug_ros.c:5
static const IUriBuilderVtbl UriBuilderVtbl
Definition: uri.c:6003
#define calloc
Definition: rosglue.h:14

Referenced by ensure_uri_builder(), get_uri_nofrag(), httprequest_open(), nsURI_GetPrePath(), UriBuilderFactory_CreateInitializedIUriBuilder(), and UriBuilderFactory_CreateIUriBuilder().

◆ CreateUri()

HRESULT WINAPI CreateUri ( LPCWSTR  pwzURI,
DWORD  dwFlags,
DWORD_PTR  dwReserved,
IUri **  ppURI 
)

Definition at line 5382 of file uri.c.

5383{
5384 const DWORD supported_flags = Uri_CREATE_ALLOW_RELATIVE|Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME|
5385 Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME|Uri_CREATE_NO_CANONICALIZE|Uri_CREATE_CANONICALIZE|
5386 Uri_CREATE_DECODE_EXTRA_INFO|Uri_CREATE_NO_DECODE_EXTRA_INFO|Uri_CREATE_CRACK_UNKNOWN_SCHEMES|
5387 Uri_CREATE_NO_CRACK_UNKNOWN_SCHEMES|Uri_CREATE_PRE_PROCESS_HTML_URI|Uri_CREATE_NO_PRE_PROCESS_HTML_URI|
5388 Uri_CREATE_NO_IE_SETTINGS|Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS|Uri_CREATE_FILE_USE_DOS_PATH;
5389 Uri *ret;
5390 HRESULT hr;
5392
5393 TRACE("(%s %lx %Ix %p)\n", debugstr_w(pwzURI), dwFlags, dwReserved, ppURI);
5394
5395 if(!ppURI)
5396 return E_INVALIDARG;
5397
5398 if(!pwzURI) {
5399 *ppURI = NULL;
5400 return E_INVALIDARG;
5401 }
5402
5403 /* Check for invalid flags. */
5405 *ppURI = NULL;
5406 return E_INVALIDARG;
5407 }
5408
5409 /* Currently unsupported. */
5410 if(dwFlags & ~supported_flags)
5411 FIXME("Ignoring unsupported flag(s) %lx\n", dwFlags & ~supported_flags);
5412
5413 hr = Uri_Construct(NULL, (void**)&ret);
5414 if(FAILED(hr)) {
5415 *ppURI = NULL;
5416 return hr;
5417 }
5418
5419 /* Explicitly set the default flags if it doesn't cause a flag conflict. */
5421
5422 /* Pre process the URI, unless told otherwise. */
5423 if(!(dwFlags & Uri_CREATE_NO_PRE_PROCESS_HTML_URI))
5424 ret->raw_uri = pre_process_uri(pwzURI);
5425 else
5426 ret->raw_uri = SysAllocString(pwzURI);
5427
5428 if(!ret->raw_uri) {
5429 free(ret);
5430 return E_OUTOFMEMORY;
5431 }
5432
5433 memset(&data, 0, sizeof(parse_data));
5434 data.uri = ret->raw_uri;
5435
5436 /* Validate and parse the URI into its components. */
5437 if(!parse_uri(&data, dwFlags)) {
5438 /* Encountered an unsupported or invalid URI */
5439 IUri_Release(&ret->IUri_iface);
5440 *ppURI = NULL;
5441 return E_INVALIDARG;
5442 }
5443
5444 /* Canonicalize the URI. */
5446 if(FAILED(hr)) {
5447 IUri_Release(&ret->IUri_iface);
5448 *ppURI = NULL;
5449 return hr;
5450 }
5451
5452 ret->create_flags = dwFlags;
5453
5454 *ppURI = &ret->IUri_iface;
5455 return S_OK;
5456}
static BOOL has_invalid_flag_combination(DWORD flags)
Definition: uri.c:369
HRESULT Uri_Construct(IUnknown *pUnkOuter, LPVOID *ppobj)
Definition: uri.c:5338
static void apply_default_flags(DWORD *flags)
Definition: uri.c:380
static BOOL parse_uri(parse_data *data, DWORD flags)
Definition: uri.c:1798
static BSTR pre_process_uri(LPCWSTR uri)
Definition: uri.c:666
static HRESULT canonicalize_uri(const parse_data *data, Uri *uri, DWORD flags)
Definition: uri.c:2978
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:240

Referenced by AsyncInstallDistributionUnit(), BindProtocol_Start(), CoInternetCombineIUri(), CoInternetCombineUrlEx(), CoInternetGetSecurityUrlEx(), create_uri(), CreateUriWithFragment(), CreateURLMonikerEx(), FileProtocol_Start(), FtpProtocol_Start(), get_base_uri(), get_security_id_for_url(), GopherProtocol_Start(), HttpProtocol_Start(), httprequest_open(), map_url_to_zone(), MkProtocol_Start(), URLMoniker_Load(), and xslt_doc_get_uri().

◆ CreateUriFromMultiByteString()

HRESULT WINAPI CreateUriFromMultiByteString ( LPCSTR  ,
DWORD  ,
DWORD  ,
DWORD  ,
DWORD_PTR  ,
IUri **   
)

◆ CreateUriWithFragment()

HRESULT WINAPI CreateUriWithFragment ( LPCWSTR  pwzURI,
LPCWSTR  pwzFragment,
DWORD  dwFlags,
DWORD_PTR  dwReserved,
IUri **  ppURI 
)

Definition at line 5477 of file uri.c.

5479{
5480 HRESULT hres;
5481 TRACE("(%s %s %lx %Ix %p)\n", debugstr_w(pwzURI), debugstr_w(pwzFragment), dwFlags, dwReserved, ppURI);
5482
5483 if(!ppURI)
5484 return E_INVALIDARG;
5485
5486 if(!pwzURI) {
5487 *ppURI = NULL;
5488 return E_INVALIDARG;
5489 }
5490
5491 /* Check if a fragment should be appended to the URI string. */
5492 if(pwzFragment) {
5493 WCHAR *uriW;
5494 DWORD uri_len, frag_len;
5495 BOOL add_pound;
5496
5497 /* Check if the original URI already has a fragment component. */
5498 if(StrChrW(pwzURI, '#')) {
5499 *ppURI = NULL;
5500 return E_INVALIDARG;
5501 }
5502
5503 uri_len = lstrlenW(pwzURI);
5504 frag_len = lstrlenW(pwzFragment);
5505
5506 /* If the fragment doesn't start with a '#', one will be added. */
5507 add_pound = *pwzFragment != '#';
5508
5509 if(add_pound)
5510 uriW = malloc((uri_len + frag_len + 2) * sizeof(WCHAR));
5511 else
5512 uriW = malloc((uri_len + frag_len + 1) * sizeof(WCHAR));
5513
5514 if(!uriW)
5515 return E_OUTOFMEMORY;
5516
5517 memcpy(uriW, pwzURI, uri_len*sizeof(WCHAR));
5518 if(add_pound)
5519 uriW[uri_len++] = '#';
5520 memcpy(uriW+uri_len, pwzFragment, (frag_len+1)*sizeof(WCHAR));
5521
5522 hres = CreateUri(uriW, dwFlags, 0, ppURI);
5523
5524 free(uriW);
5525 } else
5526 /* A fragment string wasn't specified, so just forward the call. */
5527 hres = CreateUri(pwzURI, dwFlags, 0, ppURI);
5528
5529 return hres;
5530}
LPWSTR WINAPI StrChrW(LPCWSTR lpszStr, WCHAR ch)
Definition: string.c:464
unsigned int BOOL
Definition: ntddk_ex.h:94

◆ CreateURLMoniker()

◆ CreateURLMonikerEx()

HRESULT WINAPI CreateURLMonikerEx ( IMoniker pmkContext,
LPCWSTR  szURL,
IMoniker **  ppmk,
DWORD  dwFlags 
)

Definition at line 631 of file umon.c.

632{
633 IUri *uri, *base_uri = NULL;
636
637 TRACE("(%p, %s, %p, %08lx)\n", pmkContext, debugstr_w(szURL), ppmk, dwFlags);
638
639 if (ppmk)
640 *ppmk = NULL;
641
642 if (!szURL || !ppmk)
643 return E_INVALIDARG;
644
646 FIXME("Unsupported flags %lx\n", dwFlags);
647 return E_INVALIDARG;
648 }
649
650 if(pmkContext) {
651 IUriContainer *uri_container;
652
653 hres = IMoniker_QueryInterface(pmkContext, &IID_IUriContainer, (void**)&uri_container);
654 if(SUCCEEDED(hres)) {
655 hres = IUriContainer_GetIUri(uri_container, &base_uri);
656 IUriContainer_Release(uri_container);
657 if(FAILED(hres))
658 return hres;
659 }
660 }
661
662 if(base_uri) {
663 hres = CoInternetCombineUrlEx(base_uri, szURL, combine_flags_map[dwFlags], &uri, 0);
664 IUri_Release(base_uri);
665 }else {
666 hres = CreateUri(szURL, Uri_CREATE_ALLOW_RELATIVE|Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME|create_flags_map[dwFlags], 0, &uri);
667 }
668 if(FAILED(hres))
669 return hres;
670
672 IUri_Release(uri);
673 if(FAILED(hres))
674 return hres;
675
676 *ppmk = &obj->IMoniker_iface;
677 return S_OK;
678}
HRESULT WINAPI CoInternetCombineUrlEx(IUri *pBaseUri, LPCWSTR pwzRelativeUrl, DWORD dwCombineFlags, IUri **ppCombinedUri, DWORD_PTR dwReserved)
Definition: uri.c:6442
static const DWORD create_flags_map[3]
Definition: umon.c:603
static HRESULT create_moniker(IUri *uri, URLMoniker **ret)
Definition: umon.c:555
static const DWORD combine_flags_map[3]
Definition: umon.c:609

Referenced by CreateURLMoniker(), and handle_xml_load().

◆ CreateURLMonikerEx2()

HRESULT WINAPI CreateURLMonikerEx2 ( IMoniker pmkContext,
IUri pUri,
IMoniker **  ppmk,
DWORD  dwFlags 
)

Definition at line 683 of file umon.c.

684{
685 IUri *context_uri = NULL, *uri;
686 IUriContainer *uri_container;
689
690 TRACE("(%p %p %p %lx)\n", pmkContext, pUri, ppmk, dwFlags);
691
692 if (ppmk)
693 *ppmk = NULL;
694
695 if (!pUri || !ppmk)
696 return E_INVALIDARG;
697
699 FIXME("Unsupported flags %lx\n", dwFlags);
700 return E_INVALIDARG;
701 }
702
703 if(pmkContext) {
704 hres = IMoniker_QueryInterface(pmkContext, &IID_IUriContainer, (void**)&uri_container);
705 if(SUCCEEDED(hres)) {
706 hres = IUriContainer_GetIUri(uri_container, &context_uri);
707 if(FAILED(hres))
708 context_uri = NULL;
709 IUriContainer_Release(uri_container);
710 }
711 }
712
713 if(context_uri) {
714 hres = CoInternetCombineIUri(context_uri, pUri, combine_flags_map[dwFlags], &uri, 0);
715 IUri_Release(context_uri);
716 if(FAILED(hres))
717 return hres;
718 }else {
719 uri = pUri;
720 IUri_AddRef(uri);
721 }
722
724 IUri_Release(uri);
725 if(FAILED(hres))
726 return hres;
727
728 *ppmk = &ret->IMoniker_iface;
729 return S_OK;
730}
HRESULT WINAPI CoInternetCombineIUri(IUri *pBaseUri, IUri *pRelativeUri, DWORD dwCombineFlags, IUri **ppCombinedUri, DWORD_PTR dwReserved)
Definition: uri.c:6396

Referenced by async_open(), bind_script_to_text(), BindStatusCallback_create(), create_moniker_from_url(), domdoc_load(), download_to_cache(), super_navigate(), TargetFramePriv2_AggregatedNavigation2(), URLMoniker_ComposeWith(), and xslt_doc_default_loader().

◆ DEFINE_GUID() [1/13]

DEFINE_GUID ( CLSID_CdlProtocol  ,
0x3dd53d40  ,
0x7b8b  ,
0x11D0  ,
0xb0  ,
0x13  ,
0x00  ,
0xaa  ,
0x00  ,
0x59  ,
0xce  ,
0x02   
)

◆ DEFINE_GUID() [2/13]

DEFINE_GUID ( CLSID_DeCompMimeFilter  ,
0x8f6b0360  ,
0xb80d  ,
0x11d0  ,
0xa9  ,
0xb3  ,
0x00  ,
0x60  ,
0x97  ,
0x94  ,
0x23  ,
0x11   
)

◆ DEFINE_GUID() [3/13]

DEFINE_GUID ( CLSID_FileProtocol  ,
0x79EAC9E7  ,
0xBAF9  ,
0x11CE  ,
0x8C  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0x4B  ,
0xA9  ,
0x0B   
)

◆ DEFINE_GUID() [4/13]

DEFINE_GUID ( CLSID_FtpProtocol  ,
0x79EAC9E3  ,
0xBAF9  ,
0x11CE  ,
0x8C  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0x4B  ,
0xA9  ,
0x0B   
)

◆ DEFINE_GUID() [5/13]

DEFINE_GUID ( CLSID_GopherProtocol  ,
0x79EAC9E4  ,
0xBAF9  ,
0x11CE  ,
0x8C  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0x4B  ,
0xA9  ,
0x0B   
)

◆ DEFINE_GUID() [6/13]

DEFINE_GUID ( CLSID_HttpProtocol  ,
0x79EAC9E2  ,
0xBAF9  ,
0x11CE  ,
0x8C  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0x4B  ,
0xA9  ,
0x0B   
)

◆ DEFINE_GUID() [7/13]

DEFINE_GUID ( CLSID_HttpSProtocol  ,
0x79EAC9E5  ,
0xBAF9  ,
0x11CE  ,
0x8C  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0x4B  ,
0xA9  ,
0x0B   
)

◆ DEFINE_GUID() [8/13]

DEFINE_GUID ( CLSID_InternetSecurityManager  ,
0x7b8a2d94  ,
0x0ac9  ,
0x11d1  ,
0x89  ,
0x6c  ,
0x00  ,
0xc0  ,
0x4f  ,
0xB6  ,
0xbf  ,
0xc4   
)

◆ DEFINE_GUID() [9/13]

DEFINE_GUID ( CLSID_InternetZoneManager  ,
0x7B8A2D95  ,
0x0AC9  ,
0x11D1  ,
0x89  ,
0x6C  ,
0x00  ,
0xC0  ,
0x4F  ,
0xB6  ,
0xBF  ,
0xC4   
)

◆ DEFINE_GUID() [10/13]

DEFINE_GUID ( CLSID_MkProtocol  ,
0x79EAC9E6  ,
0xBAF9  ,
0x11CE  ,
0x8C  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0x4B  ,
0xA9  ,
0x0B   
)

◆ DEFINE_GUID() [11/13]

DEFINE_GUID ( CLSID_StdURLMoniker  ,
0x79EAC9E0  ,
0xBAF9  ,
0x11CE  ,
0x8C  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0x4B  ,
0xA9  ,
0x0B   
)

◆ DEFINE_GUID() [12/13]

DEFINE_GUID ( IID_IAsyncBindCtx  ,
0x79EAC9D4  ,
0xBAF9  ,
0x11CE  ,
0x8C  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0x4B  ,
0xA9  ,
0x0B   
)

◆ DEFINE_GUID() [13/13]

DEFINE_GUID ( IID_IAsyncMoniker  ,
0x79EAC9D3  ,
0xBAF9  ,
0x11CE  ,
0x8C  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0x4B  ,
0xA9  ,
0x0B   
)

◆ FaultInIEFeature()

HRESULT WINAPI FaultInIEFeature ( HWND  hwnd,
uCLSSPEC *  pClassSpec,
QUERYCONTEXT *  pQuery,
DWORD  flags 
)

Definition at line 529 of file urlmon_main.c.

531{
532 FIXME("%p %p %p %08lx\n", hwnd, pClassSpec, pQuery, flags);
533 return E_NOTIMPL;
534}
GLbitfield flags
Definition: glext.h:7161
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023

◆ FindMimeFromData()

HRESULT WINAPI FindMimeFromData ( LPBC  pBC,
LPCWSTR  pwzUrl,
LPVOID  pBuffer,
DWORD  cbSize,
LPCWSTR  pwzMimeProposed,
DWORD  dwMimeFlags,
LPWSTR ppwzMimeOut,
DWORD  dwReserved 
)

Definition at line 655 of file mimefilter.c.

658{
659 TRACE("(%p,%s,%p,%ld,%s,0x%lx,%p,0x%lx)\n", pBC, debugstr_w(pwzUrl), pBuffer, cbSize,
660 debugstr_w(pwzMimeProposed), dwMimeFlags, ppwzMimeOut, dwReserved);
661
662 if(dwMimeFlags)
663 WARN("dwMimeFlags=%08lx\n", dwMimeFlags);
664 if(dwReserved)
665 WARN("dwReserved=%ld\n", dwReserved);
666
667 /* pBC seems to not be used */
668
669 if(!ppwzMimeOut || (!pwzUrl && !pBuffer))
670 return E_INVALIDARG;
671
672 if(pwzMimeProposed || pBuffer)
673 return find_mime_from_buffer(pBuffer, cbSize, pwzMimeProposed, pwzUrl, ppwzMimeOut);
674
675 return find_mime_from_url(pwzUrl, ppwzMimeOut);
676}
static HRESULT find_mime_from_buffer(const BYTE *buf, DWORD size, const WCHAR *proposed_mime, const WCHAR *url, WCHAR **ret_mime)
Definition: mimefilter.c:538
static HRESULT find_mime_from_url(const WCHAR *url, WCHAR **ret)
Definition: mimefilter.c:448
PVOID pBuffer

Referenced by ITSProtocol_Start(), MkProtocol_StartEx(), read_stream_data(), report_data(), and ResProtocol_Start().

◆ GetClassFileOrMime()

HRESULT WINAPI GetClassFileOrMime ( LPBC  pBC,
LPCWSTR  pszFilename,
LPVOID  pBuffer,
DWORD  cbBuffer,
LPCWSTR  pszMimeType,
DWORD  dwReserved,
CLSID pclsid 
)

Definition at line 709 of file urlmon_main.c.

712{
713 FIXME("(%p, %s, %p, %ld, %s, 0x%08lx, %p): stub\n", pBC, debugstr_w(pszFilename), pBuffer,
714 cbBuffer, debugstr_w(pszMimeType), dwReserved, pclsid);
715 return E_NOTIMPL;
716}

◆ GetSoftwareUpdateInfo()

HRESULT WINAPI GetSoftwareUpdateInfo ( LPCWSTR  szDistUnit,
LPSOFTDISTINFO  psdi 
)

Definition at line 974 of file umon.c.

975{
976 FIXME("%s %p\n", debugstr_w(szDistUnit), psdi );
977 return E_FAIL;
978}

◆ HlinkGoBack()

HRESULT WINAPI HlinkGoBack ( IUnknown )

◆ HlinkGoForward()

HRESULT WINAPI HlinkGoForward ( IUnknown )

◆ HlinkNavigateMoniker()

HRESULT WINAPI HlinkNavigateMoniker ( IUnknown ,
IMoniker  
)

◆ HlinkNavigateString()

HRESULT WINAPI HlinkNavigateString ( IUnknown pUnk,
LPCWSTR  szTarget 
)

Definition at line 964 of file umon.c.

965{
966 TRACE("%p %s\n", pUnk, debugstr_w( szTarget ) );
968 szTarget, NULL, NULL, pUnk, NULL, NULL, 0, 0 );
969}
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
Definition: dplayx.c:30
HRESULT WINAPI HlinkSimpleNavigateToString(LPCWSTR szTarget, LPCWSTR szLocation, LPCWSTR szTargetFrameName, IUnknown *pUnk, IBindCtx *pbc, IBindStatusCallback *pbsc, DWORD grfHLNF, DWORD dwReserved)
Definition: umon.c:934

◆ HlinkSimpleNavigateToMoniker()

HRESULT WINAPI HlinkSimpleNavigateToMoniker ( IMoniker pmkTarget,
LPCWSTR  szLocation,
LPCWSTR  szTargetFrameName,
IUnknown pUnk,
IBindCtx pbc,
IBindStatusCallback pbsc,
DWORD  grfHLNF,
DWORD  dwReserved 
)

Definition at line 913 of file umon.c.

916{
919
920 TRACE("\n");
921
922 hres = IMoniker_GetDisplayName(pmkTarget, pbc, 0, &target);
923 if(hres == S_OK)
924 hres = HlinkSimpleNavigateToString( target, szLocation, szTargetFrameName,
925 pUnk, pbc, pbsc, grfHLNF, dwReserved );
927
928 return hres;
929}
Definition: tools.h:99
uint16_t * LPWSTR
Definition: typedefs.h:56

◆ HlinkSimpleNavigateToString()

HRESULT WINAPI HlinkSimpleNavigateToString ( LPCWSTR  szTarget,
LPCWSTR  szLocation,
LPCWSTR  szTargetFrameName,
IUnknown pUnk,
IBindCtx pbc,
IBindStatusCallback pbsc,
DWORD  grfHLNF,
DWORD  dwReserved 
)

Definition at line 934 of file umon.c.

937{
938 FIXME("%s %s %s %p %p %p %lu %lu partial stub\n", debugstr_w( szTarget ), debugstr_w( szLocation ),
939 debugstr_w( szTargetFrameName ), pUnk, pbc, pbsc, grfHLNF, dwReserved);
940
941 /* undocumented: 0 means HLNF_OPENINNEWWINDOW*/
942 if (!grfHLNF) grfHLNF = HLNF_OPENINNEWWINDOW;
943
944 if (grfHLNF == HLNF_OPENINNEWWINDOW)
945 {
947
948 memset(&sei, 0, sizeof(sei));
949 sei.cbSize = sizeof(sei);
950 sei.lpVerb = L"open";
951 sei.nShow = SW_SHOWNORMAL;
953 sei.lpFile = szTarget;
954
955 if (ShellExecuteExW(&sei)) return S_OK;
956 }
957
958 return E_NOTIMPL;
959}
#define SEE_MASK_FLAG_NO_UI
Definition: shellapi.h:38
#define SEE_MASK_NO_CONSOLE
Definition: shellapi.h:41
BOOL WINAPI DECLSPEC_HOTPATCH ShellExecuteExW(LPSHELLEXECUTEINFOW sei)
Definition: shlexec.cpp:2723
#define SW_SHOWNORMAL
Definition: winuser.h:781

Referenced by general_dlg_proc(), HlinkNavigateString(), HlinkSimpleNavigateToMoniker(), and user_notice_dlg_proc().

◆ IsAsyncMoniker()

HRESULT WINAPI IsAsyncMoniker ( IMoniker pmk)

Definition at line 755 of file umon.c.

756{
757 IUnknown *am;
758
759 TRACE("(%p)\n", pmk);
760 if(!pmk)
761 return E_INVALIDARG;
762 if(SUCCEEDED(IMoniker_QueryInterface(pmk, &IID_IAsyncMoniker, (void**)&am))) {
763 IUnknown_Release(am);
764 return S_OK;
765 }
766 return S_FALSE;
767}

◆ IsLoggingEnabledA()

BOOL WINAPI IsLoggingEnabledA ( LPCSTR  url)

Definition at line 738 of file urlmon_main.c.

739{
740 FIXME("(%s)\n", debugstr_a(url));
741 return FALSE;
742}
#define FALSE
Definition: types.h:117
#define debugstr_a
Definition: kernel32.h:31
static const WCHAR url[]
Definition: encode.c:1384

◆ IsLoggingEnabledW()

BOOL WINAPI IsLoggingEnabledW ( LPCWSTR  url)

Definition at line 747 of file urlmon_main.c.

748{
749 FIXME("(%s)\n", debugstr_w(url));
750 return FALSE;
751}

◆ IsValidURL()

HRESULT WINAPI IsValidURL ( LPBC  pBC,
LPCWSTR  szURL,
DWORD  dwReserved 
)

Definition at line 514 of file urlmon_main.c.

515{
516 FIXME("(%p, %s, %ld): stub\n", pBC, debugstr_w(szURL), dwReserved);
517
518 if (dwReserved || !szURL)
519 return E_INVALIDARG;
520
521 return S_OK;
522}

Referenced by test_IsValidURL().

◆ MkParseDisplayNameEx()

HRESULT WINAPI MkParseDisplayNameEx ( IBindCtx ,
LPCWSTR  ,
ULONG ,
IMoniker **   
)

◆ ObtainUserAgentString()

HRESULT WINAPI ObtainUserAgentString ( DWORD  ,
LPSTR  ,
DWORD  
)

◆ RegisterBindStatusCallback()

HRESULT WINAPI RegisterBindStatusCallback ( IBindCtx pbc,
IBindStatusCallback pbsc,
IBindStatusCallback **  ppbsc,
DWORD  dwReserved 
)

Definition at line 615 of file bindctx.c.

617{
618 BindStatusCallback *holder;
619 IBindStatusCallback *bsc, *prev = NULL;
621
622 TRACE("(%p %p %p %lx)\n", pbc, pbsc, ppbscPrevious, dwReserved);
623
624 if (!pbc || !pbsc)
625 return E_INVALIDARG;
626
627 bsc = bsch_from_bctx(pbc);
628 if(bsc) {
629 hres = IBindStatusCallback_QueryInterface(bsc, &IID_IBindStatusCallbackHolder, (void**)&holder);
630 if(SUCCEEDED(hres)) {
631 if(ppbscPrevious) {
632 IBindStatusCallback_AddRef(holder->callback);
633 *ppbscPrevious = holder->callback;
634 }
635
636 set_callback(holder, pbsc);
637
638 IBindStatusCallback_Release(bsc);
639 IBindStatusCallbackEx_Release(&holder->IBindStatusCallbackEx_iface);
640 return S_OK;
641 }else {
642 prev = bsc;
643 }
644
645 IBindCtx_RevokeObjectParam(pbc, bscb_holderW);
646 }
647
648 hres = wrap_callback(pbsc, &bsc);
649 if(SUCCEEDED(hres)) {
650 hres = IBindCtx_RegisterObjectParam(pbc, bscb_holderW, (IUnknown*)bsc);
651 IBindStatusCallback_Release(bsc);
652 }
653 if(FAILED(hres)) {
654 if(prev)
655 IBindStatusCallback_Release(prev);
656 return hres;
657 }
658
659 if(ppbscPrevious)
660 *ppbscPrevious = prev;
661 return S_OK;
662}
IBindStatusCallback * callback
Definition: bindctx.c:39
IBindStatusCallbackEx IBindStatusCallbackEx_iface
Definition: bindctx.c:31
Definition: xmldoc.c:231
static IBindStatusCallback * bsch_from_bctx(IBindCtx *bctx)
Definition: bindctx.c:55
static WCHAR bscb_holderW[]
Definition: bindctx.c:26
HRESULT wrap_callback(IBindStatusCallback *bsc, IBindStatusCallback **ret_iface)
Definition: bindctx.c:578
IID IID_IBindStatusCallbackHolder
static void set_callback(BindStatusCallback *This, IBindStatusCallback *bsc)
Definition: bindctx.c:561

Referenced by bind_url(), BindStatusCallback_create(), HlinkResolveMonikerForData(), IHlink_fnNavigate(), init_bindctx(), PersistMoniker_Load(), start_binding(), test_BindToStorage(), test_RegisterBindStatusCallback(), URLStartDownload(), and XMLView_PersistMoniker_Load().

◆ RegisterFormatEnumerator()

HRESULT WINAPI RegisterFormatEnumerator ( LPBC  pBC,
IEnumFORMATETC pEFetc,
DWORD  reserved 
)

Definition at line 194 of file format.c.

195{
196 TRACE("(%p %p %ld)\n", pBC, pEFetc, reserved);
197
198 if(reserved)
199 WARN("reserved != 0\n");
200
201 if(!pBC || !pEFetc)
202 return E_INVALIDARG;
203
204 return IBindCtx_RegisterObjectParam(pBC, wszEnumFORMATETC, (IUnknown*)pEFetc);
205}
static WCHAR wszEnumFORMATETC[]
Definition: format.c:24

Referenced by RegisterDefaultAcceptHeaders(), and test_RegisterFormatEnumerator().

◆ ReleaseBindInfo()

void WINAPI ReleaseBindInfo ( BINDINFO *  pbindinfo)

Definition at line 561 of file urlmon_main.c.

562{
563 DWORD size;
564
565 TRACE("(%p)\n", pbindinfo);
566
567 if(!pbindinfo || !(size = pbindinfo->cbSize))
568 return;
569
570 CoTaskMemFree(pbindinfo->szExtraInfo);
571 ReleaseStgMedium(&pbindinfo->stgmedData);
572
573 if(offsetof(BINDINFO, szExtraInfo) < size)
574 CoTaskMemFree(pbindinfo->szCustomVerb);
575
576 if(pbindinfo->pUnk && offsetof(BINDINFO, pUnk) < size)
577 IUnknown_Release(pbindinfo->pUnk);
578
579 memset(pbindinfo, 0, size);
580 pbindinfo->cbSize = size;
581}
#define offsetof(TYPE, MEMBER)

Referenced by AboutProtocol_Start(), Binding_Release(), DownloadBSC_GetBindInfo(), FileProtocol_StartEx(), internet_status_callback(), ITSProtocol_Start(), MkProtocol_StartEx(), navigate_hlink(), ResProtocol_Start(), and test_bsc_marshaling().

◆ RevokeBindStatusCallback()

HRESULT WINAPI RevokeBindStatusCallback ( LPBC  ,
IBindStatusCallback  
)

◆ RevokeFormatEnumerator()

HRESULT WINAPI RevokeFormatEnumerator ( LPBC  pbc,
IEnumFORMATETC pEFetc 
)

Definition at line 210 of file format.c.

211{
212 TRACE("(%p %p)\n", pbc, pEFetc);
213
214 if(!pbc)
215 return E_INVALIDARG;
216
217 return IBindCtx_RevokeObjectParam(pbc, wszEnumFORMATETC);
218}

Referenced by test_RegisterFormatEnumerator().

◆ URLDownloadToCacheFileA()

HRESULT WINAPI URLDownloadToCacheFileA ( LPUNKNOWN  lpUnkCaller,
LPCSTR  szURL,
LPSTR  szFileName,
DWORD  dwBufLength,
DWORD  dwReserved,
LPBINDSTATUSCALLBACK  pBSC 
)

Definition at line 834 of file umon.c.

836{
838 int len;
840
841 TRACE("(%p %s %p %ld %ld %p)\n", lpUnkCaller, debugstr_a(szURL), szFileName,
842 dwBufLength, dwReserved, pBSC);
843
844 if(szURL) {
845 len = MultiByteToWideChar(CP_ACP, 0, szURL, -1, NULL, 0);
846 url = malloc(len * sizeof(WCHAR));
847 MultiByteToWideChar(CP_ACP, 0, szURL, -1, url, len);
848 }
849
850 if(szFileName)
851 file_name = malloc(dwBufLength * sizeof(WCHAR));
852
853 hres = URLDownloadToCacheFileW(lpUnkCaller, url, file_name, dwBufLength*sizeof(WCHAR),
854 dwReserved, pBSC);
855
856 if(SUCCEEDED(hres) && file_name)
857 WideCharToMultiByte(CP_ACP, 0, file_name, -1, szFileName, dwBufLength, NULL, NULL);
858
859 free(url);
861
862 return hres;
863}
#define CP_ACP
Definition: compat.h:109
#define WideCharToMultiByte
Definition: compat.h:111
#define MultiByteToWideChar
Definition: compat.h:110
GLenum GLsizei len
Definition: glext.h:6722
static LPCWSTR file_name
Definition: protocol.c:152
HRESULT WINAPI URLDownloadToCacheFileW(LPUNKNOWN lpUnkCaller, LPCWSTR szURL, LPWSTR szFileName, DWORD dwBufLength, DWORD dwReserved, LPBINDSTATUSCALLBACK pBSC)
Definition: umon.c:868

◆ URLDownloadToCacheFileW()

HRESULT WINAPI URLDownloadToCacheFileW ( LPUNKNOWN  lpUnkCaller,
LPCWSTR  szURL,
LPWSTR  szFileName,
DWORD  dwBufLength,
DWORD  dwReserved,
LPBINDSTATUSCALLBACK  pBSC 
)

Definition at line 868 of file umon.c.

870{
871 WCHAR cache_path[MAX_PATH + 1];
872 FILETIME expire, modified;
873 HRESULT hr;
874 LPWSTR ext;
875
876 static WCHAR header[] = L"HTTP/1.0 200 OK\\r\\n\\r\\n";
877
878 TRACE("(%p, %s, %p, %ld, %ld, %p)\n", lpUnkCaller, debugstr_w(szURL),
879 szFileName, dwBufLength, dwReserved, pBSC);
880
881 if (!szURL || !szFileName)
882 return E_INVALIDARG;
883
884 ext = PathFindExtensionW(szURL);
885
886 if (!CreateUrlCacheEntryW(szURL, 0, ext, cache_path, 0))
887 return E_FAIL;
888
889 hr = URLDownloadToFileW(lpUnkCaller, szURL, cache_path, 0, pBSC);
890 if (FAILED(hr))
891 return hr;
892
893 expire.dwHighDateTime = 0;
894 expire.dwLowDateTime = 0;
895 modified.dwHighDateTime = 0;
896 modified.dwLowDateTime = 0;
897
898 if (!CommitUrlCacheEntryW(szURL, cache_path, expire, modified, NORMAL_CACHE_ENTRY,
899 header, sizeof(header), NULL, NULL))
900 return E_FAIL;
901
902 if (lstrlenW(cache_path) > dwBufLength)
903 return E_OUTOFMEMORY;
904
905 lstrcpyW(szFileName, cache_path);
906
907 return S_OK;
908}
#define MAX_PATH
Definition: compat.h:34
#define lstrcpyW
Definition: compat.h:749
static const WCHAR *const ext[]
Definition: module.c:53
LPWSTR WINAPI PathFindExtensionW(const WCHAR *path)
Definition: path.c:1250
BOOL WINAPI CreateUrlCacheEntryW(LPCWSTR lpszUrlName, DWORD dwExpectedFileSize, LPCWSTR lpszFileExtension, LPWSTR lpszFileName, DWORD dwReserved)
Definition: urlcache.c:2815
BOOL WINAPI CommitUrlCacheEntryW(LPCWSTR lpszUrlName, LPCWSTR lpszLocalFileName, FILETIME ExpireTime, FILETIME LastModifiedTime, DWORD CacheEntryType, LPWSTR lpHeaderInfo, DWORD dwHeaderSize, LPCWSTR lpszFileExtension, LPCWSTR lpszOriginalUrl)
Definition: urlcache.c:3085
DWORD dwHighDateTime
Definition: mapidefs.h:66
DWORD dwLowDateTime
Definition: mapidefs.h:65
HRESULT WINAPI URLDownloadToFileW(LPUNKNOWN pCaller, LPCWSTR szURL, LPCWSTR szFileName, DWORD dwReserved, LPBINDSTATUSCALLBACK lpfnCB)
Definition: download.c:427
#define NORMAL_CACHE_ENTRY
Definition: wininet.h:2087

Referenced by msi_download_file(), and URLDownloadToCacheFileA().

◆ URLDownloadToFileA()

HRESULT WINAPI URLDownloadToFileA ( LPUNKNOWN  pCaller,
LPCSTR  szURL,
LPCSTR  szFileName,
DWORD  dwReserved,
LPBINDSTATUSCALLBACK  lpfnCB 
)

Definition at line 482 of file download.c.

484{
485 LPWSTR urlW, file_nameW;
487
488 TRACE("(%p %s %s %ld %p)\n", pCaller, debugstr_a(szURL), debugstr_a(szFileName), dwReserved, lpfnCB);
489
490 urlW = strdupAtoW(szURL);
491 file_nameW = strdupAtoW(szFileName);
492
493 hres = URLDownloadToFileW(pCaller, urlW, file_nameW, dwReserved, lpfnCB);
494
495 free(urlW);
496 free(file_nameW);
497
498 return hres;
499}
static WCHAR * strdupAtoW(const char *str)
Definition: main.c:61

◆ URLDownloadToFileW()

HRESULT WINAPI URLDownloadToFileW ( LPUNKNOWN  pCaller,
LPCWSTR  szURL,
LPCWSTR  szFileName,
DWORD  dwReserved,
LPBINDSTATUSCALLBACK  lpfnCB 
)

Definition at line 427 of file download.c.

429{
431 IUnknown *unk;
432 IMoniker *mon;
433 IBindCtx *bindctx;
435
436 TRACE("(%p %s %s %ld %p)\n", pCaller, debugstr_w(szURL), debugstr_w(szFileName), dwReserved, lpfnCB);
437
438 if(pCaller)
439 FIXME("pCaller not supported\n");
440
441 hres = DownloadBSC_Create(lpfnCB, szFileName, &callback);
442 if(FAILED(hres))
443 return hres;
444
445 hres = CreateAsyncBindCtx(0, &callback->IBindStatusCallback_iface, NULL, &bindctx);
446 IBindStatusCallback_Release(&callback->IBindStatusCallback_iface);
447 if(FAILED(hres))
448 return hres;
449
450 hres = CreateURLMoniker(NULL, szURL, &mon);
451 if(FAILED(hres)) {
452 IBindCtx_Release(bindctx);
453 return hres;
454 }
455
456 hres = IMoniker_BindToStorage(mon, bindctx, NULL, &IID_IUnknown, (void**)&unk);
457 IMoniker_Release(mon);
458 IBindCtx_Release(bindctx);
459
460 if(unk)
461 IUnknown_Release(unk);
462
463 return hres == MK_S_ASYNCHRONOUS ? S_OK : hres;
464}
const GUID IID_IUnknown
HRESULT WINAPI CreateURLMoniker(IMoniker *pmkContext, LPCWSTR szURL, IMoniker **ppmk)
Definition: umon.c:747
HRESULT WINAPI CreateAsyncBindCtx(DWORD reserved, IBindStatusCallback *callback, IEnumFORMATETC *format, IBindCtx **pbind)
Definition: bindctx.c:899
static HRESULT DownloadBSC_Create(IBindStatusCallback *callback, LPCWSTR file_name, DownloadBSC **ret_callback)
Definition: download.c:333

Referenced by download_proc(), test_URLDownloadToFile(), test_URLDownloadToFile_abort(), URLDownloadToCacheFileW(), and URLDownloadToFileA().

◆ UrlMkGetSessionOption()

HRESULT WINAPI UrlMkGetSessionOption ( DWORD  dwOption,
LPVOID  pBuffer,
DWORD  dwBufferLength,
DWORD pdwBufferLength,
DWORD  dwReserved 
)

Definition at line 631 of file session.c.

633{
634 TRACE("(%lx, %p, %ld, %p)\n", dwOption, pBuffer, dwBufferLength, pdwBufferLength);
635
636 if(dwReserved)
637 WARN("dwReserved = %ld\n", dwReserved);
638
639 switch(dwOption) {
640 case URLMON_OPTION_USERAGENT: {
642 DWORD size;
643
644 if(!pdwBufferLength)
645 return E_INVALIDARG;
646
648
650 if(user_agent) {
652 *pdwBufferLength = size;
653 if(size <= dwBufferLength) {
654 if(pBuffer)
656 else
658 }
659 }
660
662
663 /* Tests prove that we have to return E_OUTOFMEMORY on success. */
664 return hres;
665 }
666 case URLMON_OPTION_URL_ENCODING: {
667 DWORD encoding = 0;
668
669 if(!pBuffer || dwBufferLength < sizeof(DWORD) || !pdwBufferLength)
670 return E_INVALIDARG;
671
672 if(!get_url_encoding(HKEY_CURRENT_USER, &encoding))
674
675 *pdwBufferLength = sizeof(DWORD);
676 *(DWORD*)pBuffer = encoding ? URL_ENCODING_DISABLE_UTF8 : URL_ENCODING_ENABLE_UTF8;
677 return S_OK;
678 }
679 default:
680 FIXME("unsupported option %lx\n", dwOption);
681 }
682
683 return E_INVALIDARG;
684}
static CRITICAL_SECTION session_cs
Definition: session.c:46
static BOOL get_url_encoding(HKEY root, DWORD *encoding)
Definition: session.c:491
static void ensure_user_agent(void)
Definition: session.c:605
static LPWSTR user_agent
Definition: session.c:506
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12
#define HKEY_CURRENT_USER
Definition: winreg.h:11

◆ UrlMkSetSessionOption()

HRESULT WINAPI UrlMkSetSessionOption ( DWORD  dwOption,
LPVOID  pBuffer,
DWORD  dwBufferLength,
DWORD  Reserved 
)

Definition at line 689 of file session.c.

691{
692 TRACE("(%lx %p %lx)\n", dwOption, pBuffer, dwBufferLength);
693
694 switch(dwOption) {
695 case URLMON_OPTION_USERAGENT: {
696 LPWSTR new_user_agent;
697 char *buf = pBuffer;
698 DWORD len, size;
699
700 if(!pBuffer || !dwBufferLength)
701 return E_INVALIDARG;
702
703 for(len=0; len<dwBufferLength && buf[len]; len++);
704
705 TRACE("Setting user agent %s\n", debugstr_an(buf, len));
706
708 new_user_agent = malloc((size + 1) * sizeof(WCHAR));
709 if(!new_user_agent)
710 return E_OUTOFMEMORY;
711 MultiByteToWideChar(CP_ACP, 0, buf, len, new_user_agent, size);
712 new_user_agent[size] = 0;
713
715
717 user_agent = new_user_agent;
720
722 break;
723 }
724 default:
725 FIXME("Unknown option %lx\n", dwOption);
726 return E_INVALIDARG;
727 }
728
729 return S_OK;
730}
#define TRUE
Definition: types.h:120
static __inline const char * debugstr_an(const char *s, int n)
Definition: compat.h:55
void update_user_agent(WCHAR *user_agent)
Definition: protocol.c:307
static BOOL user_agent_set
Definition: session.c:507
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751

Referenced by test_MapBrowserEmulationModeToUserAgent(), and test_user_agent().

◆ URLOpenBlockingStreamA()

HRESULT WINAPI URLOpenBlockingStreamA ( LPUNKNOWN  pCaller,
LPCSTR  szURL,
LPSTREAM ppStream,
DWORD  dwReserved,
LPBINDSTATUSCALLBACK  lpfnCB 
)

Definition at line 258 of file umstream.c.

261{
262 LPWSTR szURLW;
263 int len;
264 HRESULT hr;
265
266 TRACE("(%p, %s, %p, 0x%lx, %p)\n", pCaller, szURL, ppStream, dwReserved, lpfnCB);
267
268 if (!szURL || !ppStream)
269 return E_INVALIDARG;
270
271 len = MultiByteToWideChar(CP_ACP, 0, szURL, -1, NULL, 0);
272 szURLW = malloc(len * sizeof(WCHAR));
273 if (!szURLW)
274 {
275 *ppStream = NULL;
276 return E_OUTOFMEMORY;
277 }
278 MultiByteToWideChar(CP_ACP, 0, szURL, -1, szURLW, len);
279
280 hr = URLOpenBlockingStreamW(pCaller, szURLW, ppStream, dwReserved, lpfnCB);
281
282 free(szURLW);
283
284 return hr;
285}
HRESULT WINAPI URLOpenBlockingStreamW(LPUNKNOWN pCaller, LPCWSTR szURL, LPSTREAM *ppStream, DWORD dwReserved, LPBINDSTATUSCALLBACK lpfnCB)
Definition: umstream.c:290

◆ URLOpenBlockingStreamW()

HRESULT WINAPI URLOpenBlockingStreamW ( LPUNKNOWN  pCaller,
LPCWSTR  szURL,
LPSTREAM ppStream,
DWORD  dwReserved,
LPBINDSTATUSCALLBACK  lpfnCB 
)

Definition at line 290 of file umstream.c.

293{
294 ProxyBindStatusCallback blocking_bsc;
295
296 TRACE("(%p, %s, %p, 0x%lx, %p)\n", pCaller, debugstr_w(szURL), ppStream,
297 dwReserved, lpfnCB);
298
299 if (!szURL || !ppStream)
300 return E_INVALIDARG;
301
303 blocking_bsc.pBSC = lpfnCB;
304
305 return URLStartDownload(szURL, ppStream, &blocking_bsc.IBindStatusCallback_iface);
306}
IBindStatusCallback IBindStatusCallback_iface
Definition: umstream.c:35
IBindStatusCallback * pBSC
Definition: umstream.c:37
static HRESULT URLStartDownload(LPCWSTR szURL, LPSTREAM *ppStream, IBindStatusCallback *pBSC)
Definition: umstream.c:217
static const IBindStatusCallbackVtbl BlockingBindStatusCallbackVtbl
Definition: umstream.c:167

Referenced by test_URLOpenBlockingStreamW(), and URLOpenBlockingStreamA().

◆ URLOpenPullStreamA()

HRESULT WINAPI URLOpenPullStreamA ( LPUNKNOWN  ,
LPCSTR  ,
DWORD  ,
LPBINDSTATUSCALLBACK   
)

◆ URLOpenPullStreamW()

HRESULT WINAPI URLOpenPullStreamW ( LPUNKNOWN  ,
LPCWSTR  ,
DWORD  ,
LPBINDSTATUSCALLBACK   
)

◆ URLOpenStreamA()

HRESULT WINAPI URLOpenStreamA ( LPUNKNOWN  pCaller,
LPCSTR  szURL,
DWORD  dwReserved,
LPBINDSTATUSCALLBACK  lpfnCB 
)

Definition at line 311 of file umstream.c.

313{
314 LPWSTR szURLW;
315 int len;
316 HRESULT hr;
317
318 TRACE("(%p, %s, 0x%lx, %p)\n", pCaller, szURL, dwReserved, lpfnCB);
319
320 if (!szURL)
321 return E_INVALIDARG;
322
323 len = MultiByteToWideChar(CP_ACP, 0, szURL, -1, NULL, 0);
324 szURLW = malloc(len * sizeof(WCHAR));
325 if (!szURLW)
326 return E_OUTOFMEMORY;
327 MultiByteToWideChar(CP_ACP, 0, szURL, -1, szURLW, len);
328
329 hr = URLOpenStreamW(pCaller, szURLW, dwReserved, lpfnCB);
330
331 free(szURLW);
332
333 return hr;
334}
HRESULT WINAPI URLOpenStreamW(LPUNKNOWN pCaller, LPCWSTR szURL, DWORD dwReserved, LPBINDSTATUSCALLBACK lpfnCB)
Definition: umstream.c:339

◆ URLOpenStreamW()

HRESULT WINAPI URLOpenStreamW ( LPUNKNOWN  pCaller,
LPCWSTR  szURL,
DWORD  dwReserved,
LPBINDSTATUSCALLBACK  lpfnCB 
)

Definition at line 339 of file umstream.c.

341{
342 HRESULT hr;
343 ProxyBindStatusCallback async_bsc;
344 IStream *pStream;
345
346 TRACE("(%p, %s, 0x%lx, %p)\n", pCaller, debugstr_w(szURL), dwReserved,
347 lpfnCB);
348
349 if (!szURL)
350 return E_INVALIDARG;
351
353 async_bsc.pBSC = lpfnCB;
354
355 hr = URLStartDownload(szURL, &pStream, &async_bsc.IBindStatusCallback_iface);
356 if (SUCCEEDED(hr) && pStream)
357 IStream_Release(pStream);
358
359 return hr;
360}
static const IBindStatusCallbackVtbl AsyncBindStatusCallbackVtbl
Definition: umstream.c:202

Referenced by test_URLOpenStreamW(), and URLOpenStreamA().

Variable Documentation

◆ dwAdState

DWORD dwAdState

Definition at line 1642 of file urlmon.idl.

◆ dwAdvertisedVersionLS

DWORD dwAdvertisedVersionLS

Definition at line 1651 of file urlmon.idl.

◆ dwAdvertisedVersionMS

DWORD dwAdvertisedVersionMS

Definition at line 1650 of file urlmon.idl.

◆ dwFlags

Definition at line 1641 of file urlmon.idl.

◆ dwInstalledVersionLS

DWORD dwInstalledVersionLS

Definition at line 1647 of file urlmon.idl.

◆ dwInstalledVersionMS

DWORD dwInstalledVersionMS

Definition at line 1646 of file urlmon.idl.

◆ dwReserved

Definition at line 1652 of file urlmon.idl.

◆ dwUpdateVersionLS

DWORD dwUpdateVersionLS

Definition at line 1649 of file urlmon.idl.

◆ dwUpdateVersionMS

DWORD dwUpdateVersionMS

Definition at line 1648 of file urlmon.idl.

◆ GUID_CUSTOM_CONFIRMOBJECTSAFETY

EXTERN_C const GUID GUID_CUSTOM_CONFIRMOBJECTSAFETY

Definition at line 2149 of file urlmon.idl.

◆ LPSOFTDISTINFO

* LPSOFTDISTINFO

Definition at line 1653 of file urlmon.idl.

◆ SOFTDISTINFO

SOFTDISTINFO

Definition at line 1653 of file urlmon.idl.

◆ szAbstract

LPWSTR szAbstract

Definition at line 1644 of file urlmon.idl.

◆ szHREF

LPWSTR szHREF

Definition at line 1645 of file urlmon.idl.

◆ szTitle

LPWSTR szTitle

Definition at line 1643 of file urlmon.idl.

Referenced by EventDetailsCtrl().