Windows Installer API (SDK)

MoveFile Table

Referenz » MoveFile Table | Microsoft Docs


VBS class MoveFile


Class classMoveFileTable
Private mFileKey, mComponent, mSourceName, mDestName, mSourceFolder, mDestFolder, mOptions

    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 pSourceName
        pSourceName = mSourceName
    End Property
    Public Property Let pSourceName(strSourceName)
        mSourceName = strSourceName
    End Property
    Public Property Get pDestName
        pDestName = mDestName
    End Property
    Public Property Let pDestName(strDestName)
        mDestName = strDestName
    End Property
    Public Property Get pSourceFolder
        pSourceFolder = mSourceFolder
    End Property
    Public Property Let pSourceFolder(strSourceFolder)
        mSourceFolder = strSourceFolder
    End Property
    Public Property Get pDestFolder
        pDestFolder = mDestFolder
    End Property
    Public Property Let pDestFolder(strDestFolder)
        mDestFolder = strDestFolder
    End Property
    Public Property Get pOptions
        pOptions = mOptions
    End Property
    Public Property Let pOptions(intOptions)
        mOptions = intOptions
    End Property
    
    Private Sub Class_Initialize
        'Anweisungen
    End Sub
    ' -----------------------------------------------------------------
    
    Public Function CreateTable()
    Dim strSQL, objView

    strSQL = "CREATE TABLE " & Chr(96) & "MoveFile" & Chr(96) & " (" & _
                 Chr(96) & "FileKey" & Chr(96) & " CHAR(72) NOT NULL, " & _
                 Chr(96) & "Component_" & Chr(96) & " CHAR(72) NOT NULL, " & _
                 Chr(96) & "SourceName" & Chr(96) & " CHAR(255) LOCALIZABLE, " & _
                 Chr(96) & "DestName" & Chr(96) & " CHAR(255) LOCALIZABLE, " & _
                 Chr(96) & "SourceFolder" & Chr(96) & " CHAR(72), " & _
                 Chr(96) & "DestFolder" & Chr(96) & " CHAR(72) NOT NULL, " & _
                 Chr(96) & "Options" & Chr(96) & " SHORT NOT NULL PRIMARY KEY " & _
                 Chr(96) & "FileKey" & Chr(96) & ")"

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

    msiValidation.pTable = "MoveFile"
    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 that uniquely identifies a particular MoveFile record."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    msiValidation.pTable = "MoveFile"
    msiValidation.pColumn = "Component_"
    msiValidation.pNullable = "N"
    msiValidation.pMinValue = Null
    msiValidation.pMaxValue = Null
    msiValidation.pKeyTable = "Component"
    msiValidation.pKeyColumn = 1
    msiValidation.pCategory = "Identifier"
    msiValidation.pSet = ""
    msiValidation.pDescription = "If this component is not " & Chr(34) & "selected" & Chr(34) & _
                " for installation or removal, no action will be taken on the associated MoveFile entry."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    msiValidation.pTable = "MoveFile"
    msiValidation.pColumn = "SourceName"
    msiValidation.pNullable = "Y"
    msiValidation.pMinValue = Null
    msiValidation.pMaxValue = Null
    msiValidation.pKeyTable = ""
    msiValidation.pKeyColumn = Null
    msiValidation.pCategory = "WildCardFilename"
    msiValidation.pSet = ""
    msiValidation.pDescription = "Name of the source file(s) to be moved or copied. "  & _
                                    "Can contain the '*' or '?' wildcards."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    msiValidation.pTable = "MoveFile"
    msiValidation.pColumn = "DestName"
    msiValidation.pNullable = "Y"
    msiValidation.pMinValue = Null
    msiValidation.pMaxValue = Null
    msiValidation.pKeyTable = ""
    msiValidation.pKeyColumn = Null
    msiValidation.pCategory = "Filename"
    msiValidation.pSet = ""
    msiValidation.pDescription = "Name to be given to the original file after it is moved or copied. "  & _
                        "If blank, the destination file will be given the same name as the source file."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    msiValidation.pTable = "MoveFile"
    msiValidation.pColumn = "SourceFolder"
    msiValidation.pNullable = "Y"
    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 path to the source directory."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    msiValidation.pTable = "MoveFile"
    msiValidation.pColumn = "DestFolder"
    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 path to the destination directory."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    msiValidation.pTable = "MoveFile"
    msiValidation.pColumn = "Options"
    msiValidation.pNullable = "N"
    msiValidation.pMinValue = 0
    msiValidation.pMaxValue = 1
    msiValidation.pKeyTable = ""
    msiValidation.pKeyColumn = Null
    msiValidation.pCategory = ""
    msiValidation.pSet = ""
    msiValidation.pDescription = "Integer value specifying the MoveFile operating "  & _
                                    "mode, one of imfoEnum."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    Set objView = Nothing
    
    End Function
    ' -----------------------------------------------------------------

    Public Function ModifyMoveFileRecord()
    Dim strSQL, objView, objTableRow

    strSQL = "SELECT * FROM MoveFile"

    Set objView = objDatabase.OpenView(strSQL)
    objView.Execute
    Do 
        Set objTableRow = objView.Fetch
        If objTableRow Is Nothing Then
            Set objTableRow = objInstaller.CreateRecord(7)
            objTableRow.StringData(1) = mFileKey
            objTableRow.StringData(2) = mComponent
            objTableRow.StringData(3) = mSourceName
            objTableRow.StringData(4) = mDestName
            objTableRow.StringData(5) = mSourceFolder
            objTableRow.StringData(6) = mDestFolder
            objTableRow.IntegerData(7) = mOptions
            objView.Modify msiViewModifyAssign, objTableRow
            Exit Do
        End If
            objTableRow.StringData(1) = mFileKey
            objTableRow.StringData(2) = mComponent
            objTableRow.StringData(3) = mSourceName
            objTableRow.StringData(4) = mDestName
            objTableRow.StringData(5) = mSourceFolder
            objTableRow.StringData(6) = mDestFolder
            objTableRow.IntegerData(7) = mOptions
            objView.Modify msiViewModifyAssign, objTableRow
    Loop
    objDatabase.Commit()
    objView.Close
    Set objView = Nothing

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

    Public Function DeleteMoveFileRecord()
    Dim strSQL, objView, objTableRow

    strSQL = "SELECT * FROM MoveFile"

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

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

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