CAtlFile クラス

このクラスは、Windows ファイル処理 API のシン ラッパーを提供します。

重要

このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。

構文

class CAtlFile : public CHandle

メンバー

パブリック コンストラクター

名前 説明
CAtlFile::CAtlFile コンストラクター。

パブリック メソッド

名前 説明
CAtlFile::Create ファイルを作成するか、開くには、このメソッドを呼び出します。
CAtlFile::Flush ファイルのバッファーをクリアして、バッファー内のすべてのデータをファイルに書き込むには、このメソッドを呼び出します。
CAtlFile::GetOverlappedResult ファイルの重複した操作の結果を取得するには、このメソッドを呼び出します。
CAtlFile::GetPosition 現在のファイル ポインターの位置をファイルから取得するには、このメソッドを呼び出します。
CAtlFile::GetSize ファイルのサイズ (バイト数) を取得するには、このメソッドを呼び出します。
CAtlFile::LockRange ファイル内の領域をロックして、他のプロセスからのアクセスを防ぐには、このメソッドを呼び出します。
CAtlFile::Read ファイル ポインターによって指示される位置から、ファイルからのデータの読み取りを開始するには、このメソッドを呼び出します。
CAtlFile::Seek ファイルのファイル ポインターを移動するには、このメソッドを呼び出します。
CAtlFile::SetSize ファイルのサイズを設定するには、このメソッドを呼び出します。
CAtlFile::UnlockRange ファイルの領域のロックを解除するには、このメソッドを呼び出します。
CAtlFile::Write ファイル ポインターによって指示される位置から、ファイルへのデータの書き込みを開始するには、このメソッドを呼び出します。

プロテクト データ メンバー

名前 説明
CAtlFile::m_pTM CAtlTransactionManager オブジェクトへのポインター

解説

必要なファイル処理が比較的単純であっても、MFC の依存関係を含めずに、Windows API で提供される以上の抽象化が必要である場合、このクラスを使用します。

継承階層

CHandle

CAtlFile

必要条件

ヘッダー: atlfile.h

CAtlFile::CAtlFile

コンストラクター。

CAtlFile() throw();
CAtlFile(CAtlTransactionManager* pTM = NULL) throw();
CAtlFile(CAtlFile& file) throw();
explicit CAtlFile(HANDLE hFile) throw();

パラメーター

ファイル
ファイル オブジェクト。

hFile
ファイル ハンドル。

pTM
CAtlTransactionManager オブジェクトへのポインター。

解説

コピー コンストラクターによって、ファイル ハンドルの所有権は、元の CAtlFile オブジェクトから新しく作成されたオブジェクトに移転されます。

CAtlFile::Create

ファイルを作成するか、開くには、このメソッドを呼び出します。

HRESULT Create(
    LPCTSTR szFilename,
    DWORD dwDesiredAccess,
    DWORD dwShareMode,
    DWORD dwCreationDisposition,
    DWORD dwFlagsAndAttributes = FILE_ATTRIBUTE_NORMAL,
    LPSECURITY_ATTRIBUTES lpsa = NULL,
    HANDLE hTemplateFile = NULL) throw();

パラメーター

szFilename
ファイル名です。

dwDesiredAccess
必要なアクセス。 Windows SDK の「CreateFile」にある「dwDesiredAccess」を参照してください。

dwShareMode
共有モード。 「dwShareMode in CreateFile」を参照してください。

dwCreationDisposition
作成の破棄。 「CreateFile」の「dwCreationDisposition」を参照してください。

dwFlagsAndAttributes
フラグと属性。 「CreateFile」の「dwFlagsAndAttributes」を参照してください。

lpsa
セキュリティ属性。 「CreateFile」の「lpSecurityAttributes」を参照してください。

hTemplateFile
テンプレート ファイル。 「CreateFile」の「hTemplateFile」を参照してください。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

解説

ファイルを作成するか、開くには、CreateFile を呼び出します。

CAtlFile::Flush

ファイルのバッファーをクリアして、バッファー内のすべてのデータをファイルに書き込むには、このメソッドを呼び出します。

HRESULT Flush() throw();

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

解説

バッファー内のデータをファイルにフラッシュするには、FlushFileBuffers を呼び出します。

CAtlFile::GetOverlappedResult

ファイルの重複した操作の結果を取得するには、このメソッドを呼び出します。

HRESULT GetOverlappedResult(
    LPOVERLAPPED pOverlapped,
    DWORD& dwBytesTransferred,
    BOOL bWait) throw();

パラメーター

pOverlapped
オーバーラップ構造。 Windows SDK の「GetOverlappedResult」にある「lpOverlapped」を参照してください。

dwBytesTransferred
転送されたバイト数。 「GetOverlappedResult」の「lpNumberOfBytesTransferred」を参照してください。

bWait
待機オプション。 「GetOverlappedResult」の「bWait」を参照してください。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

解説

ファイルに対する重複した操作の結果を取得するには、GetOverlappedResult を呼び出します。

CAtlFile::GetPosition

現在のファイル ポインターの位置を取得するには、このメソッドを呼び出します。

HRESULT GetPosition(ULONGLONG& nPos) const throw();

パラメーター

nPos
位置 (バイト単位)。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

