Możesz spróbować my example on hooking the Direct3D 9 API using C#. To wykorzystuje EasyHook, open source. NET, który pozwala zainstalować haki z kodu zarządzanego do niezarządzanych funkcji.
Stosowany jest również SlimDX - jest to otok zarządzany przez otwarte środowisko wokół bibliotek Direct3D.
Podstępną częścią zahaczania jest określenie adresów funkcji wirtualnych obiektów COM. Odbywa się to w powyższym przykładzie za pomocą małej biblioteki pomocniczej języka C++, która znajduje adresy z tabeli VTable. [Aktualizacja: jest tam opublikowany komentarz pokazujący, jak uzyskać wskaźniki funkcji z VTable w C# również - biorąc pod uwagę IntPtr do obiektu com]
Przykład ten przechwytuje metodę EndScene IDirect3DDevice9, która jest również tam, gdzie chciałby narysować dowolne nakładki. Jeśli chodzi o wyświetlanie formularza w nakładce, nie jestem pewien, czy będzie tak łatwo - chodzi mi o to, że możesz renderować obraz z wystarczającą łatwością, ale będziesz musiał przechwycić dane wejściowe i ręcznie odpowiedzieć/przekazać zdarzenia do formularza w pytanie właściwie. Powodzenia!
Ktoś? Jeśli ktoś widział nakładkę Steam lub xFire, chcę tego w ten sposób. Użytkownicy mogą surfować po sieci podczas grania w gry itp. –