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