home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2002 April
/
Chip_2002-04_cd1.bin
/
zkuste
/
delphi
/
kolekce
/
d56
/
NT.ZIP
/
NTReportEvent.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
2002-01-14
|
2KB
|
71 lines
unit NTReportEvent;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TNTReportEvent = class(TComponent)
private
{ Private declarations }
FApplicationName:String;
FMessage:String;
FEventType:WORD;
FCategory:WORD;
FEventID:DWORD;
FUserSID:Integer;
FServerName:String;
protected
{ Protected declarations }
public
{ Public declarations }
published
{ Published declarations }
property ApplicationName:String read FApplicationName write FApplicationName;
property EventMessage:String read FMessage write FMessage;
property EventType:Word read FEventType write FEventType default 0;
property Category:Word read FCategory write FCategory default 1;
property EventID:DWORD read FEventID write FEventID default 0;
property UserSID:Integer read FUserSID write FUserSID;
property ServerName:String read FServerName write FServerName;
function Execute:Boolean;
end;
procedure Register;
implementation
function TNTReportEvent.Execute:Boolean;
var MyHandle:THandle;
MyMsg:Array[0..2] Of PChar;
begin
If ServerName='' Then
Begin
MyHandle:=RegisterEventSource(nil,PChar(FApplicationName));
End Else
Begin
MyHandle:=RegisterEventSource(PChar(FServerName),PChar(FApplicationName));
End;
If (MyHandle=0) Then
Begin
Result:=False;
Exit;
End;
MyMsg[0]:=PChar(FMessage);
If ReportEvent(MyHandle,FEventType,FCategory,FEventID,Pointer(FUserSID),1,0,@MyMsg,nil)=False Then
Begin
Result:=False;
Exit;
End;
DeregisterEventSource(MyHandle);
Result:=True;
End;
procedure Register;
begin
RegisterComponents('NT Tools - EventLog', [TNTReportEvent]);
end;
end.