source: trunk/src/kernel32/hmfile.h@ 3721

Last change on this file since 3721 was 3642, checked in by sandervl, 25 years ago

Rewrote file io apis

File size: 7.4 KB
Line 
1/* $Id: hmfile.h,v 1.1 2000-06-01 11:28:47 sandervl Exp $ */
2
3/*
4 * Project Odin Software License can be found in LICENSE.TXT
5 * Win32 Unified Handle Manager for OS/2
6 * 1999/06/17 PH Patrick Haller (phaller@gmx.net)
7 */
8
9#ifndef __HMFILE_H__
10#define __HMFILE_H__
11
12
13/*****************************************************************************
14 * Remark *
15 *****************************************************************************
16 */
17
18
19/*****************************************************************************
20 * Includes *
21 *****************************************************************************/
22
23#include "HMDevice.h"
24#include "HMOpen32.h"
25
26
27class HMFileInfo
28{
29public:
30 HMFileInfo(LPSTR lpszFileName, PVOID lpSecurityAttributes);
31 ~HMFileInfo();
32
33 char *lpszFileName;
34 PVOID lpSecurityAttributes;
35};
36
37/*****************************************************************************
38 * Structures *
39 *****************************************************************************/
40
41class HMDeviceFileClass : public HMDeviceHandler
42{
43public:
44 HMDeviceFileClass(LPCSTR lpDeviceName) : HMDeviceHandler(lpDeviceName) {}
45
46 /* this is a handler method for calls to CreateFile() */
47 virtual DWORD CreateFile (LPCSTR lpFileName,
48 PHMHANDLEDATA pHMHandleData,
49 PVOID lpSecurityAttributes,
50 PHMHANDLEDATA pHMHandleDataTemplate);
51
52 /* this is a handler method for calls to OpenFile() */
53 virtual DWORD OpenFile (LPCSTR lpFileName,
54 PHMHANDLEDATA pHMHandleData,
55 OFSTRUCT* pOFStruct,
56 UINT fuMode);
57
58 virtual BOOL DuplicateHandle(PHMHANDLEDATA pHMHandleData, HANDLE srcprocess,
59 PHMHANDLEDATA pHMSrcHandle,
60 HANDLE destprocess,
61 PHANDLE desthandle,
62 DWORD fdwAccess,
63 BOOL fInherit,
64 DWORD fdwOptions);
65
66 /* this is a handler method for calls to CloseHandle() */
67 virtual DWORD CloseHandle(PHMHANDLEDATA pHMHandleData);
68
69 /* this is a handler method for calls to ReadFile() */
70 virtual BOOL ReadFile (PHMHANDLEDATA pHMHandleData,
71 LPCVOID lpBuffer,
72 DWORD nNumberOfBytesToRead,
73 LPDWORD lpNumberOfBytesRead,
74 LPOVERLAPPED lpOverlapped);
75
76 /* this is a handler method for calls to ReadFileEx() */
77 virtual BOOL ReadFileEx(PHMHANDLEDATA pHMHandleData,
78 LPVOID lpBuffer,
79 DWORD nNumberOfBytesToRead,
80 LPOVERLAPPED lpOverlapped,
81 LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
82
83 /* this is a handler method for calls to WriteFile() */
84 virtual BOOL WriteFile (PHMHANDLEDATA pHMHandleData,
85 LPCVOID lpBuffer,
86 DWORD nNumberOfBytesToWrite,
87 LPDWORD lpNumberOfBytesWritten,
88 LPOVERLAPPED lpOverlapped);
89
90 /* this is a handler method for calls to WriteFileEx() */
91 virtual BOOL WriteFileEx(PHMHANDLEDATA pHMHandleData,
92 LPVOID lpBuffer,
93 DWORD nNumberOfBytesToWrite,
94 LPOVERLAPPED lpOverlapped,
95 LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
96
97 /* this is a handler method for calls to GetFileType() */
98 virtual DWORD GetFileType (PHMHANDLEDATA pHMHandleData);
99
100 /* this is a handler method for calls to GetFileInformationByHandle() */
101 virtual DWORD GetFileInformationByHandle(PHMHANDLEDATA pHMHandleData,
102 BY_HANDLE_FILE_INFORMATION* pHFI);
103
104 /* this is a handler method for calls to SetEndOfFile() */
105 virtual BOOL SetEndOfFile(PHMHANDLEDATA pHMHandleData);
106
107 /* this is a handler method for calls to SetFileTime() */
108 virtual BOOL SetFileTime (PHMHANDLEDATA pHMHandleData,
109 LPFILETIME pFT1,
110 LPFILETIME pFT2,
111 LPFILETIME pFT3);
112
113 /* this is a handler method for calls to GetFileTime() */
114 virtual BOOL GetFileTime (PHMHANDLEDATA pHMHandleData,
115 LPFILETIME pFT1,
116 LPFILETIME pFT2,
117 LPFILETIME pFT3);
118
119 /* this is a handler method for calls to GetFileSize() */
120 virtual DWORD GetFileSize(PHMHANDLEDATA pHMHandleData,
121 PDWORD pSizeHigh);
122
123 /* this is a handler method for calls to SetFilePointer() */
124 virtual DWORD SetFilePointer(PHMHANDLEDATA pHMHandleData,
125 LONG lDistanceToMove,
126 PLONG lpDistanceToMoveHigh,
127 DWORD dwMoveMethod);
128
129 /* this is a handler method for calls to LockFile() */
130 virtual DWORD LockFile(PHMHANDLEDATA pHMHandleData,
131 DWORD arg2,
132 DWORD arg3,
133 DWORD arg4,
134 DWORD arg5);
135
136 /* this is a handler method for calls to LockFileEx() */
137 virtual DWORD LockFileEx(PHMHANDLEDATA pHMHandleData,
138 DWORD dwFlags,
139 DWORD dwReserved,
140 DWORD nNumberOfBytesToLockLow,
141 DWORD nNumberOfBytesToLockHigh,
142 LPOVERLAPPED lpOverlapped);
143
144 /* this is a handler method for calls to UnlockFile() */
145 virtual DWORD UnlockFile(PHMHANDLEDATA pHMHandleData,
146 DWORD arg2,
147 DWORD arg3,
148 DWORD arg4,
149 DWORD arg5);
150
151 /* this is a handler method for calls to UnlockFileEx() */
152 virtual DWORD UnlockFileEx(PHMHANDLEDATA pHMHandleData,
153 DWORD dwReserved,
154 DWORD nNumberOfBytesToLockLow,
155 DWORD nNumberOfBytesToLockHigh,
156 LPOVERLAPPED lpOverlapped);
157
158 /* this is a handler method for calls to FlushFileBuffers */
159 virtual BOOL FlushFileBuffers(PHMHANDLEDATA pHMHandleData);
160
161 /* this is a handler method for calls to GetOverlappedResult */
162 virtual BOOL GetOverlappedResult(PHMHANDLEDATA pHMHandleData,
163 LPOVERLAPPED arg2,
164 LPDWORD arg3,
165 BOOL arg4);
166
167};
168
169
170#endif /* __HMFILE_H__ */
171
Note: See TracBrowser for help on using the repository browser.