Return to package dfl. www.dprogramming.com

module dfl.wincom

imports
public import std.c.windows.com;

interfaces
IAdviseSink IDataObject IDropSource IDropTarget IEnumFORMATETC IEnumSTATDATA IMalloc IPicture ISequentialStream IStream
structs
DVTARGETDEVICE FORMATETC STATDATA STATSTG STGMEDIUM
functions
CreateStreamOnHGlobal DoDragDrop MAP_LOGHIM_TO_PIX OleFlushClipboard OleGetClipboard OleInitialize OleLoadPicture OleSetClipboard RegisterDragDrop RevokeDragDrop
variables
IID_IPicture

__anonymous
public enum __anonymous: HRESULT
{
	DRAGDROP_S_DROP,
	DRAGDROP_S_CANCEL,
	DRAGDROP_S_USEDEFAULTCURSORS,
	V_E_LINDEX,
	STG_E_MEDIUMFULL,
	STG_E_INVALIDFUNCTION,
	DV_E_TYMED,
	DV_E_DVASPECT,
	DV_E_FORMATETC,
	DV_E_LINDEX,
	DRAGDROP_E_ALREADYREGISTERED,
}

__anonymous
public enum __anonymous: DWORD
{
	TYMED_HGLOBAL,
	TYMED_FILE,
	TYMED_ISTREAM,
	TYMED_ISTORAGE,
	TYMED_GDI,
	TYMED_MFPICT,
	TYMED_ENHMF,
	TYMED_NULL,
}

__anonymous
public enum __anonymous: DWORD
{
	DVASPECT_CONTENT,
	DVASPECT_THUMBNAIL,
	DVASPECT_ICON,
	DVASPECT_DOCPRINT,
}

__anonymous
public enum __anonymous
{
	DATADIR_GET,
}

__anonymous
public enum __anonymous: DWORD
{
	STREAM_SEEK_SET,
	STREAM_SEEK_CUR,
	STREAM_SEEK_END,
}

CreateStreamOnHGlobal
public WINOLEAPI CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPSTREAM ppstm);

DoDragDrop
public WINOLEAPI DoDragDrop(IDataObject pDataObject, IDropSource pDropSource, DWORD dwOKEffect, DWORD* pdwEffect);

DVTARGETDEVICE
public struct DVTARGETDEVICE
{
public DWORD tdSize; public WORD tdDriverNameOffset; public WORD tdDeviceNameOffset; public WORD tdPortNameOffset; public WORD tdExtDevmodeOffset; public BYTE[1] tdData;
}

FORMATETC
public struct FORMATETC
{
public CLIPFORMAT cfFormat; public DVTARGETDEVICE* ptd; public DWORD dwAspect; public LONG lindex; public DWORD tymed;
}

IAdviseSink
public interface IAdviseSink: IUnknown
{
}

IDataObject
public interface IDataObject: IUnknown
{
public HRESULT DAdvise(FORMATETC* pFormatetc, DWORD advf, IAdviseSink pAdvSink, DWORD* pdwConnection); public HRESULT DUnadvise(DWORD dwConnection); public HRESULT EnumDAdvise(IEnumSTATDATA* ppenumAdvise); public HRESULT EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC* ppenumFormatetc); public HRESULT GetCanonicalFormatEtc(FORMATETC* pFormatetcIn, FORMATETC* pFormatetcOut); public HRESULT GetData(FORMATETC* pFormatetc, STGMEDIUM* pmedium); public HRESULT GetDataHere(FORMATETC* pFormatetc, STGMEDIUM* pmedium); public HRESULT QueryGetData(FORMATETC* pFormatetc); public HRESULT SetData(FORMATETC* pFormatetc, STGMEDIUM* pmedium, BOOL fRelease);
}

IDropSource
public interface IDropSource: IUnknown
{
public HRESULT GiveFeedback(DWORD dwEffect); public HRESULT QueryContinueDrag(BOOL fEscapePressed, DWORD grfKeyState);
}

IDropTarget
public interface IDropTarget: IUnknown
{
public HRESULT DragEnter(IDataObject pDataObject, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect); public HRESULT DragLeave(); public HRESULT DragOver(DWORD grfKeyState, POINTL pt, DWORD* pdwEffect); public HRESULT Drop(IDataObject pDataObject, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect);
}

IEnumFORMATETC
public interface IEnumFORMATETC: IUnknown
{
public HRESULT Clone(IEnumFORMATETC* ppenum); public HRESULT Next(ULONG celt, FORMATETC* rgelt, ULONG* pceltFetched); public HRESULT Reset(); public HRESULT Skip(ULONG celt);
}

