1
0
mirror of https://github.com/solemnwarning/ipxwrapper synced 2024-12-30 16:45:37 +01:00

Use IDirectPlay3A interface for DirectPlay tests.

Windows 98 ships with DirectX 5.2, which predates IDirectPlay4A.
This commit is contained in:
Daniel Collins 2024-12-19 00:35:19 +00:00
parent bc4ebfef2f
commit 1eba082389

View File

@ -120,7 +120,7 @@ static BOOL FAR PASCAL list_players_cb(
static DWORD WINAPI recv_thread_main(LPVOID lpParameter) static DWORD WINAPI recv_thread_main(LPVOID lpParameter)
{ {
IDirectPlay4 *dp = (IDirectPlay4*)(lpParameter); IDirectPlay3 *dp = (IDirectPlay3*)(lpParameter);
DWORD bufsize = 0; DWORD bufsize = 0;
char *buf = NULL; char *buf = NULL;
@ -150,7 +150,7 @@ static DWORD WINAPI recv_thread_main(LPVOID lpParameter)
} }
else if(err != DP_OK) else if(err != DP_OK)
{ {
fprintf(stderr, "IDirectPlay4::Receive: %u\n", (unsigned int)(err)); fprintf(stderr, "IDirectPlay3::Receive: %u\n", (unsigned int)(err));
exit(1); exit(1);
} }
@ -181,19 +181,19 @@ int main(int argc, char **argv)
} }
} }
IDirectPlay4 *dp; IDirectPlay3 *dp;
assert_dp_call("CoCreateInstance", assert_dp_call("CoCreateInstance",
CoCreateInstance( CoCreateInstance(
&CLSID_DirectPlay, NULL, CLSCTX_INPROC_SERVER, &IID_IDirectPlay4A, (void**)(&dp))); &CLSID_DirectPlay, NULL, CLSCTX_INPROC_SERVER, &IID_IDirectPlay3A, (void**)(&dp)));
{ {
void *conn = NULL; void *conn = NULL;
assert_dp_call("IDirectPlay4::EnumConnections", assert_dp_call("IDirectPlay3::EnumConnections",
IDirectPlayX_EnumConnections( IDirectPlayX_EnumConnections(
dp, NULL, (LPDPENUMCONNECTIONSCALLBACK)(&copy_ipx_conn), &conn, 0)); dp, NULL, (LPDPENUMCONNECTIONSCALLBACK)(&copy_ipx_conn), &conn, 0));
assert_dp_call("IDirectPlay4::InitializeConnection", assert_dp_call("IDirectPlay3::InitializeConnection",
IDirectPlayX_InitializeConnection(dp, conn, 0)); IDirectPlayX_InitializeConnection(dp, conn, 0));
free(conn); free(conn);
@ -219,7 +219,7 @@ int main(int argc, char **argv)
session.guidApplication = TEST_APP_GUID; session.guidApplication = TEST_APP_GUID;
session.lpszSessionNameA = session_name; session.lpszSessionNameA = session_name;
assert_dp_call("IDirectPlay4::Open", assert_dp_call("IDirectPlay3::Open",
IDirectPlayX_Open(dp, &session, DPOPEN_CREATE)); IDirectPlayX_Open(dp, &session, DPOPEN_CREATE));
DWORD bufsize = 0; DWORD bufsize = 0;
@ -233,7 +233,7 @@ int main(int argc, char **argv)
DPSESSIONDESC2 *sd = malloc(bufsize); DPSESSIONDESC2 *sd = malloc(bufsize);
assert(sd); assert(sd);
assert_dp_call("IDirectPlay4::GetSessionDesc", assert_dp_call("IDirectPlay3::GetSessionDesc",
IDirectPlayX_GetSessionDesc(dp, sd, &bufsize)); IDirectPlayX_GetSessionDesc(dp, sd, &bufsize));
unsigned char *uuid_str; unsigned char *uuid_str;
@ -253,7 +253,7 @@ int main(int argc, char **argv)
session.dwSize = sizeof(session); session.dwSize = sizeof(session);
session.guidApplication = TEST_APP_GUID; session.guidApplication = TEST_APP_GUID;
assert_dp_call("IDirectPlay4::EnumSessions", assert_dp_call("IDirectPlay3::EnumSessions",
IDirectPlayX_EnumSessions(dp, &session, 3000, &list_sessions_cb, NULL, 0)); IDirectPlayX_EnumSessions(dp, &session, 3000, &list_sessions_cb, NULL, 0));
} }
else if(strcmp(cmd, "join_session") == 0) else if(strcmp(cmd, "join_session") == 0)
@ -266,7 +266,7 @@ int main(int argc, char **argv)
session.dwSize = sizeof(session); session.dwSize = sizeof(session);
UuidFromString((RPC_CSTR)(session_guid), &(session.guidInstance)); UuidFromString((RPC_CSTR)(session_guid), &(session.guidInstance));
assert_dp_call("IDirectPlay4::Open", assert_dp_call("IDirectPlay3::Open",
IDirectPlayX_Open(dp, &session, DPOPEN_JOIN)); IDirectPlayX_Open(dp, &session, DPOPEN_JOIN));
} }
else if(strcmp(cmd, "create_player") == 0) else if(strcmp(cmd, "create_player") == 0)
@ -279,7 +279,7 @@ int main(int argc, char **argv)
name.dwSize = sizeof(name); name.dwSize = sizeof(name);
name.lpszLongNameA = strtok(NULL, " \n"); name.lpszLongNameA = strtok(NULL, " \n");
assert_dp_call("IDirectPlay4::CreatePlayer", assert_dp_call("IDirectPlay3::CreatePlayer",
IDirectPlayX_CreatePlayer(dp, &player_id, &name, NULL, NULL, 0, 0)); IDirectPlayX_CreatePlayer(dp, &player_id, &name, NULL, NULL, 0, 0));
lock_printf("player_id %u\n", (unsigned int)(player_id)); lock_printf("player_id %u\n", (unsigned int)(player_id));
@ -294,7 +294,7 @@ int main(int argc, char **argv)
DPID player_to = strtoul(strtok(NULL, " \n"), NULL, 10); DPID player_to = strtoul(strtok(NULL, " \n"), NULL, 10);
char *message = strtok(NULL, " \n"); char *message = strtok(NULL, " \n");
assert_dp_call("IDirectPlay4::Send", assert_dp_call("IDirectPlay3::Send",
IDirectPlayX_Send(dp, player_from, player_to, 0, message, strlen(message) + 1)); IDirectPlayX_Send(dp, player_from, player_to, 0, message, strlen(message) + 1));
} }
else if(strcmp(cmd, "exit") == 0) else if(strcmp(cmd, "exit") == 0)