我想要Application1.exe实例化它的Item类的一个实例。
我希望Application2.exe在此对象上调用GetPrice()。
如何在两个进程之间共享COM对象?
我按照以下网站上的步骤1-7:
http://www.codeguru.com/Cpp/COM-Tech/activex/tutorials/article.php/c5567/
这是我到目前为止所。
应用1的主要如下所示:
CoInitialize(NULL);
DWORD dwRegister;
ItemFactory *pFactory = new ItemFactory;
CoRegisterClassObject(CLSID_Item, pFactory, CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE, &dwRegister);
_getch();
return 0;
应用2的主要如下所示:
CoInitialize(NULL);
CoGetClassObject(CLSID_Item, CLSCTX_LOCAL_SERVER, NULL, IID_IItem, (LPVOID *)&pFactory);
我的问题(希望是我唯一的问题)是,我不知道如何关联我的Item类(或其接口,IItem)与CLSID_Item;这只是我在另一个文件中定义的一些随机GUID。我试过
CoRegisterPSClsid(IID_IItem, CLSID_Item);
此行之后,我试图
Item *pItem;
CoCreateInstance(CLSID_Item, NULL, CLSCTX_LOCAL_SERVER, IID_IItem, (LPVOID *)&pItem);
我得到一个E_NOINTERFACE错误。
我应该使用CoCreateInstance创建工厂吗?呃,所以很困惑...