mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2024-12-27 15:41:31 +11:00
141 lines
4.2 KiB
Rust
141 lines
4.2 KiB
Rust
|
#![allow(non_snake_case)]
|
||
|
#![allow(non_upper_case_globals)]
|
||
|
|
||
|
use std::ffi::c_void;
|
||
|
|
||
|
use windows_sys::{
|
||
|
core::{IUnknown, GUID, HRESULT},
|
||
|
Win32::{
|
||
|
Foundation::{BOOL, HWND, POINTL},
|
||
|
System::Com::{
|
||
|
IAdviseSink, IDataObject, IEnumFORMATETC, IEnumSTATDATA, FORMATETC, STGMEDIUM,
|
||
|
},
|
||
|
UI::Shell::ITaskbarList,
|
||
|
},
|
||
|
};
|
||
|
|
||
|
#[repr(C)]
|
||
|
pub struct IUnknownVtbl {
|
||
|
pub QueryInterface: unsafe extern "system" fn(
|
||
|
This: *mut IUnknown,
|
||
|
riid: *const GUID,
|
||
|
ppvObject: *mut *mut c_void,
|
||
|
) -> HRESULT,
|
||
|
pub AddRef: unsafe extern "system" fn(This: *mut IUnknown) -> u32,
|
||
|
pub Release: unsafe extern "system" fn(This: *mut IUnknown) -> u32,
|
||
|
}
|
||
|
|
||
|
#[repr(C)]
|
||
|
pub struct IDataObjectVtbl {
|
||
|
pub parent: IUnknownVtbl,
|
||
|
pub GetData: unsafe extern "system" fn(
|
||
|
This: *mut IDataObject,
|
||
|
pformatetcIn: *const FORMATETC,
|
||
|
pmedium: *mut STGMEDIUM,
|
||
|
) -> HRESULT,
|
||
|
pub GetDataHere: unsafe extern "system" fn(
|
||
|
This: *mut IDataObject,
|
||
|
pformatetc: *const FORMATETC,
|
||
|
pmedium: *mut STGMEDIUM,
|
||
|
) -> HRESULT,
|
||
|
QueryGetData:
|
||
|
unsafe extern "system" fn(This: *mut IDataObject, pformatetc: *const FORMATETC) -> HRESULT,
|
||
|
pub GetCanonicalFormatEtc: unsafe extern "system" fn(
|
||
|
This: *mut IDataObject,
|
||
|
pformatetcIn: *const FORMATETC,
|
||
|
pformatetcOut: *mut FORMATETC,
|
||
|
) -> HRESULT,
|
||
|
pub SetData: unsafe extern "system" fn(
|
||
|
This: *mut IDataObject,
|
||
|
pformatetc: *const FORMATETC,
|
||
|
pformatetcOut: *const FORMATETC,
|
||
|
fRelease: BOOL,
|
||
|
) -> HRESULT,
|
||
|
pub EnumFormatEtc: unsafe extern "system" fn(
|
||
|
This: *mut IDataObject,
|
||
|
dwDirection: u32,
|
||
|
ppenumFormatEtc: *mut *mut IEnumFORMATETC,
|
||
|
) -> HRESULT,
|
||
|
pub DAdvise: unsafe extern "system" fn(
|
||
|
This: *mut IDataObject,
|
||
|
pformatetc: *const FORMATETC,
|
||
|
advf: u32,
|
||
|
pAdvSInk: *const IAdviseSink,
|
||
|
pdwConnection: *mut u32,
|
||
|
) -> HRESULT,
|
||
|
pub DUnadvise: unsafe extern "system" fn(This: *mut IDataObject, dwConnection: u32) -> HRESULT,
|
||
|
pub EnumDAdvise: unsafe extern "system" fn(
|
||
|
This: *mut IDataObject,
|
||
|
ppenumAdvise: *const *const IEnumSTATDATA,
|
||
|
) -> HRESULT,
|
||
|
}
|
||
|
|
||
|
#[repr(C)]
|
||
|
pub struct IDropTargetVtbl {
|
||
|
pub parent: IUnknownVtbl,
|
||
|
pub DragEnter: unsafe extern "system" fn(
|
||
|
This: *mut IDropTarget,
|
||
|
pDataObj: *const IDataObject,
|
||
|
grfKeyState: u32,
|
||
|
pt: *const POINTL,
|
||
|
pdwEffect: *mut u32,
|
||
|
) -> HRESULT,
|
||
|
pub DragOver: unsafe extern "system" fn(
|
||
|
This: *mut IDropTarget,
|
||
|
grfKeyState: u32,
|
||
|
pt: *const POINTL,
|
||
|
pdwEffect: *mut u32,
|
||
|
) -> HRESULT,
|
||
|
pub DragLeave: unsafe extern "system" fn(This: *mut IDropTarget) -> HRESULT,
|
||
|
pub Drop: unsafe extern "system" fn(
|
||
|
This: *mut IDropTarget,
|
||
|
pDataObj: *const IDataObject,
|
||
|
grfKeyState: u32,
|
||
|
pt: *const POINTL,
|
||
|
pdwEffect: *mut u32,
|
||
|
) -> HRESULT,
|
||
|
}
|
||
|
|
||
|
#[repr(C)]
|
||
|
pub struct IDropTarget {
|
||
|
pub lpVtbl: *const IDropTargetVtbl,
|
||
|
}
|
||
|
|
||
|
#[repr(C)]
|
||
|
pub struct ITaskbarListVtbl {
|
||
|
pub parent: IUnknownVtbl,
|
||
|
pub HrInit: unsafe extern "system" fn(This: *mut ITaskbarList) -> HRESULT,
|
||
|
pub AddTab: unsafe extern "system" fn(This: *mut ITaskbarList, hwnd: HWND) -> HRESULT,
|
||
|
pub DeleteTab: unsafe extern "system" fn(This: *mut ITaskbarList, hwnd: HWND) -> HRESULT,
|
||
|
pub ActivateTab: unsafe extern "system" fn(This: *mut ITaskbarList, hwnd: HWND) -> HRESULT,
|
||
|
pub SetActiveAlt: unsafe extern "system" fn(This: *mut ITaskbarList, hwnd: HWND) -> HRESULT,
|
||
|
}
|
||
|
|
||
|
#[repr(C)]
|
||
|
pub struct ITaskbarList2Vtbl {
|
||
|
pub parent: ITaskbarListVtbl,
|
||
|
pub MarkFullscreenWindow: unsafe extern "system" fn(
|
||
|
This: *mut ITaskbarList2,
|
||
|
hwnd: HWND,
|
||
|
fFullscreen: BOOL,
|
||
|
) -> HRESULT,
|
||
|
}
|
||
|
#[repr(C)]
|
||
|
pub struct ITaskbarList2 {
|
||
|
pub lpVtbl: *const ITaskbarList2Vtbl,
|
||
|
}
|
||
|
|
||
|
pub const CLSID_TaskbarList: GUID = GUID {
|
||
|
data1: 0x56fdf344,
|
||
|
data2: 0xfd6d,
|
||
|
data3: 0x11d0,
|
||
|
data4: [0x95, 0x8a, 0x00, 0x60, 0x97, 0xc9, 0xa0, 0x90],
|
||
|
};
|
||
|
|
||
|
pub const IID_ITaskbarList2: GUID = GUID {
|
||
|
data1: 0x602d4995,
|
||
|
data2: 0xb13a,
|
||
|
data3: 0x429b,
|
||
|
data4: [0xa6, 0x6e, 0x19, 0x35, 0xe4, 0x4f, 0x43, 0x17],
|
||
|
};
|