summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/osd/modules/input/input_dinput.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/osd/modules/input/input_dinput.h b/src/osd/modules/input/input_dinput.h
index 991444a7cce..037c9c0c511 100644
--- a/src/osd/modules/input/input_dinput.h
+++ b/src/osd/modules/input/input_dinput.h
@@ -87,12 +87,16 @@ public:
template <typename T>
HRESULT enum_attached_devices(int devclass, T &&callback) const
{
+ struct helper
+ {
+ static BOOL CALLBACK callback(LPCDIDEVICEINSTANCE instance, LPVOID ref)
+ {
+ return (*reinterpret_cast<T *>(ref))(instance);
+ }
+ };
return m_dinput->EnumDevices(
devclass,
- [] (LPCDIDEVICEINSTANCE instance, LPVOID ref) -> BOOL
- {
- return (*reinterpret_cast<T *>(ref))(instance);
- },
+ &helper::callback,
reinterpret_cast<LPVOID>(&callback),
DIEDFL_ATTACHEDONLY);
}