source: trunk/src/kernel32/hmmailslot.h@ 7509

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

preliminary work on overlapped serial comm IO

File size: 4.2 KB
Line 
1/*
2 * Project Odin Software License can be found in LICENSE.TXT
3 * Win32 Unified Handle Manager for OS/2
4 */
5
6#ifndef __HMMAILSLOT_H__
7#define __HMMAILSLOT_H__
8
9
10/*****************************************************************************
11 * Remark *
12 *****************************************************************************
13 */
14
15
16/*****************************************************************************
17 * Includes *
18 *****************************************************************************/
19
20#include "HMDevice.h"
21#include "HMOpen32.h"
22
23
24#define MAILSLOT_SIZE 65536
25
26class HMMailSlotInfo
27{
28public:
29 HMMailSlotInfo(LPCSTR lpszName, HANDLE hPipe, DWORD nMaxMessageSize,
30 DWORD lReadTimeout, BOOL fServer,
31 LPSECURITY_ATTRIBUTES lpSecurityAttributes);
32 ~HMMailSlotInfo();
33
34 LPSTR lpszName;
35 LPSECURITY_ATTRIBUTES lpSecurityAttributes;
36 LPVOID lpMessage;
37 DWORD dwMessageCount;
38 DWORD nMaxMessageSize;
39 DWORD lReadTimeout;
40 BOOL fServer;
41 HANDLE hPipe;
42};
43
44/*****************************************************************************
45 * Structures *
46 *****************************************************************************/
47
48class HMMailslotClass : public HMDeviceHandler
49{
50public:
51 HMMailslotClass(LPCSTR lpDeviceName);
52
53 virtual BOOL FindDevice(LPCSTR lpClassDevName, LPCSTR lpDeviceName, int namelength);
54
55 BOOL CreateMailslotA(PHMHANDLEDATA pHMHandleData,
56 LPCSTR lpName, DWORD nMaxMessageSize,
57 DWORD lReadTimeout,
58 LPSECURITY_ATTRIBUTES lpSecurityAttributes);
59
60 virtual BOOL GetMailslotInfo(PHMHANDLEDATA pHMHandleData,
61 LPDWORD lpMaxMessageSize,
62 LPDWORD lpNextSize,
63 LPDWORD lpMessageCount,
64 LPDWORD lpReadTimeout);
65
66 virtual BOOL SetMailslotInfo(PHMHANDLEDATA pHMHandleData,
67 DWORD dwReadTimeout);
68
69
70 /* this is a handler method for calls to CreateFile() */
71 virtual DWORD CreateFile (HANDLE hHandle,
72 LPCSTR lpFileName,
73 PHMHANDLEDATA pHMHandleData,
74 PVOID lpSecurityAttributes,
75 PHMHANDLEDATA pHMHandleDataTemplate);
76
77 /* this is a handler method for calls to CloseHandle() */
78 virtual BOOL CloseHandle(PHMHANDLEDATA pHMHandleData);
79
80
81 /* this is a handler method for calls to ReadFile() */
82 virtual BOOL ReadFile (PHMHANDLEDATA pHMHandleData,
83 LPCVOID lpBuffer,
84 DWORD nNumberOfBytesToRead,
85 LPDWORD lpNumberOfBytesRead,
86 LPOVERLAPPED lpOverlapped);
87
88 /* this is a handler method for calls to ReadFileEx() */
89 virtual BOOL ReadFileEx(PHMHANDLEDATA pHMHandleData,
90 LPVOID lpBuffer,
91 DWORD nNumberOfBytesToRead,
92 LPOVERLAPPED lpOverlapped,
93 LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
94
95 /* this is a handler method for calls to WriteFile() */
96 virtual BOOL WriteFile (PHMHANDLEDATA pHMHandleData,
97 LPCVOID lpBuffer,
98 DWORD nNumberOfBytesToWrite,
99 LPDWORD lpNumberOfBytesWritten,
100 LPOVERLAPPED lpOverlapped);
101
102 /* this is a handler method for calls to WriteFileEx() */
103 virtual BOOL WriteFileEx(PHMHANDLEDATA pHMHandleData,
104 LPVOID lpBuffer,
105 DWORD nNumberOfBytesToWrite,
106 LPOVERLAPPED lpOverlapped,
107 LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
108
109private:
110
111};
112
113
114#endif /* __HMMAILSLOT_H__ */
115
Note: See TracBrowser for help on using the repository browser.