Skip to content

Commit

Permalink
Lokale Kopien von ProvideToolboxControlAttribute.vb hinzugefügt
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Hanibal1963 committed Oct 12, 2024
1 parent 5ce8e9a commit 667bed9
Show file tree
Hide file tree
Showing 18 changed files with 947 additions and 64 deletions.
11 changes: 4 additions & 7 deletions AniGifControl/AniGifControl.vbproj
Original file line number Diff line number Diff line change
Expand Up @@ -84,18 +84,14 @@
<DocumentationFile>AniGifControl.xml</DocumentationFile>
</PropertyGroup>
<ItemGroup>
<None Include="..\Docs\AniGifControl.md">
<Link>AniGifControl.md</Link>
</None>
<None Include="ClassDiagram.cd" />
<None Include="AniGif.cd" />
<None Include="ProvideToolboxControlAttribute.cd" />
<None Include="SizeMode.cd" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\CommonCodes\MyDescription.vb">
<Link>MyDescription.vb</Link>
</Compile>
<Compile Include="..\CommonCodes\ProvideToolboxControlAttribute.vb">
<Link>ProvideToolboxControlAttribute.vb</Link>
</Compile>
<Compile Include="AniGif.vb">
<SubType>UserControl</SubType>
</Compile>
Expand All @@ -105,6 +101,7 @@
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="ProvideToolboxControlAttribute.vb" />
<Compile Include="SizeMode.vb" />
</ItemGroup>
<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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

Expand Down Expand Up @@ -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,
Expand All @@ -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
Expand Down
12 changes: 5 additions & 7 deletions DriveWatcherControl/DriveWatcherControl.vbproj
Original file line number Diff line number Diff line change
Expand Up @@ -74,18 +74,15 @@
<CreateVsixContainer>False</CreateVsixContainer>
</PropertyGroup>
<ItemGroup>
<None Include="..\Docs\DriveWatcherControl.md">
<Link>DriveWatcherControl.md</Link>
</None>
<None Include="ClassDiagram.cd" />
<None Include="DriveWatcher.cd" />
<None Include="DriveRemovedEventArgs.cd" />
<None Include="DriveAddedEventArgs.cd" />
<None Include="ProvideToolboxControlAttribute.cd" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\CommonCodes\MyDescription.vb">
<Link>MyDescription.vb</Link>
</Compile>
<Compile Include="..\CommonCodes\ProvideToolboxControlAttribute.vb">
<Link>ProvideToolboxControlAttribute.vb</Link>
</Compile>
<Compile Include="DriveAddedEventArgs.vb" />
<Compile Include="DriveRemovedEventArgs.vb" />
<Compile Include="DriveWatcher.vb">
Expand All @@ -97,6 +94,7 @@
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="ProvideToolboxControlAttribute.vb" />
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
Expand Down
128 changes: 128 additions & 0 deletions DriveWatcherControl/ProvideToolboxControlAttribute.vb
Original file line number Diff line number Diff line change
@@ -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

''' <summary>
''' Dieses Attribut fügt der Assembly einen Toolbox Controls Installer-Schlüssel hinzu,
''' um Toolbox Controls aus der Assembly zu installieren.
''' </summary>
''' <remarks>
''' Zum Beispiel:
''' [$(Rootkey)\ToolboxControlsInstaller\$FullAssemblyName$]
''' "Codebase"="$path$"
''' "WpfControls"="1"
''' </remarks>
<AttributeUsage(AttributeTargets.Class, AllowMultiple:=False, Inherited:=True)>
<System.Runtime.InteropServices.ComVisibleAttribute(False)>
Public NotInheritable Class ProvideToolboxControlAttribute : Inherits RegistrationAttribute

Private Const ToolboxControlsInstallerPath As String = "ToolboxControlsInstaller"
Private _isWpfControls As Boolean
Private _name As String

''' <summary>
''' Erstellt ein neues Attribut „Provide Toolbox Control“, um die Assembly für das
''' Toolbox Controls-Installationsprogramm zu registrieren.
''' </summary>
''' <param name="isWpfControls">
''' </param>
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

