//[c] import "windef" //[c] public typedef THIS = -> void typedef IID = GUID typedef REFIID = [] IID typedef CLIPFORMAT = WORD //[c] //[c] //[of]: unknwn //[c] import def [name="c"] IID_IUnknown : IID typedef LPUNKNOWN = -> void //[cf] //[of]: objidl //[c] typedef LPSTREAM = -> void typedef LPSTORAGE = -> void //[c] struct LPDVTARGETDEVICE tdSize : DWORD tdDriverNameOffset : WORD tdDeviceNameOffset : WORD tdPortNameOffset : WORD tdExtDevmodeOffset : WORD tdData : [1] BYTE end typedef DVTARGETDEVICE = local LPDVTARGETDEVICE //[c] struct LPFORMATETC cfFormat : CLIPFORMAT ptd : DVTARGETDEVICE dwAspect : DWORD lindex : LONG tymed : DWORD end typedef FORMATETC = local LPFORMATETC //[c] struct LPSTGMEDIUM tymed : DWORD anonymous union : union hBitmap : HBITMAP hMetaFilePict : PVOID hEnhMetaFile : HENHMETAFILE hGlobal : HGLOBAL lpszFileName : LPWSTR pstm : LPSTREAM pstg : LPSTORAGE end pUnkForRelease : LPUNKNOWN end typedef STGMEDIUM = local LPSTGMEDIUM //[c] struct IEnumFORMATETC Vtbl QueryInterface : {THIS, REFIID, [] PVOID} HRESULT AddRef : {THIS} ULONG Release : {THIS} ULONG Next : {THIS, ULONG, LPFORMATETC, ULONG} HRESULT Skip : {THIS, ULONG} HRESULT Reset : {THIS} HRESULT Clone : {THIS, IEnumFORMATETC} HRESULT end struct IEnumFORMATETC lpVtbl : IEnumFORMATETC Vtbl end typedef LPENUMFORMATETC = IEnumFORMATETC //[c] //[c] import def [name="c"] IID_IDataObject : IID struct IDataObject Vtbl QueryInterface : {THIS, REFIID, [] PVOID} HRESULT AddRef : {THIS} ULONG Release : {THIS} ULONG GetData : {THIS, LPFORMATETC, LPSTGMEDIUM} HRESULT GetDataHere : {THIS, LPFORMATETC, LPSTGMEDIUM} HRESULT QueryGetData : {THIS, LPFORMATETC} HRESULT GetCanonicalFormatEtc : {THIS, LPFORMATETC, LPFORMATETC} HRESULT SetData : {THIS, LPFORMATETC, LPSTGMEDIUM, BOOL} HRESULT EnumFormatEtc : {THIS, DWORD, [] IEnumFORMATETC} HRESULT end struct IDataObject lpVtbl : IDataObject Vtbl end typedef LPDATAOBJECT = IDataObject //[cf] //[c] //[c] equ DROPEFFECT_NONE = 0 equ DROPEFFECT_COPY = 1 equ DROPEFFECT_MOVE = 2 equ DROPEFFECT_LINK = 4 import def [name="c"] IID_IDropTarget : IID struct IDropTarget Vtbl QueryInterface : {THIS, REFIID, [] PVOID} HRESULT AddRef : {THIS} ULONG Release : {THIS} ULONG DragEnter : {THIS, LPDATAOBJECT, DWORD, LONG, LONG, [] DWORD} HRESULT DragOver : {THIS, DWORD, LONG, LONG, [] DWORD} HRESULT DragLeave : {THIS} HRESULT Drop : {THIS, LPDATAOBJECT, DWORD, LONG, LONG, [] DWORD} HRESULT end struct IDropTarget lpVtbl : IDropTarget Vtbl end typedef LPDROPTARGET = IDropTarget //[c] end