Druckertreiber: OMEGA48 erweitern



  • Hallo,

    es geht um den Virtuellen Drucker:
    http://sourceforge.net/projects/omega48/?source=directory

    Die grafische Oberfläche für die Druckereinstellungen möchte ich um ein Pflichtfeld erweitern. Das heißt wenn das Feld nicht befüllt ist soll eine Meldung beim Klicken auf OK erscheinen und der Druckeinstellungsdialog soll sich nicht schließen.

    Mein Ansatz in der Datei "DevicePropertyPageDialog.cpp" (http://sourceforge.net/p/omega48/code/1663/tree/trunk/prndrvui/DevicePropertyPageDialog.cpp) ist wie folgt:

    BOOL DevicePropertyPageDialog::onNotify(WPARAM wParam, LPARAM lParam)
    {
      LPNMHDR lpNMHdr = (LPNMHDR) lParam;
      UINT uiCode = lpNMHdr->code;
    
      switch(uiCode) {
      case PSN_APPLY: {
        if (wcslen(m_om48Devmode.dmExt.wcsPath)==0) {
          SetWindowLong (m_hWnd, DWLP_MSGRESULT, PSNRET_INVALID);
          MessageBox(m_hWnd,TEXT("Es muss ein Pfad eingetragen werden."),TEXT("Pflichtfeld füllen."),MB_OK|MB_ICONINFORMATION);
          return TRUE;
        }
        else
          return onOK(wParam, lParam);   //im Original steht nur diese Zeile in diesem case
      }
    
      case PSN_RESET:
        return onCancel(wParam, lParam);
      }
    
      return FALSE;
    }
    

    Die Struktur "OM48DEVMODEEXTRA" habe ich um das Feld "wcsPath" in der Header-Datei "commondatatypes.h" erweitert.

    Leider funktioniert das nicht.
    Beim Klicken auf Ok wird der Dialog trotzdem geschlossen.

    Was mache ich falsch?



  • Schon mal daran gedacht, False zurückzugeben?



  • Ja, habe ich. Hat nichts gebracht.


  • Mod

    Läuft der überhaupt in Deinen Code hinein?
    Debugge doch mal.



  • Der Code wird ausgeführt. Es wird FALSE zurückgeliefert, der Dialog wird trotzdem geschlossen. Wenn das Kompilat das von Windows ausgeführt wird mit der PDB Datei nicht übereinstimmt wird das vom Debugger angezeigt. Sprich ich debugge die Drucker-DLL die im spoolsv-Prozess geladen ist. Wie gesagt da wird dieser Code ausgeführt.


Log in to reply