UrlCombineA 함수(shlwapi.h)

상대 URL 및 해당 기본값과 함께 제공된 경우 는 정식 형식으로 URL을 반환합니다.

구문

LWSTDAPI UrlCombineA(
  [in]            PCSTR pszBase,
  [in]            PCSTR pszRelative,
  [out, optional] PSTR  pszCombined,
  [in, out]       DWORD *pcchCombined,
                  DWORD dwFlags
);

매개 변수

[in] pszBase

형식: PCTSTR

기본 URL을 포함하는 최대 길이 INTERNET_MAX_URL_LENGTH null로 끝나는 문자열에 대한 포인터입니다.

[in] pszRelative

형식: PCTSTR

상대 URL을 포함하는 최대 길이 INTERNET_MAX_URL_LENGTH null로 끝나는 문자열에 대한 포인터입니다.

[out, optional] pszCombined

형식: PTSTR

이 함수가 성공적으로 반환될 때 결합된 URL을 포함하는 null로 끝나는 문자열을 수신하는 버퍼에 대한 포인터입니다.

[in, out] pcchCombined

형식: DWORD*

항목에서 pszCombined 버퍼의 문자 수로 설정된 값에 대한 포인터입니다. 함수가 성공적으로 반환되면 함수가 성공했는지 또는 E_POINTER 반환하는지에 따라 값이 달라집니다. 다른 반환 값의 경우 이 매개 변수의 값은 의미가 없습니다.

dwFlags

형식:DWORD

URL을 정식 형식으로 변환하는 방법을 지정하는 플래그입니다. 다음 플래그를 결합할 수 있습니다.

URL_DONT_SIMPLIFY(0x08000000)

'/./' 및 '/.를 처리합니다. URL 문자열의 /'은 탐색의 약식이 아니라 리터럴 문자입니다. 자세한 내용은 설명을 참조하세요.

URL_ESCAPE_PERCENT(0x00001000)

'%'의 발생을 이스케이프 시퀀스로 변환합니다.

URL_ESCAPE_SPACES_ONLY(0x04000000)

공백만 이스케이프 시퀀스로 바꿉니다. 이 플래그는 URL_ESCAPE_UNSAFE 보다 우선하지만 불투명 URL에는 적용되지 않습니다.

URL_ESCAPE_UNSAFE(0x20000000)

안전하지 않은 문자를 이스케이프 시퀀스로 바꿉니다. 안전하지 않은 문자는 인터넷을 통해 전송하는 동안 변경될 수 있는 문자이며 (<, , ", >#, {, }, |, , ^, ~, [, ], ') 문자를 포함합니다. 이 플래그는 불투명 URL을 포함하여 모든 URL에 적용됩니다.

URL_NO_META

URL_DONT_SIMPLIFY 같도록 정의됩니다.

URL_PLUGGABLE_PROTOCOL(0x40000000)

W3C 사양에 따라 URL을 클라이언트 정의 플러그형 프로토콜과 결합합니다. 이 플래그는 ftp, http, gopher 등의 표준 프로토콜에는 적용되지 않습니다. 이 플래그가 설정된 경우 UrlCombine 은 URL을 간소화하지 않으므로 URL_DONT_SIMPLIFY 설정할 필요가 없습니다.

URL_UNESCAPE(0x10000000)

두 가지 예외를 제외하고 URL에 포함된 모든 이스케이프 시퀀스를 이스케이프 해제합니다. '?' 및 '#'의 이스케이프 시퀀스는 이스케이프되지 않습니다. URL_ESCAPE_XXX 플래그 중 하나가 설정되면 두 URL이 먼저 이스케이프 해제된 다음 결합된 다음 이스케이프됩니다.

URL_ESCAPE_AS_UTF8(0x00040000)

Windows 7 이상. ASCII가 아닌 모든 문자를 UTF-8 등가물로 백분율로 인코딩합니다.

반환 값

형식: HRESULT

다음을 포함하여 표준 COM 오류 코드를 반환합니다.

반환 코드 Description
S_OK
pszCombined는 결합된 URL이 포함된 문자열을 가리킵니다. pcchCombined 값은 종결 NULL 문자를 계산하지 않고 문자열의 문자 수로 설정됩니다.
E_POINTER
버퍼가 너무 작습니다. pcchCombined 값은 종료되는 NULL 문자를 포함하여 버퍼가 포함할 수 있어야 하는 최소 문자 수로 설정됩니다.

설명

슬래시 사이의 항목은 계층 식별자로 처리됩니다. 마지막 항목은 문서 자체를 지정합니다. 더 많은 항목을 추가하려면 문서 이름 다음에 슬래시(/)를 입력해야 합니다. 그렇지 않으면 UrlCombine 이 한 문서를 다른 문서로 교환합니다. 예를 들면 다음과 같습니다.


hRetVal = UrlCombine(TEXT("http://xyz/test/abc"), 
                     TEXT("bar"), 
                     lpszCombined, 
                     &dwLength, 0);

앞의 코드는 URL을 반환합니다. http://xyz/test/bar. 결합된 URL http://xyz/test/abc/bar이 되도록 하려면 UrlCombine에 대해 다음 호출을 사용합니다.


hRetVal = UrlCombine(TEXT("http://xyz/test/abc/"), 
                     TEXT("bar"), 
                     lpszCombined, 
                     &dwLength, 0);

URL 문자열에 '/.가 포함된 경우 /' 또는 '/./', UrlCombine 은 일반적으로 문자를 URL 계층 구조에서 탐색을 표시한 것처럼 처리합니다. 함수는 URL을 결합하기 전에 URL을 간소화합니다. instance 경우 "/hello/cruel/.. /world"는 "/hello/world"로 간소화됩니다. URL_DONT_SIMPLIFY 플래그가 dwFlags에 설정된 경우 함수는 URL을 단순화하지 않습니다. 이 경우 "/hello/cruel/.. /world"는 그대로 남아 있습니다.

참고

shlwapi.h 헤더는 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 UrlCombine을 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional, Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 shlwapi.h
라이브러리 Shlwapi.lib
DLL Shlwapi.dll(버전 5.0 이상)

추가 정보

균일한 리소스 로케이터 처리

UrlCanonicalize