Microsoft DirectX 9.0 SDK Update (Summer 2003) |
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_INVALIDFLAGS The flags passed to this method are invalid. DPNERR_INVALIDPARAM One or more of the parameters passed to the method are invalid. DPNERR_NOCONNECTION No 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.