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 標頭會將 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 |