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

Last change on this file since 7029 was 5587, checked in by sandervl, 24 years ago

added mailslot implemenation, named pipe fixes + FreeLibraryAndExitThread

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