''' <summary>
''' Ruft ab, ob die Toolbox-Steuerelemente für WPF gelten.
''' </summary>
Private Property IsWpfControls As Boolean
Get
Return Me._isWpfControls
End Get
Set(value As Boolean)
Me._isWpfControls = value
End Set
End Property

''' <summary>
''' Ruft den Namen für die Steuerelemente ab.
''' </summary>
Private Property Name As String
Get
Return Me._name
End Get
Set(value As String)
Me._name = value
End Set
End Property

''' <summary>
''' 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.
''' </summary>
''' <param name="context">
''' Vorgegebener Kontext für die Registrierung.
''' </param>
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

''' <summary>
''' Wird aufgerufen, um die Registrierung dieses Attributs im angegebenen Kontext aufzuheben.
''' </summary>
''' <param name="context">
''' 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.
''' </param>
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
8 changes: 2 additions & 6 deletions IniFileControl/IniFileControl.vbproj
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,7 @@
<DocumentationFile>IniFileControl.xml</DocumentationFile>
</PropertyGroup>
<ItemGroup>
<None Include="..\Docs\IniFileControl.md">
<Link>IniFileControl.md</Link>
</None>
<None Include="ProvideToolboxControlAttribute.cd" />
<None Include="IniFileRenameItemDialog.cd" />
<None Include="IniFileListEditEventArgs.cd" />
<None Include="IniFileListEdit.cd" />
Expand All @@ -94,9 +92,6 @@
<Compile Include="..\CommonCodes\MyDescription.vb">
<Link>MyDescription.vb</Link>
</Compile>
<Compile Include="..\CommonCodes\ProvideToolboxControlAttribute.vb">
<Link>ProvideToolboxControlAttribute.vb</Link>
</Compile>
<Compile Include="IniFile.vb">
<SubType>Component</SubType>
</Compile>
Expand Down Expand Up @@ -151,6 +146,7 @@
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="ProvideToolboxControlAttribute.vb" />
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
Expand Down
128 changes: 128 additions & 0 deletions IniFileControl/ProvideToolboxControlAttribute.vb
Original file line number Diff line number Diff line change
@@ -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

''' <summary>
''' Dieses Attribut fügt der Assembly einen Toolbox Controls Installer-Schlüssel hinzu,
''' um Toolbox Controls aus der Assembly zu installieren.
''' </summary>
''' <remarks>
''' Zum Beispiel:
''' [$(Rootkey)\ToolboxControlsInstaller\$FullAssemblyName$]
''' "Codebase"="$path$"
''' "WpfControls"="1"
''' </remarks>
<AttributeUsage(AttributeTargets.Class, AllowMultiple:=False, Inherited:=True)>
<System.Runtime.InteropServices.ComVisibleAttribute(False)>
Public NotInheritable Class ProvideToolboxControlAttribute : Inherits RegistrationAttribute

Private Const ToolboxControlsInstallerPath As String = "ToolboxControlsInstaller"
Private _isWpfControls As Boolean
Private _name As String

''' <summary>
''' Erstellt ein neues Attribut „Provide Toolbox Control“, um die Assembly für das
''' Toolbox Controls-Installationsprogramm zu registrieren.
''' </summary>
''' <param name="isWpfControls">
''' </param>
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

''' <summary>
''' Ruft ab, ob die Toolbox-Steuerelemente für WPF gelten.
''' </summary>
Private Property IsWpfControls As Boolean
Get
Return Me._isWpfControls
End Get
Set(value As Boolean)
Me._isWpfControls = value
End Set
End Property

''' <summary>
''' Ruft den Namen für die Steuerelemente ab.
''' </summary>
Private Property Name As String
Get
Return Me._name
End Get
Set(value As String)
Me._name = value
End Set
End Property

''' <summary>
''' 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.
''' </summary>
''' <param name="context">
''' Vorgegebener Kontext für die Registrierung.
''' </param>
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

''' <summary>
''' Wird aufgerufen, um die Registrierung dieses Attributs im angegebenen Kontext aufzuheben.
''' </summary>
''' <param name="context">
''' 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.
''' </param>
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
Loading

0 comments on commit 667bed9

Please sign in to comment.