Función PSGetItemPropertyHandlerWithCreateObject (propsys.h)
Recupera un controlador de propiedades para un elemento de Shell.
Sintaxis
PSSTDAPI PSGetItemPropertyHandlerWithCreateObject(
[in] IUnknown *punkItem,
[in] BOOL fReadWrite,
[in] IUnknown *punkCreateObject,
[in] REFIID riid,
[out] void **ppv
);
Parámetros
[in] punkItem
Tipo: IUnknown*
Puntero a la interfaz IUnknown de un elemento de Shell que admite IShellItem.
Windows XP: Use SHCreateShellItem para crear el elemento shell.
Windows Vista: Use SHCreateItemFromIDList, SHCreateItemFromParsingName, SHCreateItemFromRelativeName, SHCreateItemInKnownFolder o SHCreateItemWithParent para crear el elemento shell.
[in] fReadWrite
Tipo: BOOL
TRUE para recuperar un controlador de propiedades de lectura y escritura. FALSE para recuperar un controlador de propiedades de solo lectura.
[in] punkCreateObject
Tipo: IUnknown*
Puntero a la interfaz IUnknown de un objeto de generador de clases que admite ICreateObject.
[in] riid
Tipo: REFIID
Referencia al IID de la interfaz que se va a recuperar a través de ppv.
[out] ppv
Tipo: void**
Cuando esta función se devuelve correctamente, contiene el puntero de interfaz solicitado en riid. Suele ser IPropertyStore o IPropertyStoreCapabilities.
Valor devuelto
Tipo: PSSTDAPI
Devuelve S_OK si se ejecuta correctamente o un valor de error de lo contrario.
Comentarios
Esta función se admite en Windows XP como parte del redistribuible Microsoft Windows Desktop Search (WDS), que incluye IPropertyStore y interfaces auxiliares. Para las aplicaciones admitidas solo en Windows Vista o versiones posteriores, se recomienda usar IShellItem2::GetPropertyStoreWithCreateObject en lugar de PSGetItemPropertyHandlerWithCreateObject porque IShellItem2::GetPropertyStoreWithCreateObject proporciona un conjunto más completo de propiedades en el almacén de propiedades que se devuelve.
Esta función es aproximadamente equivalente a pasar la marca de GPS_HANDLERPROPERTIESONLY a IShellItem2::GetPropertyStoreWithCreateObject.
El parámetro punkCreateObject permite la creación de un almacén de propiedades en un contexto diferente al del autor de la llamada. Por ejemplo, la implementación de ICreateObject puede hacer que el almacén de propiedades se cree en otro proceso. Este parámetro solo se usa para los controladores de propiedad que lo admiten y que están registrados en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers
.
Debe inicializar el modelo de objetos componentes (COM) con CoInitialize o OleInitialize antes de llamar a PSGetItemPropertyHandlerWithCreateObject. COM debe permanecer inicializado durante la vigencia de este objeto.
Ejemplos
En el ejemplo siguiente, para incluirse como parte de un programa mayor, se muestra cómo usar PSGetItemPropertyHandlerWithCreateObject para obtener un controlador de propiedades para 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();
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP con SP2, Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 con SP1 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | propsys.h |
Library | Propsys.lib |
Archivo DLL | Propsys.dll (versión 6.0 o posterior) |
Redistribuible | Windows Desktop Search (WDS) 3.0 |