The user defined managed entry point failed in the target process. Instead you either need to determine the addresses and hard-code them they differ from platform to platform and version to version however , or use the VTable to lookup the addresses dynamically at runtime which is what we will do here. Hi Cecil, I would try the following: But it can do that for fullscreen DirectX windows. You would have to instantiate an instance of the interface and then implement hooks to see if it is appropriate. Hi, The native dll that creates an IDirect3DDevice9 is what causes this behaviour when hooking a fullscreen application. I changed the Surface.

Uploader: Aranos
Date Added: 19 September 2015
File Size: 50.10 Mb
Operating Systems: Windows NT/2000/XP/2003/2003/7/8/10 MacOS 10/X
Downloads: 55984
Price: Free* [*Free Regsitration Required]

Thanks for your help. I just figured out the same problems like you mentioned here. Hello, One more question, when the app I am hooking to is in full screen the device creation fails with debug messages saying: The error appears to occur within EasyHook, have you checked that it really has d3d9.

C# – Screen capture with Direct3D 9 API Hooks – Spazzarama

Remember that your injected assembly is running in the target application. Thanks Justin, i sent you an email. The SlimDX documentation and examples will be handy if you want to implement any additional features such as in-game overlays. You need to create a new delegate for the appropriate method — just follow what was done for the EndScene hook of Direct3D 9.

This allows you to easily intercept and respond to each of the methods idirect3d9 createdevice failed try updating your video by the interface. Perhaps there is something else I have missed… Good idirect3d9 createdevice failed try updating your video I could post a sample of this if you can help me out. EasyHook has a handy method for doing this at runtime if your host application is running as an Administrator, e. Hi John, Yes it is possible. You will need to download the sample linked at the bottom of the article.

And keep me posted — feel free to use the contact page if you want me to try and take a look at the specific game or anything. Hello Justin, Trying to run your example as a learning exercise and having a similar problem to this poster.

Hi, Firstly it would be worth you trying it with a DirectX 9 game to see if it works there — just for a sanity check. You could perhaps try to do something like the following: Can you say me, how I can use this example to draw something in the idirect3d9 createdevice failed try updating your video with D3D?


I got a bug that I need to ask about tho. The wrapper class implements an interface and takes an object implementing this interface as a constructor parameter.

C# – Screen capture with Direct3D 9 API Hooks

Both approaches also use function hooking, or API hooks often referred to as a detour after the Microsoft Detours library http: The sequence that happens in my code is this: Different Hwnd a already set for Device Direct3D9: The examples included in the SDK are handy for testing e. This is for capture the screen for idirect3d9 createdevice failed try updating your video with AA on. You would need to hook directshow or dwm or possibly something else to do this.

Thanks for your reply. I have found on a bit Windows 7 machine you have to register in the GAC and then restart the machine for it to correctly find the assembly while injecting.

Any idea how to fix this? This post was really helpfull. Hey Threk, As I think you have already found, take a look at http: Sorry if failef is hard to understand, do you have any insight into why idirect3d9 createdevice failed try updating your video might be, and how it could be corrected? EndSceneHook is never getting called. This article has helped me better understand easyhook and what can be done with it.

However, there are some strange irregularities when using the default project. Perhaps there is something else I have missed…. I read the code these days and now I have a new question. Hi Justin, Thanks a ton.

Is it possible to modify your sample project to hook into DrawText and other similar DX functions? As I think you have already found, take a look at http: This supports the inheritance hierarchy whereby a virtual function points to different implementations for each sub-class http: Turns out its using ddraw.