MsiDoActionW 函式 (msiquery.h)
MsiDoAction 函式會執行內建動作、自定義動作或使用者介面精靈動作。
語法
UINT MsiDoActionW(
[in] MSIHANDLE hInstall,
[in] LPCWSTR szAction
);
參數
[in] hInstall
處理提供給 DLL 自定義動作的安裝,或透過 MsiOpenPackage、MsiOpenPackageEx或 MsiOpenProduct取得的安裝。
[in] szAction
指定要執行的動作。
傳回值
此函式會傳回UINT。
言論
MsiDoAction 函式會執行對應至所提供名稱的動作。 如果安裝程式無法將名稱辨識為內建動作,或 CustomAction 數據表中的自定義動作,則會將名稱傳遞至使用者介面處理程序物件,以叫用函式或對話方塊。 如果提供 Null 動作名稱,安裝程式會使用 ACTION 屬性的大寫值作為要執行的動作。 如果未定義屬性值,則會執行預設動作,定義為 「INSTALL」。。
更新系統的動作,例如 InstallFiles 和 WriteRegistryValues 動作,無法藉由呼叫 msiDoAction 來執行。 此規則的例外狀況是,如果 MsiDoAction 是從 InstallExecuteSequence 數據表中排程的自定義動作呼叫,InstallInitialize 和 InstallFinalize 動作。 您可以呼叫未更新系統的動作,例如 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 |
目標平臺 | 窗戶 |
標頭 | msiquery.h |
連結庫 | Msi.lib |
DLL | Msi.dll |