CAtlTransactionManager クラス
CAtlTransactionManager クラスは、カーネル トランザクション マネージャー (KTM) 関数のラッパーを提供します。
重要
このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。
構文
class CAtlTransactionManager;
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
~CAtlTransactionManager | CAtlTransactionManager デストラクター。 |
CAtlTransactionManager | CAtlTransactionManager コンストラクター。 |
パブリック メソッド
名前 | 説明 |
---|---|
閉じる | 1 つのトランザクション ハンドルを閉じます。 |
コミット | トランザクションのコミットを要求します。 |
作成 | トランザクション ハンドルを作成します。 |
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
関数を呼び出します。 メソッドは、デストラクター内で自動的に呼び出されます。
Commit
トランザクションのコミットを要求します。
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
オブジェクトへのアクセス。これは、読み取り、書き込み、その両方、またはそのどちらでもない (0) としてまとめることができます。 最も一般的に使用される値は、 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
このパラメーターは予約されており、0 である必要があります。
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 で定義されている 0 以外のエラー コードです。
解説
このラッパーは、RegCreateKeyTransacted
関数を呼び出します。
RegDeleteKey
トランザクション操作として、レジストリの指定されたプラットフォーム固有のビューから、サブキーとその値を削除します。
inline LSTATUS RegDeleteKeyEx(HKEY hKey, LPCTSTR lpSubKey);
パラメーター
hKey
開いているレジストリ キーへのハンドル。
lpSubKey
削除するキーの名前。
戻り値
関数が成功した場合、戻り値は ERROR_SUCCESS です。 関数が失敗した場合、戻り値は Winerror.h で定義されている 0 以外のエラー コードです。
解説
このラッパーは、RegDeleteKeyTransacted
関数を呼び出します。
RegOpenKeyEx
指定されたレジストリ キーを開き、トランザクションに関連付けます。
inline LSTATUS RegOpenKeyEx(
HKEY hKey,
LPCTSTR lpSubKey,
DWORD ulOptions,
REGSAM samDesired,
PHKEY phkResult);
パラメーター
hKey
開いているレジストリ キーへのハンドル。
lpSubKey
開くレジストリ サブキーの名前。
ulOptions
このパラメーターは予約されており、0 である必要があります。
samDesired
キーのアクセス権を指定するマスク。
phkResult
開かれた、または作成されたキーへのハンドルを受け取る変数へのポインター。 キーが定義済みのレジストリ キーのいずれかではない場合、ハンドルの使用が完了した後に RegCloseKey
関数を呼び出します。
戻り値
関数が成功した場合、戻り値は ERROR_SUCCESS です。 関数が失敗した場合、戻り値は Winerror.h で定義されている 0 以外のエラー コードです
解説
このラッパーは、RegOpenKeyTransacted
関数を呼び出します。
ロールバック
トランザクションのロールバックを要求します。
inline BOOL Rollback();
戻り値
成功した場合は TRUE、それ以外の場合は FALSE。
解説
このラッパーは、RollbackTransaction
関数を呼び出します。
SetFileAttributes
トランザクション操作として、ファイルまたはディレクトリの属性を設定します。
inline BOOL SetFileAttributes(LPCTSTR lpFileName, DWORD dwAttributes);
パラメーター
lpFileName
ファイルまたはディレクトリの名前。
dwAttributes
ファイルに設定するファイル属性。 詳細については、「SetFileAttributesTransacted」を参照してください。
解説
このラッパーは、SetFileAttributesTransacted
関数を呼び出します。