Fonction SHCreateDataObject (shlobj_core.h)
Crée un objet de données dans un dossier parent.
Syntaxe
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
);
Paramètres
[in, optional] pidlFolder
Type : PCIDLIST_ABSOLUTE
Pointeur vers un ITEMIDLIST (PIDL) du dossier parent qui contient l’objet de données.
[in] cidl
Type : UINT
Nombre d’objets de fichier ou de sous-dossiers spécifiés dans le paramètre apidl .
[in, optional] apidl
Type : PCUITEMID_CHILD_ARRAY
Tableau de pointeurs vers des structures ITEMIDLIST constantes, chacun d’entre eux identifiant de manière unique un objet de fichier ou un sous-dossier par rapport au dossier parent. Chaque liste d’identificateurs d’élément doit contenir exactement une structure SHITEMID suivie d’un zéro de fin.
[in, optional] pdtInner
Type : IDataObject*
Pointeur vers l’interface IDataObject. Ce paramètre peut être NULL. Spécifiez pdtInner uniquement si l’objet de données créé doit prendre en charge des formats de Presse-papiers FORMATETC supplémentaires au-delà des formats par défaut qui lui sont attribués lors de la création. Vous pouvez également prendre en charge le remplissage de l’objet de données créé à l’aide de formats de Presse-papiers autres que les formats par défaut en appelant la méthode IDataObject ::SetData et en spécifiant le format dans la structure FORMATETC transmise dans le paramètre pFormatetc.
[in] riid
Type : REFIID
Référence à l’IID de l’interface à récupérer via ppv. Cela doit être IID_IDataObject.
[out] ppv
Type : void**
Lorsque cette méthode retourne correctement, contient le pointeur d’interface IDataObject demandé dans riid.
Valeur retournée
Type : HRESULT
Si cette fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.
Remarques
Cette fonction est généralement appelée lors de l’implémentation de la méthode IShellFolder ::GetUIObjectOf. Lorsqu’un pointeur d’interface de l’ID d’interface IID_IDataObject est demandé (à l’aide du paramètre riid), l’implémenteur peut retourner le pointeur d’interface sur l’objet créé avec SHCreateDataObject en réponse.
Cette fonction prend en charge le format de Presse-papiers CFSTR_SHELLIDLIST (également appelé HIDA) et prend également en charge générique les formats de Presse-papiers arbitraires via IDataObject ::SetData. Pour plus d’informations sur les formats du Presse-papiers, consultez Formats du Presse-papiers shell.
Le nouvel objet de données est destiné à être utilisé dans des opérations telles que le glisser-déplacer, dans lequel les données sont stockées dans le Presse-papiers avec un format donné.
Nous vous recommandons d’utiliser la macro IID_PPV_ARGS , définie dans Objbase.h, pour empaqueter les paramètres riid et ppv . Cette macro fournit l’IID correct en fonction de l’interface pointée vers la valeur dans ppv, ce qui élimine la possibilité d’une erreur de codage dans riid qui pourrait entraîner des résultats inattendus.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | shlobj_core.h (inclure Shlobj.h) |
DLL | Shell32.dll |
Ensemble d’API | ext-ms-win-shell-shell32-l1-2-2 (introduit dans Windows 10, version 10.0.14393) |