Хукал DirectX9 на Delphi7, чтобы нарисовать свой оверлей.
Нашёл отличную библиотеку для хукинга (DDetours), которая как раз в прошлом году обновилась для поддержки D7.
Пытаюсь добраться до IDirect3D9::CreateDevice, чтобы получить IDirect3DDevice9, через который можно будет пропатчить EndScene().
Постоянно получаю ошибку, мол, Invalid Call.
Сначала я гуглил «умно», читая статьи о том, как правильно хукать, и как правильно создавать экземпляр интерфейса.
Потом я стал гуглить более прямо, чтобы найти примеры того, как создать свой Device. Ничего не помогало!
Дальше я просто хотел увидеть хоть какой-то код, который работает. Находил варианты решения проблемы несколько часов, но ничего из них не меняло ситуации.
Наконец я просто уже просто попробовал нагуглить самый тупой и банальный вопрос, мол, какого хрена ничего не помогает!!
И наконец нашёл божественную ветку форума (десятилетней давности), где у чувака была точно такая же проблема, как у меня; ему давали точно такие же советы, как находил я; и у него абсолютно так же ничего не работало, как у меня.
Но там было решение проблемы: