112 if(off == 0)
return NULL;
113 return (DVTARGETDEVICE*)((
char*)
data + off);
126 if(
data->entries[
idx].fmtetc.ptd ==
NULL)
return 0;
127 return (
char*)
data->entries[
idx].fmtetc.ptd - (
char*)
data;
180 0, 0, { (
DWORD_PTR)(__FILE__
": clipboard last snapshot") }
251 ERR(
"CreateStreamOnHGlobal failed.\n");
277 if (!
fmt)
return "(null)";
324 TRACE(
"-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj);
328 TRACE(
"-- Interface: E_NOINTERFACE\n");
341 TRACE(
"%p, refcount %lu.\n", iface,
ref);
356 TRACE(
"%p, refcount %lu.\n", iface,
ref);
360 TRACE(
"() - destroying IEnumFORMATETC(%p)\n",
This);
383 cfetch =
This->data->count -
This->pos;
390 for(
i = 0;
i < cfetch;
i++)
403 *pceltFethed = cfetch;
417 TRACE(
"%p, %lu.\n", iface, celt);
466 for(
i = 0;
i <
This->data->count;
i++)
473static const IEnumFORMATETCVtbl
efvt =
502 TRACE(
"(%p)->()\n", ef);
514 void *src_ptr, *dst_ptr;
555 if (!dest_ptr)
return E_FAIL;
636 std.tymed =
fmt->tymed = TYMED_ISTORAGE;
648 ILockBytes_Release(ptrILockBytes);
652 WARN(
"() : IDataObject_GetDataHere failed to render clipboard data! (%lx)\n",
hr);
665 fmt2.dwAspect = DVASPECT_CONTENT;
667 fmt2.tymed = TYMED_MFPICT;
669 memset(&std2, 0,
sizeof(STGMEDIUM));
670 std2.tymed = TYMED_MFPICT;
687 CHAR strOleTypeName[51];
688 BYTE OlePresStreamHeader [] =
690 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00,
691 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
692 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
693 0x00, 0x00, 0x00, 0x00
699 memcpy(&
pdh, OlePresStreamHeader,
sizeof(OlePresStreamHeader));
701 pdh.dwObjectExtentX = mfp->
xExt;
702 pdh.dwObjectExtentY = mfp->
yExt;
705 hr = IStorage_CreateStream(
std.pstg,
L"\2OlePres000",
715 IStream_Release(pStream);
734 WARN(
"() : Failed to set rendered clipboard data into clipboard!\n");
752 if(entries[
i].fmtetc.cfFormat ==
cf)
781 ILockBytes_Release(lbs);
790 med.tymed = stg_fmt.tymed = TYMED_ISTORAGE;
792 med.pUnkForRelease =
NULL;
794 hr = IDataObject_GetDataHere(
data, &stg_fmt, &med);
797 memset(&med, 0,
sizeof(med));
798 hr = IDataObject_GetData(
data, &stg_fmt, &med);
801 hr = IStorage_CopyTo(med.pstg, 0,
NULL,
NULL, stg);
808 IStorage_Release(stg);
835 med.tymed = stm_fmt.tymed = TYMED_ISTREAM;
837 med.pUnkForRelease =
NULL;
839 hr = IDataObject_GetDataHere(
data, &stm_fmt, &med);
845 memset(&med, 0,
sizeof(med));
846 hr = IDataObject_GetData(
data, &stm_fmt, &med);
850 IStream_Seek(med.pstm, offs, STREAM_SEEK_END, &
pos);
851 IStream_Seek(med.pstm, offs, STREAM_SEEK_SET,
NULL);
857 IStream_Release(stm);
861 if(stm) IStream_Release(stm);
881 mem_fmt.tymed = TYMED_HGLOBAL;
882 memset(&med, 0,
sizeof(med));
884 hr = IDataObject_GetData(
data, &mem_fmt, &med);
909 mem_fmt.tymed = TYMED_ENHMF;
910 memset(&med, 0,
sizeof(med));
912 hr = IDataObject_GetData(
data, &mem_fmt, &med);
937 mem_fmt.tymed = TYMED_MFPICT;
938 memset(&med, 0,
sizeof(med));
940 hr = IDataObject_GetData(
data, &mem_fmt, &med);
967 mem_fmt.tymed = TYMED_GDI;
968 memset(&med, 0,
sizeof(med));
970 hr = IDataObject_GetData(
data, &mem_fmt, &med);
999 if(
fmt->tymed & TYMED_ISTORAGE)
1003 else if(
fmt->tymed & TYMED_ISTREAM)
1007 else if(
fmt->tymed & TYMED_HGLOBAL)
1011 else if(
fmt->tymed & TYMED_ENHMF)
1015 else if(
fmt->tymed & TYMED_MFPICT)
1020 else if(
fmt->tymed & TYMED_GDI)
1027 FIXME(
"Unhandled tymed %lx\n",
fmt->tymed);
1035 WARN(
"() : Failed to set rendered clipboard data into clipboard!\n");
1036 if(
fmt->tymed & TYMED_MFPICT)
1038 else if(
fmt->tymed & TYMED_GDI)
1064 if ( (
This==0) || (ppvObject==0) )
1080 IUnknown_AddRef((
IUnknown*)*ppvObject);
1093 TRACE(
"%p, refcount %lu.\n", iface,
ref);
1106 TRACE(
"%p, refcount %lu.\n", iface,
ref);
1120 if(
This->data) IDataObject_Release(
This->data);
1180 IStream_Seek(stm,
pos, STREAM_SEEK_SET,
NULL);
1183 IStream_Release(stm);
1192 if(
cf >= 0xc000)
return TYMED_ISTREAM | TYMED_HGLOBAL;
1200 return TYMED_ISTREAM | TYMED_HGLOBAL;
1204 return TYMED_MFPICT;
1208 FIXME(
"returning TYMED_NULL for cf %04x\n",
cf);
1245 for(
i = 0;
i <
ret->count;
i++)
1246 ret->entries[
i].fmtetc.ptd =
1275 ret->entries[
idx].fmtetc.cfFormat =
cf;
1277 ret->entries[
idx].fmtetc.dwAspect = DVASPECT_CONTENT;
1278 ret->entries[
idx].fmtetc.lindex = -1;
1280 ret->entries[
idx].first_use = 1;
1297 med->pUnkForRelease =
NULL;
1298 med->tymed = TYMED_NULL;
1317 med->pUnkForRelease =
NULL;
1318 med->tymed = TYMED_NULL;
1330 med->tymed = TYMED_ISTREAM;
1345 med->pUnkForRelease =
NULL;
1346 med->tymed = TYMED_NULL;
1361 ILockBytes_Release(lbs);
1367 ILockBytes_Release(lbs);
1374 med->tymed = TYMED_ISTORAGE;
1385 med->pUnkForRelease =
NULL;
1386 med->tymed = TYMED_NULL;
1390 med->tymed = TYMED_ENHMF;
1403 med->pUnkForRelease =
NULL;
1404 med->tymed = TYMED_NULL;
1411 med->tymed = TYMED_GDI;
1419 if(off1 == 0 && off2 == 0)
return TRUE;
1420 if(off1 == 0 || off2 == 0)
return FALSE;
1422 str1 = (
const WCHAR*)((
const char*)t1 + off1);
1423 str2 = (
const WCHAR*)((
const char*)t2 + off2);
1428static inline BOOL td_equal(
const DVTARGETDEVICE *t1,
const DVTARGETDEVICE *t2)
1433 if(!
string_off_equal(t1, t1->tdDriverNameOffset, t2, t2->tdDriverNameOffset))
1435 if(!
string_off_equal(t1, t1->tdDeviceNameOffset, t2, t2->tdDeviceNameOffset))
1462 memset(med, 0,
sizeof(*med));
1471 hr = IDataObject_GetData(
This->data,
fmt, med);
1478 if(
fmt->lindex != -1)
1502 if(!
mask && (
entry->fmtetc.tymed & (TYMED_ISTREAM | TYMED_HGLOBAL | TYMED_ISTORAGE)))
1503 mask =
fmt->tymed & (TYMED_ISTREAM | TYMED_HGLOBAL | TYMED_ISTORAGE);
1521 if(
mask & TYMED_HGLOBAL)
1523 else if(
mask & TYMED_ISTREAM)
1525 else if(
mask & TYMED_ISTORAGE)
1527 else if(
mask & TYMED_ENHMF)
1529 else if(
mask & TYMED_GDI)
1533 FIXME(
"Unhandled tymed - mask %lx req tymed %lx\n",
mask,
fmt->tymed);
1568 hr = IDataObject_GetDataHere(
This->data,
fmt, med);
1594 supported =
entry->fmtetc.tymed;
1597 supported = TYMED_HGLOBAL;
1606 if(dst_size >= src_size)
1622 hr = IStream_Write(med->pstm,
src, src_size,
NULL);
1626 case TYMED_ISTORAGE:
1629 if(!(supported & TYMED_ISTORAGE))
1643 FIXME(
"Unhandled tymed - supported %x req tymed %lx\n", supported, med->tymed);
1681 TRACE(
"(%p, %p, %p)\n", iface, fmt_in, fmt_out);
1695 STGMEDIUM *med,
BOOL release)
1697 TRACE(
"(%p, %p, %p, %d): not implemented\n", iface,
fmt, med, release);
1711 TRACE(
"%p, %lx, %p.\n", iface,
dir, enum_fmt);
1749 TRACE(
"%p, %ld.\n", iface, conn);
1761 TRACE(
"(%p, %p): not implemented\n", iface, enum_advise);
1794 This->seq_no = seq_no;
1819 hr = IDataObject_EnumFormatEtc(
data, DATADIR_GET, &enum_fmt);
1822 while(IEnumFORMATETC_Next(enum_fmt, 1, &
fmt,
NULL) ==
S_OK)
1825 needed +=
sizeof(priv_data->
entries[0]);
1828 needed +=
fmt.ptd->tdSize;
1837 needed +=
sizeof(priv_data->
entries[0]);
1841 priv_data->
unk1 = 0;
1842 priv_data->
size = needed;
1843 priv_data->
unk2 = 1;
1845 priv_data->
unk3[0] = 0;
1846 priv_data->
unk3[1] = 0;
1848 IEnumFORMATETC_Reset(enum_fmt);
1853 while(IEnumFORMATETC_Next(enum_fmt, 1, &
fmt,
NULL) ==
S_OK)
1860 memcpy((
char*)priv_data + target_offset,
fmt.ptd,
fmt.ptd->tdSize);
1862 target_offset +=
fmt.ptd->tdSize;
1876 IEnumFORMATETC_Release(enum_fmt);
1925 pos.QuadPart =
size.QuadPart = 0;
1927 IStream_Seek(stm,
pos, STREAM_SEEK_SET,
NULL);
1929 IStream_Seek(stm,
pos, STREAM_SEEK_SET,
NULL);
1930 IStream_SetSize(stm,
size);
1982 IDataObject_Release(clipbrd->
src_data);
1992 IDataObject_AddRef(
data);
1997 MSHCTX_LOCAL,
NULL, MSHLFLAGS_TABLESTRONG);
1998 IUnknown_Release(unk);
2021 IDataObject_AddRef(clipbrd->
src_data);
2042 if (!clipbrd)
return;
2075 TRACE(
"(): WM_RENDERFORMAT(cfFormat=%x)\n",
cf);
2093 TRACE(
"(): WM_RENDERALLFORMATS\n");
2099 if(entries[
i].first_use)
2107 TRACE(
"(): WM_DESTROYCLIPBOARD\n");
2129 class.cbSize =
sizeof(
class);
2132 class.cbClsExtra = 0;
2133 class.cbWndExtra = 0;
2134 class.hInstance =
hinst;
2137 class.hbrBackground = 0;
2138 class.lpszMenuName =
NULL;
2140 class.hIconSm =
NULL;
2201 if(!
info->ole_inits)
2275 IDataObject_AddRef(*
obj);
2301 if(!
info->ole_inits)
#define CO_E_NOTINITIALIZED
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
static HRESULT copy_formatetc(FORMATETC *dst, const FORMATETC *src)
static struct oletls * COM_CurrentInfo(void)
HRESULT WINAPI DECLSPEC_HOTPATCH ProgIDFromCLSID(REFCLSID clsid, LPOLESTR *progid)
HRESULT WINAPI GetHGlobalFromStream(IStream *stream, HGLOBAL *phglobal)
HRESULT WINAPI CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL delete_on_release, IStream **stream)
HRESULT WINAPI CoMarshalInterface(IStream *stream, REFIID riid, IUnknown *unk, DWORD dest_context, void *pvDestContext, DWORD mshlFlags)
HRESULT WINAPI CoReleaseMarshalData(IStream *stream)
HRESULT WINAPI CoUnmarshalInterface(IStream *stream, REFIID riid, void **ppv)
HRESULT WINAPI ReadClassStg(IStorage *pstg, CLSID *pclsid)
HRESULT WINAPI StgIsStorageILockBytes(ILockBytes *plkbyt)
const char * wine_dbg_sprintf(const char *format,...)
#define HeapFree(x, y, z)
#define WideCharToMultiByte
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
BOOL WINAPI InitOnceExecuteOnce(_Inout_ PINIT_ONCE InitOnce, _In_ __callback PINIT_ONCE_FN InitFn, _Inout_opt_ PVOID Parameter, _Outptr_opt_result_maybenull_ LPVOID *Context)
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
static HRESULT get_data_from_storage(IDataObject *data, FORMATETC *fmt, HGLOBAL *mem)
static HRESULT get_data_from_enhmetafile(IDataObject *data, FORMATETC *fmt, HGLOBAL *mem)
static HRESULT render_format(IDataObject *data, LPFORMATETC fmt)
static HRESULT dup_metafilepict(HGLOBAL src, HGLOBAL *pdest)
static void release_marshal_data(IStream *stm)
static HRESULT WINAPI snapshot_QueryInterface(IDataObject *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI OLEClipbrd_IEnumFORMATETC_Skip(LPENUMFORMATETC iface, ULONG celt)
static HRESULT set_clipboard_formats(ole_clipbrd *clipbrd, IDataObject *data)
static HRESULT get_stgmed_for_stream(HGLOBAL h, STGMEDIUM *med)
static DWORD_PTR td_get_offs(ole_priv_data *data, DWORD idx)
HRESULT WINAPI OleIsCurrentClipboard(IDataObject *data)
static HRESULT WINAPI snapshot_QueryGetData(IDataObject *iface, FORMATETC *fmt)
static DVTARGETDEVICE * td_offs_to_ptr(ole_priv_data *data, DWORD_PTR off)
static HRESULT WINAPI snapshot_GetDataHere(IDataObject *iface, FORMATETC *fmt, STGMEDIUM *med)
static HWND create_clipbrd_window(void)
static BOOL string_off_equal(const DVTARGETDEVICE *t1, WORD off1, const DVTARGETDEVICE *t2, WORD off2)
UINT dataobject_clipboard_format
static HRESULT get_stgmed_for_global(HGLOBAL h, STGMEDIUM *med)
static HRESULT get_current_dataobject(IDataObject **data)
UINT ole_private_data_clipboard_format
static HRESULT WINAPI OLEClipbrd_IEnumFORMATETC_QueryInterface(LPENUMFORMATETC iface, REFIID riid, LPVOID *ppvObj)
static HRESULT dup_bitmap(HBITMAP src, HBITMAP *pdest)
static BOOL WINAPI clipbrd_create(INIT_ONCE *init_once, void *parameter, void **context)
static void free_metafilepict(HGLOBAL src)
static HRESULT get_data_from_global(IDataObject *data, FORMATETC *fmt, HGLOBAL *mem)
static HRESULT WINAPI OLEClipbrd_IEnumFORMATETC_Clone(LPENUMFORMATETC iface, LPENUMFORMATETC *obj)
static HRESULT WINAPI snapshot_GetData(IDataObject *iface, FORMATETC *fmt, STGMEDIUM *med)
static void register_clipboard_formats(void)
HRESULT WINAPI OleSetClipboard(IDataObject *data)
UINT embedded_object_clipboard_format
static HRESULT get_stgmed_for_storage(HGLOBAL h, STGMEDIUM *med)
static BOOL td_equal(const DVTARGETDEVICE *t1, const DVTARGETDEVICE *t2)
static ULONG WINAPI OLEClipbrd_IEnumFORMATETC_AddRef(LPENUMFORMATETC iface)
struct PresentationDataHeader PresentationDataHeader
static CRITICAL_SECTION_DEBUG latest_snapshot_cs_debug
static HRESULT dup_global_mem(HGLOBAL src, DWORD flags, HGLOBAL *dst)
static HRESULT set_src_dataobject(ole_clipbrd *clipbrd, IDataObject *data)
UINT filenameW_clipboard_format
static snapshot * impl_from_IDataObject(IDataObject *iface)
static HRESULT WINAPI snapshot_DUnadvise(IDataObject *iface, DWORD conn)
static const IDataObjectVtbl snapshot_vtable
static HRESULT get_priv_data(ole_priv_data **data)
UINT filename_clipboard_format
static UINT wine_marshal_clipboard_format
static HWND get_current_ole_clip_window(void)
static const IEnumFORMATETCVtbl efvt
static HRESULT WINAPI OLEClipbrd_IEnumFORMATETC_Reset(LPENUMFORMATETC iface)
static ULONG WINAPI OLEClipbrd_IEnumFORMATETC_Release(LPENUMFORMATETC iface)
static HRESULT expose_marshalled_dataobject(ole_clipbrd *clipbrd, IDataObject *data)
static LRESULT CALLBACK clipbrd_wndproc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
static HRESULT enum_fmtetc_construct(ole_priv_data *data, UINT pos, IEnumFORMATETC **obj)
static HRESULT get_data_from_metafilepict(IDataObject *data, FORMATETC *fmt, HGLOBAL *mem)
UINT ownerlink_clipboard_format
UINT object_descriptor_clipboard_format
static ole_priv_data_entry * find_format_in_list(ole_priv_data_entry *entries, DWORD num, UINT cf)
static HRESULT get_stgmed_for_emf(HENHMETAFILE hemf, STGMEDIUM *med)
static HRESULT render_embed_source_hack(IDataObject *data, LPFORMATETC fmt)
static DWORD get_tymed_from_nonole_cf(UINT cf)
void clipbrd_destroy(void)
static HRESULT WINAPI snapshot_DAdvise(IDataObject *iface, FORMATETC *fmt, DWORD flags, IAdviseSink *sink, DWORD *conn)
static ULONG WINAPI snapshot_Release(IDataObject *iface)
static snapshot * snapshot_construct(DWORD seq_no)
static const char * dump_fmtetc(FORMATETC *fmt)
UINT link_source_descriptor_clipboard_format
static enum_fmtetc * impl_from_IEnumFORMATETC(IEnumFORMATETC *iface)
static HRESULT WINAPI snapshot_EnumDAdvise(IDataObject *iface, IEnumSTATDATA **enum_advise)
static HRESULT WINAPI snapshot_GetCanonicalFormatEtc(IDataObject *iface, FORMATETC *fmt_in, FORMATETC *fmt_out)
static HRESULT get_data_from_stream(IDataObject *data, FORMATETC *fmt, HGLOBAL *mem)
static HRESULT WINAPI snapshot_SetData(IDataObject *iface, FORMATETC *fmt, STGMEDIUM *med, BOOL release)
static HRESULT get_data_from_bitmap(IDataObject *data, FORMATETC *fmt, HBITMAP *hbm)
HRESULT WINAPI OleFlushClipboard(void)
static ULONG WINAPI snapshot_AddRef(IDataObject *iface)
HRESULT WINAPI OleGetClipboard(IDataObject **obj)
static ole_clipbrd * theOleClipboard
static const WCHAR clipbrd_wndclass[]
static HRESULT set_dataobject_format(HWND hwnd)
static HRESULT get_stgmed_for_bitmap(HBITMAP hbmp, STGMEDIUM *med)
UINT custom_link_source_clipboard_format
static HRESULT WINAPI OLEClipbrd_IEnumFORMATETC_Next(LPENUMFORMATETC iface, ULONG celt, FORMATETC *rgelt, ULONG *pceltFethed)
static HRESULT WINAPI snapshot_EnumFormatEtc(IDataObject *iface, DWORD dir, IEnumFORMATETC **enum_fmt)
static HRESULT get_clipbrd_window(ole_clipbrd *clipbrd, HWND *wnd)
void clipbrd_uninitialize(void)
static HRESULT get_ole_clipbrd(ole_clipbrd **clipbrd)
static CRITICAL_SECTION latest_snapshot_cs
UINT embed_source_clipboard_format
UINT link_source_clipboard_format
void WINAPI ReleaseStgMedium(STGMEDIUM *pmedium)
HRESULT OLECONVERT_CreateCompObjStream(LPSTORAGE pStorage, LPCSTR strOleTypeName)
HRESULT WINAPI StgCreateDocfileOnILockBytes(ILockBytes *plkbyt, DWORD grfMode, DWORD reserved, IStorage **ppstgOpen)
HRESULT STORAGE_CreateOleStream(IStorage *storage, DWORD flags)
HRESULT WINAPI StgOpenStorageOnILockBytes(ILockBytes *plkbyt, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstgOpen)
static VOID BitBlt(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Width, _In_ ULONG Height, _In_reads_bytes_(Delta *Height) PUCHAR Buffer, _In_ ULONG BitsPerPixel, _In_ ULONG Delta)
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLuint GLenum GLsizei const GLchar * buf
GLsizei GLenum GLboolean sink
GLfloat GLfloat GLfloat GLfloat h
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
HGLOBAL NTAPI GlobalFree(HGLOBAL hMem)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
SIZE_T NTAPI GlobalSize(HGLOBAL hMem)
static ERESOURCE GlobalLock
void WINAPI CoTaskMemFree(void *ptr)
HRESULT WINAPI CreateILockBytesOnHGlobal(HGLOBAL global, BOOL delete_on_release, ILockBytes **ret)
#define memcpy(s1, s2, n)
static LPDATAOBJECT clip_data
EXTINLINE DWORD WINAPI GetClipboardSequenceNumber(VOID)
#define STGM_SHARE_EXCLUSIVE
interface IEnumFORMATETC * LPENUMFORMATETC
const GUID IID_IEnumFORMATETC
const GUID IID_IDataObject
#define IsEqualIID(riid1, riid2)
XML_HIDDEN void xmlParserErrors const char const xmlChar const xmlChar * str2
XML_HIDDEN void xmlParserErrors const char const xmlChar * str1
LIST_ENTRY ProcessLocksList
IEnumFORMATETC IEnumFORMATETC_iface
snapshot * latest_snapshot
ole_priv_data * cached_enum
ole_priv_data_entry entries[1]
IDataObject IDataObject_iface
#define FIELD_OFFSET(t, f)
#define CONTAINING_RECORD(address, type, field)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
*nSize LPSTR _Inout_ LPDWORD nSize
#define INIT_ONCE_STATIC_INIT
#define CLIPBRD_E_CANT_CLOSE
#define CLIPBRD_E_CANT_EMPTY
#define CLIPBRD_E_CANT_OPEN
#define CLIPBRD_E_CANT_SET
#define DATA_S_SAMEFORMATETC
BOOL WINAPI DeleteMetaFile(_In_ HMETAFILE)
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
HENHMETAFILE WINAPI CopyEnhMetaFileW(_In_ HENHMETAFILE hemfSrc, _In_opt_ LPCWSTR pszFile)
HMETAFILE WINAPI CopyMetaFileW(_In_ HMETAFILE hmfSrc, _In_opt_ LPCWSTR pszFile)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
UINT WINAPI GetMetaFileBitsEx(_In_ HMETAFILE hMF, _In_ UINT cbBuffer, _Out_writes_bytes_opt_(cbBuffer) LPVOID lpData)
HBITMAP WINAPI CreateCompatibleBitmap(_In_ HDC hdc, _In_ INT cx, _In_ INT cy)
BOOL WINAPI DeleteDC(_In_ HDC)
BOOL WINAPI IsWindow(_In_opt_ HWND)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_DESTROYCLIPBOARD
HANDLE WINAPI SetClipboardData(_In_ UINT, _In_opt_ HANDLE)
BOOL WINAPI CloseClipboard(void)
UINT WINAPI RegisterClipboardFormatW(_In_ LPCWSTR)
BOOL WINAPI OpenClipboard(_In_opt_ HWND)
UINT WINAPI EnumClipboardFormats(_In_ UINT)
HANDLE WINAPI GetClipboardData(_In_ UINT)
BOOL WINAPI EmptyClipboard(void)
ATOM WINAPI RegisterClassExW(_In_ CONST WNDCLASSEXW *)
#define CreateWindowW(a, b, c, d, e, f, g, h, i, j, k)
int WINAPI GetClipboardFormatNameW(_In_ UINT format, _Out_writes_(cchMaxCount) LPWSTR lpszFormatName, _In_ int cchMaxCount)
BOOL WINAPI UnregisterClassW(_In_ LPCWSTR, HINSTANCE)
BOOL WINAPI DestroyWindow(_In_ HWND)
#define WM_RENDERALLFORMATS
BOOL WINAPI IsClipboardFormatAvailable(_In_ UINT)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)