Freigeben über


PSGetItemPropertyHandlerWithCreateObject-Funktion (propsys.h)

Ruft einen Eigenschaftenhandler für ein Shellelement ab.

Syntax

PSSTDAPI PSGetItemPropertyHandlerWithCreateObject(
  [in]  IUnknown *punkItem,
  [in]  BOOL     fReadWrite,
  [in]  IUnknown *punkCreateObject,
  [in]  REFIID   riid,
  [out] void     **ppv
);

Parameter

[in] punkItem

Typ: IUnknown*

Ein Zeiger auf die IUnknown-Schnittstelle eines Shellelements, das IShellItem unterstützt.

Windows XP: Verwenden Sie SHCreateShellItem , um das Shellelement zu erstellen.

Windows Vista: Verwenden Sie SHCreateItemFromIDList, SHCreateItemFromParsingName, SHCreateItemFromRelativeName, SHCreateItemInKnownFolder oder SHCreateItemWithParent, um das Shell-Element zu erstellen.

[in] fReadWrite

Typ: BOOL

TRUE , um einen Lese-/Schreibeigenschaftenhandler abzurufen. FALSE , um einen schreibgeschützten Eigenschaftenhandler abzurufen.

[in] punkCreateObject

Typ: IUnknown*

Zeiger auf die IUnknown-Schnittstelle eines Factoryobjekts der Klasse, das ICreateObject unterstützt.

[in] riid

Typ: REFIID

Ein Verweis auf die IID der Schnittstelle, die über ppv abgerufen werden soll.

[out] ppv

Typ: void**

Wenn diese Funktion erfolgreich zurückgegeben wird, enthält den in riid angeforderten Schnittstellenzeiger. Dies ist in der Regel IPropertyStore oder IPropertyStoreCapabilities.

Rückgabewert

Typ: PSSTDAPI

Gibt bei erfolgreicher Ausführung S_OK oder andernfalls einen Fehlerwert zurück.

Hinweise

Diese Funktion wird in Windows XP als Teil der Microsoft Windows Desktop Search (WDS) Redistributable unterstützt, die IPropertyStore und unterstützende Schnittstellen enthält. Für Anwendungen, die nur unter Windows Vista oder höher unterstützt werden, wird empfohlen, IShellItem2::GetPropertyStoreWithCreateObject anstelle von PSGetItemPropertyHandlerWithCreateObject zu verwenden, da IShellItem2::GetPropertyStoreWithCreateObject einen umfangreicheren Satz von Eigenschaften im zurückgegebenen Eigenschaftenspeicher bereitstellt.

Diese Funktion entspricht ungefähr der Übergabe des GPS_HANDLERPROPERTIESONLY-Flags an IShellItem2::GetPropertyStoreWithCreateObject.

Der PunkCreateObject-Parameter ermöglicht die Erstellung eines Eigenschaftenspeichers in einem anderen Kontext als dem des Aufrufers. Bei instance kann die ICreateObject-Implementierung dazu führen, dass der Eigenschaftenspeicher in einem anderen Prozess erstellt wird. Dieser Parameter wird nur für Eigenschaftenhandler verwendet, die ihn unterstützen und unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlersregistriert sind.

Sie müssen das Component Object Model (COM) mit CoInitialize oder OleInitialize initialisieren , bevor Sie PSGetItemPropertyHandlerWithCreateObject aufrufen. COM muss für die Lebensdauer dieses Objekts initialisiert bleiben.

Beispiele

Im folgenden Beispiel, das als Teil eines größeren Programms eingeschlossen werden soll, wird veranschaulicht, wie Sie PSGetItemPropertyHandlerWithCreateObject verwenden, um einen Eigenschaftenhandler für ein Element abzurufen.

// 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();
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP mit SP2, Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 mit SP1 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile propsys.h
Bibliothek Propsys.lib
DLL Propsys.dll (Version 6.0 oder höher)
Verteilbare Komponente Windows Desktop Search (WDS) 3.0

Weitere Informationen

IShellItem2::GetPropertyStoreWithCreateObject

Initialisieren von Eigenschaftenhandlern