次の方法で共有


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: シェル アイテムを作成するには、 SHCreateItemFromIDListSHCreateItemFromParsingNameSHCreateItemFromRelativeNameSHCreateItemInKnownFolder、または 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

こちらもご覧ください

IShellItem2::GetPropertyStoreWithCreateObject

プロパティ ハンドラーの初期化