IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

TCppWebBrowser et protocole 'about'


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut TCppWebBrowser et protocole 'about'
    Bonjour,

    J'ai eu le besoin de vérifier un petit truc sur l'utilisation du TCppWebBrowser, et je suis tombé sur ' l'astuce ' du protocole 'about' dans la FAQ -> ici

    Je n'ai rien qui fait du HTML dans une appli - mon idée est de répondre a un cas a venir ou j'aurai des valeurs dans une table me servant pour générer ensuite le htmémèle - mais comme je voulais tester tout de même rapidement, j'ai récupéré le code source d'une page internet et suivi pas a pas le code de la FAQ ...
    Mais ça marche po, rien ne bouge. Qu'ai je donc oublié ...

    Juste pour info, je suis sous BDS 2006.

    NB, il se pourrait que ma question semble stupide mais ya vraiment des fois ou je me sent l'âme d'un grand débutant sur certains points.

    Merci d'avance,
    @ +

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Regarde ce lien, notamment la remarque sur IE 6.0. Peut-être est-ce la cause du problème ?

    http://support.microsoft.com/kb/183978/en-us

  3. #3
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Bonjour,

    Merci pour le lien ...
    Effectivement, si j'ai bien tout compris, la méthode exposée dans la FAQ avec le 'about:' ne devrait donc pas fonctionner.
    J'ai un peu cherché sur le net, et suis tombé sur un code assez amusant et qui semble fonctionner avec un 'Stream' :

    (ou CW est mon TCppWebBrowser)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
      TMemoryStream *stm = new TMemoryStream();
      Memo1->Lines->SaveToStream(stm);
      stm->Seek(0,0);
     
      IPersistStreamInit *psi;
      TStreamAdapter *sa = new TStreamAdapter(stm,soReference);
     
      if (SUCCEEDED(CW->Document->QueryInterface(IID_IPersistStreamInit,(void **)&psi)))
      {
    	psi->Load(*sa);
      }
     
      delete stm;
    Néanmoins, ceci ne fonctionne que si je lance au préalable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CW->Navigate(WideString("about:blank"));
    @ +

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Oui, effectivement, c'est très intéressant et cela résoud ton problème.
    Tu peux te passer du TMemo en procédant comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class TMyMemoryStream:public TMemoryStream
    {
    public:
        TMyMemoryStream(void) : TMemoryStream() {};
        inline void InitMemory(void *Ptr, int Size){ SetPointer(Ptr,Size);};
    };
    (Je passe par une classe dérivée car SetPointer n'est pas accessible).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CW->Navigate(WideString("about:blank"));
     
    TMyMemoryStream *stm = new TMyMemoryStream();
    stm->Clear();
    stm->InitMemory(Buffer,Size); // ton texte à afficher et sa longueur (avec \0)
    stm->Seek(0,soFromBeginning);
     
    IPersistStreamInit *psi;
    ....
     
    stm->InitMemory(0,0);
    delete stm;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. protocol modbus
    Par greatboy dans le forum Développement
    Réponses: 7
    Dernier message: 21/01/2008, 10h58
  2. envoi de mail, protocol SMTP langage C
    Par Heimdall dans le forum Développement
    Réponses: 2
    Dernier message: 23/05/2003, 11h22
  3. le protocole snmp
    Par stephy dans le forum Développement
    Réponses: 4
    Dernier message: 06/12/2002, 20h55
  4. Quelle est la fiabilité du protocole SSL ?
    Par Anonymous dans le forum Développement
    Réponses: 5
    Dernier message: 05/09/2002, 13h31
  5. Réponses: 2
    Dernier message: 31/08/2002, 21h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo