Yay, Dplay work! A few suggestions though:
From patch 1:
+static HRESULT WINAPI DPWSCB_GetCaps( LPDPSP_GETCAPSDATA data ) +{
- TRACE( "(%d,%p,0x%08x,%p)\n",
data->idPlayer, data->lpCaps, data->dwFlags, data->lpISP );
- return DP_OK;
+}
Is there any reason this one writes a TRACE instread of a FIXME? I noticed that patch 3 implements it, perhaps you missed this when separating the patches?
+static HRESULT WINAPI DPWSCB_Open( LPDPSP_OPENDATA data ) +{
- FIXME( "(%u,%p,%p,%u,0x%08x,0x%08x) stub\n",
data->bCreate, data->lpSPMessageHeader, data->lpISP,
data->bReturnStatus, data->dwOpenFlags, data->dwSessionFlags );
- return DP_OK;
+}
Why does it return DP_OK while most other stubs return an error?
Patch 2:
- /* Initialize internal data */
- ZeroMemory( &dpwsData, sizeof(DPWS_DATA) );
I think memset(&dpwsData, 0, sizeof(DPWS_DATA)) is preferred over ZeroMemory.
Patch 3: Where do the values like dwMaxLocalPlayers = 65536 come from? Since most functions are still stubs its hard to see where it comes from? Does native dpwsockx have the same limits? (If it does, that's a solid reason for using the same limits)