summaryrefslogtreecommitdiff
path: root/packages/fcl-base
diff options
context:
space:
mode:
authorjoost <joost@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-07-16 16:14:29 +0000
committerjoost <joost@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-07-16 16:14:29 +0000
commit346c1c2da8f241919517d62b427797ea89e7b0df (patch)
tree3c44656b0448d3e0aecb35334649a61076b24d1c /packages/fcl-base
parent60a70abf5cd080a171144d7b38a2fe054e9b4d22 (diff)
downloadfpc-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
Diffstat (limited to 'packages/fcl-base')
-rw-r--r--packages/fcl-base/src/dummy/eventlog.inc6
-rw-r--r--packages/fcl-base/src/eventlog.pp1
-rw-r--r--packages/fcl-base/src/unix/eventlog.inc6
-rw-r--r--packages/fcl-base/src/win/eventlog.inc17
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