[PATCH 37/54] dplayx: Merge the IDirectPlay4_EnumGroupsInGroup helper.
Michael Stefaniuc
mstefani at redhat.de
Fri Mar 29 11:01:34 CDT 2013
---
dlls/dplayx/dplay.c | 104 +++++++++++++++++-----------------------------------
1 file changed, 33 insertions(+), 71 deletions(-)
diff --git a/dlls/dplayx/dplay.c b/dlls/dplayx/dplay.c
index 8345833..6547b3c 100644
--- a/dlls/dplayx/dplay.c
+++ b/dlls/dplayx/dplay.c
@@ -133,10 +133,6 @@ static HRESULT DP_SP_SendEx
static HRESULT DP_IF_CancelMessage
( IDirectPlay4Impl* This, DWORD dwMsgID, DWORD dwFlags,
DWORD dwMinPriority, DWORD dwMaxPriority, BOOL bAnsi );
-static HRESULT DP_IF_EnumGroupsInGroup
- ( IDirectPlay3AImpl* This, DPID idGroup, LPGUID lpguidInstance,
- LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2,
- LPVOID lpContext, DWORD dwFlags, BOOL bAnsi );
static HRESULT DP_IF_GetGroupParent
( IDirectPlay3AImpl* This, DPID idGroup, LPDPID lpidGroup,
BOOL bAnsi );
@@ -1533,8 +1529,8 @@ static HRESULT DP_IF_DestroyGroup
&context, 0 );
/* Remove all links to groups that this group has since this is dp3 */
- DP_IF_EnumGroupsInGroup( (IDirectPlay3Impl*)This, idGroup, NULL,
- cbRemoveGroupOrPlayer, (LPVOID)&context, 0, bAnsi );
+ IDirectPlayX_EnumGroupsInGroup( &This->IDirectPlay4_iface, idGroup, NULL, cbRemoveGroupOrPlayer,
+ (void*)&context, 0 );
/* Remove this group from the parent group - if it has one */
if( ( idGroup != DPID_SYSTEM_GROUP ) && ( lpGData->parent != DPID_SYSTEM_GROUP ) )
@@ -1650,11 +1646,8 @@ cbDeletePlayerFromAllGroups(
/* Enumerate all groups in this group since this will normally only
* be called for top level groups
*/
- DP_IF_EnumGroupsInGroup( (IDirectPlay3Impl*)lpCtxt->This,
- dpId, NULL,
- cbDeletePlayerFromAllGroups,
- lpContext, DPENUMGROUPS_ALL,
- lpCtxt->bAnsi );
+ IDirectPlayX_EnumGroupsInGroup( &lpCtxt->This->IDirectPlay4_iface, dpId, NULL,
+ cbDeletePlayerFromAllGroups, lpContext, DPENUMGROUPS_ALL);
}
else
@@ -3441,77 +3434,46 @@ static HRESULT WINAPI IDirectPlay4Impl_EnumConnections( IDirectPlay4 *iface,
return DP_OK;
}
-static HRESULT DP_IF_EnumGroupsInGroup
- ( IDirectPlay3AImpl* This, DPID idGroup, LPGUID lpguidInstance,
- LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2,
- LPVOID lpContext, DWORD dwFlags, BOOL bAnsi )
+static HRESULT WINAPI IDirectPlay4AImpl_EnumGroupsInGroup( IDirectPlay4A *iface, DPID group,
+ GUID *instance, LPDPENUMPLAYERSCALLBACK2 enumplayercb, void *context, DWORD flags )
{
- lpGroupList lpGList;
- lpGroupData lpGData;
+ IDirectPlayImpl *This = impl_from_IDirectPlay4A( iface );
+ return IDirectPlayX_EnumGroupsInGroup( &This->IDirectPlay4_iface, group, instance,
+ enumplayercb, context, flags );
+}
- FIXME( "(%p)->(0x%08x,%p,%p,%p,0x%08x,%u): semi stub\n",
- This, idGroup, lpguidInstance, lpEnumPlayersCallback2,
- lpContext, dwFlags, bAnsi );
+static HRESULT WINAPI IDirectPlay4Impl_EnumGroupsInGroup( IDirectPlay4 *iface, DPID group,
+ GUID *instance, LPDPENUMPLAYERSCALLBACK2 enumplayercb, void *context, DWORD flags )
+{
+ IDirectPlayImpl *This = impl_from_IDirectPlay4( iface );
+ lpGroupList glist;
+ lpGroupData gdata;
- if( This->dp2->connectionInitialized == NO_PROVIDER )
- {
- return DPERR_UNINITIALIZED;
- }
+ FIXME( "(%p)->(0x%08x,%p,%p,%p,0x%08x): semi stub\n", This, group, instance, enumplayercb,
+ context, flags );
- if( ( lpGData = DP_FindAnyGroup( (IDirectPlay2AImpl*)This, idGroup ) ) == NULL )
- {
- return DPERR_INVALIDGROUP;
- }
+ if ( This->dp2->connectionInitialized == NO_PROVIDER )
+ return DPERR_UNINITIALIZED;
- if( DPQ_IS_EMPTY( lpGData->groups ) )
- {
- return DP_OK;
- }
+ if ( ( gdata = DP_FindAnyGroup(This, group ) ) == NULL )
+ return DPERR_INVALIDGROUP;
- lpGList = DPQ_FIRST( lpGData->groups );
+ if ( DPQ_IS_EMPTY( gdata->groups ) )
+ return DP_OK;
- for( ;; )
- {
- /* FIXME: Should check dwFlags for match here */
- if( !(*lpEnumPlayersCallback2)( lpGList->lpGData->dpid, DPPLAYERTYPE_GROUP,
- &lpGList->lpGData->name, dwFlags,
- lpContext ) )
+ for( glist = DPQ_FIRST( gdata->groups ); ; glist = DPQ_NEXT( glist->groups ) )
{
- return DP_OK; /* User requested break */
- }
+ /* FIXME: Should check flags for match here */
+ if ( !(*enumplayercb)( glist->lpGData->dpid, DPPLAYERTYPE_GROUP, &glist->lpGData->name,
+ flags, context ) )
+ return DP_OK; /* User requested break */
- if( DPQ_IS_ENDOFLIST( lpGList->groups ) )
- {
- break;
+ if ( DPQ_IS_ENDOFLIST( glist->groups ) )
+ break;
}
- lpGList = DPQ_NEXT( lpGList->groups );
-
- }
-
- return DP_OK;
-}
-
-static HRESULT WINAPI IDirectPlay4AImpl_EnumGroupsInGroup( IDirectPlay4A *iface, DPID idGroup,
- GUID *lpguidInstance, LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2, void *lpContext,
- DWORD dwFlags )
-{
- IDirectPlayImpl *This = impl_from_IDirectPlay4A( iface );
- return DP_IF_EnumGroupsInGroup( This, idGroup, lpguidInstance,
- lpEnumPlayersCallback2, lpContext, dwFlags,
- TRUE );
-}
-
-static HRESULT WINAPI DirectPlay3WImpl_EnumGroupsInGroup
- ( LPDIRECTPLAY3A iface, DPID idGroup, LPGUID lpguidInstance,
- LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2, LPVOID lpContext,
- DWORD dwFlags )
-{
- IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
- return DP_IF_EnumGroupsInGroup( This, idGroup, lpguidInstance,
- lpEnumPlayersCallback2, lpContext, dwFlags,
- FALSE );
+ return DP_OK;
}
static HRESULT WINAPI IDirectPlay4AImpl_GetGroupConnectionSettings( IDirectPlay4A *iface,
@@ -4401,7 +4363,7 @@ static const IDirectPlay4Vtbl dp4_vt =
XCAST(CreateGroupInGroup)DirectPlay3WImpl_CreateGroupInGroup,
IDirectPlay4Impl_DeleteGroupFromGroup,
IDirectPlay4Impl_EnumConnections,
- XCAST(EnumGroupsInGroup)DirectPlay3WImpl_EnumGroupsInGroup,
+ IDirectPlay4Impl_EnumGroupsInGroup,
IDirectPlay4Impl_GetGroupConnectionSettings,
XCAST(InitializeConnection)DirectPlay3WImpl_InitializeConnection,
XCAST(SecureOpen)DirectPlay3WImpl_SecureOpen,
--
1.7.11.7
More information about the wine-patches
mailing list