111 lines
2.6 KiB
C
111 lines
2.6 KiB
C
//-------------------------------------------------------------------------------------------------
|
|
// <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
|
|
|