TCppWebBrowser im BDS2006



  • Hallo,

    ich habe ein kleines Problem mit der Komponente "TCppWebBrowser":
    Ich habe eine Seite per Stream in den Browser geladen, und möchte nun z.B. den gesamten Text markieren. Gemäß einem Tutorial, das ich im Internet fand (gemäß dem einzigen Tutorial, das ich im Internet finden konnte), habe ich es wie folgt versucht:

    TVariant vIn, vOut;
    articleDisplay->ControlInterface->ExecWB(Shdocvw_tlb::OLECMDID_SELECTALL,
      Shdocvw_tlb::OLECMDEXECOPT_DODEFAULT, &vIn, &vOut);
    

    Dabei ist articleDisplay die zur Entwurfszeit bekannte Instanz der Klasse TCppWebBrowser.

    Mein Problem ist nun, dass beim Ausführen obigen Codes einjedes Mal eine Exception auftritt:

    "First chance exception at $7C812A5B. Exception class EAccessViolation with message 'Access violation at address 00402933 in module 'myApp.exe'. Read of address 00000000'. Process myApp.exe (1352)"

    Dies tritt leider bei jeder Operation auf, die ich auf die Komponente anwenden will!

    Woran könnte das liegen, bzw. wie kann ich den gesamten Text der Seite markieren, ohne eine Exception auszulösen?



  • Hat keiner eine Idee?



  • Hat denn wirklich niemand eine Idee?

    Ich bin inzwischen am Überlegen, ob es daran liegen könnte, dass ich den IE7 installiert habe ... Könnte das sein?
    Gibt es vlt. sonst noch eine andere Methode, ein TCppWebBrowser dazu zu bringen, den markierten Text in die Zwischenablage zu kopieren?

    Ich bin mit meinem Latein am Ende 😞



  • Reyx schrieb:

    Ich bin inzwischen am Überlegen, ob es daran liegen könnte, dass ich den IE7 installiert habe ... Könnte das sein?(

    Einfach mal auf einem Rechner mit IE<7 ausprobieren?



  • Kann ich machen, aber damit wäre mein Problem leider nicht behoben; mein Programm benötigt nämlich leider ausgerechnet den IE7 für die korrekte Darstellung der Inhalte (der 6er macht Probleme).

    Naja, ich werde es trotzdem mal ausprobieren und dann hier das Ergebnis posten ... Gäbe es sonst vlt. eine Möglichkeit, falls es am IE7 liegen sollte, das Problem zu umgehen? Oder müsste ich dann ob Wohl oder Übel auf "Features" wie "Drucken", "Alles markieren" etc. verzichten?

    EDIT:
    Ich kann mit Gewissheit sagen, dass die Funktion TCppWebBrowser::ControlInterface::ExecWB() die AccessViolations erzeugt ...


Anmelden zum Antworten