このクラスは、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 を使用します。