У меня есть новое приложение, написанное в WPF, которое должно поддерживать старый API, который позволяет ему получать сообщение, которое было отправлено в скрытое окно. Обычно другое приложение использует FindWindow для идентификации скрытого окна, используя имя его собственного класса окон.
1) Я предполагаю, что для реализации пользовательского класса окна мне нужно использовать вызовы старой школы win32?
Мое старое приложение С++ использовало RegisterClass и CreateWindow, чтобы сделать простейшее возможное невидимое окно.
Я считаю, что я должен сделать то же самое внутри С#. Я не хочу, чтобы мой проект должен был скомпилировать неуправляемый код.
Я попытался наследовать от System.Windows.Interop.HwndHost и использовать System.Runtime.InteropServices.DllImport, чтобы вытащить вышеупомянутые методы API.
Выполняя это, я могу успешно разместить стандартное окно win32, например. "listbox" внутри WPF. Однако, когда я вызываю CreateWindowEx для моего пользовательского окна, он всегда возвращает null.
Мой звонок для RegisterClass завершается успешно, но я не уверен, что я должен установить Член WNDCLASS.lpfnWndProc для.
2) Кто-нибудь знает, как это сделать успешно?