1 // Copyright © 2016-2017 winapi-rs developers
2 // Licensed under the Apache License, Version 2.0
3 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
4 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
5 // All files in the project carrying such notice may not be copied, modified, or distributed
6 // except according to those terms.
7 use ctypes::c_char;
8 use shared::minwindef::{BOOL, DWORD, LPDWORD};
9 use um::minwinbase::LPOVERLAPPED;
10 use um::winbase::{LPCOMMCONFIG, LPCOMMPROP, LPCOMMTIMEOUTS, LPCOMSTAT, LPDCB};
11 use um::winnt::HANDLE;
12 extern "system" {
ClearCommBreak( hFile: HANDLE ) -> BOOL13     pub fn ClearCommBreak(
14         hFile: HANDLE
15     ) -> BOOL;
ClearCommError( hFile: HANDLE, lpErrors: LPDWORD, lpStat: LPCOMSTAT ) -> BOOL16     pub fn ClearCommError(
17         hFile: HANDLE,
18         lpErrors: LPDWORD,
19         lpStat: LPCOMSTAT
20     ) -> BOOL;
SetupComm( hFile: HANDLE, dwInQueue: DWORD, dwOutQueue: DWORD ) -> BOOL21     pub fn SetupComm(
22         hFile: HANDLE,
23         dwInQueue: DWORD,
24         dwOutQueue: DWORD
25     ) -> BOOL;
EscapeCommFunction( hFile: HANDLE, dwFunc: DWORD ) -> BOOL26     pub fn EscapeCommFunction(
27         hFile: HANDLE,
28         dwFunc: DWORD
29     ) -> BOOL;
GetCommConfig( hCommDev: HANDLE, lpCC: LPCOMMCONFIG, lpdwSize: LPDWORD ) -> BOOL30     pub fn GetCommConfig(
31         hCommDev: HANDLE,
32         lpCC: LPCOMMCONFIG,
33         lpdwSize: LPDWORD
34     ) -> BOOL;
GetCommMask( hFile: HANDLE, lpEvtMask: LPDWORD ) -> BOOL35     pub fn GetCommMask(
36         hFile: HANDLE,
37         lpEvtMask: LPDWORD
38     ) -> BOOL;
GetCommModemStatus( hFile: HANDLE, lpModemStat: LPDWORD ) -> BOOL39     pub fn GetCommModemStatus(
40         hFile: HANDLE,
41         lpModemStat: LPDWORD
42     ) -> BOOL;
GetCommProperties( hFile: HANDLE, lpCommProp: LPCOMMPROP ) -> BOOL43     pub fn GetCommProperties(
44         hFile: HANDLE,
45         lpCommProp: LPCOMMPROP
46     ) -> BOOL;
GetCommState( hFile: HANDLE, lpDCB: LPDCB ) -> BOOL47     pub fn GetCommState(
48         hFile: HANDLE,
49         lpDCB: LPDCB
50     ) -> BOOL;
GetCommTimeouts( hFile: HANDLE, lpCommTimeouts: LPCOMMTIMEOUTS ) -> BOOL51     pub fn GetCommTimeouts(
52         hFile: HANDLE,
53         lpCommTimeouts: LPCOMMTIMEOUTS
54     ) -> BOOL;
PurgeComm( hFile: HANDLE, dwFlags: DWORD ) -> BOOL55     pub fn PurgeComm(
56         hFile: HANDLE,
57         dwFlags: DWORD
58     ) -> BOOL;
SetCommBreak( hFile: HANDLE ) -> BOOL59     pub fn SetCommBreak(
60         hFile: HANDLE
61     ) -> BOOL;
SetCommConfig( hCommDev: HANDLE, lpCC: LPCOMMCONFIG, dwSize: DWORD ) -> BOOL62     pub fn SetCommConfig(
63         hCommDev: HANDLE,
64         lpCC: LPCOMMCONFIG,
65         dwSize: DWORD
66     ) -> BOOL;
SetCommMask( hFile: HANDLE, dwEvtMask: DWORD ) -> BOOL67     pub fn SetCommMask(
68         hFile: HANDLE,
69         dwEvtMask: DWORD
70     ) -> BOOL;
SetCommState( hFile: HANDLE, lpDCB: LPDCB ) -> BOOL71     pub fn SetCommState(
72         hFile: HANDLE,
73         lpDCB: LPDCB
74     ) -> BOOL;
SetCommTimeouts( hFile: HANDLE, lpCommTimeouts: LPCOMMTIMEOUTS ) -> BOOL75     pub fn SetCommTimeouts(
76         hFile: HANDLE,
77         lpCommTimeouts: LPCOMMTIMEOUTS
78     ) -> BOOL;
TransmitCommChar( hFile: HANDLE, cChar: c_char ) -> BOOL79     pub fn TransmitCommChar(
80         hFile: HANDLE,
81         cChar: c_char
82     ) -> BOOL;
WaitCommEvent( hFile: HANDLE, lpEvtMask: LPDWORD, lpOverlapped: LPOVERLAPPED ) -> BOOL83     pub fn WaitCommEvent(
84         hFile: HANDLE,
85         lpEvtMask: LPDWORD,
86         lpOverlapped: LPOVERLAPPED
87     ) -> BOOL;
88 }
89