Bob,
I think you got your whole answer, but just for completeness:
>DECLARE long DEVICETODESKTOP IN "adofiltr.dll" ;
> desktoplocn AS STRING, ;
> tablelist AS STRING, ;
> sync AS Boolean, ;
> OVERWRITE AS INTEGER, ;
> devicelocn AS STRING
>
>cDesktop = 'E:\Devel\Handheld\Data\Liquor.Mdb'
>cPPC = '\My Documents\Liquor.cdb'
>
>intRetVal = DEVICETODESKTOP(cDesktop, "", .f., .t., cPPC)
cDesktop = 'E:\Devel\Handheld\Data\Liquor.Mdb' + chr(0)
cPPC = '\My Documents\Liquor.cdb' + chr(0)
intRetVal = DEVICETODESKTOP( cDesktop, "" + chr(0), .f., 0, cPPC )
Strings going to a C/C++ dll should be null terminated unless one of the arguments to the function tells how long the string/buffer is.