CAtlTransactionManager 類別
CAtlTransactionManager 類別提供核心交易管理員 (KTM) 函式的包裝函式。
重要
這個類別及其成員不能用於在 Windows 執行階段 中執行的應用程式。
語法
class CAtlTransactionManager;
成員
公用建構函式
名稱 | 描述 |
---|---|
~CAtlTransactionManager | CAtlTransactionManager 解構函式。 |
CAtlTransactionManager | CAtlTransactionManager 建構函式。 |
公用方法
名稱 | 描述 |
---|---|
關閉 | 關閉一個交易句柄。 |
認可 | 要求認可交易。 |
建立 | 建立交易句柄。 |
CreateFile | 建立或開啟檔案、檔案數據流或目錄做為交易作業。 |
DeleteFile | 刪除現有的檔案做為交易作業。 |
FindFirstFile | 以交易作業的形式搜尋檔案或子目錄的目錄。 |
GetFileAttributes | 擷取指定檔案或目錄的檔案系統屬性做為交易作業。 |
GetFileAttributesEx | 擷取指定檔案或目錄的檔案系統屬性做為交易作業。 |
GetHandle | 傳回交易句柄。 |
IsFallback | 判斷是否啟用後援呼叫。 |
MoveFile | 將現有的檔案或目錄,包括其子系移動為交易作業。 |
RegCreateKeyEx | 建立指定的登錄機碼,並將它與交易產生關聯。 如果索引鍵已經存在,函式就會開啟它。 |
RegDeleteKey | 從登錄的指定平臺特定檢視中刪除子機碼及其值,做為交易作業。 |
RegOpenKeyEx | 開啟指定的登錄機碼,並將它與交易產生關聯。 |
復原 | 要求回復交易。 |
SetFileAttributes | 將檔案或目錄的屬性設定為交易作業。 |
受保護的資料成員
名稱 | 描述 |
---|---|
m_bFallback | 如果支援後援,則為TRUE;否則為 FALSE。 |
m_hTransaction | 交易句柄。 |
備註
繼承階層架構
需求
標頭: atltransactionmanager.h
~CAtlTransactionManager
CAtlTransactionManager 解構函式。
virtual ~CAtlTransactionManager();
備註
在一般處理中,交易會自動認可並關閉。 如果在例外狀況回溯期間呼叫解構函式,則會回復並關閉交易。
CAtlTransactionManager
CAtlTransactionManager 建構函式。
CAtlTransactionManager(BOOL bFallback = TRUE, BOOL bAutoCreateTransaction = TRUE);
參數
bFallback
TRUE 表示支援後援。 如果交易函式失敗,類別會自動呼叫「非交易」函式。 FALSE 表示沒有「後援」呼叫。
bAutoCreateTransaction
TRUE 表示在建構函式中自動建立事務處理程式。 FALSE 表示它不是。
備註
關閉
關閉交易句柄。
inline BOOL Close();
傳回值
如果成功,則為 TRUE,否則為 FALSE。
備註
這個包裝函式會呼叫 函 CloseHandle
式。 解構函式中會自動呼叫 方法。
認可
要求認可交易。
inline BOOL Commit();
傳回值
如果成功,則為 TRUE,否則為 FALSE。
備註
這個包裝函式會呼叫 函 CommitTransaction
式。 解構函式中會自動呼叫 方法。
建立
建立交易句柄。
inline BOOL Create();
傳回值
如果成功,則為 TRUE,否則為 FALSE。
備註
這個包裝函式會呼叫 函 CreateTransaction
式。 檢查它是否有
CreateFile
建立或開啟檔案、檔案數據流或目錄做為交易作業。
inline HANDLE CreateFile(
LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile);
參數
lpFileName
要建立或開啟的物件名稱。
dwDesiredAccess
物件的存取權,可以摘要為讀取、寫入、兩者或兩者皆不(零)。 最常用的值為 GENERIC_READ
、 GENERIC_WRITE
或兩者: GENERIC_READ | GENERIC_WRITE
。
dwShareMode
對象的共用模式,可以是讀取、寫入、兩者、刪除、全部或無:0、FILE_SHARE_DELETE、FILE_SHARE_READ、FILE_SHARE_WRITE。
lpSecurityAttributes
包含選擇性安全性描述元之SECURITY_ATTRIBUTES結構的指標,也會判斷傳回的句柄是否可以由子進程繼承。 參數可以是 NULL。
dwCreationDisposition
針對存在且不存在的檔案採取動作。 此參數必須是無法合併的下列其中一個值:CREATE_ALWAYS、CREATE_NEW、OPEN_ALWAYS、OPEN_EXISTING或TRUNCATE_EXISTING。
dwFlagsAndAttributes
檔案屬性和旗標。 此參數可以包含可用檔案屬性的任何組合(FILE_ATTRIBUTE_*)。 所有其他檔案屬性都會覆寫FILE_ATTRIBUTE_NORMAL。 此參數也可以包含旗標的組合(FILE_FLAG_*),以控制緩衝行為、存取模式和其他特殊用途旗標。 這些會與任何FILE_ATTRIBUTE_* 值結合。
hTemplateFile
具有GENERIC_READ訪問許可權之範本檔案的有效句柄。 範本檔案會提供所建立檔案的檔案屬性和擴充屬性。 此參數可以是 Null。
傳回值
傳回可用來存取物件的句柄。
備註
這個包裝函式會呼叫 函 CreateFileTransacted
式。
DeleteFile
刪除現有的檔案做為交易作業。
inline BOOL DeleteFile(LPCTSTR lpFileName);
參數
lpFileName
要刪除的檔案的名稱。
備註
這個包裝函式會呼叫 函 DeleteFileTransacted
式。
FindFirstFile
以交易作業的形式搜尋檔案或子目錄的目錄。
inline HANDLE FindFirstFile(
LPCTSTR lpFileName,
WIN32_FIND_DATA* pNextInfo);
參數
lpFileName
要搜尋的目錄或路徑,以及檔名。 此參數可以包含通配符,例如星號 • 或問號 ()。
pNextInfo
WIN32_FIND_DATA 結構的指標,可接收找到的檔案或子目錄的相關信息。
傳回值
如果函式成功,傳回值是後續呼叫 FindNextFile
或 FindClose
時所使用的搜尋句柄。 如果函式失敗或無法從 lpFileName 參數中的搜尋字串中尋找檔案,則會INVALID_HANDLE_VALUE傳回值。
備註
這個包裝函式會呼叫 函 FindFirstFileTransacted
式。
GetFileAttributes
擷取指定檔案或目錄的檔案系統屬性做為交易作業。
inline DWORD GetFileAttributes(LPCTSTR lpFileName);
參數
lpFileName
檔案或目錄的名稱。
備註
這個包裝函式會呼叫 函 GetFileAttributesTransacted
式。
GetFileAttributesEx
擷取指定檔案或目錄的檔案系統屬性做為交易作業。
inline BOOL GetFileAttributesEx(
LPCTSTR lpFileName,
GET_FILEEX_INFO_LEVELS fInfoLevelId,
LPVOID lpFileInformation);
參數
lpFileName
檔案或目錄的名稱。
fInfoLevelId
要擷取的屬性資訊層級。
lpFileInformation
接收屬性信息的緩衝區指標。 儲存在此緩衝區的屬性資訊類型是由 fInfoLevelId 的值所決定。 如果 fInfoLevelId 參數是 GetFileExInfoStandard,則此參數會指向WIN32_FILE_ATTRIBUTE_DATA結構。
備註
這個包裝函式會呼叫 函 GetFileAttributesTransacted
式。
GetHandle
傳回交易句柄。
HANDLE GetHandle() const;
傳回值
傳回 類別的交易句柄。 如果未附加至句柄, CAtlTransactionManager
則傳回 NULL。
備註
IsFallback
判斷是否啟用後援呼叫。
BOOL IsFallback() const;
傳回值
傳回TRUE是類別支援後援呼叫。 否則為 FALSE。
備註
m_bFallback
如果支援後援,則為TRUE;否則為 FALSE。
BOOL m_bFallback;
備註
m_hTransaction
交易句柄。
HANDLE m_hTransaction;
備註
MoveFile
將現有的檔案或目錄,包括其子系移動為交易作業。
inline BOOL MoveFile(LPCTSTR lpOldFileName, LPCTSTR lpNewFileName);
參數
lpOldFileName
本機電腦上現有檔案或目錄的目前名稱。
lpNewFileName
檔案或目錄的新名稱。 此名稱不得已存在。 新的檔案可能位於不同的文件系統或磁碟驅動器上。 新目錄必須位於相同的磁碟驅動器上。
備註
這個包裝函式會呼叫 函 MoveFileTransacted
式。
RegCreateKeyEx
建立指定的登錄機碼,並將它與交易產生關聯。 如果索引鍵已經存在,函式就會開啟它。
inline LSTATUS RegCreateKeyEx(
HKEY hKey,
LPCTSTR lpSubKey,
DWORD dwReserved,
LPTSTR lpClass,
DWORD dwOptions,
REGSAM samDesired,
CONST LPSECURITY_ATTRIBUTES lpSecurityAttributes,
PHKEY phkResult,
LPDWORD lpdwDisposition);
參數
hKey
開啟登錄機碼的句柄。
lpSubKey
此函式開啟或建立的子機碼名稱。
dwReserved
此參數是保留的,而且必須是零。
lpClass
這個索引鍵的使用者定義類別。 這個參數可能會忽略。 此參數可以是 Null。
dwOptions
此參數可以是下列其中一個值:REG_OPTION_BACKUP_RESTORE、REG_OPTION_NON_VOLATILE或REG_OPTION_VOLATILE。
samDesired
指定金鑰訪問許可權的遮罩。
lpSecurityAttributes
SECURITY ATTRIBUTES 結構的指標,這個結構會判斷子處理序是否可以繼承傳回的控制代碼。 如果 lpSecurityAttributes 為 NULL,則無法繼承句柄。
phkResult
接收已開啟或建立之索引鍵句柄之變數的指標。 如果機碼不是其中一個預先定義的登錄機碼,請在您使用句柄完成之後呼叫 函 RegCloseKey
式。
lpdwDisposition
接收下列其中一個處置值的變數指標:REG_CREATED_NEW_KEY或REG_OPENED_EXISTING_KEY。
傳回值
如果函式成功,則傳回值會ERROR_SUCCESS。 如果函式失敗,傳回值是 Winerror.h 中定義的非零錯誤碼。
備註
這個包裝函式會呼叫 函 RegCreateKeyTransacted
式。
RegDeleteKey
從登錄的指定平臺特定檢視中刪除子機碼及其值,做為交易作業。
inline LSTATUS RegDeleteKeyEx(HKEY hKey, LPCTSTR lpSubKey);
參數
hKey
開啟登錄機碼的句柄。
lpSubKey
要刪除之金鑰的名稱。
傳回值
如果函式成功,則傳回值會ERROR_SUCCESS。 如果函式失敗,傳回值是 Winerror.h 中定義的非零錯誤碼。
備註
這個包裝函式會呼叫 函 RegDeleteKeyTransacted
式。
RegOpenKeyEx
開啟指定的登錄機碼,並將它與交易產生關聯。
inline LSTATUS RegOpenKeyEx(
HKEY hKey,
LPCTSTR lpSubKey,
DWORD ulOptions,
REGSAM samDesired,
PHKEY phkResult);
參數
hKey
開啟登錄機碼的句柄。
lpSubKey
要開啟的登錄子機碼名稱。
ulOptions
此參數是保留的,而且必須是零。
samDesired
指定金鑰訪問許可權的遮罩。
phkResult
接收已開啟或建立之索引鍵句柄之變數的指標。 如果機碼不是其中一個預先定義的登錄機碼,請在您使用句柄完成之後呼叫 函 RegCloseKey
式。
傳回值
如果函式成功,則傳回值會ERROR_SUCCESS。 如果函式失敗,傳回值是 Winerror.h 中定義的非零錯誤碼
備註
這個包裝函式會呼叫 函 RegOpenKeyTransacted
式。
回復
要求回復交易。
inline BOOL Rollback();
傳回值
如果成功,則為 TRUE,否則為 FALSE。
備註
這個包裝函式會呼叫 函 RollbackTransaction
式。
SetFileAttributes
將檔案或目錄的屬性設定為交易作業。
inline BOOL SetFileAttributes(LPCTSTR lpFileName, DWORD dwAttributes);
參數
lpFileName
檔案或目錄的名稱。
dwAttributes
要為檔案設定的檔案屬性。 如需詳細資訊,請參閱 SetFileAttributesTransacted。
備註
這個包裝函式會呼叫 函 SetFileAttributesTransacted
式。