IDirectPlay8Client::SetClientInfo Method

DirectPlay

 
Microsoft DirectX 9.0 SDK Update (Summer 2003)

IDirectPlay8Client::SetClientInfo Method


Sets the static settings of a client with an application. Call this method before connecting to relay basic player information to the application. When the client successfully connects with the application, the server can retrieve information obtained through this method by calling the IDirectPlay8Server::GetClientInfo method.

Syntax

HRESULT SetClientInfo(      
    const DPN_PLAYER_INFO *const pdpnPlayerInfo,     PVOID const pvAsyncContext,     DPNHANDLE *const phAsyncHandle,     const DWORD dwFlags );

Parameters

pdpnPlayerInfo
[in] Pointer to a DPN_PLAYER_INFO structure that contains the client information to set.
pvAsyncContext
[in] Pointer to the user-supplied context, which is returned in the pvUserContext member of the DPN_MSGID_ASYNC_OP_COMPLETE system message.
phAsyncHandle
[in, out] A DPNHANDLE. A value will be returned. However, Microsoft® DirectPlay® does not permit cancellation of this operation, so the value cannot be used.
dwFlags
[in] Flag that controls how this method is processed. The following flag can be set for this method.
DPNSETCLIENTINFO_SYNC
Causes the method to process synchronously.

Return Value

Returns S_OK if this method is processed synchronously and is successful. If the request is processed asynchronously, S_OK can return if the method is instantly processed. By default, this method is run asynchronously and generally returns DPNSUCCESS_PENDING or one of the following error values.

DPNERR_NOCONNECTIONNo communication link was established.
DPNERR_INVALIDFLAGSThe flags passed to this method are invalid.
DPNERR_INVALIDPARAMOne or more of the parameters passed to the method are invalid.

Remarks

This method can be called at any time during the session.

The DPN_PLAYER_INFO structure's dwPlayerFlags member must be set to zero.

Transmission of nonstatic information should be handled with the IDirectPlay8Client::Send method because of the high cost of using the IDirectPlay8Client::SetClientInfo method.

You can modify the client information with this method after connecting to the application. Calling this method after connection generates a DPN_MSGID_CLIENT_INFO system message to all players, informing them that data has been updated.

When calling this method asynchronously, the contents of the pdpnPlayerInfo and pvAsyncContext buffers will be copied by DirectPlay so that the calling application can clean up the buffers before the method returns.

This method is guaranteed as long as the player is connected to the session. DirectPlay will ensure that this method completes and that the information is propagated to all players.



© 2003 Microsoft Corporation. All rights reserved.