Função SHCreateDataObject (shlobj_core.h)

Cria um objeto de dados em uma pasta pai.

Sintaxe

SHSTDAPI SHCreateDataObject(
  [in, optional] PCIDLIST_ABSOLUTE     pidlFolder,
  [in]           UINT                  cidl,
  [in, optional] PCUITEMID_CHILD_ARRAY apidl,
  [in, optional] IDataObject           *pdtInner,
  [in]           REFIID                riid,
  [out]          void                  **ppv
);

Parâmetros

[in, optional] pidlFolder

Tipo: PCIDLIST_ABSOLUTE

Um ponteiro para um PIDL (ITEMIDLIST ) da pasta pai que contém o objeto de dados.

[in] cidl

Tipo: UINT

O número de objetos de arquivo ou subpastas especificados no parâmetro apidl .

[in, optional] apidl

Tipo: PCUITEMID_CHILD_ARRAY

Uma matriz de ponteiros para estruturas ITEMIDLIST constantes, cada uma das quais identifica exclusivamente um objeto de arquivo ou subpasta em relação à pasta pai. Cada lista de identificadores de item deve conter exatamente uma estrutura SHITEMID seguida por um zero de terminação.

[in, optional] pdtInner

Tipo: IDataObject*

Um ponteiro para a interface IDataObject. Este parâmetro pode ser NULL. Especifique pdtInner somente se o objeto de dados criado precisar dar suporte a formatos de área de transferência FORMATETC adicionais além dos formatos padrão atribuídos na criação. Como alternativa, forneça suporte para preencher o objeto de dados criado usando formatos de área de transferência não padrão chamando o método IDataObject::SetData e especificando o formato na estrutura FORMATETC passada no parâmetro pFormatetc.

[in] riid

Tipo: REFIID

Uma referência ao IID da interface a ser recuperada por meio de ppv. Isso deve ser IID_IDataObject.

[out] ppv

Tipo: void**

Quando esse método retorna com êxito, contém o ponteiro da interface IDataObject solicitado em riid.

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 normalmente é chamada ao implementar o método IShellFolder::GetUIObjectOf. Quando um ponteiro de interface da ID da interface IID_IDataObject é solicitado (usando o parâmetro riid), o implementador pode retornar o ponteiro de interface no objeto criado com SHCreateDataObject em resposta.

Essa função dá suporte ao formato de área de transferência CFSTR_SHELLIDLIST (também conhecido como HIDA) e também tem suporte genérico para formatos arbitrários da área de transferência por meio de IDataObject::SetData. Para obter mais informações sobre formatos de área de transferência, consulte Formatos da área de transferência do Shell.

O novo objeto de dados destina-se a ser usado em operações como arrastar e soltar, nas quais os dados são armazenados na área de transferência com um determinado formato.

Recomendamos que você use a macro IID_PPV_ARGS , definida em Objbase.h, para empacotar os parâmetros riid e ppv . Essa macro fornece o IID correto com base na interface apontada pelo valor em ppv, o que elimina a possibilidade de um erro de codificação no riid que pode levar a resultados inesperados.

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 shlobj_core.h (inclua Shlobj.h)
DLL Shell32.dll
Conjunto de APIs ext-ms-win-shell32-l1-2-2 (introduzido no Windows 10, versão 10.0.14393)

Confira também

CIDLData_CreateFromIDArray