@@ -56,6 +56,7 @@ pub type LPPROCESS_INFORMATION = *mut PROCESS_INFORMATION;
56
56
pub type LPSECURITY_ATTRIBUTES = * mut SECURITY_ATTRIBUTES ;
57
57
pub type LPSTARTUPINFO = * mut STARTUPINFO ;
58
58
pub type LPVOID = * mut c_void ;
59
+ pub type LPCVOID = * const c_void ;
59
60
pub type LPWCH = * mut WCHAR ;
60
61
pub type LPWIN32_FIND_DATAW = * mut WIN32_FIND_DATAW ;
61
62
pub type LPWSADATA = * mut WSADATA ;
@@ -773,6 +774,16 @@ pub struct timeval {
773
774
pub tv_usec : c_long ,
774
775
}
775
776
777
+ #[ repr( C ) ]
778
+ #[ derive( Copy , Clone ) ]
779
+ pub struct CONSOLE_READCONSOLE_CONTROL {
780
+ pub nLength : ULONG ,
781
+ pub nInitialChars : ULONG ,
782
+ pub dwCtrlWakeupMask : ULONG ,
783
+ pub dwControlKeyState : ULONG ,
784
+ }
785
+ pub type PCONSOLE_READCONSOLE_CONTROL = * mut CONSOLE_READCONSOLE_CONTROL ;
786
+
776
787
// Desktop specific functions & types
777
788
cfg_if:: cfg_if! {
778
789
if #[ cfg( not( target_vendor = "uwp" ) ) ] {
@@ -801,17 +812,6 @@ if #[cfg(not(target_vendor = "uwp"))] {
801
812
pub type PVECTORED_EXCEPTION_HANDLER =
802
813
extern "system" fn ( ExceptionInfo : * mut EXCEPTION_POINTERS ) -> LONG ;
803
814
804
- #[ repr( C ) ]
805
- #[ derive( Copy , Clone ) ]
806
- pub struct CONSOLE_READCONSOLE_CONTROL {
807
- pub nLength: ULONG ,
808
- pub nInitialChars: ULONG ,
809
- pub dwCtrlWakeupMask: ULONG ,
810
- pub dwControlKeyState: ULONG ,
811
- }
812
-
813
- pub type PCONSOLE_READCONSOLE_CONTROL = * mut CONSOLE_READCONSOLE_CONTROL ;
814
-
815
815
#[ repr( C ) ]
816
816
pub struct BY_HANDLE_FILE_INFORMATION {
817
817
pub dwFileAttributes: DWORD ,
@@ -827,7 +827,6 @@ if #[cfg(not(target_vendor = "uwp"))] {
827
827
}
828
828
829
829
pub type LPBY_HANDLE_FILE_INFORMATION = * mut BY_HANDLE_FILE_INFORMATION ;
830
- pub type LPCVOID = * const c_void;
831
830
832
831
pub const HANDLE_FLAG_INHERIT : DWORD = 0x00000001 ;
833
832
@@ -855,24 +854,6 @@ if #[cfg(not(target_vendor = "uwp"))] {
855
854
856
855
#[ link( name = "kernel32" ) ]
857
856
extern "system" {
858
- // Functions forbidden when targeting UWP
859
- pub fn ReadConsoleW (
860
- hConsoleInput: HANDLE ,
861
- lpBuffer: LPVOID ,
862
- nNumberOfCharsToRead: DWORD ,
863
- lpNumberOfCharsRead: LPDWORD ,
864
- pInputControl: PCONSOLE_READCONSOLE_CONTROL ,
865
- ) -> BOOL ;
866
-
867
- pub fn WriteConsoleW (
868
- hConsoleOutput: HANDLE ,
869
- lpBuffer: LPCVOID ,
870
- nNumberOfCharsToWrite: DWORD ,
871
- lpNumberOfCharsWritten: LPDWORD ,
872
- lpReserved: LPVOID ,
873
- ) -> BOOL ;
874
-
875
- pub fn GetConsoleMode ( hConsoleHandle: HANDLE , lpMode: LPDWORD ) -> BOOL ;
876
857
// Allowed but unused by UWP
877
858
pub fn GetFileInformationByHandle (
878
859
hFile: HANDLE ,
@@ -914,6 +895,22 @@ if #[cfg(target_vendor = "uwp")] {
914
895
extern "system" {
915
896
pub fn GetCurrentProcessId ( ) -> DWORD ;
916
897
898
+ pub fn ReadConsoleW (
899
+ hConsoleInput : HANDLE ,
900
+ lpBuffer : LPVOID ,
901
+ nNumberOfCharsToRead : DWORD ,
902
+ lpNumberOfCharsRead : LPDWORD ,
903
+ pInputControl : PCONSOLE_READCONSOLE_CONTROL ,
904
+ ) -> BOOL ;
905
+ pub fn WriteConsoleW (
906
+ hConsoleOutput : HANDLE ,
907
+ lpBuffer : LPCVOID ,
908
+ nNumberOfCharsToWrite : DWORD ,
909
+ lpNumberOfCharsWritten : LPDWORD ,
910
+ lpReserved : LPVOID ,
911
+ ) -> BOOL ;
912
+ pub fn GetConsoleMode ( hConsoleHandle : HANDLE , lpMode : LPDWORD ) -> BOOL ;
913
+
917
914
pub fn GetSystemDirectoryW ( lpBuffer : LPWSTR , uSize : UINT ) -> UINT ;
918
915
pub fn RemoveDirectoryW ( lpPathName : LPCWSTR ) -> BOOL ;
919
916
pub fn SetFileAttributesW ( lpFileName : LPCWSTR , dwFileAttributes : DWORD ) -> BOOL ;
0 commit comments