|
我的显示驱动已经在DrvEscape支持了自定义的iEsc code. 可是感觉每次调用都没有反应,调用代码如下:
int EscCode = 100000;
int nRet=0;
HDC hdc = GetDC(hWnd);
SetLastError(0);
if (ExtEscape(hdc, 8, sizeof(EscCode), (LPSTR)&EscCode, 0, NULL))
{
EscCode = 1;
ExtEscape(hdc, 100000, sizeof(EscCode), (LPSTR)&EscCode, sizeof(nRet), (LPSTR)&nRet);
}
int error = GetLastError();
ReleaseDC(hWnd,hdc);
ExtEscape(hdc, 8, sizeof(EscCode), (LPSTR)&EscCode, 0, NULL)每次返回都是0,而GetLastError()也是0.
后来发现DrvEscape函数(OEM版)没有被调用,参照微软提供的DrvEscape(和OEM版参数不一样),发现微软的DrvEscape多一个DHPDEV dhpdev参数,在此函数中,有调用 (GPE *)dhpdev->DrvEscape(pso, iEsc, cjIn, pvIn, cjOut, pvOut) (OEM版);
1, dhpdev参数是指向显示驱动实例化的一个GPE类吗?
2, 按照流程,我的DrvEscape(OEM版)应该会被调用到啊,为什么没有进入呢?
|
|