//------------------------------------------------------------------------------------------------- // // Copyright (c) 2004, Outercurve Foundation. // This software is released under Microsoft Reciprocal License (MS-RL). // The license and further copyright text can be found in the file // LICENSE.TXT at the root directory of the distribution. // // // // URI helper functions. // //------------------------------------------------------------------------------------------------- #pragma once #include "wininet.h" #ifdef __cplusplus extern "C" { #endif typedef enum URI_PROTOCOL { URI_PROTOCOL_UNKNOWN, URI_PROTOCOL_FILE, URI_PROTOCOL_FTP, URI_PROTOCOL_HTTP, URI_PROTOCOL_HTTPS, URI_PROTOCOL_LOCAL, URI_PROTOCOL_UNC } URI_PROTOCOL; typedef struct _URI_INFO { INTERNET_SCHEME scheme; LPWSTR sczHostName; INTERNET_PORT port; LPWSTR sczUser; LPWSTR sczPassword; LPWSTR sczPath; LPWSTR sczQueryString; } URI_INFO; HRESULT DAPI UriCanonicalize( __inout_z LPWSTR* psczUri ); HRESULT DAPI UriCrack( __in_z LPCWSTR wzUri, __out_opt INTERNET_SCHEME* pScheme, __deref_opt_out_z LPWSTR* psczHostName, __out_opt INTERNET_PORT* pPort, __deref_opt_out_z LPWSTR* psczUser, __deref_opt_out_z LPWSTR* psczPassword, __deref_opt_out_z LPWSTR* psczPath, __deref_opt_out_z LPWSTR* psczQueryString ); HRESULT DAPI UriCrackEx( __in_z LPCWSTR wzUri, __in URI_INFO* pUriInfo ); void DAPI UriInfoUninitialize( __in URI_INFO* pUriInfo ); HRESULT DAPI UriCreate( __inout_z LPWSTR* psczUri, __in INTERNET_SCHEME scheme, __in_z_opt LPWSTR wzHostName, __in INTERNET_PORT port, __in_z_opt LPWSTR wzUser, __in_z_opt LPWSTR wzPassword, __in_z_opt LPWSTR wzPath, __in_z_opt LPWSTR wzQueryString ); HRESULT DAPI UriCanonicalize( __inout_z LPWSTR* psczUri ); HRESULT DAPI UriFile( __deref_out_z LPWSTR* psczFile, __in_z LPCWSTR wzUri ); HRESULT DAPI UriProtocol( __in_z LPCWSTR wzUri, __out URI_PROTOCOL* pProtocol ); HRESULT DAPI UriRoot( __in_z LPCWSTR wzUri, __out LPWSTR* ppwzRoot, __out_opt URI_PROTOCOL* pProtocol ); HRESULT DAPI UriResolve( __in_z LPCWSTR wzUri, __in_opt LPCWSTR wzBaseUri, __out LPWSTR* ppwzResolvedUri, __out_opt const URI_PROTOCOL* pResolvedProtocol ); #ifdef __cplusplus } #endif