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
91ecb05f
Commit
91ecb05f
authored
Dec 23, 2010
by
Michael Stefaniuc
Committed by
Alexandre Julliard
Dec 23, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ole32: Standardize the COM usage in defaulthandler.c.
parent
feba7c37
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
45 additions
and
42 deletions
+45
-42
defaulthandler.c
dlls/ole32/defaulthandler.c
+45
-42
No files found.
dlls/ole32/defaulthandler.c
View file @
91ecb05f
...
...
@@ -83,12 +83,12 @@ enum object_state
*/
struct
DefaultHandler
{
const
IOleObjectVtbl
*
lpVtbl
;
const
IUnknownVtbl
*
lpvtblIUnknown
;
const
IDataObjectVtbl
*
lpvtblIDataObject
;
const
IRunnableObjectVtbl
*
lpvtblIRunnableObject
;
const
IAdviseSinkVtbl
*
lpvtblIAdviseSink
;
const
IPersistStorageVtbl
*
lpvtblIPersistStorag
e
;
IOleObject
IOleObject_iface
;
IUnknown
IUnknown_iface
;
IDataObject
IDataObject_iface
;
IRunnableObject
IRunnableObject_iface
;
IAdviseSink
IAdviseSink_iface
;
IPersistStorage
IPersistStorage_ifac
e
;
/* Reference count of this object */
LONG
ref
;
...
...
@@ -148,39 +148,39 @@ typedef struct DefaultHandler DefaultHandler;
static
inline
DefaultHandler
*
impl_from_IOleObject
(
IOleObject
*
iface
)
{
return
(
DefaultHandler
*
)((
char
*
)
iface
-
FIELD_OFFSET
(
DefaultHandler
,
lpVtbl
)
);
return
CONTAINING_RECORD
(
iface
,
DefaultHandler
,
IOleObject_iface
);
}
static
inline
DefaultHandler
*
impl_from_
ND
IUnknown
(
IUnknown
*
iface
)
static
inline
DefaultHandler
*
impl_from_IUnknown
(
IUnknown
*
iface
)
{
return
(
DefaultHandler
*
)((
char
*
)
iface
-
FIELD_OFFSET
(
DefaultHandler
,
lpvtblIUnknown
)
);
return
CONTAINING_RECORD
(
iface
,
DefaultHandler
,
IUnknown_iface
);
}
static
inline
DefaultHandler
*
impl_from_IDataObject
(
IDataObject
*
iface
)
{
return
(
DefaultHandler
*
)((
char
*
)
iface
-
FIELD_OFFSET
(
DefaultHandler
,
lpvtblIDataObject
)
);
return
CONTAINING_RECORD
(
iface
,
DefaultHandler
,
IDataObject_iface
);
}
static
inline
DefaultHandler
*
impl_from_IRunnableObject
(
IRunnableObject
*
iface
)
{
return
(
DefaultHandler
*
)((
char
*
)
iface
-
FIELD_OFFSET
(
DefaultHandler
,
lpvtblIRunnableObject
)
);
return
CONTAINING_RECORD
(
iface
,
DefaultHandler
,
IRunnableObject_iface
);
}
static
inline
DefaultHandler
*
impl_from_IAdviseSink
(
IAdviseSink
*
iface
)
{
return
(
DefaultHandler
*
)((
char
*
)
iface
-
FIELD_OFFSET
(
DefaultHandler
,
lpvtblIAdviseSink
)
);
return
CONTAINING_RECORD
(
iface
,
DefaultHandler
,
IAdviseSink_iface
);
}
static
inline
DefaultHandler
*
impl_from_IPersistStorage
(
IPersistStorage
*
iface
)
{
return
(
DefaultHandler
*
)((
char
*
)
iface
-
FIELD_OFFSET
(
DefaultHandler
,
lpvtblIPersistStorage
)
);
return
CONTAINING_RECORD
(
iface
,
DefaultHandler
,
IPersistStorage_iface
);
}
static
void
DefaultHandler_Destroy
(
DefaultHandler
*
This
);
static
inline
BOOL
object_is_running
(
DefaultHandler
*
This
)
{
return
IRunnableObject_IsRunning
(
(
IRunnableObject
*
)
&
This
->
lpvtblIRunnableObject
);
return
IRunnableObject_IsRunning
(
&
This
->
IRunnableObject_iface
);
}
/*********************************************************
...
...
@@ -201,7 +201,7 @@ static HRESULT WINAPI DefaultHandler_NDIUnknown_QueryInterface(
REFIID
riid
,
void
**
ppvObject
)
{
DefaultHandler
*
This
=
impl_from_
ND
IUnknown
(
iface
);
DefaultHandler
*
This
=
impl_from_IUnknown
(
iface
);
if
(
!
ppvObject
)
return
E_INVALIDARG
;
...
...
@@ -211,14 +211,14 @@ static HRESULT WINAPI DefaultHandler_NDIUnknown_QueryInterface(
if
(
IsEqualIID
(
&
IID_IUnknown
,
riid
))
*
ppvObject
=
iface
;
else
if
(
IsEqualIID
(
&
IID_IOleObject
,
riid
))
*
ppvObject
=
&
This
->
lpVtbl
;
*
ppvObject
=
&
This
->
IOleObject_iface
;
else
if
(
IsEqualIID
(
&
IID_IDataObject
,
riid
))
*
ppvObject
=
&
This
->
lpvtblIDataObject
;
*
ppvObject
=
&
This
->
IDataObject_iface
;
else
if
(
IsEqualIID
(
&
IID_IRunnableObject
,
riid
))
*
ppvObject
=
&
This
->
lpvtblIRunnableObject
;
*
ppvObject
=
&
This
->
IRunnableObject_iface
;
else
if
(
IsEqualIID
(
&
IID_IPersist
,
riid
)
||
IsEqualIID
(
&
IID_IPersistStorage
,
riid
))
*
ppvObject
=
&
This
->
lpvtblIPersistStorag
e
;
*
ppvObject
=
&
This
->
IPersistStorage_ifac
e
;
else
if
(
IsEqualIID
(
&
IID_IViewObject
,
riid
)
||
IsEqualIID
(
&
IID_IViewObject2
,
riid
)
||
IsEqualIID
(
&
IID_IOleCache
,
riid
)
||
...
...
@@ -260,7 +260,7 @@ static HRESULT WINAPI DefaultHandler_NDIUnknown_QueryInterface(
static
ULONG
WINAPI
DefaultHandler_NDIUnknown_AddRef
(
IUnknown
*
iface
)
{
DefaultHandler
*
This
=
impl_from_
ND
IUnknown
(
iface
);
DefaultHandler
*
This
=
impl_from_IUnknown
(
iface
);
return
InterlockedIncrement
(
&
This
->
ref
);
}
...
...
@@ -275,7 +275,7 @@ static ULONG WINAPI DefaultHandler_NDIUnknown_AddRef(
static
ULONG
WINAPI
DefaultHandler_NDIUnknown_Release
(
IUnknown
*
iface
)
{
DefaultHandler
*
This
=
impl_from_
ND
IUnknown
(
iface
);
DefaultHandler
*
This
=
impl_from_IUnknown
(
iface
);
ULONG
ref
;
ref
=
InterlockedDecrement
(
&
This
->
ref
);
...
...
@@ -617,7 +617,7 @@ static HRESULT WINAPI DefaultHandler_DoVerb(
LPCRECT
lprcPosRect
)
{
DefaultHandler
*
This
=
impl_from_IOleObject
(
iface
);
IRunnableObject
*
pRunnableObj
=
(
IRunnableObject
*
)
&
This
->
lpvtblIRunnableObject
;
IRunnableObject
*
pRunnableObj
=
&
This
->
IRunnableObject_iface
;
HRESULT
hr
;
TRACE
(
"(%d, %p, %p, %d, %p, %s)
\n
"
,
iVerb
,
lpmsg
,
pActiveSite
,
lindex
,
hwndParent
,
wine_dbgstr_rect
(
lprcPosRect
));
...
...
@@ -1328,9 +1328,7 @@ static HRESULT WINAPI DefaultHandler_Run(
This
->
object_state
=
object_state_running
;
hr
=
IOleObject_Advise
(
This
->
pOleDelegate
,
(
IAdviseSink
*
)
&
This
->
lpvtblIAdviseSink
,
&
This
->
dwAdvConn
);
hr
=
IOleObject_Advise
(
This
->
pOleDelegate
,
&
This
->
IAdviseSink_iface
,
&
This
->
dwAdvConn
);
if
(
SUCCEEDED
(
hr
)
&&
This
->
clientSite
)
hr
=
IOleObject_SetClientSite
(
This
->
pOleDelegate
,
This
->
clientSite
);
...
...
@@ -1440,7 +1438,7 @@ static ULONG WINAPI DefaultHandler_IAdviseSink_AddRef(
{
DefaultHandler
*
This
=
impl_from_IAdviseSink
(
iface
);
return
IUnknown_AddRef
(
(
IUnknown
*
)
&
This
->
lpvtblIUnknown
);
return
IUnknown_AddRef
(
&
This
->
IUnknown_iface
);
}
static
ULONG
WINAPI
DefaultHandler_IAdviseSink_Release
(
...
...
@@ -1448,7 +1446,7 @@ static ULONG WINAPI DefaultHandler_IAdviseSink_Release(
{
DefaultHandler
*
This
=
impl_from_IAdviseSink
(
iface
);
return
IUnknown_Release
(
(
IUnknown
*
)
&
This
->
lpvtblIUnknown
);
return
IUnknown_Release
(
&
This
->
IUnknown_iface
);
}
static
void
WINAPI
DefaultHandler_IAdviseSink_OnDataChange
(
...
...
@@ -1919,12 +1917,12 @@ static DefaultHandler* DefaultHandler_Construct(
if
(
!
This
)
return
This
;
This
->
lpVtbl
=
&
DefaultHandler_IOleObject_VTable
;
This
->
lpvtblIUnknown
=
&
DefaultHandler_NDIUnknown_VTable
;
This
->
lpvtblIDataObject
=
&
DefaultHandler_IDataObject_VTable
;
This
->
lpvtblIRunnableObject
=
&
DefaultHandler_IRunnableObject_VTable
;
This
->
lpvtblIAdviseSink
=
&
DefaultHandler_IAdviseSink_VTable
;
This
->
lpvtblIPersistStorage
=
&
DefaultHandler_IPersistStorage_VTable
;
This
->
IOleObject_iface
.
lpVtbl
=
&
DefaultHandler_IOleObject_VTable
;
This
->
IUnknown_iface
.
lpVtbl
=
&
DefaultHandler_NDIUnknown_VTable
;
This
->
IDataObject_iface
.
lpVtbl
=
&
DefaultHandler_IDataObject_VTable
;
This
->
IRunnableObject_iface
.
lpVtbl
=
&
DefaultHandler_IRunnableObject_VTable
;
This
->
IAdviseSink_iface
.
lpVtbl
=
&
DefaultHandler_IAdviseSink_VTable
;
This
->
IPersistStorage_iface
.
lpVtbl
=
&
DefaultHandler_IPersistStorage_VTable
;
This
->
inproc_server
=
(
flags
&
EMBDHLP_INPROC_SERVER
)
?
TRUE
:
FALSE
;
...
...
@@ -1941,7 +1939,7 @@ static DefaultHandler* DefaultHandler_Construct(
* lifetime.
*/
if
(
!
pUnkOuter
)
pUnkOuter
=
(
IUnknown
*
)
&
This
->
lpvtblIUnknown
;
pUnkOuter
=
&
This
->
IUnknown_iface
;
This
->
outerUnknown
=
pUnkOuter
;
...
...
@@ -2117,13 +2115,13 @@ HRESULT WINAPI OleCreateEmbeddingHelper(
/*
* Make sure it supports the interface required by the caller.
*/
hr
=
IUnknown_QueryInterface
(
(
IUnknown
*
)
&
newHandler
->
lpvtblIUnknown
,
riid
,
ppvObj
);
hr
=
IUnknown_QueryInterface
(
&
newHandler
->
IUnknown_iface
,
riid
,
ppvObj
);
/*
* Release the reference obtained in the constructor. If
* the QueryInterface was unsuccessful, it will free the class.
*/
IUnknown_Release
(
(
IUnknown
*
)
&
newHandler
->
lpvtblIUnknown
);
IUnknown_Release
(
&
newHandler
->
IUnknown_iface
);
return
hr
;
}
...
...
@@ -2142,11 +2140,16 @@ HRESULT WINAPI OleCreateDefaultHandler(REFCLSID clsid, LPUNKNOWN pUnkOuter,
typedef
struct
HandlerCF
{
const
IClassFactoryVtbl
*
lpVtbl
;
IClassFactory
IClassFactory_iface
;
LONG
refs
;
CLSID
clsid
;
}
HandlerCF
;
static
inline
HandlerCF
*
impl_from_IClassFactory
(
IClassFactory
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
HandlerCF
,
IClassFactory_iface
);
}
static
HRESULT
WINAPI
HandlerCF_QueryInterface
(
LPCLASSFACTORY
iface
,
REFIID
riid
,
LPVOID
*
ppv
)
{
...
...
@@ -2163,13 +2166,13 @@ HandlerCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid, LPVOID *ppv)
static
ULONG
WINAPI
HandlerCF_AddRef
(
LPCLASSFACTORY
iface
)
{
HandlerCF
*
This
=
(
HandlerCF
*
)
iface
;
HandlerCF
*
This
=
impl_from_IClassFactory
(
iface
)
;
return
InterlockedIncrement
(
&
This
->
refs
);
}
static
ULONG
WINAPI
HandlerCF_Release
(
LPCLASSFACTORY
iface
)
{
HandlerCF
*
This
=
(
HandlerCF
*
)
iface
;
HandlerCF
*
This
=
impl_from_IClassFactory
(
iface
)
;
ULONG
refs
=
InterlockedDecrement
(
&
This
->
refs
);
if
(
!
refs
)
HeapFree
(
GetProcessHeap
(),
0
,
This
);
...
...
@@ -2180,7 +2183,7 @@ static HRESULT WINAPI
HandlerCF_CreateInstance
(
LPCLASSFACTORY
iface
,
LPUNKNOWN
pUnk
,
REFIID
riid
,
LPVOID
*
ppv
)
{
HandlerCF
*
This
=
(
HandlerCF
*
)
iface
;
HandlerCF
*
This
=
impl_from_IClassFactory
(
iface
)
;
return
OleCreateDefaultHandler
(
&
This
->
clsid
,
pUnk
,
riid
,
ppv
);
}
...
...
@@ -2203,11 +2206,11 @@ HRESULT HandlerCF_Create(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
HRESULT
hr
;
HandlerCF
*
This
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
*
This
));
if
(
!
This
)
return
E_OUTOFMEMORY
;
This
->
lpVtbl
=
&
HandlerClassFactoryVtbl
;
This
->
IClassFactory_iface
.
lpVtbl
=
&
HandlerClassFactoryVtbl
;
This
->
refs
=
0
;
This
->
clsid
=
*
rclsid
;
hr
=
IUnknown_QueryInterface
((
IUnknown
*
)
&
This
->
lpVtbl
,
riid
,
ppv
);
hr
=
IUnknown_QueryInterface
((
IUnknown
*
)
&
This
->
IClassFactory_iface
,
riid
,
ppv
);
if
(
FAILED
(
hr
))
HeapFree
(
GetProcessHeap
(),
0
,
This
);
...
...
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