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 或沒有任何值設定時,Windows Installer 會關閉先前安裝的 UI。 |
|
將此屬性設定為要求 Windows Installer 在交易完成之前不會關閉內嵌 UI。 |
[out] phTransactionHandle
交易標識碼是識別交易 MSIHANDLE 值。 一次只能有一個進程擁有交易。
[out] phChangeOfOwnerEvent
此參數會傳回當 MsiJoinTransaction 函式將交易擁有者變更為新擁有者時所設定事件的句柄。 目前的擁有者可以使用此選項來判斷交易的擁有權何時變更。 離開沒有擁有者的交易將會回復交易。
傳回值
MsiBeginTransaction 函式會傳回下列值。
價值 | 意義 |
---|---|
|
無法存取安裝服務。 此函式需要 Windows Installer 服務。 |
|
系統一次只能開啟一個交易。 如果在另一個交易執行時呼叫,函式會傳回此錯誤。 |
|
無效的參數會傳遞至函式。 |
|
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 |