Windows Installer API (SDK)

Signature Table

Referenz » Signature Table | Microsoft Docs


VBS class Signature


Class classSignatureTable
Private mSignature, mFileName, mMinVersion, mMaxVersion, mMinSize
Private mMaxSize, mMinDate, mMaxDate, mLanguages

    Public Property Get pSignature
        pSignature = mSignature
    End Property
    Public Property Let pSignature(strSignature)
        mSignature = strSignature
    End Property
    Public Property Get pFileName
        pFileName = mFileName
    End Property
    Public Property Let pFileName(strFileName)
        mFileName = strFileName
    End Property
    Public Property Get pMinVersion
        pMinVersion = mMinVersion
    End Property
    Public Property Let pMinVersion(strMinVersion)
        mMinVersion = strMinVersion
    End Property
    Public Property Get pMaxVersion
        pMaxVersion = mMaxVersion
    End Property
    Public Property Let pMaxVersion(strMaxVersion)
        mMaxVersion = strMaxVersion
    End Property
    Public Property Get pMinSize
        pMinSize = mMinSize
    End Property
    Public Property Let pMinSize(lngMinSize)
        mMinSize = lngMinSize
    End Property
    Public Property Get pMaxSize
        pMaxSize = mMaxSize
    End Property
    Public Property Let pMaxSize(lngMaxSize)
        mMaxSize = lngMaxSize
    End Property
    Public Property Get pMinDate
        pMinDate = mMinDate
    End Property
    Public Property Let pMinDate(lngMinDate)
        mMinDate = lngMinDate
    End Property
    Public Property Get pMaxDate
        pMaxDate = mMaxDate
    End Property
    Public Property Let pMaxDate(lngMaxDate)
        mMaxDate = lngMaxDate
    End Property
    Public Property Get pLanguages
        pLanguages = mLanguages
    End Property
    Public Property Let pLanguages(strLanguages)
        mLanguages = strLanguages
    End Property

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

    Public Function CreateTable()
    Dim strSQL, objView

    strSQL = "CREATE TABLE " & Chr(96) & "Signature" & Chr(96) & " (" & _
                 Chr(96) & "Signature" & Chr(96) & " CHAR(72) NOT NULL, " & _
                 Chr(96) & "FileName" & Chr(96) & " CHAR(255) NOT NULL, " & _
                 Chr(96) & "MinVersion" & Chr(96) & " CHAR(20), " & _
                 Chr(96) & "MaxVersion" & Chr(96) & " CHAR(20), " & _
                 Chr(96) & "MinSize" & Chr(96) & " Long, " & _
                 Chr(96) & "MaxSize" & Chr(96) & " Long, " & _
                 Chr(96) & "MinDate" & Chr(96) & " Long, " & _
                 Chr(96) & "MaxDate" & Chr(96) & " Long, " & _
                 Chr(96) & "Languages" & Chr(96) & " CHAR(255) PRIMARY KEY " & _
                 Chr(96) & "Signature" & Chr(96) & ")"

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

    msiValidation.pTable = "Signature"
    msiValidation.pColumn = "Signature"
    msiValidation.pNullable = "N"
    msiValidation.pMinValue = Null
    msiValidation.pMaxValue = Null
    msiValidation.pKeyTable = ""
    msiValidation.pKeyColumn = Null
    msiValidation.pCategory = "Identifier"
    msiValidation.pSet = ""
    msiValidation.pDescription = "The table key. The Signature represents a unique file signature."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    msiValidation.pTable = "Signature"
    msiValidation.pColumn = "FileName"
    msiValidation.pNullable = "N"
    msiValidation.pMinValue = Null
    msiValidation.pMaxValue = Null
    msiValidation.pKeyTable = ""
    msiValidation.pKeyColumn = Null
    msiValidation.pCategory = "FileName"
    msiValidation.pSet = ""
    msiValidation.pDescription = "The name of the file. This may contain a " & _
                    Chr(34) & "short name|long name" & Chr(34) & " pair."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    msiValidation.pTable = "Signature"
    msiValidation.pColumn = "MinVersion"
    msiValidation.pNullable = "Y"
    msiValidation.pMinValue = Null
    msiValidation.pMaxValue = Null
    msiValidation.pKeyTable = ""
    msiValidation.pKeyColumn = Null
    msiValidation.pCategory = "Text"
    msiValidation.pSet = ""
    msiValidation.pDescription = "The minimum version of the file."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    msiValidation.pTable = "Signature"
    msiValidation.pColumn = "MaxVersion"
    msiValidation.pNullable = "Y"
    msiValidation.pMinValue = Null
    msiValidation.pMaxValue = Null
    msiValidation.pKeyTable = ""
    msiValidation.pKeyColumn = Null
    msiValidation.pCategory = "Text"
    msiValidation.pSet = ""
    msiValidation.pDescription = "The maximum version of the file."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    msiValidation.pTable = "Signature"
    msiValidation.pColumn = "MinSize"
    msiValidation.pNullable = "Y"
    msiValidation.pMinValue = cInt("0")
    msiValidation.pMaxValue = cInt("2147483647")
    msiValidation.pKeyTable = ""
    msiValidation.pKeyColumn = Null
    msiValidation.pCategory = ""
    msiValidation.pSet = ""
    msiValidation.pDescription = "The minimum size of the file."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    msiValidation.pTable = "Signature"
    msiValidation.pColumn = "MaxSize"
    msiValidation.pNullable = "Y"
    msiValidation.pMinValue = cInt("0")
    msiValidation.pMaxValue = cInt("2147483647")
    msiValidation.pKeyTable = ""
    msiValidation.pKeyColumn = Null
    msiValidation.pCategory = ""
    msiValidation.pSet = ""
    msiValidation.pDescription = "The maximum size of the file."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    msiValidation.pTable = "Signature"
    msiValidation.pColumn = "MinDate"
    msiValidation.pNullable = "Y"
    msiValidation.pMinValue = cInt("0")
    msiValidation.pMaxValue = cInt("2147483647")
    msiValidation.pKeyTable = ""
    msiValidation.pKeyColumn = Null
    msiValidation.pCategory = ""
    msiValidation.pSet = ""
    msiValidation.pDescription = "The minimum creation date of the file."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    msiValidation.pTable = "Signature"
    msiValidation.pColumn = "MaxDate"
    msiValidation.pNullable = "Y"
    msiValidation.pMinValue = cInt("0")
    msiValidation.pMaxValue = cInt("2147483647")
    msiValidation.pKeyTable = ""
    msiValidation.pKeyColumn = Null
    msiValidation.pCategory = ""
    msiValidation.pSet = ""
    msiValidation.pDescription = "The maximum creation date of the file."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    msiValidation.pTable = "Signature"
    msiValidation.pColumn = "Languages"
    msiValidation.pNullable = "Y"
    msiValidation.pMinValue = Null
    msiValidation.pMaxValue = Null
    msiValidation.pKeyTable = ""
    msiValidation.pKeyColumn = Null
    msiValidation.pCategory = "Language"
    msiValidation.pSet = ""
    msiValidation.pDescription = "The languages supported by the file."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    Set objView = Nothing

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

    Public Function ModifySignatureRecord()
    Dim strSQL, objView, objTableRow

    strSQL = "SELECT * FROM Signature"

    Set objView = objDatabase.OpenView(strSQL)
    objView.Execute
    Do 
        Set objTableRow = objView.Fetch
        If objTableRow Is Nothing Then
            Set objTableRow = objInstaller.CreateRecord(9)
            objTableRow.StringData(1)  = mSignature
            objTableRow.StringData(2)  = mFileName
            objTableRow.StringData(3)  = mMinVersion
            objTableRow.StringData(4)  = mMaxVersion
            objTableRow.IntegerData(5) = mMinSize
            objTableRow.IntegerData(6) = mMaxSize
            objTableRow.IntegerData(7) = mMinDate
            objTableRow.IntegerData(8) = mMaxDate
            objTableRow.StringData(9)  = mLanguages
            objView.Modify msiViewModifyAssign, objTableRow
            Exit Do
        End If
            objTableRow.StringData(1)  = mSignature
            objTableRow.StringData(2)  = mFileName
            objTableRow.StringData(3)  = mMinVersion
            objTableRow.StringData(4)  = mMaxVersion
            objTableRow.IntegerData(5) = mMinSize
            objTableRow.IntegerData(6) = mMaxSize
            objTableRow.IntegerData(7) = mMinDate
            objTableRow.IntegerData(8) = mMaxDate
            objTableRow.StringData(9)  = mLanguages
            objView.Modify msiViewModifyAssign, objTableRow
    Loop
    objDatabase.Commit()
    objView.Close
    Set objView = Nothing

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

    Public Function DeleteSignatureRecord()
    Dim strSQL, objView, objTableRow

    strSQL = "SELECT * FROM Signature"

    Set objView = objDatabase.OpenView(strSQL)
    objView.Execute
    Do 
        Set objTableRow = objView.Fetch
        If objTableRow Is Nothing Then Exit Do

        If objTableRow.StringData(1) = mSignature Then _
           objView.Modify msiViewModifyDelete, objTableRow
    Loop
    objDatabase.Commit()
    objView.Close
    Set objView = Nothing

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

    Public Function DeleteAllRecords()
    Dim strSQL, objView

    strSQL = "DELETE FROM Signature"

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

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