Messages EventLog
Journal d'événements NT : création d'un fichier de messages

Les fonctions de l'API Windows : OpenEventLog et ReportEvent permettent d'ouvrir et d'écrire dans le journal d'événements pour une application.
Le second argument de la fonction OpenEventLog, SourceName, doit désigner le nom de la source, qui peut être le nom de l'application.
Pour que l'Observateur d'événements puisse filtrer les événements, la clé "SourceName" doit exister dans le chemin de registres suivant :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\SourceName

On peut préciser un fichier de messages qui sera utilisé pour récupérer le message associé à l'idenficateur d'événement passé à la fonction ReportEvent. Définissez pour la clé "SourceName", la variable "EventMessageFile" de type REG_EXPAND_SZ, contenant le nom du module -généralement une dll de ressources- comprenant les messages.


Création du fichier de messages

La création d'un fichier de messages utilise l'utilitaire Microsoft Message Compiler (mc.exe), qui transforme un fichier texte, respectant une certaine syntaxe, en un fichier binaire devant être inclus dans un fichier script de ressources. Ce dernier fichier doit ensuite être compilé pour obtenir un fichier de ressources compilé qui sera lié à l'application.

Voici les étapes à suivre pour créer une dll de ressources comportant des messages utilisables par l'EventViewer :

1. Tout d'abord, créer un fichier texte d'extension mc (appelons le test.mc). On se reportera à l'aide du MS Message Compiler pour connaître la syntaxe à respecter. Par exemple :

MessageId=1
Language=English
HelloWorld
.

Prendre garde au fait qu'il faut toujours une nouvelle ligne après le point. Ici, nous utilisons "English" qui est la langue définit par défaut.


2. Invoquer mc.exe en passant en argument le fichier test.mc. Par exemple :

mc test.mc

Après cet appel mc aura créer un fichier en-tête .h, le fichier MSG00001.bin comportant les messages (nom par défaut pour la langue anglaise), et le fichier test.rc contenant, sous forme de script de ressouces, une référence au fichier MSG00001.bin.


3. Compiler le fichier de description de ressouces
Le fichier mc.rc peut ensuite être compilé pour obtenir le fichier de ressources compilé test.res qui sera lié au module final. On pourra utiliser le compilateur de ressources de Borland brcc32.exe.


4. Créer une nouvelle dll
Créer une nouvelle dll et y inclure le fichier de ressources compilé obtenu précédemment. Il ne reste plus qu'à compiler.
Dans une unité Pascal, on aura recours à directive {$R test.res}.
La valeur de la variable "EventMessageFile" (voir plus haut) doit contenir le chemin absolu de cette dll.

Sommaire

Journal d'événements NT : création d'un fichier de messages
Création du fichier de messages

Début

Copyright © 2003 OBJECT-EVERYWHERE. Tous droits réservés | Bertrand Goetzmann