//------------------------------------------------------------------------------------------------- | |
// <copyright file="uriutil.h" company="Outercurve Foundation"> | |
// 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. | |
// </copyright> | |
// | |
// <summary> | |
// URI helper functions. | |
// </summary> | |
//------------------------------------------------------------------------------------------------- | |
#pragma once | |
#include "wininet.h" | |
#ifdef __cplusplus | |
extern "C" { | |
#endif | |
enum URI_PROTOCOL | |
{ | |
URI_PROTOCOL_UNKNOWN, | |
URI_PROTOCOL_FILE, | |
URI_PROTOCOL_FTP, | |
URI_PROTOCOL_HTTP, | |
URI_PROTOCOL_HTTPS, | |
URI_PROTOCOL_LOCAL, | |
URI_PROTOCOL_UNC | |
}; | |
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 | |