Thank you for taking the time to share your ideas.

I am disappointed with your views on using WM_COPYDATA mechanism to generate error and warning messages from the dll. I have gotten this to work quite well. The problem I have with this as that I have not figured out what to do after the error has been encountered and the message sent. But I still like the idea because if one has several hundred possible anticipated errors, it is relatively simple to fashion specific error messages for each, whereas, if all the errors were sent as integers via the wrapper, the burden of deciphering them would be on the caller.

I had not really planned to distribute the dll under consideration separate from an application, but that approach has considerable attraction in general, so that the more independent the client code is from the dll, the easier it should be to use.

Anyway, you've given me alot to think about and I plan to experiment with using the wrapper to return an error code integer. Or if I was really clever, I might try to fashion a GetLastError method for the client to use.