Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Crea un objeto de datos en una carpeta primaria.
Syntax
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 una subcarpeta en relación con la carpeta primaria. Cada lista de identificadores de elementos debe contener exactamente una estructura SHITEMID seguida de una 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 adicionales del Portapapeles FORMATETC más allá de los formatos predeterminados que se asignan al crearse. 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 se devuelve correctamente, contiene el puntero de interfaz IDataObject solicitado en riid.
Valor devuelto
Tipo: HRESULT
Si esta función se ejecuta correctamente, devuelve S_OK. De lo contrario, devuelve un código de error HRESULT .
Observaciones
Normalmente se llama a esta función al implementar el método IShellFolder::GetUIObjectOf. Cuando se solicita un puntero de interfaz de id. 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 del Portapapeles 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á diseñado 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
| Requirement | Importancia |
|---|---|
| Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
| Servidor mínimo admitido | Windows Server 2008 [solo aplicaciones de escritorio] |
| de la plataforma de destino de |
Windows |
| Header | shlobj_core.h (incluya Shlobj.h) |
| Library | OneCore.Lib |
| DLL | Shell32.dll |
| Conjunto de API | ext-ms-win-shell-shell32-l1-2-2 (introducido en Windows 10, versión 10.0.14393) |