-- 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 module Bamse.WindowsInstaller where 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 -> MsiMessageTypeFatalExit 0 -> MsiMessageTypeOk 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 "