Pour utiliser un objet COM celui-ci doit être “enregistré” dans la base de registre de la machine ou il réside afin que les applications client puissent le localiser. Pour ceci la méthode consiste à écrire un fichier d’inscription dans la base de registre, fichier D‟extension “.reg”. [MAR 98]
L’objet COM doit être identifié par un numéro unique CLSID sur 128 bits, également du type GUID. Au CLSID est associé un progID (identificateur) mais celui-ci n’est pas obligatoirement unique.
La référence mutuelle CLSID-progID se fait à l’aide des fonctions suivantes [MAR 98] :
– CLSIDFromProgID()
– ProgIDFromCLSID()
Voici un exemple de fichier d’enregistrement d’un composant “out-of process” local:
REGEDIT4
[HKEY_CLASSES_ROOT\Simple.Objet\CLSID]
@ = “{5BEB7BE0-F5C8-11d3-9F9F-00C06C736200}”
[HKEY_CLASSES_ROOT\CLSID\{5BEB7BE0-F5C8-11d3-9F9F-00C06C736200}]
@ = “Simple Objet Serveur” “AppID” = “{5BEB7BE0-F5C8-11d3-9F9F-00C06C736200}”
[HKEY_CLASSES_ROOT\CLSID\{5BEB7BE0-F5C8-11d3-9F9F- 00C06C736200}\LocalServer32]
@ = “c:\\ProjetCOM\\Debug\\Shell_com.exe”
[HKEY_CLASSES_ROOT\AppID\{5BEB7BE0-F5C8-11d3-9F9F-00C06C736200}]
@ = ” Simple Objet Serveur ”
La première ligne de commande ajoute un progID « Simple.Objet » avec le CLSID Correspondant.
La seconde ligne de commande installe la clé CLSID et fait le lien avec la clé AppID, c’est cette clé qui est lue par CoCreateInstance() (méthode pour l‟instanciation de clase d‟objet).[MAR 98] La troisième ligne de commande ajoute une sous clé au CLSID dont le nom de valeur précise Le type d’objet COM qui peut être [MAR 98]:
_ InprocServer32 composant 32 bits “in-process”
_ InprocHandler32 composant dll 32 bits
_ LocalServer32 composant exécutable 32 bits
_ RemoteServerName GUID référençant des informations complémentaires pour un composant distant.
Stocké dans
HKEY_CLASSES_ROOT\AppID\{monAppID}
La donnée de cette valeur donne le chemin du fichier associé.
Page suivante : 2.9 Application client
Retour au menu : UTILISATION DES SCRIPTS POUR LE DEVELOPPEMENT DES COMPOSANTS COM ADAPTABLES