winit/platform_impl/windows/
definitions.rs1#![allow(non_snake_case)]
2#![allow(non_upper_case_globals)]
3
4use std::ffi::c_void;
5
6use windows_sys::core::{IUnknown, GUID, HRESULT};
7use windows_sys::Win32::Foundation::{BOOL, HWND, POINTL};
8use windows_sys::Win32::System::Com::{
9 IAdviseSink, IDataObject, IEnumFORMATETC, IEnumSTATDATA, FORMATETC, STGMEDIUM,
10};
11
12#[repr(C)]
13pub struct IUnknownVtbl {
14 pub QueryInterface: unsafe extern "system" fn(
15 This: *mut IUnknown,
16 riid: *const GUID,
17 ppvObject: *mut *mut c_void,
18 ) -> HRESULT,
19 pub AddRef: unsafe extern "system" fn(This: *mut IUnknown) -> u32,
20 pub Release: unsafe extern "system" fn(This: *mut IUnknown) -> u32,
21}
22
23#[repr(C)]
24pub struct IDataObjectVtbl {
25 pub parent: IUnknownVtbl,
26 pub GetData: unsafe extern "system" fn(
27 This: *mut IDataObject,
28 pformatetcIn: *const FORMATETC,
29 pmedium: *mut STGMEDIUM,
30 ) -> HRESULT,
31 pub GetDataHere: unsafe extern "system" fn(
32 This: *mut IDataObject,
33 pformatetc: *const FORMATETC,
34 pmedium: *mut STGMEDIUM,
35 ) -> HRESULT,
36 QueryGetData:
37 unsafe extern "system" fn(This: *mut IDataObject, pformatetc: *const FORMATETC) -> HRESULT,
38 pub GetCanonicalFormatEtc: unsafe extern "system" fn(
39 This: *mut IDataObject,
40 pformatetcIn: *const FORMATETC,
41 pformatetcOut: *mut FORMATETC,
42 ) -> HRESULT,
43 pub SetData: unsafe extern "system" fn(
44 This: *mut IDataObject,
45 pformatetc: *const FORMATETC,
46 pformatetcOut: *const FORMATETC,
47 fRelease: BOOL,
48 ) -> HRESULT,
49 pub EnumFormatEtc: unsafe extern "system" fn(
50 This: *mut IDataObject,
51 dwDirection: u32,
52 ppenumFormatEtc: *mut *mut IEnumFORMATETC,
53 ) -> HRESULT,
54 pub DAdvise: unsafe extern "system" fn(
55 This: *mut IDataObject,
56 pformatetc: *const FORMATETC,
57 advf: u32,
58 pAdvSInk: *const IAdviseSink,
59 pdwConnection: *mut u32,
60 ) -> HRESULT,
61 pub DUnadvise: unsafe extern "system" fn(This: *mut IDataObject, dwConnection: u32) -> HRESULT,
62 pub EnumDAdvise: unsafe extern "system" fn(
63 This: *mut IDataObject,
64 ppenumAdvise: *const *const IEnumSTATDATA,
65 ) -> HRESULT,
66}
67
68#[repr(C)]
69pub struct IDropTargetVtbl {
70 pub parent: IUnknownVtbl,
71 pub DragEnter: unsafe extern "system" fn(
72 This: *mut IDropTarget,
73 pDataObj: *const IDataObject,
74 grfKeyState: u32,
75 pt: *const POINTL,
76 pdwEffect: *mut u32,
77 ) -> HRESULT,
78 pub DragOver: unsafe extern "system" fn(
79 This: *mut IDropTarget,
80 grfKeyState: u32,
81 pt: *const POINTL,
82 pdwEffect: *mut u32,
83 ) -> HRESULT,
84 pub DragLeave: unsafe extern "system" fn(This: *mut IDropTarget) -> HRESULT,
85 pub Drop: unsafe extern "system" fn(
86 This: *mut IDropTarget,
87 pDataObj: *const IDataObject,
88 grfKeyState: u32,
89 pt: *const POINTL,
90 pdwEffect: *mut u32,
91 ) -> HRESULT,
92}
93
94#[repr(C)]
95pub struct IDropTarget {
96 pub lpVtbl: *const IDropTargetVtbl,
97}
98
99#[repr(C)]
100pub struct ITaskbarListVtbl {
101 pub parent: IUnknownVtbl,
102 pub HrInit: unsafe extern "system" fn(This: *mut ITaskbarList) -> HRESULT,
103 pub AddTab: unsafe extern "system" fn(This: *mut ITaskbarList, hwnd: HWND) -> HRESULT,
104 pub DeleteTab: unsafe extern "system" fn(This: *mut ITaskbarList, hwnd: HWND) -> HRESULT,
105 pub ActivateTab: unsafe extern "system" fn(This: *mut ITaskbarList, hwnd: HWND) -> HRESULT,
106 pub SetActiveAlt: unsafe extern "system" fn(This: *mut ITaskbarList, hwnd: HWND) -> HRESULT,
107}
108
109#[repr(C)]
110pub struct ITaskbarList {
111 pub lpVtbl: *const ITaskbarListVtbl,
112}
113
114#[repr(C)]
115pub struct ITaskbarList2Vtbl {
116 pub parent: ITaskbarListVtbl,
117 pub MarkFullscreenWindow: unsafe extern "system" fn(
118 This: *mut ITaskbarList2,
119 hwnd: HWND,
120 fFullscreen: BOOL,
121 ) -> HRESULT,
122}
123
124#[repr(C)]
125pub struct ITaskbarList2 {
126 pub lpVtbl: *const ITaskbarList2Vtbl,
127}
128
129pub const CLSID_TaskbarList: GUID = GUID {
130 data1: 0x56fdf344,
131 data2: 0xfd6d,
132 data3: 0x11d0,
133 data4: [0x95, 0x8a, 0x00, 0x60, 0x97, 0xc9, 0xa0, 0x90],
134};
135
136pub const IID_ITaskbarList: GUID = GUID {
137 data1: 0x56fdf342,
138 data2: 0xfd6d,
139 data3: 0x11d0,
140 data4: [0x95, 0x8a, 0x00, 0x60, 0x97, 0xc9, 0xa0, 0x90],
141};
142
143pub const IID_ITaskbarList2: GUID = GUID {
144 data1: 0x602d4995,
145 data2: 0xb13a,
146 data3: 0x429b,
147 data4: [0xa6, 0x6e, 0x19, 0x35, 0xe4, 0x4f, 0x43, 0x17],
148};