Partager via


IOleObjectImpl, classe

Cette classe implémente IUnknown et est l’interface principale par le biais de laquelle un conteneur communique avec un contrôle.

Important

Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s’exécutent dans Windows Runtime.

Syntaxe

template<class T>
class ATL_NO_VTABLE IOleObjectImpl : public IOleObject

Paramètres

T
Votre classe, dérivée de IOleObjectImpl.

Membres

Méthodes publiques

Nom Description
IOleObjectImpl ::Conseiller Établit une connexion de conseil avec le contrôle.
IOleObjectImpl ::Close Modifie l’état du contrôle de l’exécution au chargement.
IOleObjectImpl ::D oVerb Indique au contrôle d’effectuer l’une de ses actions énumérées.
IOleObjectImpl ::D oVerbDiscardUndo Indique au contrôle d’ignorer tout état d’annulation qu’il conserve.
IOleObjectImpl ::D oVerbHide Indique au contrôle de supprimer son interface utilisateur de l’affichage.
IOleObjectImpl ::D oVerbInPlaceActivate Exécute le contrôle et installe sa fenêtre, mais n’installe pas l’interface utilisateur du contrôle.
IOleObjectImpl ::D oVerbOpen Provoque l’ouverture du contrôle dans une fenêtre distincte.
IOleObjectImpl ::D oVerbPrimary Exécute l’action spécifiée lorsque l’utilisateur double-clique sur le contrôle. Le contrôle définit l’action, généralement pour activer le contrôle sur place.
IOleObjectImpl ::D oVerbShow Affiche un contrôle nouvellement inséré à l’utilisateur.
IOleObjectImpl ::D oVerbUIActivate Active le contrôle sur place et affiche l’interface utilisateur du contrôle, comme les menus et les barres d’outils.
IOleObjectImpl ::EnumAdvise Énumère les connexions de conseil du contrôle.
IOleObjectImpl ::EnumVerbs Énumère les actions du contrôle.
IOleObjectImpl ::GetClientSite Récupère le site client du contrôle.
IOleObjectImpl ::GetClipboardData Récupère les données du Presse-papiers. L’implémentation ATL retourne E_NOTIMPL.
IOleObjectImpl ::GetExtent Récupère l’étendue de la zone d’affichage du contrôle.
IOleObjectImpl ::GetMiscStatus Récupère l’état du contrôle.
IOleObjectImpl ::GetMoniker Récupère le moniker du contrôle. L’implémentation ATL retourne E_NOTIMPL.
IOleObjectImpl ::GetUserClassID Récupère l’identificateur de classe du contrôle.
IOleObjectImpl ::GetUserType Récupère le nom de type utilisateur du contrôle.
IOleObjectImpl ::InitFromData Initialise le contrôle à partir des données sélectionnées. L’implémentation ATL retourne E_NOTIMPL.
IOleObjectImpl ::IsUpToDate Vérifie si le contrôle est à jour. L’implémentation ATL retourne S_OK.
IOleObjectImpl ::OnPostVerbDiscardUndo Appelé par DoVerbDiscardUndo après l’abandon de l’état d’annulation.
IOleObjectImpl ::OnPostVerbHide Appelé par DoVerbHide une fois le contrôle masqué.
IOleObjectImpl ::OnPostVerbInPlaceActivate Appelé par DoVerbInPlaceActivate après l’activation du contrôle.
IOleObjectImpl ::OnPostVerbOpen Appelé par DoVerbOpen après l’ouverture du contrôle pour modification dans une fenêtre distincte.
IOleObjectImpl ::OnPostVerbShow Appelé par DoVerbShow après que le contrôle a été rendu visible.
IOleObjectImpl ::OnPostVerbUIActivate Appelé par DoVerbUIActivate après l’activation de l’interface utilisateur du contrôle.
IOleObjectImpl ::OnPreVerbDiscardUndo Appelé par DoVerbDiscardUndo avant l’abandon de l’état d’annulation.
IOleObjectImpl ::OnPreVerbHide Appelé par DoVerbHide avant que le contrôle ne soit masqué.
IOleObjectImpl ::OnPreVerbInPlaceActivate Appelé par DoVerbInPlaceActivate avant l’activation du contrôle.
IOleObjectImpl ::OnPreVerbOpen Appelé par DoVerbOpen avant l’ouverture du contrôle pour modification dans une fenêtre distincte.
IOleObjectImpl ::OnPreVerbShow Appelé par DoVerbShow avant que le contrôle n’ait été rendu visible.
IOleObjectImpl ::OnPreVerbUIActivate Appelé par DoVerbUIActivate avant l’activation de l’interface utilisateur du contrôle.
IOleObjectImpl ::SetClientSite Indique au contrôle son site client dans le conteneur.
IOleObjectImpl ::SetColorScheme Recommande un jeu de couleurs à l’application du contrôle, le cas échéant. L’implémentation ATL retourne E_NOTIMPL.
IOleObjectImpl ::SetExtent Définit l’étendue de la zone d’affichage du contrôle.
IOleObjectImpl ::SetHostNames Indique au contrôle les noms de l’application conteneur et du document conteneur.
IOleObjectImpl ::SetMoniker Indique au contrôle ce que son moniker est. L’implémentation ATL retourne E_NOTIMPL.
IOleObjectImpl ::Unadvise Supprime une connexion de conseil avec le contrôle.
IOleObjectImpl ::Update Met à jour le contrôle. L’implémentation ATL retourne S_OK.

