Subversion Repositories simple_log_event

Compare Revisions

No changes between revisions

Regard whitespace Rev 2 → Rev 3

/trunk/LogTestUsingDelphi/LogWriteTestDelphi.exe
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Deleted: svn:mime-type
-application/octet-stream
\ No newline at end of property
/trunk/LogTestUsingDelphi/LogWriteTestDelphi.dpr
9,12 → 9,6
ActiveX,
ViaThinkSoftSimpleLogEvent_TLB in '..\TLB\ViaThinkSoftSimpleLogEvent_TLB.pas';
const
LOGEVENT_MSG_SUCCESS = 0;
LOGEVENT_MSG_INFORMATIONAL = 1;
LOGEVENT_MSG_WARNING = 2;
LOGEVENT_MSG_ERROR = 3;
 
var
x: IViaThinkSoftSimpleEventLog;
begin
22,9 → 16,9
CoInitialize(nil);
x := CoViaThinkSoftSimpleEventLog.Create;
{$IFDEF WIN64}
x.LogEvent(LOGEVENT_MSG_WARNING, 'This is a test warning written by Delphi 64 bit');
x.LogEvent('MySourceName', ViaThinkSoftSimpleLogEvent_TLB.Warning, 'This is a test warning written by Delphi 64 bit');
{$ELSE}
x.LogEvent(LOGEVENT_MSG_WARNING, 'This is a test warning written by Delphi 32 bit');
x.LogEvent('MySourceName', ViaThinkSoftSimpleLogEvent_TLB.Warning, 'This is a test warning written by Delphi 32 bit');
{$ENDIF}
x := nil;
//CoUninitialize; // TODO: If I do this, I get an access violation at process end?!
/trunk/LogTestUsingDelphi/LogWriteTestDelphi.dproj
6,7 → 6,7
<MainSource>LogWriteTestDelphi.dpr</MainSource>
<Base>True</Base>
<Config Condition="'$(Config)'==''">Release</Config>
<Platform Condition="'$(Platform)'==''">Win32</Platform>
<Platform Condition="'$(Platform)'==''">Win64</Platform>
<TargetedPlatforms>3</TargetedPlatforms>
<AppType>Console</AppType>
</PropertyGroup>
/trunk/LogTestUsingDelphi/LogWriteTestDelphi32.exe
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/LogTestUsingDelphi/LogWriteTestDelphi64.exe
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/LogTestUsingPHP/LogTest.php
27,10 → 27,10
}
 
if (PHP_INT_SIZE == 8) {
$x->LogEvent(LOGEVENT_MSG_WARNING, 'This is a test warning written by 64 bit PHP');
$x->LogEvent('MySourceName', LOGEVENT_MSG_WARNING, 'This is a test warning written by 64 bit PHP');
} else if (PHP_INT_SIZE == 4) {
$x->LogEvent(LOGEVENT_MSG_WARNING, 'This is a test warning written by 32 bit PHP');
$x->LogEvent('MySourceName', LOGEVENT_MSG_WARNING, 'This is a test warning written by 32 bit PHP');
} else {
// Should never happen!
$x->LogEvent(LOGEVENT_MSG_WARNING, 'This is a test warning written by whatever-bit PHP');
$x->LogEvent('MySourceName', LOGEVENT_MSG_WARNING, 'This is a test warning written by whatever-bit PHP');
}
/trunk/LogTestUsingVBS/LogTest.vbs
7,6 → 7,6
const LOGEVENT_MSG_WARNING = 2
const LOGEVENT_MSG_ERROR = 3
 
objMyObject.LogEvent LOGEVENT_MSG_WARNING, "This is a test warning written by VBS"
objMyObject.LogEvent "MySourceName", LOGEVENT_MSG_WARNING, "This is a test warning written by VBS"
 
MsgBox "OK"
/trunk/README.txt
14,15 → 14,18
without MessageTable/Provider.
 
 
Distribution to the end user (files found in folder "TLB")
Distribution to the end user
----------------------------
 
Register.bat
UnRegister.bat
ViaThinkSoftSimpleLogEvent32.dll
ViaThinkSoftSimpleLogEvent64.dll
You only need to deploy SimpleLogEventSetup.exe
which is located in the folder "Setup".
 
The EXE file contains everything inside:
- 32 bit and 64 bit DLL (will be unpacked to target location)
- Registration procedure for COM/Typelib
- Registration procedure for SourceNames
 
 
Installation
------------
 
57,7 → 60,7
const LOGEVENT_MSG_WARNING = 2
const LOGEVENT_MSG_ERROR = 3
 
objMyObject.LogEvent LOGEVENT_MSG_WARNING, "This is a test warning written by VBS"
objMyObject.LogEvent "MySourceName", LOGEVENT_MSG_WARNING, "This is a test warning written by VBS"
 
 
Example usage with PHP
71,7 → 74,7
define('LOGEVENT_MSG_ERROR', 3);
 
$x = new COM(CLASS_ViaThinkSoftSimpleEventLog);
$x->LogEvent(LOGEVENT_MSG_WARNING, 'This is a test warning written by PHP');
$x->LogEvent('MySourceName', LOGEVENT_MSG_WARNING, 'This is a test warning written by PHP');
 
 
Example usage with Delphi
81,23 → 84,43
ActiveX,
ViaThinkSoftSimpleLogEvent_TLB;
 
const
LOGEVENT_MSG_SUCCESS = 0;
LOGEVENT_MSG_INFORMATIONAL = 1;
LOGEVENT_MSG_WARNING = 2;
LOGEVENT_MSG_ERROR = 3;
 
procedure LogTest;
var
x: IViaThinkSoftSimpleEventLog;
begin
CoInitialize(nil); // <-- only needs to be called once
CoInitialize(nil); // needs to be called only once
x := CoViaThinkSoftSimpleEventLog.Create;
x.LogEvent(LOGEVENT_MSG_WARNING, 'This is a test warning written by Delphi');
x.LogEvent('MySourceName', ViaThinkSoftSimpleLogEvent_TLB.Warning, 'This is a test warning written by Delphi');
x := nil;
end.
 
 
A short note about the compilation workflow (for developers)
-------------------------------------------
 
