Я пытаюсь реализовать взаимодействие с неуправляемым кодом и c #.
Я решил использовать для этого winmm.dll.
Есть необходимость получить уникальный гид джойстика и определить статус устройства(подключен или нет)
После некоторого расследования я считаю, что найдена функция, которая должна это делать ( joyGetDevCapsA ). Но не ясно, какое значение следует передать как int id параметр
public static class InputControllerInteroperator
{
private const string WINMM_NATIVE_LIBRARY = "winmm.dll";
private const CallingConvention CALLING_CONVENTION = CallingConvention.StdCall;
[DllImport(WINMM_NATIVE_LIBRARY, CallingConvention = CALLING_CONVENTION), SuppressUnmanagedCodeSecurity]
public static extern int joyGetPosEx(int uJoyID, ref JOYINFOEX pji);
[DllImport(WINMM_NATIVE_LIBRARY, CallingConvention = CALLING_CONVENTION), SuppressUnmanagedCodeSecurity]
public static extern int joyGetPos(int uJoyID, ref JOYINFO pji);
[DllImport(WINMM_NATIVE_LIBRARY, CallingConvention = CALLING_CONVENTION), SuppressUnmanagedCodeSecurity]
public static extern int joyGetNumDevs();
[DllImport(WINMM_NATIVE_LIBRARY, CallingConvention = CALLING_CONVENTION, EntryPoint = "joyGetDevCaps"), SuppressUnmanagedCodeSecurity]
public static extern int joyGetDevCapsA(int id, ref JOYCAPS lpCaps, int uSize);
}
Не так много информации о Winmm API для C # продуманного интернета, поэтому, если у кого-то есть опыт, поделитесь им.
Q: Как можно обнаружить подключенный или не подключенный джойстик в текущий момент и получить уникальный идентификатор устройства?