diff --git a/Test/X2LogTest.dpr b/Test/X2LogTest.dpr
index 363a00a..a986388 100644
--- a/Test/X2LogTest.dpr
+++ b/Test/X2LogTest.dpr
@@ -24,7 +24,8 @@ uses
X2Log.Details.Intf in '..\X2Log.Details.Intf.pas',
X2Log.Util.Stream in '..\X2Log.Util.Stream.pas',
X2Log.Decorator in '..\X2Log.Decorator.pas',
- X2Log.Observer.RollingLogFile in '..\X2Log.Observer.RollingLogFile.pas';
+ X2Log.Observer.RollingLogFile in '..\X2Log.Observer.RollingLogFile.pas',
+ X2Log.Intf.NamedPipe in '..\X2Log.Intf.NamedPipe.pas';
{$R *.res}
diff --git a/Test/X2LogTest.dproj b/Test/X2LogTest.dproj
index daf79fa..2fc63b0 100644
--- a/Test/X2LogTest.dproj
+++ b/Test/X2LogTest.dproj
@@ -196,6 +196,7 @@
+
RCDATA
GraphicDetails
diff --git a/X2Log.Client.NamedPipe.pas b/X2Log.Client.NamedPipe.pas
index 2715280..e090e88 100644
--- a/X2Log.Client.NamedPipe.pas
+++ b/X2Log.Client.NamedPipe.pas
@@ -46,6 +46,7 @@ uses
X2Log.Details.Default,
X2Log.Details.Registry,
+ X2Log.Intf.NamedPipe,
X2Log.Util.Stream;
diff --git a/X2Log.Intf.NamedPipe.pas b/X2Log.Intf.NamedPipe.pas
new file mode 100644
index 0000000..73413d7
--- /dev/null
+++ b/X2Log.Intf.NamedPipe.pas
@@ -0,0 +1,37 @@
+unit X2Log.Intf.NamedPipe;
+
+interface
+uses
+ X2Log.Intf;
+
+type
+ TX2LogMessageHeaderV1 = packed record
+ ID: Word;
+ Version: Byte;
+ Size: Word;
+ DateTime: TDateTime;
+ Level: TX2LogLevel;
+
+ {
+ Payload:
+
+ CategoryLength: Cardinal
+ Category: WideString
+ MessageLength: Cardinal
+ Message: WideString
+ DetailsLength: Cardinal
+ Details: WideString
+ }
+ end;
+
+
+ TX2LogMessageHeader = TX2LogMessageHeaderV1;
+
+const
+ X2LogMessageHeader: Word = $B258;
+ X2LogMessageVersion: Byte = 1;
+
+
+implementation
+
+end.
diff --git a/X2Log.Observer.NamedPipe.pas b/X2Log.Observer.NamedPipe.pas
index df8ff9e..673042e 100644
--- a/X2Log.Observer.NamedPipe.pas
+++ b/X2Log.Observer.NamedPipe.pas
@@ -28,6 +28,7 @@ uses
Winapi.Windows,
X2Log.Details.Registry,
+ X2Log.Intf.NamedPipe,
X2Log.Util.Stream;