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 |