diff options
| author | joost <joost@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2010-07-16 16:14:29 +0000 |
|---|---|---|
| committer | joost <joost@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2010-07-16 16:14:29 +0000 |
| commit | 346c1c2da8f241919517d62b427797ea89e7b0df (patch) | |
| tree | 3c44656b0448d3e0aecb35334649a61076b24d1c | |
| parent | 60a70abf5cd080a171144d7b38a2fe054e9b4d22 (diff) | |
| download | fpc-346c1c2da8f241919517d62b427797ea89e7b0df.tar.gz | |
* Added the ability to un-register the eventlog message-file
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15586 3ad0048d-3df7-0310-abae-a5850022a9f2
| -rw-r--r-- | packages/fcl-base/src/dummy/eventlog.inc | 6 | ||||
| -rw-r--r-- | packages/fcl-base/src/eventlog.pp | 1 | ||||
| -rw-r--r-- | packages/fcl-base/src/unix/eventlog.inc | 6 | ||||
| -rw-r--r-- | packages/fcl-base/src/win/eventlog.inc | 17 |
4 files changed, 27 insertions, 3 deletions
diff --git a/packages/fcl-base/src/dummy/eventlog.inc b/packages/fcl-base/src/dummy/eventlog.inc index f147ff9ec1..f37ef11ef0 100644 --- a/packages/fcl-base/src/dummy/eventlog.inc +++ b/packages/fcl-base/src/dummy/eventlog.inc @@ -44,6 +44,12 @@ begin Result:=True; end; +Function TEventLog.UnRegisterMessageFile : Boolean; + +begin + Result:=True; +end; + function TEventLog.MapTypeToCategory(EventType: TEventType): Word; begin Result:=0; diff --git a/packages/fcl-base/src/eventlog.pp b/packages/fcl-base/src/eventlog.pp index 5f84ce36ed..e4f17a58a8 100644 --- a/packages/fcl-base/src/eventlog.pp +++ b/packages/fcl-base/src/eventlog.pp @@ -70,6 +70,7 @@ Type Destructor Destroy; override; Function EventTypeToString(E : TEventType) : String; Function RegisterMessageFile(AFileName : String) : Boolean; virtual; + Function UnRegisterMessageFile : Boolean; virtual; Procedure Log (EventType : TEventType; Msg : String); {$ifndef fpc }Overload;{$endif} Procedure Log (EventType : TEventType; Fmt : String; Args : Array of const); {$ifndef fpc }Overload;{$endif} Procedure Log (Msg : String); {$ifndef fpc }Overload;{$endif} diff --git a/packages/fcl-base/src/unix/eventlog.inc b/packages/fcl-base/src/unix/eventlog.inc index eec384ac7c..226507d168 100644 --- a/packages/fcl-base/src/unix/eventlog.inc +++ b/packages/fcl-base/src/unix/eventlog.inc @@ -95,6 +95,12 @@ begin Result:=True; end; +Function TEventLog.UnRegisterMessageFile : Boolean; + +begin + Result:=True; +end; + function TEventLog.MapTypeToCategory(EventType: TEventType): Word; begin Result:=0; diff --git a/packages/fcl-base/src/win/eventlog.inc b/packages/fcl-base/src/win/eventlog.inc index cce2153a65..e35524f11e 100644 --- a/packages/fcl-base/src/win/eventlog.inc +++ b/packages/fcl-base/src/win/eventlog.inc @@ -15,6 +15,9 @@ uses windows; +const + SKeyEventLog = 'SYSTEM\CurrentControlSet\Services\EventLog\Application\%s'; + Function TEventLog.DefaultFileName : String; begin @@ -70,7 +73,6 @@ end; Function TEventLog.RegisterMessageFile(AFileName : String) : Boolean; Const - SKeyEventLog = 'SYSTEM\CurrentControlSet\Services\EventLog\Application\%s'; SKeyCategoryCount = 'CategoryCount'; SKeyEventMessageFile = 'EventMessageFile'; SKeyCategoryMessageFile = 'CategoryMessageFile'; @@ -85,8 +87,6 @@ Var begin SecurityAttributes:=nil; CheckIdentification; - If AFileName='' then - AFileName:=ParamStr(0); ELKey:=Format(SKeyEventLog,[IDentification]); Result:=RegCreateKeyExA(HKEY_LOCAL_MACHINE, PChar(ELKey),0,'', @@ -96,6 +96,8 @@ begin pdword(@Disposition))=ERROR_SUCCESS; If Result then begin + If AFileName='' then + AFileName:=ParamStr(0); Value:=4; Result:=Result and (RegSetValueExA(Handle,PChar(SKeyCategoryCount),0,REG_DWORD,@Value,sizeof(DWORD))=ERROR_SUCCESS); Value:=7; @@ -105,6 +107,15 @@ begin end; end; +Function TEventLog.UnRegisterMessageFile : Boolean; + +Var + ELKey : String; +begin + ELKey:=Format(SKeyEventLog,[IDentification]); + Result:=RegDeleteKeyA(HKEY_LOCAL_MACHINE,pchar(ELKey)); +end; + function TEventLog.MapTypeToCategory(EventType: TEventType): Word; begin If (EventType=ETCustom) then |
