Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
ad326999
Commit
ad326999
authored
Oct 26, 2010
by
Huw Davies
Committed by
Alexandre Julliard
Nov 01, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ole32/tests: Add tests to exercise the datacache's IDataObject::GetData.
parent
6ec621e8
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
103 additions
and
1 deletion
+103
-1
ole2.c
dlls/ole32/tests/ole2.c
+103
-1
No files found.
dlls/ole32/tests/ole2.c
View file @
ad326999
...
...
@@ -69,6 +69,8 @@ static BOOL g_isRunning = TRUE;
static
BOOL
g_failGetMiscStatus
;
static
HRESULT
g_QIFailsWith
;
static
UINT
cf_test_1
,
cf_test_2
,
cf_test_3
;
#define CHECK_EXPECTED_METHOD(method_name) \
do { \
trace("%s\n", method_name); \
...
...
@@ -1063,6 +1065,8 @@ static HRESULT WINAPI DataObject_QueryInterface(
REFIID
riid
,
void
**
ppvObject
)
{
CHECK_EXPECTED_METHOD
(
"DataObject_QueryInterface"
);
if
(
IsEqualIID
(
riid
,
&
IID_IDataObject
)
||
IsEqualIID
(
riid
,
&
IID_IUnknown
))
{
*
ppvObject
=
iface
;
...
...
@@ -1075,12 +1079,14 @@ static HRESULT WINAPI DataObject_QueryInterface(
static
ULONG
WINAPI
DataObject_AddRef
(
IDataObject
*
iface
)
{
CHECK_EXPECTED_METHOD
(
"DataObject_AddRef"
);
return
2
;
}
static
ULONG
WINAPI
DataObject_Release
(
IDataObject
*
iface
)
{
CHECK_EXPECTED_METHOD
(
"DataObject_Release"
);
return
1
;
}
...
...
@@ -1145,8 +1151,20 @@ static HRESULT WINAPI DataObject_DAdvise(
IAdviseSink
*
pAdvSink
,
DWORD
*
pdwConnection
)
{
STGMEDIUM
stgmedium
;
CHECK_EXPECTED_METHOD
(
"DataObject_DAdvise"
);
*
pdwConnection
=
1
;
if
(
advf
&
ADVF_PRIMEFIRST
)
{
ok
(
pformatetc
->
cfFormat
==
cf_test_2
,
"got %04x
\n
"
,
pformatetc
->
cfFormat
);
stgmedium
.
tymed
=
TYMED_HGLOBAL
;
U
(
stgmedium
).
hGlobal
=
GlobalAlloc
(
GMEM_MOVEABLE
|
GMEM_ZEROINIT
,
4
);
stgmedium
.
pUnkForRelease
=
NULL
;
IAdviseSink_OnDataChange
(
pAdvSink
,
pformatetc
,
&
stgmedium
);
}
return
S_OK
;
}
...
...
@@ -1192,6 +1210,7 @@ static void test_data_cache(void)
IPersistStorage
*
pPS
;
IViewObject
*
pViewObject
;
IOleCacheControl
*
pOleCacheControl
;
IDataObject
*
pCacheDataObject
;
FORMATETC
fmtetc
;
STGMEDIUM
stgmedium
;
DWORD
dwConnection
;
...
...
@@ -1226,6 +1245,19 @@ static void test_data_cache(void)
{
"DataObject_GetData"
,
0
},
{
NULL
,
0
}
};
static
const
struct
expected_method
methods_cachethenrun
[]
=
{
{
"DataObject_DAdvise"
,
0
},
{
"DataObject_DAdvise"
,
0
},
{
"DataObject_DAdvise"
,
0
},
{
"DataObject_QueryGetData"
,
1
},
/* called by win9x and nt4 */
{
"DataObject_DAdvise"
,
0
},
{
"DataObject_DUnadvise"
,
0
},
{
"DataObject_DUnadvise"
,
0
},
{
"DataObject_DUnadvise"
,
0
},
{
"DataObject_DUnadvise"
,
0
},
{
NULL
,
0
}
};
GetSystemDirectory
(
szSystemDir
,
sizeof
(
szSystemDir
)
/
sizeof
(
szSystemDir
[
0
]));
...
...
@@ -1340,6 +1372,7 @@ static void test_data_cache(void)
fmtetc
.
dwAspect
=
DVASPECT_ICON
;
hr
=
IOleCache_SetData
(
pOleCache
,
&
fmtetc
,
&
stgmedium
,
FALSE
);
ok_ole_success
(
hr
,
"IOleCache_SetData"
);
ReleaseStgMedium
(
&
stgmedium
);
hr
=
IViewObject_Freeze
(
pViewObject
,
DVASPECT_ICON
,
-
1
,
NULL
,
&
dwFreeze
);
todo_wine
{
...
...
@@ -1467,8 +1500,73 @@ static void test_data_cache(void)
CHECK_NO_EXTRA_METHODS
();
}
IStorage_Release
(
pStorage
);
hr
=
CreateDataCache
(
NULL
,
&
CLSID_NULL
,
&
IID_IOleCache2
,
(
LPVOID
*
)
&
pOleCache
);
ok_ole_success
(
hr
,
"CreateDataCache"
);
expected_method_list
=
methods_cachethenrun
;
hr
=
IOleCache_QueryInterface
(
pOleCache
,
&
IID_IDataObject
,
(
LPVOID
*
)
&
pCacheDataObject
);
ok_ole_success
(
hr
,
"IOleCache_QueryInterface(IID_IDataObject)"
);
hr
=
IOleCache_QueryInterface
(
pOleCache
,
&
IID_IOleCacheControl
,
(
LPVOID
*
)
&
pOleCacheControl
);
ok_ole_success
(
hr
,
"IOleCache_QueryInterface(IID_IOleCacheControl)"
);
fmtetc
.
cfFormat
=
CF_METAFILEPICT
;
fmtetc
.
dwAspect
=
DVASPECT_CONTENT
;
fmtetc
.
tymed
=
TYMED_MFPICT
;
hr
=
IOleCache_Cache
(
pOleCache
,
&
fmtetc
,
0
,
&
dwConnection
);
ok_ole_success
(
hr
,
"IOleCache_Cache"
);
hr
=
IDataObject_GetData
(
pCacheDataObject
,
&
fmtetc
,
&
stgmedium
);
ok
(
hr
==
OLE_E_BLANK
,
"got %08x
\n
"
,
hr
);
fmtetc
.
cfFormat
=
cf_test_1
;
fmtetc
.
dwAspect
=
DVASPECT_CONTENT
;
fmtetc
.
tymed
=
TYMED_HGLOBAL
;
hr
=
IOleCache_Cache
(
pOleCache
,
&
fmtetc
,
0
,
&
dwConnection
);
ok
(
hr
==
CACHE_S_FORMATETC_NOTSUPPORTED
,
"got %08x
\n
"
,
hr
);
hr
=
IDataObject_GetData
(
pCacheDataObject
,
&
fmtetc
,
&
stgmedium
);
ok
(
hr
==
OLE_E_BLANK
,
"got %08x
\n
"
,
hr
);
fmtetc
.
cfFormat
=
cf_test_2
;
hr
=
IOleCache_Cache
(
pOleCache
,
&
fmtetc
,
ADVF_PRIMEFIRST
,
&
dwConnection
);
ok
(
hr
==
CACHE_S_FORMATETC_NOTSUPPORTED
,
"got %08x
\n
"
,
hr
);
hr
=
IDataObject_GetData
(
pCacheDataObject
,
&
fmtetc
,
&
stgmedium
);
ok
(
hr
==
OLE_E_BLANK
,
"got %08x
\n
"
,
hr
);
hr
=
IOleCacheControl_OnRun
(
pOleCacheControl
,
&
DataObject
);
todo_wine
ok_ole_success
(
hr
,
"IOleCacheControl_OnRun"
);
fmtetc
.
cfFormat
=
cf_test_3
;
hr
=
IOleCache_Cache
(
pOleCache
,
&
fmtetc
,
0
,
&
dwConnection
);
ok
(
hr
==
CACHE_S_FORMATETC_NOTSUPPORTED
,
"got %08x
\n
"
,
hr
);
fmtetc
.
cfFormat
=
cf_test_1
;
hr
=
IDataObject_GetData
(
pCacheDataObject
,
&
fmtetc
,
&
stgmedium
);
ok
(
hr
==
OLE_E_BLANK
,
"got %08x
\n
"
,
hr
);
fmtetc
.
cfFormat
=
cf_test_2
;
hr
=
IDataObject_GetData
(
pCacheDataObject
,
&
fmtetc
,
&
stgmedium
);
todo_wine
ok
(
hr
==
S_OK
,
"got %08x
\n
"
,
hr
);
ReleaseStgMedium
(
&
stgmedium
);
fmtetc
.
cfFormat
=
cf_test_3
;
hr
=
IDataObject_GetData
(
pCacheDataObject
,
&
fmtetc
,
&
stgmedium
);
ok
(
hr
==
OLE_E_BLANK
,
"got %08x
\n
"
,
hr
);
IOleCacheControl_Release
(
pOleCacheControl
);
IDataObject_Release
(
pCacheDataObject
);
IOleCache_Release
(
pOleCache
);
todo_wine
CHECK_NO_EXTRA_METHODS
();
IStorage_Release
(
pStorage
);
}
static
void
test_default_handler
(
void
)
...
...
@@ -1758,6 +1856,10 @@ START_TEST(ole2)
STATSTG
statstg
;
HRESULT
hr
;
cf_test_1
=
RegisterClipboardFormatA
(
"cf_winetest_1"
);
cf_test_2
=
RegisterClipboardFormatA
(
"cf_winetest_2"
);
cf_test_3
=
RegisterClipboardFormatA
(
"cf_winetest_3"
);
CoInitialize
(
NULL
);
hr
=
CoRegisterClassObject
(
&
CLSID_Equation3
,
(
IUnknown
*
)
&
OleObjectCF
,
CLSCTX_INPROC_SERVER
,
REGCLS_MULTIPLEUSE
,
&
dwRegister
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment