Permalink
Switch branches/tags
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
69 lines (50 sloc) 1.25 KB
--proc/ole/enumformatetc: IEnumFormatETC interface
--Written by Cosmin Apreutesei. Public Domain.
setfenv(1, require'winapi')
require'winapi.ole'
ffi.cdef[[
typedef WORD CLIPFORMAT;
typedef struct tagDVTARGETDEVICE {
DWORD tdSize;
WORD tdDriverNameOffset;
WORD tdDeviceNameOffset;
WORD tdPortNameOffset;
WORD tdExtDevmodeOffset;
BYTE tdData[1];
} DVTARGETDEVICE;
typedef struct tagFORMATETC {
CLIPFORMAT cfFormat;
DVTARGETDEVICE *ptd;
DWORD dwAspect;
LONG lindex;
DWORD tymed;
} FORMATETC;
typedef struct tagFORMATETC *LPFORMATETC;
typedef struct IEnumFORMATETC IEnumFORMATETC;
typedef struct IEnumFORMATETCVtbl {
HRESULT ( __stdcall *QueryInterface )(
IEnumFORMATETC * This,
REFIID riid,
void **ppvObject);
ULONG ( __stdcall *AddRef )(
IEnumFORMATETC * This);
ULONG ( __stdcall *Release )(
IEnumFORMATETC * This);
HRESULT ( __stdcall *Next )(
IEnumFORMATETC * This,
ULONG celt,
FORMATETC *rgelt,
ULONG *pceltFetched);
HRESULT ( __stdcall *Skip )(
IEnumFORMATETC * This,
ULONG celt);
HRESULT ( __stdcall *Reset )(
IEnumFORMATETC * This);
HRESULT ( __stdcall *Clone )(
IEnumFORMATETC * This,
IEnumFORMATETC **ppenum);
} IEnumFORMATETCVtbl;
struct IEnumFORMATETC {
struct IEnumFORMATETCVtbl *lpVtbl;
};
]]