$#K SNetSelectProvider

Supplies user interface screens to allow the user to select a network provider, then initializes that provider.

BOOL SNetSelectGame (
	SNETCAPSPTR		mincaps,
	SNETPROGRAMDATAPTR	programdata,
	SNETPLAYERDATAPTR	playerdata,
	SNETUIDATAPTR		interfacedata,
	SNETVERSIONDATAPTR	versiondata,
	DWORD				*providerid
);

Parameters

programdata
A pointer to a structure containing information about the program, such as the program name, version, and number of players supported.  This is a mandatory parameter.

playerdata
A pointer to a structure containing the name and description of the current player.  The provider may use this information if it performs a matchmaking process. This is a mandatory parameter.

interfacedata
A pointer to a structure containing information about how the network provider should display user interface screens if necessary.  Most network providers will fail if this information is not given.  For example, the modem provider cannot query the user for a phone number to dial without the ability to display user interface screens.

versiondata
A pointer to a structure containing information about the application which is necessary for automatic version control.  Some network providers are capable of performing over-the-wire version updates.

providerid
The ID of the provider that was selected.

Return Value

This function returns TRUE for success or FALSE for failure.  The function can fail if:
•	The program data is missing or invalid.
•	The player data is missing or invalid.
•	The interface data is missing or invalid, and the provider needs to display interface during the initialization process.
•	The network provider was unable to initialize itself.  For example, the IPX provider may fail if IPX support is not available, and the Battle.net provider may fail if it cannot contact any Battle.net servers.
•	The application needs to be upgraded before it can connect to the server.

If this function fails, the application should call GetLastError() to determine the reason for failure.  If GetLastError() returns SNET_ERROR_REQUIRES_UPGRADE, the application should call SNetPerformUpgrade().