次の方法で共有


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 

このマクロを使用する場合は、次の 2 つのオプションがあります。

  • プロジェクトに Initguid.h を含めます。 この場合、マクロはプロパティ キー名を宣言し、プロパティ キーを定義します。 この方法はほとんどの場合に機能しますが、大規模で複雑なプロジェクトでは名前の競合が発生する可能性があります。
  • Initguid.h は含めないでください。 代わりに、.lib ファイル名拡張子を持つ静的ライブラリ ファイルに定義をコンパイルします。 この場合、マクロはコンパイラで使用するプロパティ キー名を宣言しますが、プロジェクトのリンカー設定で .lib ファイルを参照する必要があります。 この方法は、オプション 1 で説明されている名前付けの競合を回避するため、複数のモジュールを使用する大規模なプロジェクトで最適に機能します。
Initguid.h を含めず、ライブラリ ファイルを参照せずにマクロを使用すると、LNK2001リンカー エラーが発生します。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー propkeydef.h