Share via


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)

Voir aussi

IShellFolder

IShellFolder2