Marshal.PtrToStructure throwing System.ArgumentException error
Próbuję uzyskać KBDLLHOOKSTRUCT z lParam na haku na klawiaturze.
private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
{
KBDLLHOOKSTRUCT kbd = new KBDLLHOOKSTRUCT();
Marshal.PtrToStructure(lParam, kbd); // Throws System.ArguementException
...
Niestety PtrToStructure rzuca dwa
A first chance exception of type 'System.ArgumentException' occurred in myprogram.exe
błędy przy każdym naciśnięciu klawisza. Zatrzymuje również tę metodę na swoich torach.
MSNDA mówi: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.
Co mogę tutaj zrobić, aby to działało? LParam wychodzi prosto z haka na klawiaturze, więc spodziewałbym się, że będzie poprawny. Czy któryś z tych błędów ma tutaj sens i co mogę zrobić, aby to naprawić?