Notes

L’interface IOleObject est l’interface principale via laquelle un conteneur communique avec un contrôle. La classe IOleObjectImpl fournit une implémentation par défaut de cette interface et implémente en envoyant des IUnknown informations à l’appareil de vidage dans les builds de débogage.

Didacticiel ATL sur les articles connexes, création d’un projet ATL

Hiérarchie d'héritage

IOleObject

IOleObjectImpl

Spécifications

En-tête : atlctl.h

IOleObjectImpl ::Conseiller

Établit une connexion de conseil avec le contrôle.

STDMETHOD(Advise)(
    IAdviseSink* pAdvSink,
    DWORD* pdwConnection);

Notes

Voir IOleObject ::Conseiller dans le Kit de développement logiciel (SDK) Windows.

IOleObjectImpl ::Close

Modifie l’état du contrôle de l’exécution au chargement.

STDMETHOD(Close)(DWORD dwSaveOption);

Notes

Désactive le contrôle et détruit la fenêtre de contrôle s’il existe. Si le membre de données de la classe de contrôle CComControlBase ::m_bRequiresSave a la valeur TRUE et que le paramètre dwSaveOption est OLECLOSE_SAVEIFDIRTY ou OLECLOSE_PROMPTSAVE, les propriétés du contrôle sont enregistrées avant la fermeture.

Les pointeurs conservés dans les membres de données de la classe de contrôle CComControlBase ::m_spInPlaceSite et CComControlBase ::m_spAdviseSink sont publiés, et les membres de données CComControlBase ::m_bNegotiatedWnd, CComControlBase ::m_bWndless et CComControlBase ::m_bInPlaceSiteEx sont définis sur FALSE.

Voir IOleObject ::Fermer dans le Kit de développement logiciel (SDK) Windows.

IOleObjectImpl ::D oVerb

Indique au contrôle d’effectuer l’une de ses actions énumérées.

STDMETHOD(DoVerb)(
    LONG iVerb,
    LPMSG /* pMsg */,
    IOleClientSite* pActiveSite,
    LONG /* lindex */,
    HWND hwndParent,
    LPCRECT lprcPosRect);

Notes

Selon la valeur de iVerb, l’une des fonctions d’assistance ATL DoVerb est appelée comme suit :

Valeur iVerb Fonction d’assistance DoVerb appelée
OLEIVERB_DISCARDUNDOSTATE DoVerbDiscardUndo
OLEIVERB_HIDE DoVerbHide
OLEIVERB_INPLACEACTIVATE DoVerbInPlaceActivate
OLEIVERB_OPEN DoVerbOpen
OLEIVERB_PRIMARY DoVerbPrimary
OLEIVERB_PROPERTIES CComControlBase ::D oVerbProperties
OLEIVERB_SHOW DoVerbShow
OLEIVERB_UIACTIVATE DoVerbUIActivate

Consultez IOleObject ::D oVerb dans le Kit de développement logiciel (SDK) Windows.

IOleObjectImpl ::D oVerbDiscardUndo

