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 идет прямо с крючка клавиатуры, поэтому я ожидаю, что он будет правильным. Есть ли здесь какая-то из этих ошибок, и что я могу сделать, чтобы это исправить?

Ответы на вопрос(1)

Ваш ответ на вопрос