Share via


COleObjectFactory, classe

Implémente la fabrique de classes OLE, qui crée des objets OLE tels que des serveurs, des objets Automation et des documents.

Syntaxe

class COleObjectFactory : public CCmdTarget

Membres

Constructeurs publics

Nom Description
COleObjectFactory ::COleObjectFactory Construit un objet COleObjectFactory.

Méthodes publiques

Nom Description
COleObjectFactory ::GetClassID Retourne l’ID de classe OLE des objets créés par cette fabrique.
COleObjectFactory ::IsLicenseValid Détermine si la licence du contrôle est valide.
COleObjectFactory ::IsRegistered Indique si la fabrique d’objets est inscrite auprès des DLL système OLE.
COleObjectFactory ::Register Inscrit cette fabrique d’objets avec les DLL système OLE.
COleObjectFactory ::RegisterAll Inscrit toutes les fabriques d’objets de l’application avec des DLL système OLE.
COleObjectFactory ::Revoke Révoque l’inscription de cette fabrique d’objets avec les DLL système OLE.
COleObjectFactory ::RevokeAll Révoque les inscriptions des fabriques d’objets d’une application avec les DLL système OLE.
COleObjectFactory ::UnregisterAll Annule l’inscription de toutes les fabriques d’objets d’une application.
COleObjectFactory ::UpdateRegistry Inscrit cette fabrique d’objets auprès du registre du système OLE.
COleObjectFactory ::UpdateRegistryAll Inscrit toutes les fabriques d’objets de l’application auprès du registre du système OLE.

Méthodes protégées

Nom Description
COleObjectFactory ::GetLicenseKey Demande une clé unique à partir de la DLL du contrôle.
COleObjectFactory ::OnCreateObject Appelé par l’infrastructure pour créer un objet de ce type de fabrique.
COleObjectFactory ::VerifyLicenseKey Vérifie que la clé incorporée dans le contrôle correspond à la clé incorporée dans le conteneur.
COleObjectFactory ::VerifyUserLicense Vérifie que le contrôle est concédé sous licence pour une utilisation au moment du design.

Notes

La COleObjectFactory classe a des fonctions membres pour effectuer les fonctions suivantes :

  • Gestion de l’inscription d’objets.

  • Mise à jour du registre du système OLE, ainsi que de l’inscription au moment de l’exécution qui informe OLE que les objets sont en cours d’exécution et prêts à recevoir des messages.

  • L’application des licences en limitant l’utilisation du contrôle aux développeurs sous licence au moment du design et aux applications sous licence au moment de l’exécution.

  • Inscription des fabriques d’objets de contrôle auprès du registre du système OLE.

Pour plus d’informations sur la création d’objets, consultez les articles Objets de données et Sources de données (OLE) et Objets de données et Sources de données : Création et destruction. Pour plus d’informations sur l’inscription, consultez l’article Inscription.

Hiérarchie d'héritage

CObject

CCmdTarget

COleObjectFactory

Spécifications

En-tête : afxdisp.h

COleObjectFactory ::COleObjectFactory

Construit un COleObjectFactory objet, l’initialise en tant que fabrique d’objets non inscrite et l’ajoute à la liste des fabriques.

COleObjectFactory(
    REFCLSID clsid,
    CRuntimeClass* pRuntimeClass,
    BOOL bMultiInstance,
    LPCTSTR lpszProgID);

COleObjectFactory(
    REFCLSID clsid,
    CRuntimeClass* pRuntimeClass,
    BOOL bMultiInstance,
    int nFlags,
    LPCTSTR lpszProgID);

Paramètres

Clsid
Référence à l’ID de classe OLE que représente cette fabrique d’objets.

pRuntimeClass
Pointeur vers la classe d’exécution des objets C++ que cette fabrique peut créer.

