Partager via


Fabriques de classes et gestion des licences

Pour créer une instance de votre contrôle OLE, une application conteneur appelle une fonction membre de la fabrique de classes du contrôle. Étant donné que votre contrôle est un objet OLE réel, la fabrique de classes est responsable de la création d’instances de votre contrôle. Chaque classe de contrôle OLE doit avoir une fabrique de classes.

Une autre fonctionnalité importante des contrôles OLE est leur capacité à appliquer une licence. ControlWizard vous permet d’incorporer des licences lors de la création de votre projet de contrôle. Pour plus d’informations sur les licences de contrôle, consultez l’article Contrôles ActiveX : Licences d’un contrôle ActiveX.

Le tableau suivant répertorie plusieurs macros et fonctions utilisées pour déclarer et implémenter la fabrique de classe de votre contrôle et la licence de votre contrôle.

Fabriques de classes et gestion des licences

Macro ou fonction Description
DECLARE_OLECREATE_EX Déclare la fabrique de classes pour un contrôle OLE ou une page de propriétés.
IMPLEMENT_OLECREATE_EX Implémente la fonction du GetClassID contrôle et déclare une instance de la fabrique de classes.
BEGIN_OLEFACTORY Commence la déclaration de toutes les fonctions de licence.
END_OLEFACTORY Termine la déclaration de toutes les fonctions de licence.
AfxVerifyLicFile Vérifie si un contrôle est autorisé à être utilisé sur un ordinateur particulier.

DECLARE_OLECREATE_EX

Déclare une fabrique de classes et la GetClassID fonction membre de votre classe de contrôle.

DECLARE_OLECREATE_EX(class_name)

Paramètres

class_name
Nom de la classe de contrôle.

Notes

Utilisez cette macro dans le fichier d’en-tête de classe de contrôle pour un contrôle qui ne prend pas en charge les licences.

Notez que cette macro a la même fonction que l’exemple de code suivant :

BEGIN_OLEFACTORY(CMyAxCtrl)
END_OLEFACTORY(CMyAxCtrl)

Spécifications

En-tête afxctl.h

IMPLEMENT_OLECREATE_EX

Implémente la fabrique de classe de votre contrôle et la GetClassID fonction membre de votre classe de contrôle.

IMPLEMENT_OLECREATE_EX(
   class_name,
    external_name,
    l,
    w1,
    w2,
    b1,
    b2,
    b3,
    b4,
    b5,
    b6,
    b7,
    b8)

Paramètres

class_name
Nom de la classe de page de propriétés de contrôle.

external_name
Nom de l’objet exposé aux applications.

l, , w1, , b2b5b7b1b3b4b6w2b8
Composants de la classe CLSID. Pour plus d’informations sur ces paramètres, consultez les remarques pour IMPLEMENT_OLECREATE.

Notes

Cette macro doit apparaître dans le fichier d’implémentation pour toute classe de contrôle qui utilise la DECLARE_OLECREATE_EX macro ou les BEGIN_OLEFACTORY END_OLEFACTORY macros. Le nom externe est l’identificateur du contrôle OLE exposé à d’autres applications. Les conteneurs utilisent ce nom pour demander un objet de cette classe de contrôle.

Spécifications

En-tête afxctl.h

BEGIN_OLEFACTORY

Commence la déclaration de votre fabrique de classe dans le fichier d’en-tête de votre classe de contrôle.

BEGIN_OLEFACTORY(class_name)

Paramètres

class_name
Spécifie le nom de la classe de contrôle dont la fabrique de classe est celle-ci.

Notes

Les déclarations des fonctions de licence de fabrique de classes doivent commencer immédiatement après BEGIN_OLEFACTORY.

Spécifications

En-tête afxctl.h

END_OLEFACTORY

Termine la déclaration de la fabrique de classe de votre contrôle.

END_OLEFACTORY(class_name)

Paramètres

class_name
Nom de la classe de contrôle dont la fabrique de classe est celle-ci.

Spécifications

En-tête afxctl.h

AfxVerifyLicFile

Appelez cette fonction pour vérifier que le fichier de licence nommé par pszLicFileName est valide pour le contrôle OLE.

BOOL AFXAPI AfxVerifyLicFile(
    HINSTANCE  hInstance,
    LPCTSTR  pszLicFileName,
    LPOLESTR  pszLicFileContents,
    UINT cch = -1);

Paramètres

hInstance
Handle d’instance de la DLL associée au contrôle sous licence.

pszLicFileName
Pointe vers une chaîne de caractères terminée par null contenant le nom de fichier de licence.

pszLicFileContents
Pointe vers une séquence d’octets qui doit correspondre à la séquence trouvée au début du fichier de licence.

cch
Nombre de caractères dans pszLicFileContents.

Valeur de retour

Différent de zéro si le fichier de licence existe et commence par la séquence de caractères dans pszLicFileContents ; sinon, 0.

Notes

Si cch la valeur est -1, cette fonction utilise :

_tcslen(pszLicFileContents);

Spécifications

En-tête afxctl.h

Voir aussi

Macros et globals