|Sends information about the Client to Battle.net.
*These fields can be set to zero without breaking logon.
Battle.net's current Protocol ID is 0.
A DWORD specifying the client's platform (Macintosh, PC, etc).
A DWORD specifying the client's game.
Platform ID and Product ID are actually DWORDS, even though they look like strings.
For example, if you cast the sequence of bytes "SEXP" to a DWORD, you will have
the correct value to send to Battle.net as the Program ID for Starcraft Broodwar.
If you can't get your head around this, just reverse the 4 bytes and insert them
as a string with no null-terminator, ie: "PXES". The same applies to Platform ID
- which will be "IX86" (or, as a string, "68XI") for most people.
The client's version byte. See [Platform & Product IDs] for more information on the preceeding 3 fields.
This field is under investigation. It can safely be set to 0.
MPQ Locale ID
This field is part of Blizzards multi-lingual MPQ system. Is used to specify
which version of an MPQ should be used when the MPQ is available in multiple
This is the local network IP of the client, in network byte order.
The difference, in minutes, between UTC and local time. The client calculates this value by subtracting the
Local Time from the
System Time, having
converted both to Filetime
structures, and then converting the resultant offset to minutes by diving it by 600,000,000. If you wish to understand
the mechanism involved, read Microsoft's documentation on File times.
Language ID, Country Abbreviation, and Country
These values can be retrieved by querying the system's locale information.
Language ID can be retrieved using the GetUserDefaultLangID API.
Country Abbreviation & Country can be retrieved using the GetLocaleInfo API to request the LOCALE_SABBREVCTRYNAME and LOCALE_SENGCOUNTRY, respectively.