Share via


msiDoActionA 函式 (msiquery.h)

MsiDoAction函式會執行內建動作、自訂動作或使用者介面精靈動作。

語法

UINT MsiDoActionA(
  [in] MSIHANDLE hInstall,
  [in] LPCSTR    szAction
);

參數

[in] hInstall

處理提供給 DLL 自訂動作的安裝,或透過 MsiOpenPackageMsiOpenPackageExMsiOpenProduct取得。

[in] szAction

指定要執行的動作。

傳回值

此函式會傳回 UINT。

備註

MsiDoAction函式會執行對應至所提供名稱的動作。 如果安裝程式無法將名稱辨識為內建動作或 CustomAction 資料表中的自訂動作,則會將名稱傳遞至使用者介面處理常式物件,以叫用函式或對話方塊。 如果提供 Null 動作名稱,安裝程式會使用 ACTION 屬性的大寫值做為要執行的動作。 如果未定義屬性值,則會執行預設動作,定義為 「INSTALL」。

無法藉由呼叫MsiDoAction來執行更新系統的動作,例如InstallFilesWriteRegistryValues動作。 此規則的例外狀況是,從InstallInitializeInstallFinalize 動作之間的InstallExecuteSequence 資料表中排程的自訂動作呼叫MsiDoAction。 您可以呼叫未更新系統的動作,例如 AppSearchCostInitialize

注意

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

另請參閱

安裝程式動作函式