JwaMsiDefs.pas
上传用户:davidchvip
上传日期:2009-07-28
资源大小:1749k
文件大小:47k
源码类别:

Windows编程

开发平台:

Delphi

  1. {******************************************************************************}
  2. {                                                                       }
  3. { Windows Installer API interface Unit for Object Pascal                       }
  4. {                                                                       }
  5. { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft          }
  6. { Corporation. All Rights Reserved.                                            }
  7. {                 }
  8. { The original file is: msidefs.h, released June 2000. The original Pascal     }
  9. { code is: MsiDefs.pas, released June 2001. The initial developer of the       }
  10. { Pascal code is Marcel van Brakel (brakelm@chello.nl).                        }
  11. {                                                                              }
  12. { Portions created by Marcel van Brakel are Copyright (C) 1999-2001            }
  13. { Marcel van Brakel. All Rights Reserved.                                      }
  14. {                 }
  15. { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI)        }
  16. {                }
  17. { You may retrieve the latest version of this file at the Project JEDI home    }
  18. { page, located at http://delphi-jedi.org or my personal homepage located at   }
  19. { http://members.chello.nl/m.vanbrakel2                                        }
  20. {                }
  21. { The contents of this file are used with permission, subject to the Mozilla   }
  22. { Public License Version 1.1 (the "License"); you may not use this file except }
  23. { in compliance with the License. You may obtain a copy of the License at      }
  24. { http://www.mozilla.org/MPL/MPL-1.1.html                                      }
  25. {                                                                              }
  26. { Software distributed under the License is distributed on an "AS IS" basis,   }
  27. { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
  28. { the specific language governing rights and limitations under the License.    }
  29. {                                                                              }
  30. { Alternatively, the contents of this file may be used under the terms of the  }
  31. { GNU Lesser General Public License (the  "LGPL License"), in which case the   }
  32. { provisions of the LGPL License are applicable instead of those above.        }
  33. { If you wish to allow use of your version of this file only under the terms   }
  34. { of the LGPL License and not to allow others to use your version of this file }
  35. { under the MPL, indicate your decision by deleting  the provisions above and  }
  36. { replace  them with the notice and other provisions required by the LGPL      }
  37. { License.  If you do not delete the provisions above, a recipient may use     }
  38. { your version of this file under either the MPL or the LGPL License.          }
  39. {                 }
  40. { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
  41. {                 }
  42. {******************************************************************************}
  43. unit JwaMsiDefs;
  44. {$WEAKPACKAGEUNIT}
  45. {$HPPEMIT ''}
  46. {$HPPEMIT '#include "msidefs.h"'}
  47. {$HPPEMIT ''}
  48. {$I WINDEFINES.INC}
  49. interface
  50. uses
  51.   JwaWinType;
  52. //------------------------------------------------------------------------------
  53. // INSTALLER PROPERTY DEFINITIONS
  54. //------------------------------------------------------------------------------
  55. const
  56. // Required properties: set in Property table
  57.   IPROPNAME_PRODUCTNAME     = TEXT('ProductName'); // name registered for display
  58.   {$EXTERNALSYM IPROPNAME_PRODUCTNAME}
  59.   IPROPNAME_PRODUCTCODE     = TEXT('ProductCode'); // unique string GUID for product
  60.   {$EXTERNALSYM IPROPNAME_PRODUCTCODE}
  61.   IPROPNAME_PRODUCTVERSION  = TEXT('ProductVersion'); // string product version
  62.   {$EXTERNALSYM IPROPNAME_PRODUCTVERSION}
  63.   IPROPNAME_INSTALLLANGUAGE = TEXT('ProductLanguage'); // install language of product, use to load resources
  64.   {$EXTERNALSYM IPROPNAME_INSTALLLANGUAGE}
  65.   IPROPNAME_MANUFACTURER    = TEXT('Manufacturer'); // name of manufacturer
  66.   {$EXTERNALSYM IPROPNAME_MANUFACTURER}
  67. // Customization properties: set in Property table
  68.   IPROPNAME_UPGRADECODE       = TEXT('UpgradeCode'); // unique string GUID for product family
  69.   {$EXTERNALSYM IPROPNAME_UPGRADECODE}
  70.   IPROPNAME_PIDTEMPLATE       = TEXT('PIDTemplate'); // drives Product ID processing
  71.   {$EXTERNALSYM IPROPNAME_PIDTEMPLATE}
  72.   IPROPNAME_DISKPROMPT        = TEXT('DiskPrompt'); // prompt for CD
  73.   {$EXTERNALSYM IPROPNAME_DISKPROMPT}
  74.   IPROPNAME_LEFTUNIT          = TEXT('LeftUnit'); // name of unit placed to left of number instead of right
  75.   {$EXTERNALSYM IPROPNAME_LEFTUNIT}
  76.   IPROPNAME_ADMIN_PROPERTIES  = TEXT('AdminProperties'); // properties to stuff in admin package
  77.   {$EXTERNALSYM IPROPNAME_ADMIN_PROPERTIES}
  78.   IPROPNAME_DEFAULTUIFONT     = TEXT('DefaultUIFont'); // the font used in the UI if no other font is specified
  79.   {$EXTERNALSYM IPROPNAME_DEFAULTUIFONT}
  80.   IPROPNAME_ALLOWEDPROPERTIES = TEXT('SecureCustomProperties');
  81.   {$EXTERNALSYM IPROPNAME_ALLOWEDPROPERTIES}
  82.   IPROPNAME_ENABLEUSERCONTROL = TEXT('EnableUserControl'); // allows user to specify any public property
  83.   {$EXTERNALSYM IPROPNAME_ENABLEUSERCONTROL}
  84.   IPROPNAME_HIDDEN_PROPERTIES = TEXT('MsiHiddenProperties');  // properties that should not be dumped into the log file
  85.   {$EXTERNALSYM IPROPNAME_HIDDEN_PROPERTIES}  
  86. // Customization properties: set on command-line or in Property table
  87.   IPROPNAME_USERNAME     = TEXT('USERNAME');
  88.   {$EXTERNALSYM IPROPNAME_USERNAME}
  89.   IPROPNAME_COMPANYNAME  = TEXT('COMPANYNAME');
  90.   {$EXTERNALSYM IPROPNAME_COMPANYNAME}
  91.   IPROPNAME_PIDKEY       = TEXT('PIDKEY'); // used with PIDTemplate to form ProductID
  92.   {$EXTERNALSYM IPROPNAME_PIDKEY}
  93.   IPROPNAME_PATCH        = TEXT('PATCH'); // patch package to apply - SET BY INSTALLER
  94.   {$EXTERNALSYM IPROPNAME_PATCH}
  95.   IPROPNAME_TARGETDIR    = TEXT('TARGETDIR'); // target location - defaults to ROOTDRIVE
  96.   {$EXTERNALSYM IPROPNAME_TARGETDIR}
  97.   IPROPNAME_ACTION       = TEXT('ACTION'); // top-level action to perform - default to INSTALL
  98.   {$EXTERNALSYM IPROPNAME_ACTION}
  99.   IPROPNAME_LIMITUI      = TEXT('LIMITUI'); // limit ui level to Basic
  100.   {$EXTERNALSYM IPROPNAME_LIMITUI}
  101.   IPROPNAME_LOGACTION    = TEXT('LOGACTION'); // log only these actions
  102.   {$EXTERNALSYM IPROPNAME_LOGACTION}
  103.   IPROPNAME_ALLUSERS     = TEXT('ALLUSERS'); // install for all users
  104.   {$EXTERNALSYM IPROPNAME_ALLUSERS}
  105.   IPROPNAME_INSTALLLEVEL = TEXT('INSTALLLEVEL');
  106.   {$EXTERNALSYM IPROPNAME_INSTALLLEVEL}
  107.   IPROPNAME_REBOOT       = TEXT('REBOOT'); // force or suppress reboot
  108.   {$EXTERNALSYM IPROPNAME_REBOOT}
  109.   IPROPNAME_REBOOTPROMPT = TEXT('REBOOTPROMPT'); // allow or suppress reboot prompt
  110.   {$EXTERNALSYM IPROPNAME_REBOOTPROMPT}
  111.   IPROPNAME_EXECUTEMODE          = TEXT('EXECUTEMODE'); // NONE or SCRIPT
  112.   {$EXTERNALSYM IPROPNAME_EXECUTEMODE}
  113.   IPROPVALUE_EXECUTEMODE_NONE    = TEXT('NONE'); // do not update system
  114.   {$EXTERNALSYM IPROPVALUE_EXECUTEMODE_NONE}
  115.   IPROPVALUE_EXECUTEMODE_SCRIPT  = TEXT('SCRIPT'); // default - run script to update system
  116.   {$EXTERNALSYM IPROPVALUE_EXECUTEMODE_SCRIPT}
  117.   IPROPNAME_EXECUTEACTION        = TEXT('EXECUTEACTION'); // run action on server side
  118.   {$EXTERNALSYM IPROPNAME_EXECUTEACTION}
  119.   IPROPNAME_SOURCELIST           = TEXT('SOURCELIST');
  120.   {$EXTERNALSYM IPROPNAME_SOURCELIST}
  121.   IPROPNAME_ROOTDRIVE            = TEXT('ROOTDRIVE'); // default drive to install - SET BY INSTALLER
  122.   {$EXTERNALSYM IPROPNAME_ROOTDRIVE}
  123.   IPROPNAME_TRANSFORMS           = TEXT('TRANSFORMS'); // transforms to apply
  124.   {$EXTERNALSYM IPROPNAME_TRANSFORMS}
  125.   IPROPNAME_TRANSFORMSATSOURCE   = TEXT('TRANSFORMSATSOURCE'); // transforms can be found at source
  126.   {$EXTERNALSYM IPROPNAME_TRANSFORMSATSOURCE}
  127.   IPROPNAME_TRANSFORMSSECURE     = TEXT('TRANSFORMSSECURE'); // file transforms are secured
  128.   {$EXTERNALSYM IPROPNAME_TRANSFORMSSECURE}
  129.   IPROPNAME_SEQUENCE             = TEXT('SEQUENCE'); // sequence table to run with SEQUENCE action
  130.   {$EXTERNALSYM IPROPNAME_SEQUENCE}
  131.   IPROPNAME_SHORTFILENAMES       = TEXT('SHORTFILENAMES'); // force short file names
  132.   {$EXTERNALSYM IPROPNAME_SHORTFILENAMES}
  133.   IPROPNAME_PRIMARYFOLDER        = TEXT('PRIMARYFOLDER'); // Folder on the volume the author wants costing info for
  134.   {$EXTERNALSYM IPROPNAME_PRIMARYFOLDER}
  135.   IPROPNAME_AFTERREBOOT          = TEXT('AFTERREBOOT'); // install is after a ForceReboot triggered reboot
  136.   {$EXTERNALSYM IPROPNAME_AFTERREBOOT}
  137.   IPROPNAME_NOCOMPANYNAME        = TEXT('NOCOMPANYNAME');
  138.   {$EXTERNALSYM IPROPNAME_NOCOMPANYNAME}
  139.   IPROPNAME_NOUSERNAME           = TEXT('NOUSERNAME');
  140.   {$EXTERNALSYM IPROPNAME_NOUSERNAME}
  141.   IPROPNAME_DISABLEROLLBACK      = TEXT('DISABLEROLLBACK'); // disable rollback for this install
  142.   {$EXTERNALSYM IPROPNAME_DISABLEROLLBACK}
  143.   IPROPNAME_AVAILABLEFREEREG     = TEXT('AVAILABLEFREEREG'); // set up the free space in the registry before commencing the install
  144.   {$EXTERNALSYM IPROPNAME_AVAILABLEFREEREG}
  145.   IPROPNAME_DISABLEADVTSHORTCUTS = TEXT('DISABLEADVTSHORTCUTS'); // disable creating darwin shortcuts even if supported
  146.   {$EXTERNALSYM IPROPNAME_DISABLEADVTSHORTCUTS}
  147.   IPROPNAME_PATCHNEWPACKAGECODE  = TEXT('PATCHNEWPACKAGECODE'); // added to property table by patch transforms - used to update
  148.   {$EXTERNALSYM IPROPNAME_PATCHNEWPACKAGECODE}
  149.   // PackageCode of admin packages when patching admin installs
  150.   IPROPNAME_PATCHNEWSUMMARYSUBJECT = TEXT('PATCHNEWSUMMARYSUBJECT'); // added to property table by patch transforms - used to update
  151.   {$EXTERNALSYM IPROPNAME_PATCHNEWSUMMARYSUBJECT}
  152.   // Subject summary info property of admin packages when patching admin installs
  153.   IPROPNAME_PATCHNEWSUMMARYCOMMENTS = TEXT('PATCHNEWSUMMARYCOMMENTS'); // added to property table by patch transforms - used to update
  154.   {$EXTERNALSYM IPROPNAME_PATCHNEWSUMMARYCOMMENTS}
  155.   // Comments summary info property of admin packages when patching admin installs
  156.   IPROPNAME_PRODUCTLANGUAGE = TEXT('PRODUCTLANGUAGE'); // requested language, must be one in summary information list, selects language transform
  157.   {$EXTERNALSYM IPROPNAME_PRODUCTLANGUAGE}
  158.   IPROPNAME_CHECKCRCS         = TEXT('MSICHECKCRCS');       // requests Darwin to check CRCs after copying, moving, patching & duplicating files.
  159.   {$EXTERNALSYM IPROPNAME_CHECKCRCS}
  160.   IPROPNAME_MSINODISABLEMEDIA = TEXT('MSINODISABLEMEDIA');  // if set, DISABLEMEDIA won't be set in the AdminProperties stream during an admin install of
  161.   {$EXTERNALSYM IPROPNAME_MSINODISABLEMEDIA}                // a package with compressed source
  162. // property used for URT bootstrapping
  163.   IPROPNAME_CARRYINGNDP                 = TEXT('CARRYINGNDP');
  164.   {$EXTERNALSYM IPROPNAME_CARRYINGNDP}
  165.   IPROPVALUE__CARRYINGNDP_URTREINSTALL  = TEXT('URTREINSTALL');   // reinstalling/ uninstalling core URT files
  166.   {$EXTERNALSYM IPROPVALUE__CARRYINGNDP_URTREINSTALL}
  167.   IPROPVALUE__CARRYINGNDP_URTUPGRADE    = TEXT('URTUPGRADE');     // upgrading core URT files
  168.   {$EXTERNALSYM IPROPVALUE__CARRYINGNDP_URTUPGRADE}
  169. // property used for multiple instance support
  170.   IPROPNAME_MSINEWINSTANCE = TEXT('MSINEWINSTANCE');
  171.   {$EXTERNALSYM IPROPNAME_MSINEWINSTANCE}
  172.   IPROPNAME_MSIINSTANCEGUID = TEXT('MSIINSTANCEGUID');
  173.   {$EXTERNALSYM IPROPNAME_MSIINSTANCEGUID}
  174. // Properties used to populate Add/Remove Control Panel values
  175.   IPROPNAME_ARPAUTHORIZEDCDFPREFIX = TEXT('ARPAUTHORIZEDCDFPREFIX');
  176.   {$EXTERNALSYM IPROPNAME_ARPAUTHORIZEDCDFPREFIX}
  177.   IPROPNAME_ARPCOMMENTS            = TEXT('ARPCOMMENTS');
  178.   {$EXTERNALSYM IPROPNAME_ARPCOMMENTS}
  179.   IPROPNAME_ARPCONTACT             = TEXT('ARPCONTACT');
  180.   {$EXTERNALSYM IPROPNAME_ARPCONTACT}
  181.   IPROPNAME_ARPHELPLINK            = TEXT('ARPHELPLINK');
  182.   {$EXTERNALSYM IPROPNAME_ARPHELPLINK}
  183.   IPROPNAME_ARPHELPTELEPHONE       = TEXT('ARPHELPTELEPHONE');
  184.   {$EXTERNALSYM IPROPNAME_ARPHELPTELEPHONE}
  185.   IPROPNAME_ARPINSTALLLOCATION     = TEXT('ARPINSTALLLOCATION');
  186.   {$EXTERNALSYM IPROPNAME_ARPINSTALLLOCATION}
  187.   IPROPNAME_ARPNOMODIFY            = TEXT('ARPNOMODIFY');
  188.   {$EXTERNALSYM IPROPNAME_ARPNOMODIFY}
  189.   IPROPNAME_ARPNOREMOVE            = TEXT('ARPNOREMOVE');
  190.   {$EXTERNALSYM IPROPNAME_ARPNOREMOVE}
  191.   IPROPNAME_ARPNOREPAIR            = TEXT('ARPNOREPAIR');
  192.   {$EXTERNALSYM IPROPNAME_ARPNOREPAIR}
  193.   IPROPNAME_ARPREADME              = TEXT('ARPREADME');
  194.   {$EXTERNALSYM IPROPNAME_ARPREADME}
  195.   IPROPNAME_ARPSIZE                = TEXT('ARPSIZE');
  196.   {$EXTERNALSYM IPROPNAME_ARPSIZE}
  197.   IPROPNAME_ARPSYSTEMCOMPONENT     = TEXT('ARPSYSTEMCOMPONENT');
  198.   {$EXTERNALSYM IPROPNAME_ARPSYSTEMCOMPONENT}
  199.   IPROPNAME_ARPURLINFOABOUT        = TEXT('ARPURLINFOABOUT');
  200.   {$EXTERNALSYM IPROPNAME_ARPURLINFOABOUT}
  201.   IPROPNAME_ARPURLUPDATEINFO       = TEXT('ARPURLUPDATEINFO');
  202.   {$EXTERNALSYM IPROPNAME_ARPURLUPDATEINFO}
  203.   IPROPNAME_ARPPRODUCTICON = TEXT('ARPPRODUCTICON');
  204.   {$EXTERNALSYM IPROPNAME_ARPPRODUCTICON}
  205. // Dynamic properties set by installer during install
  206.   IPROPNAME_INSTALLED                    = TEXT('Installed'); // product already installed
  207.   {$EXTERNALSYM IPROPNAME_INSTALLED}
  208.   IPROPNAME_PRODUCTSTATE                 = TEXT('ProductState'); // state of product (installed,advertised,etc...)
  209.   {$EXTERNALSYM IPROPNAME_PRODUCTSTATE}
  210.   IPROPNAME_PRESELECTED                  = TEXT('Preselected'); // selections made on command line
  211.   {$EXTERNALSYM IPROPNAME_PRESELECTED}
  212.   IPROPNAME_RESUME                       = TEXT('RESUME'); // resuming suspended install
  213.   {$EXTERNALSYM IPROPNAME_RESUME}
  214.   IPROPNAME_UPDATESTARTED                = TEXT('UpdateStarted'); // have begun to update system
  215.   {$EXTERNALSYM IPROPNAME_UPDATESTARTED}
  216.   IPROPNAME_PRODUCTID                    = TEXT('ProductID'); // the complete validated Product ID
  217.   {$EXTERNALSYM IPROPNAME_PRODUCTID}
  218.   IPROPNAME_OUTOFDISKSPACE               = TEXT('OutOfDiskSpace');
  219.   {$EXTERNALSYM IPROPNAME_OUTOFDISKSPACE}
  220.   IPROPNAME_OUTOFNORBDISKSPACE           = TEXT('OutOfNoRbDiskSpace');
  221.   {$EXTERNALSYM IPROPNAME_OUTOFNORBDISKSPACE}
  222.   IPROPNAME_COSTINGCOMPLETE              = TEXT('CostingComplete');
  223.   {$EXTERNALSYM IPROPNAME_COSTINGCOMPLETE}
  224.   IPROPNAME_SOURCEDIR                    = TEXT('SourceDir'); // source location - SET BY INSTALLER
  225.   {$EXTERNALSYM IPROPNAME_SOURCEDIR}
  226.   IPROPNAME_REPLACEDINUSEFILES           = TEXT('ReplacedInUseFiles'); // need reboot to completely install one or more files
  227.   {$EXTERNALSYM IPROPNAME_REPLACEDINUSEFILES}
  228.   IPROPNAME_PRIMARYFOLDER_PATH           = TEXT('PrimaryVolumePath');
  229.   {$EXTERNALSYM IPROPNAME_PRIMARYFOLDER_PATH}
  230.   IPROPNAME_PRIMARYFOLDER_SPACEAVAILABLE = TEXT('PrimaryVolumeSpaceAvailable');
  231.   {$EXTERNALSYM IPROPNAME_PRIMARYFOLDER_SPACEAVAILABLE}
  232.   IPROPNAME_PRIMARYFOLDER_SPACEREQUIRED  = TEXT('PrimaryVolumeSpaceRequired');
  233.   {$EXTERNALSYM IPROPNAME_PRIMARYFOLDER_SPACEREQUIRED}
  234.   IPROPNAME_PRIMARYFOLDER_SPACEREMAINING = TEXT('PrimaryVolumeSpaceRemaining');
  235.   {$EXTERNALSYM IPROPNAME_PRIMARYFOLDER_SPACEREMAINING}
  236.   IPROPNAME_ISADMINPACKAGE               = TEXT('IsAdminPackage');
  237.   {$EXTERNALSYM IPROPNAME_ISADMINPACKAGE}
  238.   IPROPNAME_ROLLBACKDISABLED             = TEXT('RollbackDisabled');
  239.   {$EXTERNALSYM IPROPNAME_ROLLBACKDISABLED}
  240.   IPROPNAME_RESTRICTEDUSERCONTROL        = TEXT('RestrictedUserControl');
  241.   {$EXTERNALSYM IPROPNAME_RESTRICTEDUSERCONTROL}
  242. // Dynamic properties evaluated upon use
  243.   IPROPNAME_TIME     = TEXT('Time');
  244.   {$EXTERNALSYM IPROPNAME_TIME}
  245.   IPROPNAME_DATE     = TEXT('Date');
  246.   {$EXTERNALSYM IPROPNAME_DATE}
  247.   IPROPNAME_DATETIME = TEXT('DateTime');
  248.   {$EXTERNALSYM IPROPNAME_DATETIME}
  249. // Hardware properties: set by installer at initialization
  250.   IPROPNAME_INTEL = TEXT('Intel');
  251.   {$EXTERNALSYM IPROPNAME_INTEL}
  252. //#if (_WIN32_MSI >= 150)
  253.   IPROPNAME_AMD64          = TEXT('AMD64');
  254.   {$EXTERNALSYM IPROPNAME_AMD64}
  255.   IPROPNAME_INTEL64        = TEXT('Intel64');
  256.   {$EXTERNALSYM IPROPNAME_INTEL64}
  257. //#else // (_WIN32_MSI >= 150)
  258.   IPROPNAME_IA64           = TEXT('IA64');
  259.   {$EXTERNALSYM IPROPNAME_IA64}
  260. //#endif // (_WIN32_MSI >= 150)
  261.   IPROPNAME_TEXTHEIGHT     = TEXT('TextHeight');
  262.   {$EXTERNALSYM IPROPNAME_TEXTHEIGHT}
  263.   IPROPNAME_SCREENX        = TEXT('ScreenX');
  264.   {$EXTERNALSYM IPROPNAME_SCREENX}
  265.   IPROPNAME_SCREENY        = TEXT('ScreenY');
  266.   {$EXTERNALSYM IPROPNAME_SCREENY}
  267.   IPROPNAME_CAPTIONHEIGHT  = TEXT('CaptionHeight');
  268.   {$EXTERNALSYM IPROPNAME_CAPTIONHEIGHT}
  269.   IPROPNAME_BORDERTOP      = TEXT('BorderTop');
  270.   {$EXTERNALSYM IPROPNAME_BORDERTOP}
  271.   IPROPNAME_BORDERSIDE     = TEXT('BorderSide');
  272.   {$EXTERNALSYM IPROPNAME_BORDERSIDE}
  273.   IPROPNAME_COLORBITS      = TEXT('ColorBits');
  274.   {$EXTERNALSYM IPROPNAME_COLORBITS}
  275.   IPROPNAME_PHYSICALMEMORY = TEXT('PhysicalMemory');
  276.   {$EXTERNALSYM IPROPNAME_PHYSICALMEMORY}
  277.   IPROPNAME_VIRTUALMEMORY  = TEXT('VirtualMemory');
  278.   {$EXTERNALSYM IPROPNAME_VIRTUALMEMORY}
  279.   IPROPNAME_TEXTHEIGHT_CORRECTION = TEXT('TextHeightCorrection');
  280.   {$EXTERNALSYM IPROPNAME_TEXTHEIGHT_CORRECTION}
  281. // Operating System properties: set by installer at initialization
  282.   IPROPNAME_VERSIONNT        = TEXT('VersionNT');
  283.   {$EXTERNALSYM IPROPNAME_VERSIONNT}
  284.   IPROPNAME_VERSION9X        = TEXT('Version9X');
  285.   {$EXTERNALSYM IPROPNAME_VERSION9X}
  286.   IPROPNAME_VERSIONNT64      = TEXT('VersionNT64');
  287.   {$EXTERNALSYM IPROPNAME_VERSIONNT64}
  288.   IPROPNAME_WINDOWSBUILD     = TEXT('WindowsBuild');
  289.   {$EXTERNALSYM IPROPNAME_WINDOWSBUILD}
  290.   IPROPNAME_SERVICEPACKLEVEL = TEXT('ServicePackLevel');
  291.   {$EXTERNALSYM IPROPNAME_SERVICEPACKLEVEL}
  292.   IPROPNAME_SERVICEPACKLEVELMINOR = TEXT('ServicePackLevelMinor');
  293.   {$EXTERNALSYM IPROPNAME_SERVICEPACKLEVELMINOR}
  294.   IPROPNAME_SHAREDWINDOWS    = TEXT('SharedWindows');
  295.   {$EXTERNALSYM IPROPNAME_SHAREDWINDOWS}
  296.   IPROPNAME_COMPUTERNAME     = TEXT('ComputerName');
  297.   {$EXTERNALSYM IPROPNAME_COMPUTERNAME}
  298.   IPROPNAME_SHELLADVTSUPPORT = TEXT('ShellAdvtSupport');
  299.   {$EXTERNALSYM IPROPNAME_SHELLADVTSUPPORT}
  300.   IPROPNAME_OLEADVTSUPPORT   = TEXT('OLEAdvtSupport');
  301.   {$EXTERNALSYM IPROPNAME_OLEADVTSUPPORT}
  302.   IPROPNAME_SYSTEMLANGUAGEID = TEXT('SystemLanguageID');
  303.   {$EXTERNALSYM IPROPNAME_SYSTEMLANGUAGEID}
  304.   IPROPNAME_TTCSUPPORT       = TEXT('TTCSupport');
  305.   {$EXTERNALSYM IPROPNAME_TTCSUPPORT}
  306.   IPROPNAME_TERMSERVER       = TEXT('TerminalServer');
  307.   {$EXTERNALSYM IPROPNAME_TERMSERVER}
  308.   IPROPNAME_REMOTEADMINTS        = TEXT('RemoteAdminTS');
  309.   {$EXTERNALSYM IPROPNAME_REMOTEADMINTS}
  310.   IPROPNAME_REDIRECTEDDLLSUPPORT = TEXT('RedirectedDllSupport');
  311.   {$EXTERNALSYM IPROPNAME_REDIRECTEDDLLSUPPORT}
  312.   IPROPNAME_NTPRODUCTTYPE                  = TEXT('MsiNTProductType');
  313.   {$EXTERNALSYM IPROPNAME_NTPRODUCTTYPE}
  314.   IPROPNAME_NTSUITEBACKOFFICE              = TEXT('MsiNTSuiteBackOffice');
  315.   {$EXTERNALSYM IPROPNAME_NTSUITEBACKOFFICE}
  316.   IPROPNAME_NTSUITEDATACENTER              = TEXT('MsiNTSuiteDataCenter');
  317.   {$EXTERNALSYM IPROPNAME_NTSUITEDATACENTER}
  318.   IPROPNAME_NTSUITEENTERPRISE              = TEXT('MsiNTSuiteEnterprise');
  319.   {$EXTERNALSYM IPROPNAME_NTSUITEENTERPRISE}
  320.   IPROPNAME_NTSUITESMALLBUSINESS           = TEXT('MsiNTSuiteSmallBusiness');
  321.   {$EXTERNALSYM IPROPNAME_NTSUITESMALLBUSINESS}
  322.   IPROPNAME_NTSUITESMALLBUSINESSRESTRICTED = TEXT('MsiNTSuiteSmallBusinessRestricted');
  323.   {$EXTERNALSYM IPROPNAME_NTSUITESMALLBUSINESSRESTRICTED}
  324.   IPROPNAME_NTSUITEPERSONAL                = TEXT('MsiNTSuitePersonal');
  325.   {$EXTERNALSYM IPROPNAME_NTSUITEPERSONAL}
  326.   IPROPNAME_NTSUITEWEBSERVER               = TEXT('MsiNTSuiteWebServer');
  327.   {$EXTERNALSYM IPROPNAME_NTSUITEWEBSERVER}
  328.   IPROPNAME_NETASSEMBLYSUPPORT             = TEXT('MsiNetAssemblySupport');
  329.   {$EXTERNALSYM IPROPNAME_NETASSEMBLYSUPPORT}
  330.   IPROPNAME_WIN32ASSEMBLYSUPPORT           = TEXT('MsiWin32AssemblySupport');
  331.   {$EXTERNALSYM IPROPNAME_WIN32ASSEMBLYSUPPORT}
  332. // User properties: set by installer at initialization
  333.   IPROPNAME_LOGONUSER      = TEXT('LogonUser');
  334.   {$EXTERNALSYM IPROPNAME_LOGONUSER}
  335.   IPROPNAME_USERSID        = TEXT('UserSID');
  336.   {$EXTERNALSYM IPROPNAME_USERSID}
  337.   IPROPNAME_ADMINUSER      = TEXT('AdminUser');
  338.   {$EXTERNALSYM IPROPNAME_ADMINUSER}
  339.   IPROPNAME_USERLANGUAGEID = TEXT('UserLanguageID');
  340.   {$EXTERNALSYM IPROPNAME_USERLANGUAGEID}
  341.   IPROPNAME_PRIVILEGED     = TEXT('Privileged');
  342.   {$EXTERNALSYM IPROPNAME_PRIVILEGED}
  343. // System folder properties: set by installer at initialization
  344.   IPROPNAME_WINDOWS_FOLDER      = TEXT('WindowsFolder');
  345.   {$EXTERNALSYM IPROPNAME_WINDOWS_FOLDER}
  346.   IPROPNAME_SYSTEM_FOLDER       = TEXT('SystemFolder');
  347.   {$EXTERNALSYM IPROPNAME_SYSTEM_FOLDER}
  348.   IPROPNAME_SYSTEM16_FOLDER     = TEXT('System16Folder');
  349.   {$EXTERNALSYM IPROPNAME_SYSTEM16_FOLDER}
  350.   IPROPNAME_WINDOWS_VOLUME      = TEXT('WindowsVolume');
  351.   {$EXTERNALSYM IPROPNAME_WINDOWS_VOLUME}
  352.   IPROPNAME_TEMP_FOLDER         = TEXT('TempFolder');
  353.   {$EXTERNALSYM IPROPNAME_TEMP_FOLDER}
  354.   IPROPNAME_PROGRAMFILES_FOLDER = TEXT('ProgramFilesFolder');
  355.   {$EXTERNALSYM IPROPNAME_PROGRAMFILES_FOLDER}
  356.   IPROPNAME_COMMONFILES_FOLDER  = TEXT('CommonFilesFolder');
  357.   {$EXTERNALSYM IPROPNAME_COMMONFILES_FOLDER}
  358.   IPROPNAME_SYSTEM64_FOLDER     = TEXT('System64Folder');
  359.   {$EXTERNALSYM IPROPNAME_SYSTEM64_FOLDER}
  360.   IPROPNAME_PROGRAMFILES64_FOLDER = TEXT('ProgramFiles64Folder');
  361.   {$EXTERNALSYM IPROPNAME_PROGRAMFILES64_FOLDER}
  362.   IPROPNAME_COMMONFILES64_FOLDER = TEXT('CommonFiles64Folder');
  363.   {$EXTERNALSYM IPROPNAME_COMMONFILES64_FOLDER}
  364.   IPROPNAME_STARTMENU_FOLDER    = TEXT('StartMenuFolder');
  365.   {$EXTERNALSYM IPROPNAME_STARTMENU_FOLDER}
  366.   IPROPNAME_PROGRAMMENU_FOLDER  = TEXT('ProgramMenuFolder');
  367.   {$EXTERNALSYM IPROPNAME_PROGRAMMENU_FOLDER}
  368.   IPROPNAME_STARTUP_FOLDER      = TEXT('StartupFolder');
  369.   {$EXTERNALSYM IPROPNAME_STARTUP_FOLDER}
  370.   IPROPNAME_NETHOOD_FOLDER      = TEXT('NetHoodFolder');
  371.   {$EXTERNALSYM IPROPNAME_NETHOOD_FOLDER}
  372.   IPROPNAME_PERSONAL_FOLDER     = TEXT('PersonalFolder');
  373.   {$EXTERNALSYM IPROPNAME_PERSONAL_FOLDER}
  374.   IPROPNAME_SENDTO_FOLDER       = TEXT('SendToFolder');
  375.   {$EXTERNALSYM IPROPNAME_SENDTO_FOLDER}
  376.   IPROPNAME_DESKTOP_FOLDER      = TEXT('DesktopFolder');
  377.   {$EXTERNALSYM IPROPNAME_DESKTOP_FOLDER}
  378.   IPROPNAME_TEMPLATE_FOLDER     = TEXT('TemplateFolder');
  379.   {$EXTERNALSYM IPROPNAME_TEMPLATE_FOLDER}
  380.   IPROPNAME_FONTS_FOLDER        = TEXT('FontsFolder');
  381.   {$EXTERNALSYM IPROPNAME_FONTS_FOLDER}
  382.   IPROPNAME_FAVORITES_FOLDER    = TEXT('FavoritesFolder');
  383.   {$EXTERNALSYM IPROPNAME_FAVORITES_FOLDER}
  384.   IPROPNAME_RECENT_FOLDER       = TEXT('RecentFolder');
  385.   {$EXTERNALSYM IPROPNAME_RECENT_FOLDER}
  386.   IPROPNAME_APPDATA_FOLDER      = TEXT('AppDataFolder');
  387.   {$EXTERNALSYM IPROPNAME_APPDATA_FOLDER}
  388.   IPROPNAME_PRINTHOOD_FOLDER    = TEXT('PrintHoodFolder');
  389.   {$EXTERNALSYM IPROPNAME_PRINTHOOD_FOLDER}
  390.   IPROPNAME_ADMINTOOLS_FOLDER    = TEXT('AdminToolsFolder');
  391.   {$EXTERNALSYM IPROPNAME_ADMINTOOLS_FOLDER}
  392.   IPROPNAME_COMMONAPPDATA_FOLDER = TEXT('CommonAppDataFolder');
  393.   {$EXTERNALSYM IPROPNAME_COMMONAPPDATA_FOLDER}
  394.   IPROPNAME_LOCALAPPDATA_FOLDER  = TEXT('LocalAppDataFolder');
  395.   {$EXTERNALSYM IPROPNAME_LOCALAPPDATA_FOLDER}
  396.   IPROPNAME_MYPICTURES_FOLDER    = TEXT('MyPicturesFolder');
  397.   {$EXTERNALSYM IPROPNAME_MYPICTURES_FOLDER}
  398. // Feature/Component installation properties: set on command-line
  399.   IPROPNAME_FEATUREADDLOCAL   = TEXT('ADDLOCAL');
  400.   {$EXTERNALSYM IPROPNAME_FEATUREADDLOCAL}
  401.   IPROPNAME_FEATUREADDSOURCE  = TEXT('ADDSOURCE');
  402.   {$EXTERNALSYM IPROPNAME_FEATUREADDSOURCE}
  403.   IPROPNAME_FEATUREADDDEFAULT = TEXT('ADDDEFAULT');
  404.   {$EXTERNALSYM IPROPNAME_FEATUREADDDEFAULT}
  405.   IPROPNAME_FEATUREREMOVE     = TEXT('REMOVE');
  406.   {$EXTERNALSYM IPROPNAME_FEATUREREMOVE}
  407.   IPROPNAME_FEATUREADVERTISE  = TEXT('ADVERTISE');
  408.   {$EXTERNALSYM IPROPNAME_FEATUREADVERTISE}
  409.   IPROPVALUE_FEATURE_ALL      = TEXT('ALL');
  410.   {$EXTERNALSYM IPROPVALUE_FEATURE_ALL}
  411.   IPROPNAME_COMPONENTADDLOCAL   = TEXT('COMPADDLOCAL');
  412.   {$EXTERNALSYM IPROPNAME_COMPONENTADDLOCAL}
  413.   IPROPNAME_COMPONENTADDSOURCE  = TEXT('COMPADDSOURCE');
  414.   {$EXTERNALSYM IPROPNAME_COMPONENTADDSOURCE}
  415.   IPROPNAME_COMPONENTADDDEFAULT = TEXT('COMPADDDEFAULT');
  416.   {$EXTERNALSYM IPROPNAME_COMPONENTADDDEFAULT}
  417.   IPROPNAME_FILEADDLOCAL   = TEXT('FILEADDLOCAL');
  418.   {$EXTERNALSYM IPROPNAME_FILEADDLOCAL}
  419.   IPROPNAME_FILEADDSOURCE  = TEXT('FILEADDSOURCE');
  420.   {$EXTERNALSYM IPROPNAME_FILEADDSOURCE}
  421.   IPROPNAME_FILEADDDEFAULT = TEXT('FILEADDDEFAULT');
  422.   {$EXTERNALSYM IPROPNAME_FILEADDDEFAULT}
  423.   IPROPNAME_REINSTALL          = TEXT('REINSTALL');
  424.   {$EXTERNALSYM IPROPNAME_REINSTALL}
  425.   IPROPNAME_REINSTALLMODE      = TEXT('REINSTALLMODE');
  426.   {$EXTERNALSYM IPROPNAME_REINSTALLMODE}
  427.   IPROPNAME_PROMPTROLLBACKCOST = TEXT('PROMPTROLLBACKCOST');
  428.   {$EXTERNALSYM IPROPNAME_PROMPTROLLBACKCOST}
  429.   IPROPVALUE_RBCOST_PROMPT     = TEXT('P');
  430.   {$EXTERNALSYM IPROPVALUE_RBCOST_PROMPT}
  431.   IPROPVALUE_RBCOST_SILENT     = TEXT('D');
  432.   {$EXTERNALSYM IPROPVALUE_RBCOST_SILENT}
  433.   IPROPVALUE_RBCOST_FAIL       = TEXT('F');
  434.   {$EXTERNALSYM IPROPVALUE_RBCOST_FAIL}
  435. // Property for custom actions to communicate
  436.   IPROPNAME_CUSTOMACTIONDATA = TEXT('CustomActionData');
  437.   {$EXTERNALSYM IPROPNAME_CUSTOMACTIONDATA}
  438. //------------------------------------------------------------------------------
  439. // TOP-LEVEL ACTION NAMES
  440. //------------------------------------------------------------------------------
  441.   IACTIONNAME_INSTALL         = TEXT('INSTALL');
  442.   {$EXTERNALSYM IACTIONNAME_INSTALL}
  443.   IACTIONNAME_ADVERTISE       = TEXT('ADVERTISE');
  444.   {$EXTERNALSYM IACTIONNAME_ADVERTISE}
  445.   IACTIONNAME_ADMIN           = TEXT('ADMIN');
  446.   {$EXTERNALSYM IACTIONNAME_ADMIN}
  447.   IACTIONNAME_SEQUENCE        = TEXT('SEQUENCE');
  448.   {$EXTERNALSYM IACTIONNAME_SEQUENCE}
  449.   IACTIONNAME_COLLECTUSERINFO = TEXT('CollectUserInfo');
  450.   {$EXTERNALSYM IACTIONNAME_COLLECTUSERINFO}
  451.   IACTIONNAME_FIRSTRUN        = TEXT('FirstRun');
  452.   {$EXTERNALSYM IACTIONNAME_FIRSTRUN}
  453. //------------------------------------------------------------------------------
  454. //  SummaryInformation property stream property IDs
  455. //------------------------------------------------------------------------------
  456. // standard property definitions, from OLE2 documentation
  457.   PID_DICTIONARY   = 0; // integer count + array of entries
  458.   {$EXTERNALSYM PID_DICTIONARY}
  459.   PID_CODEPAGE     = 1; // short integer
  460.   {$EXTERNALSYM PID_CODEPAGE}
  461.   PID_TITLE        = 2; // string
  462.   {$EXTERNALSYM PID_TITLE}
  463.   PID_SUBJECT      = 3; // string
  464.   {$EXTERNALSYM PID_SUBJECT}
  465.   PID_AUTHOR       = 4; // string
  466.   {$EXTERNALSYM PID_AUTHOR}
  467.   PID_KEYWORDS     = 5; // string
  468.   {$EXTERNALSYM PID_KEYWORDS}
  469.   PID_COMMENTS     = 6; // string
  470.   {$EXTERNALSYM PID_COMMENTS}
  471.   PID_TEMPLATE     = 7; // string
  472.   {$EXTERNALSYM PID_TEMPLATE}
  473.   PID_LASTAUTHOR   = 8; // string
  474.   {$EXTERNALSYM PID_LASTAUTHOR}
  475.   PID_REVNUMBER    = 9; // string
  476.   {$EXTERNALSYM PID_REVNUMBER}
  477.   PID_EDITTIME     = 10; // datatime
  478.   {$EXTERNALSYM PID_EDITTIME}
  479.   PID_LASTPRINTED  = 11; // datetime
  480.   {$EXTERNALSYM PID_LASTPRINTED}
  481.   PID_CREATE_DTM   = 12; // datetime
  482.   {$EXTERNALSYM PID_CREATE_DTM}
  483.   PID_LASTSAVE_DTM = 13; // datetime
  484.   {$EXTERNALSYM PID_LASTSAVE_DTM}
  485.   PID_PAGECOUNT    = 14; // integer
  486.   {$EXTERNALSYM PID_PAGECOUNT}
  487.   PID_WORDCOUNT    = 15; // integer
  488.   {$EXTERNALSYM PID_WORDCOUNT}
  489.   PID_CHARCOUNT    = 16; // integer
  490.   {$EXTERNALSYM PID_CHARCOUNT}
  491.   PID_THUMBNAIL    = 17; // clipboard format + metafile/bitmap (not supported)
  492.   {$EXTERNALSYM PID_THUMBNAIL}
  493.   PID_APPNAME      = 18; // string
  494.   {$EXTERNALSYM PID_APPNAME}
  495.   PID_SECURITY     = 19; // integer
  496.   {$EXTERNALSYM PID_SECURITY}
  497. // PIDs given specific meanings for Installer
  498.   PID_MSIVERSION  = PID_PAGECOUNT; // integer, Installer version number (major*100+minor)
  499.   {$EXTERNALSYM PID_MSIVERSION}
  500.   PID_MSISOURCE   = PID_WORDCOUNT; // integer, type of file image, short/long, media/tree
  501.   {$EXTERNALSYM PID_MSISOURCE}
  502.   PID_MSIRESTRICT = PID_CHARCOUNT; // integer, transform restrictions
  503.   {$EXTERNALSYM PID_MSIRESTRICT}
  504. //------------------------------------------------------------------------------
  505. // INSTALLER DATABASE INTEGER COLUMN DEFINITIONS
  506. //------------------------------------------------------------------------------
  507. // BBControl.Attributes
  508. // Control.Attributes
  509. type
  510.   msidbControlAttributes = DWORD;
  511.   {$EXTERNALSYM msidbControlAttributes}
  512. const
  513.   msidbControlAttributesVisible            = $00000001;
  514.   {$EXTERNALSYM msidbControlAttributesVisible}
  515.   msidbControlAttributesEnabled            = $00000002;
  516.   {$EXTERNALSYM msidbControlAttributesEnabled}
  517.   msidbControlAttributesSunken             = $00000004;
  518.   {$EXTERNALSYM msidbControlAttributesSunken}
  519.   msidbControlAttributesIndirect           = $00000008;
  520.   {$EXTERNALSYM msidbControlAttributesIndirect}
  521.   msidbControlAttributesInteger            = $00000010;
  522.   {$EXTERNALSYM msidbControlAttributesInteger}
  523.   msidbControlAttributesRTLRO              = $00000020;
  524.   {$EXTERNALSYM msidbControlAttributesRTLRO}
  525.   msidbControlAttributesRightAligned       = $00000040;
  526.   {$EXTERNALSYM msidbControlAttributesRightAligned}
  527.   msidbControlAttributesLeftScroll         = $00000080;
  528.   {$EXTERNALSYM msidbControlAttributesLeftScroll}
  529.   msidbControlAttributesBiDi               = msidbControlAttributesRTLRO or
  530.     msidbControlAttributesRightAligned or msidbControlAttributesLeftScroll;
  531.   {$EXTERNALSYM msidbControlAttributesBiDi}
  532.   // Text controls
  533.   msidbControlAttributesTransparent       = $00010000;
  534.   {$EXTERNALSYM msidbControlAttributesTransparent}
  535.   msidbControlAttributesNoPrefix          = $00020000;
  536.   {$EXTERNALSYM msidbControlAttributesNoPrefix}
  537.   msidbControlAttributesNoWrap            = $00040000;
  538.   {$EXTERNALSYM msidbControlAttributesNoWrap}
  539.   msidbControlAttributesFormatSize        = $00080000;
  540.   {$EXTERNALSYM msidbControlAttributesFormatSize}
  541.   msidbControlAttributesUsersLanguage     = $00100000;
  542.   {$EXTERNALSYM msidbControlAttributesUsersLanguage}
  543.   // Edit controls
  544.   msidbControlAttributesMultiline         = $00010000;
  545.   {$EXTERNALSYM msidbControlAttributesMultiline}
  546.   msidbControlAttributesPasswordInput     = $00200000;
  547.   {$EXTERNALSYM msidbControlAttributesPasswordInput}
  548.   // ProgressBar controls
  549.   msidbControlAttributesProgress95        = $00010000;
  550.   {$EXTERNALSYM msidbControlAttributesProgress95}
  551.   // VolumeSelectCombo and DirectoryCombo controls
  552.   msidbControlAttributesRemovableVolume   = $00010000;
  553.   {$EXTERNALSYM msidbControlAttributesRemovableVolume}
  554.   msidbControlAttributesFixedVolume       = $00020000;
  555.   {$EXTERNALSYM msidbControlAttributesFixedVolume}
  556.   msidbControlAttributesRemoteVolume      = $00040000;
  557.   {$EXTERNALSYM msidbControlAttributesRemoteVolume}
  558.   msidbControlAttributesCDROMVolume       = $00080000;
  559.   {$EXTERNALSYM msidbControlAttributesCDROMVolume}
  560.   msidbControlAttributesRAMDiskVolume     = $00100000;
  561.   {$EXTERNALSYM msidbControlAttributesRAMDiskVolume}
  562.   msidbControlAttributesFloppyVolume      = $00200000;
  563.   {$EXTERNALSYM msidbControlAttributesFloppyVolume}
  564.   // VolumeCostList controls
  565.   msidbControlShowRollbackCost            = $00400000;
  566.   {$EXTERNALSYM msidbControlShowRollbackCost}
  567.   // ListBox and ComboBox controls
  568.   msidbControlAttributesSorted            = $00010000;
  569.   {$EXTERNALSYM msidbControlAttributesSorted}
  570.   msidbControlAttributesComboList         = $00020000;
  571.   {$EXTERNALSYM msidbControlAttributesComboList}
  572.   // picture button controls
  573.   msidbControlAttributesImageHandle       = $00010000;
  574.   {$EXTERNALSYM msidbControlAttributesImageHandle}
  575.   msidbControlAttributesPushLike          = $00020000;
  576.   {$EXTERNALSYM msidbControlAttributesPushLike}
  577.   msidbControlAttributesBitmap            = $00040000;
  578.   {$EXTERNALSYM msidbControlAttributesBitmap}
  579.   msidbControlAttributesIcon              = $00080000;
  580.   {$EXTERNALSYM msidbControlAttributesIcon}
  581.   msidbControlAttributesFixedSize         = $00100000;
  582.   {$EXTERNALSYM msidbControlAttributesFixedSize}
  583.   msidbControlAttributesIconSize16        = $00200000;
  584.   {$EXTERNALSYM msidbControlAttributesIconSize16}
  585.   msidbControlAttributesIconSize32        = $00400000;
  586.   {$EXTERNALSYM msidbControlAttributesIconSize32}
  587.   msidbControlAttributesIconSize48        = $00600000;
  588.   {$EXTERNALSYM msidbControlAttributesIconSize48}
  589.   // RadioButton controls
  590.   msidbControlAttributesHasBorder         = $01000000;
  591.   {$EXTERNALSYM msidbControlAttributesHasBorder}
  592. // CompLocator.Type
  593. // IniLocator.Type
  594. // RegLocator.Type
  595. type
  596.   msidbLocatorType = DWORD;
  597.   {$EXTERNALSYM msidbLocatorType}
  598. const
  599.   msidbLocatorTypeDirectory = $00000000;
  600.   {$EXTERNALSYM msidbLocatorTypeDirectory}
  601.   msidbLocatorTypeFileName  = $00000001;
  602.   {$EXTERNALSYM msidbLocatorTypeFileName}
  603.   msidbLocatorTypeRawValue  = $00000002;
  604.   {$EXTERNALSYM msidbLocatorTypeRawValue}
  605.   msidbLocatorType64bit     = $00000010;
  606.   {$EXTERNALSYM msidbLocatorType64bit}
  607. // Component.Attributes
  608. type
  609.   msidbComponentAttributes = DWORD;
  610.   {$EXTERNALSYM msidbComponentAttributes}
  611. const
  612.   msidbComponentAttributesLocalOnly          = $00000000;
  613.   {$EXTERNALSYM msidbComponentAttributesLocalOnly}
  614.   msidbComponentAttributesSourceOnly         = $00000001;
  615.   {$EXTERNALSYM msidbComponentAttributesSourceOnly}
  616.   msidbComponentAttributesOptional           = $00000002; // local or source
  617.   {$EXTERNALSYM msidbComponentAttributesOptional}
  618.   msidbComponentAttributesRegistryKeyPath    = $00000004; // KeyPath is key to Registry table
  619.   {$EXTERNALSYM msidbComponentAttributesRegistryKeyPath}
  620.   msidbComponentAttributesSharedDllRefCount  = $00000008; // increment SharedDll count
  621.   {$EXTERNALSYM msidbComponentAttributesSharedDllRefCount}
  622.   msidbComponentAttributesPermanent          = $00000010; // never uninstall component
  623.   {$EXTERNALSYM msidbComponentAttributesPermanent}
  624.   msidbComponentAttributesODBCDataSource     = $00000020; // KeyFile is key to ODBCDataSource table
  625.   {$EXTERNALSYM msidbComponentAttributesODBCDataSource}
  626.   msidbComponentAttributesTransitive         = $00000040; // Can transition to/from installed/uninstalled based on changing conditional
  627.   {$EXTERNALSYM msidbComponentAttributesTransitive}
  628.   msidbComponentAttributesNeverOverwrite     = $00000080; // dont stomp over existing component if key path exists (file/ regkey)
  629.   {$EXTERNALSYM msidbComponentAttributesNeverOverwrite}
  630.   msidbComponentAttributes64bit              = $00000100; // designates a 64-bit component; 32-bit if missing.
  631.   {$EXTERNALSYM msidbComponentAttributes64bit}
  632. // Assembly.Attributes
  633. type
  634.   msidbAssemblyAttributes = DWORD;
  635.   {$EXTERNALSYM msidbAssemblyAttributes}
  636. const
  637.   msidbAssemblyAttributesURT   = $00000000;
  638.   {$EXTERNALSYM msidbAssemblyAttributesURT}
  639.   msidbAssemblyAttributesWin32 = $00000001;
  640.   {$EXTERNALSYM msidbAssemblyAttributesWin32}
  641. // CustomAction.Type
  642. type
  643.   msidbCustomActionType = DWORD;
  644.   {$EXTERNALSYM msidbCustomActionType}
  645. const
  646.   // executable types
  647.   msidbCustomActionTypeDll              = $00000001;  // Target = entry point name
  648.   {$EXTERNALSYM msidbCustomActionTypeDll}
  649.   msidbCustomActionTypeExe              = $00000002;  // Target = command line args
  650.   {$EXTERNALSYM msidbCustomActionTypeExe}
  651.   msidbCustomActionTypeTextData         = $00000003;  // Target = text string to be formatted and set into property
  652.   {$EXTERNALSYM msidbCustomActionTypeTextData}
  653.   msidbCustomActionTypeJScript          = $00000005;  // Target = entry point name, null if none to call
  654.   {$EXTERNALSYM msidbCustomActionTypeJScript}
  655.   msidbCustomActionTypeVBScript         = $00000006;  // Target = entry point name, null if none to call
  656.   {$EXTERNALSYM msidbCustomActionTypeVBScript}
  657.   msidbCustomActionTypeInstall          = $00000007;  // Target = property list for nested engine initialization
  658.   {$EXTERNALSYM msidbCustomActionTypeInstall}
  659.   // source of code
  660.   msidbCustomActionTypeBinaryData       = $00000000;  // Source = Binary.Name, data stored in stream
  661.   {$EXTERNALSYM msidbCustomActionTypeBinaryData}
  662.   msidbCustomActionTypeSourceFile       = $00000010;  // Source = File.File, file part of installation
  663.   {$EXTERNALSYM msidbCustomActionTypeSourceFile}
  664.   msidbCustomActionTypeDirectory        = $00000020;  // Source = Directory.Directory, folder containing existing file
  665.   {$EXTERNALSYM msidbCustomActionTypeDirectory}
  666.   msidbCustomActionTypeProperty         = $00000030;  // Source = Property.Property, full path to executable
  667.   {$EXTERNALSYM msidbCustomActionTypeProperty}
  668.   // return processing                  // default is syncronous execution, process return code
  669.   msidbCustomActionTypeContinue         = $00000040;  // ignore action return status, continue running
  670.   {$EXTERNALSYM msidbCustomActionTypeContinue}
  671.   msidbCustomActionTypeAsync            = $00000080;  // run asynchronously
  672.   {$EXTERNALSYM msidbCustomActionTypeAsync}
  673.   // execution scheduling flags               // default is execute whenever sequenced
  674.   msidbCustomActionTypeFirstSequence    = $00000100;  // skip if UI sequence already run
  675.   {$EXTERNALSYM msidbCustomActionTypeFirstSequence}
  676.   msidbCustomActionTypeOncePerProcess   = $00000200;  // skip if UI sequence already run in same process
  677.   {$EXTERNALSYM msidbCustomActionTypeOncePerProcess}
  678.   msidbCustomActionTypeClientRepeat     = $00000300;  // run on client only if UI already run on client
  679.   {$EXTERNALSYM msidbCustomActionTypeClientRepeat}
  680.   msidbCustomActionTypeInScript         = $00000400;  // queue for execution within script
  681.   {$EXTERNALSYM msidbCustomActionTypeInScript}
  682.   msidbCustomActionTypeRollback         = $00000100;  // in conjunction with InScript: queue in Rollback script
  683.   {$EXTERNALSYM msidbCustomActionTypeRollback}
  684.   msidbCustomActionTypeCommit           = $00000200;  // in conjunction with InScript: run Commit ops from script on success
  685.   {$EXTERNALSYM msidbCustomActionTypeCommit}
  686.   // security context flag, default to impersonate as user, valid only if InScript
  687.   msidbCustomActionTypeNoImpersonate    = $00000800;  // no impersonation, run in system context
  688.   {$EXTERNALSYM msidbCustomActionTypeNoImpersonate}
  689. //#if (_WIN32_MSI >= 150)
  690.   msidbCustomActionTypeTSAware          = $00004000;  // impersonate for per-machine installs on TS machines
  691.   {$EXTERNALSYM msidbCustomActionTypeTSAware}
  692. //#endif // (_WIN32_MSI >= 150)
  693.   // script requires 64bit process
  694.   msidbCustomActionType64BitScript      = $00001000;  // script should run in 64bit process
  695.   {$EXTERNALSYM msidbCustomActionType64BitScript}
  696.   // don't record the contents of the Target field in the log file.
  697.   msidbCustomActionTypeHideTarget       = $00002000;
  698.   {$EXTERNALSYM msidbCustomActionTypeHideTarget}
  699. // Dialog.Attributes
  700. type
  701.   msidbDialogAttributes = DWORD;
  702.   {$EXTERNALSYM msidbDialogAttributes}
  703. const
  704.   msidbDialogAttributesVisible          = $00000001;
  705.   {$EXTERNALSYM msidbDialogAttributesVisible}
  706.   msidbDialogAttributesModal            = $00000002;
  707.   {$EXTERNALSYM msidbDialogAttributesModal}
  708.   msidbDialogAttributesMinimize         = $00000004;
  709.   {$EXTERNALSYM msidbDialogAttributesMinimize}
  710.   msidbDialogAttributesSysModal         = $00000008;
  711.   {$EXTERNALSYM msidbDialogAttributesSysModal}
  712.   msidbDialogAttributesKeepModeless     = $00000010;
  713.   {$EXTERNALSYM msidbDialogAttributesKeepModeless}
  714.   msidbDialogAttributesTrackDiskSpace   = $00000020;
  715.   {$EXTERNALSYM msidbDialogAttributesTrackDiskSpace}
  716.   msidbDialogAttributesUseCustomPalette = $00000040;
  717.   {$EXTERNALSYM msidbDialogAttributesUseCustomPalette}
  718.   msidbDialogAttributesRTLRO            = $00000080;
  719.   {$EXTERNALSYM msidbDialogAttributesRTLRO}
  720.   msidbDialogAttributesRightAligned     = $00000100;
  721.   {$EXTERNALSYM msidbDialogAttributesRightAligned}
  722.   msidbDialogAttributesLeftScroll       = $00000200;
  723.   {$EXTERNALSYM msidbDialogAttributesLeftScroll}
  724.   msidbDialogAttributesBiDi             = msidbDialogAttributesRTLRO or
  725.     msidbDialogAttributesRightAligned or msidbDialogAttributesLeftScroll;
  726.   {$EXTERNALSYM msidbDialogAttributesBiDi}
  727.   msidbDialogAttributesError            = $00010000;
  728.   {$EXTERNALSYM msidbDialogAttributesError}
  729. // Feature.Attributes
  730. type
  731.   msidbFeatureAttributes = DWORD;
  732.   {$EXTERNALSYM msidbFeatureAttributes}
  733. const
  734.   msidbFeatureAttributesFavorLocal             = $00000000;
  735.   {$EXTERNALSYM msidbFeatureAttributesFavorLocal}
  736.   msidbFeatureAttributesFavorSource            = $00000001;
  737.   {$EXTERNALSYM msidbFeatureAttributesFavorSource}
  738.   msidbFeatureAttributesFollowParent           = $00000002;
  739.   {$EXTERNALSYM msidbFeatureAttributesFollowParent}
  740.   msidbFeatureAttributesFavorAdvertise         = $00000004;
  741.   {$EXTERNALSYM msidbFeatureAttributesFavorAdvertise}
  742.   msidbFeatureAttributesDisallowAdvertise      = $00000008;
  743.   {$EXTERNALSYM msidbFeatureAttributesDisallowAdvertise}
  744.   msidbFeatureAttributesUIDisallowAbsent       = $00000010;
  745.   {$EXTERNALSYM msidbFeatureAttributesUIDisallowAbsent}
  746.   msidbFeatureAttributesNoUnsupportedAdvertise = $00000020;
  747.   {$EXTERNALSYM msidbFeatureAttributesNoUnsupportedAdvertise}
  748. // File.Attributes
  749. type
  750.   msidbFileAttributes = DWORD;
  751.   {$EXTERNALSYM msidbFileAttributes}
  752. const
  753.   msidbFileAttributesReadOnly       = $00000001;
  754.   {$EXTERNALSYM msidbFileAttributesReadOnly}
  755.   msidbFileAttributesHidden         = $00000002;
  756.   {$EXTERNALSYM msidbFileAttributesHidden}
  757.   msidbFileAttributesSystem         = $00000004;
  758.   {$EXTERNALSYM msidbFileAttributesSystem}
  759.   msidbFileAttributesReserved0      = $00000008; // Internal use only - must be 0
  760.   {$EXTERNALSYM msidbFileAttributesReserved0}
  761.   msidbFileAttributesReserved1      = $00000040; // Internal use only - must be 0
  762.   {$EXTERNALSYM msidbFileAttributesReserved1}
  763.   msidbFileAttributesReserved2      = $00000080; // Internal use only - must be 0
  764.   {$EXTERNALSYM msidbFileAttributesReserved2}
  765.   msidbFileAttributesReserved3      = $00000100; // Internal use only - must be 0
  766.   {$EXTERNALSYM msidbFileAttributesReserved3}
  767.   msidbFileAttributesVital          = $00000200;
  768.   {$EXTERNALSYM msidbFileAttributesVital}
  769.   msidbFileAttributesChecksum       = $00000400;
  770.   {$EXTERNALSYM msidbFileAttributesChecksum}
  771.   msidbFileAttributesPatchAdded     = $00001000; // Internal use only - set by patches
  772.   {$EXTERNALSYM msidbFileAttributesPatchAdded}
  773.   msidbFileAttributesNoncompressed  = $00002000;
  774.   {$EXTERNALSYM msidbFileAttributesNoncompressed}
  775.   msidbFileAttributesCompressed     = $00004000;
  776.   {$EXTERNALSYM msidbFileAttributesCompressed}
  777.   msidbFileAttributesReserved4      = $00008000; // Internal use only - must be 0
  778.   {$EXTERNALSYM msidbFileAttributesReserved4}
  779. // IniFile.Action
  780. // RemoveIniFile.Action
  781. type
  782.   msidbIniFileAction = DWORD;
  783.   {$EXTERNALSYM msidbIniFileAction}
  784. const
  785.   msidbIniFileActionAddLine    = $00000000;
  786.   {$EXTERNALSYM msidbIniFileActionAddLine}
  787.   msidbIniFileActionCreateLine = $00000001;
  788.   {$EXTERNALSYM msidbIniFileActionCreateLine}
  789.   msidbIniFileActionRemoveLine = $00000002;
  790.   {$EXTERNALSYM msidbIniFileActionRemoveLine}
  791.   msidbIniFileActionAddTag     = $00000003;
  792.   {$EXTERNALSYM msidbIniFileActionAddTag}
  793.   msidbIniFileActionRemoveTag  = $00000004;
  794.   {$EXTERNALSYM msidbIniFileActionRemoveTag}
  795. // MoveFile.Options
  796. type
  797.   msidbMoveFileOptions = DWORD;
  798.   {$EXTERNALSYM msidbMoveFileOptions}
  799. const
  800.   msidbMoveFileOptionsMove = $00000001;
  801.   {$EXTERNALSYM msidbMoveFileOptionsMove}
  802. // ODBCDataSource.Registration
  803. type
  804.   msidbODBCDataSourceRegistration = DWORD;
  805.   {$EXTERNALSYM msidbODBCDataSourceRegistration}
  806. const
  807.   msidbODBCDataSourceRegistrationPerMachine  = $00000000;
  808.   {$EXTERNALSYM msidbODBCDataSourceRegistrationPerMachine}
  809.   msidbODBCDataSourceRegistrationPerUser     = $00000001;
  810.   {$EXTERNALSYM msidbODBCDataSourceRegistrationPerUser}
  811. // Class.Attributes
  812. type
  813.   msidbClassAttributes = DWORD;
  814.   {$EXTERNALSYM msidbClassAttributes}
  815. const
  816.   msidbClassAttributesRelativePath  = $00000001;
  817.   {$EXTERNALSYM msidbClassAttributesRelativePath}
  818. // Patch.Attributes
  819. type
  820.   msidbPatchAttributes = DWORD;
  821.   {$EXTERNALSYM msidbPatchAttributes}
  822. const
  823.   msidbPatchAttributesNonVital = $00000001;
  824.   {$EXTERNALSYM msidbPatchAttributesNonVital}
  825. // Registry.Root
  826. // RegLocator.Root
  827. // RemoveRegistry.Root
  828. type
  829.   msidbRegistryRoot = DWORD;
  830.   {$EXTERNALSYM msidbRegistryRoot}
  831. const
  832.   msidbRegistryRootClassesRoot  = 0;
  833.   {$EXTERNALSYM msidbRegistryRootClassesRoot}
  834.   msidbRegistryRootCurrentUser  = 1;
  835.   {$EXTERNALSYM msidbRegistryRootCurrentUser}
  836.   msidbRegistryRootLocalMachine = 2;
  837.   {$EXTERNALSYM msidbRegistryRootLocalMachine}
  838.   msidbRegistryRootUsers        = 3;
  839.   {$EXTERNALSYM msidbRegistryRootUsers}
  840. // RemoveFile.InstallMode
  841. type
  842.   msidbRemoveFileInstallMode = DWORD;
  843.   {$EXTERNALSYM msidbRemoveFileInstallMode}
  844. const
  845.   msidbRemoveFileInstallModeOnInstall = $00000001;
  846.   {$EXTERNALSYM msidbRemoveFileInstallModeOnInstall}
  847.   msidbRemoveFileInstallModeOnRemove  = $00000002;
  848.   {$EXTERNALSYM msidbRemoveFileInstallModeOnRemove}
  849.   msidbRemoveFileInstallModeOnBoth    = $00000003;
  850.   {$EXTERNALSYM msidbRemoveFileInstallModeOnBoth}
  851. // ServiceControl.Event
  852. type
  853.   msidbServiceControlEvent = DWORD;
  854.   {$EXTERNALSYM msidbServiceControlEvent}
  855. const
  856.   msidbServiceControlEventStart             = $00000001;
  857.   {$EXTERNALSYM msidbServiceControlEventStart}
  858.   msidbServiceControlEventStop              = $00000002;
  859.   {$EXTERNALSYM msidbServiceControlEventStop}
  860.   msidbServiceControlEventDelete            = $00000008;
  861.   {$EXTERNALSYM msidbServiceControlEventDelete}
  862.   msidbServiceControlEventUninstallStart    = $00000010;
  863.   {$EXTERNALSYM msidbServiceControlEventUninstallStart}
  864.   msidbServiceControlEventUninstallStop     = $00000020;
  865.   {$EXTERNALSYM msidbServiceControlEventUninstallStop}
  866.   msidbServiceControlEventUninstallDelete   = $00000080;
  867.   {$EXTERNALSYM msidbServiceControlEventUninstallDelete}
  868. // ServiceInstall.ErrorControl
  869. type
  870.   msidbServiceInstallErrorControl = DWORD;
  871.   {$EXTERNALSYM msidbServiceInstallErrorControl}
  872. const
  873.   msidbServiceInstallErrorControlVital = $00008000;
  874.   {$EXTERNALSYM msidbServiceInstallErrorControlVital}
  875. // TextStyle.StyleBits
  876. type
  877.   msidbTextStyleStyleBits = DWORD;
  878.   {$EXTERNALSYM msidbTextStyleStyleBits}
  879. const
  880.   msidbTextStyleStyleBitsBold         = $00000001;
  881.   {$EXTERNALSYM msidbTextStyleStyleBitsBold}
  882.   msidbTextStyleStyleBitsItalic       = $00000002;
  883.   {$EXTERNALSYM msidbTextStyleStyleBitsItalic}
  884.   msidbTextStyleStyleBitsUnderline    = $00000004;
  885.   {$EXTERNALSYM msidbTextStyleStyleBitsUnderline}
  886.   msidbTextStyleStyleBitsStrike       = $00000008;
  887.   {$EXTERNALSYM msidbTextStyleStyleBitsStrike}
  888. // Upgrade.Attributes
  889. type
  890.   msidbUpgradeAttributes = DWORD;
  891.   {$EXTERNALSYM msidbUpgradeAttributes}
  892. const
  893.   msidbUpgradeAttributesMigrateFeatures     = $00000001;
  894.   {$EXTERNALSYM msidbUpgradeAttributesMigrateFeatures}
  895.   msidbUpgradeAttributesOnlyDetect          = $00000002;
  896.   {$EXTERNALSYM msidbUpgradeAttributesOnlyDetect}
  897.   msidbUpgradeAttributesIgnoreRemoveFailure = $00000004;
  898.   {$EXTERNALSYM msidbUpgradeAttributesIgnoreRemoveFailure}
  899.   msidbUpgradeAttributesVersionMinInclusive = $00000100;
  900.   {$EXTERNALSYM msidbUpgradeAttributesVersionMinInclusive}
  901.   msidbUpgradeAttributesVersionMaxInclusive = $00000200;
  902.   {$EXTERNALSYM msidbUpgradeAttributesVersionMaxInclusive}
  903.   msidbUpgradeAttributesLanguagesExclusive  = $00000400;
  904.   {$EXTERNALSYM msidbUpgradeAttributesLanguagesExclusive}
  905. //------------------------------------------------------------------------------
  906. // SUMMARY INFORMATION PROPERTY DEFINITIONS
  907. //------------------------------------------------------------------------------
  908. type
  909.   msidbSumInfoSourceType = DWORD;
  910.   {$EXTERNALSYM msidbSumInfoSourceType}
  911. const
  912.   msidbSumInfoSourceTypeSFN            = $00000001;  // source uses short filenames
  913.   {$EXTERNALSYM msidbSumInfoSourceTypeSFN}
  914.   msidbSumInfoSourceTypeCompressed     = $00000002;  // source is compressed
  915.   {$EXTERNALSYM msidbSumInfoSourceTypeCompressed}
  916.   msidbSumInfoSourceTypeAdminImage     = $00000004;  // source is an admin image
  917.   {$EXTERNALSYM msidbSumInfoSourceTypeAdminImage}
  918. implementation
  919. end.