* 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;
 | 
						|
}
 |