关于GetDeviceState的一些疑问

a35181706 2011-11-04 06:19:16
这几天做键盘对象,发现一个问题。代码如下:
#include <dinput.h>
#pragma comment(lib,"dxguid.lib")
#pragma comment(lib,"dinput8.lib")
LPDIRECTINPUTDEVICE8 pInputKB=NULL;
LPDIRECTINPUT8 pInput = NULL;
char strkeystate[256];
char strkeystateold[256];
HRESULT InitKeyBorad(HINSTANCE hinstance,HWND hwnd)
{
if (DI_OK != DirectInput8Create(hinstance,DIRECTINPUT_VERSION,IID_IDirectInput8,(LPVOID*)&pInput,NULL))
{

return E_FAIL;
}

if(DI_OK != pInput->CreateDevice(GUID_SysKeyboard,&pInputKB,NULL))
{

return E_FAIL;
}
if(DI_OK != pInputKB->SetDataFormat(&c_dfDIKeyboard))
{
return E_FAIL;
}
pInputKB->SetCooperativeLevel(hwnd,DISCL_NONEXCLUSIVE|DISCL_FOREGROUND);
pInputKB->Acquire();
memset(strkeystate,0,sizeof(strkeystate));
memset(strkeystateold,0,sizeof(strkeystateold));
return S_OK;
}
LRESULT Update()
{
memcpy(strkeystateold,strkeystate,sizeof(strkeystate));
if(DI_OK != pInputKB->GetDeviceState(sizeof(strkeystate),strkeystate))//这里一直失败
{
MessageBox(NULL,TEXT("a"),TEXT("a"),MB_OK);
memset(&strkeystate,0,sizeof(strkeystate));

}
return DI_OK;
}
问题出来了,GetDeviceState函数一直失败,我调试了半天,也不知道问题出在哪。
DIERR_INVALIDPARAM 第一次运行,返回的是这个。
求救。。。。。。。。
设备没有丢失。。
...全文
211 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
神清如梦 2011-11-10
  • 打赏
  • 举报
回复
.0.0
chainyu 2011-11-10
  • 打赏
  • 举报
回复
还是应该查DirectX SDK啊
a35181706 2011-11-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 orange7yz 的回复:]
我也是啊,那个好心人帮帮忙看
[/Quote]
解决了吗?
orange7yz 2011-11-07
  • 打赏
  • 举报
