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
, , b2
b5
b7
b1
b3
b4
b6
w2
b8
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