afaik c++ and pascal "interfaces" are compatible.
That's true. Otherwise, the current DX headers for pascal wouldn't work.

Do note, that it's alot more work to write and maintain interfaces for all the classes you want to export. Also, you have to deal with the lifecycle issue (COM interfaces have reference counting, which can cause problems when objects are deleted). All in all, I don't think it's the nicest way of interfacing with a dynamic library. I'd rather just use classes.