diff --git a/Pilz.IO/ManagedPipes/ManagedPipeServer.vb b/Pilz.IO/ManagedPipes/ManagedPipeServer.vb
index 54222fe..3afe662 100644
--- a/Pilz.IO/ManagedPipes/ManagedPipeServer.vb
+++ b/Pilz.IO/ManagedPipes/ManagedPipeServer.vb
@@ -25,7 +25,6 @@ Public Class ManagedPipeServer : Inherits ManagedPipe
Dim strm = New NamedPipeServerStream(pipeName, PipeDirection.InOut, maxNumbersOfServerInstances, PipeTransmissionMode.Byte, PipeOptions.Asynchronous)
numberOfStartedServerInstances += 1
strm.BeginWaitForConnection(AddressOf EndAccept, strm)
- Console.WriteLine("Start Waiting for new Connection ...")
End If
End Sub
@@ -46,8 +45,6 @@ Public Class ManagedPipeServer : Inherits ManagedPipe
.AddTo(_Clients)
End With
- Console.WriteLine("Client accepted!")
-
CreateWaitingStream()
End Sub
diff --git a/Pilz.Win32/Internals/IconExtractor.vb b/Pilz.Win32/Internals/IconExtractor.vb
new file mode 100644
index 0000000..b3011f5
--- /dev/null
+++ b/Pilz.Win32/Internals/IconExtractor.vb
@@ -0,0 +1,38 @@
+Imports System.Drawing
+Imports System.Runtime.InteropServices
+Imports Pilz.Win32.Native
+
+Namespace Internals
+
+ Public Class IconExtractor
+
+ '''
+ ''' Extrahiert das Icon aus einer Datei oder aus einem Ordner.
+ '''
+ ''' Hier übergeben Sie den Pfad der Datei von dem das Icon extrahiert werden soll.
+ ''' Bei übergabe von true wird ein kleines und bei false ein großes Icon zurück gegeben.
+ Public Shared Function ExtractIcon(ByVal FilePath As String, ByVal Small As Boolean) As Icon
+ Dim hImgSmall As IntPtr
+ Dim hImgLarge As IntPtr
+ Dim shinfo As New SHFILEINFO
+
+ If Small Then
+ hImgSmall = LibShell32.SHGetFileInfo(FilePath, 0, shinfo, CUInt(Math.Truncate(Marshal.SizeOf(shinfo))), SHFILEINFO.SHGFI_ICON Or SHFILEINFO.SHGFI_SMALLICON)
+ Else
+ hImgLarge = LibShell32.SHGetFileInfo(FilePath, 0, shinfo, CUInt(Math.Truncate(Marshal.SizeOf(shinfo))), SHFILEINFO.SHGFI_ICON Or SHFILEINFO.SHGFI_LARGEICON)
+ End If
+
+ Dim icon As Icon
+
+ Try
+ icon = Icon.FromHandle(shinfo.hIcon)
+ Catch ex As Exception
+ icon = Nothing
+ End Try
+
+ Return icon
+ End Function
+
+ End Class
+
+End Namespace
diff --git a/Pilz.Win32/Mapped/FileInfo.vb b/Pilz.Win32/Mapped/NativeFileInfo.vb
similarity index 87%
rename from Pilz.Win32/Mapped/FileInfo.vb
rename to Pilz.Win32/Mapped/NativeFileInfo.vb
index fe3bce4..83b2c5c 100644
--- a/Pilz.Win32/Mapped/FileInfo.vb
+++ b/Pilz.Win32/Mapped/NativeFileInfo.vb
@@ -3,14 +3,14 @@ Imports Pilz.Win32.Native
Namespace Mapped
- Public Class FileInfo
+ Public Class NativeFileInfo
Public ReadOnly Property Icon As Icon
Public ReadOnly Property SystemIconIndex As Integer
Public ReadOnly Property Displayname As String
Public ReadOnly Property Typename As String
- Friend Sub New(info As SHFILEINFO)
+ Public Sub New(info As SHFILEINFO)
Icon = Icon.FromHandle(info.hIcon)
SystemIconIndex = info.iIcon
Displayname = info.szDisplayName
diff --git a/Pilz.Win32/Native/LibShell32.vb b/Pilz.Win32/Native/LibShell32.vb
new file mode 100644
index 0000000..980ba19
--- /dev/null
+++ b/Pilz.Win32/Native/LibShell32.vb
@@ -0,0 +1,9 @@
+Namespace Native
+
+ Public Class LibShell32
+
+ Public Declare Auto Function SHGetFileInfo Lib "shell32.dll" (ByVal pszPath As String, ByVal dwFileAttributes As UInteger, ByRef psfi As SHFILEINFO, ByVal cbSizeFileInfo As UInteger, ByVal uFlags As UInteger) As IntPtr
+
+ End Class
+
+End Namespace
diff --git a/Pilz.Win32/Native/SHFILEINFO.vb b/Pilz.Win32/Native/SHFILEINFO.vb
index 96242b8..8c4acc7 100644
--- a/Pilz.Win32/Native/SHFILEINFO.vb
+++ b/Pilz.Win32/Native/SHFILEINFO.vb
@@ -2,14 +2,21 @@
Namespace Native
- Friend Structure SHFILEINFO
+
+ Public Structure SHFILEINFO
+
+ Public Const SHGFI_ICON As UInteger = &H100
+ Public Const SHGFI_LARGEICON As UInteger = &H0
+ Public Const SHGFI_SMALLICON As UInteger = &H1
+
Public hIcon As IntPtr
- Public iIcon As Integer
+ Public iIcon As IntPtr
Public dwAttributes As UInteger
Public szDisplayName As String
Public szTypeName As String
+
End Structure
End Namespace
diff --git a/Pilz.Win32/Pilz.Win32.vbproj b/Pilz.Win32/Pilz.Win32.vbproj
index 72f180a..f47325c 100644
--- a/Pilz.Win32/Pilz.Win32.vbproj
+++ b/Pilz.Win32/Pilz.Win32.vbproj
@@ -66,7 +66,8 @@
-
+
+
True
@@ -82,6 +83,7 @@
Settings.settings
True
+