mirror of
https://github.com/rustdesk/rustdesk.git
synced 2024-12-21 07:57:50 +08:00
9558974080
* Refact. Build flutter web Signed-off-by: fufesou <shuanglongchen@yeah.net> * Refact. Flutter web, wrap Platform.xx Signed-off-by: fufesou <shuanglongchen@yeah.net> --------- Signed-off-by: fufesou <shuanglongchen@yeah.net>
42 lines
1.2 KiB
Dart
42 lines
1.2 KiB
Dart
import 'dart:ffi' hide Size;
|
|
|
|
import 'package:ffi/ffi.dart';
|
|
|
|
import 'package:win32/win32.dart' as win32;
|
|
|
|
/// Get windows target build number.
|
|
///
|
|
/// [Note]
|
|
/// Please use this function wrapped with `Platform.isWindows`.
|
|
int getWindowsTargetBuildNumber_() {
|
|
final rtlGetVersion = DynamicLibrary.open('ntdll.dll').lookupFunction<
|
|
Void Function(Pointer<win32.OSVERSIONINFOEX>),
|
|
void Function(Pointer<win32.OSVERSIONINFOEX>)>('RtlGetVersion');
|
|
final osVersionInfo = _getOSVERSIONINFOEXPointer();
|
|
rtlGetVersion(osVersionInfo);
|
|
int buildNumber = osVersionInfo.ref.dwBuildNumber;
|
|
calloc.free(osVersionInfo);
|
|
return buildNumber;
|
|
}
|
|
|
|
/// Get Windows OS version pointer
|
|
///
|
|
/// [Note]
|
|
/// Please use this function wrapped with `Platform.isWindows`.
|
|
Pointer<win32.OSVERSIONINFOEX> _getOSVERSIONINFOEXPointer() {
|
|
final pointer = calloc<win32.OSVERSIONINFOEX>();
|
|
pointer.ref
|
|
..dwOSVersionInfoSize = sizeOf<win32.OSVERSIONINFOEX>()
|
|
..dwBuildNumber = 0
|
|
..dwMajorVersion = 0
|
|
..dwMinorVersion = 0
|
|
..dwPlatformId = 0
|
|
..szCSDVersion = ''
|
|
..wServicePackMajor = 0
|
|
..wServicePackMinor = 0
|
|
..wSuiteMask = 0
|
|
..wProductType = 0
|
|
..wReserved = 0;
|
|
return pointer;
|
|
}
|