This only applies if you want to change/extend/fork ViaThinkSoftSimpleEventLog yourself.
You do not need this if you just want to use ViaThinkSoftSimpleEventLog to log events.
 
1. In folder "MessageTable":
Run "EventlogMessagesCompile.bat", it will do:
- MC file => RC+BIN files (using "mc.exe" from Windows SDK)
- RC+BIN files => RES file (using "rc.exe")
2. In folder "TLB":
Compile using Delphi (it will include the MessageTable RES file):
- ViaThinkSoftSimpleLogEvent32.dll
- ViaThinkSoftSimpleLogEvent64.dll
 
3. In folder "Setup":
3.1 Run "DllResCompile.bat", it will do:
- RC file => RES file (will include the two DLLs from folder "TLB")
3.2 Then, compile SimpleLogEventSetup.exe using Delphi
 
4. In folder "LogTestUsingDelphi":
Compile LogWriteTestDelphi*.exe using Delphi
(it will read "ViaThinkSoftSimpleLogEvent_TLB.pas" from the "TLB" folder)
 
 
License
-------
 
/trunk/Setup/DelWaste.bat
0,0 → 1,8
@echo off
 
rd /s /q "%~dp0\__history"
rd /s /q "%~dp0\__recovery"
del "%~dp0*.dcu"
del "%~dp0*.rsm"
del "%~dp0*.local"
del "%~dp0*.identcache"
/trunk/Setup/DllRes.RES
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/Setup/DllRes.rc
0,0 → 1,2
32 DLL "..\\TLB\\ViaThinkSoftSimpleLogEvent32.dll"
64 DLL "..\\TLB\\ViaThinkSoftSimpleLogEvent64.dll"
/trunk/Setup/DllResCompile.bat
0,0 → 1,6
@echo on
 
rem RC => RES
rc DllRes.rc
 
pause.
/trunk/Setup/ManualEventSourceRegistration.reg
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/Setup/SimpleLogEventSetup.dpr
0,0 → 1,14
program SimpleLogEventSetup;
 
uses
Vcl.Forms,
SimpleLogEventSetupMain in 'SimpleLogEventSetupMain.pas' {Form1};
 
