Ismael Barros : dpwsockx: Stub implementation.
Alexandre Julliard
julliard at winehq.org
Wed Sep 2 09:30:42 CDT 2009
Module: wine
Branch: master
Commit: 17afb0ddd43979b8df71bf70ac5cb8ea20ae011a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=17afb0ddd43979b8df71bf70ac5cb8ea20ae011a
Author: Ismael Barros <razielmine at gmail.com>
Date: Tue Sep 1 01:50:46 2009 +0200
dpwsockx: Stub implementation.
---
dlls/dpwsockx/Makefile.in | 2 +-
dlls/dpwsockx/dpwsockx_main.c | 164 ++++++++++++++++++++++++++++++++++++++++-
2 files changed, 162 insertions(+), 4 deletions(-)
diff --git a/dlls/dpwsockx/Makefile.in b/dlls/dpwsockx/Makefile.in
index cebac28..c2c5f8c 100644
--- a/dlls/dpwsockx/Makefile.in
+++ b/dlls/dpwsockx/Makefile.in
@@ -3,7 +3,7 @@ TOPOBJDIR = ../..
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = dpwsockx.dll
-IMPORTS = kernel32
+IMPORTS = dxguid kernel32
C_SRCS = \
dpwsockx_main.c
diff --git a/dlls/dpwsockx/dpwsockx_main.c b/dlls/dpwsockx/dpwsockx_main.c
index 271915a..e8fe902 100644
--- a/dlls/dpwsockx/dpwsockx_main.c
+++ b/dlls/dpwsockx/dpwsockx_main.c
@@ -28,9 +28,9 @@
#include "dplay.h"
#include "wine/dplaysp.h"
-
WINE_DEFAULT_DEBUG_CHANNEL(dplay);
+
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
TRACE("(0x%p, %d, %p)\n", hinstDLL, fdwReason, lpvReserved);
@@ -53,11 +53,169 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
}
+static HRESULT WINAPI DPWSCB_EnumSessions( LPDPSP_ENUMSESSIONSDATA data )
+{
+ FIXME( "(%p,%d,%p,%u) stub\n",
+ data->lpMessage, data->dwMessageSize,
+ data->lpISP, data->bReturnStatus );
+ return DPERR_UNSUPPORTED;
+}
+
+static HRESULT WINAPI DPWSCB_Reply( LPDPSP_REPLYDATA data )
+{
+ FIXME( "(%p,%p,%d,%d,%p) stub\n",
+ data->lpSPMessageHeader, data->lpMessage, data->dwMessageSize,
+ data->idNameServer, data->lpISP );
+ return DPERR_UNSUPPORTED;
+}
+
+static HRESULT WINAPI DPWSCB_Send( LPDPSP_SENDDATA data )
+{
+ FIXME( "(0x%08x,%d,%d,%p,%d,%u,%p) stub\n",
+ data->dwFlags, data->idPlayerTo, data->idPlayerFrom,
+ data->lpMessage, data->dwMessageSize,
+ data->bSystemMessage, data->lpISP );
+ return DPERR_UNSUPPORTED;
+}
+
+static HRESULT WINAPI DPWSCB_CreatePlayer( LPDPSP_CREATEPLAYERDATA data )
+{
+ FIXME( "(%d,0x%08x,%p,%p) stub\n",
+ data->idPlayer, data->dwFlags,
+ data->lpSPMessageHeader, data->lpISP );
+ return DPERR_UNSUPPORTED;
+}
+
+static HRESULT WINAPI DPWSCB_DeletePlayer( LPDPSP_DELETEPLAYERDATA data )
+{
+ FIXME( "(%d,0x%08x,%p) stub\n",
+ data->idPlayer, data->dwFlags, data->lpISP );
+ return DPERR_UNSUPPORTED;
+}
+
+static HRESULT WINAPI DPWSCB_GetAddress( LPDPSP_GETADDRESSDATA data )
+{
+ FIXME( "(%d,0x%08x,%p,%p,%p) stub\n",
+ data->idPlayer, data->dwFlags, data->lpAddress,
+ data->lpdwAddressSize, data->lpISP );
+ return DPERR_UNSUPPORTED;
+}
+
+static HRESULT WINAPI DPWSCB_GetCaps( LPDPSP_GETCAPSDATA data )
+{
+ FIXME( "(%d,%p,0x%08x,%p)\n",
+ data->idPlayer, data->lpCaps, data->dwFlags, data->lpISP );
+ return DPERR_UNSUPPORTED;
+}
+
+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 DPERR_UNSUPPORTED;
+}
+
+static HRESULT WINAPI DPWSCB_CloseEx( LPDPSP_CLOSEDATA data )
+{
+ FIXME( "(%p) stub\n", data->lpISP );
+ return DPERR_UNSUPPORTED;
+}
+
+static HRESULT WINAPI DPWSCB_ShutdownEx( LPDPSP_SHUTDOWNDATA data )
+{
+ FIXME( "(%p) stub\n", data->lpISP );
+ return DPERR_UNSUPPORTED;
+}
+
+static HRESULT WINAPI DPWSCB_GetAddressChoices( LPDPSP_GETADDRESSCHOICESDATA data )
+{
+ FIXME( "(%p,%p,%p) stub\n",
+ data->lpAddress, data->lpdwAddressSize, data->lpISP );
+ return DPERR_UNSUPPORTED;
+}
+
+static HRESULT WINAPI DPWSCB_SendEx( LPDPSP_SENDEXDATA data )
+{
+ FIXME( "(%p,0x%08x,%d,%d,%p,%d,%d,%d,%d,%p,%p,%u) stub\n",
+ data->lpISP, data->dwFlags, data->idPlayerTo, data->idPlayerFrom,
+ data->lpSendBuffers, data->cBuffers, data->dwMessageSize,
+ data->dwPriority, data->dwTimeout, data->lpDPContext,
+ data->lpdwSPMsgID, data->bSystemMessage );
+ return DPERR_UNSUPPORTED;
+}
+
+static HRESULT WINAPI DPWSCB_SendToGroupEx( LPDPSP_SENDTOGROUPEXDATA data )
+{
+ FIXME( "(%p,0x%08x,%d,%d,%p,%d,%d,%d,%d,%p,%p) stub\n",
+ data->lpISP, data->dwFlags, data->idGroupTo, data->idPlayerFrom,
+ data->lpSendBuffers, data->cBuffers, data->dwMessageSize,
+ data->dwPriority, data->dwTimeout, data->lpDPContext,
+ data->lpdwSPMsgID );
+ return DPERR_UNSUPPORTED;
+}
+
+static HRESULT WINAPI DPWSCB_Cancel( LPDPSP_CANCELDATA data )
+{
+ FIXME( "(%p,0x%08x,%p,%d,0x%08x,0x%08x) stub\n",
+ data->lpISP, data->dwFlags, data->lprglpvSPMsgID, data->cSPMsgID,
+ data->dwMinPriority, data->dwMaxPriority );
+ return DPERR_UNSUPPORTED;
+}
+
+static HRESULT WINAPI DPWSCB_GetMessageQueue( LPDPSP_GETMESSAGEQUEUEDATA data )
+{
+ FIXME( "(%p,0x%08x,%d,%d,%p,%p) stub\n",
+ data->lpISP, data->dwFlags, data->idFrom, data->idTo,
+ data->lpdwNumMsgs, data->lpdwNumBytes );
+ return DPERR_UNSUPPORTED;
+}
+
+static void setup_callbacks( LPDPSP_SPCALLBACKS lpCB )
+{
+ lpCB->EnumSessions = DPWSCB_EnumSessions;
+ lpCB->Reply = DPWSCB_Reply;
+ lpCB->Send = DPWSCB_Send;
+ lpCB->CreatePlayer = DPWSCB_CreatePlayer;
+ lpCB->DeletePlayer = DPWSCB_DeletePlayer;
+ lpCB->GetAddress = DPWSCB_GetAddress;
+ lpCB->GetCaps = DPWSCB_GetCaps;
+ lpCB->Open = DPWSCB_Open;
+ lpCB->CloseEx = DPWSCB_CloseEx;
+ lpCB->ShutdownEx = DPWSCB_ShutdownEx;
+ lpCB->GetAddressChoices = DPWSCB_GetAddressChoices;
+ lpCB->SendEx = DPWSCB_SendEx;
+ lpCB->SendToGroupEx = DPWSCB_SendToGroupEx;
+ lpCB->Cancel = DPWSCB_Cancel;
+ lpCB->GetMessageQueue = DPWSCB_GetMessageQueue;
+
+ lpCB->AddPlayerToGroup = NULL;
+ lpCB->Close = NULL;
+ lpCB->CreateGroup = NULL;
+ lpCB->DeleteGroup = NULL;
+ lpCB->RemovePlayerFromGroup = NULL;
+ lpCB->SendToGroup = NULL;
+ lpCB->Shutdown = NULL;
+}
+
+
+
/******************************************************************
* SPInit (DPWSOCKX.1)
*/
HRESULT WINAPI SPInit( LPSPINITDATA lpspData )
{
- /* TODO: Initialize callbacks and needed fields in lpspData */
- return DPERR_UNSUPPORTED;
+ TRACE( "Initializing library for %s (%s)\n",
+ wine_dbgstr_guid(lpspData->lpGuid), debugstr_w(lpspData->lpszName) );
+
+ /* We only support TCP/IP service */
+ if ( !IsEqualGUID(lpspData->lpGuid, &DPSPGUID_TCPIP) )
+ {
+ return DPERR_UNAVAILABLE;
+ }
+
+ /* Assign callback functions */
+ setup_callbacks( lpspData->lpCB );
+
+ return DP_OK;
}
More information about the wine-cvs
mailing list