Я ищу пример кода, который иллюстрирует выполнение многопоточных вызовов COM в DLL-библиотеке ATL COM Server. Знаешь один?
Подробнее:
Мой компонент - это объект помощника браузера IE, который должен работать в фоновом потоке. В одном из методов моего объекта, вызываемых из основного потока IE, IE дает мне указатель на IE DOM (IHtmlWindow2
), и я сохраняю его в локальной переменной-члене.
Теперь я хочу создать рабочий поток, который может асинхронно вызывать методы для того указателя COM-интерфейса, который я только что сохранил.
Если это имеет значение, мои вызовы произойдут после того, как я вернусь из метода, в котором я получил указатель интерфейса от IE, поэтому IE (а не мой код) будет иметь контроль, когда я попытаюсь сделать вызовы из моего рабочего потока.
И мой компонент, и хост-приложение являются квартирами с многопоточностью.
Кто-нибудь знает хороший пример C ++, показывающий, как это делается?
Я специально ищу короткий, простой пример (а не просто указатель на соответствующую документацию), потому что я прочитал этот вопрос и его ответы, и меня запугали на количество обучения, которое я должен был бы сделать, чтобы написать реализацию с нуля. Каждый раз, когда кто-то рекомендует прочитать книгу «Дон Бокс» перед написанием кода, вы знаете, что вас ждет долгая, запутанная ночь ...: -)