Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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-winehq
Commits
bbedf3d0
Commit
bbedf3d0
authored
Jan 10, 2007
by
Rob Shearman
Committed by
Alexandre Julliard
Jan 11, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ole32: Add tests for the default handler.
parent
5c71583b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
166 additions
and
6 deletions
+166
-6
ole2.c
dlls/ole32/tests/ole2.c
+166
-6
No files found.
dlls/ole32/tests/ole2.c
View file @
bbedf3d0
...
...
@@ -19,6 +19,7 @@
*/
#define COBJMACROS
#define CONST_VTABLE
#include <stdarg.h>
...
...
@@ -35,6 +36,14 @@ static IPersistStorage OleObjectPersistStg;
static
IOleCache
*
cache
;
static
IRunnableObject
*
runnable
;
static
const
CLSID
CLSID_WineTest
=
{
/* 9474ba1a-258b-490b-bc13-516e9239ace0 */
0x9474ba1a
,
0x258b
,
0x490b
,
{
0xbc
,
0x13
,
0x51
,
0x6e
,
0x92
,
0x39
,
0xac
,
0xe0
}
};
static
char
const
*
const
*
expected_method_list
;
#define CHECK_EXPECTED_METHOD(method_name) \
...
...
@@ -311,7 +320,7 @@ static HRESULT WINAPI OleObject_SetColorScheme
return
E_NOTIMPL
;
}
static
IOleObjectVtbl
OleObjectVtbl
=
static
const
IOleObjectVtbl
OleObjectVtbl
=
{
OleObject_QueryInterface
,
OleObject_AddRef
,
...
...
@@ -424,7 +433,7 @@ static HRESULT WINAPI OleObjectPersistStg_HandsOffStorage
return
S_OK
;
}
static
IPersistStorageVtbl
OleObjectPersistStgVtbl
=
static
const
IPersistStorageVtbl
OleObjectPersistStgVtbl
=
{
OleObjectPersistStg_QueryInterface
,
OleObjectPersistStg_AddRef
,
...
...
@@ -514,7 +523,7 @@ static HRESULT WINAPI OleObjectCache_SetData
}
static
IOleCacheVtbl
OleObjectCacheVtbl
=
static
const
IOleCacheVtbl
OleObjectCacheVtbl
=
{
OleObjectCache_QueryInterface
,
OleObjectCache_AddRef
,
...
...
@@ -560,7 +569,7 @@ static HRESULT WINAPI OleObjectCF_LockServer(IClassFactory *iface, BOOL lock)
return
S_OK
;
}
static
IClassFactoryVtbl
OleObjectCFVtbl
=
static
const
IClassFactoryVtbl
OleObjectCFVtbl
=
{
OleObjectCF_QueryInterface
,
OleObjectCF_AddRef
,
...
...
@@ -627,7 +636,7 @@ static HRESULT WINAPI OleObjectRunnable_SetContainedObject(
return
S_OK
;
}
static
IRunnableObjectVtbl
OleObjectRunnableVtbl
=
static
const
IRunnableObjectVtbl
OleObjectRunnableVtbl
=
{
OleObjectRunnable_QueryInterface
,
OleObjectRunnable_AddRef
,
...
...
@@ -893,7 +902,7 @@ static void WINAPI AdviseSink_OnClose(IAdviseSink *iface)
CHECK_EXPECTED_METHOD
(
"AdviseSink_OnClose"
);
}
static
IAdviseSinkVtbl
AdviseSinkVtbl
=
static
const
IAdviseSinkVtbl
AdviseSinkVtbl
=
{
AdviseSink_QueryInterface
,
AdviseSink_AddRef
,
...
...
@@ -1294,6 +1303,156 @@ static void test_data_cache(void)
ReleaseStgMedium
(
&
stgmedium
);
}
static
void
test_default_handler
(
void
)
{
HRESULT
hr
;
IOleObject
*
pObject
;
IRunnableObject
*
pRunnableObject
;
IOleClientSite
*
pClientSite
;
IDataObject
*
pDataObject
;
SIZEL
sizel
;
DWORD
dwStatus
;
CLSID
clsid
;
LPOLESTR
pszUserType
;
LOGPALETTE
palette
;
DWORD
dwAdvConn
;
IMoniker
*
pMoniker
;
FORMATETC
fmtetc
;
IOleInPlaceObject
*
pInPlaceObj
;
IEnumOLEVERB
*
pEnumVerbs
;
static
const
WCHAR
wszUnknown
[]
=
{
'U'
,
'n'
,
'k'
,
'n'
,
'o'
,
'w'
,
'n'
,
0
};
static
const
WCHAR
wszHostName
[]
=
{
'W'
,
'i'
,
'n'
,
'e'
,
' '
,
'T'
,
'e'
,
's'
,
't'
,
' '
,
'P'
,
'r'
,
'o'
,
'g'
,
'r'
,
'a'
,
'm'
,
0
};
static
const
WCHAR
wszDelim
[]
=
{
'!'
,
0
};
hr
=
CoCreateInstance
(
&
CLSID_WineTest
,
NULL
,
CLSCTX_INPROC_HANDLER
,
&
IID_IOleObject
,
(
void
**
)
&
pObject
);
ok
(
hr
==
REGDB_E_CLASSNOTREG
,
"CoCreateInstance should have failed with REGDB_E_CLASSNOTREG instead of 0x%08x
\n
"
,
hr
);
hr
=
OleCreateDefaultHandler
(
&
CLSID_WineTest
,
NULL
,
&
IID_IOleObject
,
(
void
**
)
&
pObject
);
ok_ole_success
(
hr
,
"OleCreateDefaultHandler"
);
hr
=
IOleObject_QueryInterface
(
pObject
,
&
IID_IOleInPlaceObject
,
(
void
**
)
&
pInPlaceObj
);
ok
(
hr
==
E_NOINTERFACE
,
"IOleObject_QueryInterface(&IID_IOleInPlaceObject) should return E_NOINTERFACE instead of 0x%08x
\n
"
,
hr
);
hr
=
IOleObject_Advise
(
pObject
,
&
AdviseSink
,
&
dwAdvConn
);
ok_ole_success
(
hr
,
"IOleObject_Advise"
);
hr
=
IOleObject_Close
(
pObject
,
OLECLOSE_NOSAVE
);
ok_ole_success
(
hr
,
"IOleObject_Close"
);
/* FIXME: test IOleObject_EnumAdvise */
hr
=
IOleObject_EnumVerbs
(
pObject
,
&
pEnumVerbs
);
ok
(
hr
==
REGDB_E_CLASSNOTREG
,
"IOleObject_EnumVerbs should have returned REGDB_E_CLASSNOTREG instead of 0x%08x
\n
"
,
hr
);
hr
=
IOleObject_GetClientSite
(
pObject
,
&
pClientSite
);
ok_ole_success
(
hr
,
"IOleObject_GetClientSite"
);
hr
=
IOleObject_GetClipboardData
(
pObject
,
0
,
&
pDataObject
);
ok
(
hr
==
OLE_E_NOTRUNNING
,
"IOleObject_GetClipboardData should have returned OLE_E_NOTRUNNING instead of 0x%08x
\n
"
,
hr
);
hr
=
IOleObject_GetExtent
(
pObject
,
DVASPECT_CONTENT
,
&
sizel
);
ok
(
hr
==
OLE_E_BLANK
,
"IOleObject_GetExtent should have returned OLE_E_BLANK instead of 0x%08x
\n
"
,
hr
);
hr
=
IOleObject_GetMiscStatus
(
pObject
,
DVASPECT_CONTENT
,
&
dwStatus
);
todo_wine
ok
(
hr
==
REGDB_E_CLASSNOTREG
,
"IOleObject_GetMiscStatus should have returned REGDB_E_CLASSNOTREG instead of 0x%08x
\n
"
,
hr
);
hr
=
IOleObject_GetUserClassID
(
pObject
,
&
clsid
);
ok_ole_success
(
hr
,
"IOleObject_GetUserClassID"
);
ok
(
IsEqualCLSID
(
&
clsid
,
&
CLSID_WineTest
),
"clsid != CLSID_WineTest
\n
"
);
hr
=
IOleObject_GetUserType
(
pObject
,
USERCLASSTYPE_FULL
,
&
pszUserType
);
todo_wine
{
ok_ole_success
(
hr
,
"IOleObject_GetUserType"
);
ok
(
!
lstrcmpW
(
pszUserType
,
wszUnknown
),
"Retrieved user type was wrong
\n
"
);
}
hr
=
IOleObject_InitFromData
(
pObject
,
NULL
,
TRUE
,
0
);
ok
(
hr
==
OLE_E_NOTRUNNING
,
"IOleObject_InitFromData should have returned OLE_E_NOTRUNNING instead of 0x%08x
\n
"
,
hr
);
hr
=
IOleObject_IsUpToDate
(
pObject
);
ok
(
hr
==
OLE_E_NOTRUNNING
,
"IOleObject_IsUpToDate should have returned OLE_E_NOTRUNNING instead of 0x%08x
\n
"
,
hr
);
palette
.
palNumEntries
=
1
;
palette
.
palVersion
=
2
;
memset
(
&
palette
.
palPalEntry
[
0
],
0
,
sizeof
(
palette
.
palPalEntry
[
0
]));
hr
=
IOleObject_SetColorScheme
(
pObject
,
&
palette
);
ok
(
hr
==
OLE_E_NOTRUNNING
,
"IOleObject_SetColorScheme should have returned OLE_E_NOTRUNNING instead of 0x%08x
\n
"
,
hr
);
sizel
.
cx
=
sizel
.
cy
=
0
;
hr
=
IOleObject_SetExtent
(
pObject
,
DVASPECT_CONTENT
,
&
sizel
);
hr
=
IOleObject_SetHostNames
(
pObject
,
wszHostName
,
NULL
);
ok_ole_success
(
hr
,
"IOleObject_SetHostNames"
);
hr
=
CreateItemMoniker
(
wszDelim
,
wszHostName
,
&
pMoniker
);
ok_ole_success
(
hr
,
"CreateItemMoniker"
);
hr
=
IOleObject_SetMoniker
(
pObject
,
OLEWHICHMK_CONTAINER
,
pMoniker
);
ok_ole_success
(
hr
,
"IOleObject_SetMoniker"
);
hr
=
IOleObject_GetMoniker
(
pObject
,
OLEGETMONIKER_ONLYIFTHERE
,
OLEWHICHMK_CONTAINER
,
&
pMoniker
);
ok
(
hr
==
E_FAIL
,
"IOleObject_GetMoniker should have returned E_FAIL instead of 0x%08x
\n
"
,
hr
);
hr
=
IOleObject_Update
(
pObject
);
todo_wine
ok
(
hr
==
REGDB_E_CLASSNOTREG
,
"IOleObject_Update should have returned REGDB_E_CLASSNOTREG instead of 0x%08x
\n
"
,
hr
);
hr
=
IOleObject_QueryInterface
(
pObject
,
&
IID_IDataObject
,
(
void
**
)
&
pDataObject
);
ok_ole_success
(
hr
,
"IOleObject_QueryInterface"
);
fmtetc
.
cfFormat
=
CF_TEXT
;
fmtetc
.
ptd
=
NULL
;
fmtetc
.
dwAspect
=
DVASPECT_CONTENT
;
fmtetc
.
lindex
=
-
1
;
fmtetc
.
tymed
=
TYMED_NULL
;
hr
=
IDataObject_DAdvise
(
pDataObject
,
&
fmtetc
,
0
,
&
AdviseSink
,
&
dwAdvConn
);
ok_ole_success
(
hr
,
"IDataObject_DAdvise"
);
fmtetc
.
cfFormat
=
CF_ENHMETAFILE
;
fmtetc
.
ptd
=
NULL
;
fmtetc
.
dwAspect
=
DVASPECT_CONTENT
;
fmtetc
.
lindex
=
-
1
;
fmtetc
.
tymed
=
TYMED_ENHMF
;
hr
=
IDataObject_DAdvise
(
pDataObject
,
&
fmtetc
,
0
,
&
AdviseSink
,
&
dwAdvConn
);
ok_ole_success
(
hr
,
"IDataObject_DAdvise"
);
fmtetc
.
cfFormat
=
CF_ENHMETAFILE
;
fmtetc
.
ptd
=
NULL
;
fmtetc
.
dwAspect
=
DVASPECT_CONTENT
;
fmtetc
.
lindex
=
-
1
;
fmtetc
.
tymed
=
TYMED_ENHMF
;
hr
=
IDataObject_QueryGetData
(
pDataObject
,
&
fmtetc
);
todo_wine
ok
(
hr
==
OLE_E_NOTRUNNING
,
"IDataObject_QueryGetData should have returned OLE_E_NOTRUNNING instead of 0x%08x
\n
"
,
hr
);
fmtetc
.
cfFormat
=
CF_TEXT
;
fmtetc
.
ptd
=
NULL
;
fmtetc
.
dwAspect
=
DVASPECT_CONTENT
;
fmtetc
.
lindex
=
-
1
;
fmtetc
.
tymed
=
TYMED_NULL
;
hr
=
IDataObject_QueryGetData
(
pDataObject
,
&
fmtetc
);
todo_wine
ok
(
hr
==
OLE_E_NOTRUNNING
,
"IDataObject_QueryGetData should have returned OLE_E_NOTRUNNING instead of 0x%08x
\n
"
,
hr
);
hr
=
IOleObject_QueryInterface
(
pObject
,
&
IID_IRunnableObject
,
(
void
**
)
&
pRunnableObject
);
ok_ole_success
(
hr
,
"IOleObject_QueryInterface"
);
hr
=
IRunnableObject_SetContainedObject
(
pRunnableObject
,
TRUE
);
ok_ole_success
(
hr
,
"IRunnableObject_SetContainedObject"
);
hr
=
IRunnableObject_Run
(
pRunnableObject
,
NULL
);
ok
(
hr
==
REGDB_E_CLASSNOTREG
,
"IOleObject_Run should have returned REGDB_E_CLASSNOTREG instead of 0x%08x
\n
"
,
hr
);
hr
=
IOleObject_Close
(
pObject
,
OLECLOSE_NOSAVE
);
ok_ole_success
(
hr
,
"IOleObject_Close"
);
IRunnableObject_Release
(
pRunnableObject
);
IOleObject_Release
(
pObject
);
}
START_TEST
(
ole2
)
{
DWORD
dwRegister
;
...
...
@@ -1323,6 +1482,7 @@ START_TEST(ole2)
ok_ole_success
(
hr
,
"CoRevokeClassObject"
);
test_data_cache
();
test_default_handler
();
CoUninitialize
();
}
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