CAtlTransactionManager 类

CAtlTransactionManager 类为内核事务管理器 (KTM) 函数提供包装器。

重要

无法在 Windows 运行时中执行的应用程序中使用此类及其成员。

语法

class CAtlTransactionManager;

成员

公共构造函数

名称 描述
~CAtlTransactionManager CAtlTransactionManager 析构函数。
CAtlTransactionManager CAtlTransactionManager 析构函数。

公共方法

名称 描述
Close 关闭一个事务句柄。
提交 请求提交事务。
创建 创建事务句柄。
CreateFile 创建或打开文件、文件流或目录作为事务处理操作。
DeleteFile 将现有文件作为事务处理操作删除。
FindFirstFile 搜索目录的文件或子目录作为事务处理操作。
GetFileAttributes 检索指定文件或目录的文件系统属性作为事务处理操作。
GetFileAttributesEx 检索指定文件或目录的文件系统属性作为事务处理操作。
GetHandle 返回事务句柄。
IsFallback 确定是否启用了回退调用。
MoveFile 将现有文件或目录(包括其子级)作为事务处理操作移动。
RegCreateKeyEx 创建指定的注册表项并将其与事务相关联。 如果该项已存在,函数将打开它。
RegDeleteKey 从注册表的指定平台特定视图中删除子项及其值作为事务处理操作。
RegOpenKeyEx 打开指定的注册表项并将其与事务相关联。
回退 请求回滚事务。
SetFileAttributes 将文件或目录的属性设置为事务处理操作。

受保护的数据成员

名称 描述
m_bFallback 如果支持回退,则返回 TRUE;否则返回 FALSE。
m_hTransaction 事务句柄。

注解

继承层次结构

ATL::CAtlTransactionManager

要求

标头:atltransactionmanager.h

~CAtlTransactionManager

CAtlTransactionManager 析构函数。

virtual ~CAtlTransactionManager();

备注

在正常处理中,事务会自动提交和关闭。 如果在异常展开期间调用析构函数,则会回滚并关闭事务。

CAtlTransactionManager

CAtlTransactionManager 析构函数。

CAtlTransactionManager(BOOL bFallback = TRUE, BOOL bAutoCreateTransaction = TRUE);

参数

bFallback
TRUE 指示支持回退。 如果事务处理函数失败,该类会自动调用“非事务处理”函数。 FALSE 指示没有“回退”调用。

bAutoCreateTransaction
TRUE 指示在构造函数中自动创建事务处理程序。 FALSE 表示不创建。

备注

Close

关闭事务句柄。

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_READGENERIC_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 结构的指针,该结构接收有关找到的文件或子目录的信息。

返回值

如果函数成功,则返回值是用于后续调用 FindNextFileFindClose 的搜索句柄。 如果该函数无法从 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 函数。

另请参阅

ATL COM 桌面组件