My PC app uses RAPI to install files to a CEDB database on Windows Mobile devices.
Works for PPC 2002, 2003 devices, ActiveSync v3.8 and 4.1
On Windows Mobile 5.0 devices with AS 4.1, RAPI fails on CeMountDBVol with an ERROR_INVALID_PARAMETER.
What needs to be done to correct this I have read about RAPI Security policy, but this case doesn't seem to apply.
I am loading RAPI DLL dynamically.
ex:
bResult = (*pCeMountDBVol)(pDBguid,
// guid of mountDBVolumeFullName, // full path and name of database volume
OPEN_ALWAYS)); // flags
I didn't think that there were security restrictions when mounting your own database volumes.

RAPI fails on CeMountDBVol (WinMobile 5)
GillBates
So my next question is, what's the odds of seeing the code or getting a copy. I'll be honest, I am very new to PDA development (1st time), and was forced into supporting a PDA app written in eVC3, but does not run on Mobile 5.0. I have looked at migrating to VS 2005, but time constraints at this point force me to provide a workaround.
If your not confortable with providing it, could you give me some quick directions on where to start.
Thanks for the help!
Tomas_1971
I've created a simple example that illustrates this.
TestRAPI.zip
bResult from ceMountDBVol will return FALSE if run using ActiveSync 4.1 to a Windows Mobile 5.0 device. (In this case a Dell Axim 51v)
Result will return TRUE if RUN on a Pocket PC 2003 device. (HP Ipaq 6325)
Ronak Desai
Thanks for the reply, however, the problem I'm having is with CEDB databases.
It works ok on WM5 emulator but not on actual devices.
TheUaRT
MarkBell
This continues to be a problem. Test Device is a Dell Axim 51V.
Has anyone gotten CeMountDBVol uder RAPI to work with Windows Mobile 5
The error code INVALID_PARAMETER, doesn't make sense because all the input parameters are correct. RAPI has been successfully Initialized.
Landero
I was experiencing the exact same issue with CeMountDBVol and I discovered why it doesn't work. Apparently RAPI does not support EDB! Sure would have been nice to have this in the documentation. Here's what I found in the newsgroups:
War59312
Continuing to dig further...
I can get this to work on the WinMobile 5 device by changing the RAPI security policy to "ALLOWED" by instaling and running SDKCERTS.CAB, then creating the .cpf file with the following:
After running the .cpl file above on the device, then CeMountDBVol will work.
So it is true that RAPI Security is blocking this call unless the above setting is done.
My question now is:
How is this done so it is seamless to the End user Do I need to create and run a signed DLL via CeRapiInvoke in order to change the security policy so the RAPI application will run
Alan Shields
Hi,
I had to create simple Executable that runs via CERapiInvoke that modifies the RAPI security settings so the RAPI database calls will work.
Scott