I don't use Microsoft Office so I can't help you much on the specifics.
Microsoft Office applications run as out-of-process COM servers.
Since registration-free COM only works with in-process servers it really isn't needed here.
If you want to automate Microsoft Office applications from a C++ application you can use the #import directive with the Microsoft Office application's type library. Then you should be able to use the generated headers to instantiate COM objects and obtain the desired interfaces directly from C++. By the way, class not registered errors frequently result from a bitness mismatch between the COM client and COM server. So if you have installed a 64-bit version of Office then your C++ COM client should be a 64-bit application.