From 667bed9051cf26250312ecca8aeefe39bcb15a3d Mon Sep 17 00:00:00 2001 From: Andreas Sauer <18749753+Hanibal1963@users.noreply.github.com> Date: Sat, 12 Oct 2024 10:19:52 +0200 Subject: [PATCH] =?UTF-8?q?Lokale=20Kopien=20von=20ProvideToolboxControlAt?= =?UTF-8?q?tribute.vb=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Verweise auf ProvideToolboxControlAttribute.vb in den Projektdateien AniGifControl.vbproj, DriveWatcherControl.vbproj, IniFileControl.vbproj, NotifyFormControl.vbproj, SevenSegmentControl.vbproj, ShapeControl.vbproj, TransparentLabelControl.vbproj und WizardControl.vbproj von einem gemeinsamen Speicherort entfernt und durch lokale Kopien ersetzt. Neue Diagrammdateien (.cd) wurden zu den Projektdateien hinzugefügt. In ProvideToolboxControlAttribute.vb wurden umfangreiche Änderungen vorgenommen, einschließlich der Implementierung der Klasse ProvideToolboxControlAttribute und der Hinzufügung von Kommentaren. Verweise auf ProvideToolboxControlAttribute.vb aus dem CommonCodes-Projekt in SchlumpfSoft Controls.sln entfernt. Nicht mehr benötigte Verweise auf Dokumentationsdateien (.md) in den Projektdateien ShapeControl.vbproj, TransparentLabelControl.vbproj und WizardControl.vbproj entfernt. --- AniGifControl/AniGifControl.vbproj | 11 +- .../ProvideToolboxControlAttribute.vb | 4 - .../DriveWatcherControl.vbproj | 12 +- .../ProvideToolboxControlAttribute.vb | 128 ++++++++++++++++++ IniFileControl/IniFileControl.vbproj | 8 +- .../ProvideToolboxControlAttribute.vb | 128 ++++++++++++++++++ NotifyFormControl/NotifyFormControl.vbproj | 13 +- .../ProvideToolboxControlAttribute.vb | 128 ++++++++++++++++++ SchlumpfSoft Controls.sln | 1 - .../SchlumpfSoftControls.vbproj | 1 + .../ProvideToolboxControlAttribute.vb | 128 ++++++++++++++++++ .../SevenSegmentControl.vbproj | 13 +- .../ProvideToolboxControlAttribute.vb | 128 ++++++++++++++++++ ShapeControl/ShapeControl.vbproj | 12 +- .../ProvideToolboxControlAttribute.vb | 128 ++++++++++++++++++ .../TransparentLabelControl.vbproj | 14 +- .../ProvideToolboxControlAttribute.vb | 128 ++++++++++++++++++ WizardControl/WizardControl.vbproj | 26 ++-- 18 files changed, 947 insertions(+), 64 deletions(-) rename {CommonCodes => AniGifControl}/ProvideToolboxControlAttribute.vb (99%) create mode 100644 DriveWatcherControl/ProvideToolboxControlAttribute.vb create mode 100644 IniFileControl/ProvideToolboxControlAttribute.vb create mode 100644 NotifyFormControl/ProvideToolboxControlAttribute.vb create mode 100644 SevenSegmentControl/ProvideToolboxControlAttribute.vb create mode 100644 ShapeControl/ProvideToolboxControlAttribute.vb create mode 100644 TransparentLabelControl/ProvideToolboxControlAttribute.vb create mode 100644 WizardControl/ProvideToolboxControlAttribute.vb diff --git a/AniGifControl/AniGifControl.vbproj b/AniGifControl/AniGifControl.vbproj index 4acc932..3d6c8fa 100644 --- a/AniGifControl/AniGifControl.vbproj +++ b/AniGifControl/AniGifControl.vbproj @@ -84,18 +84,14 @@ AniGifControl.xml - - AniGifControl.md - - + + + MyDescription.vb - - ProvideToolboxControlAttribute.vb - UserControl @@ -105,6 +101,7 @@ True Resources.resx + diff --git a/CommonCodes/ProvideToolboxControlAttribute.vb b/AniGifControl/ProvideToolboxControlAttribute.vb similarity index 99% rename from CommonCodes/ProvideToolboxControlAttribute.vb rename to AniGifControl/ProvideToolboxControlAttribute.vb index aa8facb..2a9b0ae 100644 --- a/CommonCodes/ProvideToolboxControlAttribute.vb +++ b/AniGifControl/ProvideToolboxControlAttribute.vb @@ -27,7 +27,6 @@ Imports Microsoft.VisualStudio.Shell Public NotInheritable Class ProvideToolboxControlAttribute : Inherits RegistrationAttribute Private Const ToolboxControlsInstallerPath As String = "ToolboxControlsInstaller" - Private _isWpfControls As Boolean Private _name As String @@ -42,7 +41,6 @@ Public NotInheritable Class ProvideToolboxControlAttribute : Inherits Registrati If name Is Nothing Then Throw New ArgumentException("name") End If - Me.Name = name Me.IsWpfControls = isWpfControls @@ -86,7 +84,6 @@ Public NotInheritable Class ProvideToolboxControlAttribute : Inherits Registrati If context Is Nothing Then Throw New ArgumentNullException("context") End If - Using key As Key = context.CreateKey( String.Format( CultureInfo.InvariantCulture, @@ -96,7 +93,6 @@ Public NotInheritable Class ProvideToolboxControlAttribute : Inherits Registrati key.SetValue(String.Empty, Me.Name) key.SetValue("Codebase", context.CodeBase) - If Me.IsWpfControls Then key.SetValue("WPFControls", "1") End If diff --git a/DriveWatcherControl/DriveWatcherControl.vbproj b/DriveWatcherControl/DriveWatcherControl.vbproj index f21f35a..6258411 100644 --- a/DriveWatcherControl/DriveWatcherControl.vbproj +++ b/DriveWatcherControl/DriveWatcherControl.vbproj @@ -74,18 +74,15 @@ False - - DriveWatcherControl.md - - + + + + MyDescription.vb - - ProvideToolboxControlAttribute.vb - @@ -97,6 +94,7 @@ True Resources.resx + diff --git a/DriveWatcherControl/ProvideToolboxControlAttribute.vb b/DriveWatcherControl/ProvideToolboxControlAttribute.vb new file mode 100644 index 0000000..2a9b0ae --- /dev/null +++ b/DriveWatcherControl/ProvideToolboxControlAttribute.vb @@ -0,0 +1,128 @@ +' **************************************************************************************************************** +' ProvideToolboxControlAttribute.vb +' © 2024 by Andreas Sauer +' **************************************************************************************************************** +' + +Imports System +Imports System.Collections.Generic +Imports System.Globalization +Imports System.Linq +Imports System.Runtime.InteropServices +Imports System.Text +Imports Microsoft.VisualStudio.Shell + +''' +''' Dieses Attribut fügt der Assembly einen Toolbox Controls Installer-Schlüssel hinzu, +''' um Toolbox Controls aus der Assembly zu installieren. +''' +''' +''' Zum Beispiel: +''' [$(Rootkey)\ToolboxControlsInstaller\$FullAssemblyName$] +''' "Codebase"="$path$" +''' "WpfControls"="1" +''' + + +Public NotInheritable Class ProvideToolboxControlAttribute : Inherits RegistrationAttribute + + Private Const ToolboxControlsInstallerPath As String = "ToolboxControlsInstaller" + Private _isWpfControls As Boolean + Private _name As String + + ''' + ''' Erstellt ein neues Attribut „Provide Toolbox Control“, um die Assembly für das + ''' Toolbox Controls-Installationsprogramm zu registrieren. + ''' + ''' + ''' + Public Sub New(name As String, isWpfControls As Boolean) + + If name Is Nothing Then + Throw New ArgumentException("name") + End If + Me.Name = name + Me.IsWpfControls = isWpfControls + + End Sub + + ''' + ''' Ruft ab, ob die Toolbox-Steuerelemente für WPF gelten. + ''' + Private Property IsWpfControls As Boolean + Get + Return Me._isWpfControls + End Get + Set(value As Boolean) + Me._isWpfControls = value + End Set + End Property + + ''' + ''' Ruft den Namen für die Steuerelemente ab. + ''' + Private Property Name As String + Get + Return Me._name + End Get + Set(value As String) + Me._name = value + End Set + End Property + + ''' + ''' Wird aufgerufen, um dieses Attribut im angegebenen Kontext zu registrieren. + ''' Der Kontext enthält den Ort, an dem die Registrierungsinformationen + ''' platziert werden sollen. + ''' Es enthält auch andere Informationen wie den zu registrierenden Typ und Pfadinformationen. + ''' + ''' + ''' Vorgegebener Kontext für die Registrierung. + ''' + Public Overrides Sub Register(context As RegistrationAttribute.RegistrationContext) + + If context Is Nothing Then + Throw New ArgumentNullException("context") + End If + Using key As Key = context.CreateKey( + String.Format( + CultureInfo.InvariantCulture, + "{0}\{1}", + ToolboxControlsInstallerPath, + context.ComponentType.Assembly.FullName)) + + key.SetValue(String.Empty, Me.Name) + key.SetValue("Codebase", context.CodeBase) + If Me.IsWpfControls Then + key.SetValue("WPFControls", "1") + End If + + End Using + + End Sub + + ''' + ''' Wird aufgerufen, um die Registrierung dieses Attributs im angegebenen Kontext aufzuheben. + ''' + ''' + ''' Ein Registrierungskontext, der von einem externen Registrierungstool bereitgestellt wird. + ''' Der Kontext kann verwendet werden, um Registrierungsschlüssel zu entfernen, + ''' Registrierungsaktivitäten zu protokollieren und Informationen + ''' über die registrierte Komponente abzurufen. + ''' + Public Overrides Sub Unregister(context As RegistrationAttribute.RegistrationContext) + + If context IsNot Nothing Then + + context.RemoveKey( + String.Format( + CultureInfo.InvariantCulture, + "{0}\{1}", + ToolboxControlsInstallerPath, + context.ComponentType.Assembly.FullName)) + + End If + + End Sub + +End Class \ No newline at end of file diff --git a/IniFileControl/IniFileControl.vbproj b/IniFileControl/IniFileControl.vbproj index 23ace7e..95b68fe 100644 --- a/IniFileControl/IniFileControl.vbproj +++ b/IniFileControl/IniFileControl.vbproj @@ -75,9 +75,7 @@ IniFileControl.xml - - IniFileControl.md - + @@ -94,9 +92,6 @@ MyDescription.vb - - ProvideToolboxControlAttribute.vb - Component @@ -151,6 +146,7 @@ True Resources.resx + diff --git a/IniFileControl/ProvideToolboxControlAttribute.vb b/IniFileControl/ProvideToolboxControlAttribute.vb new file mode 100644 index 0000000..2a9b0ae --- /dev/null +++ b/IniFileControl/ProvideToolboxControlAttribute.vb @@ -0,0 +1,128 @@ +' **************************************************************************************************************** +' ProvideToolboxControlAttribute.vb +' © 2024 by Andreas Sauer +' **************************************************************************************************************** +' + +Imports System +Imports System.Collections.Generic +Imports System.Globalization +Imports System.Linq +Imports System.Runtime.InteropServices +Imports System.Text +Imports Microsoft.VisualStudio.Shell + +''' +''' Dieses Attribut fügt der Assembly einen Toolbox Controls Installer-Schlüssel hinzu, +''' um Toolbox Controls aus der Assembly zu installieren. +''' +''' +''' Zum Beispiel: +''' [$(Rootkey)\ToolboxControlsInstaller\$FullAssemblyName$] +''' "Codebase"="$path$" +''' "WpfControls"="1" +''' + + +Public NotInheritable Class ProvideToolboxControlAttribute : Inherits RegistrationAttribute + + Private Const ToolboxControlsInstallerPath As String = "ToolboxControlsInstaller" + Private _isWpfControls As Boolean + Private _name As String + + ''' + ''' Erstellt ein neues Attribut „Provide Toolbox Control“, um die Assembly für das + ''' Toolbox Controls-Installationsprogramm zu registrieren. + ''' + ''' + ''' + Public Sub New(name As String, isWpfControls As Boolean) + + If name Is Nothing Then + Throw New ArgumentException("name") + End If + Me.Name = name + Me.IsWpfControls = isWpfControls + + End Sub + + ''' + ''' Ruft ab, ob die Toolbox-Steuerelemente für WPF gelten. + ''' + Private Property IsWpfControls As Boolean + Get + Return Me._isWpfControls + End Get + Set(value As Boolean) + Me._isWpfControls = value + End Set + End Property + + ''' + ''' Ruft den Namen für die Steuerelemente ab. + ''' + Private Property Name As String + Get + Return Me._name + End Get + Set(value As String) + Me._name = value + End Set + End Property + + ''' + ''' Wird aufgerufen, um dieses Attribut im angegebenen Kontext zu registrieren. + ''' Der Kontext enthält den Ort, an dem die Registrierungsinformationen + ''' platziert werden sollen. + ''' Es enthält auch andere Informationen wie den zu registrierenden Typ und Pfadinformationen. + ''' + ''' + ''' Vorgegebener Kontext für die Registrierung. + ''' + Public Overrides Sub Register(context As RegistrationAttribute.RegistrationContext) + + If context Is Nothing Then + Throw New ArgumentNullException("context") + End If + Using key As Key = context.CreateKey( + String.Format( + CultureInfo.InvariantCulture, + "{0}\{1}", + ToolboxControlsInstallerPath, + context.ComponentType.Assembly.FullName)) + + key.SetValue(String.Empty, Me.Name) + key.SetValue("Codebase", context.CodeBase) + If Me.IsWpfControls Then + key.SetValue("WPFControls", "1") + End If + + End Using + + End Sub + + ''' + ''' Wird aufgerufen, um die Registrierung dieses Attributs im angegebenen Kontext aufzuheben. + ''' + ''' + ''' Ein Registrierungskontext, der von einem externen Registrierungstool bereitgestellt wird. + ''' Der Kontext kann verwendet werden, um Registrierungsschlüssel zu entfernen, + ''' Registrierungsaktivitäten zu protokollieren und Informationen + ''' über die registrierte Komponente abzurufen. + ''' + Public Overrides Sub Unregister(context As RegistrationAttribute.RegistrationContext) + + If context IsNot Nothing Then + + context.RemoveKey( + String.Format( + CultureInfo.InvariantCulture, + "{0}\{1}", + ToolboxControlsInstallerPath, + context.ComponentType.Assembly.FullName)) + + End If + + End Sub + +End Class \ No newline at end of file diff --git a/NotifyFormControl/NotifyFormControl.vbproj b/NotifyFormControl/NotifyFormControl.vbproj index 0522eba..bcacba3 100644 --- a/NotifyFormControl/NotifyFormControl.vbproj +++ b/NotifyFormControl/NotifyFormControl.vbproj @@ -74,18 +74,16 @@ NotifyFormControl.xml - - NotifyFormControl.md - - + + + + + MyDescription.vb - - ProvideToolboxControlAttribute.vb - @@ -100,6 +98,7 @@ Component + diff --git a/NotifyFormControl/ProvideToolboxControlAttribute.vb b/NotifyFormControl/ProvideToolboxControlAttribute.vb new file mode 100644 index 0000000..2a9b0ae --- /dev/null +++ b/NotifyFormControl/ProvideToolboxControlAttribute.vb @@ -0,0 +1,128 @@ +' **************************************************************************************************************** +' ProvideToolboxControlAttribute.vb +' © 2024 by Andreas Sauer +' **************************************************************************************************************** +' + +Imports System +Imports System.Collections.Generic +Imports System.Globalization +Imports System.Linq +Imports System.Runtime.InteropServices +Imports System.Text +Imports Microsoft.VisualStudio.Shell + +''' +''' Dieses Attribut fügt der Assembly einen Toolbox Controls Installer-Schlüssel hinzu, +''' um Toolbox Controls aus der Assembly zu installieren. +''' +''' +''' Zum Beispiel: +''' [$(Rootkey)\ToolboxControlsInstaller\$FullAssemblyName$] +''' "Codebase"="$path$" +''' "WpfControls"="1" +''' + + +Public NotInheritable Class ProvideToolboxControlAttribute : Inherits RegistrationAttribute + + Private Const ToolboxControlsInstallerPath As String = "ToolboxControlsInstaller" + Private _isWpfControls As Boolean + Private _name As String + + ''' + ''' Erstellt ein neues Attribut „Provide Toolbox Control“, um die Assembly für das + ''' Toolbox Controls-Installationsprogramm zu registrieren. + ''' + ''' + ''' + Public Sub New(name As String, isWpfControls As Boolean) + + If name Is Nothing Then + Throw New ArgumentException("name") + End If + Me.Name = name + Me.IsWpfControls = isWpfControls + + End Sub + + ''' + ''' Ruft ab, ob die Toolbox-Steuerelemente für WPF gelten. + ''' + Private Property IsWpfControls As Boolean + Get + Return Me._isWpfControls + End Get + Set(value As Boolean) + Me._isWpfControls = value + End Set + End Property + + ''' + ''' Ruft den Namen für die Steuerelemente ab. + ''' + Private Property Name As String + Get + Return Me._name + End Get + Set(value As String) + Me._name = value + End Set + End Property + + ''' + ''' Wird aufgerufen, um dieses Attribut im angegebenen Kontext zu registrieren. + ''' Der Kontext enthält den Ort, an dem die Registrierungsinformationen + ''' platziert werden sollen. + ''' Es enthält auch andere Informationen wie den zu registrierenden Typ und Pfadinformationen. + ''' + ''' + ''' Vorgegebener Kontext für die Registrierung. + ''' + Public Overrides Sub Register(context As RegistrationAttribute.RegistrationContext) + + If context Is Nothing Then + Throw New ArgumentNullException("context") + End If + Using key As Key = context.CreateKey( + String.Format( + CultureInfo.InvariantCulture, + "{0}\{1}", + ToolboxControlsInstallerPath, + context.ComponentType.Assembly.FullName)) + + key.SetValue(String.Empty, Me.Name) + key.SetValue("Codebase", context.CodeBase) + If Me.IsWpfControls Then + key.SetValue("WPFControls", "1") + End If + + End Using + + End Sub + + ''' + ''' Wird aufgerufen, um die Registrierung dieses Attributs im angegebenen Kontext aufzuheben. + ''' + ''' + ''' Ein Registrierungskontext, der von einem externen Registrierungstool bereitgestellt wird. + ''' Der Kontext kann verwendet werden, um Registrierungsschlüssel zu entfernen, + ''' Registrierungsaktivitäten zu protokollieren und Informationen + ''' über die registrierte Komponente abzurufen. + ''' + Public Overrides Sub Unregister(context As RegistrationAttribute.RegistrationContext) + + If context IsNot Nothing Then + + context.RemoveKey( + String.Format( + CultureInfo.InvariantCulture, + "{0}\{1}", + ToolboxControlsInstallerPath, + context.ComponentType.Assembly.FullName)) + + End If + + End Sub + +End Class \ No newline at end of file diff --git a/SchlumpfSoft Controls.sln b/SchlumpfSoft Controls.sln index d0e64d6..e1383ca 100644 --- a/SchlumpfSoft Controls.sln +++ b/SchlumpfSoft Controls.sln @@ -43,7 +43,6 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CommonCodes", "CommonCodes", "{70445C5A-6847-451E-976E-E3543B4337D7}" ProjectSection(SolutionItems) = preProject CommonCodes\MyDescription.vb = CommonCodes\MyDescription.vb - CommonCodes\ProvideToolboxControlAttribute.vb = CommonCodes\ProvideToolboxControlAttribute.vb EndProjectSection EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SevenSegmentControl", "SevenSegmentControl\SevenSegmentControl.vbproj", "{E4EB5FE5-7A23-4A30-8E17-9FEBD796FE53}" diff --git a/SchlumpfSoftControls/SchlumpfSoftControls.vbproj b/SchlumpfSoftControls/SchlumpfSoftControls.vbproj index 539a6c9..ab26071 100644 --- a/SchlumpfSoftControls/SchlumpfSoftControls.vbproj +++ b/SchlumpfSoftControls/SchlumpfSoftControls.vbproj @@ -71,6 +71,7 @@ SchlumpfSoftControls.xml + Designer diff --git a/SevenSegmentControl/ProvideToolboxControlAttribute.vb b/SevenSegmentControl/ProvideToolboxControlAttribute.vb new file mode 100644 index 0000000..2a9b0ae --- /dev/null +++ b/SevenSegmentControl/ProvideToolboxControlAttribute.vb @@ -0,0 +1,128 @@ +' **************************************************************************************************************** +' ProvideToolboxControlAttribute.vb +' © 2024 by Andreas Sauer +' **************************************************************************************************************** +' + +Imports System +Imports System.Collections.Generic +Imports System.Globalization +Imports System.Linq +Imports System.Runtime.InteropServices +Imports System.Text +Imports Microsoft.VisualStudio.Shell + +''' +''' Dieses Attribut fügt der Assembly einen Toolbox Controls Installer-Schlüssel hinzu, +''' um Toolbox Controls aus der Assembly zu installieren. +''' +''' +''' Zum Beispiel: +''' [$(Rootkey)\ToolboxControlsInstaller\$FullAssemblyName$] +''' "Codebase"="$path$" +''' "WpfControls"="1" +''' + + +Public NotInheritable Class ProvideToolboxControlAttribute : Inherits RegistrationAttribute + + Private Const ToolboxControlsInstallerPath As String = "ToolboxControlsInstaller" + Private _isWpfControls As Boolean + Private _name As String + + ''' + ''' Erstellt ein neues Attribut „Provide Toolbox Control“, um die Assembly für das + ''' Toolbox Controls-Installationsprogramm zu registrieren. + ''' + ''' + ''' + Public Sub New(name As String, isWpfControls As Boolean) + + If name Is Nothing Then + Throw New ArgumentException("name") + End If + Me.Name = name + Me.IsWpfControls = isWpfControls + + End Sub + + ''' + ''' Ruft ab, ob die Toolbox-Steuerelemente für WPF gelten. + ''' + Private Property IsWpfControls As Boolean + Get + Return Me._isWpfControls + End Get + Set(value As Boolean) + Me._isWpfControls = value + End Set + End Property + + ''' + ''' Ruft den Namen für die Steuerelemente ab. + ''' + Private Property Name As String + Get + Return Me._name + End Get + Set(value As String) + Me._name = value + End Set + End Property + + ''' + ''' Wird aufgerufen, um dieses Attribut im angegebenen Kontext zu registrieren. + ''' Der Kontext enthält den Ort, an dem die Registrierungsinformationen + ''' platziert werden sollen. + ''' Es enthält auch andere Informationen wie den zu registrierenden Typ und Pfadinformationen. + ''' + ''' + ''' Vorgegebener Kontext für die Registrierung. + ''' + Public Overrides Sub Register(context As RegistrationAttribute.RegistrationContext) + + If context Is Nothing Then + Throw New ArgumentNullException("context") + End If + Using key As Key = context.CreateKey( + String.Format( + CultureInfo.InvariantCulture, + "{0}\{1}", + ToolboxControlsInstallerPath, + context.ComponentType.Assembly.FullName)) + + key.SetValue(String.Empty, Me.Name) + key.SetValue("Codebase", context.CodeBase) + If Me.IsWpfControls Then + key.SetValue("WPFControls", "1") + End If + + End Using + + End Sub + + ''' + ''' Wird aufgerufen, um die Registrierung dieses Attributs im angegebenen Kontext aufzuheben. + ''' + ''' + ''' Ein Registrierungskontext, der von einem externen Registrierungstool bereitgestellt wird. + ''' Der Kontext kann verwendet werden, um Registrierungsschlüssel zu entfernen, + ''' Registrierungsaktivitäten zu protokollieren und Informationen + ''' über die registrierte Komponente abzurufen. + ''' + Public Overrides Sub Unregister(context As RegistrationAttribute.RegistrationContext) + + If context IsNot Nothing Then + + context.RemoveKey( + String.Format( + CultureInfo.InvariantCulture, + "{0}\{1}", + ToolboxControlsInstallerPath, + context.ComponentType.Assembly.FullName)) + + End If + + End Sub + +End Class \ No newline at end of file diff --git a/SevenSegmentControl/SevenSegmentControl.vbproj b/SevenSegmentControl/SevenSegmentControl.vbproj index 80c864d..82c6d02 100644 --- a/SevenSegmentControl/SevenSegmentControl.vbproj +++ b/SevenSegmentControl/SevenSegmentControl.vbproj @@ -73,18 +73,16 @@ SevenSegmentControl.xml - - SevenSegmentControl.md - - + + + + + MyDescription.vb - - ProvideToolboxControlAttribute.vb - @@ -92,6 +90,7 @@ True Resources.resx + Component diff --git a/ShapeControl/ProvideToolboxControlAttribute.vb b/ShapeControl/ProvideToolboxControlAttribute.vb new file mode 100644 index 0000000..2a9b0ae --- /dev/null +++ b/ShapeControl/ProvideToolboxControlAttribute.vb @@ -0,0 +1,128 @@ +' **************************************************************************************************************** +' ProvideToolboxControlAttribute.vb +' © 2024 by Andreas Sauer +' **************************************************************************************************************** +' + +Imports System +Imports System.Collections.Generic +Imports System.Globalization +Imports System.Linq +Imports System.Runtime.InteropServices +Imports System.Text +Imports Microsoft.VisualStudio.Shell + +''' +''' Dieses Attribut fügt der Assembly einen Toolbox Controls Installer-Schlüssel hinzu, +''' um Toolbox Controls aus der Assembly zu installieren. +''' +''' +''' Zum Beispiel: +''' [$(Rootkey)\ToolboxControlsInstaller\$FullAssemblyName$] +''' "Codebase"="$path$" +''' "WpfControls"="1" +''' + + +Public NotInheritable Class ProvideToolboxControlAttribute : Inherits RegistrationAttribute + + Private Const ToolboxControlsInstallerPath As String = "ToolboxControlsInstaller" + Private _isWpfControls As Boolean + Private _name As String + + ''' + ''' Erstellt ein neues Attribut „Provide Toolbox Control“, um die Assembly für das + ''' Toolbox Controls-Installationsprogramm zu registrieren. + ''' + ''' + ''' + Public Sub New(name As String, isWpfControls As Boolean) + + If name Is Nothing Then + Throw New ArgumentException("name") + End If + Me.Name = name + Me.IsWpfControls = isWpfControls + + End Sub + + ''' + ''' Ruft ab, ob die Toolbox-Steuerelemente für WPF gelten. + ''' + Private Property IsWpfControls As Boolean + Get + Return Me._isWpfControls + End Get + Set(value As Boolean) + Me._isWpfControls = value + End Set + End Property + + ''' + ''' Ruft den Namen für die Steuerelemente ab. + ''' + Private Property Name As String + Get + Return Me._name + End Get + Set(value As String) + Me._name = value + End Set + End Property + + ''' + ''' Wird aufgerufen, um dieses Attribut im angegebenen Kontext zu registrieren. + ''' Der Kontext enthält den Ort, an dem die Registrierungsinformationen + ''' platziert werden sollen. + ''' Es enthält auch andere Informationen wie den zu registrierenden Typ und Pfadinformationen. + ''' + ''' + ''' Vorgegebener Kontext für die Registrierung. + ''' + Public Overrides Sub Register(context As RegistrationAttribute.RegistrationContext) + + If context Is Nothing Then + Throw New ArgumentNullException("context") + End If + Using key As Key = context.CreateKey( + String.Format( + CultureInfo.InvariantCulture, + "{0}\{1}", + ToolboxControlsInstallerPath, + context.ComponentType.Assembly.FullName)) + + key.SetValue(String.Empty, Me.Name) + key.SetValue("Codebase", context.CodeBase) + If Me.IsWpfControls Then + key.SetValue("WPFControls", "1") + End If + + End Using + + End Sub + + ''' + ''' Wird aufgerufen, um die Registrierung dieses Attributs im angegebenen Kontext aufzuheben. + ''' + ''' + ''' Ein Registrierungskontext, der von einem externen Registrierungstool bereitgestellt wird. + ''' Der Kontext kann verwendet werden, um Registrierungsschlüssel zu entfernen, + ''' Registrierungsaktivitäten zu protokollieren und Informationen + ''' über die registrierte Komponente abzurufen. + ''' + Public Overrides Sub Unregister(context As RegistrationAttribute.RegistrationContext) + + If context IsNot Nothing Then + + context.RemoveKey( + String.Format( + CultureInfo.InvariantCulture, + "{0}\{1}", + ToolboxControlsInstallerPath, + context.ComponentType.Assembly.FullName)) + + End If + + End Sub + +End Class \ No newline at end of file diff --git a/ShapeControl/ShapeControl.vbproj b/ShapeControl/ShapeControl.vbproj index 4287973..f3a925b 100644 --- a/ShapeControl/ShapeControl.vbproj +++ b/ShapeControl/ShapeControl.vbproj @@ -73,18 +73,15 @@ ShapeControl.xml - - ShapeControl.md - - + + + + MyDescription.vb - - ProvideToolboxControlAttribute.vb - @@ -93,6 +90,7 @@ True Resources.resx + Component diff --git a/TransparentLabelControl/ProvideToolboxControlAttribute.vb b/TransparentLabelControl/ProvideToolboxControlAttribute.vb new file mode 100644 index 0000000..2a9b0ae --- /dev/null +++ b/TransparentLabelControl/ProvideToolboxControlAttribute.vb @@ -0,0 +1,128 @@ +' **************************************************************************************************************** +' ProvideToolboxControlAttribute.vb +' © 2024 by Andreas Sauer +' **************************************************************************************************************** +' + +Imports System +Imports System.Collections.Generic +Imports System.Globalization +Imports System.Linq +Imports System.Runtime.InteropServices +Imports System.Text +Imports Microsoft.VisualStudio.Shell + +''' +''' Dieses Attribut fügt der Assembly einen Toolbox Controls Installer-Schlüssel hinzu, +''' um Toolbox Controls aus der Assembly zu installieren. +''' +''' +''' Zum Beispiel: +''' [$(Rootkey)\ToolboxControlsInstaller\$FullAssemblyName$] +''' "Codebase"="$path$" +''' "WpfControls"="1" +''' + + +Public NotInheritable Class ProvideToolboxControlAttribute : Inherits RegistrationAttribute + + Private Const ToolboxControlsInstallerPath As String = "ToolboxControlsInstaller" + Private _isWpfControls As Boolean + Private _name As String + + ''' + ''' Erstellt ein neues Attribut „Provide Toolbox Control“, um die Assembly für das + ''' Toolbox Controls-Installationsprogramm zu registrieren. + ''' + ''' + ''' + Public Sub New(name As String, isWpfControls As Boolean) + + If name Is Nothing Then + Throw New ArgumentException("name") + End If + Me.Name = name + Me.IsWpfControls = isWpfControls + + End Sub + + ''' + ''' Ruft ab, ob die Toolbox-Steuerelemente für WPF gelten. + ''' + Private Property IsWpfControls As Boolean + Get + Return Me._isWpfControls + End Get + Set(value As Boolean) + Me._isWpfControls = value + End Set + End Property + + ''' + ''' Ruft den Namen für die Steuerelemente ab. + ''' + Private Property Name As String + Get + Return Me._name + End Get + Set(value As String) + Me._name = value + End Set + End Property + + ''' + ''' Wird aufgerufen, um dieses Attribut im angegebenen Kontext zu registrieren. + ''' Der Kontext enthält den Ort, an dem die Registrierungsinformationen + ''' platziert werden sollen. + ''' Es enthält auch andere Informationen wie den zu registrierenden Typ und Pfadinformationen. + ''' + ''' + ''' Vorgegebener Kontext für die Registrierung. + ''' + Public Overrides Sub Register(context As RegistrationAttribute.RegistrationContext) + + If context Is Nothing Then + Throw New ArgumentNullException("context") + End If + Using key As Key = context.CreateKey( + String.Format( + CultureInfo.InvariantCulture, + "{0}\{1}", + ToolboxControlsInstallerPath, + context.ComponentType.Assembly.FullName)) + + key.SetValue(String.Empty, Me.Name) + key.SetValue("Codebase", context.CodeBase) + If Me.IsWpfControls Then + key.SetValue("WPFControls", "1") + End If + + End Using + + End Sub + + ''' + ''' Wird aufgerufen, um die Registrierung dieses Attributs im angegebenen Kontext aufzuheben. + ''' + ''' + ''' Ein Registrierungskontext, der von einem externen Registrierungstool bereitgestellt wird. + ''' Der Kontext kann verwendet werden, um Registrierungsschlüssel zu entfernen, + ''' Registrierungsaktivitäten zu protokollieren und Informationen + ''' über die registrierte Komponente abzurufen. + ''' + Public Overrides Sub Unregister(context As RegistrationAttribute.RegistrationContext) + + If context IsNot Nothing Then + + context.RemoveKey( + String.Format( + CultureInfo.InvariantCulture, + "{0}\{1}", + ToolboxControlsInstallerPath, + context.ComponentType.Assembly.FullName)) + + End If + + End Sub + +End Class \ No newline at end of file diff --git a/TransparentLabelControl/TransparentLabelControl.vbproj b/TransparentLabelControl/TransparentLabelControl.vbproj index c615135..b7b1ec1 100644 --- a/TransparentLabelControl/TransparentLabelControl.vbproj +++ b/TransparentLabelControl/TransparentLabelControl.vbproj @@ -72,25 +72,17 @@ False TransparentLabelControl.xml - - - TransparentLabelControl.md - - - MyDescription.vb - - ProvideToolboxControlAttribute.vb - True True Resources.resx + Component @@ -124,6 +116,10 @@ + + + +