Я хочу Application1.exe создать экземпляр класса Item.
Я хочу, чтобы Application2.exe вызывал GetPrice() для этого объекта.
Как разделить COM-объекты между двумя процессами?
Я следовал шаги 1-7 на следующем веб-сайте:
http://www.codeguru.com/Cpp/COM-Tech/activex/tutorials/article.php/c5567/
Это то, что я до сих пор.
Application1 как это:
основные выглядит
CoInitialize(NULL);
DWORD dwRegister;
ItemFactory *pFactory = new ItemFactory;
CoRegisterClassObject(CLSID_Item, pFactory, CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE, &dwRegister);
_getch();
return 0;
Application2 как это:
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? Ugh, так запутано ...