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
structs
DVTARGETDEVICE FORMATETC STATDATA STGMEDIUM
functions
DoDragDrop OleFlushClipboard OleGetClipboard OleInitialize OleSetClipboard RegisterDragDrop RevokeDragDrop

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

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

__anonymous
public enum __anonymous
{
	DATADIR_GET,
}

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

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);
}

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);
}

OleFlushClipboard
public WINOLEAPI OleFlushClipboard();

OleGetClipboard
public WINOLEAPI OleGetClipboard(IDataObject* ppDataObj);

OleInitialize
public WINOLEAPI OleInitialize(LPVOID pvReserved);

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;
}

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

public DWORD tymed; public IUnknown pUnkForRelease;

}