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 で提供される以上の抽象化が必要である場合、このクラスを使用します。
継承階層
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 を使用します。