1 // Copyright © 2015, Peter Atashian
2 // Licensed under the MIT License <LICENSE.md>
3 //! this ALWAYS GENERATED file contains the definitions for the interfaces
4 RIDL!(
5 interface IUnknown(IUnknownVtbl) {
6     fn QueryInterface(&mut self, riid: ::REFIID, ppvObject: *mut *mut ::c_void) -> ::HRESULT,
7     fn AddRef(&mut self) -> ::ULONG,
8     fn Release(&mut self) -> ::ULONG
9 }
10 );
11 pub type LPUNKNOWN = *mut IUnknown;
12 RIDL!(
13 interface AsyncIUnknown(AsyncIUnknownVtbl): IUnknown(IUnknownVtbl) {
14     fn Begin_QueryInterface(&mut self, riid: ::REFIID) -> ::HRESULT,
15     fn Finish_QueryInterface(&mut self, ppvObject: *mut *mut ::c_void) -> ::HRESULT,
16     fn Begin_AddRef(&mut self) -> ::HRESULT,
17     fn Finish_AddRef(&mut self) -> ::ULONG,
18     fn Begin_Release(&mut self) -> ::HRESULT,
19     fn Finish_Release(&mut self) -> ::ULONG
20 }
21 );
22 RIDL!(
23 interface IClassFactory(IClassFactoryVtbl): IUnknown(IUnknownVtbl) {
24     fn CreateInstance(
25         &mut self, pUnkOuter: *mut IUnknown, riid: ::REFIID, ppvObject: *mut *mut ::c_void
26     ) -> ::HRESULT,
27     fn LockServer(&mut self, fLock: ::BOOL) -> ::HRESULT
28 }
29 );
30