Partager via


Méthode IRunnableObject ::Run (objidl.h)

Force l’exécution d’un objet.

Syntaxe

HRESULT Run(
  [in] LPBINDCTX pbc
);

Paramètres

[in] pbc

Pointeur vers le contexte de liaison de l’opération d’exécution. Consultez IBindCtx. Ce paramètre peut être NULL.

Valeur retournée

Cette méthode peut retourner les valeurs de retour standard E_INVALIDARG, E_UNEXPECTED et S_OK.

Remarques

Les conteneurs appellent IRunnableObject ::Run pour forcer leurs objets à entrer dans l’état en cours d’exécution. Si l’objet n’est pas encore en cours d’exécution, l’appel de Run peut être une opération coûteuse, de l’ordre de plusieurs secondes. Si l’objet est déjà en cours d’exécution, cette méthode n’a aucun effet sur l’objet.

Notes aux appelants

Lorsqu’il est appelé sur un objet lié qui a été converti en nouvelle classe depuis la dernière activation du lien, IRunnableObject ::Run peut retourner OLE_E_CLASSDIFF. Dans ce cas, le client doit appeler IOleLink ::BindToSource.

OleRun est une fonction d’assistance qui réemballe facilement les fonctionnalités offertes par IRunnableObject ::Run. Avec la version d’OLE 2.01, l’implémentation d’OleRun a été modifiée de sorte qu’elle appelle QueryInterface, demande IRunnableObject, puis appelle IRunnableObject ::Run. En d’autres termes, vous pouvez utiliser l’interface et la fonction d’assistance de manière interchangeable.

Notes aux implémenteurs

L’objet doit s’inscrire dans la table d’objets en cours d’exécution s’il a un moniker affecté. L’objet ne doit pas contenir de verrous forts sur lui-même ; au lieu de cela, il doit rester dans l’état instable et déverrouillé. L’objet doit être verrouillé lorsque la première connexion externe est établie à l’objet.

Un objet incorporé doit contenir un verrou sur son conteneur d’incorporation pendant qu’il est en cours d’exécution. Le gestionnaire par défaut fourni par OLE 2 se charge de verrouiller le conteneur d’incorporation pour le compte d’objets implémentés par une application d’objet EXE. Les objets implémentés par une application d’objet DLL doivent placer explicitement un verrou sur leurs conteneurs d’incorporation, ce qu’ils font en appelant D’abord IOleClientSite ::GetContainer pour obtenir un pointeur vers le conteneur, puis en appelant IOleContainer ::LockContainer pour placer le verrou. Ce verrou doit être libéré lorsque IOleObject ::Close est appelé.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête objidl.h

Voir aussi

IRunnableObject

OleRun