mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2024-12-24 22:31:30 +11:00
Implemented a HINSTANCE getter function for Windows (#1213)
* Expose HINSTANCE now using a getter function * Missing changes * remove unused import * Required changes for the PR * Rust fmt * Use GetWindowLong * Use GetWindowLong
This commit is contained in:
parent
55640a91ae
commit
42e0ccfa1c
|
@ -1,5 +1,6 @@
|
||||||
# Unreleased
|
# Unreleased
|
||||||
|
|
||||||
|
- On Windows, implemented function to get HINSTANCE
|
||||||
- On macOS, implement `run_return`.
|
- On macOS, implement `run_return`.
|
||||||
- On iOS, fix inverted parameter in `set_prefers_home_indicator_hidden`.
|
- On iOS, fix inverted parameter in `set_prefers_home_indicator_hidden`.
|
||||||
- On X11, performance is improved when rapidly calling `Window::set_cursor_icon`.
|
- On X11, performance is improved when rapidly calling `Window::set_cursor_icon`.
|
||||||
|
|
|
@ -34,6 +34,8 @@ impl<T> EventLoopExtWindows for EventLoop<T> {
|
||||||
|
|
||||||
/// Additional methods on `Window` that are specific to Windows.
|
/// Additional methods on `Window` that are specific to Windows.
|
||||||
pub trait WindowExtWindows {
|
pub trait WindowExtWindows {
|
||||||
|
/// Returns the HINSTANCE of the window
|
||||||
|
fn hinstance(&self) -> *mut libc::c_void;
|
||||||
/// Returns the native handle that is used by this window.
|
/// Returns the native handle that is used by this window.
|
||||||
///
|
///
|
||||||
/// The pointer will become invalid when the native window was destroyed.
|
/// The pointer will become invalid when the native window was destroyed.
|
||||||
|
@ -44,6 +46,11 @@ pub trait WindowExtWindows {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WindowExtWindows for Window {
|
impl WindowExtWindows for Window {
|
||||||
|
#[inline]
|
||||||
|
fn hinstance(&self) -> *mut libc::c_void {
|
||||||
|
self.window.hinstance() as *mut _
|
||||||
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn hwnd(&self) -> *mut libc::c_void {
|
fn hwnd(&self) -> *mut libc::c_void {
|
||||||
self.window.hwnd() as *mut _
|
self.window.hwnd() as *mut _
|
||||||
|
|
|
@ -14,7 +14,7 @@ use std::{
|
||||||
use winapi::{
|
use winapi::{
|
||||||
ctypes::c_int,
|
ctypes::c_int,
|
||||||
shared::{
|
shared::{
|
||||||
minwindef::{DWORD, LPARAM, UINT, WORD, WPARAM},
|
minwindef::{DWORD, HINSTANCE, LPARAM, UINT, WORD, WPARAM},
|
||||||
windef::{HWND, POINT, RECT},
|
windef::{HWND, POINT, RECT},
|
||||||
},
|
},
|
||||||
um::{
|
um::{
|
||||||
|
@ -358,6 +358,11 @@ impl Window {
|
||||||
self.window.0
|
self.window.0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
pub fn hinstance(&self) -> HINSTANCE {
|
||||||
|
unsafe { winuser::GetWindowLongW(self.hwnd(), winuser::GWL_HINSTANCE) as *mut _ }
|
||||||
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn raw_window_handle(&self) -> RawWindowHandle {
|
pub fn raw_window_handle(&self) -> RawWindowHandle {
|
||||||
let handle = WindowsHandle {
|
let handle = WindowsHandle {
|
||||||
|
|
Loading…
Reference in a new issue