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
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
etafxRegFreeThreading
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