Partager via


IAssocHandler ::CreateInvoker, méthode (shobjidl_core.h)

Récupère un objet qui active l’appel du gestionnaire associé sur la sélection actuelle. L’appelant permet de vérifier si la sélection actuelle est prise en charge.

Syntaxe

HRESULT CreateInvoker(
  [in]  IDataObject          *pdo,
  [out] IAssocHandlerInvoker **ppInvoker
);

Paramètres

[in] pdo

Type : IDataObject*

Pointeur vers un IDataObject qui représente le ou les éléments sélectionnés sur lesquels appeler le gestionnaire. Notez que si vous n’avez qu’un seul élément, IAssocHandler ::Invoke peut être le meilleur choix. Pour plus d’informations, consultez Remarques.

[out] ppInvoker

Type : IAssocHandlerInvoker**

Lorsque cette méthode est retournée, contient l’adresse d’un pointeur vers un objet IAssocHandlerInvoker . Cet objet est utilisé pour appeler l’élément de menu après s’être assuré que les éléments sélectionnés sont pris en charge par le gestionnaire associé.

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 objets IAssocHandler sont généralement utilisés pour remplir un menu Ouvrir avec. Lorsque l’un de ces éléments de menu est sélectionné, cette méthode est appelée pour lancer l’application choisie.

Invoke et CreateInvoker

L’IDataObject utilisé par ces méthodes peut représenter un seul fichier ou une sélection de plusieurs fichiers. Toutes les applications ne prennent pas en charge l’option de fichiers multiples. Les applications qui prennent en charge ce scénario peuvent imposer d’autres restrictions telles que le nombre de fichiers qui peuvent être ouverts à la fois ou des combinaisons acceptables de types de fichiers.

Par conséquent, une application doit souvent déterminer si le gestionnaire prend en charge la sélection avant d’essayer d’appeler le gestionnaire. Par exemple, une application peut activer un élément de menu uniquement si elle savait que la sélection en question était prise en charge par ce gestionnaire.

Il est généralement prudent de supposer qu’une application prend en charge l’appel sur un seul élément ; dans ce cas, l’application appelle généralement IAssocHandler ::Invoke.

Pour plusieurs scénarios de sélection, l’application doit appeler IAssocHandler ::CreateInvoker. Cette méthode récupère un objet IAssocHandlerInvoker qui permet à l’application appelante d’abord case activée si la sélection est prise en charge (SupportsSelection), puis d’appeler le gestionnaire (Invoke).

IAssocHandler ::Invoke peut être appelé sur une sélection de plusieurs fichiers, mais il n’est pas recommandé en raison de la charge de traitement importante impliquée et de l’absence de garantie de réussite.

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 shobjidl_core.h (incluez Shobjidl.h)

Voir aussi

IAssocHandler

IAssocHandler ::Invoke

IEnumAssocHandlers