回复
我也是啊,那个好心人帮帮忙看
目 录 1 前言 1 2 USE概述 2 2.1服务部件 4 2.2统计数据库说明 5 2.3开发接口 5 2.4实用工具 6 3 USE开发指南 8 3.1 坐席软电话开发说明 8 3.1.1 API层开发 10 long USE_ConnectToAgent 12 long USE_DisconnectAgent 13 long USE_Login 14 long USE_LoginEx 16 long USE_Logout 17 long USE_ SetAgentStatus 18 long USE_GetAgentEvent 19 long USE_ForceLogout 23 long USE_SendMsgToAgent 24 long USE_BroadMsgToAll 25 long USE_BroadMsgToAgentGroup 26 long USE_GetAgentStatus 27 long USE_GetAgentDNByID 29 long USE_GetAgentIDByDN 30 long USE_ConnectTelBaseServer 31 long USE_DisconnectFromTelBaseServer 32 long USE_GetAssociateData 33 long USE_SetAssociateData 35 long USE_AnswerCall 37 long USE_DisconnectCall 38 long USE_HoldCall 39 long USE_RetrieveHeld 40 long USE_ConsultCall 41 long USE_ConferenceCall 43 long USE_TransferCall 44 long USE_ReconnectHeld 45 long USE_MakeCall 46 long USE_SingleStepTransfer 47 long USE_SingleStepConference 48 long USE_GetDeviceState 49 long USE_ConnectToRouter 51 long USE_DisconnectFromRouter 52 long USE_GetSrvRoutePoint 53 long USE_SetService 54 long USE_GetServiceData 56 long USE_ReqVirtualRoute 58 long USE_GetRouteTarget 59 long USE_RegOutboundSrv 61 long USE_GetAllSrvRes 62 long USE_WithdrawPreLock 63 long USE_WithdrawVirtualRoute 64 long USE_GetResourceCount 65 long USE_GetResourceDetail 66 long USE_SetServiceEx 68 long USE_GetSrvDescByContact 69 int TV_Installed 71 int TV_Initialize 71 Void TV_Disable 72 Void TV_HangUpCtrl 72 Void TV_OffHookCtrl 73 int TV_StartDial 73 Void TV_FlushDTMF 74 int TV_GetDTMFChar 75 Void TV_ConnectChannels 75 Void TV_DisconnectChannels 76 Void TV_ConnectTo 76 long TV_StartRecordFile 77 long TV_StartPlayFile 77 long TV_PlayFileRest 78 long TV_StopPlayFile 78 3.1.2 USE_AgentBar OCX层开发 79 3.1.2.1 USE_AgentBar控件说明 79 3.1.2.2 USE_AgentBar控件属性 82 3.1.2.3 USE_AgentBar方法 85 3.1.2.4 USE_AgentBar事件 124 3.2 USE_Monitor OCX开发 133 3.2.1 USE_Monitor控件概述 133 3.2.2 USE_Monitor方法说明 133 long Init( ) 133 long Stop( ) 134 long GetFirstService( ) 135 long GetNextService( ) 137 bool IsLastService ( ) 138 long GetServiceStatistic( ) 139 long GetAllServiceStatistic( ) 142 long GetAgentStatusByID( ) 144 long GetFirstAgentByService( ) 145 long GetNextAgentByService( ) 147 bool IsLastAgent ( ) 148 long GetDeviceStatusByID( ) 149 long GetFirstDeviceByService( ) 150 long GetNextDeviceByService( ) 151 bool IsLastDevice( ) 152 long GetFirstTrunkGroup( ) 153 long GetNextTrunkGroup( ) 154 bool IsLastTrunkGroup( ) 155 bool IsAgentResource( ) 156 long GetTrunkGroupStatistic( ) 157 long GetaAllTrunkGroupStatistic() 158 long BroadcastMsgToServiceGroup() 159 long BroadcastToAll() 160 long SendMsgToAgent() 161 long ForceLogout( ) 162 3.3 IVR接口开发 163 3.3.1 接口数据类型 163 3.3.2 接口函数定义 164 USE_Result USE_SetAssociateData() 164 USE_Result USE_GetAssociateData() 166 USE_Result USE_MakeService() 168 USE_Result USE_RequestService() 169 USE_Result USE_ReqOutboundSrv() 171 USE_Result USE_ReqPreLockSrv() 172 USE_Result USE_WithdrawPreLock() 173 USE_Result USE_GetServiceInfo() 174 3.3.3 COM组件发布 176 COMUSE_MakeServiceVoiceMail 176 3.4 统计报表开发 177 3.4.1 概述 177 3.4.2 基础数据表 177 3.4.2.1 坐席登录日志表 (Tbl_Agent_Log) 177 3.4.2.2 坐席工作状态明细表(Tbl_Agent_Status) 179 3.4.2.3 资源服务信息表(Tbl_Res_Working) 180 3.4.2.4 资源协作服务信息表(Tbl_Res_Coorporation) 182 3.4.2.5 服务单元详细信息表(Tbl_SrvUnit) 183 3.4.2.6 呼叫基础信息表(Tbl_Contact_Base) 184 3.4.3 服务明细数据视图 187 3.4.3.1 服务单元明细视图(View_SrvUnit_Detail) 187 3.4.3.2 资源受理服务明细视图(View_Res_Working) 189 3.4.3.3 资源协作服务明细视图(View_Res_Coorporation) 191 3.4.3.4 坐席工作状态明细视图(View_Agent_Status) 192 3.4.3.5 中继组状态明细视图(View_TrunkGroup_Status) 193 3.4.3.6 系统呼叫明细视图(View_Contact_Data) 194 3.4.4 统计数据表和视图 195 3.4.4.1 服务统计表(未定义) 195 3.4.4.2 呼叫流量表(时、日、月) 195 3.4.4.3 服务单元统计表(时、日、月) 196 3.4.4.4 坐席受理服务统计表(时、日、月) 198 3.4.4.5 设备资源服务统计表(时、日、月) 200 3.4.4.6 坐席工作统计表(时、日、月) 202 3.4.4.7 坐席工作日志表 203 附录: 204 附录A:统计开发特殊域说明 204 附录B:统计开发特殊概念的说明 206 附录C:常用错误代码对照表 207 附录D:坐席状态迁移图 211 附录F:转移方法与状态关系表 212
目 录 1 前言 1 2 USE概述 2 2.1服务部件 4 2.2统计数据库说明 5 2.3开发接口 5 2.4实用工具 6 3 USE开发指南 8 3.1 坐席软电话开发说明 8 3.1.1 API层开发 10 long USE_ConnectToAgent 12 long USE_DisconnectAgent 13 long USE_Login 14 long USE_LoginEx 16 long USE_Logout 17 long USE_ SetAgentStatus 18 long USE_GetAgentEvent 19 long USE_ForceLogout 23 long USE_SendMsgToAgent 24 long USE_BroadMsgToAll 25 long USE_BroadMsgToAgentGroup 26 long USE_GetAgentStatus 27 long USE_GetAgentDNByID 29 long USE_GetAgentIDByDN 30 long USE_ConnectTelBaseServer 31 long USE_DisconnectFromTelBaseServer 32 long USE_GetAssociateData 33 long USE_SetAssociateData 35 long USE_AnswerCall 37 long USE_DisconnectCall 38 long USE_HoldCall 39 long USE_RetrieveHeld 40 long USE_ConsultCall 41 long USE_ConferenceCall 43 long USE_TransferCall 44 long USE_ReconnectHeld 45 long USE_MakeCall 46 long USE_SingleStepTransfer 47 long USE_SingleStepConference 48 long USE_GetDeviceState 49 long USE_ConnectToRouter 51 long USE_DisconnectFromRouter 52 long USE_GetSrvRoutePoint 53 long USE_SetService 54 long USE_GetServiceData 56 long USE_ReqVirtualRoute 58 long USE_GetRouteTarget 59 long USE_RegOutboundSrv 61 long USE_GetAllSrvRes 62 long USE_WithdrawPreLock 63 long USE_WithdrawVirtualRoute 64 long USE_GetResourceCount 65 long USE_GetResourceDetail 66 long USE_SetServiceEx 68 long USE_GetSrvDescByContact 69 int TV_Installed 71 int TV_Initialize 71 Void TV_Disable 72 Void TV_HangUpCtrl 72 Void TV_OffHookCtrl 73 int TV_StartDial 73 Void TV_FlushDTMF 74 int TV_GetDTMFChar 75 Void TV_ConnectChannels 75 Void TV_DisconnectChannels 76 Void TV_ConnectTo 76 long TV_StartRecordFile 77 long TV_StartPlayFile 77 long TV_PlayFileRest 78 long TV_StopPlayFile 78 3.1.2 USE_AgentBar OCX层开发 79 3.1.2.1 USE_AgentBar控件说明 79 3.1.2.2 USE_AgentBar控件属性 82 3.1.2.3 USE_AgentBar方法 85 3.1.2.4 USE_AgentBar事件 124 3.2 USE_Monitor OCX开发 133 3.2.1 USE_Monitor控件概述 133 3.2.2 USE_Monitor方法说明 133 long Init( ) 133 long Stop( ) 134 long GetFirstService( ) 135 long GetNextService( ) 137 bool IsLastService ( ) 138 long GetServiceStatistic( ) 139 long GetAllServiceStatistic( ) 142 long GetAgentStatusByID( ) 144 long GetFirstAgentByService( ) 145 long GetNextAgentByService( ) 147 bool IsLastAgent ( ) 148 long GetDeviceStatusByID( ) 149 long GetFirstDeviceByService( ) 150 long GetNextDeviceByService( ) 151 bool IsLastDevice( ) 152 long GetFirstTrunkGroup( ) 153 long GetNextTrunkGroup( ) 154 bool IsLastTrunkGroup( ) 155 bool IsAgentResource( ) 156 long GetTrunkGroupStatistic( ) 157 long GetaAllTrunkGroupStatistic() 158 long BroadcastMsgToServiceGroup() 159 long BroadcastToAll() 160 long SendMsgToAgent() 161 long ForceLogout( ) 162 3.3 IVR接口开发 163 3.3.1 接口数据类型 163 3.3.2 接口函数定义 164 USE_Result USE_SetAssociateData() 164 USE_Result USE_GetAssociateData() 166 USE_Result USE_MakeService() 168 USE_Result USE_RequestService() 169 USE_Result USE_ReqOutboundSrv() 171 USE_Result USE_ReqPreLockSrv() 172 USE_Result USE_WithdrawPreLock() 173 USE_Result USE_GetServiceInfo() 174 3.3.3 COM组件发布 176 COMUSE_MakeServiceVoiceMail 176 3.4 统计报表开发 177 3.4.1 概述 177 3.4.2 基础数据表 177 3.4.2.1 坐席登录日志表 (Tbl_Agent_Log) 177 3.4.2.2 坐席工作状态明细表(Tbl_Agent_Status) 179 3.4.2.3 资源服务信息表(Tbl_Res_Working) 180 3.4.2.4 资源协作服务信息表(Tbl_Res_Coorporation) 182 3.4.2.5 服务单元详细信息表(Tbl_SrvUnit) 183 3.4.2.6 呼叫基础信息表(Tbl_Contact_Base) 184 3.4.3 服务明细数据视图 187 3.4.3.1 服务单元明细视图(View_SrvUnit_Detail) 187 3.4.3.2 资源受理服务明细视图(View_Res_Working) 189 3.4.3.3 资源协作服务明细视图(View_Res_Coorporation) 191 3.4.3.4 坐席工作状态明细视图(View_Agent_Status) 192 3.4.3.5 中继组状态明细视图(View_TrunkGroup_Status) 193 3.4.3.6 系统呼叫明细视图(View_Contact_Data) 194 3.4.4 统计数据表和视图 195 3.4.4.1 服务统计表(未定义) 195 3.4.4.2 呼叫流量表(时、日、月) 195 3.4.4.3 服务单元统计表(时、日、月) 196 3.4.4.4 坐席受理服务统计表(时、日、月) 198 3.4.4.5 设备资源服务统计表(时、日、月) 200 3.4.4.6 坐席工作统计表(时、日、月) 202 3.4.4.7 坐席工作日志表 203 附录: 204 附录A:统计开发特殊域说明 204 附录B:统计开发特殊概念的说明 206 附录C:常用错误代码对照表 207 附录D:坐席状态迁移图 211 附录F:转移方法与状态关系表 212

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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