Vitaliy Margolen : dinput: Move keyboard to using new GetObjectInfo.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Jan 4 04:45:07 CST 2007
Module: wine
Branch: master
Commit: 20ba784aace697fed167bb702e175c0f1b0a1a29
URL: http://source.winehq.org/git/wine.git/?a=commit;h=20ba784aace697fed167bb702e175c0f1b0a1a29
Author: Vitaliy Margolen <wine-patches at kievinfo.com>
Date: Wed Jan 3 23:04:31 2007 -0700
dinput: Move keyboard to using new GetObjectInfo.
---
dlls/dinput/keyboard.c | 58 +++++++++++------------------------------------
1 files changed, 14 insertions(+), 44 deletions(-)
diff --git a/dlls/dinput/keyboard.c b/dlls/dinput/keyboard.c
index ce04ff9..b77e258 100644
--- a/dlls/dinput/keyboard.c
+++ b/dlls/dinput/keyboard.c
@@ -415,33 +415,18 @@ SysKeyboardAImpl_GetObjectInfo(
DWORD dwObj,
DWORD dwHow)
{
- SysKeyboardImpl *This = (SysKeyboardImpl *)iface;
- DIDEVICEOBJECTINSTANCEA ddoi;
- DWORD dwSize = pdidoi->dwSize;
-
- TRACE("(this=%p,%p,%d,0x%08x)\n", This, pdidoi, dwObj, dwHow);
-
- if (dwHow == DIPH_BYID) {
- WARN(" querying by id not supported yet...\n");
- return DI_OK;
- }
+ HRESULT res;
- memset(pdidoi, 0, dwSize);
- memset(&ddoi, 0, sizeof(ddoi));
+ res = IDirectInputDevice2AImpl_GetObjectInfo(iface, pdidoi, dwObj, dwHow);
+ if (res != DI_OK) return res;
- ddoi.dwSize = dwSize;
- ddoi.guidType = GUID_Key;
- ddoi.dwOfs = dwObj;
- ddoi.dwType = DIDFT_MAKEINSTANCE(dwObj) | DIDFT_BUTTON;
- if (!GetKeyNameTextA(((dwObj & 0x7f) << 16) | ((dwObj & 0x80) << 17), ddoi.tszName, sizeof(ddoi.tszName)))
+ if (!GetKeyNameTextA((DIDFT_GETINSTANCE(pdidoi->dwType) & 0x80) << 17 |
+ (DIDFT_GETINSTANCE(pdidoi->dwType) & 0x7f) << 16,
+ pdidoi->tszName, sizeof(pdidoi->tszName)))
return DIERR_OBJECTNOTFOUND;
- /* And return our just filled device object instance structure */
- memcpy(pdidoi, &ddoi, (dwSize < sizeof(ddoi) ? dwSize : sizeof(ddoi)));
-
_dump_OBJECTINSTANCEA(pdidoi);
-
- return DI_OK;
+ return res;
}
static HRESULT WINAPI SysKeyboardWImpl_GetObjectInfo(LPDIRECTINPUTDEVICE8W iface,
@@ -449,33 +434,18 @@ static HRESULT WINAPI SysKeyboardWImpl_G
DWORD dwObj,
DWORD dwHow)
{
- SysKeyboardImpl *This = (SysKeyboardImpl *)iface;
- DIDEVICEOBJECTINSTANCEW ddoi;
- DWORD dwSize = pdidoi->dwSize;
-
- TRACE("(this=%p,%p,%d,0x%08x)\n", This, pdidoi, dwObj, dwHow);
-
- if (dwHow == DIPH_BYID) {
- WARN(" querying by id not supported yet...\n");
- return DI_OK;
- }
+ HRESULT res;
- memset(pdidoi, 0, dwSize);
- memset(&ddoi, 0, sizeof(ddoi));
+ res = IDirectInputDevice2WImpl_GetObjectInfo(iface, pdidoi, dwObj, dwHow);
+ if (res != DI_OK) return res;
- ddoi.dwSize = dwSize;
- ddoi.guidType = GUID_Key;
- ddoi.dwOfs = dwObj;
- ddoi.dwType = DIDFT_MAKEINSTANCE(dwObj) | DIDFT_BUTTON;
- if (!GetKeyNameTextW(((dwObj & 0x7f) << 16) | ((dwObj & 0x80) << 17), ddoi.tszName, sizeof(ddoi.tszName)))
+ if (!GetKeyNameTextW((DIDFT_GETINSTANCE(pdidoi->dwType) & 0x80) << 17 |
+ (DIDFT_GETINSTANCE(pdidoi->dwType) & 0x7f) << 16,
+ pdidoi->tszName, sizeof(pdidoi->tszName)))
return DIERR_OBJECTNOTFOUND;
- /* And return our just filled device object instance structure */
- memcpy(pdidoi, &ddoi, (dwSize < sizeof(ddoi) ? dwSize : sizeof(ddoi)));
-
_dump_OBJECTINSTANCEW(pdidoi);
-
- return DI_OK;
+ return res;
}
/******************************************************************************
More information about the wine-cvs
mailing list