bMultiInstance
Indique si une seule instance de l’application peut prendre en charge plusieurs instanciations. Si la valeur est TRUE, plusieurs instances de l’application sont lancées pour chaque requête pour créer un objet.

nFlags
Contient un ou plusieurs des indicateurs suivants :

  • afxRegDefault Définit le modèle de thread sur ThreadingModel=Apartment.

  • afxRegInsertable Permet au contrôle d’apparaître dans la boîte de dialogue Insérer un objet pour les objets OLE.

  • afxRegApartmentThreading Définit le modèle de thread dans le Registre sur ThreadingModel=Apartment.

  • afxRegFreeThreading Définit le modèle de thread dans le Registre sur ThreadingModel=Free.

    Vous pouvez combiner les deux indicateurs afxRegApartmentThreading et afxRegFreeThreading définir ThreadingModel=Both. Pour plus d’informations sur l’inscription de modèle de thread, consultez InprocServer32 dans le Kit de développement logiciel (SDK) Windows.

lpszProgID
Pointeur vers une chaîne contenant un identificateur de programme verbal, tel que « Microsoft Excel ».

Notes

Pour utiliser l’objet, toutefois, vous devez l’inscrire.

Pour plus d’informations, consultez clé CLSID dans le Kit de développement logiciel (SDK) Windows.

COleObjectFactory ::GetClassID

Retourne une référence à l’ID de classe OLE que représente cette fabrique.

REFCLSID GetClassID() const;

Valeur de retour

Référence à l’ID de classe OLE que représente cette fabrique.

Notes

Pour plus d’informations, consultez clé CLSID dans le Kit de développement logiciel (SDK) Windows.

COleObjectFactory ::GetLicenseKey

Demande une clé de licence unique à partir de la DLL du contrôle et la stocke dans la BSTR pointée par pbstrKey.

virtual BOOL GetLicenseKey(
    DWORD dwReserved,
    BSTR* pbstrKey);

Paramètres

dwReserved
Réservé pour un usage futur.

pbstrKey
Pointeur vers une BSTR qui stocke la clé de licence.

Valeur de retour

Différent de zéro si la chaîne de clé de licence n’est pas NULL ; sinon 0.

Notes

L’implémentation par défaut de cette fonction retourne 0 et ne stocke rien dans le BSTR. Si vous utilisez MFC ActiveX ControlWizard pour créer votre projet, ControlWizard fournit un remplacement qui récupère la clé de licence du contrôle.

COleObjectFactory ::IsLicenseValid

Détermine si la licence du contrôle est valide.

BOOL IsLicenseValid();

Valeur de retour

TRUE si elle réussit ; sinon false.

COleObjectFactory ::IsRegistered

Retourne une valeur différente de zéro si la fabrique est inscrite auprès des DLL système OLE.

virtual BOOL IsRegistered() const;

Valeur de retour

Différent de zéro si l’usine est inscrite ; sinon 0.

COleObjectFactory ::OnCreateObject

Appelé par l’infrastructure pour créer un objet.

virtual CCmdTarget* OnCreateObject();

Valeur de retour

Pointeur vers l’objet créé. Elle peut lever une exception de mémoire en cas d’échec.

Notes

Remplacez cette fonction pour créer l’objet à partir d’un autre élément que le CRuntimeClass passé au constructeur.

COleObjectFactory ::Register

Inscrit cette fabrique d’objets avec les DLL système OLE.

virtual BOOL Register();

Valeur de retour

Différent de zéro si l’usine est correctement inscrite ; sinon 0.

Notes

Cette fonction est généralement appelée par CWinApp ::InitInstance lorsque l’application est lancée.

COleObjectFactory ::RegisterAll

Inscrit toutes les fabriques d’objets de l’application avec les DLL système OLE.

static BOOL PASCAL RegisterAll();

Valeur de retour

Différent de zéro si les usines sont correctement enregistrées ; sinon 0.

Notes