解説

現在のファイル ポインターの位置を取得するには、SetFilePointer を呼び出します。

CAtlFile::GetSize

ファイルのサイズ (バイト数) を取得するには、このメソッドを呼び出します。

HRESULT GetSize(ULONGLONG& nLen) const throw();

パラメーター

nLen
ファイルのバイト数。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

解説

ファイルのサイズ (バイト数) を取得するには、GetFileSize を呼び出します。

CAtlFile::LockRange

ファイル内の領域をロックして、他のプロセスからのアクセスを防ぐには、このメソッドを呼び出します。

HRESULT LockRange(ULONGLONG nPos, ULONGLONG nCount) throw();

パラメーター

nPos
ロックを開始する必要があるファイル内の位置。

nCount
ロックされるバイト範囲の長さ。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

解説

ファイル内の領域をロックするには、LockFile を呼び出します。 ファイル内のバイトをロックすると、他のプロセスがそれらのバイトにアクセスできなくなります。 ファイルの複数の領域をロックできますが、領域を重複させることはできません。 CAtlFile::UnlockRange を使用して領域のロックを解除する場合、バイト範囲は、事前にロックされた領域と正確に対応している必要があります。 LockRange では、隣接する領域はマージされません。2 つのロックされた領域が隣接する場合、それぞれを個別にロック解除する必要があります。

CAtlFile::m_pTM

CAtlTransactionManager オブジェクトを指すポインター。

CAtlTransactionManager* m_pTM;

解説

CAtlFile::Read

ファイル ポインターによって指示される位置から、ファイルからのデータの読み取りを開始するには、このメソッドを呼び出します。

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize) throw();

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize,
    DWORD& nBytesRead) throw();

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped) throw();

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped,
    LPOVERLAPPED_COMPLETION_ROUTINE pfnCompletionRoutine) throw();

パラメーター

pBuffer
ファイルから読み取られたデータを受け取るバッファーを指すポインター。

nBufSize
バイト単位のバッファー サイズ。

nBytesRead
読み取るバイト数。

pOverlapped
オーバーラップ構造。 Windows SDK の「ReadFile」にある「lpOverlapped」を参照してください。

pfnCompletionRoutine
完了ルーチン。 Windows SDK の「ReadFileEx」にある「lpCompletionRoutine」を参照してください。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

解説

最初の 3 つのフォームで ReadFile を呼び出し、最後の ReadFileEx でファイルからデータを読み取ります。 ファイル ポインターを移動するには、CAtlFile::Seek を使用します。

CAtlFile::Seek

ファイルのファイル ポインターを移動するには、このメソッドを呼び出します。

HRESULT Seek(
    LONGLONG nOffset,
    DWORD dwFrom = FILE_CURRENT) throw();

パラメーター

nOffset
dwFromによって指定された開始点からのオフセット。

dwFrom
開始点 (FILE_BEGIN、FILE_CURRENT、または FILE_END)。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

解説

ファイル ポインターを移動するには、SetFilePointer を呼び出します。

CAtlFile::SetSize

ファイルのサイズを設定するには、このメソッドを呼び出します。

HRESULT SetSize(ULONGLONG nNewLen) throw();

パラメーター

nNewLen
ファイルの新しい長さ (バイト数)。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

解説

ファイルのサイズを設定するには、SetFilePointer および SetEndOfFile を呼び出します。 戻り時に、ファイル ポインターはファイルの末尾に配置されます。

CAtlFile::UnlockRange

ファイルの領域のロックを解除するには、このメソッドを呼び出します。

HRESULT UnlockRange(ULONGLONG nPos, ULONGLONG nCount) throw();

パラメーター

nPos
ロック解除を開始する必要があるファイル内の位置。

nCount
ロックを解除するバイト範囲の長さ。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

解説

ファイルの領域のロックを解除するには、UnlockFile を呼び出します。

CAtlFile::Write

ファイル ポインターによって指示される位置から、ファイルへのデータの書き込みを開始するには、このメソッドを呼び出します。

HRESULT Write(
    LPCVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped,
    LPOVERLAPPED_COMPLETION_ROUTINE pfnCompletionRoutine) throw();

HRESULT Write(
    LPCVOID pBuffer,
    DWORD nBufSize,
    DWORD* pnBytesWritten = NULL) throw();

HRESULT Write(
    LPCVOID pBuffer,
    DWORD nBufSize,
    LPOVERLAPPED pOverlapped) throw();

パラメーター

pBuffer
ファイルに書き込まれるデータが含まれているバッファー。

nBufSize
バッファーから転送されるバイト数。

pOverlapped
オーバーラップ構造。 Windows SDK の「WriteFile」にある「lpOverlapped」を参照してください。

pfnCompletionRoutine
完了ルーチン。 Windows SDK の「WriteFileEx」にある「lpCompletionRoutine」を参照してください。

pnBytesWritten
書き込まれるバイト数。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

解説

最初の 3 つのフォームで WriteFile を呼び出し、最後の呼び出し WriteFileEx でデータをファイルに書き込みます。 ファイル ポインターを移動するには、CAtlFile::Seek を使用します。

関連項目

マーキー サンプル
クラスの概要
CHandle クラス