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