Whatever you do, make sure you use COMRETURNERROR. Here's how I use it in ActiveVFP:
COMreturnerror(lcErrMsg,_VFP.SERVERNAME)
>I have various VFP/VB DLL's that I use regulary.
>
>I trap errors internally and store a negative value
>relative to the error to a propery called nReadyState,
>then set a property called lErrorOccured to .T.
>
>If lErrorOccured is True, then nReadyState will contain
>the error number for the error, otherwise nReadyState will
>be zero.
>
>Some of these DLL's use other DLL's, and sometimes they
>are used in applications.
>
>The question is this:
>
>When an error does occur under this scenerio, what's the
>best way to handle it and pass it to the applicaion?
>
>Also, what should the application do?
>
>Thanks