// Copyright © 2015, Peter Atashian // Licensed under the MIT License //! this ALWAYS GENERATED file contains the definitions for the interfaces RIDL!( interface IMalloc(IMallocVtbl): IUnknown(IUnknownVtbl) { fn Alloc(&mut self, cb: ::SIZE_T) -> *mut ::c_void, fn Realloc(&mut self, pv: *mut ::c_void, cb: ::SIZE_T) -> *mut ::c_void, fn Free(&mut self, pv: *mut ::c_void) -> (), fn GetSize(&mut self, pv: *mut ::c_void) -> ::SIZE_T, fn DidAlloc(&mut self, pv: *mut ::c_void) -> ::c_int, fn HeapMinimize(&mut self) -> () } ); pub type LPMALLOC = *mut IMalloc; STRUCT!{struct STATSTG { pwcsName: ::LPOLESTR, type_: ::DWORD, cbSize: ::ULARGE_INTEGER, mtime: ::FILETIME, ctime: ::FILETIME, atime: ::FILETIME, grfMode: ::DWORD, grfLocksSupported: ::DWORD, clsid: ::CLSID, grfStateBits: ::DWORD, reserved: ::DWORD, }} //1945 pub type IEnumString = ::IUnknown; // TODO //2075 RIDL!( interface ISequentialStream(ISequentialStreamVtbl): IUnknown(IUnknownVtbl) { fn Read(&mut self, pv: *mut ::c_void, cb: ::ULONG, pcbRead: *mut ::ULONG) -> ::HRESULT, fn Write(&mut self, pv: *const ::c_void, cb: ::ULONG, pcbWritten: *mut ::ULONG) -> ::HRESULT } ); ENUM!{enum STGTY { STGTY_STORAGE = 1, STGTY_STREAM = 2, STGTY_LOCKBYTES = 3, STGTY_PROPERTY = 4, }} ENUM!{enum STREAM_SEEK { STREAM_SEEK_SET = 0, STREAM_SEEK_CUR = 1, STREAM_SEEK_END = 2, }} ENUM!{enum LOCKTYPE { LOCK_WRITE = 1, LOCK_EXCLUSIVE = 2, LOCK_ONLYONCE = 4, }} //2255 RIDL!( interface IStream(IStreamVtbl): ISequentialStream(ISequentialStreamVtbl) { fn Seek( &mut self, dlibMove: ::LARGE_INTEGER, dwOrigin: ::DWORD, plibNewPosition: *mut ::ULARGE_INTEGER ) -> ::HRESULT, fn SetSize(&mut self, libNewSize: ::ULARGE_INTEGER) -> ::HRESULT, fn CopyTo( &mut self, pstm: *mut IStream, cb: ::ULARGE_INTEGER, pcbRead: *mut ::ULARGE_INTEGER, pcbWritten: *mut ::ULARGE_INTEGER ) -> ::HRESULT, fn Commit(&mut self, grfCommitFlags: ::DWORD) -> ::HRESULT, fn Revert(&mut self) -> ::HRESULT, fn LockRegion( &mut self, libOffset: ::ULARGE_INTEGER, cb: ::ULARGE_INTEGER, dwLockType: ::DWORD ) -> ::HRESULT, fn UnlockRegion( &mut self, libOffset: ::ULARGE_INTEGER, cb: ::ULARGE_INTEGER, dwLockType: ::DWORD ) -> ::HRESULT, fn Stat(&mut self, pstatstg: *mut STATSTG, grfStatFlag: ::DWORD) -> ::HRESULT, fn Clone(&mut self, ppstm: *mut *mut IStream) -> ::HRESULT } ); pub type LPSTREAM = *mut IStream; ENUM!{enum APTTYPEQUALIFIER { APTTYPEQUALIFIER_NONE = 0, APTTYPEQUALIFIER_IMPLICIT_MTA = 1, APTTYPEQUALIFIER_NA_ON_MTA = 2, APTTYPEQUALIFIER_NA_ON_STA = 3, APTTYPEQUALIFIER_NA_ON_IMPLICIT_MTA = 4, APTTYPEQUALIFIER_NA_ON_MAINSTA = 5, APTTYPEQUALIFIER_APPLICATION_STA= 6, }} ENUM!{enum APTTYPE { APTTYPE_CURRENT = -1i32 as u32, APTTYPE_STA = 0, APTTYPE_MTA = 1, APTTYPE_NA = 2, APTTYPE_MAINSTA = 3, }}