/****************************************************************************** * GetProperty : Retrieves information about the input device. */ static HRESULT WINAPI SysKeyboardWImpl_GetProperty(LPDIRECTINPUTDEVICE8W iface, REFGUID rguid, LPDIPROPHEADER pdiph) { SysKeyboardImpl *This = impl_from_IDirectInputDevice8W(iface); TRACE("(%p) %s,%p\n", iface, debugstr_guid(rguid), pdiph); _dump_DIPROPHEADER(pdiph); if (!IS_DIPROP(rguid)) return DI_OK; switch (LOWORD(rguid)) { case (DWORD_PTR)DIPROP_KEYNAME: { HRESULT hr; LPDIPROPSTRING ps = (LPDIPROPSTRING)pdiph; DIDEVICEOBJECTINSTANCEW didoi; if (pdiph->dwSize != sizeof(DIPROPSTRING)) return DIERR_INVALIDPARAM; didoi.dwSize = sizeof(DIDEVICEOBJECTINSTANCEW); hr = SysKeyboardWImpl_GetObjectInfo(iface, &didoi, ps->diph.dwObj, ps->diph.dwHow); if (hr == DI_OK) memcpy(ps->wsz, didoi.tszName, sizeof(ps->wsz)); return hr; } default: return IDirectInputDevice2AImpl_GetProperty( IDirectInputDevice8A_from_impl(This), rguid, pdiph ); } return DI_OK; }
HRESULT WINAPI JoystickWGenericImpl_Poll(LPDIRECTINPUTDEVICE8W iface) { JoystickGenericImpl *This = impl_from_IDirectInputDevice8W(iface); TRACE("(%p)\n",This); if (!This->base.acquired) { WARN("not acquired\n"); return DIERR_NOTACQUIRED; } This->joy_polldev(IDirectInputDevice8A_from_impl(This)); return DI_OK; }
/****************************************************************************** * GetDeviceState : returns the "state" of the joystick. * */ HRESULT WINAPI JoystickWGenericImpl_GetDeviceState(LPDIRECTINPUTDEVICE8W iface, DWORD len, LPVOID ptr) { JoystickGenericImpl *This = impl_from_IDirectInputDevice8W(iface); TRACE("(%p,0x%08x,%p)\n", This, len, ptr); if (!This->base.acquired) { WARN("not acquired\n"); return DIERR_NOTACQUIRED; } /* update joystick state */ This->joy_polldev(IDirectInputDevice8A_from_impl(This)); /* convert and copy data to user supplied buffer */ fill_DataFormat(ptr, len, &This->js, &This->base.data_format); return DI_OK; }