From 9c2dfc8736862547dc54c5109a090c8da998307c Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Thu, 5 Sep 2019 16:23:48 +0200 Subject: [PATCH] add ZooFlow, Clipboard Watcher Migration --- ClipboardWatcher/ClipboardWatcher.vbproj | 110 ++++++++++++++ .../My Project/Application.Designer.vb | 13 ++ ClipboardWatcher/My Project/Application.myapp | 10 ++ ClipboardWatcher/My Project/AssemblyInfo.vb | 35 +++++ .../My Project/Resources.Designer.vb | 62 ++++++++ ClipboardWatcher/My Project/Resources.resx | 117 ++++++++++++++ .../My Project/Settings.Designer.vb | 73 +++++++++ ClipboardWatcher/My Project/Settings.settings | 7 + ClipboardWatcher/frmMatch.Designer.vb | 30 ++++ ClipboardWatcher/frmMatch.vb | 14 ++ DDMonorepo.sln | 16 ++ ZooFlow/ClassClipboardWatcher.vb | 68 +++++++++ ZooFlow/ClassFlowForm.vb | 130 ++++++++++++++++ ZooFlow/My Project/Application.Designer.vb | 38 +++++ ZooFlow/My Project/Application.myapp | 11 ++ ZooFlow/My Project/AssemblyInfo.vb | 36 +++++ ZooFlow/My Project/Resources.Designer.vb | 83 ++++++++++ ZooFlow/My Project/Resources.resx | 127 ++++++++++++++++ ZooFlow/My Project/Settings.Designer.vb | 26 ++++ ZooFlow/My Project/Settings.settings | 7 + ZooFlow/My Project/licenses.licx | 1 + ZooFlow/Resources/CW_hatwas_klein.png | Bin 0 -> 17857 bytes ZooFlow/Resources/CW_wartet_klein.png | Bin 0 -> 15665 bytes ZooFlow/ZooFlow.vbproj | 143 ++++++++++++++++++ ZooFlow/frmFlowForm.Designer.vb | 37 +++++ ZooFlow/frmFlowForm.resx | 120 +++++++++++++++ ZooFlow/frmFlowForm.vb | 50 ++++++ ZooFlow/frmMain.Designer.vb | 74 +++++++++ ZooFlow/frmMain.resx | 120 +++++++++++++++ ZooFlow/frmMain.vb | 20 +++ 30 files changed, 1578 insertions(+) create mode 100644 ClipboardWatcher/ClipboardWatcher.vbproj create mode 100644 ClipboardWatcher/My Project/Application.Designer.vb create mode 100644 ClipboardWatcher/My Project/Application.myapp create mode 100644 ClipboardWatcher/My Project/AssemblyInfo.vb create mode 100644 ClipboardWatcher/My Project/Resources.Designer.vb create mode 100644 ClipboardWatcher/My Project/Resources.resx create mode 100644 ClipboardWatcher/My Project/Settings.Designer.vb create mode 100644 ClipboardWatcher/My Project/Settings.settings create mode 100644 ClipboardWatcher/frmMatch.Designer.vb create mode 100644 ClipboardWatcher/frmMatch.vb create mode 100644 ZooFlow/ClassClipboardWatcher.vb create mode 100644 ZooFlow/ClassFlowForm.vb create mode 100644 ZooFlow/My Project/Application.Designer.vb create mode 100644 ZooFlow/My Project/Application.myapp create mode 100644 ZooFlow/My Project/AssemblyInfo.vb create mode 100644 ZooFlow/My Project/Resources.Designer.vb create mode 100644 ZooFlow/My Project/Resources.resx create mode 100644 ZooFlow/My Project/Settings.Designer.vb create mode 100644 ZooFlow/My Project/Settings.settings create mode 100644 ZooFlow/My Project/licenses.licx create mode 100644 ZooFlow/Resources/CW_hatwas_klein.png create mode 100644 ZooFlow/Resources/CW_wartet_klein.png create mode 100644 ZooFlow/ZooFlow.vbproj create mode 100644 ZooFlow/frmFlowForm.Designer.vb create mode 100644 ZooFlow/frmFlowForm.resx create mode 100644 ZooFlow/frmFlowForm.vb create mode 100644 ZooFlow/frmMain.Designer.vb create mode 100644 ZooFlow/frmMain.resx create mode 100644 ZooFlow/frmMain.vb diff --git a/ClipboardWatcher/ClipboardWatcher.vbproj b/ClipboardWatcher/ClipboardWatcher.vbproj new file mode 100644 index 00000000..5f4ab946 --- /dev/null +++ b/ClipboardWatcher/ClipboardWatcher.vbproj @@ -0,0 +1,110 @@ + + + + + Debug + AnyCPU + {1FBA063D-60A5-4FC8-A529-A3D1ECFD640C} + Library + ClipboardWatcher + ClipboardWatcher + 512 + Windows + v4.6.1 + + + true + full + true + true + bin\Debug\ + ClipboardWatcher.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + ClipboardWatcher.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + On + + + Binary + + + Off + + + On + + + + + + + + + + + + + + + + + + + + + + + + + + frmMatch.vb + + + Form + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/ClipboardWatcher/My Project/Application.Designer.vb b/ClipboardWatcher/My Project/Application.Designer.vb new file mode 100644 index 00000000..88dd01c7 --- /dev/null +++ b/ClipboardWatcher/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/ClipboardWatcher/My Project/Application.myapp b/ClipboardWatcher/My Project/Application.myapp new file mode 100644 index 00000000..758895de --- /dev/null +++ b/ClipboardWatcher/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/ClipboardWatcher/My Project/AssemblyInfo.vb b/ClipboardWatcher/My Project/AssemblyInfo.vb new file mode 100644 index 00000000..f1a6a172 --- /dev/null +++ b/ClipboardWatcher/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' Allgemeine Informationen über eine Assembly werden über die folgenden +' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +' die einer Assembly zugeordnet sind. + +' Werte der Assemblyattribute überprüfen + + + + + + + + + + +'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. + + +' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +' +' Hauptversion +' Nebenversion +' Buildnummer +' Revision +' +' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, +' übernehmen, indem Sie "*" eingeben: +' + + + diff --git a/ClipboardWatcher/My Project/Resources.Designer.vb b/ClipboardWatcher/My Project/Resources.Designer.vb new file mode 100644 index 00000000..8ed471d4 --- /dev/null +++ b/ClipboardWatcher/My Project/Resources.Designer.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ClipboardWatcher.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/ClipboardWatcher/My Project/Resources.resx b/ClipboardWatcher/My Project/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/ClipboardWatcher/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/ClipboardWatcher/My Project/Settings.Designer.vb b/ClipboardWatcher/My Project/Settings.Designer.vb new file mode 100644 index 00000000..15745394 --- /dev/null +++ b/ClipboardWatcher/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.ClipboardWatcher.My.MySettings + Get + Return Global.ClipboardWatcher.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/ClipboardWatcher/My Project/Settings.settings b/ClipboardWatcher/My Project/Settings.settings new file mode 100644 index 00000000..85b890b3 --- /dev/null +++ b/ClipboardWatcher/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/ClipboardWatcher/frmMatch.Designer.vb b/ClipboardWatcher/frmMatch.Designer.vb new file mode 100644 index 00000000..4654c9e8 --- /dev/null +++ b/ClipboardWatcher/frmMatch.Designer.vb @@ -0,0 +1,30 @@ + _ +Partial Class frmMatch + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + components = New System.ComponentModel.Container + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(800, 450) + Me.Text = "frmMatch" + End Sub +End Class diff --git a/ClipboardWatcher/frmMatch.vb b/ClipboardWatcher/frmMatch.vb new file mode 100644 index 00000000..77074eff --- /dev/null +++ b/ClipboardWatcher/frmMatch.vb @@ -0,0 +1,14 @@ +''' +''' Needs: +''' +''' - Config (Location of Window) +''' - Clipboard Contents +''' - Matching Profiles +''' - Pattern Replacement Values +''' - Connections +''' + + +Public Class frmMatch + +End Class \ No newline at end of file diff --git a/DDMonorepo.sln b/DDMonorepo.sln index 9f992a7f..ee088a39 100644 --- a/DDMonorepo.sln +++ b/DDMonorepo.sln @@ -80,6 +80,12 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Language", "Modules.Languag EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "RegexEditor", "Controls.RegexEditor\RegexEditor.vbproj", "{BCC6942F-CD4B-4B67-8200-1C0D002E7CC2}" EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ZooFlow", "ZooFlow\ZooFlow.vbproj", "{D0FB36EB-783D-40E1-B71E-A0B84B2FE567}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Products", "Products", "{EB026AEE-C702-47C6-82F5-956D5C8E26C2}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ClipboardWatcher", "ClipboardWatcher\ClipboardWatcher.vbproj", "{1FBA063D-60A5-4FC8-A529-A3D1ECFD640C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -198,6 +204,14 @@ Global {BCC6942F-CD4B-4B67-8200-1C0D002E7CC2}.Debug|Any CPU.Build.0 = Debug|Any CPU {BCC6942F-CD4B-4B67-8200-1C0D002E7CC2}.Release|Any CPU.ActiveCfg = Release|Any CPU {BCC6942F-CD4B-4B67-8200-1C0D002E7CC2}.Release|Any CPU.Build.0 = Release|Any CPU + {D0FB36EB-783D-40E1-B71E-A0B84B2FE567}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D0FB36EB-783D-40E1-B71E-A0B84B2FE567}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D0FB36EB-783D-40E1-B71E-A0B84B2FE567}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D0FB36EB-783D-40E1-B71E-A0B84B2FE567}.Release|Any CPU.Build.0 = Release|Any CPU + {1FBA063D-60A5-4FC8-A529-A3D1ECFD640C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1FBA063D-60A5-4FC8-A529-A3D1ECFD640C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1FBA063D-60A5-4FC8-A529-A3D1ECFD640C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1FBA063D-60A5-4FC8-A529-A3D1ECFD640C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -231,6 +245,8 @@ Global {3D437957-B90B-4D8F-9219-6D19B0C90994} = {8FFE925E-8B84-45F1-93CB-32B1C96F41EB} {D3C8CFED-D6F6-43A8-9BDF-454145D0352F} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} {BCC6942F-CD4B-4B67-8200-1C0D002E7CC2} = {F98C0329-C004-417F-B2AB-7466E88D8220} + {D0FB36EB-783D-40E1-B71E-A0B84B2FE567} = {8FFE925E-8B84-45F1-93CB-32B1C96F41EB} + {1FBA063D-60A5-4FC8-A529-A3D1ECFD640C} = {EB026AEE-C702-47C6-82F5-956D5C8E26C2} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {C1BE4090-A0FD-48AF-86CB-39099D14B286} diff --git a/ZooFlow/ClassClipboardWatcher.vb b/ZooFlow/ClassClipboardWatcher.vb new file mode 100644 index 00000000..71f2f3fa --- /dev/null +++ b/ZooFlow/ClassClipboardWatcher.vb @@ -0,0 +1,68 @@ +Imports System.Runtime.InteropServices +Public Class ClassClipboardWatcher + Inherits NativeWindow + Implements IDisposable + + Private Class Win32 + + Public Shared Function SetClipboardViewer(ByVal hWnd As IntPtr) As IntPtr + End Function + End Class + + Const WM_DRAWCLIPBOARD As Integer = &H308 + + Public Event ClipboardChanged As EventHandler(Of IDataObject) + Public Shared Singleton As New ClassClipboardWatcher + + Private _handle As IntPtr + + Private Sub New() + MyBase.CreateHandle(New CreateParams) + _handle = Win32.SetClipboardViewer(Handle) + End Sub + + Protected Overrides Sub WndProc(ByRef m As Message) + + Select Case m.Msg + Case WM_DRAWCLIPBOARD + Dim oData As IDataObject = Clipboard.GetDataObject + RaiseEvent ClipboardChanged(Me, oData) + End Select + MyBase.WndProc(m) + End Sub + +#Region "IDisposable Support" + ' Für diese Klasse ist korrekte Ressourcenbereinigung besonders wichtig, da + ' mit systemübergreifenden Ressourcen gearbeitet wird + + ' So ermitteln Sie überflüssige Aufrufe + Private disposedValue As Boolean = False + + Protected Overridable Sub Dispose(ByVal disposing As Boolean) + If Not disposedValue Then + If disposing Then + ' TODO: Verwaltete Ressourcen freigeben, wenn sie explizit + ' aufgerufen werden + End If + MyBase.DestroyHandle() + Dim H As IntPtr = Win32.SetClipboardViewer(_handle) + End If + disposedValue = True + End Sub + + ' Dieser Code wird von Visual Basic hinzugefügt, um das Dispose-Muster + ' richtig zu implementieren. + Public Sub Dispose() Implements IDisposable.Dispose + ' Sie sollten diesen Code nicht ändern, sondern stattdessen ihren + ' Bereinigungscode oben in + ' Dispose(ByVal disposing As Boolean) einfügen. + Dispose(True) + GC.SuppressFinalize(Me) + End Sub + + Protected Overrides Sub Finalize() + MyBase.Finalize() + Dispose(False) + End Sub +#End Region +End Class diff --git a/ZooFlow/ClassFlowForm.vb b/ZooFlow/ClassFlowForm.vb new file mode 100644 index 00000000..d2da8887 --- /dev/null +++ b/ZooFlow/ClassFlowForm.vb @@ -0,0 +1,130 @@ +Imports System.Drawing.Imaging +Imports System.Runtime.InteropServices + +Class Win32 + Public Enum Bool + [False] = 0 + [True] + End Enum + + + Public Structure Point + Public x As Int32 + Public y As Int32 + + Public Sub New(ByVal x As Int32, ByVal y As Int32) + Me.x = x + Me.y = y + End Sub + End Structure + + + Public Structure Size + Public cx As Int32 + Public cy As Int32 + + Public Sub New(ByVal cx As Int32, ByVal cy As Int32) + Me.cx = cx + Me.cy = cy + End Sub + End Structure + + + Structure ARGB + Public Blue As Byte + Public Green As Byte + Public Red As Byte + Public Alpha As Byte + End Structure + + + Public Structure BLENDFUNCTION + Public BlendOp As Byte + Public BlendFlags As Byte + Public SourceConstantAlpha As Byte + Public AlphaFormat As Byte + End Structure + + Public Const ULW_COLORKEY As Int32 = &H1 + Public Const ULW_ALPHA As Int32 = &H2 + Public Const ULW_OPAQUE As Int32 = &H4 + Public Const AC_SRC_OVER As Byte = &H0 + Public Const AC_SRC_ALPHA As Byte = &H1 + + + Public Shared Function UpdateLayeredWindow(ByVal hwnd As IntPtr, ByVal hdcDst As IntPtr, ByRef pptDst As Point, ByRef psize As Size, ByVal hdcSrc As IntPtr, ByRef pprSrc As Point, ByVal crKey As Int32, ByRef pblend As BLENDFUNCTION, ByVal dwFlags As Int32) As Bool + End Function + + Public Shared Function GetDC(ByVal hWnd As IntPtr) As IntPtr + End Function + + Public Shared Function ReleaseDC(ByVal hWnd As IntPtr, ByVal hDC As IntPtr) As Integer + End Function + + Public Shared Function CreateCompatibleDC(ByVal hDC As IntPtr) As IntPtr + End Function + + Public Shared Function DeleteDC(ByVal hdc As IntPtr) As Bool + End Function + + Public Shared Function SelectObject(ByVal hDC As IntPtr, ByVal hObject As IntPtr) As IntPtr + End Function + + Public Shared Function DeleteObject(ByVal hObject As IntPtr) As Bool + End Function +End Class + +Public Class ClassFlowForm + Inherits Form + Public Sub New() + FormBorderStyle = FormBorderStyle.None + TopMost = True + End Sub + + Public Sub SetBitmap(ByVal bitmap As Bitmap) + SetBitmap(bitmap, 255, bitmap.Width, bitmap.Height) + End Sub + + Public Sub SetBitmap(ByVal Bitmap As Bitmap, ByVal Opacity As Byte, ByVal Width As Integer, ByVal Height As Integer) + If Bitmap.PixelFormat <> PixelFormat.Format32bppArgb Then + Throw New ApplicationException("The bitmap must be 32ppp with alpha-channel.") + End If + + Dim oScreenDeviceContext As IntPtr = Win32.GetDC(IntPtr.Zero) + Dim oMemoryDeviceContext As IntPtr = Win32.CreateCompatibleDC(oScreenDeviceContext) + Dim oBitmap As IntPtr = IntPtr.Zero + Dim oOldBitmap As IntPtr = IntPtr.Zero + + Try + oBitmap = Bitmap.GetHbitmap(Color.FromArgb(0)) + oOldBitmap = Win32.SelectObject(oMemoryDeviceContext, oBitmap) + Dim oSize As Win32.Size = New Win32.Size(Width, Height) + Dim oPointSource As Win32.Point = New Win32.Point(0, 0) + Dim oTopPos As Win32.Point = New Win32.Point(Left, Top) + Dim oBlend As Win32.BLENDFUNCTION = New Win32.BLENDFUNCTION With { + .BlendOp = Win32.AC_SRC_OVER, + .BlendFlags = 0, + .SourceConstantAlpha = Opacity, + .AlphaFormat = Win32.AC_SRC_ALPHA + } + Win32.UpdateLayeredWindow(Handle, oScreenDeviceContext, oTopPos, oSize, oMemoryDeviceContext, oPointSource, 0, oBlend, Win32.ULW_ALPHA) + Finally + Win32.ReleaseDC(IntPtr.Zero, oScreenDeviceContext) + + If oBitmap <> IntPtr.Zero Then + Win32.SelectObject(oMemoryDeviceContext, oOldBitmap) + Win32.DeleteObject(oBitmap) + End If + + Win32.DeleteDC(oMemoryDeviceContext) + End Try + End Sub + + Protected Overrides ReadOnly Property CreateParams As CreateParams + Get + Dim oParams As CreateParams = MyBase.CreateParams + oParams.ExStyle = oParams.ExStyle Or &H80000 + Return oParams + End Get + End Property +End Class diff --git a/ZooFlow/My Project/Application.Designer.vb b/ZooFlow/My Project/Application.Designer.vb new file mode 100644 index 00000000..b37a88cb --- /dev/null +++ b/ZooFlow/My Project/Application.Designer.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + 'NOTE: This file is auto-generated; do not modify it directly. To make changes, + ' or if you encounter build errors in this file, go to the Project Designer + ' (go to Project Properties or double-click the My Project node in + ' Solution Explorer), and make changes on the Application tab. + ' + Partial Friend Class MyApplication + + _ + Public Sub New() + MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.SaveMySettingsOnExit = true + Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + _ + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = Global.ZooFlow.frmMain + End Sub + End Class +End Namespace diff --git a/ZooFlow/My Project/Application.myapp b/ZooFlow/My Project/Application.myapp new file mode 100644 index 00000000..1243847f --- /dev/null +++ b/ZooFlow/My Project/Application.myapp @@ -0,0 +1,11 @@ + + + true + Form1 + false + 0 + true + 0 + 0 + true + diff --git a/ZooFlow/My Project/AssemblyInfo.vb b/ZooFlow/My Project/AssemblyInfo.vb new file mode 100644 index 00000000..162fe465 --- /dev/null +++ b/ZooFlow/My Project/AssemblyInfo.vb @@ -0,0 +1,36 @@ +Imports System.Reflection +Imports System.Runtime.CompilerServices +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + + + + + + + + + +' Setting ComVisible to false makes the types in this assembly not visible +' to COM components. If you need to access a type in this assembly from +' COM, set the ComVisible attribute to true on that type. + + +' The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' [assembly: AssemblyVersion("1.0.*")] + + diff --git a/ZooFlow/My Project/Resources.Designer.vb b/ZooFlow/My Project/Resources.Designer.vb new file mode 100644 index 00000000..f18a3286 --- /dev/null +++ b/ZooFlow/My Project/Resources.Designer.vb @@ -0,0 +1,83 @@ +'------------------------------------------------------------------------------ +' +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.42000 +' +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert + '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. + 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. + ''' + ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ZooFlow.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property CW_hatwas_klein() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("CW_hatwas_klein", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property CW_wartet_klein() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("CW_wartet_klein", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + End Module +End Namespace diff --git a/ZooFlow/My Project/Resources.resx b/ZooFlow/My Project/Resources.resx new file mode 100644 index 00000000..2ba959ad --- /dev/null +++ b/ZooFlow/My Project/Resources.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\CW_hatwas_klein.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\CW_wartet_klein.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/ZooFlow/My Project/Settings.Designer.vb b/ZooFlow/My Project/Settings.Designer.vb new file mode 100644 index 00000000..280a1db6 --- /dev/null +++ b/ZooFlow/My Project/Settings.Designer.vb @@ -0,0 +1,26 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.18047 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Namespace My + + + + Friend NotInheritable Partial Class Settings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = (CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New Settings()), Settings)) + + Public Shared ReadOnly Property [Default]() As Settings + Get + Return defaultInstance + End Get + End Property + End Class +End Namespace diff --git a/ZooFlow/My Project/Settings.settings b/ZooFlow/My Project/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/ZooFlow/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/ZooFlow/My Project/licenses.licx b/ZooFlow/My Project/licenses.licx new file mode 100644 index 00000000..d87e83cf --- /dev/null +++ b/ZooFlow/My Project/licenses.licx @@ -0,0 +1 @@ +DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/ZooFlow/Resources/CW_hatwas_klein.png b/ZooFlow/Resources/CW_hatwas_klein.png new file mode 100644 index 0000000000000000000000000000000000000000..1aef128465831bea171a870bd6490424f28d15a9 GIT binary patch literal 17857 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 + + + Debug + x86 + 8.0.30703 + 2.0 + {D0FB36EB-783D-40E1-B71E-A0B84B2FE567} + WinExe + ZooFlow + ZooFlow + v4.6.1 + ZooFlow.Program + 512 + On + Binary + Off + On + + + AnyCPU + true + full + false + bin\Debug\ + true + true + prompt + + + AnyCPU + pdbonly + true + bin\Release\ + false + true + prompt + + + WindowsForms + + + ZooFlow.My.MyApplication + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Form + + + frmMain.vb + + + frmFlowForm.vb + + + Form + + + True + Application.myapp + + + + frmMain.vb + + + frmFlowForm.vb + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + True + Settings.settings + True + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + + + + + + + + + \ No newline at end of file diff --git a/ZooFlow/frmFlowForm.Designer.vb b/ZooFlow/frmFlowForm.Designer.vb new file mode 100644 index 00000000..f806a052 --- /dev/null +++ b/ZooFlow/frmFlowForm.Designer.vb @@ -0,0 +1,37 @@ + _ +Partial Class frmFlowForm + Inherits ClassFlowForm + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.SuspendLayout() + ' + 'frmFlowForm + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(800, 450) + Me.Name = "frmFlowForm" + Me.Text = "frmFlowForm" + Me.ResumeLayout(False) + + End Sub +End Class diff --git a/ZooFlow/frmFlowForm.resx b/ZooFlow/frmFlowForm.resx new file mode 100644 index 00000000..1af7de15 --- /dev/null +++ b/ZooFlow/frmFlowForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/ZooFlow/frmFlowForm.vb b/ZooFlow/frmFlowForm.vb new file mode 100644 index 00000000..f4b25e52 --- /dev/null +++ b/ZooFlow/frmFlowForm.vb @@ -0,0 +1,50 @@ +Public Class frmFlowForm + Private WithEvents Watcher As ClassClipboardWatcher = ClassClipboardWatcher.Singleton + + Public Event ClipboardChanged As EventHandler(Of IDataObject) + + Private Sub frmFlowForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load + AllowDrop = True + + SetBitmap(My.Resources.CW_wartet_klein) + End Sub + + Private Sub frmFlowForm_DragOver(sender As Object, e As DragEventArgs) Handles Me.DragOver + If e.Data.GetDataPresent(DataFormats.FileDrop) Then + ' Handle file dragged from Windows + e.Effect = DragDropEffects.Copy + SetBitmap(My.Resources.CW_hatwas_klein) + ElseIf e.Data.GetDataPresent("FileGroupDescriptor") Then + ' Handle a message dragged from Outlook + e.Effect = DragDropEffects.Copy + SetBitmap(My.Resources.CW_hatwas_klein) + ElseIf e.Data.GetDataPresent("aryFileGroupDescriptor") AndAlso (e.Data.GetDataPresent("FileContents")) Then + ' Handle a message dragged from Thunderbird? + e.Effect = DragDropEffects.Copy + SetBitmap(My.Resources.CW_hatwas_klein) + Else + ' Otherwise, do not handle + e.Effect = DragDropEffects.None + End If + End Sub + + Private Sub frmFlowForm_DragLeave(sender As Object, e As EventArgs) Handles Me.DragLeave + SetBitmap(My.Resources.CW_wartet_klein) + End Sub + + Private Sub Watcher_ClipboardChanged(sender As Object, e As IDataObject) Handles Watcher.ClipboardChanged + RaiseEvent ClipboardChanged(sender, e) + End Sub + + ''' + ''' DragDrop Support + ''' + Protected Overrides Sub WndProc(ByRef m As Message) + If m.Msg = &H84 Then + m.Result = CType(2, IntPtr) + Return + End If + + MyBase.WndProc(m) + End Sub +End Class \ No newline at end of file diff --git a/ZooFlow/frmMain.Designer.vb b/ZooFlow/frmMain.Designer.vb new file mode 100644 index 00000000..093a14b1 --- /dev/null +++ b/ZooFlow/frmMain.Designer.vb @@ -0,0 +1,74 @@ +Partial Public Class frmMain + Inherits DevExpress.XtraBars.Ribbon.RibbonForm + + ''' + ''' Required designer variable. + ''' + Private components As System.ComponentModel.IContainer = Nothing + + ''' + ''' Clean up any resources being used. + ''' + ''' true if managed resources should be disposed; otherwise, false. + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso (components IsNot Nothing) Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + +#Region "Windows Form Designer generated code" + + ''' + ''' Required method for Designer support - do not modify + ''' the contents of this method with the code editor. + ''' + Private Sub InitializeComponent() + Me.ribbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl() + Me.ribbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() + Me.ribbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() + CType(Me.ribbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'ribbonControl1 + ' + Me.ribbonControl1.ExpandCollapseItem.Id = 0 + Me.ribbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.ribbonControl1.ExpandCollapseItem}) + Me.ribbonControl1.Location = New System.Drawing.Point(0, 0) + Me.ribbonControl1.MaxItemId = 1 + Me.ribbonControl1.Name = "ribbonControl1" + Me.ribbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.ribbonPage1}) + Me.ribbonControl1.Size = New System.Drawing.Size(906, 143) + ' + 'ribbonPage1 + ' + Me.ribbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.ribbonPageGroup1}) + Me.ribbonPage1.Name = "ribbonPage1" + Me.ribbonPage1.Text = "ribbonPage1" + ' + 'ribbonPageGroup1 + ' + Me.ribbonPageGroup1.Name = "ribbonPageGroup1" + Me.ribbonPageGroup1.Text = "ribbonPageGroup1" + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(906, 587) + Me.Controls.Add(Me.ribbonControl1) + Me.Name = "Form1" + Me.Ribbon = Me.ribbonControl1 + Me.Text = "Zoo Flow" + CType(Me.ribbonControl1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + +#End Region + + Private WithEvents ribbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl + Private WithEvents ribbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage + Private WithEvents ribbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup +End Class diff --git a/ZooFlow/frmMain.resx b/ZooFlow/frmMain.resx new file mode 100644 index 00000000..1af7de15 --- /dev/null +++ b/ZooFlow/frmMain.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/ZooFlow/frmMain.vb b/ZooFlow/frmMain.vb new file mode 100644 index 00000000..ea31f376 --- /dev/null +++ b/ZooFlow/frmMain.vb @@ -0,0 +1,20 @@ + +Partial Public Class frmMain + Private WithEvents FlowForm As New frmFlowForm() + + Shared Sub New() + DevExpress.UserSkins.BonusSkins.Register() + End Sub + Public Sub New() + InitializeComponent() + End Sub + + Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load + FlowForm.Show() + End Sub + + Private Sub FlowForm_ClipboardChanged(sender As Object, e As IDataObject) Handles FlowForm.ClipboardChanged + + End Sub + +End Class