Microsoft DirectX 9.0 SDK Update (Summer 2003)

IDirectPlay8Server::SetServerInfo Method


Sets the static settings of a server with an application. After clients successfully connect to the server, they can retrieve the information set by this method by calling theIDirectPlay8Client::GetServerInfo method.

Syntax

HRESULT SetServerInfo(      

    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 server 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
[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.
DPNSETSERVERINFO_SYNC
Causes this 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_INVALIDFLAGSThe flags passed to this method are invalid.
DPNERR_INVALIDPARAMOne or more of the parameters passed to the method are invalid.
DPNERR_NOCONNECTIONNo communication link was established.


Remarks

This method may be called before calling IDirectPlay8Server::Host, and at any time during the session.

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

Handle transmission of nonstatic information with the IDirectPlay8Server::SendTo method because of the high cost of using the IDirectPlay8Server::SetServerInfo method.

You can modify the server information with this method after clients have connected to the application. Calling this method after connection generates a DPN_MSGID_SERVER_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.