Cette fonction est généralement appelée par CWinApp ::InitInstance lorsque l’application est lancée.

COleObjectFactory ::Revoke

Révoque l’inscription de cette fabrique d’objets avec les DLL système OLE.

void Revoke();

Notes

L’infrastructure appelle cette fonction automatiquement avant la fin de l’application. Si nécessaire, appelez-le à partir d’un remplacement de CWinApp ::ExitInstance.

COleObjectFactory ::RevokeAll

Révoque toutes les inscriptions des fabriques d’objets de l’application avec les DLL système OLE.

static void PASCAL RevokeAll();

Notes

L’infrastructure appelle cette fonction automatiquement avant la fin de l’application. Si nécessaire, appelez-le à partir d’un remplacement de CWinApp ::ExitInstance.

COleObjectFactory ::UnregisterAll

Annule l’inscription de toutes les fabriques d’objets d’une application.

static BOOL PASCAL UnregisterAll();

Valeur de retour

TRUE en cas de réussite, sinon FALSE.

COleObjectFactory ::UpdateRegistry

Inscrit toutes les fabriques d’objets de l’application auprès du registre du système OLE.

void UpdateRegistry(LPCTSTR lpszProgID = NULL);
virtual BOOL UpdateRegistry(BOOL bRegister);

Paramètres

lpszProgID
Pointeur vers une chaîne contenant l’identificateur de programme lisible par l’homme, tel que « Excel.Document.5 ».

bRegister
Détermine si la fabrique d’objets de la classe de contrôle doit être inscrite.

Notes

Voici quelques discussions sur les deux formes de cette fonction :

  • UpdateRegistry(lpszProgID) Inscrit cette fabrique d’objets auprès du registre système OLE. Cette fonction est généralement appelée par CWinApp ::InitInstance lorsque l’application est lancée.

  • UpdateRegistry(bRegister) Cette forme de la fonction est substituable. Si bRegister a la valeur TRUE, cette fonction inscrit la classe de contrôle auprès du registre système. Sinon, il annule l’inscription de la classe.

    Si vous utilisez MFC ActiveX ControlWizard pour créer votre projet, ControlWizard fournit un remplacement à cette fonction virtuelle pure.

COleObjectFactory ::UpdateRegistryAll

Inscrit toutes les fabriques d’objets de l’application auprès du registre du système OLE.

static BOOL PASCAL UpdateRegistryAll(BOOL bRegister = TRUE);

Paramètres

bRegister
Détermine si la fabrique d’objets de la classe de contrôle doit être inscrite.

Valeur de retour

Différent de zéro si les usines sont correctement mises à jour ; sinon 0.

Notes

Cette fonction est généralement appelée par CWinApp ::InitInstance lorsque l’application est lancée.

COleObjectFactory ::VerifyLicenseKey

Vérifie que le conteneur est concédé sous licence pour utiliser le contrôle OLE.

virtual BOOL VerifyLicenseKey(BSTR bstrKey);

Paramètres

bstrKey
BSTR stockant la version du conteneur de la chaîne de licence.

Valeur de retour

Différent de zéro si la licence d’exécution est valide ; sinon 0.

Notes

La version par défaut appelle GetLicenseKey pour obtenir une copie de la chaîne de licence du contrôle et la compare à la chaîne dans bstrKey. Si les deux chaînes correspondent, la fonction retourne une valeur différente de zéro ; sinon, elle retourne 0.

Vous pouvez remplacer cette fonction pour fournir une vérification personnalisée de la licence.

La fonction VerifyUserLicense vérifie la licence au moment du design.

COleObjectFactory ::VerifyUserLicense

Vérifie la licence au moment du design pour le contrôle OLE.

virtual BOOL VerifyUserLicense();

Valeur de retour

Différent de zéro si la licence au moment du design est valide ; sinon 0.

Voir aussi

CCmdTarget, classe
Graphique hiérarchique
COleTemplateServer, classe