Rejestrowanie niestandardowej klasy okna win32 z c #

Mam nową aplikację napisaną w WPF, która musi obsługiwać stare API, które pozwala na otrzymywanie wiadomości, która została wysłana do ukrytego okna. Zazwyczaj inna aplikacja używa FindWindow do identyfikacji ukrytego okna przy użyciu nazwy jego niestandardowej klasy okna.

1) Zakładam, że zaimplementuję niestandardową klasę okien Muszę korzystać ze starych połączeń Win32?

Moja stara aplikacja c ++ użyła RegisterClass i CreateWindow, aby stworzyć najprostsze możliwe niewidzialne okno.

Wierzę, że powinienem być w stanie zrobić to samo w ciągu c #. Nie chcę, aby mój projekt musiał kompilować jakikolwiek niezarządzany kod.

Próbowałem dziedziczenia z System.Windows.Interop.HwndHost i używając System.Runtime.InteropServices.DllImport do pobrania powyższych metod API.

W ten sposób mogę z powodzeniem obsługiwać standardowe okno win32, np. „listbox” wewnątrz WPF. Jednak gdy wywołam CreateWindowEx dla mojego okna niestandardowego, zawsze zwraca wartość null.

Moje wywołanie RegisterClass powiedzie się, ale nie jestem pewien, do czego powinienem ustawiać element WNDCLASS.lpfnWndProc.

2) Czy ktoś wie, jak to zrobić z powodzeniem?

questionAnswers(4)

yourAnswerToTheQuestion