{$R *.res}
 
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
/trunk/Setup/SimpleLogEventSetup.dproj
0,0 → 1,982
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{28637C2A-04A6-4A3C-9993-64995E454E56}</ProjectGuid>
<ProjectVersion>18.8</ProjectVersion>
<FrameworkType>VCL</FrameworkType>
<MainSource>SimpleLogEventSetup.dpr</MainSource>
<Base>True</Base>
<Config Condition="'$(Config)'==''">Release</Config>
<Platform Condition="'$(Platform)'==''">Win32</Platform>
<TargetedPlatforms>1</TargetedPlatforms>
<AppType>Application</AppType>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
<Base_Win32>true</Base_Win32>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
<Base_Win64>true</Base_Win64>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
<Cfg_1>true</Cfg_1>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
<Cfg_1_Win32>true</Cfg_1_Win32>
<CfgParent>Cfg_1</CfgParent>
<Cfg_1>true</Cfg_1>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
<Cfg_2>true</Cfg_2>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''">
<Cfg_2_Win32>true</Cfg_2_Win32>
<CfgParent>Cfg_2</CfgParent>
<Cfg_2>true</Cfg_2>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Base)'!=''">
<DCC_E>false</DCC_E>
<DCC_N>false</DCC_N>
<DCC_S>false</DCC_S>
<DCC_F>false</DCC_F>
<DCC_K>false</DCC_K>
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_Namespace>
<Icon_MainIcon>$(BDS)\bin\delphi_PROJECTICON.ico</Icon_MainIcon>
<UWP_DelphiLogo44>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png</UWP_DelphiLogo44>
<UWP_DelphiLogo150>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png</UWP_DelphiLogo150>
<VerInfo_Locale>1031</VerInfo_Locale>
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
<SanitizedProjectName>SimpleLogEventSetup</SanitizedProjectName>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_Win32)'!=''">
<DCC_UsePackage>DBXSqliteDriver;IndyIPCommon;RESTComponents;bindcompdbx;DBXInterBaseDriver;vcl;IndyIPServer;vclactnband;vclFireDAC;IndySystem;tethering;svnui;dsnapcon;FireDACADSDriver;FireDACMSAccDriver;fmxFireDAC;vclimg;FireDAC;vcltouch;vcldb;bindcompfmx;svn;FireDACSqliteDriver;FireDACPgDriver;inetdb;soaprtl;DbxCommonDriver;fmx;FireDACIBDriver;fmxdae;xmlrtl;soapmidas;fmxobj;vclwinx;rtl;DbxClientDriver;CustomIPTransport;vcldsnap;dbexpress;IndyCore;vclx;SynEditDR;bindcomp;appanalytics;dsnap;FireDACCommon;IndyIPClient;bindcompvcl;RESTBackendComponents;VCLRESTComponents;soapserver;dbxcds;VclSmp;adortl;vclie;bindengine;DBXMySQLDriver;CloudService;dsnapxml;FireDACMySQLDriver;dbrtl;IndyProtocols;inetdbxpress;FireDACCommonODBC;FireDACCommonDriver;inet;fmxase;$(DCC_UsePackage)</DCC_UsePackage>
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
<BT_BuildType>Debug</BT_BuildType>
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
<VerInfo_Locale>1033</VerInfo_Locale>
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_Win64)'!=''">
<DCC_UsePackage>DBXSqliteDriver;IndyIPCommon;RESTComponents;bindcompdbx;DBXInterBaseDriver;vcl;IndyIPServer;vclactnband;vclFireDAC;IndySystem;tethering;dsnapcon;FireDACADSDriver;FireDACMSAccDriver;fmxFireDAC;vclimg;FireDAC;vcltouch;vcldb;bindcompfmx;FireDACSqliteDriver;FireDACPgDriver;inetdb;soaprtl;DbxCommonDriver;fmx;FireDACIBDriver;fmxdae;xmlrtl;soapmidas;fmxobj;vclwinx;rtl;DbxClientDriver;CustomIPTransport;vcldsnap;dbexpress;IndyCore;vclx;SynEditDR;bindcomp;appanalytics;dsnap;FireDACCommon;IndyIPClient;bindcompvcl;RESTBackendComponents;VCLRESTComponents;soapserver;dbxcds;VclSmp;adortl;vclie;bindengine;DBXMySQLDriver;CloudService;dsnapxml;FireDACMySQLDriver;dbrtl;IndyProtocols;inetdbxpress;FireDACCommonODBC;FireDACCommonDriver;inet;fmxase;$(DCC_UsePackage)</DCC_UsePackage>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_1)'!=''">
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
<DCC_DebugDCUs>true</DCC_DebugDCUs>
<DCC_Optimize>false</DCC_Optimize>
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
<DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
<DCC_RemoteDebug>true</DCC_RemoteDebug>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
<DCC_RemoteDebug>false</DCC_RemoteDebug>
<AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
<AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<VerInfo_Locale>1033</VerInfo_Locale>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2)'!=''">
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
<DCC_DebugInformation>0</DCC_DebugInformation>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
<AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
<AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
</PropertyGroup>
<ItemGroup>
<DelphiCompile Include="$(MainSource)">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="SimpleLogEventSetupMain.pas">
<Form>Form1</Form>
<FormType>dfm</FormType>
</DCCReference>
<BuildConfiguration Include="Release">
<Key>Cfg_2</Key>
<CfgParent>Base</CfgParent>
</BuildConfiguration>
<BuildConfiguration Include="Base">
<Key>Base</Key>
</BuildConfiguration>
<BuildConfiguration Include="Debug">
<Key>Cfg_1</Key>
<CfgParent>Base</CfgParent>
</BuildConfiguration>
</ItemGroup>
<ProjectExtensions>
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
<Borland.ProjectType>Application</Borland.ProjectType>
<BorlandProject>
<Delphi.Personality>
<Source>
<Source Name="MainSource">SimpleLogEventSetup.dpr</Source>
</Source>
<Excluded_Packages>
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k260.bpl">Microsoft Office 2000 Beispiele für gekapselte Komponenten für Automatisierungsserver</Excluded_Packages>
<Excluded_Packages Name="$(BDSBIN)\dclofficexp260.bpl">Microsoft Office XP Beispiele für gekapselte Komponenten für Automation Server</Excluded_Packages>
</Excluded_Packages>
</Delphi.Personality>
<Deployment Version="3">
<DeployFile LocalName="Win32\Debug\SimpleLogEventSetup.exe" Configuration="Debug" Class="ProjectOutput">
<Platform Name="Win32">
<RemoteName>SimpleLogEventSetup.exe</RemoteName>
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployFile LocalName="SimpleLogEventSetup.exe" Configuration="Release" Class="ProjectOutput">
<Platform Name="Win32">
<RemoteName>SimpleLogEventSetup.exe</RemoteName>
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployClass Name="AdditionalDebugSymbols">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidClassesDexFile">
<Platform Name="Android">
<RemoteDir>classes</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>classes</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidFileProvider">
<Platform Name="Android">
<RemoteDir>res\xml</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\xml</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidGDBServer">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeArmeabiFile">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>library\lib\armeabi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeArmeabiv7aFile">
<Platform Name="Android64">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeMipsFile">
<Platform Name="Android">
<RemoteDir>library\lib\mips</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>library\lib\mips</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidServiceOutput">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>library\lib\arm64-v8a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidServiceOutput_Android32">
<Platform Name="Android64">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashImageDef">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashStyles">
<Platform Name="Android">
<RemoteDir>res\values</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\values</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashStylesV21">
<Platform Name="Android">
<RemoteDir>res\values-v21</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\values-v21</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_Colors">
<Platform Name="Android">
<RemoteDir>res\values</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\values</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_DefaultAppIcon">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon144">
<Platform Name="Android">
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon36">
<Platform Name="Android">
<RemoteDir>res\drawable-ldpi</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\drawable-ldpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon48">
<Platform Name="Android">
<RemoteDir>res\drawable-mdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\drawable-mdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon72">
<Platform Name="Android">
<RemoteDir>res\drawable-hdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\drawable-hdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon96">
<Platform Name="Android">
<RemoteDir>res\drawable-xhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\drawable-xhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_NotificationIcon24">
<Platform Name="Android">
<RemoteDir>res\drawable-mdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\drawable-mdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_NotificationIcon36">
<Platform Name="Android">
<RemoteDir>res\drawable-hdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\drawable-hdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_NotificationIcon48">
<Platform Name="Android">
<RemoteDir>res\drawable-xhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\drawable-xhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_NotificationIcon72">
<Platform Name="Android">
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_NotificationIcon96">
<Platform Name="Android">
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage426">
<Platform Name="Android">
<RemoteDir>res\drawable-small</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\drawable-small</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage470">
<Platform Name="Android">
<RemoteDir>res\drawable-normal</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\drawable-normal</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage640">
<Platform Name="Android">
<RemoteDir>res\drawable-large</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\drawable-large</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage960">
<Platform Name="Android">
<RemoteDir>res\drawable-xlarge</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\drawable-xlarge</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_Strings">
<Platform Name="Android">
<RemoteDir>res\values</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\values</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DebugSymbols">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyFramework">
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.framework</Extensions>
</Platform>
<Platform Name="OSX64">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.framework</Extensions>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyModule">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX64">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
</DeployClass>
<DeployClass Required="true" Name="DependencyPackage">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX64">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.bpl</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="File">
<Platform Name="Android">
<Operation>0</Operation>
</Platform>
<Platform Name="Android64">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\Resources\StartUp\</RemoteDir>
<Operation>0</Operation>
</Platform>
<Platform Name="OSX64">
<RemoteDir>Contents\Resources\StartUp\</RemoteDir>
<Operation>0</Operation>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1024x768">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1536x2048">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1668">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1668x2388">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch2048x1536">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch2048x2732">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch2224">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch2388x1668">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch2732x2048">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch768x1024">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch1125">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch1136x640">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch1242">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch1242x2688">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch1334">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch1792">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch2208">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch2436">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch2688x1242">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch320">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640x1136">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch750">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch828">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectAndroidManifest">
<Platform Name="Android">
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSDeviceDebug">
<Platform Name="iOSDevice32">
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSDeviceResourceRules">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSEntitlements">
<Platform Name="iOSDevice32">
<RemoteDir>..\</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<RemoteDir>..\</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSInfoPList">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSResource">
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXDebug">
<Platform Name="OSX64">
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXEntitlements">
<Platform Name="OSX32">
<RemoteDir>..\</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="OSX64">
<RemoteDir>..\</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXInfoPList">
<Platform Name="OSX32">
<RemoteDir>Contents</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="OSX64">
<RemoteDir>Contents</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXResource">
<Platform Name="OSX32">
<RemoteDir>Contents\Resources</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="OSX64">
<RemoteDir>Contents\Resources</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Required="true" Name="ProjectOutput">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>library\lib\arm64-v8a</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="Linux64">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="OSX64">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOutput_Android32">
<Platform Name="Android64">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectUWPManifest">
<Platform Name="Win32">
<Operation>1</Operation>
</Platform>
<Platform Name="Win64">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="UWP_DelphiLogo150">
<Platform Name="Win32">
<RemoteDir>Assets</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Win64">
<RemoteDir>Assets</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="UWP_DelphiLogo44">
<Platform Name="Win32">
<RemoteDir>Assets</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Win64">
<RemoteDir>Assets</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
</Deployment>
<Platforms>
<Platform value="Win32">True</Platform>
<Platform value="Win64">False</Platform>
</Platforms>
</BorlandProject>
<ProjectFileVersion>12</ProjectFileVersion>
</ProjectExtensions>
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
</Project>
/trunk/Setup/SimpleLogEventSetup.exe
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/Setup/SimpleLogEventSetup.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/Setup/SimpleLogEventSetupMain.dfm
0,0 → 1,195
object Form1: TForm1
Left = 0
Top = 0
Caption = 'ViaThinkSoft Simple Event Log Setup'
ClientHeight = 530
ClientWidth = 784
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
OnShow = FormShow
DesignSize = (
784
530)
PixelsPerInch = 96
TextHeight = 13
object GroupBox1: TGroupBox
Left = 8
Top = 8
Width = 768
Height = 209
Anchors = [akLeft, akTop, akRight]
Caption = 'Status of installation / registration'
TabOrder = 0
DesignSize = (
768
209)
object Label1: TLabel
Left = 24
Top = 29
Width = 28
Height = 13
Caption = '32-Bit'
end
object Label2: TLabel
Left = 24
Top = 80
Width = 28
Height = 13
Caption = '64-Bit'
end
object Label3: TLabel
Left = 24
Top = 142
Width = 311
Height = 13
Caption =
'The installation and registration of the DLL files has two reaso' +
'ns:'
end
object Label4: TLabel
Left = 24
Top = 161
Width = 351
Height = 13
Caption =
'1. It offers a COM Interface for applications to use in order to' +
' log events'
end
object Label5: TLabel
Left = 24
Top = 180
Width = 504
Height = 13
Caption =
'2. It is required in the definition of a "Log Event Provider" wh' +
'ich is required by the Windows Event Viewer'
end
object Edit1: TEdit
Left = 24
Top = 48
Width = 720
Height = 21
Anchors = [akLeft, akTop, akRight]
Enabled = False
TabOrder = 0
Text = 'Edit1'
end
object Button1: TButton
Left = 581
Top = 142
Width = 163
Height = 25
Anchors = [akTop, akRight]
Caption = 'Re-Install'
TabOrder = 1
OnClick = Button1Click
end
object Edit2: TEdit
Left = 24
Top = 99
Width = 720
Height = 21
Anchors = [akLeft, akTop, akRight]
Enabled = False
TabOrder = 2
Text = 'Edit1'
end
end
object GroupBox2: TGroupBox
Left = 8
Top = 232
Width = 768
Height = 290
Anchors = [akLeft, akTop, akRight, akBottom]
Caption = 'Registered Log Sources'
TabOrder = 1
DesignSize = (
768
290)
object Label6: TLabel
Left = 272
Top = 32
Width = 371
Height = 13
Caption =
'Here, you can register Log Event Source names your applications ' +
'should use.'
end
object Label7: TLabel
Left = 272
Top = 51
Width = 297
Height = 13
Caption = 'If an application logs an event with an unknown source name,'
end
object Label8: TLabel
Left = 272
Top = 70
Width = 353
Height = 13
Caption =
'you will see an error message in the Windows Event Viewer simila' +
'r to this:'
end
object Label9: TLabel
Left = 272
Top = 89
Width = 382
Height = 13
Caption =
' "The description for Event ID ... from sour' +
'ce ... cannot be found")'
end
object Label10: TLabel
Left = 272
Top = 108
Width = 461
Height = 13
Caption =
'However, the original message is still readable. But it is still' +
' more ccorrect to register the source.'
end
object ListBox1: TListBox
Left = 24
Top = 32
Width = 217
Height = 234
Anchors = [akLeft, akTop, akBottom]
ItemHeight = 13
TabOrder = 0
end
object Edit3: TEdit
Left = 353
Top = 241
Width = 136
Height = 21
Anchors = [akLeft, akBottom]
TabOrder = 1
end
object Button2: TButton
Left = 272
Top = 241
Width = 75
Height = 25
Anchors = [akLeft, akBottom]
Caption = 'Add new:'
TabOrder = 2
OnClick = Button2Click
end
object Button3: TButton
Left = 272
Top = 194
Width = 129
Height = 25
Anchors = [akLeft, akBottom]
Caption = 'Delete selected'
TabOrder = 3
OnClick = Button3Click
end
end
end
/trunk/Setup/SimpleLogEventSetupMain.pas
0,0 → 1,357
unit SimpleLogEventSetupMain;
 
