From my point of view, it is much easier to read the serial port (in my case COM5, the transmission speed is 4800) and analyze the received data. (how to parse a string can be found via Google and the phrase: gps NMEA sentences)
It is impossible for me to understand the example at:
C:\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS
It is all so complicated and unstable. I would expect a much more convenient and useful interface, for example:
myGps = new GPS() myGPS.getPosition
But this is probably not possible :(
And how to do it through RS232? (I work in VB.NET)
In the GUI (or programmatic), create a System.IO.Ports.SerialPort object and use its DataReceived event. Whenever data comes from GPS, this event occurs, and in it you can process it.
The data is in the format of a loooong string, partitioned into $ GPGGA, $ GPGSA, etc. Important is $ GPGGA. Each specific information is separated by a comma. Then you simply parse this line - in VB.net, using: myArray = myData.Split ("," c).
http://aprs.gids.nl/nmea/
PS: "," c means that the comma is a Char character, not a String (VB.NET)
As you can see, there is no need to write more than a few lines of code. The MS example is useless and not intended for beginners.
PS2: Please note that you are not sending any commands to GPS. It automatically and periodically sends data to your program. You simply open the port, read all the data from the buffer, convert it to a string using Chr (), and parse it. Nothing wrong.