Monthly archives: April 2006
Update: I emailed Microsoft and they have acknowledged their KB was incorrect and have since corrected it. Below is my original post, which I wrote shortly after discovering the typo in MS's KB on this subject.
If you are a Windows Mobile developer, you have probably noticed all the new whiz-bang new APIs in the 5.0 SDK. Many are available only to unmanaged calls (either from unmanaged C or P/Invoke from .Net). Most of the documentation is correct and helpful, but I noticed a problem when I was trying to P/Invoke the new API calls ActiveSyncStart and ActiveSyncStop when I was trying to write a teensy little app that needed to use these.
In MS's knowledgebase (which is located here), we see that ActiveSyncStart is defined in ActiveSync.h and references the library actsyncc.lib. The problem is that there is no actsyncc.lib in the SDK! Perhaps there was in one of the beta/CTPs -- I'm not sure. So when you create your P/Invoke call and reference actsyncc.dll, you are out of luck. I googled for help, but with no luck. I dug through the libs and finally found out where it actually is referenced, which is aygshell.lib (aygshell.dll).
Here are the P/Invoke declarations for the unmanaged function calls for use in VB.Net...
Private Declare Function ActiveSyncStart Lib "aygshell.dll" () As Integer
Private Declare Function ActiveSyncStop Lib "aygshell.dll" () As Integer
Obviously you need to change the definition a teeny bit to get it to work in C#.
So if you are writing managed code on Windows Mobile and, like me, frustratingly coudln't find out how to use the unmanaged API calls ActiveSyncStart and ActiveSyncStop, I hope this helps! :-)