これらの種類の識別子の定義は、マシンの Windows SDK ディレクトリにあります。VS のバージョンについて言及していませんでした。c:\program files (x86)\microsoft sdks\windows\xx\include を調べてください。VS2012+ をお持ちの場合は、Windows キットから探し始めてください。MsiDefs.h ファイルは興味深いものです。を含む:
// properties related to UAC
#define IPROPNAME_MSI_UAC_DEPLOYMENT_COMPLIANT TEXT("MSIDEPLOYMENTCOMPLIANT")
#define IPROPNAME_MSI_USE_REAL_ADMIN_DETECTION TEXT("MSIUSEREALADMINDETECTION")
また:
// execution scheduling flags // default is execute whenever sequenced
msidbCustomActionTypeFirstSequence = 0x00000100, // skip if UI sequence already run
msidbCustomActionTypeOncePerProcess = 0x00000200, // skip if UI sequence already run in same process
msidbCustomActionTypeClientRepeat = 0x00000300, // run on client only if UI already run on client
msidbCustomActionTypeInScript = 0x00000400, // queue for execution within script
msidbCustomActionTypeRollback = 0x00000100, // in conjunction with InScript: queue in Rollback script
msidbCustomActionTypeCommit = 0x00000200, // in conjunction with InScript: run Commit ops from script on success
// security context flag, default to impersonate as user, valid only if InScript
msidbCustomActionTypeNoImpersonate = 0x00000800, // no impersonation, run in system context
このことから、MSIUSEREALADMINDETECTION は数値ではなく、プロパティの名前であることがわかります。MsiSetProperty()でプロパティ値を設定します。この MSDN セクションのプロパティの詳細