interface
 
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
 
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
GroupBox2: TGroupBox;
ListBox1: TListBox;
Edit3: TEdit;
Button2: TButton;
Button3: TButton;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
found32: string;
found64: string;
procedure CheckInstallation;
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
 
var
Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
{$R DllRes.res}
 
uses
ShellApi, ShlObj, Registry;
 
Function Wow64DisableWow64FsRedirection(Var Wow64FsEnableRedirection: LongBool): LongBool; StdCall;
External 'Kernel32.dll' Name 'Wow64DisableWow64FsRedirection';
Function Wow64EnableWow64FsRedirection(Wow64FsEnableRedirection: LongBool): LongBool; StdCall;
External 'Kernel32.dll' Name 'Wow64EnableWow64FsRedirection';
 
procedure RegSvr32(const dll: string);
begin
ShellExecute(Form1.Handle, 'open', 'regsvr32.exe', PChar('"' + dll + '"'), '', SW_NORMAL);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
rs: TResourceStream;
Wow64FsEnableRedirection: LongBool;
reg: TRegistry;
sl: TStringList;
kn: string;
test: string;
lastregfile: string;
begin
if not IsUserAnAdmin then
begin
raise Exception.Create('To register the libraries, this application needs to run as administrator.');
end;
 
try
{$REGION 'Copy DLL to common files'}
 
if TOSVersion.Architecture = TOSVersion.TArchitecture.arIntelX86 then
begin
{$REGION '32 Bit Windows'}
lastregfile := 'C:\Program Files\Common Files\ViaThinkSoft\ViaThinkSoftSimpleLogEvent32.dll';
ForceDirectories(ExtractFilePath(lastregfile));
rs := TResourceStream.CreateFromID(HInstance, 32, PChar('DLL'));
rs.SaveToFile(lastregfile);
rs.Free;
RegSvr32(lastregfile);
{$ENDREGION}
end;
 
if TOSVersion.Architecture = TOSVersion.TArchitecture.arIntelX64 then
begin
{$REGION '64 Bit Windows'}
Wow64DisableWow64FsRedirection(Wow64FsEnableRedirection);
try
lastregfile := 'C:\Program Files (x86)\Common Files\ViaThinkSoft\ViaThinkSoftSimpleLogEvent32.dll';
ForceDirectories(ExtractFilePath(lastregfile));
rs := TResourceStream.CreateFromID(HInstance, 32, PChar('DLL'));
rs.SaveToFile(lastregfile);
rs.Free;
RegSvr32(lastregfile);
 
lastregfile := 'C:\Program Files\Common Files\ViaThinkSoft\ViaThinkSoftSimpleLogEvent64.dll';
ForceDirectories(ExtractFilePath(lastregfile));
rs := TResourceStream.CreateFromID(HInstance, 64, PChar('DLL'));
rs.SaveToFile(lastregfile);
rs.Free;
RegSvr32(lastregfile);
finally
Wow64EnableWow64FsRedirection(Wow64FsEnableRedirection);
end;
{$ENDREGION}
end;
 
{$ENDREGION}
 
