msiDoActionA 函式 (msiquery.h)
MsiDoAction函式會執行內建動作、自訂動作或使用者介面精靈動作。
語法
UINT MsiDoActionA(
[in] MSIHANDLE hInstall,
[in] LPCSTR szAction
);
參數
[in] hInstall
處理提供給 DLL 自訂動作的安裝,或透過 MsiOpenPackage、 MsiOpenPackageEx或 MsiOpenProduct取得。
[in] szAction
指定要執行的動作。
傳回值
此函式會傳回 UINT。
備註
MsiDoAction函式會執行對應至所提供名稱的動作。 如果安裝程式無法將名稱辨識為內建動作或 CustomAction 資料表中的自訂動作,則會將名稱傳遞至使用者介面處理常式物件,以叫用函式或對話方塊。 如果提供 Null 動作名稱,安裝程式會使用 ACTION 屬性的大寫值做為要執行的動作。 如果未定義屬性值,則會執行預設動作,定義為 「INSTALL」。
無法藉由呼叫MsiDoAction來執行更新系統的動作,例如InstallFiles和WriteRegistryValues動作。 此規則的例外狀況是,從InstallInitialize和InstallFinalize 動作之間的InstallExecuteSequence 資料表中排程的自訂動作呼叫MsiDoAction。 您可以呼叫未更新系統的動作,例如 AppSearch 或 CostInitialize。
注意
msiquery.h 標頭會將 MsiDoAction 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
需求
最低支援的用戶端 | Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7 上的 Windows Installer 5.0。 Windows Server 2008 或 Windows Vista 上的 Windows Installer 4.0 或 Windows Installer 4.5。 Windows Server 2003 或 Windows XP 上的 Windows Installer |
目標平台 | Windows |
標頭 | msiquery.h |
程式庫 | Msi.lib |
Dll | Msi.dll |