IShellFolder ::BindToObject, méthode (shobjidl_core.h)
Récupère un gestionnaire, généralement l’objet de dossier Shell qui implémente IShellFolder pour un élément particulier. Les paramètres facultatifs qui contrôlent la construction du gestionnaire sont passés dans le contexte de liaison.
Syntaxe
HRESULT BindToObject(
[in] PCUIDLIST_RELATIVE pidl,
[in] IBindCtx *pbc,
[in] REFIID riid,
[out] void **ppv
);
Paramètres
[in] pidl
Type : PCUIDLIST_RELATIVE
Adresse d’une structure ITEMIDLIST (PIDL) qui identifie le sous-dossier. Cette valeur peut faire référence à un élément à n’importe quel niveau sous le dossier parent dans la hiérarchie de l’espace de noms. La structure contient une ou plusieurs structures SHITEMID , suivies d’une valeur NULL de fin.
[in] pbc
Type : IBindCtx*
Pointeur vers une interface IBindCtx sur un objet de contexte de liaison qui peut être utilisé pour passer des paramètres à la construction du gestionnaire. Si ce paramètre n’est pas utilisé, définissez-le sur NULL. Étant donné que la prise en charge de ce paramètre est facultative pour les implémentations d’objets de dossier, certains dossiers peuvent ne pas prendre en charge l’utilisation de contextes de liaison.
Les informations qui peuvent être fournies dans le contexte de liaison incluent une structure BIND_OPTS qui inclut un membre grfMode qui indique le mode d’accès lors de la liaison à un gestionnaire de flux. D’autres paramètres peuvent être définis et découverts à l’aide de IBindCtx ::RegisterObjectParam et IBindCtx ::GetObjectParam.
[in] riid
Type : REFIID
Identificateur de l’interface à retourner. Il peut s’agir de IID_IShellFolder, de IID_IStream ou de toute autre interface qui identifie un gestionnaire particulier.
[out] ppv
Type : void**
Lorsque cette méthode retourne, contient l’adresse d’un pointeur vers l’interface demandée. Si une erreur se produit, un pointeur NULL est retourné à cette adresse.
Valeur retournée
Type : HRESULT
Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.
Remarques
Les applications utilisent IShellFolder ::BindToObject(..., IID_IShellFolder, ...) pour obtenir l’objet de dossier Shell pour un sous-élément. Les clients doivent passer l’IID d’interface canonique utilisée pour identifier un gestionnaire spécifique. Par exemple, IID_IShellFolder identifie le gestionnaire de dossiers et IID_IStream identifie le gestionnaire de flux. Les implémentations peuvent également prendre en charge la liaison à des gestionnaires à l’aide d’interfaces dérivées, telles que IID_IShellFolder2. Une extension d’espace de noms Shell peut implémenter cette fonction en créant l’objet de dossier Shell pour le sous-élément spécifié, puis en appelant QueryInterface pour communiquer avec l’objet via son pointeur d’interface.
Les implémentations de BindToObject peuvent optimiser n’importe quel appel à celui-ci en échouant rapidement pour les valeurs IID qu’il ne prend pas en charge. Par exemple, si l’objet de dossier Shell du sous-élément ne prend pas en charge IRemoteComputer, l’implémentation doit retourner immédiatement E_NOINTERFACE au lieu de créer inutilement l’objet de dossier Shell pour le sous-élément, puis de constater qu’IRemoteComputer n’était pas pris en charge après tout.
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) |