JNA с использованием LParam в низкоуровневом обратном вызове мыши - PullRequest
0 голосов
/ 20 сентября 2018

Я пытаюсь отслеживать события мыши с помощью низкоуровневой зацепки мыши в Java, используя JNA (или собственный доступ к Java), чтобы проверить флаг LLMHF_INJECTED.Я не могу понять, как привести указатель lparam к MSLLHOOKSTRUCT, как в c ++.Вот как выглядит моя текущая функция обратного вызова.

LowLevelMouseProc LLMP = new LowLevelMouseProc() {
    public LRESULT callback(int nCode, WPARAM wParam, LPARAM lParam) {


        if (nCode >= 0){

        }

        Pointer ptr = lParam.toPointer();
        long peer = Pointer.nativeValue(ptr); 
        return User32.INSTANCE.CallNextHookEx(hook, nCode, wParam,new LPARAM(peer));
    }
};

У меня также есть структура крюка, выделенная в его собственном классе, как показано ниже:

public class MSLLHOOKSTRUCT extends Structure{

public static class ByReference extends MSLLHOOKSTRUCT implements Structure.ByReference {};

    public POINT pt;
    public DWORD mouseData;
    public DWORD flags;
    public DWORD time;
    public ULONG_PTR dwExtraInfo;

    @Override
    protected List<String> getFieldOrder() {
        return null;
    }
}

Мне просто нужно знать, каксопоставить указатель с MSLLHOOKSTRUCT.

...