raw_window_handle_ffi/handles/
win32.rs1use crate::{RawWindowHandle, RawWindowHandleData};
2use std::num::NonZero;
3
4#[repr(C)]
8#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
9pub struct Win32WindowHandle {
10 pub hwnd: NonZero<isize>,
12 pub hinstance: Option<NonZero<isize>>,
14}
15
16unsafe impl Send for Win32WindowHandle {}
17unsafe impl Sync for Win32WindowHandle {}
18
19impl From<raw_window_handle::Win32WindowHandle> for Win32WindowHandle {
20 fn from(value: raw_window_handle::Win32WindowHandle) -> Self {
21 Self {
22 hwnd: value.hwnd,
23 hinstance: value.hinstance,
24 }
25 }
26}
27
28impl Win32WindowHandle {
29 pub unsafe fn into(self) -> raw_window_handle::Win32WindowHandle {
35 let mut result = raw_window_handle::Win32WindowHandle::new(self.hwnd);
36 result.hinstance = self.hinstance;
37 result
38 }
39}
40
41impl From<Win32WindowHandle> for RawWindowHandle {
42 fn from(val: Win32WindowHandle) -> RawWindowHandle {
43 RawWindowHandle {
44 kind: crate::RawWindowHandleKind::Win32WindowHandle,
45 data: RawWindowHandleData { win32: val },
46 }
47 }
48}