SendMessage()
может быть отклонено, если вы вызываете его из контекста COM-вызова, где COM-объект находится в STA (вызовы отправляются через насос сообщений). PostMessage()
не ограничивается соблюдением правил квартир COM.
Кроме того, PostMessage()
помещает сообщение в конец очереди сообщений окна. SendMessage()
обходит очередь. Более подробное обсуждение очередей сообщений можно найти в блоге Рэймонда Чена The Old New Thing .
Моя точка зрения заключается в том, что разница между SendMessage()
и PostMessage()
больше, чем кажется на первый взгляд. Я действительно рекомендую просмотреть блог Рэймонда, так как он охватил многие ошибки за эти годы.