bamse-0.9.4: Bamse/WindowsInstaller.hs
--------------------------------------------------------------------
-- |
-- Module : Bamse.WindowsInstaller
-- Description : Haskell binding to the MSI COM object model
-- Copyright : (c) Sigbjorn Finne, 2004-2009
-- License : BSD3
--
-- Maintainer : Sigbjorn Finne <sof@forkIO.com>
-- Stability : provisional
-- Portability : portable
--
-- Haskell binding to the MSI COM object model
--------------------------------------------------------------------
module Bamse.WindowsInstaller where
--
-- Automatically generated by HaskellDirect (ihc.exe), version 0.18
-- Created: 11:52 Pacific Standard Time, Friday 16 November, 2001
-- Command line: --tlb -odir . d:/winnt/system32/msi.dll -v -dshow-passes -fno-export-list
--
import qualified Prelude
import qualified System.Win32.Com.Automation as Automation
(IDispatch, outString, inString,
propertyGet, propertySet, method0, Variant, outVariant, inInt32,
inVariant, outInt32, outIUnknown, function1, inEnum, outBool,
outIDispatch, inDefaultValue, inIDispatch, outEnum, inBool, Date,
outDate, SafeArray, outSafeArray)
import qualified System.Win32.Com as Com (LIBID, mkLIBID, IID, mkIID, IUnknown)
import qualified Data.Int (Int32)
libidWindowsInstaller :: Com.LIBID
libidWindowsInstaller =
Com.mkLIBID "{000C1092-0000-0000-C000-000000000046}"
-- --------------------------------------------------
--
-- dispinterface UIPreview
--
-- --------------------------------------------------
data UIPreview_ a = UIPreview__
type UIPreview a = Automation.IDispatch (UIPreview_ a)
iidUIPreview :: Com.IID (UIPreview ())
iidUIPreview = Com.mkIID "{000C109A-0000-0000-C000-000000000046}"
getProperty :: Prelude.String
-> UIPreview a0
-> Prelude.IO Prelude.String
getProperty name =
Automation.propertyGet "Property"
[Automation.inString name]
Automation.outString
setProperty :: Prelude.String
-> Prelude.String
-> UIPreview a0
-> Prelude.IO ()
setProperty name x0 =
Automation.propertySet "Property"
[ Automation.inString name
, Automation.inString x0
]
viewDialog :: Prelude.String
-> UIPreview a0
-> Prelude.IO ()
viewDialog dialog =
Automation.method0 "ViewDialog"
[Automation.inString dialog]
viewBillboard :: Prelude.String
-> Prelude.String
-> UIPreview a0
-> Prelude.IO ()
viewBillboard control billboard =
Automation.method0 "ViewBillboard"
[ Automation.inString control
, Automation.inString billboard
]
-- --------------------------------------------------
--
-- dispinterface SummaryInfo
--
-- --------------------------------------------------
data SummaryInfo_ a = SummaryInfo__
type SummaryInfo a = Automation.IDispatch (SummaryInfo_ a)
iidSummaryInfo :: Com.IID (SummaryInfo ())
iidSummaryInfo = Com.mkIID "{000C109B-0000-0000-C000-000000000046}"
getProperty0 :: (Automation.Variant a1)
=> Data.Int.Int32
-> SummaryInfo a0
-> Prelude.IO a1
getProperty0 pid =
Automation.propertyGet "Property"
[Automation.inInt32 pid]
Automation.outVariant
setProperty0 :: (Automation.Variant a1)
=> Data.Int.Int32
-> a1
-> SummaryInfo a0
-> Prelude.IO ()
setProperty0 pid x0 =
Automation.propertySet "Property"
[ Automation.inInt32 pid
, Automation.inVariant x0
]
getPropertyCount :: SummaryInfo a0
-> Prelude.IO Data.Int.Int32
getPropertyCount =
Automation.propertyGet "PropertyCount"
[]
Automation.outInt32
persist :: SummaryInfo a0
-> Prelude.IO ()
persist =
Automation.method0 "Persist"
[]
-- --------------------------------------------------
--
-- dispinterface StringList
--
-- --------------------------------------------------
data StringList_ a = StringList__
type StringList a = Automation.IDispatch (StringList_ a)
iidStringList :: Com.IID (StringList ())
iidStringList = Com.mkIID "{000C1095-0000-0000-C000-000000000046}"
newEnum :: StringList a0
-> Prelude.IO (Com.IUnknown ())
newEnum =
Automation.function1 "_NewEnum"
[]
Automation.outIUnknown
getItem :: Data.Int.Int32
-> StringList a0
-> Prelude.IO Prelude.String
getItem index =
Automation.propertyGet "Item"
[Automation.inInt32 index]
Automation.outString
getCount :: StringList a0
-> Prelude.IO Data.Int.Int32
getCount =
Automation.propertyGet "Count"
[]
Automation.outInt32
data MsiViewModify
= MsiViewModifySeek
| MsiViewModifyRefresh
| MsiViewModifyInsert
| MsiViewModifyUpdate
| MsiViewModifyAssign
| MsiViewModifyReplace
| MsiViewModifyMerge
| MsiViewModifyDelete
| MsiViewModifyInsertTemporary
| MsiViewModifyValidate
| MsiViewModifyValidateNew
| MsiViewModifyValidateField
| MsiViewModifyValidateDelete
instance Prelude.Enum (MsiViewModify) where
fromEnum v =
case v of
MsiViewModifySeek -> (-1)
MsiViewModifyRefresh -> 0
MsiViewModifyInsert -> 1
MsiViewModifyUpdate -> 2
MsiViewModifyAssign -> 3
MsiViewModifyReplace -> 4
MsiViewModifyMerge -> 5
MsiViewModifyDelete -> 6
MsiViewModifyInsertTemporary -> 7
MsiViewModifyValidate -> 8
MsiViewModifyValidateNew -> 9
MsiViewModifyValidateField -> 10
MsiViewModifyValidateDelete -> 11
toEnum v =
case v of
(-1) -> MsiViewModifySeek
0 -> MsiViewModifyRefresh
1 -> MsiViewModifyInsert
2 -> MsiViewModifyUpdate
3 -> MsiViewModifyAssign
4 -> MsiViewModifyReplace
5 -> MsiViewModifyMerge
6 -> MsiViewModifyDelete
7 -> MsiViewModifyInsertTemporary
8 -> MsiViewModifyValidate
9 -> MsiViewModifyValidateNew
10 -> MsiViewModifyValidateField
11 -> MsiViewModifyValidateDelete
_ -> Prelude.error "unmarshallMsiViewModify: illegal enum value "
data MsiUILevel
= MsiUILevelNoChange
| MsiUILevelDefault
| MsiUILevelNone
| MsiUILevelBasic
| MsiUILevelReduced
| MsiUILevelFull
| MsiUILevelHideCancel
| MsiUILevelProgressOnly
| MsiUILevelEndDialog
instance Prelude.Enum (MsiUILevel) where
fromEnum v =
case v of
MsiUILevelNoChange -> 0
MsiUILevelDefault -> 1
MsiUILevelNone -> 2
MsiUILevelBasic -> 3
MsiUILevelReduced -> 4
MsiUILevelFull -> 5
MsiUILevelHideCancel -> 32
MsiUILevelProgressOnly -> 64
MsiUILevelEndDialog -> 128
toEnum v =
case v of
0 -> MsiUILevelNoChange
1 -> MsiUILevelDefault
2 -> MsiUILevelNone
3 -> MsiUILevelBasic
4 -> MsiUILevelReduced
5 -> MsiUILevelFull
32 -> MsiUILevelHideCancel
64 -> MsiUILevelProgressOnly
128 -> MsiUILevelEndDialog
_ -> Prelude.error "unmarshallMsiUILevel: illegal enum value "
data MsiTransformValidation
= MsiTransformValidationNone
| MsiTransformValidationLanguage
| MsiTransformValidationProduct
| MsiTransformValidationPlatform
| MsiTransformValidationMajorVer
| MsiTransformValidationMinorVer
| MsiTransformValidationUpdateVer
| MsiTransformValidationLess
| MsiTransformValidationLessOrEqual
| MsiTransformValidationEqual
| MsiTransformValidationGreaterOrEqual
| MsiTransformValidationGreater
| MsiTransformValidationUpgradeCode
instance Prelude.Enum (MsiTransformValidation) where
fromEnum v =
case v of
MsiTransformValidationNone -> 0
MsiTransformValidationLanguage -> 1
MsiTransformValidationProduct -> 2
MsiTransformValidationPlatform -> 4
MsiTransformValidationMajorVer -> 8
MsiTransformValidationMinorVer -> 16
MsiTransformValidationUpdateVer -> 32
MsiTransformValidationLess -> 64
MsiTransformValidationLessOrEqual -> 128
MsiTransformValidationEqual -> 256
MsiTransformValidationGreaterOrEqual -> 512
MsiTransformValidationGreater -> 1024
MsiTransformValidationUpgradeCode -> 2048
toEnum v =
case v of
0 -> MsiTransformValidationNone
1 -> MsiTransformValidationLanguage
2 -> MsiTransformValidationProduct
4 -> MsiTransformValidationPlatform
8 -> MsiTransformValidationMajorVer
16 -> MsiTransformValidationMinorVer
32 -> MsiTransformValidationUpdateVer
64 -> MsiTransformValidationLess
128 -> MsiTransformValidationLessOrEqual
256 -> MsiTransformValidationEqual
512 -> MsiTransformValidationGreaterOrEqual
1024 -> MsiTransformValidationGreater
2048 -> MsiTransformValidationUpgradeCode
_ -> Prelude.error "unmarshallMsiTransformValidation: illegal enum value "
data MsiTransformError
= MsiTransformErrorNone
| MsiTransformErrorAddExistingRow
| MsiTransformErrorDeleteNonExistingRow
| MsiTransformErrorAddExistingTable
| MsiTransformErrorDeleteNonExistingTable
| MsiTransformErrorUpdateNonExistingRow
| MsiTransformErrorChangeCodePage
| MsiTransformErrorViewTransform
instance Prelude.Enum (MsiTransformError) where
fromEnum v =
case v of
MsiTransformErrorNone -> 0
MsiTransformErrorAddExistingRow -> 1
MsiTransformErrorDeleteNonExistingRow -> 2
MsiTransformErrorAddExistingTable -> 4
MsiTransformErrorDeleteNonExistingTable -> 8
MsiTransformErrorUpdateNonExistingRow -> 16
MsiTransformErrorChangeCodePage -> 32
MsiTransformErrorViewTransform -> 256
toEnum v =
case v of
0 -> MsiTransformErrorNone
1 -> MsiTransformErrorAddExistingRow
2 -> MsiTransformErrorDeleteNonExistingRow
4 -> MsiTransformErrorAddExistingTable
8 -> MsiTransformErrorDeleteNonExistingTable
16 -> MsiTransformErrorUpdateNonExistingRow
32 -> MsiTransformErrorChangeCodePage
256 -> MsiTransformErrorViewTransform
_ -> Prelude.error "unmarshallMsiTransformError: illegal enum value "
data MsiSignatureOption = MsiSignatureOptionInvalidHashFatal
instance Prelude.Enum (MsiSignatureOption) where
fromEnum v =
case v of
MsiSignatureOptionInvalidHashFatal -> 1
toEnum v =
case v of
1 -> MsiSignatureOptionInvalidHashFatal
_ -> Prelude.error "unmarshallMsiSignatureOption: illegal enum value "
data MsiSignatureInfo
= MsiSignatureInfoCertificate
| MsiSignatureInfoHash
deriving (Prelude.Enum)
data MsiRunMode
= MsiRunModeAdmin
| MsiRunModeAdvertise
| MsiRunModeMaintenance
| MsiRunModeRollbackEnabled
| MsiRunModeLogEnabled
| MsiRunModeOperations
| MsiRunModeRebootAtEnd
| MsiRunModeRebootNow
| MsiRunModeCabinet
| MsiRunModeSourceShortNames
| MsiRunModeTargetShortNames
| MsiRunModeWindows9x
| MsiRunModeZawEnabled
| MsiRunModeScheduled
| MsiRunModeRollback
| MsiRunModeCommit
instance Prelude.Enum (MsiRunMode) where
fromEnum v =
case v of
MsiRunModeAdmin -> 0
MsiRunModeAdvertise -> 1
MsiRunModeMaintenance -> 2
MsiRunModeRollbackEnabled -> 3
MsiRunModeLogEnabled -> 4
MsiRunModeOperations -> 5
MsiRunModeRebootAtEnd -> 6
MsiRunModeRebootNow -> 7
MsiRunModeCabinet -> 8
MsiRunModeSourceShortNames -> 9
MsiRunModeTargetShortNames -> 10
MsiRunModeWindows9x -> 12
MsiRunModeZawEnabled -> 13
MsiRunModeScheduled -> 16
MsiRunModeRollback -> 17
MsiRunModeCommit -> 18
toEnum v =
case v of
0 -> MsiRunModeAdmin
1 -> MsiRunModeAdvertise
2 -> MsiRunModeMaintenance
3 -> MsiRunModeRollbackEnabled
4 -> MsiRunModeLogEnabled
5 -> MsiRunModeOperations
6 -> MsiRunModeRebootAtEnd
7 -> MsiRunModeRebootNow
8 -> MsiRunModeCabinet
9 -> MsiRunModeSourceShortNames
10 -> MsiRunModeTargetShortNames
12 -> MsiRunModeWindows9x
13 -> MsiRunModeZawEnabled
16 -> MsiRunModeScheduled
17 -> MsiRunModeRollback
18 -> MsiRunModeCommit
_ -> Prelude.error "unmarshallMsiRunMode: illegal enum value "
data MsiReinstallMode
= MsiReinstallModeFileMissing
| MsiReinstallModeFileOlderVersion
| MsiReinstallModeFileEqualVersion
| MsiReinstallModeFileExact
| MsiReinstallModeFileVerify
| MsiReinstallModeFileReplace
| MsiReinstallModeMachineData
| MsiReinstallModeUserData
| MsiReinstallModeShortcut
| MsiReinstallModePackage
instance Prelude.Enum (MsiReinstallMode) where
fromEnum v =
case v of
MsiReinstallModeFileMissing -> 2
MsiReinstallModeFileOlderVersion -> 4
MsiReinstallModeFileEqualVersion -> 8
MsiReinstallModeFileExact -> 16
MsiReinstallModeFileVerify -> 32
MsiReinstallModeFileReplace -> 64
MsiReinstallModeMachineData -> 128
MsiReinstallModeUserData -> 256
MsiReinstallModeShortcut -> 512
MsiReinstallModePackage -> 1024
toEnum v =
case v of
2 -> MsiReinstallModeFileMissing
4 -> MsiReinstallModeFileOlderVersion
8 -> MsiReinstallModeFileEqualVersion
16 -> MsiReinstallModeFileExact
32 -> MsiReinstallModeFileVerify
64 -> MsiReinstallModeFileReplace
128 -> MsiReinstallModeMachineData
256 -> MsiReinstallModeUserData
512 -> MsiReinstallModeShortcut
1024 -> MsiReinstallModePackage
_ -> Prelude.error "unmarshallMsiReinstallMode: illegal enum value "
data MsiReadStream
= MsiReadStreamInteger
| MsiReadStreamBytes
| MsiReadStreamAnsi
| MsiReadStreamDirect
deriving (Prelude.Enum)
-- --------------------------------------------------
--
-- dispinterface Record
--
-- --------------------------------------------------
data Record_ a = Record__
type Record a = Automation.IDispatch (Record_ a)
iidRecord :: Com.IID (Record ())
iidRecord = Com.mkIID "{000C1093-0000-0000-C000-000000000046}"
getStringData :: Data.Int.Int32
-> Record a0
-> Prelude.IO Prelude.String
getStringData field =
Automation.propertyGet "StringData"
[Automation.inInt32 field]
Automation.outString
setStringData :: Data.Int.Int32
-> Prelude.String
-> Record a0
-> Prelude.IO ()
setStringData field x0 =
Automation.propertySet "StringData"
[ Automation.inInt32 field
, Automation.inString x0
]
getIntegerData :: Data.Int.Int32
-> Record a0
-> Prelude.IO Data.Int.Int32
getIntegerData field =
Automation.propertyGet "IntegerData"
[Automation.inInt32 field]
Automation.outInt32
setIntegerData :: Data.Int.Int32
-> Data.Int.Int32
-> Record a0
-> Prelude.IO ()
setIntegerData field x0 =
Automation.propertySet "IntegerData"
[ Automation.inInt32 field
, Automation.inInt32 x0
]
setStream :: Data.Int.Int32
-> Prelude.String
-> Record a0
-> Prelude.IO ()
setStream field filePath =
Automation.method0 "SetStream"
[ Automation.inInt32 field
, Automation.inString filePath
]
readStream :: Data.Int.Int32
-> Data.Int.Int32
-> MsiReadStream
-> Record a0
-> Prelude.IO Prelude.String
readStream field length format =
Automation.function1 "ReadStream"
[ Automation.inInt32 field
, Automation.inInt32 length
, Automation.inEnum format
]
Automation.outString
getFieldCount :: Record a0
-> Prelude.IO Data.Int.Int32
getFieldCount =
Automation.propertyGet "FieldCount"
[]
Automation.outInt32
getIsNull :: Data.Int.Int32
-> Record a0
-> Prelude.IO Prelude.Bool
getIsNull field =
Automation.propertyGet "IsNull"
[Automation.inInt32 field]
Automation.outBool
getDataSize :: Data.Int.Int32
-> Record a0
-> Prelude.IO Data.Int.Int32
getDataSize field =
Automation.propertyGet "DataSize"
[Automation.inInt32 field]
Automation.outInt32
clearData :: Record a0
-> Prelude.IO ()
clearData =
Automation.method0 "ClearData"
[]
formatText :: Record a0
-> Prelude.IO Prelude.String
formatText =
Automation.function1 "FormatText"
[]
Automation.outString
-- --------------------------------------------------
--
-- dispinterface RecordList
--
-- --------------------------------------------------
data RecordList_ a = RecordList__
type RecordList a = Automation.IDispatch (RecordList_ a)
iidRecordList :: Com.IID (RecordList ())
iidRecordList = Com.mkIID "{000C1096-0000-0000-C000-000000000046}"
newEnum0 :: RecordList a0
-> Prelude.IO (Com.IUnknown ())
newEnum0 =
Automation.function1 "_NewEnum"
[]
Automation.outIUnknown
getItem0 :: Data.Int.Int32
-> RecordList a0
-> Prelude.IO (Record ())
getItem0 index =
Automation.propertyGet "Item"
[Automation.inInt32 index]
Automation.outIDispatch
getCount0 :: RecordList a0
-> Prelude.IO Data.Int.Int32
getCount0 =
Automation.propertyGet "Count"
[]
Automation.outInt32
data MsiOpenDatabaseMode
= MsiOpenDatabaseModeReadOnly
| MsiOpenDatabaseModeTransact
| MsiOpenDatabaseModeDirect
| MsiOpenDatabaseModeCreate
| MsiOpenDatabaseModeCreateDirect
| MsiOpenDatabaseModePatchFile
instance Prelude.Enum (MsiOpenDatabaseMode) where
fromEnum v =
case v of
MsiOpenDatabaseModeReadOnly -> 0
MsiOpenDatabaseModeTransact -> 1
MsiOpenDatabaseModeDirect -> 2
MsiOpenDatabaseModeCreate -> 3
MsiOpenDatabaseModeCreateDirect -> 4
MsiOpenDatabaseModePatchFile -> 32
toEnum v =
case v of
0 -> MsiOpenDatabaseModeReadOnly
1 -> MsiOpenDatabaseModeTransact
2 -> MsiOpenDatabaseModeDirect
3 -> MsiOpenDatabaseModeCreate
4 -> MsiOpenDatabaseModeCreateDirect
32 -> MsiOpenDatabaseModePatchFile
_ -> Prelude.error "unmarshallMsiOpenDatabaseMode: illegal enum value "
data MsiMessageType
= MsiMessageTypeFatalExit
| MsiMessageTypeOk
| MsiMessageTypeDefault1
| MsiMessageTypeOkCancel
| MsiMessageTypeAbortRetryIgnore
| MsiMessageTypeYesNoCancel
| MsiMessageTypeYesNo
| MsiMessageTypeRetryCancel
| MsiMessageTypeDefault2
| MsiMessageTypeDefault3
| MsiMessageTypeError
| MsiMessageTypeWarning
| MsiMessageTypeUser
| MsiMessageTypeInfo
| MsiMessageTypeFilesInUse
| MsiMessageTypeResolveSource
| MsiMessageTypeOutOfDiskSpace
| MsiMessageTypeActionStart
| MsiMessageTypeActionData
| MsiMessageTypeProgress
| MsiMessageTypeCommonData
instance Prelude.Enum (MsiMessageType) where
fromEnum v =
case v of
MsiMessageTypeFatalExit -> 0
MsiMessageTypeOk -> 0
MsiMessageTypeDefault1 -> 0
MsiMessageTypeOkCancel -> 1
MsiMessageTypeAbortRetryIgnore -> 2
MsiMessageTypeYesNoCancel -> 3
MsiMessageTypeYesNo -> 4
MsiMessageTypeRetryCancel -> 5
MsiMessageTypeDefault2 -> 256
MsiMessageTypeDefault3 -> 512
MsiMessageTypeError -> 16777216
MsiMessageTypeWarning -> 33554432
MsiMessageTypeUser -> 50331648
MsiMessageTypeInfo -> 67108864
MsiMessageTypeFilesInUse -> 83886080
MsiMessageTypeResolveSource -> 100663296
MsiMessageTypeOutOfDiskSpace -> 117440512
MsiMessageTypeActionStart -> 134217728
MsiMessageTypeActionData -> 150994944
MsiMessageTypeProgress -> 167772160
MsiMessageTypeCommonData -> 184549376
toEnum v =
case v of
0 -> MsiMessageTypeOk
0 -> MsiMessageTypeFatalExit
0 -> MsiMessageTypeDefault1
1 -> MsiMessageTypeOkCancel
2 -> MsiMessageTypeAbortRetryIgnore
3 -> MsiMessageTypeYesNoCancel
4 -> MsiMessageTypeYesNo
5 -> MsiMessageTypeRetryCancel
256 -> MsiMessageTypeDefault2
512 -> MsiMessageTypeDefault3
16777216 -> MsiMessageTypeError
33554432 -> MsiMessageTypeWarning
50331648 -> MsiMessageTypeUser
67108864 -> MsiMessageTypeInfo
83886080 -> MsiMessageTypeFilesInUse
100663296 -> MsiMessageTypeResolveSource
117440512 -> MsiMessageTypeOutOfDiskSpace
134217728 -> MsiMessageTypeActionStart
150994944 -> MsiMessageTypeActionData
167772160 -> MsiMessageTypeProgress
184549376 -> MsiMessageTypeCommonData
_ -> Prelude.error "unmarshallMsiMessageType: illegal enum value "
data MsiMessageStatus
= MsiMessageStatusError
| MsiMessageStatusNone
| MsiMessageStatusOk
| MsiMessageStatusCancel
| MsiMessageStatusAbort
| MsiMessageStatusRetry
| MsiMessageStatusIgnore
| MsiMessageStatusYes
| MsiMessageStatusNo
instance Prelude.Enum (MsiMessageStatus) where
fromEnum v =
case v of
MsiMessageStatusError -> (-1)
MsiMessageStatusNone -> 0
MsiMessageStatusOk -> 1
MsiMessageStatusCancel -> 2
MsiMessageStatusAbort -> 3
MsiMessageStatusRetry -> 4
MsiMessageStatusIgnore -> 5
MsiMessageStatusYes -> 6
MsiMessageStatusNo -> 7
toEnum v =
case v of
(-1) -> MsiMessageStatusError
0 -> MsiMessageStatusNone
1 -> MsiMessageStatusOk
2 -> MsiMessageStatusCancel
3 -> MsiMessageStatusAbort
4 -> MsiMessageStatusRetry
5 -> MsiMessageStatusIgnore
6 -> MsiMessageStatusYes
7 -> MsiMessageStatusNo
_ -> Prelude.error "unmarshallMsiMessageStatus: illegal enum value "
data MsiInstallType
= MsiInstallTypeDefault
| MsiInstallTypeNetworkImage
deriving (Prelude.Enum)
data MsiInstallState
= MsiInstallStateNotUsed
| MsiInstallStateBadConfig
| MsiInstallStateIncomplete
| MsiInstallStateSourceAbsent
| MsiInstallStateInvalidArg
| MsiInstallStateUnknown
| MsiInstallStateBroken
| MsiInstallStateAdvertised
| MsiInstallStateRemoved
| MsiInstallStateAbsent
| MsiInstallStateLocal
| MsiInstallStateSource
| MsiInstallStateDefault
instance Prelude.Enum (MsiInstallState) where
fromEnum v =
case v of
MsiInstallStateNotUsed -> (-7)
MsiInstallStateBadConfig -> (-6)
MsiInstallStateIncomplete -> (-5)
MsiInstallStateSourceAbsent -> (-4)
MsiInstallStateInvalidArg -> (-2)
MsiInstallStateUnknown -> (-1)
MsiInstallStateBroken -> 0
MsiInstallStateAdvertised -> 1
MsiInstallStateRemoved -> 1
MsiInstallStateAbsent -> 2
MsiInstallStateLocal -> 3
MsiInstallStateSource -> 4
MsiInstallStateDefault -> 5
toEnum v =
case v of
(-7) -> MsiInstallStateNotUsed
(-6) -> MsiInstallStateBadConfig
(-5) -> MsiInstallStateIncomplete
(-4) -> MsiInstallStateSourceAbsent
(-2) -> MsiInstallStateInvalidArg
(-1) -> MsiInstallStateUnknown
0 -> MsiInstallStateBroken
1 -> MsiInstallStateAdvertised
1 -> MsiInstallStateRemoved
2 -> MsiInstallStateAbsent
3 -> MsiInstallStateLocal
4 -> MsiInstallStateSource
5 -> MsiInstallStateDefault
_ -> Prelude.error "unmarshallMsiInstallState: illegal enum value "
data MsiInstallMode
= MsiInstallModeNoSourceResolution
| MsiInstallModeNoDetection
| MsiInstallModeExisting
| MsiInstallModeDefault
instance Prelude.Enum (MsiInstallMode) where
fromEnum v =
case v of
MsiInstallModeNoSourceResolution -> (-3)
MsiInstallModeNoDetection -> (-2)
MsiInstallModeExisting -> (-1)
MsiInstallModeDefault -> 0
toEnum v =
case v of
(-3) -> MsiInstallModeNoSourceResolution
(-2) -> MsiInstallModeNoDetection
(-1) -> MsiInstallModeExisting
0 -> MsiInstallModeDefault
_ -> Prelude.error "unmarshallMsiInstallMode: illegal enum value "
data MsiEvaluateCondition
= MsiEvaluateConditionFalse
| MsiEvaluateConditionTrue
| MsiEvaluateConditionNone
| MsiEvaluateConditionError
deriving (Prelude.Enum)
data MsiDoActionStatus
= MsiDoActionStatusNoAction
| MsiDoActionStatusSuccess
| MsiDoActionStatusUserExit
| MsiDoActionStatusFailure
| MsiDoActionStatusSuspend
| MsiDoActionStatusFinished
| MsiDoActionStatusWrongState
| MsiDoActionStatusBadActionData
deriving (Prelude.Enum)
data MsiDatabaseState
= MsiDatabaseStateRead
| MsiDatabaseStateWrite
deriving (Prelude.Enum)
data MsiCostTree
= MsiCostTreeSelfOnly
| MsiCostTreeChildren
| MsiCostTreeParents
deriving (Prelude.Enum)
data MsiColumnInfo
= MsiColumnInfoNames
| MsiColumnInfoTypes
deriving (Prelude.Enum)
-- --------------------------------------------------
--
-- dispinterface View
--
-- --------------------------------------------------
data View_ a = View__
type View a = Automation.IDispatch (View_ a)
iidView :: Com.IID (View ())
iidView = Com.mkIID "{000C109C-0000-0000-C000-000000000046}"
execute :: (Automation.Variant a1)
=> a1
-> View a0
-> Prelude.IO ()
execute params =
Automation.method0 "Execute"
[Automation.inDefaultValue (Automation.inInt32 0) Automation.inVariant params]
fetch :: View a0
-> Prelude.IO (Record ())
fetch =
Automation.function1 "Fetch"
[]
Automation.outIDispatch
modify :: MsiViewModify
-> Record a1
-> View a0
-> Prelude.IO ()
modify mode record =
Automation.method0 "Modify"
[ Automation.inEnum mode
, Automation.inIDispatch record
]
getColumnInfo :: MsiColumnInfo
-> View a0
-> Prelude.IO (Record ())
getColumnInfo info =
Automation.propertyGet "ColumnInfo"
[Automation.inEnum info]
Automation.outIDispatch
close :: View a0
-> Prelude.IO ()
close =
Automation.method0 "Close"
[]
getError :: View a0
-> Prelude.IO Prelude.String
getError =
Automation.function1 "GetError"
[]
Automation.outString
-- --------------------------------------------------
--
-- dispinterface FeatureInfo
--
-- --------------------------------------------------
data FeatureInfo_ a = FeatureInfo__
type FeatureInfo a = Automation.IDispatch (FeatureInfo_ a)
iidFeatureInfo :: Com.IID (FeatureInfo ())
iidFeatureInfo = Com.mkIID "{000C109F-0000-0000-C000-000000000046}"
getAttributes :: FeatureInfo a0
-> Prelude.IO Data.Int.Int32
getAttributes =
Automation.propertyGet "Attributes"
[]
Automation.outInt32
setAttributes :: Data.Int.Int32
-> FeatureInfo a0
-> Prelude.IO ()
setAttributes prop =
Automation.propertySet "Attributes"
[Automation.inInt32 prop]
getTitle :: FeatureInfo a0
-> Prelude.IO Prelude.String
getTitle =
Automation.propertyGet "Title"
[]
Automation.outString
getDescription :: FeatureInfo a0
-> Prelude.IO Prelude.String
getDescription =
Automation.propertyGet "Description"
[]
Automation.outString
-- --------------------------------------------------
--
-- dispinterface Database
--
-- --------------------------------------------------
data Database_ a = Database__
type Database a = Automation.IDispatch (Database_ a)
iidDatabase :: Com.IID (Database ())
iidDatabase = Com.mkIID "{000C109D-0000-0000-C000-000000000046}"
getDatabaseState :: Database a0
-> Prelude.IO MsiDatabaseState
getDatabaseState =
Automation.propertyGet "DatabaseState"
[]
Automation.outEnum
getSummaryInformation :: (Automation.Variant a1)
=> a1
-> Database a0
-> Prelude.IO (SummaryInfo ())
getSummaryInformation updateCount =
Automation.propertyGet "SummaryInformation"
[Automation.inDefaultValue (Automation.inInt32 0) Automation.inVariant updateCount]
Automation.outIDispatch
openView :: Prelude.String
-> Database a0
-> Prelude.IO (View ())
openView sql =
Automation.function1 "OpenView"
[Automation.inString sql]
Automation.outIDispatch
commit :: Database a0
-> Prelude.IO ()
commit =
Automation.method0 "Commit"
[]
getPrimaryKeys :: Prelude.String
-> Database a0
-> Prelude.IO (Record ())
getPrimaryKeys table =
Automation.propertyGet "PrimaryKeys"
[Automation.inString table]
Automation.outIDispatch
import0 :: Prelude.String
-> Prelude.String
-> Database a0
-> Prelude.IO ()
import0 folder file =
Automation.method0 "Import"
[ Automation.inString folder
, Automation.inString file
]
export :: Prelude.String
-> Prelude.String
-> Prelude.String
-> Database a0
-> Prelude.IO ()
export table folder file =
Automation.method0 "Export"
[ Automation.inString table
, Automation.inString folder
, Automation.inString file
]
merge :: (Automation.Variant a2)
=> Database a1
-> a2
-> Database a0
-> Prelude.IO Prelude.Bool
merge database errorTable =
Automation.function1 "Merge"
[ Automation.inIDispatch database
, Automation.inDefaultValue (Automation.inVariant "0") Automation.inVariant errorTable
]
Automation.outBool
generateTransform :: (Automation.Variant a2)
=> Database a1
-> a2
-> Database a0
-> Prelude.IO Prelude.Bool
generateTransform referenceDatabase transformFile =
Automation.function1 "GenerateTransform"
[ Automation.inIDispatch referenceDatabase
, Automation.inDefaultValue (Automation.inVariant "0") Automation.inVariant transformFile
]
Automation.outBool
applyTransform :: Prelude.String
-> MsiTransformError
-> Database a0
-> Prelude.IO ()
applyTransform transformFile errorConditions =
Automation.method0 "ApplyTransform"
[ Automation.inString transformFile
, Automation.inEnum errorConditions
]
enableUIPreview :: Database a0
-> Prelude.IO (UIPreview ())
enableUIPreview =
Automation.function1 "EnableUIPreview"
[]
Automation.outIDispatch
getTablePersistent :: Prelude.String
-> Database a0
-> Prelude.IO MsiEvaluateCondition
getTablePersistent table =
Automation.propertyGet "TablePersistent"
[Automation.inString table]
Automation.outEnum
createTransformSummaryInfo :: Database a1
-> Prelude.String
-> MsiTransformError
-> MsiTransformValidation
-> Database a0
-> Prelude.IO ()
createTransformSummaryInfo referenceDatabase transformFile errorConditions validation =
Automation.method0 "CreateTransformSummaryInfo"
[ Automation.inIDispatch referenceDatabase
, Automation.inString transformFile
, Automation.inEnum errorConditions
, Automation.inEnum validation
]
-- --------------------------------------------------
--
-- dispinterface Session
--
-- --------------------------------------------------
data Session_ a = Session__
type Session a = Automation.IDispatch (Session_ a)
iidSession :: Com.IID (Session ())
iidSession = Com.mkIID "{000C109E-0000-0000-C000-000000000046}"
getInstaller :: Session a0
-> Prelude.IO (Installer ())
getInstaller =
Automation.propertyGet "Installer"
[]
Automation.outIUnknown
getProperty1 :: Prelude.String
-> Session a0
-> Prelude.IO Prelude.String
getProperty1 name =
Automation.propertyGet "Property"
[Automation.inString name]
Automation.outString
setProperty1 :: Prelude.String
-> Prelude.String
-> Session a0
-> Prelude.IO ()
setProperty1 name x0 =
Automation.propertySet "Property"
[ Automation.inString name
, Automation.inString x0
]
getLanguage :: Session a0
-> Prelude.IO Data.Int.Int32
getLanguage =
Automation.propertyGet "Language"
[]
Automation.outInt32
getMode :: MsiRunMode
-> Session a0
-> Prelude.IO Prelude.Bool
getMode flag =
Automation.propertyGet "Mode"
[Automation.inEnum flag]
Automation.outBool
setMode :: MsiRunMode
-> Prelude.Bool
-> Session a0
-> Prelude.IO ()
setMode flag x0 =
Automation.propertySet "Mode"
[ Automation.inEnum flag
, Automation.inBool x0
]
getDatabase :: Session a0
-> Prelude.IO (Database ())
getDatabase =
Automation.propertyGet "Database"
[]
Automation.outIDispatch
getSourcePath :: Prelude.String
-> Session a0
-> Prelude.IO Prelude.String
getSourcePath folder =
Automation.propertyGet "SourcePath"
[Automation.inString folder]
Automation.outString
getTargetPath :: Prelude.String
-> Session a0
-> Prelude.IO Prelude.String
getTargetPath folder =
Automation.propertyGet "TargetPath"
[Automation.inString folder]
Automation.outString
setTargetPath :: Prelude.String
-> Prelude.String
-> Session a0
-> Prelude.IO ()
setTargetPath folder x0 =
Automation.propertySet "TargetPath"
[ Automation.inString folder
, Automation.inString x0
]
doAction :: Prelude.String
-> Session a0
-> Prelude.IO MsiDoActionStatus
doAction action =
Automation.function1 "DoAction"
[Automation.inString action]
Automation.outEnum
sequence :: (Automation.Variant a1)
=> Prelude.String
-> a1
-> Session a0
-> Prelude.IO MsiDoActionStatus
sequence table mode =
Automation.function1 "Sequence"
[ Automation.inString table
, Automation.inVariant mode
]
Automation.outEnum
evaluateCondition :: Prelude.String
-> Session a0
-> Prelude.IO MsiEvaluateCondition
evaluateCondition expression =
Automation.function1 "EvaluateCondition"
[Automation.inString expression]
Automation.outEnum
formatRecord :: Record a1
-> Session a0
-> Prelude.IO Prelude.String
formatRecord record =
Automation.function1 "FormatRecord"
[Automation.inIDispatch record]
Automation.outString
message :: MsiMessageType
-> Record a1
-> Session a0
-> Prelude.IO MsiMessageStatus
message kind record =
Automation.function1 "Message"
[ Automation.inEnum kind
, Automation.inIDispatch record
]
Automation.outEnum
getFeatureCurrentState :: Prelude.String
-> Session a0
-> Prelude.IO MsiInstallState
getFeatureCurrentState feature =
Automation.propertyGet "FeatureCurrentState"
[Automation.inString feature]
Automation.outEnum
getFeatureRequestState :: Prelude.String
-> Session a0
-> Prelude.IO MsiInstallState
getFeatureRequestState feature =
Automation.propertyGet "FeatureRequestState"
[Automation.inString feature]
Automation.outEnum
setFeatureRequestState :: Prelude.String
-> MsiInstallState
-> Session a0
-> Prelude.IO ()
setFeatureRequestState feature x0 =
Automation.propertySet "FeatureRequestState"
[ Automation.inString feature
, Automation.inEnum x0
]
getFeatureValidStates :: Prelude.String
-> Session a0
-> Prelude.IO Data.Int.Int32
getFeatureValidStates feature =
Automation.propertyGet "FeatureValidStates"
[Automation.inString feature]
Automation.outInt32
getFeatureCost :: Prelude.String
-> MsiCostTree
-> MsiInstallState
-> Session a0
-> Prelude.IO Data.Int.Int32
getFeatureCost feature costTree state =
Automation.propertyGet "FeatureCost"
[ Automation.inString feature
, Automation.inEnum costTree
, Automation.inEnum state
]
Automation.outInt32
getComponentCurrentState :: Prelude.String
-> Session a0
-> Prelude.IO MsiInstallState
getComponentCurrentState component =
Automation.propertyGet "ComponentCurrentState"
[Automation.inString component]
Automation.outEnum
getComponentRequestState :: Prelude.String
-> Session a0
-> Prelude.IO MsiInstallState
getComponentRequestState component =
Automation.propertyGet "ComponentRequestState"
[Automation.inString component]
Automation.outEnum
setComponentRequestState :: Prelude.String
-> MsiInstallState
-> Session a0
-> Prelude.IO ()
setComponentRequestState component x0 =
Automation.propertySet "ComponentRequestState"
[ Automation.inString component
, Automation.inEnum x0
]
setInstallLevel :: Data.Int.Int32
-> Session a0
-> Prelude.IO ()
setInstallLevel level =
Automation.method0 "SetInstallLevel"
[Automation.inInt32 level]
getVerifyDiskSpace :: Session a0
-> Prelude.IO Prelude.Bool
getVerifyDiskSpace =
Automation.propertyGet "VerifyDiskSpace"
[]
Automation.outBool
getProductProperty :: Prelude.String
-> Session a0
-> Prelude.IO Prelude.String
getProductProperty property =
Automation.propertyGet "ProductProperty"
[Automation.inString property]
Automation.outString
getFeatureInfo :: Prelude.String
-> Session a0
-> Prelude.IO (FeatureInfo ())
getFeatureInfo feature =
Automation.propertyGet "FeatureInfo"
[Automation.inString feature]
Automation.outIDispatch
getComponentCosts :: Prelude.String
-> MsiInstallState
-> Session a0
-> Prelude.IO (RecordList ())
getComponentCosts component state =
Automation.propertyGet "ComponentCosts"
[ Automation.inString component
, Automation.inEnum state
]
Automation.outIDispatch
-- --------------------------------------------------
--
-- dispinterface Installer
--
-- --------------------------------------------------
data Installer_ a = Installer__
type Installer a = Automation.IDispatch (Installer_ a)
iidInstaller :: Com.IID (Installer ())
iidInstaller = Com.mkIID "{000C1090-0000-0000-C000-000000000046}"
getUILevel :: Installer a0
-> Prelude.IO MsiUILevel
getUILevel =
Automation.propertyGet "UILevel"
[]
Automation.outEnum
setUILevel :: MsiUILevel
-> Installer a0
-> Prelude.IO ()
setUILevel prop =
Automation.propertySet "UILevel"
[Automation.inEnum prop]
createRecord :: Data.Int.Int32
-> Installer a0
-> Prelude.IO (Record ())
createRecord count =
Automation.function1 "CreateRecord"
[Automation.inInt32 count]
Automation.outIDispatch
openPackage :: (Automation.Variant a1)
=> a1
-> Installer a0
-> Prelude.IO (Session ())
openPackage packagePath =
Automation.function1 "OpenPackage"
[Automation.inVariant packagePath]
Automation.outIDispatch
openProduct :: Prelude.String
-> Installer a0
-> Prelude.IO (Session ())
openProduct productCode =
Automation.function1 "OpenProduct"
[Automation.inString productCode]
Automation.outIDispatch
openDatabase :: (Automation.Variant a1)
=> Prelude.String
-> a1
-> Installer a0
-> Prelude.IO (Database ())
openDatabase databasePath openMode =
Automation.function1 "OpenDatabase"
[ Automation.inString databasePath
, Automation.inVariant openMode
]
Automation.outIDispatch
getSummaryInformation0 :: (Automation.Variant a1)
=> Prelude.String
-> a1
-> Installer a0
-> Prelude.IO (SummaryInfo ())
getSummaryInformation0 packagePath updateCount =
Automation.propertyGet "SummaryInformation"
[ Automation.inString packagePath
, Automation.inDefaultValue (Automation.inInt32 0) Automation.inVariant updateCount
]
Automation.outIDispatch
enableLog :: Prelude.String
-> Prelude.String
-> Installer a0
-> Prelude.IO ()
enableLog logMode logFile =
Automation.method0 "EnableLog"
[ Automation.inString logMode
, Automation.inString logFile
]
installProduct :: (Automation.Variant a1)
=> Prelude.String
-> a1
-> Installer a0
-> Prelude.IO ()
installProduct packagePath propertyValues =
Automation.method0 "InstallProduct"
[ Automation.inString packagePath
, Automation.inDefaultValue (Automation.inVariant "0") Automation.inVariant propertyValues
]
getVersion :: Installer a0
-> Prelude.IO Prelude.String
getVersion =
Automation.propertyGet "Version"
[]
Automation.outString
lastErrorRecord :: Installer a0
-> Prelude.IO (Record ())
lastErrorRecord =
{- ToDo: look into why this was mis-classified as a function.
Automation.function1 "LastErrorRecord"
[]
Automation.outIDispatch
-}
Automation.propertyGet "LastErrorRecord"
[]
Automation.outIDispatch
registryValue :: (Automation.Variant a1, Automation.Variant a2)
=> a1
-> Prelude.String
-> a2
-> Installer a0
-> Prelude.IO Prelude.String
registryValue root key value =
Automation.function1 "RegistryValue"
[ Automation.inVariant root
, Automation.inString key
, Automation.inVariant value
]
Automation.outString
fileAttributes :: Prelude.String
-> Installer a0
-> Prelude.IO Data.Int.Int32
fileAttributes filePath =
Automation.function1 "FileAttributes"
[Automation.inString filePath]
Automation.outInt32
fileSize :: Prelude.String
-> Installer a0
-> Prelude.IO Data.Int.Int32
fileSize filePath =
Automation.function1 "FileSize"
[Automation.inString filePath]
Automation.outInt32
fileVersion :: (Automation.Variant a1)
=> Prelude.String
-> a1
-> Installer a0
-> Prelude.IO Prelude.String
fileVersion filePath language =
Automation.function1 "FileVersion"
[ Automation.inString filePath
, Automation.inVariant language
]
Automation.outString
getEnvironment :: Prelude.String
-> Installer a0
-> Prelude.IO Prelude.String
getEnvironment variable =
Automation.propertyGet "Environment"
[Automation.inString variable]
Automation.outString
setEnvironment :: Prelude.String
-> Prelude.String
-> Installer a0
-> Prelude.IO ()
setEnvironment variable x0 =
Automation.propertySet "Environment"
[ Automation.inString variable
, Automation.inString x0
]
getProductState :: Prelude.String
-> Installer a0
-> Prelude.IO MsiInstallState
getProductState product =
Automation.propertyGet "ProductState"
[Automation.inString product]
Automation.outEnum
getProductInfo :: Prelude.String
-> Prelude.String
-> Installer a0
-> Prelude.IO Prelude.String
getProductInfo product attribute =
Automation.propertyGet "ProductInfo"
[ Automation.inString product
, Automation.inString attribute
]
Automation.outString
configureProduct :: Prelude.String
-> Data.Int.Int32
-> MsiInstallState
-> Installer a0
-> Prelude.IO ()
configureProduct product installLevel installState =
Automation.method0 "ConfigureProduct"
[ Automation.inString product
, Automation.inInt32 installLevel
, Automation.inEnum installState
]
reinstallProduct :: Prelude.String
-> MsiReinstallMode
-> Installer a0
-> Prelude.IO ()
reinstallProduct product reinstallMode =
Automation.method0 "ReinstallProduct"
[ Automation.inString product
, Automation.inEnum reinstallMode
]
collectUserInfo :: Prelude.String
-> Installer a0
-> Prelude.IO ()
collectUserInfo product =
Automation.method0 "CollectUserInfo"
[Automation.inString product]
applyPatch :: Prelude.String
-> Prelude.String
-> MsiInstallType
-> Prelude.String
-> Installer a0
-> Prelude.IO ()
applyPatch patchPackage installPackage installType commandLine =
Automation.method0 "ApplyPatch"
[ Automation.inString patchPackage
, Automation.inString installPackage
, Automation.inEnum installType
, Automation.inString commandLine
]
getFeatureParent :: Prelude.String
-> Prelude.String
-> Installer a0
-> Prelude.IO Prelude.String
getFeatureParent product feature =
Automation.propertyGet "FeatureParent"
[ Automation.inString product
, Automation.inString feature
]
Automation.outString
getFeatureState :: Prelude.String
-> Prelude.String
-> Installer a0
-> Prelude.IO MsiInstallState
getFeatureState product feature =
Automation.propertyGet "FeatureState"
[ Automation.inString product
, Automation.inString feature
]
Automation.outEnum
useFeature :: Prelude.String
-> Prelude.String
-> MsiInstallMode
-> Installer a0
-> Prelude.IO ()
useFeature product feature installMode =
Automation.method0 "UseFeature"
[ Automation.inString product
, Automation.inString feature
, Automation.inEnum installMode
]
getFeatureUsageCount :: Prelude.String
-> Prelude.String
-> Installer a0
-> Prelude.IO Data.Int.Int32
getFeatureUsageCount product feature =
Automation.propertyGet "FeatureUsageCount"
[ Automation.inString product
, Automation.inString feature
]
Automation.outInt32
getFeatureUsageDate :: Prelude.String
-> Prelude.String
-> Installer a0
-> Prelude.IO Automation.Date
getFeatureUsageDate product feature =
Automation.propertyGet "FeatureUsageDate"
[ Automation.inString product
, Automation.inString feature
]
Automation.outDate
configureFeature :: Prelude.String
-> Prelude.String
-> MsiInstallState
-> Installer a0
-> Prelude.IO ()
configureFeature product feature installState =
Automation.method0 "ConfigureFeature"
[ Automation.inString product
, Automation.inString feature
, Automation.inEnum installState
]
reinstallFeature :: Prelude.String
-> Prelude.String
-> MsiReinstallMode
-> Installer a0
-> Prelude.IO ()
reinstallFeature product feature reinstallMode =
Automation.method0 "ReinstallFeature"
[ Automation.inString product
, Automation.inString feature
, Automation.inEnum reinstallMode
]
provideComponent :: Prelude.String
-> Prelude.String
-> Prelude.String
-> Data.Int.Int32
-> Installer a0
-> Prelude.IO Prelude.String
provideComponent product feature component installMode =
Automation.function1 "ProvideComponent"
[ Automation.inString product
, Automation.inString feature
, Automation.inString component
, Automation.inInt32 installMode
]
Automation.outString
getComponentPath :: Prelude.String
-> Prelude.String
-> Installer a0
-> Prelude.IO Prelude.String
getComponentPath product component =
Automation.propertyGet "ComponentPath"
[ Automation.inString product
, Automation.inString component
]
Automation.outString
provideQualifiedComponent :: Prelude.String
-> Prelude.String
-> Data.Int.Int32
-> Installer a0
-> Prelude.IO Prelude.String
provideQualifiedComponent category qualifier installMode =
Automation.function1 "ProvideQualifiedComponent"
[ Automation.inString category
, Automation.inString qualifier
, Automation.inInt32 installMode
]
Automation.outString
getQualifierDescription :: Prelude.String
-> Prelude.String
-> Installer a0
-> Prelude.IO Prelude.String
getQualifierDescription category qualifier =
Automation.propertyGet "QualifierDescription"
[ Automation.inString category
, Automation.inString qualifier
]
Automation.outString
getComponentQualifiers :: Prelude.String
-> Installer a0
-> Prelude.IO (StringList ())
getComponentQualifiers category =
Automation.propertyGet "ComponentQualifiers"
[Automation.inString category]
Automation.outIDispatch
getProducts :: Installer a0
-> Prelude.IO (StringList ())
getProducts =
Automation.propertyGet "Products"
[]
Automation.outIDispatch
getFeatures :: Prelude.String
-> Installer a0
-> Prelude.IO (StringList ())
getFeatures product =
Automation.propertyGet "Features"
[Automation.inString product]
Automation.outIDispatch
getComponents :: Installer a0
-> Prelude.IO (StringList ())
getComponents =
Automation.propertyGet "Components"
[]
Automation.outIDispatch
getComponentClients :: Prelude.String
-> Installer a0
-> Prelude.IO (StringList ())
getComponentClients component =
Automation.propertyGet "ComponentClients"
[Automation.inString component]
Automation.outIDispatch
getPatches :: Prelude.String
-> Installer a0
-> Prelude.IO (StringList ())
getPatches product =
Automation.propertyGet "Patches"
[Automation.inString product]
Automation.outIDispatch
getRelatedProducts :: Prelude.String
-> Installer a0
-> Prelude.IO (StringList ())
getRelatedProducts upgradeCode =
Automation.propertyGet "RelatedProducts"
[Automation.inString upgradeCode]
Automation.outIDispatch
getPatchInfo :: Prelude.String
-> Prelude.String
-> Installer a0
-> Prelude.IO Prelude.String
getPatchInfo patch attribute =
Automation.propertyGet "PatchInfo"
[ Automation.inString patch
, Automation.inString attribute
]
Automation.outString
getPatchTransforms :: Prelude.String
-> Prelude.String
-> Installer a0
-> Prelude.IO Prelude.String
getPatchTransforms product patch =
Automation.propertyGet "PatchTransforms"
[ Automation.inString product
, Automation.inString patch
]
Automation.outString
addSource :: Prelude.String
-> Prelude.String
-> Prelude.String
-> Installer a0
-> Prelude.IO ()
addSource product user source =
Automation.method0 "AddSource"
[ Automation.inString product
, Automation.inString user
, Automation.inString source
]
clearSourceList :: Prelude.String
-> Prelude.String
-> Installer a0
-> Prelude.IO ()
clearSourceList product user =
Automation.method0 "ClearSourceList"
[ Automation.inString product
, Automation.inString user
]
forceSourceListResolution :: Prelude.String
-> Prelude.String
-> Installer a0
-> Prelude.IO ()
forceSourceListResolution product user =
Automation.method0 "ForceSourceListResolution"
[ Automation.inString product
, Automation.inString user
]
getGetShortcutTarget :: Prelude.String
-> Installer a0
-> Prelude.IO (Record ())
getGetShortcutTarget shortcutPath =
Automation.propertyGet "GetShortcutTarget"
[Automation.inString shortcutPath]
Automation.outIDispatch
fileHash :: Prelude.String
-> Data.Int.Int32
-> Installer a0
-> Prelude.IO (Record ())
fileHash filePath options =
Automation.function1 "FileHash"
[ Automation.inString filePath
, Automation.inInt32 options
]
Automation.outIDispatch
fileSignatureInfo :: Prelude.String
-> Data.Int.Int32
-> MsiSignatureInfo
-> Installer a0
-> Prelude.IO (Automation.SafeArray Prelude.Char)
fileSignatureInfo filePath options format =
Automation.function1 "FileSignatureInfo"
[ Automation.inString filePath
, Automation.inInt32 options
, Automation.inEnum format
]
Automation.outSafeArray
data Constants = MsiDatabaseNullInteger
instance Prelude.Enum (Constants) where
fromEnum v =
case v of
MsiDatabaseNullInteger -> (-2147483648)
toEnum v =
case v of
(-2147483648) -> MsiDatabaseNullInteger
_ -> Prelude.error "unmarshallConstants: illegal enum value "