3.0.0
- This release includes an overhaul of the COM and WinRT API generation, as described below. Apps and packages that call traditional Win32 APIs should not require changes, but apps that use COM or the highly-experimental WinRT APIs should expect to make changes.
- [BREAKING CHANGE] WinRT APIs have been moved to a separate library. This
provides isolation for apps that only use traditional APIs (Win32/COM) from
the more experimental WinRT APIs. To use WinRT from your code, change your
import statement to
import 'package:win32/winrt.dart';. The WinRT library also exports all Win32 APIs, so you don't have to import both libraries. - [BREAKING CHANGE] COM and Windows Runtime methods and properties are now camelCased, not TitleCased. This is inconvenient, but it avoids a whole class of name clashes and aligns COM and WinRT APIs more closely with Dart idioms. As the projections get smarter with more helpers, we think this is the right call for the future and worth a one-time tax to fix.
- [BREAKING CHANGE] You can now cast to a new COM interface without needing the IID for the target interface. Instead of:
final modalWindow = IModalWindow(fileDialog.toInterface(IID_IModalWindow));
write:
final modalWindow = IModalWindow.from(fileDialog);
- [BREAKING CHANGE] WinRT classes now support projection of
Lists andStrings directly. - [BREAKING CHANGE] The WinRT
fromPointermethod is nowfromRawPointer. GUIDFromStringnow supports an optional custom allocator parameter.- Added various APIs from iphlpapi.dll for tracking and renewing IP addresses.
- Added
DisableThreadLibraryCalls,FindStringOrdinal,GetConsoleCP,GetConsoleOutputCP,GetModuleHandleExW,GetNumberOfConsoleInputEvents,GetVolumeInformation,GetVolumeInformationByHandle,PeekConsoleInput,ReadConsoleInputW,SetErrorMode,SetThreadErrorMode,SizeofResourceAPIs from kernel32.dll - Added
GetClassFileAPI from ole32.dll - Added
SetupDiGetDeviceInstanceId,SetupDiGetDeviceRegistryPropertyWAPIs from setupapi.dll - Added
GetAltTabInfoW,GetClassNameW,GetGUIThreadInfoAPIs from user32.dll - Added various foundational WinRT types, including
IIterable,IIterator,IKeyValuePair,IMapView,IVector,IVectorView,IPropertyValue,IReference, with tremendous thanks again to @halildurmus, who has driven much of the recent WinRT work. - Major reworking of the WinRT generation code, thanks to @halildurmus.