{$REGION 'Update DLL path in log provider list'}
reg := TRegistry.Create;
sl := TStringList.Create;
try
reg.RootKey := HKEY_LOCAL_MACHINE;
if reg.OpenKey('SYSTEM\CurrentControlSet\services\eventlog\Application', false) then
begin
reg.GetKeyNames(sl);
reg.CloseKey;
for kn in sl do
begin
if reg.OpenKey('SYSTEM\CurrentControlSet\services\eventlog\Application\' + kn, false) then
begin
test := reg.ReadString('EventMessageFile');
if Pos('VIATHINKSOFTSIMPLELOGEVENT', UpperCase(test)) > 0 then
begin
if test <> lastregfile then
begin
reg.WriteString('EventMessageFile', lastregfile);
end;
end;
reg.CloseKey;
end;
end;
end;
finally
FreeAndNil(reg);
FreeAndNil(sl);
end;
{$ENDREGION}
 
finally
CheckInstallation;
end;
end;
 
const
DEFECTIVE_SUFFIX = ' (defective)';
 
procedure RegisterEventLogProvider(ProviderName, MessageFile: string);
var
reg: TRegistry;
begin
reg := TRegistry.Create;
try
reg.RootKey := HKEY_LOCAL_MACHINE;
if not reg.OpenKey('SYSTEM\CurrentControlSet\Services\Eventlog\Application\'+ProviderName, true) then
begin
raise Exception.Create('Cannot register EventLog provider! Please run the application as administrator');
end
else
begin
reg.WriteInteger('CategoryCount', 0);
reg.WriteInteger('TypesSupported', 7);
reg.WriteString('EventMessageFile', MessageFile);
reg.WriteString('CategoryMessageFile', MessageFile);
reg.CloseKey;
end;
finally
reg.Free;
end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
if FileExists(found64) then
begin
RegisterEventLogProvider(Edit3.Text, found64);
end
else if FileExists(found32) then
begin
RegisterEventLogProvider(Edit3.Text, found32);
end
else
begin
raise Exception.Create('Please first register the DLL');
end;
 
CheckInstallation;
 
Edit3.Text := '';
end;
 
procedure TForm1.Button3Click(Sender: TObject);
var
text: string;
reg: TRegistry;
begin
if ListBox1.ItemIndex = -1 then exit;
text := ListBox1.Items.Strings[ListBox1.ItemIndex];
text := StringReplace(text, DEFECTIVE_SUFFIX, '', []);
 
reg := TRegistry.Create;
try
reg.RootKey := HKEY_LOCAL_MACHINE;
if not reg.DeleteKey('SYSTEM\CurrentControlSet\services\eventlog\Application\' + text) then
begin
raise Exception.Create('Failed to remove item. Are you admin?');
end;
finally
FreeAndNil(reg);
end;
 
CheckInstallation;
end;
 
procedure TForm1.CheckInstallation;
var
reg: TRegistry;
filename: string;
Wow64FsEnableRedirection: LongBool;
sl: TStrings;
kn: string;
test: string;
begin
found32 := '';
found64 := '';
 
if TOSVersion.Architecture = TOSVersion.TArchitecture.arIntelX64 then
begin
Wow64DisableWow64FsRedirection(Wow64FsEnableRedirection);
end;
try
{$REGION '32 Bit'}
reg := TRegistry.Create;
try
reg.RootKey := HKEY_CLASSES_ROOT;
if not reg.OpenKeyReadOnly('TypeLib\{D7654BA7-41D0-4FF9-8543-C3A4DA936856}\1.0\0\win32') then
begin
Edit1.Text := 'NOT INSTALLED';
Edit1.Color := clRed;
end
else
begin
filename := reg.ReadString('');
if FileExists(filename) then
begin
Edit1.Text := 'Installed at ' + FileName;
Edit1.Color := clLime;
found32 := FileName;
end
else
begin
Edit1.Text := 'MISSING at location ' + FileName;
Edit1.Color := clRed;
end;
reg.CloseKey;
end;
finally
FreeAndNil(reg);
end;
{$ENDREGION}
 
{$REGION '64 Bit'}
if TOSVersion.Architecture = TOSVersion.TArchitecture.arIntelX86 then
begin
Edit2.Text := 'Not applicable on a 32-bit operating system';
Edit2.Color := clLime;
end
else
begin
reg := TRegistry.Create;
try
reg.RootKey := HKEY_CLASSES_ROOT;
if not reg.OpenKeyReadOnly('TypeLib\{D7654BA7-41D0-4FF9-8543-C3A4DA936856}\1.0\0\win64') then
begin
Edit2.Text := 'NOT INSTALLED';
Edit2.Color := clRed;
end
else
begin
filename := reg.ReadString('');
if FileExists(filename) then
begin
Edit2.Text := 'Installed at ' + FileName;
Edit2.Color := clLime;
found64 := FileName;
end
else
begin
Edit2.Text := 'MISSING at location ' + FileName;
Edit2.Color := clRed;
end;
reg.CloseKey;
end;
finally
FreeAndNil(reg);
end;
end;
{$ENDREGION}
 
finally
if TOSVersion.Architecture = TOSVersion.TArchitecture.arIntelX64 then
begin
Wow64EnableWow64FsRedirection(Wow64FsEnableRedirection);
end;
end;
 
{$REGION 'List providers'}
ListBox1.Clear;
reg := TRegistry.Create;
sl := TStringList.Create;
try
reg.RootKey := HKEY_LOCAL_MACHINE;
if reg.OpenKeyReadOnly('SYSTEM\CurrentControlSet\services\eventlog\Application') then
begin
reg.GetKeyNames(sl);
reg.CloseKey;
for kn in sl do
begin
if reg.OpenKeyReadOnly('SYSTEM\CurrentControlSet\services\eventlog\Application\' + kn) then
begin
test := reg.ReadString('EventMessageFile');
if Pos('VIATHINKSOFTSIMPLELOGEVENT', UpperCase(test)) > 0 then
begin
if not FileExists(test) then
ListBox1.Items.Add(kn + DEFECTIVE_SUFFIX)
else
ListBox1.Items.Add(kn);
end;
reg.CloseKey;
end;
end;
end;
finally
FreeAndNil(reg);
FreeAndNil(sl);
end;
{$ENDREGION}
end;
 
procedure TForm1.FormShow(Sender: TObject);
begin
CheckInstallation;
end;
 
end.
/trunk/TLB/ViaThinkSoftSimpleLogEvent.dpr
2,10 → 2,6
 
uses
ComServ,
Registry,
Vcl.Dialogs,
Windows,
SysUtils,
ViaThinkSoftSimpleLogEvent_TLB in 'ViaThinkSoftSimpleLogEvent_TLB.pas',
ViaThinkSoftSimpleLogEvent_Impl in 'ViaThinkSoftSimpleLogEvent_Impl.pas' {ViaThinkSoftSimpleEventLog: CoClass};
 
15,60 → 11,6
 
{$R '..\MessageTable\EventlogMessages.RES'}
 
function GetOwnDllPath: string;
var
reg: TRegistry;
regKey: string;
begin
result := '';
reg := TRegistry.Create;
try
reg.RootKey := HKEY_CLASSES_ROOT;
{$IFDEF WIN64}
regKey := 'TypeLib\'+GuidToString(LIBID_ViaThinkSoftSimpleLogEvent)+'\1.0\0\win64';
{$ELSE}
regKey := 'TypeLib\'+GuidToString(LIBID_ViaThinkSoftSimpleLogEvent)+'\1.0\0\win32';
{$ENDIF}
if reg.OpenKeyReadOnly(regKey) then
begin
result := reg.ReadString('');
reg.CloseKey;
end;
finally
reg.Free;
end;
end;
 
procedure RegisterEventLogProviderIfRequired;
var
reg: TRegistry;
begin
reg := TRegistry.Create;
try
reg.RootKey := HKEY_LOCAL_MACHINE;
if not reg.OpenKey('SYSTEM\CurrentControlSet\Services\Eventlog\Application\'+LOGEVENT_PROVIDER_NAME, true) then
begin
ShowMessage('Cannot register EventLog provider! Please run the application as administrator');
end
else
begin
reg.WriteInteger('CategoryCount', 0);
reg.WriteInteger('TypesSupported', 7);
reg.WriteString('EventMessageFile', GetOwnDllPath);
reg.WriteString('CategoryMessageFile', GetOwnDllPath);
reg.CloseKey;
end;
finally
reg.Free;
end;
end;
 
function DllRegisterServer: HResult;
begin
result := ComServ.DllRegisterServer;
RegisterEventLogProviderIfRequired;
end;
 
exports
DllGetClassObject,
DllCanUnloadNow,
/trunk/TLB/ViaThinkSoftSimpleLogEvent.dproj
9,7 → 9,7
<ProjectVersion>18.8</ProjectVersion>
<Base>True</Base>
<Config Condition="'$(Config)'==''">Release</Config>
<Platform Condition="'$(Platform)'==''">Win64</Platform>
<Platform Condition="'$(Platform)'==''">Win32</Platform>
<TargetedPlatforms>3</TargetedPlatforms>
<AppType>Library</AppType>
</PropertyGroup>
/trunk/TLB/ViaThinkSoftSimpleLogEvent.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/TLB/ViaThinkSoftSimpleLogEvent.ridl
6,7 → 6,7
// Änderungen. Wenn Sie aber Änderungen mit dem Editor vornehmen, wird diese
// Datei neu erzeugt und Kommentare oder Formatänderungen gehen verloren.
// ************************************************************************ //
// Datei erzeugt am 29.04.2020 21:29:52 (- $Rev: 12980 $, 7765620).
// Datei erzeugt am 30.04.2020 23:03:28 (- $Rev: 12980 $, 10609955).
 
[
uuid(D7654BA7-41D0-4FF9-8543-C3A4DA936856),
24,6 → 24,17
 
 
[
uuid(7E436E11-889B-4DB6-8530-D3933ED080A2)
]
enum LogEventType
{
Success = 0,
Informational = 1,
Warning = 2,
Error = 3
};
 
[
uuid(4094657E-8199-460F-A3DD-5BB63B6B0F65),
version(1.0),
helpstring("Dispatch interface for ViaThinkSoftSimpleEventLog Object"),
33,7 → 44,7
interface IViaThinkSoftSimpleEventLog: IDispatch
{
[id(0x000000C9)]
HRESULT _stdcall LogEvent([in] long EventType, [in] BSTR LogMsg);
HRESULT _stdcall LogEvent([in] BSTR SourceName, [in] enum LogEventType EventType, [in] BSTR LogMsg);
};
 
[
/trunk/TLB/ViaThinkSoftSimpleLogEvent.tlb
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/TLB/ViaThinkSoftSimpleLogEvent32.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/TLB/ViaThinkSoftSimpleLogEvent64.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/TLB/ViaThinkSoftSimpleLogEvent_Impl.pas
10,12 → 10,10
type
TViaThinkSoftSimpleEventLog = class(TAutoObject, IViaThinkSoftSimpleEventLog)
protected
procedure LogEvent(EventType: Integer; const LogMsg: WideString); safecall;
procedure LogEvent(const SourceName: WideString; EventType: LogEventType; const LogMsg: WideString);
safecall;
end;
 
const
LOGEVENT_PROVIDER_NAME = 'ViaThinkSoft';
 
implementation
 
uses ComServ, Windows;
51,20 → 49,18
end;
end;
 
procedure TViaThinkSoftSimpleEventLog.LogEvent(EventType: Integer;
procedure TViaThinkSoftSimpleEventLog.LogEvent(const SourceName: WideString; EventType: LogEventType;
const LogMsg: WideString);
begin
case EventType of
0:
WriteEventLog(LOGEVENT_PROVIDER_NAME, EVENTLOG_SUCCESS, MSG_SUCCESS, LogMsg);
1:
WriteEventLog(LOGEVENT_PROVIDER_NAME, EVENTLOG_INFORMATION_TYPE, MSG_INFORMATIONAL, LogMsg);
2:
WriteEventLog(LOGEVENT_PROVIDER_NAME, EVENTLOG_WARNING_TYPE, MSG_WARNING, LogMsg);
3:
WriteEventLog(LOGEVENT_PROVIDER_NAME, EVENTLOG_ERROR_TYPE, MSG_ERROR, LogMsg);
else
// TODO: Exception/Error ?
ViaThinkSoftSimpleLogEvent_TLB.Success:
WriteEventLog(SourceName, EVENTLOG_SUCCESS, MSG_SUCCESS, LogMsg);
ViaThinkSoftSimpleLogEvent_TLB.Informational:
WriteEventLog(SourceName, EVENTLOG_INFORMATION_TYPE, MSG_INFORMATIONAL, LogMsg);
ViaThinkSoftSimpleLogEvent_TLB.Warning:
WriteEventLog(SourceName, EVENTLOG_WARNING_TYPE, MSG_WARNING, LogMsg);
ViaThinkSoftSimpleLogEvent_TLB.Error:
WriteEventLog(SourceName, EVENTLOG_ERROR_TYPE, MSG_ERROR, LogMsg);
end;
end;
 
/trunk/TLB/ViaThinkSoftSimpleLogEvent_TLB.pas
1,46 → 1,48
unit ViaThinkSoftSimpleLogEvent_TLB;
 
// ************************************************************************ //
// WARNING
// WARNUNG
// -------
// The types declared in this file were generated from data read from a
// Type Library. If this type library is explicitly or indirectly (via
// another type library referring to this type library) re-imported, or the
// 'Refresh' command of the Type Library Editor activated while editing the
// Type Library, the contents of this file will be regenerated and all
// manual modifications will be lost.
// Die in dieser Datei deklarierten Typen wurden aus Daten einer Typbibliothek
// generiert. Wenn diese Typbibliothek explizit oder indirekt (über eine
// andere Typbibliothek) reimportiert wird oder wenn der Befehl
// 'Aktualisieren' im Typbibliotheks-Editor während des Bearbeitens der
// Typbibliothek aktiviert ist, wird der Inhalt dieser Datei neu generiert und
// alle manuell vorgenommenen Änderungen gehen verloren.
// ************************************************************************ //
 
// $Rev: 8291 $
// File generated on 29.04.2020 21:22:15 from Type Library described below.
// $Rev: 52393 $
// Datei am 30.04.2020 23:02:59 erzeugt aus der unten beschriebenen Typbibliothek.
 
// ************************************************************************ //
// Type Lib: D:\VtsEventLog\ComTest2\ViaThinkSoftSimpleLogEvent.tlb (1)
// Typbib.: C:\Users\DELL User\SVN\SimpleLogEvent\trunk\TLB\ViaThinkSoftSimpleLogEvent (1)
// LIBID: {D7654BA7-41D0-4FF9-8543-C3A4DA936856}
// LCID: 0
// Helpfile:
// HelpString: ViaThinkSoftSimpleLogEvent Library
// DepndLst:
// Hilfedatei:
// Hilfe-String: ViaThinkSoftSimpleLogEvent Library
// Liste der Abhäng.:
// (1) v2.0 stdole, (C:\Windows\SysWOW64\stdole2.tlb)
// SYS_KIND: SYS_WIN32
// ************************************************************************ //
{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers.
{$TYPEDADDRESS OFF} // Unit muss ohne Typüberprüfung für Zeiger compiliert werden.
{$WARN SYMBOL_PLATFORM OFF}
{$WRITEABLECONST ON}
{$VARPROPSETTER ON}
{$ALIGN 4}
 
interface
 
uses Windows, ActiveX, Classes, StdVCL, Variants;
uses Winapi.Windows, System.Classes, System.Variants, System.Win.StdVCL, Vcl.Graphics, Vcl.OleServer, Winapi.ActiveX;
 
// *********************************************************************//
// GUIDS declared in the TypeLibrary. Following prefixes are used:
// Type Libraries : LIBID_xxxx
// In der Typbibliothek deklarierte GUIDS. Die folgenden Präfixe werden verwendet:
// Typbibliotheken : LIBID_xxxx
// CoClasses : CLASS_xxxx
// DISPInterfaces : DIID_xxxx
// Non-DISP interfaces: IID_xxxx
// Nicht-DISP-Interfaces: IID_xxxx
// *********************************************************************//
const
// TypeLibrary Major and minor versions
// Haupt- und Nebenversionen der Typbibliothek
ViaThinkSoftSimpleLogEventMajorVersion = 1;
ViaThinkSoftSimpleLogEventMinorVersion = 0;
 
48,17 → 50,30
 
IID_IViaThinkSoftSimpleEventLog: TGUID = '{4094657E-8199-460F-A3DD-5BB63B6B0F65}';
CLASS_ViaThinkSoftSimpleEventLog: TGUID = '{E4270053-A217-498C-B395-9EF33187E8C2}';
 
// *********************************************************************//
// Deklaration von in der Typbibliothek definierten Aufzählungen
// *********************************************************************//
// Konstanten für enum LogEventType
type
LogEventType = TOleEnum;
const
Success = $00000000;
Informational = $00000001;
Warning = $00000002;
Error = $00000003;
 
type
 
// *********************************************************************//
// Forward declaration of types defined in TypeLibrary
// Forward-Deklaration von in der Typbibliothek definierten Typen
// *********************************************************************//
IViaThinkSoftSimpleEventLog = interface;
IViaThinkSoftSimpleEventLogDisp = dispinterface;
 
// *********************************************************************//
// Declaration of CoClasses defined in Type Library
// (NOTE: Here we map each CoClass to its Default Interface)
// Deklaration von in der Typbibliothek definierten CoClasses
// (HINWEIS: Hier wird jede CoClass ihrem Standard-Interface zugewiesen)
// *********************************************************************//
ViaThinkSoftSimpleEventLog = IViaThinkSoftSimpleEventLog;
 
70,7 → 85,8
// *********************************************************************//
IViaThinkSoftSimpleEventLog = interface(IDispatch)
['{4094657E-8199-460F-A3DD-5BB63B6B0F65}']
procedure LogEvent(EventType: Integer; const LogMsg: WideString); safecall;
procedure LogEvent(const SourceName: WideString; EventType: LogEventType;
const LogMsg: WideString); safecall;
end;
 
// *********************************************************************//
80,15 → 96,16
// *********************************************************************//
IViaThinkSoftSimpleEventLogDisp = dispinterface
['{4094657E-8199-460F-A3DD-5BB63B6B0F65}']
procedure LogEvent(EventType: Integer; const LogMsg: WideString); dispid 201;
procedure LogEvent(const SourceName: WideString; EventType: LogEventType;
const LogMsg: WideString); dispid 201;
end;
 
// *********************************************************************//
// The Class CoViaThinkSoftSimpleEventLog provides a Create and CreateRemote method to
// create instances of the default interface IViaThinkSoftSimpleEventLog exposed by
// the CoClass ViaThinkSoftSimpleEventLog. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// Die Klasse CoViaThinkSoftSimpleEventLog stellt die Methoden Create und CreateRemote zur
// Verfügung, um Instanzen des Standard-Interface IViaThinkSoftSimpleEventLog, dargestellt
// von CoClass ViaThinkSoftSimpleEventLog, zu erzeugen. Diese Funktionen können
// von einem Client verwendet werden, der die CoClasses automatisieren
// will, die von dieser Typbibliothek dargestellt werden.
// *********************************************************************//
CoViaThinkSoftSimpleEventLog = class
class function Create: IViaThinkSoftSimpleEventLog;
97,7 → 114,7
 
implementation
 
uses ComObj;
uses System.Win.ComObj;
 
class function CoViaThinkSoftSimpleEventLog.Create: IViaThinkSoftSimpleEventLog;
begin
110,3 → 127,4
end;
 
end.