Windows Installer API (SDK)

Icon Table

Referenz » Icon Table | Microsoft Docs


VBS class Icon


Class classIconTable
Private mName, mData

    Public Property Get pName
        pName = mName
    End Property
    Public Property Let pName(strName)
        mName = strName
    End Property
    Public Property Get pData
        pData = mData
    End Property
    Public Property Let pData(strData)
        mData = strData
    End Property
    
    Private Sub Class_Initialize
        'Anweisungen
    End Sub
    ' -----------------------------------------------------------------

    Public Function CreateTable()
    Dim strSQL, objView, objTableRow

    strSQL = "CREATE TABLE " & Chr(96) & "Icon" & Chr(96) & " (" & _
                 Chr(96) & "Name" & Chr(96) & " CHAR(72) NOT NULL, " & _
                 Chr(96) & "Data" & Chr(96) & " OBJECT NOT NULL PRIMARY KEY , " & _
                 Chr(96) & "Name" & Chr(96) & ")"

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

    msiValidation.pTable = "Icon"
    msiValidation.pColumn = "Name"
    msiValidation.pNullable = "N"
    msiValidation.pMinValue = Null
    msiValidation.pMaxValue = Null
    msiValidation.pKeyTable = ""
    msiValidation.pKeyColumn = Null
    msiValidation.pCategory = "Identifier"
    msiValidation.pSet = ""
    msiValidation.pDescription = "Primary key. Name of the icon file."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    msiValidation.pTable = "Icon"
    msiValidation.pColumn = "Data"
    msiValidation.pNullable = "N"
    msiValidation.pMinValue = Null
    msiValidation.pMaxValue = Null
    msiValidation.pKeyTable = ""
    msiValidation.pKeyColumn = Null
    msiValidation.pCategory = "Binary"
    msiValidation.pSet = ""
    msiValidation.pDescription = "Binary stream. The binary icon data in PE (.DLL or .EXE) or icon (.ICO) format."

        msiValidation.ModifyValidationRecord
        msiValidation.ResetValidationRecord

    Set objView = Nothing
    
    End Function
    ' -----------------------------------------------------------------
    
    Public Function ModifyIconTable()
    Dim strSQL, objView, objRecord

    strSQL = "SELECT " & Chr(96) & "Name" & Chr(96) & "," & _
                        Chr(96) & "Data" & Chr(96) & " FROM Icon"

    Set objView = objDatabase.OpenView(strSQL)
    Set objRecord = objInstaller.CreateRecord(2)
        objRecord.StringData(1) = mName
        objView.Execute objRecord
        objRecord.SetStream 2, mData
        objView.Modify msiViewModifyAssign, objRecord
    
        objDatabase.Commit()
        objView.Close
    Set objView = Nothing

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

    Public Function DeleteIconRecord()
    Dim strSQL, objView, objTableRow

    strSQL = "SELECT * FROM Icon"

    Set objView = objDatabase.OpenView(strSQL)
    objView.Execute
        Do 
            Set objTableRow = objView.Fetch
            If objTableRow Is Nothing Then Exit Do
        
            If objTableRow.StringData(1) = mName Then _
               objView.Modify msiViewModifyDelete, objTableRow
        Loop
    objDatabase.Commit()
    objView.Close
    Set objView = Nothing

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

    Public Function DeleteAllRecords()
    Dim strSQL, objView

    strSQL = "DELETE FROM Icon"

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

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