IEnumSTATDATA
public interface IEnumSTATDATA: IUnknown
{
public HRESULT Clone(IEnumSTATDATA* ppenum); public HRESULT Next(ULONG celt, STATDATA* rgelt, ULONG* pceltFetched); public HRESULT Reset(); public HRESULT Skip(ULONG celt);
}

IID_IPicture
public IID IID_IPicture;

IMalloc
public interface IMalloc: IUnknown
{
public void* Alloc(ULONG cb); public int DidAlloc(void* pv); public void Free(void* pv); public ULONG GetSize(void* pv); public void HeapMinimize(); public void* Realloc(void *pv, ULONG cb);
}

IPicture
public interface IPicture: IUnknown
{
public HRESULT get_Attributes(DWORD* pdwAttr); public HRESULT get_CurDC(HDC* phdcOut); public HRESULT get_Handle(OLE_HANDLE* phandle); public HRESULT get_Height(OLE_YSIZE_HIMETRIC* pheight); public HRESULT get_hPal(OLE_HANDLE* phpal); public HRESULT get_KeepOriginalFormat(BOOL* pfkeep); public HRESULT get_Type(short* ptype); public HRESULT get_Width(OLE_XSIZE_HIMETRIC* pwidth); public HRESULT PictureChanged(); public HRESULT put_KeepOriginalFormat(BOOL keep); public HRESULT Render(HDC hdc, int x, int y, int cx, int cy, OLE_XPOS_HIMETRIC xSrc, OLE_YPOS_HIMETRIC ySrc, OLE_XSIZE_HIMETRIC cxSrc, OLE_YSIZE_HIMETRIC cySrc, LPCRECT prcWBounds); public HRESULT SaveAsFile(IStream pstream, BOOL fSaveMemCopy, LONG* pcbSize); public HRESULT SelectPicture(HDC hdcIn, HDC* phdcOut, OLE_HANDLE* phbmpOut); public HRESULT set_hPal(OLE_HANDLE hpal);
}

ISequentialStream
public interface ISequentialStream: IUnknown
{
public HRESULT Read(void* pv, ULONG cb, ULONG* pcbRead); public HRESULT Write(void* pv, ULONG cb, ULONG* pcbWritten);
}

IStream
public interface IStream: ISequentialStream
{
public HRESULT Clone(IStream* ppstm); public HRESULT Commit(DWORD grfCommitFlags); public HRESULT CopyTo(IStream pstm, ULARGE_INTEGER cb, ULARGE_INTEGER* pcbRead, ULARGE_INTEGER* pcbWritten); public HRESULT LockRegion(ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType); public HRESULT Revert(); public HRESULT Seek(LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER* plibNewPosition); public HRESULT SetSize(ULARGE_INTEGER libNewSize); public HRESULT Stat(STATSTG* pstatstg, DWORD grfStatFlag); public HRESULT UnlockRegion(ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType);
}

MAP_LOGHIM_TO_PIX
public LONG MAP_LOGHIM_TO_PIX(LONG x, LONG logpixels);

OleFlushClipboard
public WINOLEAPI OleFlushClipboard();

OleGetClipboard
public WINOLEAPI OleGetClipboard(IDataObject* ppDataObj);

OleInitialize
public WINOLEAPI OleInitialize(LPVOID pvReserved);

OleLoadPicture
public WINOLEAPI OleLoadPicture(IStream pStream, LONG lSize, BOOL fRunmode, IID* riid, void** ppv);

OleSetClipboard
public WINOLEAPI OleSetClipboard(IDataObject pDataObj);

RegisterDragDrop
public WINOLEAPI RegisterDragDrop(HWND hwnd, IDropTarget pDropTarget);

RevokeDragDrop
public WINOLEAPI RevokeDragDrop(HWND hwnd);

STATDATA
public struct STATDATA
{
public FORMATETC formatetc; public DWORD grfAdvf; public IAdviseSink pAdvSink; public DWORD dwConnection;
}

STATSTG
public struct STATSTG
{
public LPWSTR pwcsName; public DWORD type; public ULARGE_INTEGER cbSize; public FILETIME mtime; public FILETIME ctime; public FILETIME atime; public DWORD grfMode; public DWORD grfLocksSupported; public CLSID clsid; public DWORD grfStateBits; public DWORD reserved;
}

STGMEDIUM
public struct STGMEDIUM
{
public union __anonymous {
public HBITMAP hBitmap; public HENHMETAFILE hEnhMetaFile; public HGLOBAL hGlobal; public LPOLESTR lpszFileName; public IStream pstm;
}

public DWORD tymed; public IUnknown pUnkForRelease;

}