Partilhar via


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 ITEMIDLIST (PIDL) 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. Esse 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 à IID da interface a ser recuperada por meio do ppv. Isso deve ser IID_IDataObject.

[out] ppv

Tipo: void**

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

Valor de retorno

Tipo: HRESULT

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

Observações

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 riid de parâmetro), 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 de área de transferência por meio de IDataObject::SetData. Para obter mais informações sobre formatos de área de transferência, consulte Formatos de área de transferência do Shell.

O novo objeto de dados destina-se a ser usado em operações como arrastar e soltar, em que 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 a IID correta 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.

Requirements

Requirement Value
Cliente mínimo suportado Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo compatível Windows Server 2008 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
Header shlobj_core.h (inclua Shlobj.h)
Library OneCore.Lib
de DLL Shell32.dll
Conjunto de API ext-ms-win-shell-shell32-l1-2-2 (introduzido no Windows 10, versão 10.0.14393)

Consulte também

CIDLData_CreateFromIDArray