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

Last change on this file since 7544 was 7457, checked in by sandervl, 24 years ago

preliminary work on overlapped serial comm IO

File size: 7.6 KB
Line 
1/* $Id: hmfile.h,v 1.6 2001-11-26 14:54:02 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 (HANDLE hHandle,
48 LPCSTR lpFileName,
49 PHMHANDLEDATA pHMHandleData,
50 PVOID lpSecurityAttributes,
51 PHMHANDLEDATA pHMHandleDataTemplate);
52
53 /* this is a handler method for calls to OpenFile() */
54 virtual DWORD OpenFile (HANDLE hHandle,
55 LPCSTR lpFileName,
56 PHMHANDLEDATA pHMHandleData,
57 OFSTRUCT* pOFStruct,
58 UINT fuMode);
59
60 virtual BOOL DuplicateHandle(PHMHANDLEDATA pHMHandleData, HANDLE srcprocess,
61 PHMHANDLEDATA pHMSrcHandle,
62 HANDLE destprocess,
63 PHANDLE desthandle,
64 DWORD fdwAccess,
65 BOOL fInherit,
66 DWORD fdwOptions,
67 DWORD fdwOdinOptions);
68
69 /* this is a handler method for calls to CloseHandle() */
70 virtual BOOL CloseHandle(PHMHANDLEDATA pHMHandleData);
71
72 /* this is a handler method for calls to ReadFile() */
73 virtual BOOL ReadFile (PHMHANDLEDATA pHMHandleData,
74 LPCVOID lpBuffer,
75 DWORD nNumberOfBytesToRead,
76 LPDWORD lpNumberOfBytesRead,
77 LPOVERLAPPED lpOverlapped);
78
79 /* this is a handler method for calls to ReadFileEx() */
80 virtual BOOL ReadFileEx(PHMHANDLEDATA pHMHandleData,
81 LPVOID lpBuffer,
82 DWORD nNumberOfBytesToRead,
83 LPOVERLAPPED lpOverlapped,
84 LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
85
86 /* this is a handler method for calls to WriteFile() */
87 virtual BOOL WriteFile (PHMHANDLEDATA pHMHandleData,
88 LPCVOID lpBuffer,
89 DWORD nNumberOfBytesToWrite,
90 LPDWORD lpNumberOfBytesWritten,
91 LPOVERLAPPED lpOverlapped);
92
93 /* this is a handler method for calls to WriteFileEx() */
94 virtual BOOL WriteFileEx(PHMHANDLEDATA pHMHandleData,
95 LPVOID lpBuffer,
96 DWORD nNumberOfBytesToWrite,
97 LPOVERLAPPED lpOverlapped,
98 LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
99
100 /* this is a handler method for calls to GetFileType() */
101 virtual DWORD GetFileType (PHMHANDLEDATA pHMHandleData);
102
103 /* this is a handler method for calls to GetFileInformationByHandle() */
104 virtual DWORD GetFileInformationByHandle(PHMHANDLEDATA pHMHandleData,
105 BY_HANDLE_FILE_INFORMATION* pHFI);
106
107 /* this is a handler method for calls to SetEndOfFile() */
108 virtual BOOL SetEndOfFile(PHMHANDLEDATA pHMHandleData);
109
110 /* this is a handler method for calls to SetFileTime() */
111 virtual BOOL SetFileTime (PHMHANDLEDATA pHMHandleData,
112 LPFILETIME pFT1,
113 LPFILETIME pFT2,
114 LPFILETIME pFT3);
115
116 /* this is a handler method for calls to GetFileTime() */
117 virtual BOOL GetFileTime (PHMHANDLEDATA pHMHandleData,
118 LPFILETIME pFT1,
119 LPFILETIME pFT2,
120 LPFILETIME pFT3);
121
122 /* this is a handler method for calls to GetFileSize() */
123 virtual DWORD GetFileSize(PHMHANDLEDATA pHMHandleData,
124 PDWORD pSizeHigh);
125
126 /* this is a handler method for calls to SetFilePointer() */
127 virtual DWORD SetFilePointer(PHMHANDLEDATA pHMHandleData,
128 LONG lDistanceToMove,
129 PLONG lpDistanceToMoveHigh,
130 DWORD dwMoveMethod);
131
132 /* this is a handler method for calls to LockFile() */
133 virtual BOOL LockFile(PHMHANDLEDATA pHMHandleData,
134 DWORD arg2,
135 DWORD arg3,
136 DWORD arg4,
137 DWORD arg5);
138
139 /* this is a handler method for calls to LockFileEx() */
140 virtual BOOL LockFileEx(PHMHANDLEDATA pHMHandleData,
141 DWORD dwFlags,
142 DWORD dwReserved,
143 DWORD nNumberOfBytesToLockLow,
144 DWORD nNumberOfBytesToLockHigh,
145 LPOVERLAPPED lpOverlapped);
146
147 /* this is a handler method for calls to UnlockFile() */
148 virtual BOOL UnlockFile(PHMHANDLEDATA pHMHandleData,
149 DWORD arg2,
150 DWORD arg3,
151 DWORD arg4,
152 DWORD arg5);
153
154 /* this is a handler method for calls to UnlockFileEx() */
155 virtual BOOL UnlockFileEx(PHMHANDLEDATA pHMHandleData,
156 DWORD dwReserved,
157 DWORD nNumberOfBytesToLockLow,
158 DWORD nNumberOfBytesToLockHigh,
159 LPOVERLAPPED lpOverlapped);
160
161 /* this is a handler method for calls to FlushFileBuffers */
162 virtual BOOL FlushFileBuffers(PHMHANDLEDATA pHMHandleData);
163
164 /* this is a handler method for calls to GetOverlappedResult */
165 virtual BOOL GetOverlappedResult(PHMHANDLEDATA pHMHandleData,
166 LPOVERLAPPED arg2,
167 LPDWORD arg3,
168 BOOL arg4);
169
170private:
171 void ParsePath(LPCSTR lpszFileName, LPSTR lpszParsedFileName, DWORD length);
172
173};
174
175
176#endif /* __HMFILE_H__ */
177
Note: See TracBrowser for help on using the repository browser.