IShellFolder ::GetUIObjectOf, méthode (shobjidl_core.h)
Obtient un objet qui peut être utilisé pour effectuer des actions sur les objets ou dossiers de fichiers spécifiés.
Syntaxe
HRESULT GetUIObjectOf(
[in] HWND hwndOwner,
[in] UINT cidl,
[in] PCUITEMID_CHILD_ARRAY apidl,
[in] REFIID riid,
[in, out] UINT *rgfReserved,
[out] void **ppv
);
Paramètres
[in] hwndOwner
Type : HWND
Handle de la fenêtre propriétaire que le client doit spécifier s’il affiche une boîte de dialogue ou une boîte de message.
[in] cidl
Type : UINT
Nombre d’objets de fichier ou de sous-dossiers spécifiés dans le paramètre apidl .
[in] apidl
Type : PCUITEMID_CHILD_ARRAY
Adresse d’un tableau de pointeurs vers des structures ITEMIDLIST , chacun d’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] riid
Type : REFIID
Référence à l’IID de l’interface à récupérer via ppv. Il peut s’agir de n’importe quel identificateur d’interface valide qui peut être créé pour un élément. Les identificateurs les plus courants utilisés par l’interpréteur de commandes sont répertoriés dans les commentaires à la fin de cette référence.
[in, out] rgfReserved
Type : UINT*
Réservé.
[out] ppv
Type : void**
Lorsque cette méthode retourne correctement, contient le pointeur d’interface demandé dans riid.
Valeur retournée
Type : HRESULT
Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.
Remarques
Si cidl est supérieur à un, l’implémentation IShellFolder ::GetUIObjectOf ne doit réussir que si elle peut créer un objet pour tous les éléments spécifiés dans apidl. Si l’implémentation ne peut pas créer un objet pour tous les éléments, cette méthode échoue.
Voici les identificateurs d’interface les plus courants que l’interpréteur de commandes utilise lors de la demande d’une interface à partir de cette méthode. La liste indique également si cidl peut être supérieur à un pour l’interface demandée.
Identificateur d’interface | Valeur cidl autorisée |
---|---|
IContextMenu | Le paramètre cidl peut être supérieur ou égal à un. |
IContextMenu2 | Le paramètre cidl peut être supérieur ou égal à un. |
Idataobject | Le paramètre cidl peut être supérieur ou égal à un. |
IDropTarget | Le paramètre cidl ne peut être qu’un seul paramètre. |
IExtractIcon | Le paramètre cidl ne peut être qu’un seul paramètre. |
IQueryInfo | Le paramètre cidl ne peut être qu’un seul paramètre. |
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 XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | shobjidl_core.h (inclure Shobjidl.h) |
DLL | Shell32.dll (version 4.0 ou ultérieure) |