IPropertyStorage::WritePropertyNames 메서드(propidl.h)

WritePropertyNames 메서드는 문자열 IPropertyStorage 이름을 현재 속성 집합의 지정된 속성 ID 배열에 할당합니다.

구문

HRESULT WritePropertyNames(
  [in] ULONG             cpropid,
  [in] const PROPID []   rgpropid,
  [in] const LPOLESTR [] rglpwstrName
);

매개 변수

[in] cpropid

배열 rgpropid의 입력 크기입니다. 0일 수 있습니다. 그러나 0으로 설정하면 이 메서드가 작동하지 않습니다.

[in] rgpropid

이름을 설정할 속성 ID의 배열입니다.

[in] rglpwstrName

rgpropid 배열의 해당 속성 ID에 할당할 새 이름의 배열입니다. 이러한 이름은 255자를 초과할 수 없습니다( NULL 종결자를 포함하지 않음).

반환 값

이 메서드는 다음 외에도 E_UNEXPECTED 표준 반환 값을 지원합니다.

설명

속성 집합 및 메모리 관리에 대한 자세한 내용은 속성 집합 관리를 참조하세요.

IPropertyStorage::WritePropertyNamesrgpropid 배열의 메서드에 전달된 속성 ID에 문자열 이름을 할당합니다. rglpwstrName 배열의 각 문자열 이름을 rgpropid의 해당 속성 ID와 연결합니다. 현재 속성 스토리지 개체에 없는 속성 ID의 이름을 정의하는 것은 명시적으로 유효합니다.

기존 문자열 이름에 대한 매핑을 변경하는 것도 유효합니다(대/소문자를 구분하지 않는 일치 항목에 의해 결정됨). 즉, WritePropertyNames 메서드를 사용하여 기존 이름을 새 속성 ID에 매핑하거나 새 이름을 사전에 이미 이름이 있는 속성 ID에 매핑할 수 있습니다. 두 경우 모두 원래 매핑이 삭제됩니다. 속성 이름은 속성 집합 내에서 고유해야 합니다(속성 ID와 마찬가지로).

문자열 속성 이름의 스토리지는 대/소문자를 유지합니다. PROPSETFLAG_CASE_SENSITIVEIPropertySetStorage::Create에 전달되지 않는 한 속성 집합 이름은 기본적으로 대/소문자를 구분하지 않습니다. 대/소문자를 구분하지 않는 속성 집합의 경우 호출자가 전달한 이름 문자열은 PID_LOCALE 속성에 지정된 대로 속성 집합의 로캘에 따라 해석됩니다. 속성 집합에 로캘 속성이 없는 경우 현재 사용자는 기본적으로 가정됩니다. 문자열 속성 이름은 길이가 128자로 제한됩니다. 0x001F 통해 0x0001 이진 유니코드 문자로 시작하는 속성 이름은 나중에 사용할 수 있도록 예약되어 있습니다.

rgpropid 배열 매개 변수의 요소 값이 0xffffffff(PID_ILLEGAL)로 설정된 경우 해당 이름은 IPropertyStorage::WritePropertyNames에서 무시됩니다. 예를 들어 이 메서드가 cpropid 매개 변수 3으로 호출되지만 배열의 첫 번째 요소인 rgpropid[1]PID_ILLEGAL 로 설정된 경우 두 개의 속성 이름만 기록됩니다. rgpropid[1] 요소는 무시됩니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 propidl.h(Objbase.h, Propidlbase.h 포함)
라이브러리 Uuid.lib
DLL Ole32.dll

추가 정보

IPropertyStorage

IPropertyStorage::ReadMultiple

IPropertyStorage::ReadPropertyNames

IPropertyStorage::WriteMultiple

샘플

WriteRead 샘플