次の方法で共有


IPropertyStorage::WritePropertyNames メソッド (propidl.h)

WritePropertyNames メソッドは、現在のプロパティ セット内のプロパティ ID の指定された配列に文字列 IPropertyStorage 名を割り当てます。

構文

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

パラメーター

[in] cpropid

配列 rgpropid の入力時のサイズ。 0 を指定できます。 ただし、ゼロにすると、このメソッドは非動作になります。

[in] rgpropid

名前を設定するプロパティ ID の配列。

[in] rglpwstrName

rgpropid 配列内の対応するプロパティ ID に割り当てられる新しい名前の配列。 これらの名前は 255 文字を超えることはできません ( NULL 終端記号は含まれません)。

戻り値

このメソッドは、次に加えて、標準の戻り値 E_UNEXPECTEDをサポートしています。

解説

プロパティ セットとメモリ管理の詳細については、「プロパティ セット の管理」を参照してください。

IPropertyStorage::WritePropertyNames は、 rgpropid 配列内の メソッドに渡されるプロパティ ID に文字列名を割り当てます。 rglpwstrName 配列内の各文字列名を rgpropid のそれぞれのプロパティ ID に関連付けます。 プロパティ ストレージ オブジェクトに現在存在しないプロパティ ID の名前を定義することは明示的に有効です。

また、既存の文字列名のマッピングを変更することも有効です (大文字と小文字を区別しない一致によって決定されます)。 つまり、 WritePropertyNames メソッドを使用して、既存の名前を新しいプロパティ ID にマップしたり、ディクショナリに既に名前を持つプロパティ ID に新しい名前をマップしたりすることができます。 どちらの場合も、元のマッピングが削除されます。 プロパティ名は、プロパティ セット内で一意である必要があります (プロパティ ID と同様)。

文字列プロパティ名のストレージでは、大文字と小文字が保持されます。 PROPSETFLAG_CASE_SENSITIVEが IPropertySetStorage::Create に渡されない限り、プロパティ セット名は既定で大文字と小文字が区別されません。 大文字と小文字を区別しないプロパティ セットの場合、呼び出し元によって渡される名前文字列は、 PID_LOCALE プロパティで指定されているプロパティ セットのロケールに従って解釈されます。 プロパティ セットにロケール プロパティがない場合、現在のユーザーは既定で想定されます。 文字列プロパティ名の長さは 128 文字に制限されています。 0x001Fで0x0001バイナリ Unicode 文字で始まるプロパティ名は、将来の使用のために予約されています。

rgpropid 配列パラメーターの要素の値が 0xffffffff (PID_ILLEGAL) に設定されている場合、対応する名前は IPropertyStorage::WritePropertyNames によって無視されます。 たとえば、このメソッドが cpropid パラメーター 3 で呼び出され、配列の最初の要素 rgpropid[1]がPID_ILLEGALに設定されている場合、2 つのプロパティ名のみが書き込まれます。 rgpropid[1] 要素は無視されます。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー propidl.h (Objbase.h、Propidlbase.h を含む)
Library Uuid.lib
[DLL] Ole32.dll

関連項目

IPropertyStorage

IPropertyStorage::ReadMultiple

IPropertyStorage::ReadPropertyNames

IPropertyStorage::WriteMultiple

サンプル

WriteRead サンプル