PSGetItemPropertyHandlerWithCreateObject 関数 (propsys.h)
シェル項目のプロパティ ハンドラーを取得します。
構文
PSSTDAPI PSGetItemPropertyHandlerWithCreateObject(
[in] IUnknown *punkItem,
[in] BOOL fReadWrite,
[in] IUnknown *punkCreateObject,
[in] REFIID riid,
[out] void **ppv
);
パラメーター
[in] punkItem
種類: IUnknown*
IShellItem をサポートするシェル項目の IUnknown インターフェイスへのポインター。
Windows XP:SHCreateShellItem を使用してシェル 項目を作成します。
Windows Vista: シェル アイテムを作成するには、 SHCreateItemFromIDList、 SHCreateItemFromParsingName、 SHCreateItemFromRelativeName、 SHCreateItemInKnownFolder、または SHCreateItemWithParent を使用します。
[in] fReadWrite
種類: BOOL
読 み取り/書き込みプロパティ ハンドラーを取得する場合は TRUE。 読 み取り専用プロパティ ハンドラーを取得する場合は FALSE。
[in] punkCreateObject
種類: IUnknown*
ICreateObject をサポートするクラス ファクトリ オブジェクトの IUnknown インターフェイスへのポインター。
[in] riid
種類: REFIID
ppv を介して取得するインターフェイスの IID への参照。
[out] ppv
型: void**
この関数が正常に返されると、 には riid で要求されたインターフェイス ポインターが含まれます。 これは通常、 IPropertyStore または IPropertyStoreCapabilities です。
戻り値
種類: PSSTDAPI
成功した場合 はS_OK を返し、それ以外の場合はエラー値を返します。
注釈
この関数は、 IPropertyStore とサポート インターフェイスを含む Microsoft Windows デスクトップ検索 (WDS) 再頒布可能パッケージの一部として Windows XP でサポートされています。 Windows Vista 以降でのみサポートされているアプリケーションの場合、 IShellItem2::GetPropertyStoreWithCreateObject は、返されるプロパティ ストアで豊富なプロパティ セットを提供するため、 PSGetItemPropertyHandlerWithCreateObject の代わりに IShellItem2::GetPropertyStoreWithCreateObject を使用することをお勧めします。
この関数は、GPS_HANDLERPROPERTIESONLY フラグを IShellItem2::GetPropertyStoreWithCreateObject に渡すこととほぼ同じです。
punkCreateObject パラメーターを使用すると、呼び出し元とは異なるコンテキストでプロパティ ストアを作成できます。 たとえば、 ICreateObject 実装により、プロパティ ストアが別のプロセスで作成される可能性があります。 このパラメーターは、それをサポートし、 の下 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers
に登録されているプロパティ ハンドラーにのみ使用されます。
PSGetItemPropertyHandlerWithCreateObject を呼び出す前に、CoInitialize または OleInitialize を使用してコンポーネント オブジェクト モデル (COM) を初期化する必要があります。 COM は、このオブジェクトの有効期間にわたって初期化されたままになります。
例
大規模なプログラムの一部として含める次の例では、 PSGetItemPropertyHandlerWithCreateObject を使用して項目のプロパティ ハンドラーを取得する方法を示します。
// IShellItem *psi;
// ICreateObject *pco;
// Assume variables pco and psi are valid and initialized.
IPropertyStore *pStore;
HRESULT hr = PSGetItemPropertyHandlerWithCreateObject(psi, FALSE, pco, IID_PPV_ARGS(&pStore));
if (SUCCEEDED(hr))
{
// pStore is now valid and contains properties exposed through the
// property handler for the item.
pStore->Release();
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | WINDOWS XP と SP2、Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 SP1 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | propsys.h |
Library | Propsys.lib |
[DLL] | Propsys.dll (バージョン 6.0 以降) |
再頒布可能パッケージ | Windows デスクトップ検索 (WDS) 3.0 |