我正在开发一个系统,我想拦截Direct3D调用以创建平铺显示。我正在使用类似拦截器的APITrace创建消息流并在第二个程序中重新创建调用,就像旧的Chromium项目一样。应用程序端工作正常,但处理消息流的程序却没有。我发现当我调用CreateSwapChain()时,函数返回S_OK但GetLastError()返回'error = 0x00000594:无法在没有模块句柄的情况下设置非本地挂钩。我在调用CreateSwapChain()之前使用GetLastError()检查错误状态,并且没有错误。这个错误对我没有意义。任何人都可以对此有所了解吗?
答案 0 :(得分:1)
我发现了问题。 pScc结构的CreateSwapChain函数的参数包括一个输出窗口句柄。由于消息流使用消息处理方的参数打包,因此在调用函数之前,窗口句柄必须替换为正确的句柄。