While trying to make a tool which receives sms from the D211 card using your SDK, I found out the following:
When you create a IPC handle (and close it) the handle count will increase for the D211CTL.EXE application.
I needed to build a com-object to use your sdk in Borland C++ Builder cause I simply can't use the Visual C++ libraries for builder.
In this com-object I created some functions that handled sms messages, but just for my convenience I created a named pipe for every function call (and closed it at the end of the function).
To my surprise, the handle count for D211CTL.EXE exceeded 450000 handles in a week or so.
It seems to me that you're not freeing the handle in the IPCCloseHandle function.