共用方式為


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 標頭會將 MsiBeginTransaction 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 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 需求。
目標平台 Windows
標頭 msi.h
程式庫 Msi.lib
Dll Msi.dll

另請參閱

多個套件安裝