Some of the logic that initializes QSRules is built into SOPOSUSER.exe and SOManager.exe. Namely the part that loads the DB connection information out of the registry and binds the QSRules instance to that DB. There is quite a bit of other startup/initialization stuff going on to get QSRules prepared to operate, but the DB stuff is the most obvious example. None of this initialization process is documented, and the registry encryption is proprietary - at a minimum, you would need to manage your own connection information.
You can easily create an instance of QSRules.SessionClass in VBA, but it won't be connected to anything. The process MS has provided to extend RMS using QSRules is for POS or SO Manager to initiate an external program via 'hooks' which are really late bound (iDispatch?) calls FROM RMS into your COM Server component. In most cases, these 'hooks' would pass an already 'activated' SessionClass object into your component.
You seem to be trying to attack the issue from the other direction and I don't think it's going to work. Of course, you can do a lot of things in C++ that aren't possible in other environments, so maybe you'll figure it out...
Good Luck!