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) |