共用方式為


MsiBeginTransactionA 函式 (msi.h)

MsiBeginTransaction 函式會開始 多套件安裝 事務處理,並傳回交易的標識碼。 MsiEndTransaction 函式會結束交易。

Windows Installer 4.0 和更早版本:不支援 。 從 Windows Installer 4.5 開始,即可使用此函式。

語法

UINT MsiBeginTransactionA(
  [in]  LPCSTR    szName,
  [in]  DWORD     dwTransactionAttributes,
  [out] MSIHANDLE *phTransactionHandle,
  [out] HANDLE    *phChangeOfOwnerEvent
);

參數

[in] szName

多重套件安裝的名稱。

[in] dwTransactionAttributes

多重套件安裝的屬性。

價值 意義
0
當 0 或沒有任何值設定時,Windows Installer 會關閉先前安裝的 UI。
MSITRANSACTION_CHAIN_EMBEDDEDUI
將此屬性設定為要求 Windows Installer 在交易完成之前不會關閉內嵌 UI。

[out] phTransactionHandle

交易標識碼是識別交易 MSIHANDLE 值。 一次只能有一個進程擁有交易。

[out] phChangeOfOwnerEvent

此參數會傳回當 MsiJoinTransaction 函式將交易擁有者變更為新擁有者時所設定事件的句柄。 目前的擁有者可以使用此選項來判斷交易的擁有權何時變更。 離開沒有擁有者的交易將會回復交易。

傳回值

MsiBeginTransaction 函式會傳回下列值。

價值 意義
ERROR_INSTALL_SERVICE_FAILURE
無法存取安裝服務。 此函式需要 Windows Installer 服務。
ERROR_INSTALL_ALREADY_RUNNING
系統一次只能開啟一個交易。 如果在另一個交易執行時呼叫,函式會傳回此錯誤。
ERROR_INVALID_PARAMETER
無效的參數會傳遞至函式。
ERROR_ROLLBACK_DISABLED

DISABLEROLLBACK 屬性或 DisableRollback 原則已停用 復原安裝

言論

注意

msi.h 標頭會根據 UNICODE 預處理器常數的定義,將 MsiBeginTransaction 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7 上的 Windows Installer 5.0。 Windows Vista、Windows XP、Windows Server 2003 和 Windows Server 2008 上的 Windows Installer 4.5。 如需 Windows Installer 版本所需的最低 Windows Service Pack 相關信息,請參閱 Windows Installer Run-Time 需求。
目標平臺 窗戶
標頭 msi.h
連結庫 Msi.lib
DLL Msi.dll

另請參閱

多個套件安裝