다음을 통해 공유


UrlFixupW 함수(shlwapi.h)

[UrlFixupW 는 요구 사항 섹션에 지정된 운영 체제에서 사용할 수 있습니다. 이후 버전에서는 변경되거나 제공되지 않을 수 있습니다.]

프로토콜 식별자가 잘못된 URL을 수정하려고 시도합니다. 예를 들어 는 htttp 로 변경됩니다 http.

구문

LWSTDAPI UrlFixupW(
  [in]  PCWSTR pcszUrl,
  [out] PWSTR  pszTranslatedUrl,
        DWORD  cchMax
);

매개 변수

[in] pcszUrl

형식: PCWSTR

수정할 URL을 포함하는 null로 끝나는 문자열에 대한 포인터입니다. 이 문자열은 종결 NULL 문자를 포함하여 길이가 INTERNET_MAX_PATH_LENGTH 문자를 초과해서는 안됩니다.

[out] pszTranslatedUrl

형식: PWSTR

이 함수가 성공적으로 반환될 때 복사된 문자를 수신하는 버퍼에 대한 포인터입니다. 버퍼는 종료되는 NULL 문자를 포함하여 cchMax 매개 변수에 지정된 WCHAR 문자 수를 포함할 수 있을 만큼 커야 합니다. 이 매개 변수는 pcszUrl 매개 변수와 같아서 URL을 수정할 수 있습니다. pszTranslatedUrlpcszUrl과 같지 않으면 pszTranslatedUrl이 가리키는 버퍼가 pcszUrl이 가리키는 버퍼와 겹치지 않아야 합니다.

cchMax

형식:DWORD

pszTranslatedUrl이 가리키는 버퍼에 포함될 수 있는 WCHAR 문자 수입니다. 이 매개 변수는 0보다 커야 합니다.

반환 값

형식: HRESULT

제안된 URL이 이미 허용되었거나 성공적으로 수정된 경우 S_OK 반환합니다. pszTranslatedUrl 버퍼에는 수정된 URL 또는 수정이 필요하지 않은 경우 원래 URL이 포함됩니다. 제안된 URL을 충분히 인식하여 수정할 수 없는 경우 S_FALSE 반환합니다. 그렇지 않으면 표준 COM 오류 코드를 반환합니다.

설명

UrlFixup 함수는 URL_SCHEME 열거형에서 지정한 체계를 인식합니다.

프로토콜 식별자 섹션의 첫 번째 문자에 우선 순위가 지정되므로 htp 대신 ftp로 변환 http 됩니다.

참고 결정적 데이터 변환에는 이 함수를 사용하지 마세요. UrlFixupW에서 사용하는 추론은 한 릴리스에서 다음 릴리스로 변경될 수 있습니다. 함수는 잘못된 사용자 입력을 수정하는 데만 사용해야 합니다.
 
이 함수는 유니코드 버전에서만 사용할 수 있습니다.

예제

이 예제에서는 UrlFixupW를 사용하는 방법을 보여 줍니다. 마지막 4개의 자동 고침은 사용자가 의도한 것이 아니었을 것이며 함수에서 사용하는 추론의 제한을 보여 줍니다.


#include <windows.h>
#include <shlwapi.h>
#include <stdio.h>
#include <tchar.h>

void sample(LPCWSTR pszUrl)
{
    WCHAR szBuf[256];
    
    HRESULT hr = UrlFixupW(pszUrl, szBuf, 256);
    if (hr == S_OK) 
    {
        wprintf(L"%-35s %s\n", pszUrl, szBuf);
    } 
    else 
    {
        wprintf(L"%-35s failed\n", pszUrl);
    }
}

int __cdecl main()
{
    sample(L"http://www.microsoft.com");
    sample(L"mail:someone@example.com");
    sample(L"abc:def");
    sample(L"someone@example.com");
    sample(L"htpp:wwwmicrosoft.com");
    sample(L"htps:\\\\www.microsoft.com");
    sample(L"http:someone@example.com");

    return 0;
}

..................................

This example might produce the following output:

http://www.microsoft.com    http://www.microsoft.com
http:www.microsoft.com      http://www.microsoft.com
mail:someone@example.com    mailto:someone@example.com
abc:def                     failed
someone@example.com         failed
htpp:wwwmicrosoft.com       http://wwwmicrosoft.com
htps:\\www.microsoft.com    http://www.microsoft.com
http:someone@example.com    http://someone@example.com
                

요구 사항

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