I worked with the SynCE project with support for Windows Mobile devices connected to Linux desktop machines, so I can offer you a few pointers.
Do you mean ActiveSync or AirSync? AirSync is the protocol that is used on the air, and ActiveSync for the actual transfer of data. ActiveSync is the entire stack for synchronizing a WinMo device connected to your computer. SynCE is the only open source “full stack” open source equivalent to ActiveSync that I know, from driver to AirSync to GUI and integration with OpenSync, and I don't know any open source projects that are WinMo devices for ActiveSync.
I do not know any AirSync implementations in C or C ++, but I believe that the Samba and OpenChange teams have made significant progress in supporting Exchange servers initially. About a year and a half ago, they told me that even support for HTTP (s) transport is just around the corner from the point of view of the necessary work (but I'm not sure that this was a priority).
While not in C ++ or even in the client library, the SynCE project has open source python code, which can be a useful link if you cannot find another library.
Here is an example of a push mail server that was written by one of SynCE's developers: Synergy Airmail
And the main synchronization mechanism can be found here: SynCE SyncEngine
Inside this code, I think that SyncEngine / airsync.py will be most useful to you.
Digging into the wiki simulations at http://www.synce.org , and their mailing list archive, is a good way to find out about problems and unexpected details about what the protocol has and is insensitive.
You may find http://libwbxml.opensync.org useful - after the wbxml layer has been decoded, AirSync is just an XML transfer.
And finally, Microsoft provides documentation for the protocol:
Jc2k
source share