Indique au contrôle d’ignorer tout état d’annulation qu’il conserve.

HRESULT DoVerbDiscardUndo(LPCRECT /* prcPosRect */, HWND /* hwndParent */);

Paramètres

prcPosRec
[in] Pointeur vers le rectangle dans lequel le conteneur souhaite que le contrôle se dessine.

hwndParent
[in] Handle de la fenêtre contenant le contrôle.

Valeur de retour

Retourne S_OK.

IOleObjectImpl ::D oVerbHide

Désactive et supprime l’interface utilisateur du contrôle et masque le contrôle.

HRESULT DoVerbHide(LPCRECT /* prcPosRect */, HWND /* hwndParent */);

Paramètres

prcPosRec
[in] Pointeur vers le rectangle dans lequel le conteneur souhaite que le contrôle se dessine.

hwndParent
[in] Handle de la fenêtre contenant le contrôle. Non utilisé dans l’implémentation ATL.

Valeur de retour

Retourne S_OK.

IOleObjectImpl ::D oVerbInPlaceActivate

Exécute le contrôle et installe sa fenêtre, mais n’installe pas l’interface utilisateur du contrôle.

HRESULT DoVerbInPlaceActivate(LPCRECT prcPosRect, HWND /* hwndParent */);

Paramètres

prcPosRec
[in] Pointeur vers le rectangle dans lequel le conteneur souhaite que le contrôle se dessine.

hwndParent
[in] Handle de la fenêtre contenant le contrôle. Non utilisé dans l’implémentation ATL.

Valeur de retour

Une des valeurs HRESULT standard.

Notes

Active le contrôle en place en appelant CComControlBase ::InPlaceActivate. Sauf si le membre m_bWindowOnly de données de la classe de contrôle a la valeur TRUE, DoVerbInPlaceActivate tente d’abord d’activer le contrôle en tant que contrôle sans fenêtre (possible uniquement si le conteneur prend en charge IOleInPlaceSiteWindowless). Si cela échoue, la fonction tente d’activer le contrôle avec des fonctionnalités étendues (possible uniquement si le conteneur prend en charge IOleInPlaceSiteEx). Si cela échoue, la fonction tente d’activer le contrôle sans fonctionnalités étendues (possible uniquement si le conteneur prend en charge IOleInPlaceSite). Si l’activation réussit, la fonction informe le conteneur que le contrôle a été activé.

IOleObjectImpl ::D oVerbOpen

Provoque l’ouverture du contrôle dans une fenêtre distincte.

HRESULT DoVerbOpen(LPCRECT /* prcPosRect */, HWND /* hwndParent */);

Paramètres

prcPosRec
[in] Pointeur vers le rectangle dans lequel le conteneur souhaite que le contrôle se dessine.

hwndParent
[in] Handle de la fenêtre contenant le contrôle.

Valeur de retour

Retourne S_OK.

IOleObjectImpl ::D oVerbPrimary

Définit l’action effectuée lorsque l’utilisateur double-clique sur le contrôle.

HRESULT DoVerbPrimary(LPCRECT prcPosRect, HWND hwndParent);

Paramètres

prcPosRec
[in] Pointeur vers le rectangle dans lequel le conteneur souhaite que le contrôle se dessine.

hwndParent
[in] Handle de la fenêtre contenant le contrôle.

Valeur de retour

Une des valeurs HRESULT standard.

Notes

Par défaut, définissez pour afficher les pages de propriétés. Vous pouvez remplacer cela dans votre classe de contrôle pour appeler un autre comportement en double-clic ; par exemple, lire une vidéo ou aller en place actif.

IOleObjectImpl ::D oVerbShow

Indique au conteneur de rendre le contrôle visible.

HRESULT DoVerbShow(LPCRECT prcPosRect, HWND /* hwndParent */);

Paramètres

prcPosRec
[in] Pointeur vers le rectangle dans lequel le conteneur souhaite que le contrôle se dessine.

hwndParent
[in] Handle de la fenêtre contenant le contrôle. Non utilisé dans l’implémentation ATL.

Valeur de retour

Une des valeurs HRESULT standard.

IOleObjectImpl ::D oVerbUIActivate

Active l’interface utilisateur du contrôle et informe le conteneur que ses menus sont remplacés par des menus composites.

