📄 jwamsi.pas
字号:
REINSTALLMODE_FILEVERIFY = $00000020; // checksum executables, reinstall if missing or corrupt
{$EXTERNALSYM REINSTALLMODE_FILEVERIFY}
REINSTALLMODE_FILEREPLACE = $00000040; // Reinstall all files, regardless of version
{$EXTERNALSYM REINSTALLMODE_FILEREPLACE}
REINSTALLMODE_MACHINEDATA = $00000080; // insure required machine reg entries
{$EXTERNALSYM REINSTALLMODE_MACHINEDATA}
REINSTALLMODE_USERDATA = $00000100; // insure required user reg entries
{$EXTERNALSYM REINSTALLMODE_USERDATA}
REINSTALLMODE_SHORTCUT = $00000200; // validate shortcuts items
{$EXTERNALSYM REINSTALLMODE_SHORTCUT}
REINSTALLMODE_PACKAGE = $00000400; // use re-cache source install package
{$EXTERNALSYM REINSTALLMODE_PACKAGE}
type
REINSTALLMODE = DWORD;
{$EXTERNALSYM REINSTALLMODE}
TReinstallMode = REINSTALLMODE;
// bit flags for use with MsiEnableLog and MsiSetExternalUI
const
INSTALLLOGMODE_FATALEXIT = (1 shl (INSTALLMESSAGE_FATALEXIT shr 24));
{$EXTERNALSYM INSTALLLOGMODE_FATALEXIT}
INSTALLLOGMODE_ERROR = (1 shl (INSTALLMESSAGE_ERROR shr 24));
{$EXTERNALSYM INSTALLLOGMODE_ERROR}
INSTALLLOGMODE_WARNING = (1 shl (INSTALLMESSAGE_WARNING shr 24));
{$EXTERNALSYM INSTALLLOGMODE_WARNING}
INSTALLLOGMODE_USER = (1 shl (INSTALLMESSAGE_USER shr 24));
{$EXTERNALSYM INSTALLLOGMODE_USER}
INSTALLLOGMODE_INFO = (1 shl (INSTALLMESSAGE_INFO shr 24));
{$EXTERNALSYM INSTALLLOGMODE_INFO}
INSTALLLOGMODE_RESOLVESOURCE = (1 shl (INSTALLMESSAGE_RESOLVESOURCE shr 24));
{$EXTERNALSYM INSTALLLOGMODE_RESOLVESOURCE}
INSTALLLOGMODE_OUTOFDISKSPACE = (1 shl (INSTALLMESSAGE_OUTOFDISKSPACE shr 24));
{$EXTERNALSYM INSTALLLOGMODE_OUTOFDISKSPACE}
INSTALLLOGMODE_ACTIONSTART = (1 shl (INSTALLMESSAGE_ACTIONSTART shr 24));
{$EXTERNALSYM INSTALLLOGMODE_ACTIONSTART}
INSTALLLOGMODE_ACTIONDATA = (1 shl (INSTALLMESSAGE_ACTIONDATA shr 24));
{$EXTERNALSYM INSTALLLOGMODE_ACTIONDATA}
INSTALLLOGMODE_COMMONDATA = (1 shl (INSTALLMESSAGE_COMMONDATA shr 24));
{$EXTERNALSYM INSTALLLOGMODE_COMMONDATA}
INSTALLLOGMODE_PROPERTYDUMP = (1 shl (INSTALLMESSAGE_PROGRESS shr 24)); // log only
{$EXTERNALSYM INSTALLLOGMODE_PROPERTYDUMP}
INSTALLLOGMODE_VERBOSE = (1 shl (INSTALLMESSAGE_INITIALIZE shr 24)); // log only
{$EXTERNALSYM INSTALLLOGMODE_VERBOSE}
INSTALLLOGMODE_PROGRESS = (1 shl (INSTALLMESSAGE_PROGRESS shr 24)); // external handler only
{$EXTERNALSYM INSTALLLOGMODE_PROGRESS}
INSTALLLOGMODE_INITIALIZE = (1 shl (INSTALLMESSAGE_INITIALIZE shr 24)); // external handler only
{$EXTERNALSYM INSTALLLOGMODE_INITIALIZE}
INSTALLLOGMODE_TERMINATE = (1 shl (INSTALLMESSAGE_TERMINATE shr 24)); // external handler only
{$EXTERNALSYM INSTALLLOGMODE_TERMINATE}
INSTALLLOGMODE_SHOWDIALOG = (1 shl (INSTALLMESSAGE_SHOWDIALOG shr 24)); // external handler only
{$EXTERNALSYM INSTALLLOGMODE_SHOWDIALOG}
type
INSTALLLOGMODE = DWORD;
{$EXTERNALSYM INSTALLLOGMODE}
TInstallLogMode = INSTALLLOGMODE;
const
INSTALLLOGATTRIBUTES_APPEND = (1 shl 0);
{$EXTERNALSYM INSTALLLOGATTRIBUTES_APPEND}
INSTALLLOGATTRIBUTES_FLUSHEACHLINE = (1 shl 1);
{$EXTERNALSYM INSTALLLOGATTRIBUTES_FLUSHEACHLINE}
type
INSTALLLOGATTRIBUTES = DWORD;
{$EXTERNALSYM INSTALLLOGATTRIBUTES}
TInstallLogAttributes = INSTALLLOGATTRIBUTES;
const
INSTALLFEATUREATTRIBUTE_FAVORLOCAL = 1 shl 0;
{$EXTERNALSYM INSTALLFEATUREATTRIBUTE_FAVORLOCAL}
INSTALLFEATUREATTRIBUTE_FAVORSOURCE = 1 shl 1;
{$EXTERNALSYM INSTALLFEATUREATTRIBUTE_FAVORSOURCE}
INSTALLFEATUREATTRIBUTE_FOLLOWPARENT = 1 shl 2;
{$EXTERNALSYM INSTALLFEATUREATTRIBUTE_FOLLOWPARENT}
INSTALLFEATUREATTRIBUTE_FAVORADVERTISE = 1 shl 3;
{$EXTERNALSYM INSTALLFEATUREATTRIBUTE_FAVORADVERTISE}
INSTALLFEATUREATTRIBUTE_DISALLOWADVERTISE = 1 shl 4;
{$EXTERNALSYM INSTALLFEATUREATTRIBUTE_DISALLOWADVERTISE}
INSTALLFEATUREATTRIBUTE_NOUNSUPPORTEDADVERTISE = 1 shl 5;
{$EXTERNALSYM INSTALLFEATUREATTRIBUTE_NOUNSUPPORTEDADVERTISE}
type
INSTALLFEATUREATTRIBUTE = DWORD;
{$EXTERNALSYM INSTALLFEATUREATTRIBUTE}
TInstallFeatureAttribute = INSTALLFEATUREATTRIBUTE;
const
INSTALLMODE_NOSOURCERESOLUTION = -3; // skip source resolution
{$EXTERNALSYM INSTALLMODE_NOSOURCERESOLUTION}
INSTALLMODE_NODETECTION = -2; // skip detection
{$EXTERNALSYM INSTALLMODE_NODETECTION}
INSTALLMODE_EXISTING = -1; // provide, if available
{$EXTERNALSYM INSTALLMODE_EXISTING}
INSTALLMODE_DEFAULT = 0; // install, if absent
{$EXTERNALSYM INSTALLMODE_DEFAULT}
type
INSTALLMODE = DWORD;
{$EXTERNALSYM INSTALLMODE}
TInstallMode = INSTALLMODE;
const
MAX_FEATURE_CHARS = 38; // maximum chars in feature name (same as string GUID)
{$EXTERNALSYM MAX_FEATURE_CHARS}
// Product info attributes: advertised information
INSTALLPROPERTY_PACKAGENAME = __TEXT('PackageName');
{$EXTERNALSYM INSTALLPROPERTY_PACKAGENAME}
INSTALLPROPERTY_TRANSFORMS = __TEXT('Transforms');
{$EXTERNALSYM INSTALLPROPERTY_TRANSFORMS}
INSTALLPROPERTY_LANGUAGE = __TEXT('Language');
{$EXTERNALSYM INSTALLPROPERTY_LANGUAGE}
INSTALLPROPERTY_PRODUCTNAME = __TEXT('ProductName');
{$EXTERNALSYM INSTALLPROPERTY_PRODUCTNAME}
INSTALLPROPERTY_ASSIGNMENTTYPE = __TEXT('AssignmentType');
{$EXTERNALSYM INSTALLPROPERTY_ASSIGNMENTTYPE}
//#if (_WIN32_MSI >= 150)
INSTALLPROPERTY_INSTANCETYPE = __TEXT('InstanceType');
{$EXTERNALSYM INSTALLPROPERTY_INSTANCETYPE}
//#endif //(_WIN32_MSI >= 150)
INSTALLPROPERTY_PACKAGECODE = __TEXT('PackageCode');
{$EXTERNALSYM INSTALLPROPERTY_PACKAGECODE}
INSTALLPROPERTY_VERSION = __TEXT('Version');
{$EXTERNALSYM INSTALLPROPERTY_VERSION}
INSTALLPROPERTY_PRODUCTICON = __TEXT('ProductIcon');
{$EXTERNALSYM INSTALLPROPERTY_PRODUCTICON}
// Product info attributes: installed information
INSTALLPROPERTY_INSTALLEDPRODUCTNAME = __TEXT('InstalledProductName');
{$EXTERNALSYM INSTALLPROPERTY_INSTALLEDPRODUCTNAME}
INSTALLPROPERTY_VERSIONSTRING = __TEXT('VersionString');
{$EXTERNALSYM INSTALLPROPERTY_VERSIONSTRING}
INSTALLPROPERTY_HELPLINK = __TEXT('HelpLink');
{$EXTERNALSYM INSTALLPROPERTY_HELPLINK}
INSTALLPROPERTY_HELPTELEPHONE = __TEXT('HelpTelephone');
{$EXTERNALSYM INSTALLPROPERTY_HELPTELEPHONE}
INSTALLPROPERTY_INSTALLLOCATION = __TEXT('InstallLocation');
{$EXTERNALSYM INSTALLPROPERTY_INSTALLLOCATION}
INSTALLPROPERTY_INSTALLSOURCE = __TEXT('InstallSource');
{$EXTERNALSYM INSTALLPROPERTY_INSTALLSOURCE}
INSTALLPROPERTY_INSTALLDATE = __TEXT('InstallDate');
{$EXTERNALSYM INSTALLPROPERTY_INSTALLDATE}
INSTALLPROPERTY_PUBLISHER = __TEXT('Publisher');
{$EXTERNALSYM INSTALLPROPERTY_PUBLISHER}
INSTALLPROPERTY_LOCALPACKAGE = __TEXT('LocalPackage');
{$EXTERNALSYM INSTALLPROPERTY_LOCALPACKAGE}
INSTALLPROPERTY_URLINFOABOUT = __TEXT('URLInfoAbout');
{$EXTERNALSYM INSTALLPROPERTY_URLINFOABOUT}
INSTALLPROPERTY_URLUPDATEINFO = __TEXT('URLUpdateInfo');
{$EXTERNALSYM INSTALLPROPERTY_URLUPDATEINFO}
INSTALLPROPERTY_VERSIONMINOR = __TEXT('VersionMinor');
{$EXTERNALSYM INSTALLPROPERTY_VERSIONMINOR}
INSTALLPROPERTY_VERSIONMAJOR = __TEXT('VersionMajor');
{$EXTERNALSYM INSTALLPROPERTY_VERSIONMAJOR}
const
SCRIPTFLAGS_CACHEINFO = $00000001; // set if the icons need to be created/ removed
{$EXTERNALSYM SCRIPTFLAGS_CACHEINFO}
SCRIPTFLAGS_SHORTCUTS = $00000004; // set if the shortcuts needs to be created/ deleted
{$EXTERNALSYM SCRIPTFLAGS_SHORTCUTS}
SCRIPTFLAGS_MACHINEASSIGN = $00000008; // set if product to be assigned to machine
{$EXTERNALSYM SCRIPTFLAGS_MACHINEASSIGN}
SCRIPTFLAGS_REGDATA_CNFGINFO = $00000020; // set if the product cnfg mgmt. registry data needs to be written/ removed
{$EXTERNALSYM SCRIPTFLAGS_REGDATA_CNFGINFO}
SCRIPTFLAGS_VALIDATE_TRANSFORMS_LIST = $00000040;
{$EXTERNALSYM SCRIPTFLAGS_VALIDATE_TRANSFORMS_LIST}
{$IFDEF _WIN32_MSI_GREATER_EQUAL_110}
SCRIPTFLAGS_REGDATA_CLASSINFO = $00000080; // set if COM classes related app info needs to be created/ deleted
{$EXTERNALSYM SCRIPTFLAGS_REGDATA_CLASSINFO}
SCRIPTFLAGS_REGDATA_EXTENSIONINFO = $00000100; // set if extension related app info needs to be created/ deleted
{$EXTERNALSYM SCRIPTFLAGS_REGDATA_EXTENSIONINFO}
SCRIPTFLAGS_REGDATA_APPINFO = SCRIPTFLAGS_REGDATA_CLASSINFO or SCRIPTFLAGS_REGDATA_EXTENSIONINFO; // for source level backward compatibility
{$EXTERNALSYM SCRIPTFLAGS_REGDATA_APPINFO}
{$ELSE} // _WIN32_MSI >= 110
SCRIPTFLAGS_REGDATA_APPINFO = $00000010;
{$EXTERNALSYM SCRIPTFLAGS_REGDATA_APPINFO}
{$ENDIF}
SCRIPTFLAGS_REGDATA = SCRIPTFLAGS_REGDATA_APPINFO or SCRIPTFLAGS_REGDATA_CNFGINFO;// for source level backward compatibility
{$EXTERNALSYM SCRIPTFLAGS_REGDATA}
type
SCRIPTFLAGS = Longint;
{$EXTERNALSYM SCRIPTFLAGS}
TScriptFlags = SCRIPTFLAGS;
const
ADVERTISEFLAGS_MACHINEASSIGN = 0; // set if the product is to be machine assigned
{$EXTERNALSYM ADVERTISEFLAGS_MACHINEASSIGN}
ADVERTISEFLAGS_USERASSIGN = 1; // set if the product is to be user assigned
{$EXTERNALSYM ADVERTISEFLAGS_USERASSIGN}
type
ADVERTISEFLAGS = Longint;
{$EXTERNALSYM ADVERTISEFLAGS}
TAdvertiseFlags = ADVERTISEFLAGS;
const
INSTALLTYPE_DEFAULT = 0; // set to indicate default behavior
{$EXTERNALSYM INSTALLTYPE_DEFAULT}
INSTALLTYPE_NETWORK_IMAGE = 1; // set to indicate network install
{$EXTERNALSYM INSTALLTYPE_NETWORK_IMAGE}
INSTALLTYPE_SINGLE_INSTANCE = 2; // set to indicate a particular instance
{$EXTERNALSYM INSTALLTYPE_SINGLE_INSTANCE}
type
INSTALLTYPE = DWORD;
{$EXTERNALSYM INSTALLTYPE}
TInstallType = INSTALLTYPE;
type
_MSIFILEHASHINFO = record
dwFileHashInfoSize: ULONG;
dwData: array [0..3] of ULONG;
end;
{$EXTERNALSYM _MSIFILEHASHINFO}
MSIFILEHASHINFO = _MSIFILEHASHINFO;
{$EXTERNALSYM MSIFILEHASHINFO}
PMSIFILEHASHINFO = ^MSIFILEHASHINFO;
{$EXTERNALSYM PMSIFILEHASHINFO}
TMsiFileHashInfo = MSIFILEHASHINFO;
const
MSIARCHITECTUREFLAGS_X86 = $00000001; // set if creating the script for i386 platform
{$EXTERNALSYM MSIARCHITECTUREFLAGS_X86}
MSIARCHITECTUREFLAGS_IA64 = $00000002; // set if creating the script for IA64 platform
{$EXTERNALSYM MSIARCHITECTUREFLAGS_IA64}
MSIARCHITECTUREFLAGS_AMD64 = $00000004; // set if creating the script for AMD64 platform
{$EXTERNALSYM MSIARCHITECTUREFLAGS_AMD64}
type
MSIARCHITECTUREFLAGS = DWORD;
{$EXTERNALSYM MSIARCHITECTUREFLAGS}
TMsiArchitectureFlags = MSIARCHITECTUREFLAGS;
const
MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE = $00000001; // ignore the machine state when creating the engine
{$EXTERNALSYM MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE}
type
MSIOPENPACKAGEFLAGS = DWORD;
{$EXTERNALSYM MSIOPENPACKAGEFLAGS}
TMsiOpenPackageFlags = MSIOPENPACKAGEFLAGS;
const
MSIADVERTISEOPTIONFLAGS_INSTANCE = $00000001; // set if advertising a new instance
{$EXTERNALSYM MSIADVERTISEOPTIONFLAGS_INSTANCE}
type
tagMSIADVERTISEOPTIONFLAGS = DWORD;
{$EXTERNALSYM tagMSIADVERTISEOPTIONFLAGS}
MSIADVERTISEOPTIONFLAGS = tagMSIADVERTISEOPTIONFLAGS;
{$EXTERNALSYM MSIADVERTISEOPTIONFLAGS}
TMsiAdvertiseOptionFlags = MSIADVERTISEOPTIONFLAGS;
// --------------------------------------------------------------------------
// Functions to set the UI handling and logging. The UI will be used for error,
// progress, and log messages for all subsequent calls to Installer Service
// API functions that require UI.
// --------------------------------------------------------------------------
// Enable internal UI
function MsiSetInternalUI(dwUILevel: INSTALLUILEVEL; phWnd: PHWND): INSTALLUILEVEL; stdcall;
{$EXTERNALSYM MsiSetInternalUI}
// Enable external UI handling, returns any previous handler or NULL if none.
// Messages are designated with a combination of bits from INSTALLLOGMODE enum.
function MsiSetExternalUIA(puiHandler: INSTALLUI_HANDLERA; dwMessageFilter: DWORD;
pvContext: LPVOID): INSTALLUI_HANDLERA; stdcall;
{$EXTERNALSYM MsiSetExternalUIA}
function MsiSetExternalUIW(puiHandler: INSTALLUI_HANDLERW; dwMessageFilter: DWORD;
pvContext: LPVOID): INSTALLUI_HANDLERW; stdcall;
{$EXTERNALSYM MsiSetExternalUIW}
{$IFDEF UNICODE}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -