PROPSETFLAG 定数

PROPSETFLAG 定数は、プロパティ セットの特性を定義します。 次の表に示す値は、IPropertySetStorage メソッド、StgCreatePropStg 関数、および StgOpenPropStg 関数の grfFlags パラメーターで使用されます。

定数/値 説明
PROPSETFLAG_DEFAULT
0
指定しない場合、既定では単純なプロパティ値のみがプロパティ セットに書き込まれます。 単純なプロパティ値を使用すると、 IPropertySetStorage の複合ファイルとスタンドアロン実装でプロパティ セットが処理されなくなります。 e 以外のプロパティ値は、この目的で使用する必要があります。
PROPSETFLAG_NONSIMPLE
1
指定した場合、非シンプルなプロパティ値をプロパティ セットに書き込み、プロパティ セットをストレージ オブジェクトに保存できます。 単純でないプロパティ値には、varTYPE がVT_STORAGE、VT_STREAM、VT_STORED_OBJECT、またはVT_STREAMED_OBJECTが含まれます。 このフラグを指定しない場合、単純でない型をプロパティ セットに書き込むことはできません。 複合ファイルとスタンドアロンの実装では、プロパティ セットは 、PROPSETFLAG_NONSIMPLE が指定されている場合にのみ処理できます。
PROPSETFLAG_ANSI
2
指定した場合、プロパティ セット内で明示的に Unicode ではない文字列値 (VT_LPWSTR以外のもの) はすべて、現在のシステム ANSI コード ページと共に格納されます。 詳細については、 GetACP を参照してください。 この値を使用することはお勧めしません。 詳細については、「解説」を参照してください。
この値がない場合、新しいプロパティ セット内の文字列値は Unicode に格納されます。 プロパティ関連のインターフェイスを使用するクライアントが、ANSI コード ページに存在する可能性がある OLE2 概要情報などの標準プロパティ セットと相互運用できるように、この値が提供する制御の程度が必要です。
PROPSETFLAG_UNBUFFERED
4
StgCreatePropStg 関数と StgOpenPropStg 関数でのみ使用されます。つまり、プロパティ セット インターフェイスのスタンドアロン実装の場合です。 これらの関数で指定した場合、プロパティ セットに対する変更はバッファーされません。 代わりに、変更は常にプロパティ セットに直接書き込まれます。 プロパティ セット IPropertyStorage メソッドを呼び出すと、そのメソッドが変更されます。 ただし、既定では、変更は内部プロパティ セット キャッシュにバッファーされ、 その後、IPropertyStorage::Commit メソッドが呼び出されたときにプロパティ セットに書き込まれます。
PROPSETFLAG_UNBUFFERED設定すると、プロパティ セットの内部バッファーがプロパティ セットに変更されるたびに自動的にフラッシュされるため、パフォーマンスが低下します。 ただし、変更を直接記述すると、調整の問題を防ぐことができます。 たとえば、ストレージ オブジェクトがトランザクション モードで開き、プロパティ セットがバッファーに格納されている場合などです。 次に、ストレージ オブジェクトで IStorage::Commit メソッドを呼び出すと、まだフラッシュされていないバッファー内にあるため、プロパティ セットの変更はトランザクションの一部として取得されません。 IStorage::Commit を呼び出す前に IPropertyStorage::Commit を呼び出して、ストレージに変更をコミットする前にプロパティ セット バッファーをフラッシュする必要があります。 2 つの呼び出しを行う代わりに、 PROPSETFLAG_UNBUFFERED を設定して、変更が常にプロパティ セットに直接書き込まれ、プロパティ セットの内部キャッシュにバッファーされないようにすることができます。 その後、トランザクションストレージがコミットされると、変更が取得されます。
PROPSETFLAG_CASE_SENSITIVE
8
指定した場合、プロパティ名では大文字と小文字が区別されます。 大文字と小文字を区別するプロパティ名は、バージョン 1 のプロパティ セットのシリアル化形式でのみ使用できます。 詳細については、「 プロパティ セットのシリアル化」を参照してください。

解説

これらの値は、プロパティ セットの作成方法と開き方を決定するビットごとの操作を使用して設定およびチェックできます。 プロパティ セットは、 IPropertySetStorage::Create メソッドまたは StgCreatePropStg 関数を使用して作成されます。 これらは、IPropertySetStorage::Open メソッドまたは StgOpenPropStg 関数を使用して開かれます。

grfFlags パラメーターに PROPSETFLAG_ANSI フラグを設定しないことで、プロパティ セットを Unicode として作成することをお勧めします。 また、VT_LPSTR値の使用は避け、代わりにVT_LPWSTR値を使用することをお勧めします。 プロパティ セットのコード ページが Unicode の場合、VT_LPSTR文字列値は格納時に Unicode に変換され、取得時にマルチバイト文字列値に変換されます。 プロパティ セットのコード ページが Unicode でない場合、プロパティ名、VT_BSTR文字列、および非シンプルなプロパティ値は、格納時にマルチバイト文字列に変換され、取得時に Unicode に変換されます。これらはすべて、現在のシステム ANSI コード ページを使用します。

要件

要件
サポートされている最小のクライアント
Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows 2000 Server [デスクトップ アプリのみ]
ヘッダー
Propidl.h

関連項目

FmtIdToPropStgName

IPropertySetStorage::Create

IPropertySetStorage::Open

PropStgNameToFmtId

StgCreatePropSetStg

StgCreatePropStg

StgOpenPropStg