// The argument it accepts must be a handle to the Installer database.\r
\r
/* export prototype MyFunction(HWND); */\r
+\r
+\r
+//===========================================================================\r
+//\r
+// File Name: IS-scripts.rul\r
+//\r
+// Description: InstallShield-12 scripts used by all 3 IS installers\r
+//\r
+// Comments: Blank setup is an empty setup project. If you want to\r
+// create a new project via. step-by step instructions use the\r
+// Project Assistant.\r
+//\r
+//===========================================================================\r
+\r
+\r
+// Windows Installer API function prototypes and constants,\r
+// and to declare code for the OnBegin and OnEnd events.\r
+\r
+#include "iswi.h"\r
+\r
+//---------------------------------------------------------------------------\r
+// OnFirstUIBefore\r
+//\r
+// The OnFirstUIBefore event is called by the framework when the setup is\r
+// running in first install mode. By default this event displays UI allowing\r
+// the end user to specify installation parameters.\r
+//\r
+// Template from IS, required here in order to populate the currently\r
+// selected features...pain-in-the-....\r
+//---------------------------------------------------------------------------\r
+\r
+function OnFirstUIBefore()\r
+ NUMBER nResult, nSetupType, nvSize, nUser;\r
+ STRING szTitle, szMsg, svName, svCompany, szFile;\r
+ STRING szSetupType,szSetup,F0,F1,F2,F3,F4,F5,F6,svResult;\r
+ LIST listStartCopy;\r
+ BOOL bCustom;\r
+begin \r
+ // TO DO: if you want to enable background, window title, and caption bar title \r
+ // SetTitle( @PRODUCT_NAME, 24, WHITE ); \r
+ // SetTitle( @PRODUCT_NAME, 0, BACKGROUNDCAPTION ); \r
+ // Enable( FULLWINDOWMODE ); \r
+ // Enable( BACKGROUND ); \r
+ // SetColor(BACKGROUND,RGB (0, 128, 128)); \r
+\r
+ SHELL_OBJECT_FOLDER = @PRODUCT_NAME; \r
+ \r
+ nSetupType = TYPICAL; \r
+\r
+Dlg_SdWelcome:\r
+ szTitle = "";\r
+ szMsg = "";\r
+ nResult = SdWelcome(szTitle, szMsg);\r
+ if (nResult = BACK) goto Dlg_SdWelcome;\r
+ \r
+ szTitle = "";\r
+ svName = "";\r
+ svCompany = "";\r
+\r
+Dlg_SdCustomerInformation:\r
+ nResult = SdCustomerInformation(szTitle, svName, svCompany, nUser);\r
+ if (nResult = BACK) goto Dlg_SdWelcome;\r
+\r
+Dlg_SetupType:\r
+ szTitle = "";\r
+ szMsg = "";\r
+ nResult = SetupType(szTitle, szMsg, "", nSetupType, 0);\r
+ if (nResult = BACK) then\r
+ goto Dlg_SdCustomerInformation;\r
+ else\r
+ nSetupType = nResult;\r
+ if (nSetupType != CUSTOM) then\r
+ nvSize = 0;\r
+ FeatureCompareSizeRequired(MEDIA, INSTALLDIR, nvSize);\r
+ if (nvSize != 0) then \r
+ MessageBox(szSdStr_NotEnoughSpace, WARNING);\r
+ goto Dlg_SetupType;\r
+ endif;\r
+ bCustom = FALSE;\r
+ goto Dlg_SQL;\r
+ else\r
+ bCustom = TRUE;\r
+ endif;\r
+ endif; \r
+\r
+Dlg_SdAskDestPath: \r
+ nResult = SdAskDestPath(szTitle, szMsg, INSTALLDIR, 0);\r
+ if (nResult = BACK) goto Dlg_SetupType;\r
+\r
+Dlg_SdFeatureTree: \r
+ szTitle = "";\r
+ szMsg = "";\r
+ if (nSetupType = CUSTOM) then\r
+ nResult = SdFeatureTree(szTitle, szMsg, INSTALLDIR, "", 2);\r
+ if (nResult = BACK) goto Dlg_SdAskDestPath; \r
+ endif;\r
+\r
+Dlg_SQL:\r
+ nResult = OnSQLLogin( nResult );\r
+ if( nResult = BACK ) then\r
+ if (!bCustom) then\r
+ goto Dlg_SetupType; \r
+ else\r
+ goto Dlg_SdFeatureTree;\r
+ endif;\r
+ endif;\r
+\r
+Dlg_SdStartCopy:\r
+ szTitle = "";\r
+ szMsg = "";\r
+ listStartCopy = ListCreate( STRINGLIST );\r
+ switch (nSetupType)\r
+ case TYPICAL:\r
+ szSetupType = "Typical";\r
+ case COMPACT:\r
+ szSetupType = "Compact";\r
+ case CUSTOM:\r
+ // all for want of strcat()...sigh.\r
+ szSetupType = "Custom";\r
+ default:\r
+ MessageBox ("Invalid setup type selection!", SEVERE);\r
+ abort;\r
+ endswitch;\r
+\r
+ F0 = "IBcore, Tools"; // always\r
+ F1 = "";\r
+ F2 = "";\r
+ F3 = "";\r
+ F4 = "";\r
+ F5 = "";\r
+ F6 = "";\r
+ // Determine the installed state of Subfeature1.\r
+ FeatureGetData (MEDIA,"IPoIB",FEATURE_FIELD_SELECTED,nResult,svResult);\r
+ if (nResult = 1) then\r
+ F1 = ", IPoIB";\r
+ endif;\r
+ FeatureGetData (MEDIA,"WinsockDirect",FEATURE_FIELD_SELECTED,nResult,svResult);\r
+ if (nResult = 1 && SYSINFO.WINNT.bWinXP = FALSE ) then\r
+ F2 = ", WinsockDirect";\r
+ endif;\r
+ FeatureGetData (MEDIA,"SRP",FEATURE_FIELD_SELECTED,nResult,svResult);\r
+ if (nResult = 1) then\r
+ F3 =", SRP";\r
+ endif;\r
+ FeatureGetData (MEDIA,"VNIC",FEATURE_FIELD_SELECTED,nResult,svResult);\r
+ if (nResult = 1) then\r
+ F4 = ", VNIC";\r
+ endif;\r
+ FeatureGetData (MEDIA,"DAPL",FEATURE_FIELD_SELECTED,nResult,svResult);\r
+ if (nResult = 1) then\r
+ F5 = ", DAT & uDAPL";\r
+ endif;\r
+ FeatureGetData (MEDIA,"OpenSM_Service",FEATURE_FIELD_SELECTED,nResult,svResult);\r
+ if (nResult = 1) then\r
+ F6 = ", OpenSM_service enabled.";\r
+ endif;\r
+ // strcat()...where art thou?\r
+ Sprintf(szSetup,"%s%s%s%s%s%s%s",F0,F1,F2,F3,F4,F5,F6);\r
+ \r
+ ListAddString(listStartCopy, "",AFTER);\r
+ ListAddString(listStartCopy, "[" + szSetupType + "] features will be installed", AFTER);\r
+ ListAddString(listStartCopy, " " + szSetup, AFTER);\r
+ ListAddString(listStartCopy, "", AFTER);\r
+ ListAddString(listStartCopy, "Destination Directory:", AFTER);\r
+ ListAddString(listStartCopy, " " + INSTALLDIR, AFTER);\r
+\r
+ nResult = SdStartCopy( szTitle, szMsg, listStartCopy ); \r
+ ListDestroy(listStartCopy);\r
+ \r
+ if (nResult = BACK) then\r
+ goto Dlg_SQL;\r
+ endif;\r
+\r
+ // setup default status\r
+ Enable(STATUSEX);\r
+ \r
+ return 0;\r
+end;\r
+\r
+//---------------------------------------------------------------------------\r
+// RegPathFixup\r
+//\r
+// Add or remove INSTALLDIR from the system wide .exe search path\r
+// inputs: 0 == Install(Add INSTALLDIR), 1 == Uninstall(Remove INSTALLDIR)\r
+// ReturnValue = 0 Although the function may fail, it's not a show stopper.\r
+//---------------------------------------------------------------------------\r
+#define TITLE "RegPathFixup"\r
+#define WM_WININICHANGE 0x001A\r
+#define HWND_BROADCAST 0xffff\r
+\r
+prototype RegPathFixup(NUMBER);\r
+\r
+function RegPathFixup(nMode) // 0==Install, 1==Uninstall\r
+ NUMBER nResult, nvSize, nvType, svSize;\r
+ STRING szKey, svValue, svInstallDir, svSpath, svResult, szEnv;\r
+ POINTER pEnv;\r
+begin \r
+ // set correct registry hive\r
+ RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);\r
+ szKey = "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment";\r
+ //nvType = REGDB_STRING; // may contain %var%\r
+ nvType = REGDB_STRING_EXPAND; // expanded/raw paths\r
+ // read system wide search path which cmd.exe inherits %PATH%\r
+ nResult = RegDBGetKeyValueEx(szKey, "Path", nvType, svValue, nvSize);\r
+ if (nResult < 0) then\r
+ SprintfBox(SEVERE, TITLE,"Registry read %PATH% failed %d",nResult);\r
+ return 0;\r
+ endif;\r
+\r
+ // Place the current system search %PATH% into the path buffer\r
+ if (PathSet(svValue) < 0) then\r
+ // Report an error; then terminate.\r
+ MessageBox ("PathSet failed.", SEVERE);\r
+ return 0;\r
+ endif;\r
+ \r
+ // [INSTALLDIR] already added? Remove it.\r
+ svInstallDir = INSTALLDIR;\r
+ StrRemoveLastSlash(svInstallDir); \r
+ nResult = PathFind(svInstallDir, svResult, FULL, RESTART);\r
+ if (nResult >= 0) then\r
+ // Match - remove INSTALLDIR from system-wide definition. \r
+ PathDelete(svInstallDir,FULL);\r
+ else\r
+ if (nMode = 1) then\r
+ PathGet(svSpath); // release memory from PathSet\r
+ return 0; // Uninstalling and path not present, no work to do.\r
+ endif;\r
+ endif;\r
+ \r
+ // if installing, add INSTALLDIR to end of %PATH%.\r
+ if (nMode = 0) then\r
+ if (PathAdd (svInstallDir, "", FULL, AFTER) < 0) then\r
+ MessageBox ("Unable to add [" + svInstallDir + "]" + "to " + svValue,INFORMATION);\r
+ PathGet(svSpath); // release memory from PathSet\r
+ return 0;\r
+ endif;\r
+ endif;\r
+ \r
+ // release memory allocated in PathSet()\r
+ PathGet(svSpath);\r
+ \r
+ // reset system Path and announce/broadcast path env update\r
+ nResult = RegDBSetKeyValueEx(szKey, "Path", nvType, svSpath, -1);\r
+ if (nResult < 0) then\r
+ MessageBox("Failed to reset %PATH%", WARNING);\r
+ else\r
+ //MessageBox("Successfully Set Environment Variable", INFORMATION);\r
+ // Flush the NT registry to all applications.\r
+ szEnv = "Environment";\r
+ pEnv = &szEnv;\r
+ SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, pEnv);\r
+ endif;\r
+ \r
+ return 0; \r
+end;\r
+\r
+//---------------------------------------------------\r
+// OnEnd\r
+//\r
+// The OnEnd event is called at the end of the setup.\r
+// This event is not called if the setup is aborted.\r
+//---------------------------------------------------\r
+\r
+function OnEnd()\r
+begin\r
+ // 0 == 1st time install, add INSTALLDIR path to\r
+ // system wide .exe search path\r
+ if (!MAINTENANCE) then\r
+ RegPathFixup(0);\r
+ endif;\r
+end;\r
+\r
+\r
+//---------------------------------------------------------------------------\r
+// OnUninstall\r
+//\r
+// The OnUninstall event is called when uninstallation is started by the\r
+// end user from either the Add/Remove programs or by clicking on\r
+// setup.exe again, after the product has already been installed.\r
+// This event will only be triggered if the "Enable Maintenance"\r
+// property in General Information\Project Properties is set to\r
+// No. If this property is set to Yes, then the Maintenance\r
+// events will get triggered. This event is similar to an IS5\r
+// uninstallation.\r
+//---------------------------------------------------------------------------\r
+\r
+function OnUninstall()\r
+ BOOL bvOpt1, bvOpt2;\r
+ string szTitle, szMsg1, szMsg2, szOpt1, szOpt2, svResult, szCaption;\r
+begin\r
+ svResult = SdLoadString(ISWI_IS5_UNINST_MSG);\r
+ szCaption = SdLoadString(IFX_ONMAINTUI_CAPTION);\r
+ Sprintf (svResult, svResult, @PRODUCT_NAME);\r
+ if (IDCANCEL = SprintfBox(MB_OKCANCEL, szCaption, svResult)) then\r
+ abort; \r
+ endif;\r
+ \r
+ RegPathFixup(1); // remove WinOF from system search path\r
+ \r
+ Enable(STATUSEX);\r
+\r
+ //////////////////////////////////////\r
+ //DO NOT DELETE. The below code will\r
+ //initiate the uninstallation process.\r
+ ComponentRemoveAll();\r
+ ComponentTransferData(MEDIA);\r
+ //////////////////////////////////////\r
+ \r
+ Disable(STATUSEX);\r
+ \r
+ bvOpt1 = FALSE;\r
+ bvOpt2 = FALSE;\r
+ szMsg1 = SdLoadString(IFX_SDFINISH_MAINT_MSG1);\r
+ szTitle = SdLoadString(IFX_SDFINISH_MAINT_TITLE);\r
+ SdFinishEx(szTitle, szMsg1, szMsg2, szOpt1, szOpt2, bvOpt1, bvOpt2);\r
+end;\r
+\r
366 OnComponentError iswi.obl(Exceptions.obs)\r
367 OnDIFxLogCallback isrt.obl(ISDIFx.obs)\r
368 OnDIFxLogCallbackImpl isrt.obl(ISDIFx.obs)\r
-369 OnEnd iswi.obl(DriverConv.obs)\r
+369 OnEnd Setup.obs\r
370 OnError iswi.obl(DriverConv.obs)\r
371 OnException iswi.obl(Exceptions.obs)\r
372 OnFeaturesInstalled iswi.obl(FileTransferFuncsConv.obs)\r
376 OnFileReadOnly iswi.obl(Exceptions.obs)\r
377 OnFilesInUse iswi.obl(DriverConv.obs)\r
378 OnFirstUIAfter iswi.obl(DriverConv.obs)\r
-379 OnFirstUIBefore iswi.obl(DriverConv.obs)\r
+379 OnFirstUIBefore Setup.obs\r
380 OnGeneratedMSIScript iswi.obl(FileTransferFuncsConv.obs)\r
381 OnGeneratingMSIScript iswi.obl(FileTransferFuncsConv.obs)\r
382 OnHelp iswi.obl(DriverConv.obs)\r
406 OnSQLLogin iswi.obl(DriverConv.obs)\r
407 OnSelfRegistrationError iswi.obl(Exceptions.obs)\r
408 OnUnhandledException iswi.obl(DriverConv.obs)\r
-409 OnUninstall iswi.obl(DriverConv.obs)\r
+409 OnUninstall Setup.obs\r
410 OnUpdateService iswi.obl(DriverConv.obs)\r
411 OnWarning iswi.obl(DriverConv.obs)\r
412 OpenFile isrt.obl(Files.obs)\r
413 OpenFileMode isrt.obl(Files.obs)\r
414 PCRestoreOnBegin isrt.obl(PCRestore.obs)\r
415 ParsePath isrt.obl(Str.obs)\r
-416 PostShowComponentDlg iswi.obl(ISWiInit.obs)\r
-417 Postprogram iswi.obl(DriverConv.obs)\r
-418 PreShowComponentDlg iswi.obl(ISWiInit.obs)\r
-419 Preprogram iswi.obl(DriverConv.obs)\r
-420 ProgDefGroupType isrt.obl(Shell.obs)\r
-421 ProgGetGroupType isrt.obl(Shell.obs)\r
-422 PthFixPath isrt.obl(Pth.obs)\r
-423 PthIsAbsPath isrt.obl(Pth.obs)\r
-424 RebootNeeded iswi.obl(FileTransferFuncsConv.obs)\r
-425 RedirectMsiCloseHandle iswi.obl(RedirectedMsiFuncsConv.obs)\r
-426 RedirectMsiCreateRecord iswi.obl(RedirectedMsiFuncsConv.obs)\r
-427 RedirectMsiGetActiveDatabase iswi.obl(RedirectedMsiFuncsConv.obs)\r
-428 RedirectMsiProcessMessage iswi.obl(RedirectedMsiFuncsConv.obs)\r
-429 RedirectMsiRecordGetInteger iswi.obl(RedirectedMsiFuncsConv.obs)\r
-430 RedirectMsiViewExecute iswi.obl(RedirectedMsiFuncsConv.obs)\r
-431 RedirectMsiViewFetch iswi.obl(RedirectedMsiFuncsConv.obs)\r
-432 RegDBGetDefaultRoot isrt.obl(SysVars.obs)\r
-433 RegDBGetItem isrt.obl(Registry.obs)\r
-434 RegDBGetKeyValueEx isrt.obl(Registry.obs)\r
-435 RegDBQueryKey isrt.obl(Registry.obs)\r
-436 RegDBQueryKeyCount isrt.obl(Registry.obs)\r
-437 RegDBQueryStringMultiStringCount isrt.obl(Registry.obs)\r
-438 RegDBQueryValue isrt.obl(Registry.obs)\r
-439 RegDBQueryValue32 isrt.obl(Registry.obs)\r
-440 RegDBSetDefaultRoot isrt.obl(SysVars.obs)\r
-441 RegDBSetKeyValueEx isrt.obl(Registry.obs)\r
-442 RegDBSetValue isrt.obl(Registry.obs)\r
-443 ReleaseDialog isrt.obl(CustomDialog.obs)\r
-444 RemoveSpaces iswi.obl(HelperFuncs.obs)\r
-445 ResolveShellObjectsFolder iswi.obl(CompHelperFuncs.obs)\r
-446 SdAskDestPath isrt.obl(SdAskDestPathDlg.obs)\r
-447 SdCloseDlg isrt.obl(SDINT.obs)\r
-448 SdComponentDlgCheckSpace isrt.obl(SDINT.obs)\r
-449 SdCustomerInformation iswi.obl(SdCustInfo.obs)\r
-450 SdDlgToTop isrt.obl(SDINT.obs)\r
-451 SdDoStdButton isrt.obl(SDINT.obs)\r
-452 SdEnablement isrt.obl(SDINT.obs)\r
-453 SdError isrt.obl(SDINT.obs)\r
-454 SdFeatureTree isrt.obl(SdComponentTreeDlg.obs)\r
-455 SdFilesInUse iswi.obl(SdFilesInUse.obs)\r
-456 SdFinish isrt.obl(SdFinishDlg.obs)\r
-457 SdFinishEx iswi.obl(SdFinishExConv.obs)\r
-458 SdFinishReboot isrt.obl(SdFinishRebootDlg.obs)\r
-459 SdFinishUpdate iswi.obl(SdFinishUpdate.obs)\r
-460 SdFinishUpdateReboot iswi.obl(SdFinUpdateRebot.obs)\r
-461 SdGeneralInit isrt.obl(SDINT.obs)\r
-462 SdInit isrt.obl(SDINT.obs)\r
-463 SdIsStdButton isrt.obl(SDINT.obs)\r
-464 SdLoadString isrt.obl(SDINT.obs)\r
-465 SdMakeName isrt.obl(SDINT.obs)\r
-466 SdOutOfDiskSpace iswi.obl(SdDiskReqs.obs)\r
-467 SdPatchWelcome iswi.obl(SdPatchWel.obs)\r
-468 SdPlugInProductName isrt.obl(SDINT.obs)\r
-469 SdSetDlgTitle isrt.obl(SDINT.obs)\r
-470 SdSetStatic isrt.obl(SDINT.obs)\r
-471 SdSetupCompleteError iswi.obl(SdSetupCompleteError.obs)\r
-472 SdShowMsg isrt.obl(SDSMSG.obs)\r
-473 SdStartCopy isrt.obl(SdStartCopyDlg.obs)\r
-474 SdSubstituteProductInfo isrt.obl(SDINT.obs)\r
-475 SdUnInit isrt.obl(SDINT.obs)\r
-476 SdWelcome isrt.obl(SdWelcomeDlg.obs)\r
-477 SdWelcomeMaint isrt.obl(SdWelcomeMaintDlg.obs)\r
-478 SelectDir isrt.obl(SelectDir.obs)\r
-479 SelectDirNoLog isrt.obl(SelectDir.obs)\r
-480 SendMessage isrt.obl(Misc.obs)\r
-481 ServiceInitParams isrt.obl(Service.obs)\r
-482 SetCmdLine isrt.obl(SysVars.obs)\r
-483 SetDisplayEffect isrt.obl(ui.obs)\r
-484 SetExtendedErrInfo isrt.obl(IsUtil.obs)\r
-485 SetFolderDesktop isrt.obl(SysVars.obs)\r
-486 SetFolderPrograms isrt.obl(SysVars.obs)\r
-487 SetFolderStartMenu isrt.obl(SysVars.obs)\r
-488 SetFolderStartup isrt.obl(SysVars.obs)\r
-489 SetGlobalVars iswi.obl(ISWiInit.obs)\r
-490 SetInstallationInfo isrt.obl(Registry.obs)\r
-491 SetMifInformationOnly isrt.obl(Registry.obs)\r
-492 SetTitle isrt.obl(ui.obs)\r
-493 SetUpdateStatus iswi.obl(HelperFuncs.obs)\r
-494 SetUpdateStatusReboot iswi.obl(HelperFuncs.obs)\r
-495 SetupTraceWrite isrt.obl(Misc.obs)\r
-496 SetupType isrt.obl(SetupTypeDlg.obs)\r
-497 SilentDoGeneralInfo isrt.obl(Silent.obs)\r
-498 SilentFailed isrt.obl(Silent.obs)\r
-499 SilentFinish isrt.obl(Silent.obs)\r
-500 SilentInit isrt.obl(Silent.obs)\r
-501 SilentReadData isrt.obl(Silent.obs)\r
-502 SilentSetInfo isrt.obl(Silent.obs)\r
-503 SilentSetMode isrt.obl(Silent.obs)\r
-504 SilentWriteData isrt.obl(Silent.obs)\r
-505 Sprintf isrt.obl(Str.obs)\r
-506 SprintfBox isrt.obl(MsgBox.obs)\r
-507 SprintfMsiLog iswi.obl(HelperFuncs.obs)\r
-508 StrAddLastSlash isrt.obl(Str.obs)\r
-509 StrDelete iswi.obl(HelperFuncs.obs)\r
-510 StrFindEx isrt.obl(Str.obs)\r
-511 StrGetTokens isrt.obl(Str.obs)\r
-512 StrLength isrt.obl(Str.obs)\r
-513 StrRemoveLastSlash isrt.obl(Str.obs)\r
-514 StrRemoveSpaces isrt.obl(Str.obs)\r
-515 StrReplace isrt.obl(Str.obs)\r
-516 StrToNumHex isrt.obl(Str.obs)\r
-517 StrToUpper isrt.obl(Str.obs)\r
-518 SysVarsInit isrt.obl(SysVars.obs)\r
-519 SysVarsInitConv iswi.obl(SysVarsConv.obs)\r
-520 SysVarsTrace isrt.obl(SysVars.obs)\r
-521 SysVarsUnInit iswi.obl(SysVarsConv.obs)\r
-522 System isrt.obl(Misc.obs)\r
-523 TextSubGetValue isrt.obl(TextSub.obs)\r
-524 TextSubParseTextSub isrt.obl(TextSub.obs)\r
-525 TextSubSetValue isrt.obl(TextSub.obs)\r
-526 TreeViewCreate isrt.obl(CmptView.obs)\r
-527 USER.EnableWindow Setup.obs\r
-528 USER.GetClassName Setup.obs\r
-529 USER.GetDC Setup.obs\r
-530 USER.GetDlgItem Setup.obs\r
-531 USER.GetFocus Setup.obs\r
-532 USER.GetWindowLong Setup.obs\r
-533 USER.IsIconic Setup.obs\r
-534 USER.IsWindow Setup.obs\r
-535 USER.IsWindowVisible Setup.obs\r
-536 USER.ReleaseDC Setup.obs\r
-537 USER.SendMessageA Setup.obs\r
-538 USER.SetFocus Setup.obs\r
-539 USER.SetForegroundWindow Setup.obs\r
-540 USER.SetWindowPos Setup.obs\r
-541 USER.SetWindowText Setup.obs\r
-542 USER.ShowWindow Setup.obs\r
-543 USER32.CharUpperBuffA Setup.obs\r
-544 USER32.FindWindowA Setup.obs\r
-545 USER32.GetDlgItem iswi.obl(SdDiskReqs.obs)\r
-546 USER32.GetSystemMetrics Setup.obs\r
-547 USER32.GetWindowRect iswi.obl(SdDiskReqs.obs)\r
-548 USER32.GetWindowText Setup.obs\r
-549 USER32.GetWindowTextLength Setup.obs\r
-550 USER32.MessageBoxA Setup.obs\r
-551 USER32.MsgWaitForMultipleObjects Setup.obs\r
-552 USER32.PeekMessageA Setup.obs\r
-553 USER32.SendMessageA Setup.obs\r
-554 USER32.SetWindowLong Setup.obs\r
-555 USER32.SetWindowRgn Setup.obs\r
-556 UpdateServiceEnableUpdateService isrt.obl(ISUpdateService.obs)\r
-557 User32.DestroyWindow iswi.obl(SdDiskReqs.obs)\r
-558 User32.LoadStringA iswi.obl(ComponentConv.obs)\r
-559 VarInit isrt.obl(SysVars.obs)\r
-560 VarRestore iswi.obl(SysVarsConv.obs)\r
-561 VarRestoreISRT isrt.obl(SysVars.obs)\r
-562 VarSave iswi.obl(SysVarsConv.obs)\r
-563 VarSaveISRT isrt.obl(SysVars.obs)\r
-564 VerProductGetInstalledVersion isrt.obl(version.obs)\r
-565 VerProductNumToStr isrt.obl(version.obs)\r
-566 VerProductVerPartsFromVer isrt.obl(version.obs)\r
-567 WaitOnDialog isrt.obl(CustomDialog.obs)\r
-568 WriteLine isrt.obl(Files.obs)\r
-569 __AddIntegerToArray iswi.obl(HelperFuncs.obs)\r
-570 __AddStringToArray iswi.obl(HelperFuncs.obs)\r
-571 __Begin iswi.obl(DriverConv.obs)\r
-572 __ComponentListItemsEx iswi.obl(CompHelperFuncs.obs)\r
-573 __ComponentListItemsExInstall iswi.obl(CompHelperFuncs.obs)\r
-574 __ComponentListItemsExUnInstall iswi.obl(CompHelperFuncs.obs)\r
-575 __ComponentMoveXferData iswi.obl(CompHelperFuncs.obs)\r
-576 __End iswi.obl(DriverConv.obs)\r
-577 __GetFinishMode iswi.obl(ISWiInit.obs)\r
-578 __GetMsiHandle iswi.obl(SysVarsConv.obs)\r
-579 __GetSourceDir iswi.obl(SysVarsConv.obs)\r
-580 __HandleError iswi.obl(ErrHandler.obs)\r
-581 __ISRTDoExit isrt.obl(Misc.obs)\r
-582 __ISRTInit isrt.obl(ISRTInit.obs)\r
-583 __ISRTRestoreMainLog isrt.obl(ISRTInit.obs)\r
-584 __ISRTRestoreMainLogEx isrt.obl(ISRTInit.obs)\r
-585 __ISRTSetComponentLog isrt.obl(ISRTInit.obs)\r
-586 __ISRTUnInit isrt.obl(ISRTInit.obs)\r
-587 __ISWIInit iswi.obl(ISWiInit.obs)\r
-588 __ISWIMsiHandle iswi.obl(ISWiInit.obs)\r
-589 __ISWIUnInit iswi.obl(ISWiInit.obs)\r
-590 __IsArrayEmpty iswi.obl(HelperFuncs.obs)\r
-591 __LoadIScriptString isrt.obl(LoadStr.obs)\r
-592 __Moved iswi.obl(FileTransferFuncsConv.obs)\r
-593 __Moving iswi.obl(FileTransferFuncsConv.obs)\r
-594 __MsiOpenView iswi.obl(CompHelperFuncs.obs)\r
-595 __MsiQueryFeatureState iswi.obl(MsiWrappersConv.obs)\r
-596 __MsiRecordGetString iswi.obl(MsiWrappersConv.obs)\r
-597 __OnAbort iswi.obl(DriverConv.obs)\r
-598 __OnAdminPatch iswi.obl(DriverConv.obs)\r
-599 __OnAdministrativeInstall iswi.obl(DriverConv.obs)\r
-600 __OnAdvertisement iswi.obl(DriverConv.obs)\r
-601 __OnBegin iswi.obl(DriverConv.obs)\r
-602 __OnCanceling iswi.obl(DriverConv.obs)\r
-603 __OnEnd iswi.obl(DriverConv.obs)\r
-604 __OnError iswi.obl(DriverConv.obs)\r
-605 __OnMsiMaintenance iswi.obl(DriverConv.obs)\r
-606 __OnMsiRebooted iswi.obl(DriverConv.obs)\r
-607 __OnMsiSilentInstall iswi.obl(DriverConv.obs)\r
-608 __OnMsiUninstall iswi.obl(DriverConv.obs)\r
-609 __OnPatch iswi.obl(DriverConv.obs)\r
-610 __OnResume iswi.obl(DriverConv.obs)\r
-611 __OnWarning iswi.obl(DriverConv.obs)\r
-612 __ResetMsiObject iswi.obl(ISWiInit.obs)\r
-613 __SetMaintenance iswi.obl(ISWiInit.obs)\r
-614 __SetMsiHandle iswi.obl(SysVarsConv.obs)\r
-615 __SetMsiServer iswi.obl(ISWiInit.obs)\r
-616 __SetPatch iswi.obl(SysVarsConv.obs)\r
-617 __SetSourceDir iswi.obl(SysVarsConv.obs)\r
-618 isrt._ComponentGetData iswi.obl(ComponentConv.obs)\r
-619 isrt._ComponentIsItemSelected iswi.obl(ComponentConv.obs)\r
-620 isrt._ComponentListItems iswi.obl(ComponentConv.obs)\r
-621 isrt._ComponentReinstall iswi.obl(ComponentConv.obs)\r
-622 isrt._ComponentRemoveAll iswi.obl(ComponentConv.obs)\r
-623 isrt._ComponentSelectItem iswi.obl(ComponentConv.obs)\r
-624 isrt._ComponentSetupTypeSet iswi.obl(ComponentConv.obs)\r
-625 isrt._EnableDialogCache iswi.obl(ISWiInit.obs)\r
-626 kernel32.GetLocalTime iswi.obl(ErrHandler.obs)\r
-627 kernel32.GetWindowsDirectoryA iswi.obl(ErrHandler.obs)\r
-628 msi.MsiCloseHandle iswi.obl(RedirectedMsiFuncsConv.obs)\r
-629 msi.MsiCreateRecord iswi.obl(RedirectedMsiFuncsConv.obs)\r
-630 msi.MsiDatabaseOpenViewA Setup.obs\r
-631 msi.MsiDoActionA Setup.obs\r
-632 msi.MsiGetActiveDatabase iswi.obl(RedirectedMsiFuncsConv.obs)\r
-633 msi.MsiGetProductInfoA Setup.obs\r
-634 msi.MsiGetPropertyA Setup.obs\r
-635 msi.MsiGetSourcePathA Setup.obs\r
-636 msi.MsiGetTargetPathA Setup.obs\r
-637 msi.MsiOpenDatabaseA Setup.obs\r
-638 msi.MsiProcessMessage iswi.obl(RedirectedMsiFuncsConv.obs)\r
-639 msi.MsiQueryFeatureStateA Setup.obs\r
-640 msi.MsiRecordGetInteger iswi.obl(RedirectedMsiFuncsConv.obs)\r
-641 msi.MsiRecordGetStringA Setup.obs\r
-642 msi.MsiRecordSetStringA Setup.obs\r
-643 msi.MsiSetPropertyA Setup.obs\r
-644 msi.MsiSetTargetPathA Setup.obs\r
-645 msi.MsiViewExecute iswi.obl(RedirectedMsiFuncsConv.obs)\r
-646 msi.MsiViewFetch iswi.obl(RedirectedMsiFuncsConv.obs)\r
-647 program iswi.obl(DriverConv.obs)\r
-648 sfc.SRSetRestorePoint Setup.obs\r
+416 PathAdd isrt.obl(PathBuff.obs)\r
+417 PathDelete isrt.obl(PathBuff.obs)\r
+418 PathFind isrt.obl(PathBuff.obs)\r
+419 PathGet isrt.obl(PathBuff.obs)\r
+420 PathSet isrt.obl(PathBuff.obs)\r
+421 PostShowComponentDlg iswi.obl(ISWiInit.obs)\r
+422 Postprogram iswi.obl(DriverConv.obs)\r
+423 PreShowComponentDlg iswi.obl(ISWiInit.obs)\r
+424 Preprogram iswi.obl(DriverConv.obs)\r
+425 ProgDefGroupType isrt.obl(Shell.obs)\r
+426 ProgGetGroupType isrt.obl(Shell.obs)\r
+427 PthFixPath isrt.obl(Pth.obs)\r
+428 PthIsAbsPath isrt.obl(Pth.obs)\r
+429 RebootNeeded iswi.obl(FileTransferFuncsConv.obs)\r
+430 RedirectMsiCloseHandle iswi.obl(RedirectedMsiFuncsConv.obs)\r
+431 RedirectMsiCreateRecord iswi.obl(RedirectedMsiFuncsConv.obs)\r
+432 RedirectMsiGetActiveDatabase iswi.obl(RedirectedMsiFuncsConv.obs)\r
+433 RedirectMsiProcessMessage iswi.obl(RedirectedMsiFuncsConv.obs)\r
+434 RedirectMsiRecordGetInteger iswi.obl(RedirectedMsiFuncsConv.obs)\r
+435 RedirectMsiViewExecute iswi.obl(RedirectedMsiFuncsConv.obs)\r
+436 RedirectMsiViewFetch iswi.obl(RedirectedMsiFuncsConv.obs)\r
+437 RegDBGetDefaultRoot isrt.obl(SysVars.obs)\r
+438 RegDBGetItem isrt.obl(Registry.obs)\r
+439 RegDBGetKeyValueEx isrt.obl(Registry.obs)\r
+440 RegDBQueryKey isrt.obl(Registry.obs)\r
+441 RegDBQueryKeyCount isrt.obl(Registry.obs)\r
+442 RegDBQueryStringMultiStringCount isrt.obl(Registry.obs)\r
+443 RegDBQueryValue isrt.obl(Registry.obs)\r
+444 RegDBQueryValue32 isrt.obl(Registry.obs)\r
+445 RegDBSetDefaultRoot isrt.obl(SysVars.obs)\r
+446 RegDBSetKeyValueEx isrt.obl(Registry.obs)\r
+447 RegDBSetValue isrt.obl(Registry.obs)\r
+448 ReleaseDialog isrt.obl(CustomDialog.obs)\r
+449 RemoveSpaces iswi.obl(HelperFuncs.obs)\r
+450 ResolveShellObjectsFolder iswi.obl(CompHelperFuncs.obs)\r
+451 SdAskDestPath isrt.obl(SdAskDestPathDlg.obs)\r
+452 SdCloseDlg isrt.obl(SDINT.obs)\r
+453 SdComponentDlgCheckSpace isrt.obl(SDINT.obs)\r
+454 SdCustomerInformation iswi.obl(SdCustInfo.obs)\r
+455 SdDlgToTop isrt.obl(SDINT.obs)\r
+456 SdDoStdButton isrt.obl(SDINT.obs)\r
+457 SdEnablement isrt.obl(SDINT.obs)\r
+458 SdError isrt.obl(SDINT.obs)\r
+459 SdFeatureTree isrt.obl(SdComponentTreeDlg.obs)\r
+460 SdFilesInUse iswi.obl(SdFilesInUse.obs)\r
+461 SdFinish isrt.obl(SdFinishDlg.obs)\r
+462 SdFinishEx iswi.obl(SdFinishExConv.obs)\r
+463 SdFinishReboot isrt.obl(SdFinishRebootDlg.obs)\r
+464 SdFinishUpdate iswi.obl(SdFinishUpdate.obs)\r
+465 SdFinishUpdateReboot iswi.obl(SdFinUpdateRebot.obs)\r
+466 SdGeneralInit isrt.obl(SDINT.obs)\r
+467 SdInit isrt.obl(SDINT.obs)\r
+468 SdIsStdButton isrt.obl(SDINT.obs)\r
+469 SdLoadString isrt.obl(SDINT.obs)\r
+470 SdMakeName isrt.obl(SDINT.obs)\r
+471 SdOutOfDiskSpace iswi.obl(SdDiskReqs.obs)\r
+472 SdPatchWelcome iswi.obl(SdPatchWel.obs)\r
+473 SdPlugInProductName isrt.obl(SDINT.obs)\r
+474 SdSetDlgTitle isrt.obl(SDINT.obs)\r
+475 SdSetStatic isrt.obl(SDINT.obs)\r
+476 SdSetupCompleteError iswi.obl(SdSetupCompleteError.obs)\r
+477 SdShowMsg isrt.obl(SDSMSG.obs)\r
+478 SdStartCopy isrt.obl(SdStartCopyDlg.obs)\r
+479 SdSubstituteProductInfo isrt.obl(SDINT.obs)\r
+480 SdUnInit isrt.obl(SDINT.obs)\r
+481 SdWelcome isrt.obl(SdWelcomeDlg.obs)\r
+482 SdWelcomeMaint isrt.obl(SdWelcomeMaintDlg.obs)\r
+483 SelectDir isrt.obl(SelectDir.obs)\r
+484 SelectDirNoLog isrt.obl(SelectDir.obs)\r
+485 SendMessage isrt.obl(Misc.obs)\r
+486 ServiceInitParams isrt.obl(Service.obs)\r
+487 SetCmdLine isrt.obl(SysVars.obs)\r
+488 SetDisplayEffect isrt.obl(ui.obs)\r
+489 SetExtendedErrInfo isrt.obl(IsUtil.obs)\r
+490 SetFolderDesktop isrt.obl(SysVars.obs)\r
+491 SetFolderPrograms isrt.obl(SysVars.obs)\r
+492 SetFolderStartMenu isrt.obl(SysVars.obs)\r
+493 SetFolderStartup isrt.obl(SysVars.obs)\r
+494 SetGlobalVars iswi.obl(ISWiInit.obs)\r
+495 SetInstallationInfo isrt.obl(Registry.obs)\r
+496 SetMifInformationOnly isrt.obl(Registry.obs)\r
+497 SetTitle isrt.obl(ui.obs)\r
+498 SetUpdateStatus iswi.obl(HelperFuncs.obs)\r
+499 SetUpdateStatusReboot iswi.obl(HelperFuncs.obs)\r
+500 SetupTraceWrite isrt.obl(Misc.obs)\r
+501 SetupType isrt.obl(SetupTypeDlg.obs)\r
+502 SilentDoGeneralInfo isrt.obl(Silent.obs)\r
+503 SilentFailed isrt.obl(Silent.obs)\r
+504 SilentFinish isrt.obl(Silent.obs)\r
+505 SilentInit isrt.obl(Silent.obs)\r
+506 SilentReadData isrt.obl(Silent.obs)\r
+507 SilentSetInfo isrt.obl(Silent.obs)\r
+508 SilentSetMode isrt.obl(Silent.obs)\r
+509 SilentWriteData isrt.obl(Silent.obs)\r
+510 Sprintf isrt.obl(Str.obs)\r
+511 SprintfBox isrt.obl(MsgBox.obs)\r
+512 SprintfMsiLog iswi.obl(HelperFuncs.obs)\r
+513 StrAddLastSlash isrt.obl(Str.obs)\r
+514 StrDelete iswi.obl(HelperFuncs.obs)\r
+515 StrFindEx isrt.obl(Str.obs)\r
+516 StrGetTokens isrt.obl(Str.obs)\r
+517 StrLength isrt.obl(Str.obs)\r
+518 StrRemoveLastSlash isrt.obl(Str.obs)\r
+519 StrRemoveSpaces isrt.obl(Str.obs)\r
+520 StrReplace isrt.obl(Str.obs)\r
+521 StrToNumHex isrt.obl(Str.obs)\r
+522 StrToUpper isrt.obl(Str.obs)\r
+523 SysVarsInit isrt.obl(SysVars.obs)\r
+524 SysVarsInitConv iswi.obl(SysVarsConv.obs)\r
+525 SysVarsTrace isrt.obl(SysVars.obs)\r
+526 SysVarsUnInit iswi.obl(SysVarsConv.obs)\r
+527 System isrt.obl(Misc.obs)\r
+528 TextSubGetValue isrt.obl(TextSub.obs)\r
+529 TextSubParseTextSub isrt.obl(TextSub.obs)\r
+530 TextSubSetValue isrt.obl(TextSub.obs)\r
+531 TreeViewCreate isrt.obl(CmptView.obs)\r
+532 USER.EnableWindow Setup.obs\r
+533 USER.GetClassName Setup.obs\r
+534 USER.GetDC Setup.obs\r
+535 USER.GetDlgItem Setup.obs\r
+536 USER.GetFocus Setup.obs\r
+537 USER.GetWindowLong Setup.obs\r
+538 USER.IsIconic Setup.obs\r
+539 USER.IsWindow Setup.obs\r
+540 USER.IsWindowVisible Setup.obs\r
+541 USER.ReleaseDC Setup.obs\r
+542 USER.SendMessageA Setup.obs\r
+543 USER.SetFocus Setup.obs\r
+544 USER.SetForegroundWindow Setup.obs\r
+545 USER.SetWindowPos Setup.obs\r
+546 USER.SetWindowText Setup.obs\r
+547 USER.ShowWindow Setup.obs\r
+548 USER32.CharUpperBuffA Setup.obs\r
+549 USER32.FindWindowA Setup.obs\r
+550 USER32.GetDlgItem iswi.obl(SdDiskReqs.obs)\r
+551 USER32.GetSystemMetrics Setup.obs\r
+552 USER32.GetWindowRect iswi.obl(SdDiskReqs.obs)\r
+553 USER32.GetWindowText Setup.obs\r
+554 USER32.GetWindowTextLength Setup.obs\r
+555 USER32.MessageBoxA Setup.obs\r
+556 USER32.MsgWaitForMultipleObjects Setup.obs\r
+557 USER32.PeekMessageA Setup.obs\r
+558 USER32.SendMessageA Setup.obs\r
+559 USER32.SetWindowLong Setup.obs\r
+560 USER32.SetWindowRgn Setup.obs\r
+561 UpdateServiceEnableUpdateService isrt.obl(ISUpdateService.obs)\r
+562 User32.DestroyWindow iswi.obl(SdDiskReqs.obs)\r
+563 User32.LoadStringA iswi.obl(ComponentConv.obs)\r
+564 VarInit isrt.obl(SysVars.obs)\r
+565 VarRestore iswi.obl(SysVarsConv.obs)\r
+566 VarRestoreISRT isrt.obl(SysVars.obs)\r
+567 VarSave iswi.obl(SysVarsConv.obs)\r
+568 VarSaveISRT isrt.obl(SysVars.obs)\r
+569 VerProductGetInstalledVersion isrt.obl(version.obs)\r
+570 VerProductNumToStr isrt.obl(version.obs)\r
+571 VerProductVerPartsFromVer isrt.obl(version.obs)\r
+572 WaitOnDialog isrt.obl(CustomDialog.obs)\r
+573 WriteLine isrt.obl(Files.obs)\r
+574 __AddIntegerToArray iswi.obl(HelperFuncs.obs)\r
+575 __AddStringToArray iswi.obl(HelperFuncs.obs)\r
+576 __Begin iswi.obl(DriverConv.obs)\r
+577 __ComponentListItemsEx iswi.obl(CompHelperFuncs.obs)\r
+578 __ComponentListItemsExInstall iswi.obl(CompHelperFuncs.obs)\r
+579 __ComponentListItemsExUnInstall iswi.obl(CompHelperFuncs.obs)\r
+580 __ComponentMoveXferData iswi.obl(CompHelperFuncs.obs)\r
+581 __End iswi.obl(DriverConv.obs)\r
+582 __GetFinishMode iswi.obl(ISWiInit.obs)\r
+583 __GetMsiHandle iswi.obl(SysVarsConv.obs)\r
+584 __GetSourceDir iswi.obl(SysVarsConv.obs)\r
+585 __HandleError iswi.obl(ErrHandler.obs)\r
+586 __ISRTDoExit isrt.obl(Misc.obs)\r
+587 __ISRTInit isrt.obl(ISRTInit.obs)\r
+588 __ISRTRestoreMainLog isrt.obl(ISRTInit.obs)\r
+589 __ISRTRestoreMainLogEx isrt.obl(ISRTInit.obs)\r
+590 __ISRTSetComponentLog isrt.obl(ISRTInit.obs)\r
+591 __ISRTUnInit isrt.obl(ISRTInit.obs)\r
+592 __ISWIInit iswi.obl(ISWiInit.obs)\r
+593 __ISWIMsiHandle iswi.obl(ISWiInit.obs)\r
+594 __ISWIUnInit iswi.obl(ISWiInit.obs)\r
+595 __IsArrayEmpty iswi.obl(HelperFuncs.obs)\r
+596 __LoadIScriptString isrt.obl(LoadStr.obs)\r
+597 __Moved iswi.obl(FileTransferFuncsConv.obs)\r
+598 __Moving iswi.obl(FileTransferFuncsConv.obs)\r
+599 __MsiOpenView iswi.obl(CompHelperFuncs.obs)\r
+600 __MsiQueryFeatureState iswi.obl(MsiWrappersConv.obs)\r
+601 __MsiRecordGetString iswi.obl(MsiWrappersConv.obs)\r
+602 __OnAbort iswi.obl(DriverConv.obs)\r
+603 __OnAdminPatch iswi.obl(DriverConv.obs)\r
+604 __OnAdministrativeInstall iswi.obl(DriverConv.obs)\r
+605 __OnAdvertisement iswi.obl(DriverConv.obs)\r
+606 __OnBegin iswi.obl(DriverConv.obs)\r
+607 __OnCanceling iswi.obl(DriverConv.obs)\r
+608 __OnEnd iswi.obl(DriverConv.obs)\r
+609 __OnError iswi.obl(DriverConv.obs)\r
+610 __OnMsiMaintenance iswi.obl(DriverConv.obs)\r
+611 __OnMsiRebooted iswi.obl(DriverConv.obs)\r
+612 __OnMsiSilentInstall iswi.obl(DriverConv.obs)\r
+613 __OnMsiUninstall iswi.obl(DriverConv.obs)\r
+614 __OnPatch iswi.obl(DriverConv.obs)\r
+615 __OnResume iswi.obl(DriverConv.obs)\r
+616 __OnWarning iswi.obl(DriverConv.obs)\r
+617 __ResetMsiObject iswi.obl(ISWiInit.obs)\r
+618 __SetMaintenance iswi.obl(ISWiInit.obs)\r
+619 __SetMsiHandle iswi.obl(SysVarsConv.obs)\r
+620 __SetMsiServer iswi.obl(ISWiInit.obs)\r
+621 __SetPatch iswi.obl(SysVarsConv.obs)\r
+622 __SetSourceDir iswi.obl(SysVarsConv.obs)\r
+623 isrt._ComponentGetData iswi.obl(ComponentConv.obs)\r
+624 isrt._ComponentIsItemSelected iswi.obl(ComponentConv.obs)\r
+625 isrt._ComponentListItems iswi.obl(ComponentConv.obs)\r
+626 isrt._ComponentReinstall iswi.obl(ComponentConv.obs)\r
+627 isrt._ComponentRemoveAll iswi.obl(ComponentConv.obs)\r
+628 isrt._ComponentSelectItem iswi.obl(ComponentConv.obs)\r
+629 isrt._ComponentSetupTypeSet iswi.obl(ComponentConv.obs)\r
+630 isrt._EnableDialogCache iswi.obl(ISWiInit.obs)\r
+631 kernel32.GetLocalTime iswi.obl(ErrHandler.obs)\r
+632 kernel32.GetWindowsDirectoryA iswi.obl(ErrHandler.obs)\r
+633 msi.MsiCloseHandle iswi.obl(RedirectedMsiFuncsConv.obs)\r
+634 msi.MsiCreateRecord iswi.obl(RedirectedMsiFuncsConv.obs)\r
+635 msi.MsiDatabaseOpenViewA Setup.obs\r
+636 msi.MsiDoActionA Setup.obs\r
+637 msi.MsiGetActiveDatabase iswi.obl(RedirectedMsiFuncsConv.obs)\r
+638 msi.MsiGetProductInfoA Setup.obs\r
+639 msi.MsiGetPropertyA Setup.obs\r
+640 msi.MsiGetSourcePathA Setup.obs\r
+641 msi.MsiGetTargetPathA Setup.obs\r
+642 msi.MsiOpenDatabaseA Setup.obs\r
+643 msi.MsiProcessMessage iswi.obl(RedirectedMsiFuncsConv.obs)\r
+644 msi.MsiQueryFeatureStateA Setup.obs\r
+645 msi.MsiRecordGetInteger iswi.obl(RedirectedMsiFuncsConv.obs)\r
+646 msi.MsiRecordGetStringA Setup.obs\r
+647 msi.MsiRecordSetStringA Setup.obs\r
+648 msi.MsiSetPropertyA Setup.obs\r
+649 msi.MsiSetTargetPathA Setup.obs\r
+650 msi.MsiViewExecute iswi.obl(RedirectedMsiFuncsConv.obs)\r
+651 msi.MsiViewFetch iswi.obl(RedirectedMsiFuncsConv.obs)\r
+652 program iswi.obl(DriverConv.obs)\r
+653 sfc.SRSetRestorePoint Setup.obs\r
\r
\r
***** External Variables *****\r