source: trunk/src/kernel32/hmcomm.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: 5.6 KB
Line 
1/* $Id: hmcomm.h,v 1.8 2001-04-26 13:22:44 sandervl Exp $ */
2
3/*
4 * Project Odin Software License can be found in LICENSE.TXT
5 *
6 * Win32 COM device access class
7 *
8 * 1999 Achim Hasenmueller <achimha@innotek.de>
9 *
10 */
11
12#ifndef _HM_COMM_H_
13#define _HM_COMM_H_
14typedef struct
15{
16 DWORD dwBaudRate;
17 DWORD dwBaudFlag;
18}BAUDTABLEENTRY;
19
20class HMDeviceCommClass : public HMDeviceHandler
21{
22 public:
23
24 HMDeviceCommClass(LPCSTR lpDeviceName);
25
26 //checks if device name belongs to this class
27 virtual BOOL FindDevice(LPCSTR lpClassDevName, LPCSTR lpDeviceName, int namelength);
28
29 /* this is the handler method for calls to CreateFile() */
30 virtual DWORD CreateFile (LPCSTR lpFileName,
31 PHMHANDLEDATA pHMHandleData,
32 PVOID lpSecurityAttributes,
33 PHMHANDLEDATA pHMHandleDataTemplate);
34
35 /* this is the handler method for calls to CloseHandle() */
36 virtual BOOL CloseHandle(PHMHANDLEDATA pHMHandleData);
37
38 /* this is the handler method for SetComm() */
39 virtual BOOL WaitCommEvent( PHMHANDLEDATA pHMHandleData,
40 LPDWORD lpfdwEvtMask,
41 LPOVERLAPPED lpo);
42
43 virtual BOOL GetCommProperties( PHMHANDLEDATA pHMHandleData,
44 LPCOMMPROP lpcmmp);
45 virtual BOOL GetCommMask( PHMHANDLEDATA pHMHandleData,
46 LPDWORD lpfdwEvtMask);
47 virtual BOOL SetCommMask( PHMHANDLEDATA pHMHandleData,
48 DWORD fdwEvtMask);
49 virtual BOOL PurgeComm( PHMHANDLEDATA pHMHandleData,
50 DWORD fdwAction);
51 virtual BOOL ClearCommError( PHMHANDLEDATA pHMHandleData,
52 LPDWORD lpdwErrors,
53 LPCOMSTAT lpcst);
54 virtual BOOL SetCommState( PHMHANDLEDATA pHMHandleData,
55 LPDCB lpdcb) ;
56 virtual BOOL GetCommState( PHMHANDLEDATA pHMHandleData,
57 LPDCB lpdcb);
58 virtual BOOL GetCommModemStatus( PHMHANDLEDATA pHMHandleData,
59 LPDWORD lpModemStat );
60 virtual BOOL GetCommTimeouts( PHMHANDLEDATA pHMHandleData,
61 LPCOMMTIMEOUTS lpctmo);
62 virtual BOOL SetCommTimeouts( PHMHANDLEDATA pHMHandleData,
63 LPCOMMTIMEOUTS lpctmo);
64 virtual BOOL TransmitCommChar( PHMHANDLEDATA pHMHandleData,
65 CHAR cChar );
66 virtual BOOL SetCommConfig( PHMHANDLEDATA pHMHandleData,
67 LPCOMMCONFIG lpCC,
68 DWORD dwSize );
69 virtual BOOL SetCommBreak( PHMHANDLEDATA pHMHandleData );
70 virtual BOOL GetCommConfig( PHMHANDLEDATA pHMHandleData,
71 LPCOMMCONFIG lpCC,
72 LPDWORD lpdwSize );
73 virtual BOOL EscapeCommFunction( PHMHANDLEDATA pHMHandleData,
74 UINT dwFunc );
75 virtual BOOL SetupComm( PHMHANDLEDATA pHMHandleData,
76 DWORD dwInQueue,
77 DWORD dwOutQueue);
78 virtual BOOL ClearCommBreak( PHMHANDLEDATA pHMHandleData);
79 virtual BOOL SetDefaultCommConfig( PHMHANDLEDATA pHMHandleData,
80 LPCOMMCONFIG lpCC,
81 DWORD dwSize);
82 virtual BOOL GetDefaultCommConfig( PHMHANDLEDATA pHMHandleData,
83 LPCOMMCONFIG lpCC,
84 LPDWORD lpdwSize);
85
86 /* this is a handler method for calls to ReadFile() */
87 virtual BOOL ReadFile (PHMHANDLEDATA pHMHandleData,
88 LPCVOID lpBuffer,
89 DWORD nNumberOfBytesToRead,
90 LPDWORD lpNumberOfBytesRead,
91 LPOVERLAPPED lpOverlapped);
92
93 /* this is a handler method for calls to ReadFileEx() */
94 virtual BOOL ReadFileEx(PHMHANDLEDATA pHMHandleData,
95 LPVOID lpBuffer,
96 DWORD nNumberOfBytesToRead,
97 LPOVERLAPPED lpOverlapped,
98 LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
99
100 /* this is a handler method for calls to WriteFile() */
101 virtual BOOL WriteFile (PHMHANDLEDATA pHMHandleData,
102 LPCVOID lpBuffer,
103 DWORD nNumberOfBytesToWrite,
104 LPDWORD lpNumberOfBytesWritten,
105 LPOVERLAPPED lpOverlapped);
106
107 /* this is a handler method for calls to WriteFileEx() */
108 virtual BOOL WriteFileEx(PHMHANDLEDATA pHMHandleData,
109 LPVOID lpBuffer,
110 DWORD nNumberOfBytesToWrite,
111 LPOVERLAPPED lpOverlapped,
112 LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
113
114 private:
115 APIRET SetLine( PHMHANDLEDATA pHMHandleData,
116 UCHAR ucSize,UCHAR Parity, UCHAR Stop);
117 APIRET SetOS2DCB( PHMHANDLEDATA pHMHandleData,
118 BOOL fOutxCtsFlow, BOOL fOutxDsrFlow,
119 UCHAR ucDtrControl, BOOL fDsrSensitivity,
120 BOOL fTXContinueOnXoff, BOOL fOutX,
121 BOOL fInX, BOOL fErrorChar,
122 BOOL fNull, UCHAR ucRtsControl,
123 BOOL fAbortOnError, BYTE XonChar,
124 BYTE XoffChar,BYTE ErrorChar);
125 APIRET SetBaud( PHMHANDLEDATA pHMHandleData,
126 DWORD dwNewBaud);
127};
128
129
130#endif // _HM_COMM_H_
Note: See TracBrowser for help on using the repository browser.