Windows Installer API (SDK)

FeatureComponents Table

Referenz » FeatureComponents Table | Microsoft Docs


VBS class FeatureComponents


Class classFeatureComponentsTable
Private mFeature, mComponent

    Public Property Get pFeature
        pFeature = mFeature
    End Property
    Public Property Let pFeature(strFeature)
        mFeature = strFeature
    End Property
    Public Property Get pComponent
        pComponent = mComponent
    End Property
    Public Property Let pComponent(strComponent)
        mComponent = strComponent
    End Property
    
    Private Sub Class_Initialize
        'Anweisungen
    End Sub
    ' -----------------------------------------------------------------
    
    Public Function ModifyFeatureComponentsRecord()
    Dim strSQL, objView, objTableRow

    strSQL = "SELECT * FROM FeatureComponents"

    Set objView = objDatabase.OpenView(strSQL)
    objView.Execute
    Do 
        Set objTableRow = objView.Fetch
        If objTableRow Is Nothing Then
            Set objTableRow = objInstaller.CreateRecord(2)
            objTableRow.StringData(1) = mFeature
            objTableRow.StringData(2) = mComponent
            objView.Modify msiViewModifyAssign, objTableRow
            Exit Do
        End If
            objTableRow.StringData(1) = mFeature
            objTableRow.StringData(2) = mComponent
            objView.Modify msiViewModifyAssign, objTableRow
    Loop
    objDatabase.Commit()
    objView.Close
    Set objView = Nothing

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

    Public Function DeleteFeatureComponentsRecord()
    Dim strSQL, objView, objTableRow

    strSQL = "SELECT * FROM FeatureComponents"

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

    Private Sub Class_Terminate()
        'Anweisungen
    End Sub
End Class
' ---------------------------------------------------------------------