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 IMalloc(IMallocVtbl): IUnknown(IUnknownVtbl) { 6 fn Alloc(&mut self, cb: ::SIZE_T) -> *mut ::c_void, 7 fn Realloc(&mut self, pv: *mut ::c_void, cb: ::SIZE_T) -> *mut ::c_void, 8 fn Free(&mut self, pv: *mut ::c_void) -> (), 9 fn GetSize(&mut self, pv: *mut ::c_void) -> ::SIZE_T, 10 fn DidAlloc(&mut self, pv: *mut ::c_void) -> ::c_int, 11 fn HeapMinimize(&mut self) -> () 12 } 13 ); 14 pub type LPMALLOC = *mut IMalloc; 15 STRUCT!{struct STATSTG { 16 pwcsName: ::LPOLESTR, 17 type_: ::DWORD, 18 cbSize: ::ULARGE_INTEGER, 19 mtime: ::FILETIME, 20 ctime: ::FILETIME, 21 atime: ::FILETIME, 22 grfMode: ::DWORD, 23 grfLocksSupported: ::DWORD, 24 clsid: ::CLSID, 25 grfStateBits: ::DWORD, 26 reserved: ::DWORD, 27 }} 28 //1945 29 pub type IEnumString = ::IUnknown; // TODO 30 //2075 31 RIDL!( 32 interface ISequentialStream(ISequentialStreamVtbl): IUnknown(IUnknownVtbl) { 33 fn Read(&mut self, pv: *mut ::c_void, cb: ::ULONG, pcbRead: *mut ::ULONG) -> ::HRESULT, 34 fn Write(&mut self, pv: *const ::c_void, cb: ::ULONG, pcbWritten: *mut ::ULONG) -> ::HRESULT 35 } 36 ); 37 ENUM!{enum STGTY { 38 STGTY_STORAGE = 1, 39 STGTY_STREAM = 2, 40 STGTY_LOCKBYTES = 3, 41 STGTY_PROPERTY = 4, 42 }} 43 ENUM!{enum STREAM_SEEK { 44 STREAM_SEEK_SET = 0, 45 STREAM_SEEK_CUR = 1, 46 STREAM_SEEK_END = 2, 47 }} 48 ENUM!{enum LOCKTYPE { 49 LOCK_WRITE = 1, 50 LOCK_EXCLUSIVE = 2, 51 LOCK_ONLYONCE = 4, 52 }} 53 //2255 54 RIDL!( 55 interface IStream(IStreamVtbl): ISequentialStream(ISequentialStreamVtbl) { 56 fn Seek( 57 &mut self, dlibMove: ::LARGE_INTEGER, dwOrigin: ::DWORD, 58 plibNewPosition: *mut ::ULARGE_INTEGER 59 ) -> ::HRESULT, 60 fn SetSize(&mut self, libNewSize: ::ULARGE_INTEGER) -> ::HRESULT, 61 fn CopyTo( 62 &mut self, pstm: *mut IStream, cb: ::ULARGE_INTEGER, pcbRead: *mut ::ULARGE_INTEGER, 63 pcbWritten: *mut ::ULARGE_INTEGER 64 ) -> ::HRESULT, 65 fn Commit(&mut self, grfCommitFlags: ::DWORD) -> ::HRESULT, 66 fn Revert(&mut self) -> ::HRESULT, 67 fn LockRegion( 68 &mut self, libOffset: ::ULARGE_INTEGER, cb: ::ULARGE_INTEGER, dwLockType: ::DWORD 69 ) -> ::HRESULT, 70 fn UnlockRegion( 71 &mut self, libOffset: ::ULARGE_INTEGER, cb: ::ULARGE_INTEGER, dwLockType: ::DWORD 72 ) -> ::HRESULT, 73 fn Stat(&mut self, pstatstg: *mut STATSTG, grfStatFlag: ::DWORD) -> ::HRESULT, 74 fn Clone(&mut self, ppstm: *mut *mut IStream) -> ::HRESULT 75 } 76 ); 77 pub type LPSTREAM = *mut IStream; 78 ENUM!{enum APTTYPEQUALIFIER { 79 APTTYPEQUALIFIER_NONE = 0, 80 APTTYPEQUALIFIER_IMPLICIT_MTA = 1, 81 APTTYPEQUALIFIER_NA_ON_MTA = 2, 82 APTTYPEQUALIFIER_NA_ON_STA = 3, 83 APTTYPEQUALIFIER_NA_ON_IMPLICIT_MTA = 4, 84 APTTYPEQUALIFIER_NA_ON_MAINSTA = 5, 85 APTTYPEQUALIFIER_APPLICATION_STA= 6, 86 }} 87 ENUM!{enum APTTYPE { 88 APTTYPE_CURRENT = -1i32 as u32, 89 APTTYPE_STA = 0, 90 APTTYPE_MTA = 1, 91 APTTYPE_NA = 2, 92 APTTYPE_MAINSTA = 3, 93 }} 94