winapi_ui_automation/um/
unknwnbase.rs

1// Licensed under the Apache License, Version 2.0
2// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4// All files in the project carrying such notice may not be copied, modified, or distributed
5// except according to those terms.
6use 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}}