Función SHCreateDataObject (shlobj_core.h)
Crea un objeto de datos en una carpeta primaria.
Sintaxis
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
Puntero a un ITEMIDLIST (PIDL) de la carpeta primaria que contiene el objeto de datos.
[in] cidl
Tipo: UINT
Número de objetos de archivo o subcarpetas especificados en el parámetro apidl .
[in, optional] apidl
Tipo: PCUITEMID_CHILD_ARRAY
Matriz de punteros a estructuras ITEMIDLIST constantes, cada una de las cuales identifica de forma única un objeto de archivo o subcarpeta en relación con la carpeta primaria. Cada lista de identificadores de elemento debe contener exactamente una estructura SHITEMID seguida de un terminación cero.
[in, optional] pdtInner
Tipo: IDataObject*
Puntero a la interfaz IDataObject. Este parámetro puede ser NULL. Especifique pdtInner solo si el objeto de datos creado necesita admitir formatos de Portapapeles FORMATETC adicionales más allá de los formatos predeterminados que se asignan al crear. Como alternativa, proporcione compatibilidad para rellenar el objeto de datos creado mediante formatos de Portapapeles no predeterminados llamando al método IDataObject::SetData y especificando el formato en la estructura FORMATETC pasada en el parámetro pFormatetc.
[in] riid
Tipo: REFIID
Referencia al IID de la interfaz que se va a recuperar a través de ppv. Debe ser IID_IDataObject.
[out] ppv
Tipo: void**
Cuando este método vuelve correctamente, contiene el puntero de interfaz IDataObject solicitado en riid.
Valor devuelto
Tipo: HRESULT
Si esta función se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.
Comentarios
Normalmente, se llama a esta función al implementar el método IShellFolder::GetUIObjectOf. Cuando se solicita un puntero de interfaz del identificador de interfaz IID_IDataObject (mediante el parámetro riid), el implementador puede devolver el puntero de interfaz en el objeto creado con SHCreateDataObject en respuesta.
Esta función admite el formato de portapapeles de CFSTR_SHELLIDLIST (también conocido como HIDA) y también tiene compatibilidad genérica con formatos arbitrarios del Portapapeles a través de IDataObject::SetData. Para obtener más información sobre los formatos del Portapapeles, consulte Formatos del Portapapeles de Shell.
El nuevo objeto de datos está pensado para usarse en operaciones como arrastrar y colocar, en las que los datos se almacenan en el Portapapeles con un formato determinado.
Se recomienda usar la macro IID_PPV_ARGS , definida en Objbase.h, para empaquetar los parámetros riid y ppv . Esta macro proporciona el IID correcto basado en la interfaz a la que apunta el valor en ppv, lo que elimina la posibilidad de un error de codificación en riid que podría dar lugar a resultados inesperados.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | shlobj_core.h (incluya Shlobj.h) |
Archivo DLL | Shell32.dll |
Conjunto de API | ext-ms-win-shell-shell32-l1-2-2 (introducido en Windows 10, versión 10.0.14393) |