다음을 통해 공유


WindowsCreateStringReference 함수(winstring.h)

지정된 문자열을 기반으로 새 문자열 참조를 만듭니다.

구문

HRESULT WindowsCreateStringReference(
  PCWSTR         sourceString,
  UINT32         length,
  HSTRING_HEADER *hstringHeader,
  HSTRING        *string
);

매개 변수

sourceString

형식: [in] PCWSTR

HSTRING의 원본으로 사용할 null로 종료된 문자열입니다.

길이 값이 0인 경우 NULL 값은 빈 문자열을 나타냅니다. 스택 프레임에 할당해야 합니다.

length

형식: [in] UINT32

sourceString의 길이(유니코드 문자)입니다. sourceStringNULL인 경우 0이어야 합니다. 0보다 큰 경우 sourceString 에는 종료 null 문자가 있어야 합니다.

hstringHeader

형식: [out] HSTRING_HEADER*

Windows 런타임 문자열을 문자열 참조 또는 패스트 패스 문자열로 식별하는 데 사용하는 구조체에 대한 포인터입니다.

string

형식: [out] HSTRING*

새로 만든 문자열에 대한 포인터이거나 오류가 발생하는 경우 NULL 입니다. 문자열의 기존 콘텐츠를 덮어씁니다. HSTRING은 표준 핸들 형식입니다.

반환 값

형식: HRESULT

이 함수는 이러한 값 중 하나를 반환할 수 있습니다.

반환 코드 Description
S_OK
HSTRING이 성공적으로 만들어졌습니다.
E_INVALIDARG
string 또는 hstringHeaderNULL이거나 문자열이 null로 종료되지 않습니다.
E_OUTOFMEMORY
HSTRING을 할당하지 못했습니다.
E_POINTER
sourceStringNULL 이고 길이 는 0이 아닙니다.

설명

WindowsCreateStringReference 함수를 사용하여 기존 문자열에서 HSTRING을 만듭니다. 이러한 종류의 HSTRING패스트 패스 문자열로 명명됩니다. WindowsCreateString 함수에서 만든 HSTRING과 달리 새 HSTRING의 백업 버퍼 수명은 Windows 런타임 관리되지 않습니다. 호출자는 힙 할당을 방지하고 메모리 누수 위험을 제거하기 위해 초기화되지 않은 HSTRING_HEADER 함께 스택 프레임에 sourceString을 할당합니다. 호출자는 연결된 HSTRING의 수명 동안 sourceStringhstringHeader의 내용이 변경되지 않도록 해야 합니다.

WindowsCreateStringReference 함수에서 만든 빠른 패스 HSTRING을 할당 해제하기 위해 WindowsDeleteString 함수를 호출할 필요가 없습니다.

HSTRING을 만들려면 sourceString경우 NULL을, 길이는 0을 전달합니다.

Windows 런타임 hstringHeader out 매개 변수에 반환되는 HSTRING_HEADER 구조를 사용하여 패스트 패스 문자열을 추적합니다. HSTRING_HEADER 내용을 변경하지 마세요.

요구 사항

   
지원되는 최소 클라이언트 Windows 8 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2012 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 winstring.h

추가 정보

WindowsCreateString

WindowsDeleteString