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
' ---------------------------------------------------------------------