HRESULT DoVerbUIActivate(LPCRECT prcPosRect, HWND /* hwndParent */);

Paramètres

prcPosRec
[in] Pointeur vers le rectangle dans lequel le conteneur souhaite que le contrôle se dessine.

hwndParent
[in] Handle de la fenêtre contenant le contrôle. Non utilisé dans l’implémentation ATL.

Valeur de retour

Une des valeurs HRESULT standard.

IOleObjectImpl ::EnumAdvise

Fournit une énumération des connexions de conseil inscrites pour ce contrôle.

STDMETHOD(EnumAdvise)(IEnumSTATDATA** ppenumAdvise);

Notes

Voir IOleObject ::EnumAdvise dans le Kit de développement logiciel (SDK) Windows.

IOleObjectImpl ::EnumVerbs

Fournit une énumération d’actions inscrites (verbes) pour ce contrôle en appelant OleRegEnumVerbs.

STDMETHOD(EnumVerbs)(IEnumOLEVERB** ppEnumOleVerb);

Notes

Vous pouvez ajouter des verbes au fichier .rgs de votre projet. Par exemple, consultez CIRCCTL. RGS dans l’exemple CIRC .

Voir IOleObject ::EnumVerbs dans le Kit de développement logiciel (SDK) Windows.

IOleObjectImpl ::GetClientSite

Place le pointeur dans le membre de données de la classe de contrôle CComControlBase ::m_spClientSite dans ppClientSite et incrémente le nombre de références sur le pointeur.

STDMETHOD(GetClientSite)(IOleClientSite** ppClientSite);

Notes

Voir IOleObject ::GetClientSite dans le Kit de développement logiciel (SDK) Windows.

IOleObjectImpl ::GetClipboardData

Récupère les données du Presse-papiers.

STDMETHOD(GetClipboardData)(
    DWORD /* dwReserved */,
    IDataObject** /* ppDataObject */);

Valeur de retour

Retourne E_NOTIMPL.

Notes

Voir IOleObject ::GetClipboardData dans le Kit de développement logiciel (SDK) Windows.

IOleObjectImpl ::GetExtent

Récupère la taille d’affichage d’un contrôle en cours d’exécution en unités HIMETRIC (0,01 millimètre par unité).

STDMETHOD(GetExtent)(
    DWORD dwDrawAspect,
    SIZEL* psizel);

Notes

La taille est stockée dans le membre de données de la classe de contrôle CComControlBase ::m_sizeExtent.

Voir IOleObject ::GetExtent dans le Kit de développement logiciel (SDK) Windows.

IOleObjectImpl ::GetMiscStatus

Retourne un pointeur vers les informations d’état inscrites pour le contrôle en appelant OleRegGetMiscStatus.

STDMETHOD(GetMiscStatus)(
    DWORD dwAspect,
    DWORD* pdwStatus);

Notes

Les informations d’état incluent les comportements pris en charge par les données de contrôle et de présentation. Vous pouvez ajouter des informations d’état au fichier .rgs de votre projet.

Voir IOleObject ::GetMiscStatus dans le Kit de développement logiciel (SDK) Windows.

IOleObjectImpl ::GetMoniker

Récupère le moniker du contrôle.

STDMETHOD(GetMoniker)(
    DWORD /* dwAssign */,
    DWORD /* dwWhichMoniker */,
    IMoniker** /* ppmk */);

Valeur de retour

Retourne E_NOTIMPL.

Notes

Voir IOleObject ::GetMoniker dans le Kit de développement logiciel (SDK) Windows.

IOleObjectImpl ::GetUserClassID

Retourne l’identificateur de classe du contrôle.

STDMETHOD(GetUserClassID)(CLSID* pClsid);

Notes

Voir IOleObject ::GetUserClassID dans le Kit de développement logiciel (SDK) Windows.

IOleObjectImpl ::GetUserType

Retourne le nom de type utilisateur du contrôle en appelant OleRegGetUserType.

STDMETHOD(GetUserType)(
    DWORD dwFormOfType,
    LPOLESTR* pszUserType);

Notes

Le nom de type utilisateur est utilisé pour l’affichage dans les éléments d’interfaces utilisateur, tels que les menus et les boîtes de dialogue. Vous pouvez modifier le nom de type utilisateur dans le fichier .rgs de votre projet.

