blob: f49353f823252c0f58dd5ff2fd753d05d0d0e2dd [file] [log] [blame]
// Copyright © 2015, Peter Atashian
// Licensed under the MIT License <LICENSE.md>
//! 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,
}}