Função SHCreateShellItemArrayFromDataObject (shobjidl_core.h)

Cria um objeto de matriz de itens shell de um objeto de dados.

Sintaxe

SHSTDAPI SHCreateShellItemArrayFromDataObject(
  [in]  IDataObject *pdo,
  [in]  REFIID      riid,
  [out] void        **ppv
);

Parâmetros

[in] pdo

Tipo: IDataObject*

Um ponteiro para a interface IDataObject .

[in] riid

Tipo: REFIID

Uma referência à ID de interface desejada.

[out] ppv

Tipo: void**

Quando esse método retorna, contém o ponteiro de interface solicitado em riid. Normalmente, isso é IShellItemArray.

Retornar valor

Tipo: HRESULT

Se essa função for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

Essa função é útil para extensões do Shell que implementam IShellExtInit e são passadas um objeto de dados para o método IShellExtInit::Initialize ; por exemplo, manipuladores de menu de contexto.

Essa API permite converter o objeto de dados em um item shell que o manipulador pode consumir. É recomendável que os manipuladores usem uma matriz de itens shell em vez de formatos de área de transferência, como CF_HDROP e CFSTR_SHELLIDLIST (também conhecido como HIDA), pois ele leva a um código mais simples e permite algumas melhorias de desempenho.

A matriz de itens de shell resultante contém uma referência ao objeto de dados de origem. Portanto, esse objeto de dados deve permanecer válido durante o tempo de vida da matriz de itens do shell. Notavelmente, os objetos de dados passados para métodos IDropTarget não são mais válidos após a conclusão da operação de remoção.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shobjidl_core.h (inclua Shobjidl.h)
DLL Shell32.dll
Conjunto de APIs ext-ms-win-shell32-l1-2-2 (introduzido no Windows 10, versão 10.0.14393)