Compartir a través de


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

Consulte también

IShellItem2::GetPropertyStoreWithCreateObject

Inicializar controladores de propiedades