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
99c726dd
Commit
99c726dd
authored
Mar 29, 2013
by
Michael Stefaniuc
Committed by
Alexandre Julliard
Mar 29, 2013
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dplayx: Fix DllGetClassObject().
parent
a9c715fd
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
25 deletions
+15
-25
dpclassfactory.c
dlls/dplayx/dpclassfactory.c
+15
-25
No files found.
dlls/dplayx/dpclassfactory.c
View file @
99c726dd
...
...
@@ -36,13 +36,10 @@
WINE_DEFAULT_DEBUG_CHANNEL
(
dplay
);
/*******************************************************************************
* DirectPlayLobby ClassFactory
*/
typedef
struct
{
IClassFactory
IClassFactory_iface
;
HRESULT
(
*
createinstance
)(
REFIID
riid
,
void
**
ppv
);
}
IClassFactoryImpl
;
static
inline
IClassFactoryImpl
*
impl_from_IClassFactory
(
IClassFactory
*
iface
)
...
...
@@ -78,22 +75,16 @@ static ULONG WINAPI IClassFactoryImpl_Release(IClassFactory *iface)
}
static
HRESULT
WINAPI
IClassFactoryImpl_CreateInstance
(
IClassFactory
*
iface
,
IUnknown
*
pOuter
,
REFIID
riid
,
void
**
pp
obj
)
REFIID
riid
,
void
**
pp
v
)
{
IClassFactoryImpl
*
This
=
impl_from_IClassFactory
(
iface
);
IClassFactoryImpl
*
This
=
impl_from_IClassFactory
(
iface
);
TRACE
(
"(%p)->(%p,%s,%p)
\n
"
,
This
,
pOuter
,
debugstr_guid
(
riid
),
ppobj
);
TRACE
(
"(%p)->(%p,%s,%p)
\n
"
,
iface
,
pOuter
,
debugstr_guid
(
riid
),
ppv
);
if
(
DPL_CreateInterface
(
riid
,
ppobj
)
==
S_OK
)
{
return
S_OK
;
}
else
if
(
DP_CreateInterface
(
riid
,
ppobj
)
==
S_OK
)
{
return
S_OK
;
}
if
(
pOuter
)
return
CLASS_E_NOAGGREGATION
;
return
E_NOINTERFACE
;
return
This
->
createinstance
(
riid
,
ppv
)
;
}
static
HRESULT
WINAPI
IClassFactoryImpl_LockServer
(
IClassFactory
*
iface
,
BOOL
dolock
)
...
...
@@ -102,7 +93,7 @@ static HRESULT WINAPI IClassFactoryImpl_LockServer(IClassFactory *iface, BOOL do
return
S_OK
;
}
static
const
IClassFactoryVtbl
DP_and_DPL_Vtbl
=
{
static
const
IClassFactoryVtbl
cf_vt
=
{
IClassFactoryImpl_QueryInterface
,
IClassFactoryImpl_AddRef
,
IClassFactoryImpl_Release
,
...
...
@@ -110,7 +101,8 @@ static const IClassFactoryVtbl DP_and_DPL_Vtbl = {
IClassFactoryImpl_LockServer
};
static
IClassFactoryImpl
DP_and_DPL_CF
=
{{
&
DP_and_DPL_Vtbl
}};
static
IClassFactoryImpl
dplay_cf
=
{{
&
cf_vt
},
DP_CreateInterface
};
static
IClassFactoryImpl
dplaylobby_cf
=
{{
&
cf_vt
},
DPL_CreateInterface
};
/*******************************************************************************
...
...
@@ -134,14 +126,12 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
{
TRACE
(
"(%s,%s,%p)
\n
"
,
debugstr_guid
(
rclsid
),
debugstr_guid
(
riid
),
ppv
);
if
(
IsEqualCLSID
(
riid
,
&
IID_IClassFactory
)
)
{
*
ppv
=
&
DP_and_DPL_CF
;
IClassFactory_AddRef
(
(
IClassFactory
*
)
*
ppv
);
if
(
IsEqualCLSID
(
&
CLSID_DirectPlay
,
rclsid
))
return
IClassFactory_QueryInterface
(
&
dplay_cf
.
IClassFactory_iface
,
riid
,
ppv
);
return
S_OK
;
}
if
(
IsEqualCLSID
(
&
CLSID_DirectPlayLobby
,
rclsid
))
return
IClassFactory_QueryInterface
(
&
dplaylobby_cf
.
IClassFactory_iface
,
riid
,
ppv
);
ERR
(
"(%s,%s,%p): no interface
found.
\n
"
,
debugstr_guid
(
rclsid
),
debugstr_guid
(
riid
),
ppv
);
FIXME
(
"(%s,%s,%p): no class
found.
\n
"
,
debugstr_guid
(
rclsid
),
debugstr_guid
(
riid
),
ppv
);
return
CLASS_E_CLASSNOTAVAILABLE
;
}
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