다음을 통해 공유


DEFINE_PROPERTYKEY 매크로(propkeydef.h)

FMTID(형식 식별자) 및 PID(속성 식별자)를 속성 키를 나타내는 PROPERTYKEY 구조로 압축하는 데 사용됩니다.

구문

void DEFINE_PROPERTYKEY(
   name,
   l,
   w1,
   w2,
   b1,
   b2,
   b3,
   b4,
   b5,
   b6,
   b7,
   b8,
   pid
);

매개 변수

name

속성 키를 나타내는 PROPERTYKEY 구조체의 이름입니다.

l

PROPERTYKEY 구조체의 fmtid 멤버에 대한 Data1 멤버의 값입니다.

w1

PROPERTYKEY 구조체의 fmtid 멤버에 대한 Data2 멤버의 값입니다.

w2

PROPERTYKEY 구조체의 fmtid 멤버에 대한 Data3 멤버의 값입니다.

b1

PROPERTYKEY 구조체의 fmtid 멤버에 대한 Data4[0] 멤버의 값입니다.

b2

PROPERTYKEY 구조체의 fmtid 멤버에 대한 Data4[1] 멤버의 값입니다.

b3

PROPERTYKEY 구조체의 fmtid 멤버에 대한 Data4[2] 멤버의 값입니다.

b4

PROPERTYKEY 구조체의 fmtid 멤버에 대한 Data4[3] 멤버의 값입니다.

b5

PROPERTYKEY 구조체의 fmtid 멤버에 대한 Data4[4] 멤버의 값입니다.

b6

PROPERTYKEY 구조체의 fmtid 멤버에 대한 Data4[5] 멤버의 값입니다.

b7

PROPERTYKEY 구조체의 fmtid 멤버에 대한 Data4[6] 멤버의 값입니다.

b8

PROPERTYKEY 구조체의 fmtid 멤버에 대한 Data4[7] 멤버의 값입니다.

pid

PID(속성 식별자)입니다. 이 값을 PID_FIRST_USABLE 설정하는 것이 좋습니다. 2보다 크거나 같은 값은 허용됩니다.

참고 값 0과 1은 예약되어 있으므로 사용하면 안 됩니다.
 

반환 값

없음

설명

DEFINE_PROPERTYKEY 매크로는 다음과 같이 정의됩니다.

#ifdef INITGUID
#define DEFINE_PROPERTYKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) \
EXTERN_C const PROPERTYKEY DECLSPEC_SELECTANY name = \
{ { l, w1, w2, { b1, b2,  b3,  b4,  b5,  b6,  b7,  b8 } }, pid }
#else
#define DEFINE_PROPERTYKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) \ 
EXTERN_C const PROPERTYKEY name
#endif // INITGUID 

이 매크로를 사용하는 경우 다음 두 가지 옵션이 있습니다.

  • 프로젝트에 Initguid.h를 포함합니다. 이 경우 매크로는 속성 키 이름을 선언하고 속성 키를 정의합니다. 이 방법은 대부분의 경우 작동하지만 크고 복잡한 프로젝트에서 명명 충돌이 발생할 수 있습니다.
  • Initguid.h를 포함하지 마세요. 대신 정의를 .lib 파일 이름 확장명을 가진 정적 라이브러리 파일로 컴파일합니다. 이 경우 매크로는 컴파일러에서 사용할 속성 키 이름을 선언하지만 프로젝트의 링커 설정에서 .lib 파일을 참조해야 합니다. 이 방법은 옵션 1에 언급된 명명 충돌을 방지하므로 여러 모듈을 사용하는 대규모 프로젝트에서 가장 잘 작동합니다.
Initguid.h를 포함하지 않고 라이브러리 파일을 참조하지 않고 매크로를 사용하면 LNK2001 링커 오류가 발생합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 propkeydef.h