Как определить поддерживаемую модель потоков для COM-сервера вне процесса - PullRequest
2 голосов
/ 01 февраля 2009

Вопрос

  • Как найти модели потоков , поддерживаемые предопределенным сервером вне процесса (на основе EXE) :

  • Использование oleview ?

  • Или любые другие допустимые методы?

Примечание:

  • Попытка подключения к вышеописанному серверу для получения уведомлений о событиях

Ответы [ 2 ]

3 голосов
/ 10 февраля 2009

Боюсь, вопрос не в порядке.

Модели потоков (STA, MTA и т. Д.) Являются необходимым злом, которое применяется только к внутрипроцессным COM-объектам, где объекты и клиенты должны сосуществовать в одном и том же процессе, и каким-то образом они должны предотвращать наступление друг на друга (забавно) и длинная тема).

COM-серверы вне процесса (EXE) живут в своем собственном процессе и управляют своими собственными потоками по своему усмотрению. COM не знает - и ему все равно.

Таким образом, нет никакой «модели потоков» (в смысле COM), связанной с EXE.

Похоже, у вас есть особая проблема: если вы опубликуете более подробную информацию, я / кто-то / мы сможем помочь.

0 голосов
/ 01 февраля 2009

Абсолютное минимальное количество записей реестра для класса:

  • LocalServer32 \ (путь к исполняемому файлу) - расположение локального вне-сервера EXE-файла
  • InprocServer32 \ (путь к DLL) - расположение локального внутрипроцессного сервера DLL

Примечание:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\
{CLSID}\LocalServer32 = <full path>ServerExecutable
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...