Voir IOleObject ::GetUserType dans le Kit de développement logiciel (SDK) Windows.

IOleObjectImpl ::InitFromData

Initialise le contrôle à partir des données sélectionnées.

STDMETHOD(InitFromData)(
    IDataObject* /* pDataObject */,
    BOOL /* fCreation */,
    DWORD /* dwReserved */);

Valeur de retour

Retourne E_NOTIMPL.

Notes

Voir IOleObject ::InitFromData dans le Kit de développement logiciel (SDK) Windows.

IOleObjectImpl ::IsUpToDate

Vérifie si le contrôle est à jour.

STDMETHOD(IsUpToDate)(void);

Valeur de retour

Retourne S_OK.

Notes

Voir IOleObject ::IsUpToDate dans le Kit de développement logiciel (SDK) Windows.

IOleObjectImpl ::OnPostVerbDiscardUndo

Appelé par DoVerbDiscardUndo après l’abandon de l’état d’annulation.

HRESULT OnPostVerbDiscardUndo();

Valeur de retour

Retourne S_OK.

Notes

Remplacez cette méthode par du code que vous souhaitez exécuter une fois l’état d’annulation ignoré.

IOleObjectImpl ::OnPostVerbHide

Appelé par DoVerbHide une fois le contrôle masqué.

HRESULT OnPostVerbHide();

Valeur de retour

Retourne S_OK.

Notes

Remplacez cette méthode par du code que vous souhaitez exécuter une fois le contrôle masqué.

IOleObjectImpl ::OnPostVerbInPlaceActivate

Appelé par DoVerbInPlaceActivate après l’activation du contrôle.

HRESULT OnPostVerbInPlaceActivate();

Valeur de retour

Retourne S_OK.

Notes

Remplacez cette méthode par le code que vous souhaitez exécuter une fois le contrôle activé.

IOleObjectImpl ::OnPostVerbOpen

Appelé par DoVerbOpen après l’ouverture du contrôle pour modification dans une fenêtre distincte.

HRESULT OnPostVerbOpen();

Valeur de retour

Retourne S_OK.

Notes

Remplacez cette méthode par du code que vous souhaitez exécuter une fois que le contrôle a été ouvert pour modification dans une fenêtre distincte.

IOleObjectImpl ::OnPostVerbShow

Appelé par DoVerbShow après que le contrôle a été rendu visible.

HRESULT OnPostVerbShow();

Valeur de retour

Retourne S_OK.

Notes

Remplacez cette méthode par du code que vous souhaitez exécuter une fois le contrôle rendu visible.

IOleObjectImpl ::OnPostVerbUIActivate

Appelé par DoVerbUIActivate après l’activation de l’interface utilisateur du contrôle.

HRESULT OnPostVerbUIActivate();

Valeur de retour

Retourne S_OK.

Notes

Remplacez cette méthode par le code que vous souhaitez exécuter après l’activation de l’interface utilisateur du contrôle.

IOleObjectImpl ::OnPreVerbDiscardUndo

Appelé par DoVerbDiscardUndo avant l’abandon de l’état d’annulation.

HRESULT OnPreVerbDiscardUndo();

Valeur de retour

Retourne S_OK.

Notes

Pour empêcher l’abandon de l’état d’annulation, remplacez cette méthode pour retourner une erreur HRESULT.

IOleObjectImpl ::OnPreVerbHide

Appelé par DoVerbHide avant que le contrôle ne soit masqué.

HRESULT OnPreVerbHide();

Valeur de retour

Retourne S_OK.

Notes

Pour empêcher le contrôle d’être masqué, remplacez cette méthode pour retourner une erreur HRESULT.

IOleObjectImpl ::OnPreVerbInPlaceActivate

Appelé par DoVerbInPlaceActivate avant l’activation du contrôle.

HRESULT OnPreVerbInPlaceActivate();

Valeur de retour

Retourne S_OK.

Notes

Pour empêcher l’activation du contrôle en place, remplacez cette méthode pour retourner une erreur HRESULT.

IOleObjectImpl ::OnPreVerbOpen

Appelé par DoVerbOpen avant l’ouverture du contrôle pour modification dans une fenêtre distincte.

