Gobi3000 API 2011-07-29-1026

This readme covers important information concerning 
the Gobi3000 API.

Table of Contents

1. What's new in this release
2. Known issues
3. Known platform issues


-------------------------------------------------------------------------------

1. WHAT'S NEW

This Release (Gobi3000 API 2011-07-29-1026)
a. Internal changes to the COM layer to remove dependency on async
   IO libraries - requires GobiNet 1.0.60 or newer
b. Internal changes to address security concerns
c. Correctly terminate the return buffer from GetConnectedDeviceID()
d. This release follows the 1.0.40 release; the X.X.XX versioning scheme
   is no longer applicable

-------------------------------------------------------------------------------

2. KNOWN ISSUES

No known issues.
         
-------------------------------------------------------------------------------

3. KNOWN PLATFORM ISSUES

No known platform issues.

-------------------------------------------------------------------------------

