JoyStick 当top-level IE window active 的时候,系统没有接受设备信息

midtree 2009-04-23 10:55:05
作了一个ATL 的控件用在IE里面,用下面的方法得到IE的窗口句柄,用DirectInput8 的 SetCooperativeLevel 去设置信息,返回值是正确的,但是IE为ACTIVE的时候,没有Joystick的设备触发信息。请问是IE的窗口句柄不对吗?

IOleClientSite* pClientSite = NULL;
pXNetComm->GetClientSite(&pClientSite); // pXnetcomm is the activex control


HRESULT hr = S_OK;
IServiceProvider *isp, *isp2 = NULL;
IWebBrowser2 *browser = NULL;
HWND pHWnd = NULL;

hr = pClientSite->QueryInterface(IID_IServiceProvider, reinterpret_cast<void **>(&isp));
if (FAILED(hr))
{
goto cleanup;
}
hr = isp->QueryService(SID_STopLevelBrowser, IID_IServiceProvider, reinterpret_cast<void **>(&isp2));
if (FAILED(hr))
{
goto cleanup;
}
hr = isp2->QueryService(SID_SWebBrowserApp, IID_IWebBrowser2, reinterpret_cast<void **>(&browser));
if (FAILED(hr))
{
goto cleanup;
}

browser->get_HWND((SHANDLE_PTR*)&pHWnd);

SAFE_RELEASE(isp);
SAFE_RELEASE(isp2);
SAFE_RELEASE(browser);

g_pJoystick->SetCooperativeLevel(pHWnd, DISCL_EXCLUSIVE|DISCL_FOREGROUND );
...全文
60 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
liliangbao 2009-04-23
  • 打赏
  • 举报
回复
帮顶~

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