Tak, zobacz funkcję ReportEvent i jej example.
Plik źródłowy dostawca wydarzenie z rozszerzeniem .mc wygląda następująco:
; // MyEventProvider.mc
; // This is the header section.
SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS
Informational=0x1:STATUS_SEVERITY_INFORMATIONAL
Warning=0x2:STATUS_SEVERITY_WARNING
Error=0x3:STATUS_SEVERITY_ERROR
)
FacilityNames=(System=0x0:FACILITY_SYSTEM
Runtime=0x2:FACILITY_RUNTIME
Stubs=0x3:FACILITY_STUBS
Io=0x4:FACILITY_IO_ERROR_CODE
)
LanguageNames=(English=0x409:MSG00409)
; // The following are the categories of events.
MessageIdTypedef=WORD
MessageId=0x1
SymbolicName=NETWORK_CATEGORY
Language=English
Network Events
... rest of file omitted
plik .mc jest kompilowany do pliku .res która jest związana w .dll:
skompilować komunikat plik tekstowy, należy użyć następującego polecenia:
mc -U provider.mc
skompilować zasobów, które kompilator generowane wiadomość, należy użyć następującego polecenia:
rc provider.rc
Aby utworzyć DLL zasobów, który zawiera tylko zasoby ciąg tabeli wiadomość, należy użyć następującego polecenia (można uruchomić polecenie z Visual Studio wiersza poleceń):
link -dll -noentry provider.res
...
Robiąc to programowo, możesz zacząć od [tutaj] (http://msdn.microsoft.com/en-us/library/dd996928 (v = vs.85) .aspx). – Jon