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