24#define WIN32_LEAN_AND_MEAN
36#define ok_ole_success(hr, func) ok(hr == S_OK, func " failed with error %#08lx\n", hr)
38#define DEFINE_EXPECT(func) \
39 static BOOL expect_ ## func = FALSE, called_ ## func = FALSE
41#define SET_EXPECT(func) \
42 expect_ ## func = TRUE
44#define CHECK_EXPECT2(func) \
46 ok(expect_ ##func, "unexpected call " #func "\n"); \
47 called_ ## func = TRUE; \
50#define CHECK_EXPECT(func) \
52 CHECK_EXPECT2(func); \
53 expect_ ## func = FALSE; \
56#define CHECK_CALLED(func) \
58 ok(called_ ## func, "expected " #func "\n"); \
59 expect_ ## func = called_ ## func = FALSE; \
83 {0xbc, 0x13, 0x51, 0x6e, 0x92, 0x39, 0xac, 0xd0}
91 {0xbc, 0x13, 0x51, 0x6e, 0x92, 0x39, 0xac, 0xe0}
99 {0xbc, 0x13, 0x51, 0x6e, 0x92, 0x39, 0xac, 0xe1}
164 "Expected %s to be called instead of %s\n",
182#define CHECK_EXPECTED_METHOD(method_name) check_expected_method_fmt(method_name, NULL)
183#define CHECK_EXPECTED_METHOD_FMT(method_name, fmt) check_expected_method_fmt(method_name, fmt)
185#define CHECK_NO_EXTRA_METHODS() \
187 ok(!expected_method_list->method, "Method sequence starting from %s not called\n", expected_method_list->method); \
192 0x28, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
193 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00,
194 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
195 0xc8, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00,
196 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
197 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
202 0x28, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
203 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00,
204 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
205 0xc8, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00,
206 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
207 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
214 med->tymed = TYMED_HGLOBAL;
219 med->pUnkForRelease =
NULL;
224 med->tymed = TYMED_GDI;
226 med->pUnkForRelease =
NULL;
234 med->tymed = TYMED_ENHMF;
236 med->pUnkForRelease =
NULL;
246 med->tymed = TYMED_MFPICT;
254 med->pUnkForRelease =
NULL;
267 med->tymed = TYMED_HGLOBAL;
269 med->pUnkForRelease =
NULL;
332 LPCOLESTR szContainerApp,
333 LPCOLESTR szContainerObj
353 DWORD dwWhichMoniker,
365 DWORD dwWhichMoniker,
522 ok(aspect == DVASPECT_CONTENT,
"got aspect %ld\n", aspect);
690 FORMATETC *pformatetc,
697 ok(pformatetc !=
NULL,
"pformatetc should not be NULL\n");
700 "cfFormat: %x\n", pformatetc->cfFormat);
702 "ptd: %p\n", pformatetc->ptd);
704 "dwAspect: %lx\n", pformatetc->dwAspect);
706 "lindex: %lx\n", pformatetc->lindex);
708 "tymed: %lx\n", pformatetc->tymed);
711 ok(pformatetc ==
NULL,
"pformatetc should be NULL\n");
750 FORMATETC *pformatetc,
779 IClassFactory_AddRef(iface);
857 BOOL fLastUnlockCloses)
885static const CLSID CLSID_Equation3 = {0x0002CE02, 0x0000, 0x0000, {0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46} };
910 void *paspect, DVTARGETDEVICE *
ptd,
HDC hdcTargetDev,
HDC hdcDraw,
921 ok(0,
"unexpected call GetColorSet\n");
926 void *aspect,
DWORD *freeze)
928 ok(0,
"unexpected call Freeze\n");
934 ok(0,
"unexpected call Unfreeze\n");
940 ok(0,
"unexpected call SetAdvise\n");
947 ok(0,
"unexpected call GetAdvise\n");
972 {
"OleObjectPersistStg_InitNew", 0 },
977 {
"OleObjectPersistStg_InitNew", 0 },
978 {
"OleObjectRunnable_Run", 0 },
979 {
"OleObjectCache_Cache", 0 },
982 static const struct expected_method methods_olerender_draw_with_site[] =
984 {
"OleObject_GetMiscStatus", 0 },
985 {
"OleObjectPersistStg_InitNew", 0 },
986 {
"OleObject_SetClientSite", 0 },
987 {
"OleObjectRunnable_Run", 0 },
988 {
"OleObjectCache_Cache", 0 },
993 {
"OleObject_GetMiscStatus", 0 },
994 {
"OleObjectPersistStg_InitNew", 0 },
995 {
"OleObject_SetClientSite", 0 },
996 {
"OleObjectRunnable_Run", 0 },
997 {
"OleObjectCache_Cache", 0 },
1002 {
"OleObjectPersistStg_InitNew", 0 },
1005 static const struct expected_method methods_olerender_draw_no_runnable[] =
1007 {
"OleObjectPersistStg_InitNew", 0 },
1008 {
"OleObjectCache_Cache", 0 },
1011 static const struct expected_method methods_olerender_draw_no_cache[] =
1013 {
"OleObjectPersistStg_InitNew", 0 },
1014 {
"OleObjectRunnable_Run", 0 },
1019 formatetc.cfFormat = 0;
1020 formatetc.ptd =
NULL;
1021 formatetc.dwAspect = DVASPECT_CONTENT;
1022 formatetc.lindex = -1;
1023 formatetc.tymed = TYMED_NULL;
1058 formatetc.ptd =
NULL;
1059 formatetc.dwAspect = DVASPECT_CONTENT;
1060 formatetc.lindex = -1;
1061 formatetc.tymed = TYMED_HGLOBAL;
1066 "OleCreate failed with error 0x%08lx\n",
hr);
1081 formatetc.cfFormat = 0;
1082 formatetc.tymed = TYMED_NULL;
1109 {
"OleObject_GetMiscStatus", 0 },
1110 {
"OleObjectPersistStg_Load", 0 },
1111 {
"OleObject_SetClientSite", 0 },
1112 {
"OleObject_GetMiscStatus", 0 },
1122 "OleLoad failed with error 0x%08lx\n",
hr);
1141 "OleLoad failed with error 0x%08lx\n",
hr);
1156 static const WCHAR olrepres[] = { 2,
'O',
'l',
'e',
'P',
'r',
'e',
's',
'0',
'0',
'0',0 };
1167 for (
i = 0;
i < 7;
i++)
1170 ok(
hr ==
S_OK,
"StgCreateDocfile error %#lx\n",
hr);
1176 ok(
hr ==
S_OK,
"CreateStream error %#lx\n",
hr);
1204 data_size =
sizeof(
buf);
1210 header.dvAspect = DVASPECT_CONTENT;
1214 header.dwObjectExtentX = 1;
1215 header.dwObjectExtentY = 1;
1216 header.dwSize = data_size;
1229 IStorage_Release(stg);
1232 ok(
hr ==
S_OK,
"OleLoad error %#lx: cfFormat = %lu, advf = %#lx\n",
hr,
fmt,
header.advf);
1239 ok(
hr ==
S_OK,
"OleDraw error %#lx: cfFormat = %lu, advf = %#lx\n",
hr,
fmt,
header.advf);
1242 ok(
hr ==
S_OK,
"OleDraw error %#lx: cfFormat = %lu, advf = %#lx\n",
hr,
fmt,
header.advf);
1246 IUnknown_Release(
obj);
1247 IStorage_Release(stg);
1269 IAdviseSink_AddRef(iface);
1289 FORMATETC *pFormatetc,
1363 return a->cfFormat ==
b->cfFormat &&
a->dwAspect ==
b->dwAspect &&
1364 a->lindex ==
b->lindex &&
a->tymed ==
b->tymed;
1374 switch (
format->cfFormat)
1377 medium->tymed = TYMED_HGLOBAL;
1378 medium->pUnkForRelease =
NULL;
1403 LPFORMATETC pformatetc,
1419 LPFORMATETC pformatectIn,
1420 LPFORMATETC pformatetcOut)
1428 LPFORMATETC pformatetc,
1447 FORMATETC* pformatetc,
1450 DWORD* pdwConnection)
1452 STGMEDIUM stgmedium;
1457 if(advf & ADVF_PRIMEFIRST)
1459 ok(pformatetc->cfFormat ==
cf_test_2,
"got %04x\n", pformatetc->cfFormat);
1460 stgmedium.tymed = TYMED_HGLOBAL;
1462 stgmedium.pUnkForRelease =
NULL;
1463 IAdviseSink_OnDataChange(pAdvSink, pformatetc, &stgmedium);
1540 hr = IOleCache2_EnumCache(
cache, &enum_stat );
1543 while (IEnumSTATDATA_Next(enum_stat, 1, &
stat,
NULL) ==
S_OK)
1545 ok(
stat.formatetc.cfFormat ==
expect->formatetc.cfFormat,
"got %d expect %d\n",
1546 stat.formatetc.cfFormat,
expect->formatetc.cfFormat );
1547 ok( !
stat.formatetc.ptd == !
expect->formatetc.ptd,
"got %p expect %p\n",
1549 ok(
stat.formatetc.dwAspect ==
expect->formatetc.dwAspect,
"got %ld expect %ld\n",
1550 stat.formatetc.dwAspect,
expect->formatetc.dwAspect );
1551 ok(
stat.formatetc.lindex ==
expect->formatetc.lindex,
"got %ld expect %ld\n",
1552 stat.formatetc.lindex,
expect->formatetc.lindex );
1553 ok(
stat.formatetc.tymed ==
expect->formatetc.tymed,
"got %ld expect %ld\n",
1554 stat.formatetc.tymed,
expect->formatetc.tymed );
1556 ok(
stat.pAdvSink == 0,
"got %p\n",
stat.pAdvSink );
1557 ok(
stat.dwConnection ==
expect->dwConnection,
"got %ld expect %ld\n",
stat.dwConnection,
expect->dwConnection );
1562 ok(
num == 0,
"incorrect number. num %d\n",
num );
1564 IEnumSTATDATA_Release( enum_stat );
1579 STGMEDIUM stgmedium;
1587 static const WCHAR wszShell32[] = {
'\\',
's',
'h',
'e',
'l',
'l',
'3',
'2',
'.',
'd',
'l',
'l',0};
1591 {
"AdviseSink_OnViewChange", 0 },
1592 {
"AdviseSink_OnViewChange", 0 },
1593 {
"draw_continue", 1 },
1594 {
"draw_continue_false", 1 },
1595 {
"DataObject_DAdvise", 0 },
1596 {
"DataObject_DAdvise", 0 },
1597 {
"DataObject_DUnadvise", 0 },
1598 {
"DataObject_DUnadvise", 0 },
1603 {
"AdviseSink_OnViewChange", 0 },
1604 {
"draw_continue", 1 },
1605 {
"draw_continue", 1 },
1606 {
"draw_continue", 1 },
1611 {
"DataObject_DAdvise", 0 },
1612 {
"DataObject_DAdvise", 0 },
1613 {
"DataObject_DAdvise", 0 },
1614 {
"DataObject_DAdvise", 0 },
1615 {
"DataObject_DUnadvise", 0 },
1616 {
"DataObject_DUnadvise", 0 },
1617 {
"DataObject_DUnadvise", 0 },
1618 {
"DataObject_DUnadvise", 0 },
1627 fmtetc.dwAspect = DVASPECT_ICON;
1630 fmtetc.tymed = TYMED_MFPICT;
1648 ok(unk != (
IUnknown*)olecache,
"got %p, expected %p\n", olecache, unk);
1649 ok(unk != (
IUnknown*)pOleCache,
"got %p, expected %p\n", pOleCache, unk);
1650 IOleCache2_Release(pOleCache);
1651 IOleCache_Release(olecache);
1652 IUnknown_Release(unk);
1662 ok(unk == (
IUnknown*)olecache,
"got %p, expected %p\n", olecache, unk);
1663 ok(unk == (
IUnknown*)pOleCache,
"got %p, expected %p\n", pOleCache, unk);
1664 ok(unk == unk2,
"got %p, expected %p\n", unk2, unk);
1665 IUnknown_Release(unk2);
1666 IOleCache2_Release(pOleCache);
1667 IOleCache_Release(olecache);
1668 IUnknown_Release(unk);
1682 hr = IViewObject_SetAdvise(pViewObject, DVASPECT_ICON, ADVF_PRIMEFIRST, &
AdviseSink);
1685 hr = IPersistStorage_InitNew(pPS, pStorage);
1688 hr = IPersistStorage_IsDirty(pPS);
1691 hr = IPersistStorage_GetClassID(pPS, &
clsid);
1695 hr = IOleCache2_Uncache(pOleCache, 0xdeadbeef);
1696 ok(
hr ==
OLE_E_NOCONNECTION,
"IOleCache_Uncache with invalid value should return OLE_E_NOCONNECTION instead of 0x%lx\n",
hr);
1701 hr = IOleCache2_Cache(pOleCache,
NULL, 0, &dwConnection);
1702 ok(
hr ==
E_INVALIDARG,
"IOleCache_Cache with NULL fmtetc should have returned E_INVALIDARG instead of 0x%08lx\n",
hr);
1704 hr = IOleCache2_Cache(pOleCache,
NULL, 0,
NULL);
1705 ok(
hr ==
E_INVALIDARG,
"IOleCache_Cache with NULL pdwConnection should have returned E_INVALIDARG instead of 0x%08lx\n",
hr);
1709 skip(
"tests with NULL parameters will crash on NT4 and below\n");
1712 for (fmtetc.cfFormat =
CF_TEXT; fmtetc.cfFormat <
CF_MAX; fmtetc.cfFormat++)
1715 fmtetc.dwAspect = DVASPECT_THUMBNAIL;
1716 for (
i = 0;
i < 7;
i++)
1718 fmtetc.tymed = 1 <<
i;
1719 hr = IOleCache2_Cache(pOleCache, &fmtetc, 0, &dwConnection);
1720 if ((fmtetc.cfFormat ==
CF_METAFILEPICT && fmtetc.tymed == TYMED_MFPICT) ||
1721 (fmtetc.cfFormat ==
CF_BITMAP && fmtetc.tymed == TYMED_GDI) ||
1722 (fmtetc.cfFormat ==
CF_DIB && fmtetc.tymed == TYMED_HGLOBAL) ||
1723 (fmtetc.cfFormat ==
CF_ENHMETAFILE && fmtetc.tymed == TYMED_ENHMF))
1724 ok(
hr ==
S_OK,
"IOleCache_Cache cfFormat = %d, tymed = %ld should have returned S_OK instead of 0x%08lx\n",
1725 fmtetc.cfFormat, fmtetc.tymed,
hr);
1726 else if (fmtetc.tymed == TYMED_HGLOBAL)
1729 "IOleCache_Cache cfFormat = %d, tymed = %ld should have returned CACHE_S_FORMATETC_NOTSUPPORTED instead of 0x%08lx\n",
1730 fmtetc.cfFormat, fmtetc.tymed,
hr);
1732 ok(
hr ==
DV_E_TYMED,
"IOleCache_Cache cfFormat = %d, tymed = %ld should have returned DV_E_TYMED instead of 0x%08lx\n",
1733 fmtetc.cfFormat, fmtetc.tymed,
hr);
1736 hr = IOleCache2_Uncache(pOleCache, dwConnection);
1743 fmtetc.dwAspect = DVASPECT_THUMBNAIL;
1744 fmtetc.tymed = TYMED_GDI;
1745 hr = IOleCache2_Cache(pOleCache, &fmtetc, 0, &dwConnection);
1748 fmtetc.cfFormat = 0;
1749 fmtetc.dwAspect = DVASPECT_ICON;
1750 fmtetc.tymed = TYMED_MFPICT;
1751 hr = IOleCache2_Cache(pOleCache, &fmtetc, 0, &dwConnection);
1755 memcpy(wszPath+
lstrlenW(wszPath), wszShell32,
sizeof(wszShell32));
1758 stgmedium.tymed = TYMED_MFPICT;
1761 stgmedium.pUnkForRelease =
NULL;
1763 fmtetc.dwAspect = DVASPECT_CONTENT;
1764 hr = IOleCache2_SetData(pOleCache, &fmtetc, &stgmedium,
FALSE);
1765 ok(
hr ==
OLE_E_BLANK,
"IOleCache_SetData for aspect not in cache should have return OLE_E_BLANK instead of 0x%08lx\n",
hr);
1767 fmtetc.dwAspect = DVASPECT_ICON;
1768 hr = IOleCache2_SetData(pOleCache, &fmtetc, &stgmedium,
FALSE);
1772 hr = IViewObject_Freeze(pViewObject, DVASPECT_ICON, -1,
NULL, &dwFreeze);
1775 hr = IViewObject_Freeze(pViewObject, DVASPECT_CONTENT, -1,
NULL, &dwFreeze);
1776 ok(
hr ==
OLE_E_BLANK,
"IViewObject_Freeze with uncached aspect should have returned OLE_E_BLANK instead of 0x%08lx\n",
hr);
1781 rcBounds.
right = 100;
1785 hr = IViewObject_Draw(pViewObject, DVASPECT_ICON, -1,
NULL,
NULL,
NULL,
hdcMem, &rcBounds,
NULL,
draw_continue, 0xdeadbeef);
1788 hr = IViewObject_Draw(pViewObject, DVASPECT_CONTENT, -1,
NULL,
NULL,
NULL,
hdcMem, &rcBounds,
NULL,
draw_continue, 0xdeadbeef);
1789 ok(
hr ==
OLE_E_BLANK,
"IViewObject_Draw with uncached aspect should have returned OLE_E_BLANK instead of 0x%08lx\n",
hr);
1792 hr = IViewObject_Draw(pViewObject, DVASPECT_ICON, -1,
NULL,
NULL,
NULL,
hdcMem, &rcBounds,
NULL,
NULL, 0xdeadbeef);
1796 hr = IViewObject_Draw(pViewObject, DVASPECT_ICON, -1,
NULL,
NULL,
NULL,
hdcMem, &rcBounds,
NULL,
draw_continue_false, 0xdeadbeef);
1799 "IViewObject_Draw with draw_continue_false returns 0x%08lx\n",
hr);
1803 hr = IOleCacheControl_OnRun(pOleCacheControl, &
DataObject);
1806 hr = IPersistStorage_Save(pPS, pStorage,
TRUE);
1809 hr = IPersistStorage_SaveCompleted(pPS,
NULL);
1812 hr = IPersistStorage_IsDirty(pPS);
1813 ok(
hr ==
S_FALSE,
"IPersistStorage_IsDirty should have returned S_FALSE instead of 0x%lx\n",
hr);
1815 IPersistStorage_Release(pPS);
1816 IViewObject_Release(pViewObject);
1817 IOleCache2_Release(pOleCache);
1818 IOleCacheControl_Release(pOleCacheControl);
1833 hr = IViewObject_SetAdvise(pViewObject, DVASPECT_ICON, ADVF_PRIMEFIRST, &
AdviseSink);
1836 hr = IPersistStorage_Load(pPS, pStorage);
1839 hr = IPersistStorage_IsDirty(pPS);
1840 ok(
hr ==
S_FALSE,
"IPersistStorage_IsDirty should have returned S_FALSE instead of 0x%lx\n",
hr);
1842 fmtetc.cfFormat = 0;
1843 fmtetc.dwAspect = DVASPECT_ICON;
1846 fmtetc.tymed = TYMED_MFPICT;
1847 hr = IOleCache2_Cache(pOleCache, &fmtetc, 0, &dwConnection);
1848 ok(
hr ==
CACHE_S_SAMECACHE,
"IOleCache_Cache with already loaded data format type should return CACHE_S_SAMECACHE instead of 0x%lx\n",
hr);
1852 rcBounds.
right = 100;
1856 hr = IViewObject_Draw(pViewObject, DVASPECT_ICON, -1,
NULL,
NULL,
NULL,
hdcMem, &rcBounds,
NULL,
draw_continue, 0xdeadbeef);
1859 hr = IViewObject_Draw(pViewObject, DVASPECT_CONTENT, -1,
NULL,
NULL,
NULL,
hdcMem, &rcBounds,
NULL,
draw_continue, 0xdeadbeef);
1860 ok(
hr ==
OLE_E_BLANK,
"IViewObject_Draw with uncached aspect should have returned OLE_E_BLANK instead of 0x%08lx\n",
hr);
1863 hr = IOleCache2_DiscardCache(pOleCache, DISCARDCACHE_NOSAVE);
1865 hr = IViewObject_Draw(pViewObject, DVASPECT_ICON, -1,
NULL,
NULL,
NULL,
hdcMem, &rcBounds,
NULL,
draw_continue, 0xdeadbeef);
1869 hr = IPersistStorage_HandsOffStorage(pPS);
1871 hr = IViewObject_Draw(pViewObject, DVASPECT_ICON, -1,
NULL,
NULL,
NULL,
hdcMem, &rcBounds,
NULL,
draw_continue, 0xdeadbeef);
1873 hr = IOleCache2_DiscardCache(pOleCache, DISCARDCACHE_NOSAVE);
1875 hr = IViewObject_Draw(pViewObject, DVASPECT_ICON, -1,
NULL,
NULL,
NULL,
hdcMem, &rcBounds,
NULL,
draw_continue, 0xdeadbeef);
1876 ok(
hr ==
OLE_E_BLANK,
"IViewObject_Draw with uncached aspect should have returned OLE_E_BLANK instead of 0x%08lx\n",
hr);
1883 IPersistStorage_Release(pPS);
1884 IViewObject_Release(pViewObject);
1885 IOleCache2_Release(pOleCache);
1900 fmtetc.dwAspect = DVASPECT_CONTENT;
1901 fmtetc.tymed = TYMED_MFPICT;
1903 hr = IOleCache2_Cache(pOleCache, &fmtetc, 0, &dwConnection);
1906 hr = IDataObject_GetData(pCacheDataObject, &fmtetc, &stgmedium);
1910 fmtetc.dwAspect = DVASPECT_CONTENT;
1911 fmtetc.tymed = TYMED_HGLOBAL;
1913 hr = IOleCache2_Cache(pOleCache, &fmtetc, 0, &dwConnection);
1916 hr = IDataObject_GetData(pCacheDataObject, &fmtetc, &stgmedium);
1920 hr = IOleCache2_Cache(pOleCache, &fmtetc, ADVF_PRIMEFIRST, &dwConnection);
1923 hr = IDataObject_GetData(pCacheDataObject, &fmtetc, &stgmedium);
1926 hr = IOleCacheControl_OnRun(pOleCacheControl, &
DataObject);
1930 hr = IOleCache2_Cache(pOleCache, &fmtetc, 0, &dwConnection);
1934 hr = IDataObject_GetData(pCacheDataObject, &fmtetc, &stgmedium);
1938 hr = IDataObject_GetData(pCacheDataObject, &fmtetc, &stgmedium);
1943 hr = IDataObject_GetData(pCacheDataObject, &fmtetc, &stgmedium);
1946 IOleCacheControl_Release(pOleCacheControl);
1947 IDataObject_Release(pCacheDataObject);
1948 IOleCache2_Release(pOleCache);
1952 IStorage_Release(pStorage);
1960 0x42, 0x4d, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00,
1961 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00,
1962 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00,
1963 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00,
1964 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x00,
1965 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x00, 0x00,
1966 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
1967 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
1990 IStream_Release( stm );
2003 FORMATETC
fmt = {
CF_DIB,
NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL };
2009 STATDATA enum_expect[] =
2011 {{
CF_DIB, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }, 0,
NULL, 1 },
2012 {{
CF_BITMAP, 0, DVASPECT_CONTENT, -1, TYMED_GDI }, 0,
NULL, 1 },
2028 hr = IPersistStorage_Load( persist, stg );
2030 IStorage_Release( stg );
2032 hr = IPersistStorage_GetClassID( persist, &cls );
2036 hr = IDataObject_GetData(
data, &
fmt, &med );
2038 ok( med.tymed == TYMED_HGLOBAL,
"got %lx\n", med.tymed );
2051 ok( !
memcmp(
ptr, &expect_info,
sizeof(expect_info) ),
"mismatch\n" );
2059 hr = IViewObject2_GetExtent(
view, DVASPECT_CONTENT, -1,
NULL, &sz );
2063 ok( sz.
cx == 1000,
"got %ld\n", sz.
cx );
2064 ok( sz.
cy == 250,
"got %ld\n", sz.
cy );
2071 ok( sz.
cx ==
x,
"got %ld %ld\n", sz.
cx,
x );
2072 ok( sz.
cy ==
y,
"got %ld %ld\n", sz.
cy,
y );
2077 IOleCache2_Release(
cache );
2078 IViewObject2_Release(
view );
2079 IDataObject_Release(
data );
2080 IPersistStorage_Release( persist );
2081 IUnknown_Release( unk );
2098 ok(
info->bmiHeader.biWidth ==
cx,
"got %ld expect %d\n",
info->bmiHeader.biWidth,
cx );
2099 ok(
info->bmiHeader.biHeight ==
cy,
"got %ld expect %d\n",
info->bmiHeader.biHeight,
cy );
2113 {{
CF_DIB, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }, 0,
NULL, 0 },
2114 {{
CF_BITMAP, 0, DVASPECT_CONTENT, -1, TYMED_GDI }, 0,
NULL, 0 },
2118 STATDATA view_caching[] =
2120 {{ 0, 0, DVASPECT_CONTENT, -1, TYMED_ENHMF }, 0,
NULL, 0 },
2121 {{ 0, 0, DVASPECT_THUMBNAIL, -1, TYMED_HGLOBAL }, 0,
NULL, 0 },
2122 {{ 0, 0, DVASPECT_DOCPRINT, -1, TYMED_HGLOBAL }, 0,
NULL, 0 },
2132 fmt.dwAspect = DVASPECT_CONTENT;
2134 fmt.tymed = TYMED_HGLOBAL;
2136 hr = IOleCache2_Cache(
cache, &
fmt, 0, &conn );
2138 ok( conn == 2,
"got %ld\n", conn );
2139 expect[0].dwConnection = conn;
2140 expect[1].dwConnection = conn;
2146 fmt.tymed = TYMED_GDI;
2148 hr = IOleCache2_Cache(
cache, &
fmt, 0, &conn );
2153 fmt.tymed = TYMED_MFPICT;
2155 hr = IOleCache2_Cache(
cache, &
fmt, 0, &conn );
2157 ok( conn == 3,
"got %ld\n", conn );
2158 expect[2].dwConnection = conn;
2164 fmt.tymed = TYMED_ENHMF;
2166 hr = IOleCache2_Cache(
cache, &
fmt, 0, &conn );
2168 ok( conn == 4,
"got %ld\n", conn );
2169 expect[3].dwConnection = conn;
2187 fmt.tymed = TYMED_GDI;
2189 hr = IOleCache2_Cache(
cache, &
fmt, 0, &conn );
2192 expect[0].dwConnection = conn;
2193 expect[1].dwConnection = conn;
2206 hr = IDataObject_GetData(
data, &
fmt, &med );
2208 ok( med.tymed == TYMED_GDI,
"got %ld\n", med.tymed );
2213 fmt.tymed = TYMED_HGLOBAL;
2214 hr = IDataObject_GetData(
data, &
fmt, &med );
2216 ok( med.tymed == TYMED_HGLOBAL,
"got %ld\n", med.tymed );
2222 fmt.tymed = TYMED_HGLOBAL;
2229 fmt.tymed = TYMED_GDI;
2230 hr = IDataObject_GetData(
data, &
fmt, &med );
2232 ok( med.tymed == TYMED_GDI,
"got %ld\n", med.tymed );
2237 fmt.tymed = TYMED_HGLOBAL;
2238 hr = IDataObject_GetData(
data, &
fmt, &med );
2240 ok( med.tymed == TYMED_HGLOBAL,
"got %ld\n", med.tymed );
2245 hr = IOleCache2_Uncache(
cache, conn );
2250 fmt.tymed = TYMED_ENHMF;
2251 hr = IOleCache2_Cache(
cache, &
fmt, 0, &conn );
2253 view_caching[0].dwConnection = conn;
2255 fmt.tymed = TYMED_HGLOBAL;
2256 hr = IOleCache2_Cache(
cache, &
fmt, 0, &conn );
2259 fmt.dwAspect = DVASPECT_THUMBNAIL;
2260 hr = IOleCache2_Cache(
cache, &
fmt, 0, &conn );
2262 view_caching[1].dwConnection = conn;
2264 fmt.dwAspect = DVASPECT_DOCPRINT;
2265 hr = IOleCache2_Cache(
cache, &
fmt, 0, &conn );
2267 view_caching[2].dwConnection = conn;
2270 fmt.dwAspect = DVASPECT_ICON;
2271 hr = IOleCache2_Cache(
cache, &
fmt, 0, &conn );
2273 view_caching[3].dwConnection = conn;
2278 hr = IOleCache2_Uncache(
cache, view_caching[3].dwConnection );
2280 hr = IOleCache2_Uncache(
cache, view_caching[2].dwConnection );
2282 hr = IOleCache2_Uncache(
cache, view_caching[1].dwConnection );
2284 hr = IOleCache2_Uncache(
cache, view_caching[0].dwConnection );
2288 fmt.dwAspect = DVASPECT_ICON;
2290 fmt.tymed = TYMED_HGLOBAL;
2291 hr = IOleCache2_Cache(
cache, &
fmt, 0, &conn );
2294 fmt.tymed = TYMED_GDI;
2295 hr = IOleCache2_Cache(
cache, &
fmt, 0, &conn );
2298 fmt.tymed = TYMED_ENHMF;
2299 hr = IOleCache2_Cache(
cache, &
fmt, 0, &conn );
2302 fmt.tymed = TYMED_MFPICT;
2303 hr = IOleCache2_Cache(
cache, &
fmt, 0, &conn );
2307 hr = IOleCache2_Uncache(
cache, conn );
2312 fmt.dwAspect = DVASPECT_CONTENT;
2314 hr = IOleCache2_Cache(
cache, &
fmt, 0, &conn );
2317 IDataObject_Release(
data );
2318 IOleCache2_Release(
cache );
2324 fmt.dwAspect = DVASPECT_CONTENT;
2325 fmt.tymed = TYMED_HGLOBAL;
2326 hr = IOleCache2_Cache(
cache, &
fmt, 0, &conn );
2330 fmt.dwAspect = DVASPECT_THUMBNAIL;
2331 hr = IOleCache2_Cache(
cache, &
fmt, 0, &conn );
2334 fmt.dwAspect = DVASPECT_DOCPRINT;
2335 hr = IOleCache2_Cache(
cache, &
fmt, 0, &conn );
2340 fmt.dwAspect = DVASPECT_CONTENT;
2341 fmt.tymed = TYMED_MFPICT;
2342 hr = IOleCache2_Cache(
cache, &
fmt, 0, &conn );
2347 fmt.dwAspect = DVASPECT_ICON;
2348 fmt.tymed = TYMED_MFPICT;
2349 hr = IOleCache2_Cache(
cache, &
fmt, 0, &conn );
2352 IOleCache2_Release(
cache );
2363 static const STATDATA enum_expect[] =
2365 {{
CF_DIB, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }, 0,
NULL, 1 },
2366 {{
CF_BITMAP, 0, DVASPECT_CONTENT, -1, TYMED_GDI }, 0,
NULL, 1 },
2373 int enum_start, enum_num;
2391 hr = IPersistStorage_GetClassID( persist, &
clsid );
2396 IPersistStorage_Release( persist );
2397 IOleCache2_Release(
cache );
2406 IStorage *stg_dib, *stg_mf, *stg_wine;
2408 static const STATDATA initnew_expect[] =
2410 {{
CF_DIB, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }, 0,
NULL, 1 },
2411 {{
CF_BITMAP, 0, DVASPECT_CONTENT, -1, TYMED_GDI }, 0,
NULL, 1 },
2413 static const STATDATA initnew2_expect[] =
2416 {{
CF_DIB, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }, 0,
NULL, 2 },
2417 {{
CF_BITMAP, 0, DVASPECT_CONTENT, -1, TYMED_GDI }, 0,
NULL, 2 },
2419 static const STATDATA initnew3_expect[] =
2421 {{
CF_DIB, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }, 0,
NULL, 1 },
2422 {{
CF_BITMAP, 0, DVASPECT_CONTENT, -1, TYMED_GDI }, 0,
NULL, 1 },
2423 {{
CF_DIB, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }, 0,
NULL, 2 },
2424 {{
CF_BITMAP, 0, DVASPECT_CONTENT, -1, TYMED_GDI }, 0,
NULL, 2 },
2427 static const STATDATA initnew4_expect[] =
2429 {{
CF_DIB, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }, 0,
NULL, 2 },
2430 {{
CF_BITMAP, 0, DVASPECT_CONTENT, -1, TYMED_GDI }, 0,
NULL, 2 },
2432 {{
CF_DIB, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }, 0,
NULL, 4 },
2433 {{
CF_BITMAP, 0, DVASPECT_CONTENT, -1, TYMED_GDI }, 0,
NULL, 4 },
2455 hr = IPersistStorage_InitNew( persist, stg_dib );
2458 hr = IPersistStorage_GetClassID( persist, &
clsid );
2464 hr = IPersistStorage_InitNew( persist, stg_mf );
2467 hr = IPersistStorage_HandsOffStorage( persist );
2470 hr = IPersistStorage_GetClassID( persist, &
clsid );
2474 hr = IPersistStorage_InitNew( persist, stg_mf );
2477 hr = IPersistStorage_GetClassID( persist, &
clsid );
2483 hr = IPersistStorage_HandsOffStorage( persist );
2486 hr = IPersistStorage_InitNew( persist, stg_dib );
2489 hr = IPersistStorage_GetClassID( persist, &
clsid );
2495 hr = IPersistStorage_HandsOffStorage( persist );
2498 hr = IPersistStorage_InitNew( persist, stg_wine );
2501 hr = IPersistStorage_GetClassID( persist, &
clsid );
2507 IStorage_Release( stg_wine );
2508 IStorage_Release( stg_mf );
2509 IStorage_Release( stg_dib );
2511 IPersistStorage_Release( persist );
2512 IOleCache2_Release(
cache );
2525 FORMATETC dib_fmt = {
CF_DIB,
NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL};
2528 FORMATETC view_fmt = {0,
NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL};
2535 static STATDATA view_cache[] =
2537 {{ 0, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }, 0,
NULL, 0 }
2539 static STATDATA view_cache_after_dib[] =
2541 {{
CF_DIB, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }, 0,
NULL, 0 },
2542 {{
CF_BITMAP, 0, DVASPECT_CONTENT, -1, TYMED_GDI }, 0,
NULL, 0 }
2553 hr = IOleCache2_Cache(
cache, &dib_fmt, 0, &conn[0] );
2559 hr = IDataObject_GetData(
data, &dib_fmt, &medium);
2567 hr = IDataObject_GetData(
data, &dib_fmt, &medium);
2569 ok(medium.tymed == TYMED_HGLOBAL,
"Got unexpected tymed %lu.\n", medium.tymed);
2572 hr = IOleCache2_Cache(
cache, &emf_fmt, 0, &conn[1]);
2579 hr = IDataObject_GetData(
data, &dib_fmt, &medium);
2581 ok(medium.tymed == TYMED_HGLOBAL,
"Got unexpected tymed %lu.\n", medium.tymed);
2584 hr = IDataObject_GetData(
data, &emf_fmt, &medium);
2587 hr = IDataObject_GetData(
data, &wmf_fmt, &medium);
2594 hr = IDataObject_GetData(
data, &dib_fmt, &medium);
2596 ok(medium.tymed == TYMED_HGLOBAL,
"Got unexpected tymed %lu.\n", medium.tymed);
2598 hr = IDataObject_GetData(
data, &emf_fmt, &medium);
2600 ok(medium.tymed == TYMED_ENHMF,
"Got unexpected tymed %lu.\n", medium.tymed);
2602 hr = IDataObject_GetData(
data, &wmf_fmt, &medium);
2609 hr = IDataObject_GetData(
data, &dib_fmt, &medium);
2611 ok(medium.tymed == TYMED_HGLOBAL,
"Got unexpected tymed %lu.\n", medium.tymed);
2613 hr = IDataObject_GetData(
data, &emf_fmt, &medium);
2615 ok(medium.tymed == TYMED_ENHMF,
"Got unexpected tymed %lu.\n", medium.tymed);
2617 hr = IDataObject_GetData(
data, &wmf_fmt, &medium);
2620 hr = IOleCache2_Uncache(
cache, conn[1] );
2623 hr = IDataObject_GetData(
data, &emf_fmt, &medium);
2625 hr = IDataObject_GetData(
data, &wmf_fmt, &medium);
2628 hr = IDataObject_GetData(
data, &dib_fmt, &medium);
2631 hr = IOleCache2_Cache(
cache, &wmf_fmt, 0, &conn[1] );
2638 hr = IDataObject_GetData(
data, &emf_fmt, &medium);
2640 hr = IDataObject_GetData(
data, &wmf_fmt, &medium);
2647 hr = IDataObject_GetData(
data, &emf_fmt, &medium);
2649 hr = IDataObject_GetData(
data, &wmf_fmt, &medium);
2652 hr = IOleCache2_Uncache(
cache, conn[1] );
2654 hr = IOleCache2_Uncache(
cache, conn[0] );
2659 hr = IOleCache2_Cache(
cache, &view_fmt, 0, &conn[0] );
2661 view_cache[0].dwConnection = conn[0];
2669 hr = IDataObject_GetData(
data, &dib_fmt, &medium);
2671 hr = IDataObject_GetData(
data, &emf_fmt, &medium);
2673 hr = IDataObject_GetData(
data, &view_fmt, &medium);
2681 view_cache_after_dib[0].dwConnection = view_cache_after_dib[1].dwConnection = view_cache[0].dwConnection;
2684 hr = IDataObject_GetData(
data, &dib_fmt, &medium);
2686 ok(medium.tymed == TYMED_HGLOBAL,
"Got unexpected tymed %lu.\n", medium.tymed);
2688 hr = IDataObject_GetData(
data, &emf_fmt, &medium);
2690 hr = IDataObject_GetData(
data, &view_fmt, &medium);
2697 hr = IDataObject_GetData(
data, &dib_fmt, &medium);
2699 hr = IDataObject_GetData(
data, &emf_fmt, &medium);
2702 hr = IOleCache2_Uncache(
cache, conn[0] );
2707 hr = IOleCache2_Cache(
cache, &dib_fmt, 0, &conn[0] );
2710 hr = IOleCache2_Cache(
cache, &emf_fmt, ADVF_NODATA, &conn[1] );
2718 hr = IDataObject_GetData(
data, &dib_fmt, &medium);
2720 ok(medium.tymed == TYMED_HGLOBAL,
"Got unexpected tymed %lu.\n", medium.tymed);
2722 hr = IDataObject_GetData(
data, &emf_fmt, &medium);
2729 hr = IDataObject_GetData(
data, &dib_fmt, &medium);
2731 ok(medium.tymed == TYMED_HGLOBAL,
"Got unexpected tymed %lu.\n", medium.tymed);
2733 hr = IDataObject_GetData(
data, &emf_fmt, &medium);
2740 hr = IDataObject_GetData(
data, &dib_fmt, &medium);
2742 ok(medium.tymed == TYMED_HGLOBAL,
"Got unexpected tymed %lu.\n", medium.tymed);
2744 hr = IDataObject_GetData(
data, &emf_fmt, &medium);
2747 hr = IOleCache2_DiscardCache(
cache, DISCARDCACHE_NOSAVE );
2750 hr = IDataObject_GetData(
data, &dib_fmt, &medium);
2752 hr = IDataObject_GetData(
data, &emf_fmt, &medium);
2759 hr = IDataObject_GetData(
data, &dib_fmt, &medium);
2761 hr = IDataObject_GetData(
data, &emf_fmt, &medium);
2764 hr = IOleCache2_DiscardCache(
cache, DISCARDCACHE_NOSAVE );
2768 hr = IOleCache2_UpdateCache(
cache, &
DataObject, UPDFCACHE_ONLYIFBLANK | UPDFCACHE_NORMALCACHE,
NULL );
2771 hr = IDataObject_GetData(
data, &dib_fmt, &medium);
2773 hr = IDataObject_GetData(
data, &emf_fmt, &medium);
2777 hr = IOleCache2_UpdateCache(
cache, &
DataObject, UPDFCACHE_ONLYIFBLANK | UPDFCACHE_NORMALCACHE,
NULL );
2780 hr = IDataObject_GetData(
data, &dib_fmt, &medium);
2782 hr = IDataObject_GetData(
data, &emf_fmt, &medium);
2788 hr = IDataObject_GetData(
data, &dib_fmt, &medium);
2790 hr = IDataObject_GetData(
data, &emf_fmt, &medium);
2793 hr = IOleCache2_DiscardCache(
cache, DISCARDCACHE_NOSAVE );
2800 hr = IDataObject_GetData(
data, &dib_fmt, &medium);
2802 hr = IDataObject_GetData(
data, &emf_fmt, &medium);
2806 hr = IOleCache2_UpdateCache(
cache, &
DataObject, UPDFCACHE_ONLYIFBLANK | UPDFCACHE_NORMALCACHE,
NULL );
2809 hr = IDataObject_GetData(
data, &dib_fmt, &medium);
2811 hr = IDataObject_GetData(
data, &emf_fmt, &medium);
2814 IDataObject_Release(
data);
2815 IOleCache2_Release(
cache );
2836 static const WCHAR wszUnknown[] = {
'U',
'n',
'k',
'n',
'o',
'w',
'n',0};
2837 static const WCHAR wszHostName[] = {
'W',
'i',
'n',
'e',
' ',
'T',
'e',
's',
't',
' ',
'P',
'r',
'o',
'g',
'r',
'a',
'm',0};
2838 static const WCHAR wszDelim[] = {
'!',0};
2852 ok(
hr ==
E_NOINTERFACE,
"IOleObject_QueryInterface(&IID_IOleInPlaceObject) should return E_NOINTERFACE instead of 0x%08lx\n",
hr);
2857 hr = IOleObject_Close(
pObject, OLECLOSE_NOSAVE);
2862 hr = IOleObject_EnumVerbs(
pObject, &pEnumVerbs);
2863 ok(
hr ==
REGDB_E_CLASSNOTREG,
"IOleObject_EnumVerbs should have returned REGDB_E_CLASSNOTREG instead of 0x%08lx\n",
hr);
2865 hr = IOleObject_GetClientSite(
pObject, &pClientSite);
2868 hr = IOleObject_SetClientSite(
pObject, pClientSite);
2871 hr = IOleObject_GetClipboardData(
pObject, 0, &pDataObject);
2873 "IOleObject_GetClipboardData should have returned OLE_E_NOTRUNNING instead of 0x%08lx\n",
2876 hr = IOleObject_GetExtent(
pObject, DVASPECT_CONTENT, &sizel);
2877 ok(
hr ==
OLE_E_BLANK,
"IOleObject_GetExtent should have returned OLE_E_BLANK instead of 0x%08lx\n",
2881 ok(
hr ==
REGDB_E_CLASSNOTREG,
"IOleObject_GetMiscStatus should have returned REGDB_E_CLASSNOTREG instead of 0x%08lx\n",
hr);
2887 hr = IOleObject_GetUserType(
pObject, USERCLASSTYPE_FULL, &pszUserType);
2890 ok(!
lstrcmpW(pszUserType, wszUnknown),
"Retrieved user type was wrong\n");
2894 ok(
hr ==
OLE_E_NOTRUNNING,
"IOleObject_InitFromData should have returned OLE_E_NOTRUNNING instead of 0x%08lx\n",
hr);
2897 ok(
hr ==
OLE_E_NOTRUNNING,
"IOleObject_IsUpToDate should have returned OLE_E_NOTRUNNING instead of 0x%08lx\n",
hr);
2903 ok(
hr ==
OLE_E_NOTRUNNING,
"IOleObject_SetColorScheme should have returned OLE_E_NOTRUNNING instead of 0x%08lx\n",
hr);
2905 sizel.
cx = sizel.
cy = 0;
2906 hr = IOleObject_SetExtent(
pObject, DVASPECT_CONTENT, &sizel);
2907 ok(
hr ==
OLE_E_NOTRUNNING,
"IOleObject_SetExtent should have returned OLE_E_NOTRUNNING instead of 0x%08lx\n",
hr);
2914 hr = IOleObject_SetMoniker(
pObject, OLEWHICHMK_CONTAINER, pMoniker);
2916 IMoniker_Release(pMoniker);
2918 hr = IOleObject_GetMoniker(
pObject, OLEGETMONIKER_ONLYIFTHERE, OLEWHICHMK_CONTAINER, &pMoniker);
2919 ok(
hr ==
E_FAIL,
"IOleObject_GetMoniker should have returned E_FAIL instead of 0x%08lx\n",
hr);
2930 fmtetc.dwAspect = DVASPECT_CONTENT;
2932 fmtetc.tymed = TYMED_NULL;
2933 hr = IDataObject_DAdvise(pDataObject, &fmtetc, 0, &
AdviseSink, &dwAdvConn);
2938 fmtetc.dwAspect = DVASPECT_CONTENT;
2940 fmtetc.tymed = TYMED_ENHMF;
2941 hr = IDataObject_DAdvise(pDataObject, &fmtetc, 0, &
AdviseSink, &dwAdvConn);
2946 fmtetc.dwAspect = DVASPECT_CONTENT;
2948 fmtetc.tymed = TYMED_ENHMF;
2949 hr = IDataObject_QueryGetData(pDataObject, &fmtetc);
2950 ok(
hr ==
OLE_E_NOTRUNNING,
"IDataObject_QueryGetData should have returned OLE_E_NOTRUNNING instead of 0x%08lx\n",
hr);
2954 fmtetc.dwAspect = DVASPECT_CONTENT;
2956 fmtetc.tymed = TYMED_NULL;
2957 hr = IDataObject_QueryGetData(pDataObject, &fmtetc);
2958 ok(
hr ==
OLE_E_NOTRUNNING,
"IDataObject_QueryGetData should have returned OLE_E_NOTRUNNING instead of 0x%08lx\n",
hr);
2963 hr = IRunnableObject_SetContainedObject(pRunnableObject,
TRUE);
2966 hr = IRunnableObject_Run(pRunnableObject,
NULL);
2969 hr = IOleObject_Close(
pObject, OLECLOSE_NOSAVE);
2972 IRunnableObject_Release(pRunnableObject);
3003 ok(
hr == 0x87654321,
"Got 0x%08lx\n",
hr);
3020 {
"OleObjectRunnable_IsRunning", 0 },
3038 ok(
ret ==
TRUE,
"Object should be running\n");
3045 ok(
ret ==
FALSE,
"Object should not be running\n");
3052 ok(
ret ==
TRUE,
"Object without IRunnableObject should be running\n");
3091 ok(0,
"unexpected\n");
3103 ok(0,
"unexpected\n");
3108 BOOL last_unlock_closes)
3110 ok(0,
"unexpected\n");
3116 ok(0,
"unexpected\n");
3140 ok(
hr ==
S_OK,
"OleRun failed 0x%08lx\n",
hr);
3143 ok(
hr == 0xdeadc0de,
"got 0x%08lx\n",
hr);
3151 ok(
hr ==
S_OK,
"OleLockRunning failed 0x%08lx\n",
hr);
3169static const WCHAR olepres0W[] = {2,
'O',
'l',
'e',
'P',
'r',
'e',
's',
'0',
'0',
'0',0};
3178 ok(0,
"unexpected call to QueryInterface\n");
3184 ok(0,
"unexpected call to AddRef\n");
3190 ok(0,
"unexpected call to Release\n");
3226 ok(!reserved1,
"reserved1 = %lx\n", reserved1);
3228 ok(!!ppstm,
"ppstm = NULL\n");
3230 IStream_AddRef(*ppstm);
3231 hr = IStream_Seek(*ppstm,
pos, STREAM_SEEK_SET,
NULL);
3232 ok(
hr ==
S_OK,
"IStream_Seek returned %lx\n",
hr);
3233 hr = IStream_SetSize(*ppstm,
size);
3234 ok(
hr ==
S_OK,
"IStream_SetSize returned %lx\n",
hr);
3240 static const WCHAR ole1W[] = {1,
'O',
'l',
'e',0};
3245 ok(!reserved1,
"reserved1 = %p\n", reserved1);
3247 ok(!!ppstm,
"ppstm = NULL\n");
3256 ok(
hr ==
S_OK,
"IStream_Seek returned %lx\n",
hr);
3258 }
else if(!
lstrcmpW(pwcsName, ole1W)) {
3274 ok(
hr ==
S_OK,
"IStream_Seek returned %lx\n",
hr);
3284 ok(
hr ==
S_OK,
"IStream_Seek returned %lx\n",
hr);
3288 ok(0,
"unexpected call to OpenStream: %s\n",
wine_dbgstr_w(pwcsName));
3294 ok(0,
"unexpected call to CreateStorage\n");
3300 ok(0,
"unexpected call to OpenStorage\n");
3306 ok(0,
"unexpected call to CopyTo\n");
3312 ok(0,
"unexpected call to MoveElementTo\n");
3318 ok(0,
"unexpected call to Commit\n");
3324 ok(0,
"unexpected call to Revert\n");
3330 ok(0,
"unexpected call to EnumElements\n");
3342 "unexpected call to DestroyElement(%s)\n",
wine_dbgstr_w(pwcsName));
3354 ok(0,
"unexpected call to RenameElement\n");
3360 ok(0,
"unexpected call to SetElementTimes\n");
3374 ok(0,
"unexpected call to SetStateBits\n");
3381 ok(pstatstg !=
NULL,
"pstatstg = NULL\n");
3382 ok(grfStatFlag == STATFLAG_NONAME,
"grfStatFlag = %lx\n", grfStatFlag);
3384 memset(pstatstg, 0,
sizeof(STATSTG));
3385 pstatstg->type = STGTY_STORAGE;
3416 static const WCHAR clsidW[] = {
'C',
'L',
'S',
'I',
'D',
'\\',0};
3421 DWORD ansi_user_type_len;
3422 DWORD ansi_clipboard_format_len;
3424 DWORD unicode_marker;
3425 DWORD unicode_user_type_len;
3426 DWORD unicode_clipboard_format_len;
3432 DWORD link_update_option;
3434 DWORD reserved_moniker_stream_size;
3435 DWORD relative_source_moniker_stream_size;
3436 DWORD absolute_source_moniker_stream_size;
3437 DWORD clsid_indicator;
3439 DWORD reserved_display_name;
3441 DWORD local_update_time;
3442 DWORD local_check_update_time;
3443 DWORD remote_update_time;
3454 ok(
hr ==
S_OK,
"CreateStreamOnHGlobal returned %lx\n",
hr);
3456 ok(
hr ==
S_OK,
"IStream_Write returned %lx\n",
hr);
3459 ok(
hr ==
S_OK,
"CreateStreamOnHGlobal returned %lx\n",
hr);
3461 ok(
hr ==
S_OK,
"IStream_Write returned %lx\n",
hr);
3484 win_skip(
"not enough permissions to create CLSID key (%lu)\n",
ret);
3509 ok(
hr ==
S_OK,
"OleDoAutoConvert returned %lx\n",
hr);
3518 ok(
hr ==
S_OK,
"IStream_Seek returned %lx\n",
hr);
3520 ok(
hr ==
S_OK,
"IStream_Read returned %lx\n",
hr);
3521 ok(comp_obj_data.reserved1 == 0xfffe0001,
"reserved1 = %lx\n", comp_obj_data.reserved1);
3522 ok(comp_obj_data.version == 0xa03,
"version = %lx\n", comp_obj_data.version);
3523 ok(comp_obj_data.reserved2[0] == -1,
"reserved2[0] = %lx\n", comp_obj_data.reserved2[0]);
3525 ok(!comp_obj_data.ansi_user_type_len,
"ansi_user_type_len = %ld\n", comp_obj_data.ansi_user_type_len);
3526 ok(!comp_obj_data.ansi_clipboard_format_len,
"ansi_clipboard_format_len = %ld\n", comp_obj_data.ansi_clipboard_format_len);
3527 ok(!comp_obj_data.reserved3,
"reserved3 = %lx\n", comp_obj_data.reserved3);
3528 ok(comp_obj_data.unicode_marker == 0x71b239f4,
"unicode_marker = %lx\n", comp_obj_data.unicode_marker);
3529 ok(!comp_obj_data.unicode_user_type_len,
"unicode_user_type_len = %ld\n", comp_obj_data.unicode_user_type_len);
3530 ok(!comp_obj_data.unicode_clipboard_format_len,
"unicode_clipboard_format_len = %ld\n", comp_obj_data.unicode_clipboard_format_len);
3531 ok(!comp_obj_data.reserved4,
"reserved4 %ld\n", comp_obj_data.reserved4);
3534 ok(
hr ==
S_OK,
"IStream_Seek returned %lx\n",
hr);
3536 ok(
hr ==
S_OK,
"IStream_Read returned %lx\n",
hr);
3537 ok(ole_data.version == 0,
"version = %lx\n", ole_data.version);
3538 ok(ole_data.flags == 4,
"flags = %lx\n", ole_data.flags);
3539 for(
i=2;
i<
sizeof(ole_data)/
sizeof(
DWORD);
i++)
3540 ok(((
DWORD*)&ole_data)[
i] == 0,
"ole_data[%ld] = %lx\n",
i, ((
DWORD*)&ole_data)[
i]);
3544 ok(
hr ==
S_OK,
"SetConvertStg returned %lx\n",
hr);
3551 ok(
hr ==
S_OK,
"WriteFmtUserTypeStg returned %lx\n",
hr);
3556 ok(
hr ==
S_OK,
"IStream_Seek returned %lx\n",
hr);
3558 ok(
hr ==
S_OK,
"IStream_Read returned %lx\n",
hr);
3559 ok(comp_obj_data.reserved1 == 0xfffe0001,
"reserved1 = %lx\n", comp_obj_data.reserved1);
3560 ok(comp_obj_data.version == 0xa03,
"version = %lx\n", comp_obj_data.version);
3561 ok(comp_obj_data.reserved2[0] == -1,
"reserved2[0] = %lx\n", comp_obj_data.reserved2[0]);
3563 ok(!comp_obj_data.ansi_user_type_len,
"ansi_user_type_len = %ld\n", comp_obj_data.ansi_user_type_len);
3564 ok(!comp_obj_data.ansi_clipboard_format_len,
"ansi_clipboard_format_len = %ld\n", comp_obj_data.ansi_clipboard_format_len);
3565 ok(!comp_obj_data.reserved3,
"reserved3 = %lx\n", comp_obj_data.reserved3);
3566 ok(comp_obj_data.unicode_marker == 0x71b239f4,
"unicode_marker = %lx\n", comp_obj_data.unicode_marker);
3567 ok(!comp_obj_data.unicode_user_type_len,
"unicode_user_type_len = %ld\n", comp_obj_data.unicode_user_type_len);
3568 ok(!comp_obj_data.unicode_clipboard_format_len,
"unicode_clipboard_format_len = %ld\n", comp_obj_data.unicode_clipboard_format_len);
3569 ok(!comp_obj_data.reserved4,
"reserved4 %ld\n", comp_obj_data.reserved4);
3572 ok(!
ret,
"comp_obj_stream was not freed\n");
3574 ok(!
ret,
"ole_stream was not freed\n");
3586 0x42,0x4d,0x42,0x00,0x00,0x00,0x00,0x00,
3587 0x00,0x00,0x3e,0x00,0x00,0x00,0x28,0x00,
3588 0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,
3589 0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,
3590 0x00,0x00,0x04,0x00,0x00,0x00,0x12,0x0b,
3591 0x00,0x00,0x12,0x0b,0x00,0x00,0x02,0x00,
3592 0x00,0x00,0x02,0x00,0x00,0x00,0xff,0xff,
3593 0xff,0x00,0xff,0xff,0xff,0x00,0x00,0x00,
3599 0x01,0x00,0x09,0x00,0x00,0x03,0x0c,0x00,
3600 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
3601 0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00
3606 static const WCHAR contentsW[] = {
'C',
'o',
'n',
't',
'e',
'n',
't',
's',0 };
3613 DWORD clipformat[2];
3621 ILockBytes_Release(ilb);
3630 IStream_Release(stm);
3637 hr = IStream_Write(stm, clipformat,
sizeof(clipformat),
NULL);
3640 hdr.tdSize =
sizeof(
hdr.tdSize);
3641 hdr.dvAspect = DVASPECT_CONTENT;
3643 hdr.advf = ADVF_PRIMEFIRST;
3645 hdr.dwObjectExtentX = 0;
3646 hdr.dwObjectExtentY = 0;
3653 IStream_Release(stm);
3659 hr = IPersistStorage_Load(stg, doc);
3662 IStorage_Release(doc);
3664 hr = IPersistStorage_IsDirty(stg);
3694 IPersistStorage_Release(stg);
3695 IOleCache2_Release(
cache);
3698#define MAX_STREAM 16
3729 {{
"Contents", -1, 0, 0,
NULL, 0 },
3730 {
"\2OlePres000", 0, DVASPECT_ICON, ADVF_PRIMEFIRST | ADVF_ONLYONCE,
NULL, 0 }}
3735 {{
"\2OlePres000", 0, DVASPECT_ICON, ADVF_PRIMEFIRST | ADVF_ONLYONCE,
NULL, 0 }}
3741 {
"\2OlePres000", 0, DVASPECT_ICON, ADVF_PRIMEFIRST | ADVF_ONLYONCE,
NULL, 0 }}
3746 {{
"\2OlePres000", 0, DVASPECT_ICON, ADVF_PRIMEFIRST | ADVF_ONLYONCE,
NULL, 0 }}
3752 {
"\2OlePres000", 0, DVASPECT_ICON, ADVF_PRIMEFIRST | ADVF_ONLYONCE,
NULL, 0 },
3755 {
"MyStream", -1, 0, 0,
"Hello World!", 13 }}
3760 {{
"\2OlePres000", 0, DVASPECT_ICON, ADVF_PRIMEFIRST | ADVF_ONLYONCE,
NULL, 0 },
3768 {
"\2OlePres000", 0, DVASPECT_ICON, ADVF_PRIMEFIRST | ADVF_ONLYONCE,
NULL, 0 },
3771 {
"MyStream", -1, 0, 0,
"Hello World!", 13 }}
3776 {{
"\2OlePres000", 0, DVASPECT_ICON, ADVF_PRIMEFIRST | ADVF_ONLYONCE,
NULL, 0 }}
3784 {
"\2OlePres000", 0, DVASPECT_ICON, ADVF_PRIMEFIRST | ADVF_ONLYONCE,
NULL, 0 },
3785 {
"MyStream", -1, 0, 0,
"Hello World!", 13 }}
3790 {{
"\2OlePres000", 0, DVASPECT_ICON, ADVF_PRIMEFIRST | ADVF_ONLYONCE,
NULL, 0 }}
3797 {
"\2OlePres000", 0, DVASPECT_ICON, ADVF_PRIMEFIRST | ADVF_ONLYONCE,
NULL, 0 },
3799 {
"MyStream", -1, 0, 0,
"Hello World!", 13 }}
3804 {{
"\2OlePres000", 0, DVASPECT_ICON, ADVF_PRIMEFIRST | ADVF_ONLYONCE,
NULL, 0 }}
3838 int length, clipformat = -2;
3847 hr = IStream_Read(
stream, &clipformat,
sizeof(clipformat), &
bytes);
3852 ok(0,
"unhandled clipformat length %d\n",
length);
3858 int *enumerated_streams,
int *matched_streams)
3867 trace(
"check_storage_contents:\n=============================================\n");
3869 *enumerated_streams = 0;
3870 *matched_streams = 0;
3872 hr = IStorage_Stat(stg, &
stat, STATFLAG_NONAME);
3877 hr = IStorage_EnumElements(stg, 0,
NULL, 0, &enumstg);
3883 int clipformat = -1;
3890 hr = IEnumSTATSTG_Next(enumstg, 1, &
stat,
NULL);
3895 trace(
"name %s, type %lu, size %ld, clsid %s\n",
3898 ok(
stat.type == STGTY_STREAM,
"unexpected %#lx\n",
stat.type);
3911 if (clipformat == 0)
3916 ok(
bytes == header_size,
"read %lu bytes, expected %lu\n",
bytes, header_size);
3919 trace(
"header: tdSize %#lx, dvAspect %#x, lindex %#lx, advf %#lx, unknown7 %#lx, dwObjectExtentX %#lx, dwObjectExtentY %#lx, dwSize %#lx\n",
3932 if (seen_stream[
i])
continue;
3935 trace(
"%s/%s, %d/%d, %d/%d, %d/%ld\n",
3937 stg_def->
stream[
i].cf, clipformat,
3942 stg_def->
stream[
i].cf == clipformat &&
3946 (!stg_def->
stream[
i].data_size ||
3950 trace(
"stream %d matches def stream %d\n", *enumerated_streams,
i);
3952 *matched_streams += 1;
3959 *enumerated_streams += 1;
3962 IEnumSTATSTG_Release(enumstg);
3968 ULONG datasize1, datasize2;
3970 if (med1->tymed != med2->tymed)
3973 if (med1->tymed == TYMED_MFPICT)
3980 if (datasize1 == datasize2)
3989 else if (med1->tymed == TYMED_ENHMF)
3993 if (datasize1 == datasize2)
4002 else if (med1->tymed == TYMED_HGLOBAL)
4007 if (datasize1 == datasize2)
4021 if (med1->tymed == TYMED_HGLOBAL)
4026 else if (med1->tymed == TYMED_MFPICT)
4052 hr = IStorage_SetClass(stg, stg_def->
clsid);
4063 if (stg_def->
stream[
i].cf != -1)
4071 clipformat[1] = stg_def->
stream[
i].cf;
4072 hr = IStream_Write(stm, clipformat,
sizeof(clipformat),
NULL);
4077 hr = IStream_Write(stm, &clipformat[0],
sizeof(clipformat[0]),
NULL);
4081 hdr.tdSize =
sizeof(
hdr.tdSize);
4086 hdr.dwObjectExtentX = 0;
4087 hdr.dwObjectExtentY = 0;
4093 if (stg_def->
stream[
i].data_size)
4099 IStream_Release(stm);
4107 0x42, 0x4d, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00,
4108 0x00, 0x00, 0x36, 0x00, 0x00, 0x00
4113 0xd7, 0xcd, 0xc6, 0x9a, 0x00, 0x00, 0x00, 0x00,
4114 0x00, 0x00, 0x16, 0x00, 0x2d, 0x00, 0x40, 0x02,
4115 0x00, 0x00, 0x00, 0x00, 0x6a, 0x55
4129 if (!
strcmp(stg_def->
stream[stm_idx].name,
"CONTENTS"))
4142 stg_def->
stream[stm_idx].data_size = data_size;
4147 if (!
strcmp(stg_def->
stream[stm_idx].name,
"CONTENTS"))
4152 data_size +=
sizeof(
mf_rec);
4160 stg_def->
stream[stm_idx].data_size = data_size;
4164 if (!
strcmp(stg_def->
stream[stm_idx].name,
"CONTENTS"))
4181 stg_def->
stream[stm_idx].data_size = data_size;
4201 ok(0,
"cf %x not implemented\n", cfFormat);
4215 int enumerated_streams, matched_streams,
i;
4218 struct tests_data_cache
4221 int num_fmts, num_set;
4226 static struct tests_data_cache *
pdata,
data[] =
4230 {
CF_DIB, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL },
4233 { 0, 0, DVASPECT_DOCPRINT, -1, TYMED_HGLOBAL },
4240 {
"\2OlePres003", 0, DVASPECT_DOCPRINT, 0,
NULL, 0 } }
4246 {
CF_DIB, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL },
4260 {
CF_DIB, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL },
4288 {
CF_DIB, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL },
4326 for (
i = 0;
i <
pdata->num_fmts;
i++)
4330 if (i < pdata->num_set)
4344 ILockBytes_Release(ilb);
4352 hr = IPersistStorage_Save(persist, doc,
FALSE);
4355 hr = IPersistStorage_IsDirty(persist);
4359 ok(enumerated_streams == matched_streams,
"enumerated %d != matched %d\n",
4360 enumerated_streams, matched_streams);
4361 ok(enumerated_streams ==
pdata->stg_def.stream_count,
"created %d != def streams %d\n",
4362 enumerated_streams,
pdata->stg_def.stream_count);
4364 IPersistStorage_Release(persist);
4365 IOleCache2_Release(
cache);
4373 hr = IStorage_SetClass(doc,
pdata->clsid);
4375 hr = IPersistStorage_Load(persist, doc);
4380 for (
i = 0;
i <
pdata->num_set;
i++)
4382 hr = IDataObject_GetData(odata, &
pdata->fmts[
i], &stgmed);
4391 IDataObject_Release(odata);
4392 IPersistStorage_Release(persist);
4393 IStorage_Release(doc);
4394 IOleCache2_Release(
cache);
4395 for (
i = 0;
i <
pdata->num_set;
i++)
4407 int i, enumerated_streams, matched_streams;
4429 trace(
"start testing storage def %d\n",
i);
4432 if (!doc1)
continue;
4434 enumerated_streams = matched_streams = -1;
4436 ok(enumerated_streams == matched_streams,
"%d in: enumerated %d != matched %d\n",
i,
4437 enumerated_streams, matched_streams);
4438 ok(enumerated_streams ==
test_data[
i].
in->stream_count,
"%d: created %d != def streams %d\n",
i,
4439 enumerated_streams,
test_data[
i].in->stream_count);
4445 hr = IPersistStorage_Load(stg, doc1);
4448 IStorage_Release(doc1);
4453 hr = IPersistStorage_IsDirty(stg);
4456 hr = IPersistStorage_Save(stg, doc2,
FALSE);
4459 IPersistStorage_Release(stg);
4461 enumerated_streams = matched_streams = -1;
4464 ok(enumerated_streams == matched_streams,
"%d out: enumerated %d != matched %d\n",
i,
4465 enumerated_streams, matched_streams);
4468 ok(enumerated_streams ==
test_data[
i].
out->stream_count,
"%d: saved streams %d != def streams %d\n",
i,
4469 enumerated_streams,
test_data[
i].out->stream_count);
4471 IStorage_Release(doc2);
4474 trace(
"done testing storage def %d\n",
i);
4480 FORMATETC dib_fmt = {
CF_DIB,
NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL};
4482 FORMATETC text_fmt = {
CF_TEXT,
NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL};
4490 int enumerated_streams, matched_streams;
4494 {
"DataObject_EnumFormatEtc",
TEST_TODO },
4495 {
"DataObject_GetDataHere", 0 },
4501 {{
"\1Ole", -1, 0, 0,
NULL, 0 },
4502 {
"\1CompObj", -1, 0, 0,
NULL, 0 },
4503 {
"CONTENTS", -1, 0, 0,
NULL, 0 }}
4508 {{
"\1Ole", -1, 0, 0,
NULL, 0 },
4509 {
"\1CompObj", -1, 0, 0,
NULL, 0 },
4510 {
"CONTENTS", -1, 0, 0,
NULL, 0 }}
4515 ok(
hr ==
S_OK,
"CreateILockBytesOnHGlobal failed: 0x%08lx.\n",
hr);
4518 ok(
hr ==
S_OK,
"StgCreateDocfileOnILockBytes failed: 0x%08lx.\n",
hr);
4519 ILockBytes_Release(ilb);
4522 &dib_fmt,
NULL,
NULL, (
void **)&ole_obj);
4534 ok(
hr ==
S_OK,
"OleCreateStaticFromData failed: 0x%08lx.\n",
hr);
4535 hr = IOleObject_QueryInterface(ole_obj, &
IID_IPersist, (
void **)&persist);
4536 ok(
hr ==
S_OK,
"IOleObject_QueryInterface failed: 0x%08lx.\n",
hr);
4537 hr = IPersist_GetClassID(persist, &
clsid);
4538 ok(
hr ==
S_OK,
"IPersist_GetClassID failed: 0x%08lx.\n",
hr);
4541 hr = IStorage_Stat(
storage, &statstg, STATFLAG_NONAME);
4544 enumerated_streams = matched_streams = -1;
4548 ok(enumerated_streams == matched_streams,
"enumerated %d != matched %d\n",
4549 enumerated_streams, matched_streams);
4550 ok(enumerated_streams == stg_def_dib.
stream_count,
"created %d != def streams %d\n",
4553 IPersist_Release(persist);
4555 IOleObject_Release(ole_obj);
4560 ok(
hr ==
S_OK,
"CreateILockBytesOnHGlobal failed: 0x%08lx.\n",
hr);
4563 ok(
hr ==
S_OK,
"StgCreateDocfileOnILockBytes failed: 0x%08lx.\n",
hr);
4564 ILockBytes_Release(ilb);
4568 ok(
hr ==
S_OK,
"OleCreateStaticFromData failed: 0x%08lx.\n",
hr);
4569 hr = IOleObject_QueryInterface(ole_obj, &
IID_IPersist, (
void **)&persist);
4570 ok(
hr ==
S_OK,
"IOleObject_QueryInterface failed: 0x%08lx.\n",
hr);
4571 hr = IPersist_GetClassID(persist, &
clsid);
4572 ok(
hr ==
S_OK,
"IPersist_GetClassID failed: 0x%08lx.\n",
hr);
4575 hr = IStorage_Stat(
storage, &statstg, STATFLAG_NONAME);
4578 enumerated_streams = matched_streams = -1;
4582 ok(enumerated_streams == matched_streams,
"enumerated %d != matched %d\n",
4583 enumerated_streams, matched_streams);
4584 ok(enumerated_streams == stg_def_emf.
stream_count,
"created %d != def streams %d\n",
4587 IPersist_Release(persist);
4589 IOleObject_Release(ole_obj);
4594 ok(
hr ==
S_OK,
"CreateILockBytesOnHGlobal failed: 0x%08lx.\n",
hr);
4597 ok(
hr ==
S_OK,
"StgCreateDocfileOnILockBytes failed: 0x%08lx.\n",
hr);
4598 ILockBytes_Release(ilb);
4606 ok(
hr ==
S_OK,
"CreateILockBytesOnHGlobal failed: 0x%08lx.\n",
hr);
4609 ok(
hr ==
S_OK,
"StgCreateDocfileOnILockBytes failed: 0x%08lx.\n",
hr);
4610 ILockBytes_Release(ilb);
4645 hr = IStorage_Stat(pStorage, &statstg, STATFLAG_NONAME);
4651 IStorage_Release(pStorage);
static unsigned char bytes[4]
#define InterlockedIncrement
#define InterlockedDecrement
const GUID IID_IClassFactory
#define STDMETHODCALLTYPE
#define RegCloseKey(hKey)
const CLSID CLSID_Picture_EnhMetafile
const CLSID CLSID_Picture_Dib
const CLSID CLSID_ManualResetEvent
const CLSID CLSID_Picture_Metafile
_In_ size_t const _In_ int _In_ bool const _In_ unsigned const _In_ __acrt_rounding_mode const _Inout_ __crt_cached_ptd_host & ptd
HRESULT WINAPI CreateDataCache(LPUNKNOWN pUnkOuter, REFCLSID rclsid, REFIID riid, LPVOID *ppvObj)
static const WCHAR clsidW[]
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
LONG WINAPI RegDeleteKeyA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey)
HRESULT WINAPI DECLSPEC_HOTPATCH CoRevokeClassObject(DWORD cookie)
INT WINAPI StringFromGUID2(REFGUID guid, LPOLESTR str, INT cmax)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI CoRegisterClassObject(REFCLSID rclsid, IUnknown *object, DWORD clscontext, DWORD flags, DWORD *cookie)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
HRESULT WINAPI CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL delete_on_release, IStream **stream)
#define GetProcAddress(x, y)
#define WideCharToMultiByte
#define MultiByteToWideChar
static const WCHAR version[]
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
UINT WINAPI GetSystemDirectoryA(OUT LPSTR lpBuffer, IN UINT uSize)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
INT WINAPI CompareStringW(LCID lcid, DWORD flags, LPCWSTR str1, INT len1, LPCWSTR str2, INT len2)
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
_ACRTIMP __msvcrt_long __cdecl atol(const char *)
_ACRTIMP int __cdecl strcmp(const char *, const char *)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
HRESULT WINAPI OleCreateEmbeddingHelper(REFCLSID clsid, LPUNKNOWN pUnkOuter, DWORD flags, IClassFactory *pCF, REFIID riid, LPVOID *ppvObj)
HRESULT WINAPI OleCreateDefaultHandler(REFCLSID clsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj)
HRESULT WINAPI OleSetAutoConvert(REFCLSID clsidOld, REFCLSID clsidNew)
void WINAPI ReleaseStgMedium(STGMEDIUM *pmedium)
HRESULT WINAPI DECLSPEC_HOTPATCH OleRun(LPUNKNOWN pUnknown)
HRESULT WINAPI OleLockRunning(LPUNKNOWN pUnknown, BOOL fLock, BOOL fLastUnlockCloses)
HRESULT WINAPI OleDraw(IUnknown *pUnk, DWORD dwAspect, HDC hdcDraw, LPCRECT rect)
BOOL WINAPI OleIsRunning(LPOLEOBJECT object)
HRESULT WINAPI OleCreateStaticFromData(IDataObject *data, REFIID iid, DWORD renderopt, FORMATETC *fmt, IOleClientSite *client_site, IStorage *stg, void **obj)
HRESULT WINAPI OleDoAutoConvert(LPSTORAGE pStg, LPCLSID pClsidNew)
HRESULT WINAPI OleCreateFromData(IDataObject *data, REFIID iid, DWORD renderopt, FORMATETC *fmt, IOleClientSite *client_site, IStorage *stg, void **obj)
HRESULT WINAPI OleLoad(LPSTORAGE pStg, REFIID riid, LPOLECLIENTSITE pClientSite, LPVOID *ppvObj)
HRESULT WINAPI OleCreate(REFCLSID rclsid, REFIID riid, DWORD renderopt, LPFORMATETC pFormatEtc, LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID *ppvObj)
HRESULT WINAPI OleGetAutoConvert(REFCLSID clsidOld, LPCLSID pClsidNew)
HRESULT WINAPI StgCreateDocfileOnILockBytes(ILockBytes *plkbyt, DWORD grfMode, DWORD reserved, IStorage **ppstgOpen)
HRESULT WINAPI StgCreateDocfile(LPCOLESTR pwcsName, DWORD grfMode, DWORD reserved, IStorage **ppstgOpen)
HRESULT WINAPI WriteFmtUserTypeStg(LPSTORAGE pstg, CLIPFORMAT cf, LPOLESTR lpszUserType)
HRESULT WINAPI SetConvertStg(IStorage *storage, BOOL convert)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLboolean GLboolean GLboolean b
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
GLsizei GLenum GLboolean sink
GLboolean GLboolean GLboolean GLboolean a
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
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
SIZE_T NTAPI GlobalSize(HGLOBAL hMem)
static ERESOURCE GlobalLock
HRESULT WINAPI CreateItemMoniker(const WCHAR *delimiter, const WCHAR *name, IMoniker **ret)
void WINAPI CoTaskMemFree(void *ptr)
HRESULT WINAPI CreateILockBytesOnHGlobal(HGLOBAL global, BOOL delete_on_release, ILockBytes **ret)
#define todo_wine_if(is_todo)
#define memcpy(s1, s2, n)
#define cmp(status, error)
static HGLOBAL create_text(void)
static HGLOBAL create_storage(void)
static HENHMETAFILE create_emf(void)
static IPersistStorage OleObjectPersistStg
static HRESULT WINAPI Storage_Commit(IStorage *iface, DWORD grfCommitFlags)
static HRESULT WINAPI OleObjectPersistStg_SaveCompleted(IPersistStorage *iface, IStorage *pStgNew)
static IStorage * create_storage_from_def(const struct storage_def *stg_def)
static BOOL WINAPI OleObjectRunnable_IsRunning(IRunnableObject *iface)
static void test_data_cache_updatecache(void)
static const struct storage_def stg_def_9
static HRESULT WINAPI OleObjectPersistStg_InitNew(IPersistStorage *iface, IStorage *pStg)
static const IRunnableObjectVtbl oleruntestvtbl
static IRunnableObject testrunnable
static IStorageVtbl StorageVtbl
static const IPersistStorageVtbl OleObjectPersistStgVtbl
static const struct storage_def stg_def_1
static HRESULT WINAPI viewobject_SetAdvise(IViewObject *iface, DWORD aspects, DWORD advf, IAdviseSink *sink)
static void WINAPI AdviseSink_OnSave(IAdviseSink *iface)
static HRESULT WINAPI OleObject_IsUpToDate(IOleObject *iface)
static HRESULT WINAPI OleObject_Advise(IOleObject *iface, IAdviseSink *pAdvSink, DWORD *pdwConnection)
static BOOL STDMETHODCALLTYPE draw_continue_false(ULONG_PTR param)
static HRESULT WINAPI DataObject_DAdvise(IDataObject *iface, FORMATETC *pformatetc, DWORD advf, IAdviseSink *pAdvSink, DWORD *pdwConnection)
static HRESULT WINAPI Storage_DestroyElement(IStorage *iface, LPCOLESTR pwcsName)
static ULONG WINAPI AdviseSink_Release(IAdviseSink *iface)
static HRESULT WINAPI viewobject_GetColorSet(IViewObject *iface, DWORD draw_aspect, LONG index, void *aspect, DVTARGETDEVICE *ptd, HDC hicTargetDev, LOGPALETTE **colorset)
static ULONG WINAPI AdviseSink_AddRef(IAdviseSink *iface)
static void test_data_cache_save(void)
static HRESULT WINAPI AdviseSink_QueryInterface(IAdviseSink *iface, REFIID riid, void **ppv)
static const struct storage_def stg_def_7
static const IClassFactoryVtbl OleObjectCFVtbl
static ULONG WINAPI OleObjectCF_Release(IClassFactory *iface)
static void WINAPI AdviseSink_OnViewChange(IAdviseSink *iface, DWORD dwAspect, LONG lindex)
static ULONG WINAPI OleRun_Release(IRunnableObject *iface)
static HRESULT WINAPI OleObjectPersistStg_Load(IPersistStorage *iface, IStorage *pStg)
static HRESULT WINAPI OleObject_QueryInterface(IOleObject *iface, REFIID riid, void **ppv)
static HRESULT WINAPI OleObjectPersistStg_GetClassId(IPersistStorage *iface, CLSID *clsid)
static HRESULT WINAPI OleObjectRunnable_LockRunning(IRunnableObject *iface, BOOL fLock, BOOL fLastUnlockCloses)
static const struct storage_def stg_def_6
static const struct storage_def stg_def_0_saved
static HRESULT WINAPI OleObject_EnumAdvise(IOleObject *iface, IEnumSTATDATA **ppenumAdvise)
static ULONG WINAPI OleObject_AddRef(IOleObject *iface)
static const BYTE dib_white[]
static ULONG WINAPI OleObjectRunnable_AddRef(IRunnableObject *iface)
static IRunnableObject OleObjectRunnable
#define ok_ole_success(hr, func)
static const struct expected_method * expected_method_list
static const CLSID CLSID_WineTest
static IOleObject OleObject
static const BYTE dib_inf[]
static HRESULT WINAPI OleRun_SetContainedObject(IRunnableObject *iface, BOOL contained)
static ULONG WINAPI Unknown_AddRef(IUnknown *iface)
static void test_runnable(void)
static void test_data_cache_cache(void)
static HRESULT WINAPI OleObjectPersistStg_IsDirty(IPersistStorage *iface)
static ULONG WINAPI DataObject_AddRef(IDataObject *iface)
static const struct storage_def stg_def_9_saved
static IAdviseSink AdviseSink
static BOOL WINAPI OleRun_IsRunning(IRunnableObject *iface)
static HRESULT WINAPI Storage_OpenStream(IStorage *iface, LPCOLESTR pwcsName, void *reserved1, DWORD grfMode, DWORD reserved2, IStream **ppstm)
static ULONG WINAPI DataObject_Release(IDataObject *iface)
static HRESULT WINAPI DataObject_GetData(IDataObject *iface, FORMATETC *format, STGMEDIUM *medium)
static ULONG WINAPI OleObjectRunnable_Release(IRunnableObject *iface)
static const IUnknownVtbl UnknownVtbl
#define CHECK_EXPECT(func)
static HRESULT WINAPI Storage_RenameElement(IStorage *iface, LPCOLESTR pwcsOldName, LPCOLESTR pwcsNewName)
static HRESULT WINAPI OleObject_GetMoniker(IOleObject *iface, DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk)
static void get_stgmedium(CLIPFORMAT cfFormat, STGMEDIUM *stgmedium)
static HRESULT WINAPI Storage_EnumElements(IStorage *iface, DWORD reserved1, void *reserved2, DWORD reserved3, IEnumSTATSTG **ppenum)
static HRESULT WINAPI Storage_CreateStorage(IStorage *iface, LPCOLESTR pwcsName, DWORD grfMode, DWORD dwStgFmt, DWORD reserved2, IStorage **ppstg)
static IStream * ole_stream
static HRESULT WINAPI OleObjectCache_Uncache(IOleCache *iface, DWORD dwConnection)
#define DEFINE_EXPECT(func)
static HRESULT WINAPI OleObject_GetClipboardData(IOleObject *iface, DWORD dwReserved, IDataObject **ppDataObject)
static HRESULT g_QIFailsWith
static HRESULT WINAPI Storage_SetClass(IStorage *iface, REFCLSID clsid)
static HRESULT WINAPI Storage_Stat(IStorage *iface, STATSTG *pstatstg, DWORD grfStatFlag)
#define CHECK_NO_EXTRA_METHODS()
static void test_default_handler(void)
static HRESULT WINAPI OleObjectRunnable_SetContainedObject(IRunnableObject *iface, BOOL fContained)
static HRESULT WINAPI OleObject_GetExtent(IOleObject *iface, DWORD dwDrawAspect, SIZEL *psizel)
static void create_dib(STGMEDIUM *med)
static HRESULT WINAPI OleObjectCache_SetData(IOleCache *iface, FORMATETC *pformatetc, STGMEDIUM *pmedium, BOOL fRelease)
static ULONG WINAPI OleObjectPersistStg_Release(IPersistStorage *iface)
static void test_OleLockRunning(void)
static void test_data_cache_save_data(void)
static const CLSID CLSID_WineTestOld
static const struct storage_def stg_def_4
static const CLSID CLSID_Equation3
#define CHECK_EXPECTED_METHOD(method_name)
static const unsigned char bmpimage[]
static const IRunnableObjectVtbl OleObjectRunnableVtbl
static const struct storage_def stg_def_5_saved
static const struct storage_def stg_def_1_saved
static void create_mfpict(STGMEDIUM *med)
static ULONG WINAPI OleRun_AddRef(IRunnableObject *iface)
static HRESULT WINAPI OleObject_GetUserType(IOleObject *iface, DWORD dwFormOfType, LPOLESTR *pszUserType)
static ULONG WINAPI OleObjectCache_Release(IOleCache *iface)
static HRESULT WINAPI OleObject_GetMiscStatus(IOleObject *iface, DWORD aspect, DWORD *pdwStatus)
static ULONG WINAPI OleObjectCache_AddRef(IOleCache *iface)
static HRESULT WINAPI OleObjectCache_InitCache(IOleCache *iface, IDataObject *pDataObject)
static const struct storage_def stg_def_2
static HRESULT WINAPI OleObjectCF_CreateInstance(IClassFactory *iface, IUnknown *punkOuter, REFIID riid, void **ppv)
static HRESULT WINAPI viewobject_Freeze(IViewObject *iface, DWORD draw_aspect, LONG index, void *aspect, DWORD *freeze)
static const BYTE dib_black[]
static HRESULT WINAPI OleObjectRunnable_QueryInterface(IRunnableObject *iface, REFIID riid, void **ppv)
static void check_expected_method_fmt(const char *method_name, const FORMATETC *fmt)
static const BYTE * data_object_dib
static HRESULT WINAPI OleRun_GetRunningClass(IRunnableObject *iface, CLSID *clsid)
static const struct storage_def stg_def_8
static ULONG WINAPI OleObject_Release(IOleObject *iface)
static HRESULT WINAPI OleObject_SetHostNames(IOleObject *iface, LPCOLESTR szContainerApp, LPCOLESTR szContainerObj)
static FORMATETC * g_expected_fetc
static HRESULT WINAPI OleObjectCF_LockServer(IClassFactory *iface, BOOL lock)
static ULONG WINAPI Storage_Release(IStorage *iface)
static void check_storage_contents(IStorage *stg, const struct storage_def *stg_def, int *enumerated_streams, int *matched_streams)
static HRESULT WINAPI OleObject_GetUserClassID(IOleObject *iface, CLSID *pClsid)
static int Storage_DestroyElement_limit
static HRESULT WINAPI Storage_SetElementTimes(IStorage *iface, LPCOLESTR pwcsName, const FILETIME *pctime, const FILETIME *patime, const FILETIME *pmtime)
static const WCHAR comp_objW[]
static void WINAPI AdviseSink_OnRename(IAdviseSink *iface, IMoniker *pmk)
static const struct storage_def stg_def_7_saved
#define CHECK_EXPECT2(func)
static HRESULT WINAPI DataObject_QueryGetData(IDataObject *iface, FORMATETC *format)
static BOOL STDMETHODCALLTYPE draw_continue(ULONG_PTR param)
static HRESULT WINAPI DataObject_GetCanonicalFormatEtc(IDataObject *iface, LPFORMATETC pformatectIn, LPFORMATETC pformatetcOut)
static IClassFactory OleObjectCF
static HRESULT WINAPI Storage_CreateStream(IStorage *iface, LPCOLESTR pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStream **ppstm)
static HRESULT WINAPI OleObjectCache_Cache(IOleCache *iface, FORMATETC *pformatetc, DWORD advf, DWORD *pdwConnection)
static HRESULT WINAPI OleObjectRunnable_Run(IRunnableObject *iface, LPBINDCTX pbc)
static HRESULT stgmedium_cmp(const STGMEDIUM *med1, STGMEDIUM *med2)
static ULONG WINAPI viewobject_AddRef(IViewObject *iface)
static FORMATETC * data_object_format
static HRESULT WINAPI OleObject_DoVerb(IOleObject *iface, LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect)
static const struct storage_def stg_def_2_saved
static HRESULT WINAPI DataObject_DUnadvise(IDataObject *iface, DWORD dwConnection)
static HRESULT WINAPI Storage_SetStateBits(IStorage *iface, DWORD grfStateBits, DWORD grfMask)
static const struct storage_def stg_def_0
static HRESULT WINAPI Storage_MoveElementTo(IStorage *iface, LPCOLESTR pwcsName, IStorage *pstgDest, LPCOLESTR pwcsNewName, DWORD grfFlags)
static BOOL fmtetc_equal(const FORMATETC *a, const FORMATETC *b)
static const WCHAR olepres0W[]
static IStream * olepres_stream
static HRESULT WINAPI viewobject_Unfreeze(IViewObject *iface, DWORD freeze)
static const struct storage_def stg_def_3
static HRESULT g_GetMiscStatusFailsWith
static const struct storage_def stg_def_5
static HRESULT WINAPI OleObjectCache_QueryInterface(IOleCache *iface, REFIID riid, void **ppv)
static IDataObject DataObject
static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite *pClientSite)
static const struct storage_def stg_def_6_saved
static HRESULT WINAPI OleObjectPersistStg_HandsOffStorage(IPersistStorage *iface)
static HRESULT WINAPI OleRun_Run(IRunnableObject *iface, LPBINDCTX ctx)
static HRESULT WINAPI DataObject_GetDataHere(IDataObject *iface, LPFORMATETC pformatetc, STGMEDIUM *pmedium)
static HRESULT WINAPI Storage_CopyTo(IStorage *iface, DWORD ciidExclude, const IID *rgiidExclude, SNB snbExclude, IStorage *pstgDest)
static HRESULT WINAPI Storage_OpenStorage(IStorage *iface, LPCOLESTR pwcsName, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstg)
static void check_dib_size(HGLOBAL h, int cx, int cy)
static void test_OleCreateStaticFromData(void)
static const IOleObjectVtbl OleObjectVtbl
#define CHECK_CALLED(func)
static HRESULT WINAPI OleObject_SetMoniker(IOleObject *iface, DWORD dwWhichMoniker, IMoniker *pmk)
static IStream * comp_obj_stream
static ULONG WINAPI OleObjectCF_AddRef(IClassFactory *iface)
static HRESULT WINAPI Unknown_QueryInterface(IUnknown *iface, REFIID riid, void **ppv)
static IStream * contents_stream
static HRESULT WINAPI OleObjectCache_EnumCache(IOleCache *iface, IEnumSTATDATA **ppenumSTATDATA)
static const struct storage_def stg_def_3_saved
static HRESULT WINAPI viewobject_Draw(IViewObject *iface, DWORD aspect, LONG index, void *paspect, DVTARGETDEVICE *ptd, HDC hdcTargetDev, HDC hdcDraw, LPCRECTL bounds, LPCRECTL wbounds, BOOL(STDMETHODCALLTYPE *pfnContinue)(ULONG_PTR dwContinue), ULONG_PTR dwContinue)
static BOOL g_showRunnable
static const unsigned char mf_blank_bits[]
static HRESULT WINAPI OleObjectCF_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv)
static void check_bitmap_size(HBITMAP h, int cx, int cy)
static HRESULT WINAPI OleRun_QueryInterface(IRunnableObject *iface, REFIID riid, void **ppv)
static HRESULT WINAPI DataObject_EnumDAdvise(IDataObject *iface, IEnumSTATDATA **ppenumAdvise)
static IOleCache OleObjectCache
static HRESULT WINAPI OleRun_LockRunning(IRunnableObject *iface, BOOL lock, BOOL last_unlock_closes)
static HRESULT WINAPI OleObjectPersistStg_Save(IPersistStorage *iface, IStorage *pStgSave, BOOL fSameAsLoad)
static HRESULT WINAPI Storage_Revert(IStorage *iface)
static void test_data_cache_initnew(void)
static void test_OleLoad(IStorage *pStorage)
static HRESULT WINAPI DataObject_QueryInterface(IDataObject *iface, REFIID riid, void **ppvObject)
static const BYTE mf_rec[]
static HRESULT WINAPI OleObject_EnumVerbs(IOleObject *iface, IEnumOLEVERB **ppEnumOleVerb)
static HRESULT WINAPI OleObject_Update(IOleObject *iface)
static IViewObject viewobject
static void WINAPI AdviseSink_OnClose(IAdviseSink *iface)
static void test_OleDraw(void)
static void test_data_cache(void)
static HRESULT WINAPI OleObject_SetExtent(IOleObject *iface, DWORD dwDrawAspect, SIZEL *psizel)
static IDataObjectVtbl DataObjectVtbl
static void test_OleDoAutoConvert(void)
static const struct IViewObjectVtbl viewobjectvtbl
static void test_data_cache_dib_contents_stream(int num)
static HRESULT WINAPI DataObject_EnumFormatEtc(IDataObject *iface, DWORD dwDirection, IEnumFORMATETC **ppenumFormatEtc)
static ULONG WINAPI Storage_AddRef(IStorage *iface)
static const struct storage_def stg_def_8_saved
static void test_data_cache_contents(void)
static HRESULT WINAPI OleObjectRunnable_GetRunningClass(IRunnableObject *iface, LPCLSID lpClsid)
static LONG ole_object_refcount
static int read_clipformat(IStream *stream)
static void check_enum_cache(IOleCache2 *cache, const STATDATA *expect, int num)
static HRESULT WINAPI viewobject_GetAdvise(IViewObject *iface, DWORD *aspects, DWORD *advf, IAdviseSink **sink)
static const IAdviseSinkVtbl AdviseSinkVtbl
static HRESULT WINAPI OleObject_SetColorScheme(IOleObject *iface, LOGPALETTE *pLogpal)
static const IID IID_WineTest
static void test_ReleaseStgMedium(void)
static HRESULT WINAPI OleObjectPersistStg_QueryInterface(IPersistStorage *iface, REFIID riid, void **ppv)
static ULONG WINAPI Unknown_Release(IUnknown *iface)
static IRunnableObject * runnable
static HRESULT WINAPI OleObject_Unadvise(IOleObject *iface, DWORD dwConnection)
static void test_data_cache_init(void)
static HRESULT WINAPI OleObject_Close(IOleObject *iface, DWORD dwSaveOption)
static HRESULT WINAPI OleObject_GetClientSite(IOleObject *iface, IOleClientSite **ppClientSite)
static ULONG WINAPI OleObjectPersistStg_AddRef(IPersistStorage *iface)
static BOOL compare_global(HGLOBAL handle, const void *data, SIZE_T size)
static const WCHAR CONTENTS[]
static HRESULT WINAPI OleObject_InitFromData(IOleObject *iface, IDataObject *pDataObject, BOOL fCreation, DWORD dwReserved)
static HRESULT WINAPI Storage_QueryInterface(IStorage *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI viewobject_QueryInterface(IViewObject *iface, REFIID riid, void **obj)
static void test_OleCreate(IStorage *pStorage)
static void get_stgdef(struct storage_def *stg_def, CLIPFORMAT cf, STGMEDIUM *stg_med, int stm_idx)
static void test_OleRun(void)
static const CLSID * Storage_SetClass_CLSID
static ULONG WINAPI viewobject_Release(IViewObject *iface)
static const IOleCacheVtbl OleObjectCacheVtbl
static HRESULT WINAPI DataObject_SetData(IDataObject *iface, LPFORMATETC pformatetc, STGMEDIUM *pmedium, BOOL fRelease)
static const struct storage_def stg_def_4_saved
static void WINAPI AdviseSink_OnDataChange(IAdviseSink *iface, FORMATETC *pFormatetc, STGMEDIUM *pStgmed)
static PROTOCOLDATA * pdata
static HBITMAP create_bitmap(void)
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
INT WINAPI MulDiv(INT nNumber, INT nNumerator, INT nDenominator)
#define KEY_CREATE_SUB_KEY
#define STGM_SHARE_EXCLUSIVE
#define STGM_DELETEONRELEASE
interface IBindCtx * LPBINDCTX
#define EMBDHLP_INPROC_SERVER
HGLOBAL WINAPI OleMetafilePictFromIconAndLabel(HICON hIcon, LPOLESTR lpszLabel, LPOLESTR lpszSourceFile, UINT iIconIndex)
const GUID IID_IViewObject
const GUID IID_IAdviseSink
const GUID IID_IViewObject2
const GUID IID_IRunnableObject
const GUID IID_IOleCache2
const GUID IID_IOleCacheControl
const GUID IID_IDataObject
const GUID IID_IOleInPlaceObject
const GUID IID_IPersistStorage
const GUID IID_IOleObject
_Out_opt_ int _Out_opt_ int * cy
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
#define IsEqualCLSID(rclsid1, rclsid2)
static __inline const char * wine_dbgstr_guid(const GUID *id)
@ OLEMISC_RECOMPOSEONRESIZE
struct stream_def stream[MAX_STREAM]
#define FIELD_OFFSET(t, f)
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
#define REGDB_E_CLASSNOTREG
#define CACHE_S_SAMECACHE
#define OLE_E_NOCONNECTION
#define CACHE_S_FORMATETC_NOTSUPPORTED
#define CACHE_E_NOCACHE_UPDATED
#define CO_E_OBJNOTCONNECTED
#define STG_E_FILENOTFOUND
#define OLE_E_ADVISENOTSUPPORTED
#define CO_E_ALREADYINITIALIZED
#define REGDB_E_KEYMISSING
BOOL WINAPI DeleteMetaFile(_In_ HMETAFILE)
UINT WINAPI GetEnhMetaFileBits(_In_ HENHMETAFILE hEMF, _In_ UINT nSize, _Out_writes_bytes_opt_(nSize) LPBYTE lpData)
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
HBITMAP WINAPI CreateBitmap(_In_ INT cx, _In_ INT cy, _In_ UINT cPlanes, _In_ UINT cBitsPerPel, _In_opt_ const VOID *pvBits)
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
HDC WINAPI CreateMetaFileA(_In_opt_ LPCSTR)
HDC WINAPI CreateEnhMetaFileW(_In_opt_ HDC, _In_opt_ LPCWSTR, _In_opt_ LPCRECT, _In_opt_ LPCWSTR)
UINT WINAPI GetWinMetaFileBits(_In_ HENHMETAFILE hemf, _In_ UINT cbData16, _Out_writes_bytes_opt_(cbData16) LPBYTE pData16, _In_ INT iMapMode, _In_ HDC hdcRef)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
HMETAFILE WINAPI CloseMetaFile(_In_ HDC hdc)
UINT WINAPI GetMetaFileBitsEx(_In_ HMETAFILE hMF, _In_ UINT cbBuffer, _Out_writes_bytes_opt_(cbBuffer) LPVOID lpData)
HDC WINAPI CreateMetaFileW(_In_opt_ LPCWSTR)
LONG WINAPI GetBitmapBits(_In_ HBITMAP hbit, _In_ LONG cb, _Out_writes_bytes_(cb) LPVOID lpvBits)
HENHMETAFILE WINAPI CloseEnhMetaFile(_In_ HDC hdc)
struct tagENHMETAHEADER ENHMETAHEADER
BOOL WINAPI Rectangle(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int)
BOOL WINAPI DeleteDC(_In_ HDC)
#define HKEY_CLASSES_ROOT
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
HICON WINAPI LoadIconA(_In_opt_ HINSTANCE hInstance, _In_ LPCSTR lpIconName)
HDC WINAPI GetDC(_In_opt_ HWND)
UINT WINAPI RegisterClipboardFormatA(_In_ LPCSTR)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)