Windows Installer API (SDK)
RemoveRegistry Table
Referenz » RemoveRegistry Table | Microsoft Docs
VBS class RemoveRegistry
Class classRemoveRegistryTable
Private mRemoveRegistry, mRoot, mKey, mName, mComponent
Public Property Get pRemoveRegistry
pRemoveRegistry = mRemoveRegistry
End Property
Public Property Let pRemoveRegistry(strRemoveRegistry)
mRemoveRegistry = strRemoveRegistry
End Property
Public Property Get pRoot
pRoot = mRoot
End Property
Public Property Let pRoot(intRoot)
mRoot = intRoot
End Property
Public Property Get pKey
pKey = mKey
End Property
Public Property Let pKey(strKey)
mKey = strKey
End Property
Public Property Get pName
pName = mName
End Property
Public Property Let pName(strName)
mName = strName
End Property
Public Property Get pComponent
pComponent = mComponent
End Property
Public Property Let pComponent(strComponent)
mComponent = strComponent
End Property
Private Sub Class_Initialize
'Anweisungen
End Sub
' -----------------------------------------------------------------
Public Function CreateTable()
Dim strSQL, objView
strSQL = "CREATE TABLE " & Chr(96) & "RemoveRegistry" & Chr(96) & " (" & _
Chr(96) & "RemoveRegistry" & Chr(96) & " CHAR(72) NOT NULL, " & _
Chr(96) & "Root" & Chr(96) & " SHORT NOT NULL, " & _
Chr(96) & "Key" & Chr(96) & " CHAR(255) NOT NULL LOCALIZABLE, " & _
Chr(96) & "Name" & Chr(96) & " CHAR(255) LOCALIZABLE, " & _
Chr(96) & "Component_" & Chr(96) & " CHAR(72) NOT NULL PRIMARY KEY " & _
Chr(96) & "RemoveRegistry" & Chr(96) & ")"
Set objView = objDatabase.OpenView(strSQL)
objView.Execute
objDatabase.Commit()
msiValidation.pTable = "RemoveRegistry"
msiValidation.pColumn = "RemoveRegistry"
msiValidation.pNullable = "N"
msiValidation.pMinValue = Null
msiValidation.pMaxValue = Null
msiValidation.pKeyTable = ""
msiValidation.pKeyColumn = Null
msiValidation.pCategory = "Identifier"
msiValidation.pSet = ""
msiValidation.pDescription = "Primary key, non-localized token."
msiValidation.ModifyValidationRecord
msiValidation.ResetValidationRecord
msiValidation.pTable = "RemoveRegistry"
msiValidation.pColumn = "Root"
msiValidation.pNullable = "N"
msiValidation.pMinValue = cInt("-1")
msiValidation.pMaxValue = cInt("3")
msiValidation.pKeyTable = ""
msiValidation.pKeyColumn = Null
msiValidation.pCategory = ""
msiValidation.pSet = ""
msiValidation.pDescription = "The predefined root key for the registry value, one of rrkEnum."
msiValidation.ModifyValidationRecord
msiValidation.ResetValidationRecord
msiValidation.pTable = "RemoveRegistry"
msiValidation.pColumn = "Key"
msiValidation.pNullable = "N"
msiValidation.pMinValue = Null
msiValidation.pMaxValue = Null
msiValidation.pKeyTable = ""
msiValidation.pKeyColumn = Null
msiValidation.pCategory = "RegPath"
msiValidation.pSet = ""
msiValidation.pDescription = "The key for the registry value."
msiValidation.ModifyValidationRecord
msiValidation.ResetValidationRecord
msiValidation.pTable = "RemoveRegistry"
msiValidation.pColumn = "Name"
msiValidation.pNullable = "Y"
msiValidation.pMinValue = Null
msiValidation.pMaxValue = Null
msiValidation.pKeyTable = ""
msiValidation.pKeyColumn = Null
msiValidation.pCategory = "Formatted"
msiValidation.pSet = ""
msiValidation.pDescription = "The registry value name."
msiValidation.ModifyValidationRecord
msiValidation.ResetValidationRecord
msiValidation.pTable = "RemoveRegistry"
msiValidation.pColumn = "Component_"
msiValidation.pNullable = "N"
msiValidation.pMinValue = Null
msiValidation.pMaxValue = Null
msiValidation.pKeyTable = "Component"
msiValidation.pKeyColumn = cInt("1")
msiValidation.pCategory = "Identifier"
msiValidation.pSet = ""
msiValidation.pDescription = "Foreign key into the Component table referencing " & _
"component that controls the deletion of the registry value."
msiValidation.ModifyValidationRecord
msiValidation.ResetValidationRecord
Set objView = Nothing
End Function
' -----------------------------------------------------------------
Public Function ModifyRemoveRegistryRecord()
Dim strSQL, objView, objTableRow
strSQL = "SELECT * FROM RemoveRegistry"
Set objView = objDatabase.OpenView(strSQL)
objView.Execute
Do
Set objTableRow = objView.Fetch
If objTableRow Is Nothing Then
Set objTableRow = objInstaller.CreateRecord(5)
objTableRow.StringData(1) = mRemoveRegistry
objTableRow.IntegerData(2) = mRoot
objTableRow.StringData(3) = mKey
objTableRow.StringData(4) = mName
objTableRow.StringData(5) = mComponent
objView.Modify msiViewModifyAssign, objTableRow
Exit Do
End If
objTableRow.StringData(1) = mRemoveRegistry
objTableRow.IntegerData(2) = mRoot
objTableRow.StringData(3) = mKey
objTableRow.StringData(4) = mName
objTableRow.StringData(5) = mComponent
objView.Modify msiViewModifyAssign, objTableRow
Loop
objDatabase.Commit()
objView.Close
Set objView = Nothing
End Function
' -----------------------------------------------------------------
Public Function DeleteRemoveRegistryRecord()
Dim strSQL, objView, objTableRow
strSQL = "SELECT * FROM RemoveRegistry"
Set objView = objDatabase.OpenView(strSQL)
objView.Execute
Do
Set objTableRow = objView.Fetch
If objTableRow Is Nothing Then Exit Do
If objTableRow.StringData(5) = mComponent Then _
objView.Modify msiViewModifyDelete, objTableRow
Loop
objDatabase.Commit()
objView.Close
Set objView = Nothing
End Function
' -----------------------------------------------------------------
Public Function DeleteAllRecords()
Dim strSQL, objView
strSQL = "DELETE FROM RemoveRegistry"
Set objView = objDatabase.OpenView(strSQL)
objView.Execute
objDatabase.Commit()
objView.Close
Set objView = Nothing
End Function
' -----------------------------------------------------------------
Public Function DropTable()
Dim strSQL, objView
strSQL = "DROP TABLE RemoveRegistry"
Set objView = objDatabase.OpenView(strSQL)
objView.Execute
objDatabase.Commit()
objView.Close
Set objView = Nothing
End Function
' -----------------------------------------------------------------
Private Sub Class_Terminate()
'Anweisungen
End Sub
End Class
' ---------------------------------------------------------------------