Alternate e697dbe9c5997e35395fe158628dd8c5209481da
for Visual Studio 2022 and Windows 11.
読み取り中…
検索中…
一致する文字列を見つけられません
File.cpp
[詳解]
1// ----------------------------------------------------------------------------
6
7#include "pch.h"
8#include "File.h"
9
10using namespace alt;
11
13 LPCTSTR lpctszFileName, DWORD dwDesiredAccess, DWORD dwShareMode,
14 DWORD dwCreationDisposition)
15{
16 BOOL ret = TRUE;
17 PSECURITY_ATTRIBUTES pSecurityAttributes = NULL;
18 DWORD dwFlagsAndAttributes = FILE_ATTRIBUTE_NORMAL;
19 HANDLE hTemplateFile = NULL;
20
21 _hObject = ::CreateFile (
22 lpctszFileName,
23 dwDesiredAccess,
24 dwShareMode,
25 pSecurityAttributes,
26 dwCreationDisposition,
27 dwFlagsAndAttributes,
28 hTemplateFile);
29 if (_hObject == INVALID_HANDLE_VALUE)
30 {
31 ret = FALSE;
32 }
33
34 return ret;
35}
36
37BOOL File::SetPointer (DWORD dwMoveMethod, LARGE_INTEGER liDistanceToMove) const
38{
39 return ::SetFilePointerEx (
41 liDistanceToMove,
42 NULL,
43 dwMoveMethod);
44}
45
46BOOL File::SetEOF () const
47{
48 return ::SetEndOfFile (_hObject);
49}
50
51LONGLONG File::GetSize () const
52{
53 LARGE_INTEGER liFileSize;
54 LONGLONG response;
55
56 BOOL ret = ::GetFileSizeEx (_hObject, &liFileSize);
57 if (ret == TRUE)
58 {
59 response = liFileSize.QuadPart;
60 }
61 else
62 {
63 response = (LONGLONG)-1;
64 }
65
66 return response;
67}
68
69DWORD File::GetType () const
70{
71 return ::GetFileType (_hObject);
72}
73
74BOOL File::IsOpen () const
75{
76 return _hObject == INVALID_HANDLE_VALUE ? FALSE : TRUE;
77}
ファイルIOに関するWindowsAPIを集約したクラス
プリコンパイル済みヘッダー ファイルです。
DWORD APIENTRY GetType() const
ファイルの種類を取得します。
Definition: File.cpp:69
BOOL APIENTRY Create(LPCTSTR lpctszFileName, DWORD dwDesiredAccess, DWORD dwShareMode, DWORD dwCreationDisposition)
ファイルを作成、オープンします。
Definition: File.cpp:12
BOOL APIENTRY IsOpen() const
ファイルがすでに操作可能か否か。
Definition: File.cpp:74
BOOL APIENTRY SetEOF() const
今のファイル読み込み位置でファイルを終端します。
Definition: File.cpp:46
LONGLONG APIENTRY GetSize() const
ファイルサイズを取得します。
Definition: File.cpp:51
BOOL APIENTRY SetPointer(DWORD dwMoveMethod, LARGE_INTEGER liDistanceToMove={ 0 }) const
ファイルポインタを移動します。
Definition: File.cpp:37
HANDLE _hObject
ハンドルを使用するWindowsAPIで保持するHANDLE値
Definition: DBLibrary.h:12