OneCore.Net.WinAPI
1.0.0
The OneCore.Net.WIN.WinAPI 1.0.0 is identical to this library. It got renamed and retargeted to point out it runs on windows only.
dotnet add package OneCore.Net.WinAPI --version 1.0.0
NuGet\Install-Package OneCore.Net.WinAPI -Version 1.0.0
<PackageReference Include="OneCore.Net.WinAPI" Version="1.0.0" />
<PackageVersion Include="OneCore.Net.WinAPI" Version="1.0.0" />
<PackageReference Include="OneCore.Net.WinAPI" />
paket add OneCore.Net.WinAPI --version 1.0.0
#r "nuget: OneCore.Net.WinAPI, 1.0.0"
#:package OneCore.Net.WinAPI@1.0.0
#addin nuget:?package=OneCore.Net.WinAPI&version=1.0.0
#tool nuget:?package=OneCore.Net.WinAPI&version=1.0.0
![]()
OneCore.Net.WinAPI Library
Overview
OneCore.Net.WinAPI is an internal library that provides low-level WinAPI bindings used by other OneCore libraries; it is not intended for standalone use and remains incomplete by design.
Features
- Dwmapi: Access to the WinAPI methods within the "dwmapi.dll"
- Kernel32: Access to WinAPI methods within the "kernel32.dll".
- Shell32: Access to WinAPI methods within the "shell32.dll".
- User32: Access to WinAPI methods within the "user32.dll".
- UxTheme: Access to WinAPI methods within the "uxtheme.dll".
- Data: Values and structures to use within any of those above. Like WM (WindowMessages), WH (WindowHandle) and many more.
Getting Started
Installation:
- Install the OneCore.Net.WinAPI library via NuGet Package Manager:
dotnet add package OneCore.Net.WinAPIUsage:
- Direct access the objects like
User32.ShowWindow(windowHandle, WindowShowStyle.Restore);- Or a wrapper
public class Demo { public Demo(IUser32 user32) { _user32 = user32; } public void RestoreWindow(Window window) { var windowHandle = ((HwndSource)PresentationSource.FromVisual(window))!.Handle; _user32.ShowWindow(windowHandle, WindowShowStyle.Restore); } }
Example
- Target
public class Demo { public Demo(IUser32 user32) { _user32 = user32; } public void RestoreWindow(Window window) { var windowHandle = ((HwndSource)PresentationSource.FromVisual(window))!.Handle; _user32.ShowWindow(windowHandle, WindowShowStyle.Restore); } } - UnitTest
public class DemoTests { private Demo _target, [Setup] public void Setup() { _user32 = new Mock<IUser32>(); _target = new Demo(_user32.Object); } [Test] public void RestoreWindow_CalledAfterMinimizedFromNormal_RestoresTheWindowBackToNormal() { var window = Utils.OpenDummyWindow(); window.WindowState = WindowState.Normal; window.WindowState = WindowState.Minimized; _target.RestoreWindow(window); _user32.Verify(x => x.ShowWindow(It.IsAny<nint>(), WindowShowStyle.Restore), Times.Once()); Assert.That(window.WindowState, Is.EqualTo(WindowState.Normal)); } [Test] public void RestoreWindow_CalledAfterMinimizedFromNormal_RestoresTheWindowBackToMaximized() { var window = Utils.OpenDummyWindow(); window.WindowState = WindowState.Maximized; window.WindowState = WindowState.Minimized; _target.RestoreWindow(window); _user32.Verify(x => x.ShowWindow(It.IsAny<nint>(), WindowShowStyle.Restore), Times.Once()); Assert.That(window.WindowState, Is.EqualTo(WindowState.Maximized)); } }
Links
License
Copyright (c) David Wendland. All rights reserved. Licensed under the MIT License. See LICENSE file in the project root for full license information.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|