source: trunk/src/kernel32/conin.h@ 22015

Last change on this file since 22015 was 7549, checked in by sandervl, 24 years ago

preliminary changes for new overlapped io framework

File size: 6.2 KB
Line 
1/* $Id: conin.h,v 1.5 2001-12-05 14:15:58 sandervl Exp $ */
2
3/*
4 * Project Odin Software License can be found in LICENSE.TXT
5 * Win32 Console Subsystem for OS/2
6 * 1998/02/11 PH Patrick Haller (haller@zebra.fh-weingarten.de)
7 */
8
9#ifndef _CONSOLE_IN_H_
10#define _CONSOLE_IN_H_
11
12
13/*****************************************************************************
14 * Remark *
15 *****************************************************************************
16
17 */
18
19
20/*****************************************************************************
21 * Resources *
22 *****************************************************************************/
23
24
25/*****************************************************************************
26 * Includes *
27 *****************************************************************************/
28
29//#include <win32type.h>
30#include "handlemanager.h"
31#include "HMDevice.h"
32#include "console2.h"
33
34
35/*****************************************************************************
36 * ConsoleInput - manages a queue of window events fro keyboard, mouse, etc. *
37 *****************************************************************************/
38
39class HMDeviceConsoleInClass : public HMDeviceHandler
40{
41 protected:
42 /* input queue */
43 DWORD dwNumberOfInputEvents; /* number of unread events in input queue */
44 PICONSOLEINPUT pConsoleInput; /* pointer to console input area */
45 PICONSOLEGLOBALS pConsoleGlobals; /* pointer to console global area */
46
47 public:
48 HMDeviceConsoleInClass(LPCSTR lpDeviceName,
49 PICONSOLEINPUT piConsoleInput,
50 PICONSOLEGLOBALS piConsoleGlobals)
51 : HMDeviceHandler(lpDeviceName)
52 {
53 pConsoleInput = piConsoleInput; // save pointers to this data
54 pConsoleGlobals = piConsoleGlobals;
55 }
56
57 /* this is a handler method for calls to CreateFile() */
58 virtual DWORD CreateFile (LPCSTR lpFileName,
59 PHMHANDLEDATA pHMHandleData,
60 PVOID lpSecurityAttributes,
61 PHMHANDLEDATA pHMHandleDataTemplate);
62
63 /* this is a handler method for calls to ReadFile() */
64 virtual BOOL ReadFile (PHMHANDLEDATA pHMHandleData,
65 LPCVOID lpBuffer,
66 DWORD nNumberOfBytesToRead,
67 LPDWORD lpNumberOfBytesRead,
68 LPOVERLAPPED lpOverlapped,
69 LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
70
71 /* this is a handler method for calls to WriteFile() */
72 virtual BOOL WriteFile (PHMHANDLEDATA pHMHandleData,
73 LPCVOID lpBuffer,
74 DWORD nNumberOfBytesToWrite,
75 LPDWORD lpNumberOfBytesWritten,
76 LPOVERLAPPED lpOverlapped,
77 LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
78
79 /* this is a handler method for calls to GetFileType() */
80 virtual DWORD GetFileType (PHMHANDLEDATA pHMHandleData);
81
82 virtual DWORD _DeviceRequest (PHMHANDLEDATA pHMHandleData,
83 ULONG ulRequestCode,
84 ULONG arg1,
85 ULONG arg2,
86 ULONG arg3,
87 ULONG arg4);
88
89 /************************************
90 * non-standard console I/O methods *
91 ************************************/
92
93 virtual BOOL FlushConsoleInputBuffer(PHMHANDLEDATA pHMHandleData);
94
95 virtual DWORD GetConsoleMode(PHMHANDLEDATA pHMHandleData,
96 LPDWORD lpMode);
97
98 virtual BOOL GetNumberOfConsoleInputEvents(PHMHANDLEDATA pHMHandleData,
99 LPDWORD lpNumberOfEvents);
100
101 virtual DWORD PeekConsoleInputA(PHMHANDLEDATA pHMHandleData,
102 PINPUT_RECORD pirBuffer,
103 DWORD cInRecords,
104 LPDWORD lpcRead);
105
106 virtual DWORD PeekConsoleInputW(PHMHANDLEDATA pHMHandleData,
107 PINPUT_RECORD pirBuffer,
108 DWORD cInRecords,
109 LPDWORD lpcRead);
110
111 virtual DWORD ReadConsoleA(PHMHANDLEDATA pHMHandleData,
112 CONST VOID* lpvBuffer,
113 DWORD cchToRead,
114 LPDWORD lpcchRead,
115 LPVOID lpvReserved);
116
117 virtual DWORD ReadConsoleW(PHMHANDLEDATA pHMHandleData,
118 CONST VOID* lpvBuffer,
119 DWORD cchToRead,
120 LPDWORD lpcchRead,
121 LPVOID lpvReserved);
122
123 virtual DWORD ReadConsoleInputA(PHMHANDLEDATA pHMHandleData,
124 PINPUT_RECORD pirBuffer,
125 DWORD cInRecords,
126 LPDWORD lpcRead);
127
128 virtual DWORD ReadConsoleInputW(PHMHANDLEDATA pHMHandleData,
129 PINPUT_RECORD pirBuffer,
130 DWORD cInRecords,
131 LPDWORD lpcRead);
132
133 virtual DWORD SetConsoleMode(PHMHANDLEDATA pHMHandleData,
134 DWORD dwMode);
135
136 virtual DWORD WriteConsoleInputA (PHMHANDLEDATA pHMHandleData,
137 PINPUT_RECORD pirBuffer,
138 DWORD cInRecords,
139 LPDWORD lpcWritten);
140
141 virtual DWORD WriteConsoleInputW (PHMHANDLEDATA pHMHandleData,
142 PINPUT_RECORD pirBuffer,
143 DWORD cInRecords,
144 LPDWORD lpcWritten);
145
146};
147
148#endif /* _CONSOLE_IN_H_ */
149
Note: See TracBrowser for help on using the repository browser.