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 +