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