winapi_ui_automation/um/
unknwnbase.rs1use ctypes::c_void;
7use shared::guiddef::REFIID;
8use shared::minwindef::{BOOL, ULONG};
9use um::winnt::HRESULT;
10RIDL!{#[uuid(0x00000000, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
11interface IUnknown(IUnknownVtbl) {
12 fn QueryInterface(
13 riid: REFIID,
14 ppvObject: *mut *mut c_void,
15 ) -> HRESULT,
16 fn AddRef() -> ULONG,
17 fn Release() -> ULONG,
18}}
19pub type LPUNKNOWN = *mut IUnknown;
20RIDL!{#[uuid(0x000e0000, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
21interface AsyncIUnknown(AsyncIUnknownVtbl): IUnknown(IUnknownVtbl) {
22 fn Begin_QueryInterface(
23 riid: REFIID,
24 ) -> HRESULT,
25 fn Finish_QueryInterface(
26 ppvObject: *mut *mut c_void,
27 ) -> HRESULT,
28 fn Begin_AddRef() -> HRESULT,
29 fn Finish_AddRef() -> ULONG,
30 fn Begin_Release() -> HRESULT,
31 fn Finish_Release() -> ULONG,
32}}
33RIDL!{#[uuid(0x00000001, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
34interface IClassFactory(IClassFactoryVtbl): IUnknown(IUnknownVtbl) {
35 fn CreateInstance(
36 pUnkOuter: *mut IUnknown,
37 riid: REFIID,
38 ppvObject: *mut *mut c_void,
39 ) -> HRESULT,
40 fn LockServer(
41 fLock: BOOL,
42 ) -> HRESULT,
43}}