На этом шаге мы рассмотрим реализацию синхронизации потоков.
Потоки, желающие обратиться к СОМ-объекту в другом отделении должны получить указатели на его
интерфейс с помощью маршалинга. Прямой указатель им недоступен, иначе стал бы возможен одновременный
множественный доступ к СОМ-объекту, а это строго запрещено правилами модели разделенных потоков.
Прибегая к маршалингу, СОМ использует систему обмена сообщениями Windows для синхронизации
потоков. Каждый STA-поток имеет цикл обработки сообщений, куда поступают запросы маршалинга из
других процессов и из других отделений того же процесса. Когда клиент запрашивает объект сервера, код маршалинга
помещает соответствующее сообщение в очередь потока сервера. Запросы ставятся в очередь сообщений, и
STA-поток обрабатывает их по одному.
На следующем шаге мы рассмотрим передачу указателей на интерфейс.