Windows Installer API (SDK)

RemoveFile Table

Referenz » RemoveFile Table | Microsoft Docs


VBS class RemoveFile


Class classRemoveFileTable
Private mFileKey, mComponent, mFileName, mDirProperty, mInstallMode

    Public Property Get pFileKey
        pFileKey = mFileKey
    End Property
    Public Property Let pFileKey(strFileKey)
        mFileKey = strFileKey
    End Property
    Public Property Get pComponent
        pComponent = mComponent
    End Property
    Public Property Let pComponent(strComponent)
        mComponent = strComponent
    End Property
    Public Property Get pFileName
        pFileName = mFileName
    End Property
    Public Property Let pFileName(strFileName)
        mFileName = strFileName
    End Property
    Public Property Get pDirProperty
        pDirProperty = mDirProperty
    End Property
    Public Property Let pDirProperty(strDirProperty)
        mDirProperty = strDirProperty
    End Property
    Public Property Get pInstallMode
        pInstallMode = mInstallMode
    End Property
    Public Property Let pInstallMode(intInstallMode)
        mInstallMode = intInstallMode
    End Property

    Private Sub Class_Initialize
        'Anweisungen
    End Sub
    ' -----------------------------------------------------------------

    Public Function CreateTable()
    Dim strSQL, objView

    strSQL = "CREATE TABLE " & Chr(96) & "RemoveFile" & Chr(96) & " (" & _
                 Chr(96) & "FileKey" & Chr(96) & " CHAR(72) NOT NULL, " & _
                 Chr(96) & "Component_" & Chr(96) & " CHAR(72) NOT NULL, " & _
                 Chr(96) & "FileName" & Chr(96) & " CHAR(255) LOCALIZABLE, " & _
                 Chr(96) & "DirProperty" & Chr(96) & " CHAR(72) NOT NULL, " & _
                 Chr(96) & "InstallMode" & Chr(96) & " SHORT NOT NULL PRIMARY KEY " & _
                 Chr(96) & "FileKey" & Chr(96) & ")"

    Set objView = objDatabase.OpenView(strSQL)
    objView.Execute
    objDatabase.Commit()

    msiValidation.pTable = "RemoveFile"
    msiValidation.pColumn = "FileKey"
    msiValidation.pNullable = "N"
    msiValidation.pMinValue = Null
    msiValidation.pMaxValue = Null
    msiValidation.pKeyTable = ""
    msiValidation.pKeyColumn = Null
    msiValidation.pCategory = "Identifier"
    msiValidation.pSet = ""
    msiValidation.pDescription = "Primary key used to identify a particular file entry."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    msiValidation.pTable = "RemoveFile"
    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 referencing Component that " & _
                                    "controls the file to be removed."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    msiValidation.pTable = "RemoveFile"
    msiValidation.pColumn = "FileName"
    msiValidation.pNullable = "Y"
    msiValidation.pMinValue = Null
    msiValidation.pMaxValue = Null
    msiValidation.pKeyTable = ""
    msiValidation.pKeyColumn = Null
    msiValidation.pCategory = "WildCardFilename"
    msiValidation.pSet = ""
    msiValidation.pDescription = "Name of the file to be removed."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    msiValidation.pTable = "RemoveFile"
    msiValidation.pColumn = "DirProperty"
    msiValidation.pNullable = "N"
    msiValidation.pMinValue = Null
    msiValidation.pMaxValue = Null
    msiValidation.pKeyTable = ""
    msiValidation.pKeyColumn = Null
    msiValidation.pCategory = "Identifier"
    msiValidation.pSet = ""
    msiValidation.pDescription = "Name of a property whose value is assumed to " & _
                "resolve to the full pathname to the folder of the file to be removed."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    msiValidation.pTable = "RemoveFile"
    msiValidation.pColumn = "InstallMode"
    msiValidation.pNullable = "N"
    msiValidation.pMinValue = Null
    msiValidation.pMaxValue = Null
    msiValidation.pKeyTable = ""
    msiValidation.pKeyColumn = Null
    msiValidation.pCategory = ""
    msiValidation.pSet = "1;2;3"
    msiValidation.pDescription = "Installation option, one of iimEnum."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    Set objView = Nothing

    End Function
    ' -----------------------------------------------------------------

    Public Function ModifyRemoveFileRecord()
    Dim strSQL, objView, objTableRow

    strSQL = "SELECT * FROM RemoveFile"

    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) = mFileKey
            objTableRow.StringData(2) = mComponent
            objTableRow.StringData(3) = mFileName
            objTableRow.StringData(4) = mDirProperty
            objTableRow.IntegerData(5) = mInstallMode
            objView.Modify msiViewModifyAssign, objTableRow
            Exit Do
        End If
            objTableRow.StringData(1) = mFileKey
            objTableRow.StringData(2) = mComponent
            objTableRow.StringData(3) = mFileName
            objTableRow.StringData(4) = mDirProperty
            objTableRow.IntegerData(5) = mInstallMode
            objView.Modify msiViewModifyAssign, objTableRow
    Loop
    objDatabase.Commit()
    objView.Close
    Set objView = Nothing

    End Function
    ' -----------------------------------------------------------------

    Public Function InitializeRemoveFileTable()

    If IsMissingTable("RemoveFile") Then CreateTable

    mFileKey = "RM" & Mid(Replace(GenerateGUID, "-", "", vbTextCompare),2,32)
    mComponent = msiComponent.pComponent
    mFileName = "*"
    mDirProperty = msiCreateFolder.pDirectory
    mInstallMode = cInt("2")

    End Function
    ' -----------------------------------------------------------------

    Public Function DeleteRemoveFileRecord()
    Dim strSQL, objView, objTableRow

    strSQL = "SELECT * FROM RemoveFile"

    Set objView = objDatabase.OpenView(strSQL)
    objView.Execute
    Do 
        Set objTableRow = objView.Fetch
        If objTableRow Is Nothing Then Exit Do
        
        If objTableRow.StringData(2) = 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 RemoveFile"

    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 RemoveFile"

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