Lösung Callbacks - Zugriff auf Variablen



  • Hallo,

    die Überschrift ist nicht besonders eindeutig, ich bitte um nachsehen 😉

    Zu meinem Problem. Mein Programm arbeitet im Hintergrund und bekommt Callbacks vom System, z.B. Mausbewegungen -> GLOBAL, also ich bekomme nicht nur die Mausbewegungen von meiner Oberfläche (die auf meiner Form erfolgt sind) mit, sondern alle anderen auch.
    Nun will ich z.B., so Sinnlos wie es erscheint, den Linksklick deaktivieren - ersteinmal kein Problem, da ich die Message Linksklick bekomme, überwachen kann und somit nicht ans System weitergeben brauch (mittels SystemHook gelöst).
    Die Messages bekomme ich in einer Callback-Funktion, dll oder auch intern möglich (über __extern Definition). Wie bekomme ich Zugriff auf die Variablen, Strukturen in meiner Anwendung? Z.B. Möchte ich auf der Oberfläche auswählen lassen, ob Linksklick oder Rechtsklick deaktiviert werden soll, diese Infos muss ich in die Callback bekommen, um das ganze dynamisch zu gestalten. Kann ich die Informationen irgendwie im Systemspeicher ablegen (weiß ned, was es da so gibt), und dann aus der CallBack-Funktion darauf zugreifen?

    Über eine Nachricht würde ich mich freuen.

    Gruß



  • Ein Ansatz:
    In der DLL ne exportierte Func schreiben, mit der du z.B. ein Flag setzen kannst, d.h. vom Dialog aus die Funktion aufrufen.
    Noch kurz ein bisschen Code für besseres Verständnis:

    //dlg
    const int disableleftmouse 1
    const int disableleftmouse 2
    void xDlg::OnChangeRadios()
    {
    UpdateData();
    switch(m_iRadioButtons)
    {
    case 0:
    DLLFunc(disableleftmouse);
    break;
    case 1:
    DLLFunc(disablerightmouse);
    break;
    }
    }
    //dll
    const int disableleftmouse 1
    const int disableleftmouse 2
    void _stdcall DLLFunc(int flag)
    {
    m_iFlag = flag;
    }
    //messageloop
    LRESULT CALLBACK call(/*ka parameter*/)
    {
    switch(msg)
    {
    case WM_LEFTMOUSE //oda so :D
    if(flag!= disableleftmouse) //msg behandeln
    //etc.
    }
    }
    

    MfG brot


Anmelden zum Antworten