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 @@ + + + +