Module: wine Branch: master Commit: 20ba784aace697fed167bb702e175c0f1b0a1a29 URL: http://source.winehq.org/git/wine.git/?a=commit;h=20ba784aace697fed167bb702e...
Author: Vitaliy Margolen wine-patches@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; }
/******************************************************************************