winapi_ui_automation/um/
commapi.rs

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