Сценарий:
Мы заняты созданием стороннего C++ SDK в виде DLL, чтобы другим разработчикам в нашей организации было проще интегрировать эту функциональность в свои собственные приложения (будь то .net, delphi и т. д.).
Базовая система отправляет сообщения Windows, чтобы сигнализировать о событиях, происходящих в системе. Эти события необходимо обрабатывать, поскольку они потенциально могут сигнализировать о состоянии системы и дальнейших действиях.
Вопрос:
Как лучше всего обрабатывать эти сообщения в контексте используемого нами подхода (т. е. с помощью DLL, обертывающей сторонний SDK)? Некоторые идеи, которые приходят на ум:
- Пусть приложение, использующее DLL, перехватит сообщение, а затем передаст его обратно в DLL через вызов функции для обработки — возможно ли, чтобы вызывающее приложение перехватывало эти сообщения?
- Создать поток из DLL, который реализует насос сообщений, который обрабатывает эти сообщения из базовой системы и выдает наши собственные пользовательские сообщения?
Весь пример кода, предоставленный для SDK, использует одно приложение Win32, которое реализует насос сообщений и обрабатывает сообщения в контексте приложения.
Прошли годы с тех пор, как я занимался разработкой Windows с использованием родной Win32 и был бы признателен за некоторые советы.