HRESULT OnPreVerbOpen();

Valeur de retour

Retourne S_OK.

Notes

Pour empêcher l’ouverture du contrôle pour modification dans une fenêtre distincte, remplacez cette méthode pour retourner une erreur HRESULT.

IOleObjectImpl ::OnPreVerbShow

Appelé par DoVerbShow avant que le contrôle n’ait été rendu visible.

HRESULT OnPreVerbShow();

Valeur de retour

Retourne S_OK.

Notes

Pour empêcher le contrôle d’être rendu visible, remplacez cette méthode pour retourner une erreur HRESULT.

IOleObjectImpl ::OnPreVerbUIActivate

Appelé par DoVerbUIActivate avant l’activation de l’interface utilisateur du contrôle.

HRESULT OnPreVerbUIActivate();

Valeur de retour

Retourne S_OK.

Notes

Pour empêcher l’activation de l’interface utilisateur du contrôle, remplacez cette méthode pour retourner une erreur HRESULT.

IOleObjectImpl ::SetClientSite

Indique au contrôle son site client dans le conteneur.

STDMETHOD(SetClientSite)(IOleClientSite* pClientSite);

Notes

La méthode retourne ensuite S_OK.

Voir IOleObject ::SetClientSite dans le Kit de développement logiciel (SDK) Windows.

IOleObjectImpl ::SetColorScheme

Recommande un jeu de couleurs à l’application du contrôle, le cas échéant.

STDMETHOD(SetColorScheme)(LOGPALETTE* /* pLogPal */);

Valeur de retour

Retourne E_NOTIMPL.

Notes

Voir IOleObject ::SetColorScheme dans le Kit de développement logiciel (SDK) Windows.

IOleObjectImpl ::SetExtent

Définit l’étendue de la zone d’affichage du contrôle.

STDMETHOD(SetExtent)(
    DWORD dwDrawAspect,
    SIZEL* psizel);

Notes

Sinon, SetExtent stocke la valeur pointée par psizel dans le membre de données de la classe de contrôle CComControlBase ::m_sizeExtent. Cette valeur est en unités HIMETRIC (0,01 millimètre par unité).

Si le membre de données de la classe de contrôle CComControlBase ::m_bResizeNatural a la valeur TRUE, SetExtent stocke également la valeur vers laquelle pointe psizel le membre de données de la classe de contrôle CComControlBase ::m_sizeNatural.

Si le membre de données de la classe de contrôle CComControlBase ::m_bRecomposeOnResize a la valeur TRUE, SetExtent appelle SendOnDataChange et SendOnViewChange informe tous les récepteurs consultatifs inscrits auprès du titulaire du conseil que la taille du contrôle a changé.

Voir IOleObject ::SetExtent dans le Kit de développement logiciel (SDK) Windows.

IOleObjectImpl ::SetHostNames

Indique au contrôle les noms de l’application conteneur et du document conteneur.

STDMETHOD(SetHostNames)(LPCOLESTR /* szContainerApp */, LPCOLESTR /* szContainerObj */);

Valeur de retour

Retourne S_OK.

Notes

Voir IOleObject ::SetHostNames dans le Kit de développement logiciel (SDK) Windows.

IOleObjectImpl ::SetMoniker

Indique au contrôle ce que son moniker est.

STDMETHOD(SetMoniker)(
    DWORD /* dwWhichMoniker */,
    IMoniker** /* pmk */);

Valeur de retour

Retourne E_NOTIMPL.

Notes

Voir IOleObject ::SetMoniker dans le Kit de développement logiciel (SDK) Windows.

IOleObjectImpl ::Unadvise

Supprime la connexion de conseil stockée dans le membre de données de la classe de m_spOleAdviseHolder contrôle.

STDMETHOD(Unadvise)(DWORD dwConnection);

Notes

Voir IOleObject ::Unadvise dans le Kit de développement logiciel (SDK) Windows.

IOleObjectImpl ::Update

Met à jour le contrôle.

STDMETHOD(Update)(void);

Valeur de retour

Retourne S_OK.

Notes

Voir IOleObject ::Update dans le Kit de développement logiciel (SDK) Windows.

Voir aussi

CComControl, classe
Interfaces de contrôles ActiveX
Vue d’ensemble de la classe