Condividi tramite


Funzione PSGetItemPropertyHandlerWithCreateObject (propsys.h)

Recupera un gestore di proprietà per un elemento shell.

Sintassi

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

Parametri

[in] punkItem

Tipo: IUnknown*

Puntatore all'interfaccia IUnknown di un elemento shell che supporta IShellItem.

Windows XP: Usare SHCreateShellItem per creare l'elemento shell.

Windows Vista: Utilizzare SHCreateItemFromIDList, SHCreateItemFromParsingName, SHCreateItemFromRelativeName, SHCreateItemInKnownFolder o SHCreateItemWithParent per creare l'elemento shell.

[in] fReadWrite

Tipo: BOOL

TRUE per recuperare un gestore di proprietà di lettura/scrittura. FALSE per recuperare un gestore di proprietà di sola lettura.

[in] punkCreateObject

Tipo: IUnknown*

Puntatore all'interfaccia IUnknown di un oggetto class factory che supporta ICreateObject.

[in] riid

Tipo: REFIID

Riferimento all'IID dell'interfaccia da recuperare tramite ppv.

[out] ppv

Tipo: void**

Quando questa funzione viene restituita correttamente, contiene il puntatore di interfaccia richiesto in riid. Si tratta in genere di IPropertyStore o IPropertyStoreCapabilities.

Valore restituito

Tipo: PSSTDAPI

Restituisce S_OK in caso di esito positivo o un valore di errore in caso contrario.

Commenti

Questa funzione è supportata in Windows XP come parte della ridistribuibile di Microsoft Windows Desktop Search (WDS), che include IPropertyStore e interfacce di supporto. Per le applicazioni supportate solo in Windows Vista o versioni successive, è consigliabile usare IShellItem2::GetPropertyStoreWithCreateObject anziché PSGetItemPropertyHandlerWithCreateObject perché IShellItem2::GetPropertyStoreWithCreateObject fornisce un set più completo di proprietà nell'archivio delle proprietà restituito.

Questa funzione equivale approssimativamente al passaggio del flag GPS_HANDLERPROPERTIESONLY a IShellItem2::GetPropertyStoreWithCreateObject.

Il parametro punkCreateObject consente la creazione di un archivio di proprietà in un contesto diverso da quello del chiamante. Ad esempio, l'implementazione ICreateObject può causare la creazione dell'archivio delle proprietà in un altro processo. Questo parametro viene usato solo per i gestori di proprietà che lo supportano e registrati in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers.

È necessario inizializzare Component Object Model (COM) con CoInitialize o OleInitialize prima di chiamare PSGetItemPropertyHandlerWithCreateObject. COM deve rimanere inizializzato per la durata di questo oggetto.

Esempio

Nell'esempio seguente, da includere come parte di un programma più ampio, viene illustrato come usare PSGetItemPropertyHandlerWithCreateObject per ottenere un gestore di proprietà per un elemento.

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

Requisiti

Requisito Valore
Client minimo supportato Windows XP con SP2, Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 con SP1 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione propsys.h
Libreria Propsys.lib
DLL Propsys.dll (versione 6.0 o successiva)
Componente ridistribuibile Windows Desktop Search (WDS) 3.0

Vedi anche

IShellItem2::GetPropertyStoreWithCreateObject

Inizializzazione dei gestori di proprietà