Marshal.PtrToStructure throwing System.ArgumentException ошибка
пытаюсь получить KBDLLHOOKSTRUCT с помощью клавиатуры "s lParam.
private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
{
KBDLLHOOKSTRUCT kbd = new KBDLLHOOKSTRUCT();
Marshal.PtrToStructure(lParam, kbd); // Throws System.ArguementException
...
К сожалению, PtrToStructure выбрасывает два
A first chance exception of type 'System.ArgumentException' occurred in myprogram.exe
ошибки при каждом нажатии клавиши. Это также останавливает этот метод в своих треках.
MSNDA говорит:http://msdn.microsoft.com/en-us/library/4ca6d5z7.aspx
ArgumentException when:
The structureType parameter layout is not sequential or explicit.
-or-
The structureType parameter is a generic type.
Что я могу сделать здесь, чтобы это заработало? lParam идет прямо с крючка клавиатуры, поэтому я ожидаю, что он будет правильным. Есть ли здесь какая-то из этих ошибок, и что я могу сделать, чтобы это исправить?