OneCore.Net.WIN.WinAPI
1.0.0
See the version list below for details.
dotnet add package OneCore.Net.WIN.WinAPI --version 1.0.0
NuGet\Install-Package OneCore.Net.WIN.WinAPI -Version 1.0.0
<PackageReference Include="OneCore.Net.WIN.WinAPI" Version="1.0.0" />
<PackageVersion Include="OneCore.Net.WIN.WinAPI" Version="1.0.0" />
<PackageReference Include="OneCore.Net.WIN.WinAPI" />
paket add OneCore.Net.WIN.WinAPI --version 1.0.0
#r "nuget: OneCore.Net.WIN.WinAPI, 1.0.0"
#:package OneCore.Net.WIN.WinAPI@1.0.0
#addin nuget:?package=OneCore.Net.WIN.WinAPI&version=1.0.0
#tool nuget:?package=OneCore.Net.WIN.WinAPI&version=1.0.0
![]()
OneCore.Net.WIN.WinAPI Library
Overview
OneCore.Net.WIN.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.WIN.WinAPI library via NuGet Package Manager:
dotnet add package OneCore.Net.WIN.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 | net8.0-windows7.0 is compatible. net9.0-windows was computed. net10.0-windows was computed. |
-
net8.0-windows7.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on OneCore.Net.WIN.WinAPI:
| Package | Downloads |
|---|---|
|
OneCore.Net.WPF
OneCore.Net.WPF is a utility library that offers generic WPF helpers such as clipboard access, icon reading, visual tree traversal, window hooks, and more to simplify desktop application development. |
GitHub repositories
This package is not used by any popular GitHub repositories.