Without using COM, you should write a C ++ / CLI wrapper. Your own code, which includes your shell's header file, must be compiled with / clr (common language support for execution).
Just for curiosity, why not use COM interoperability? Check the regasm.exe and tlbexp.exe tools.
tranmq
source share