Accueil > Forum > > > > Problème d'appel JavaScript à partir de C++
Problème d'appel JavaScript à partir de C++
vendredi 26 mai 2006 à 13:10:25 |
Problème d'appel JavaScript à partir de C++

barraq
|
Bonjour tout le monde
Je suis en train de travailler sur une interface qui fonctionne à base de DHTML (donc la classe CHtmlView) qui doit se refraichir (par JavaScript) quand arrivent des messages réseau. Sur de divers sites, j'ai trouvé des exemples mais à chaque fois le JavaScript est appelé quand l'utilisateur clique sur un boutton. Problème: l'appel via un autre thread ne marche pas! Je m'expliques:
J'ai généré un projet avec vue HTML en utilisant les options de Visual C++ 6 (projet MFC classique). Dedans, j'ai marqué toutes mes modifications avec le commentaire "JavaScript problem sample" et en effet ces derniers sont dans les fichiers JavaScriptView.h et JavaScriptView.cpp .
Dans JavaScriptView.h, je fais out simplement un override de la méthode OnDocumentComplete.
Dans JavaScriptView.cpp, j'ajoutes deux headers (atlbase.h and mshtml.h) ainsi que la fonction suivante:
// Added for the JavaScript problem sample DWORD WINAPI CallJScriptLater( LPVOID lpParam ) { CComQIPtr<IHTMLDocument2> pHtmlDoc( ((CJavaScriptView*) lpParam)->GetHtmlDocument() );
CComPtr<IHTMLWindow2> pWnd; pHtmlDoc->get_parentWindow( &pWnd );
CComBSTR bstrMember(CString("alert('boo')"));
// then simply execute it CComBSTR vtlanguage(CString("javascript")); VARIANT vresult;
pWnd->execScript(bstrMember,vtlanguage,&vresult);
return 0; }
Et, la fonction qui va l'appeler quand c'est bon:
// Added for the JavaScript problem sample void CJavaScriptView::OnDocumentComplete( LPCTSTR lpzsURL ) { CHtmlView::OnDocumentComplete( lpzsURL );
#if 1 CallJScriptLater( this ); #else CreateThread( NULL, 0, CallJScriptLater, this, 0, NULL); #endif
}
Finalement, j'ai changé OnInitialUpdate pour qu'elle charge about:blank (la page la plus simple imaginable):
void CJavaScriptView::OnInitialUpdate() { CHtmlView::OnInitialUpdate();
// Changed for the JavaScript problem sample Navigate2(_T("about:blank"),NULL,NULL); }
Donc, le programme::
- Une fois initialisé, charge la page about:blank - Une fois le chargement complet, execute le JavaScript: alert('boo')
La JavaScript peut être appelé de deux manières:
- Directement (si OnDocumentComplete a la partie #if 1) - Via un thread (si OnDocumentComplete a la partie #if 0)
PROBLEME: L'appel direct (JavaScript_directCall.exe) fonctionne alors que l'appel via thread (JavaScript_threadCall.exe) foire!
Si quelqu'un aurait une idée de solution merci de me le faire savoir, vous trouverez les sources sur [ Lien ]
Vous remerciant
S. Ali Tokmen
[ Lien ]
|
|
Cette discussion est classée dans : javascript, appel, problem, sample, ondocumentcomplete
Répondre à ce message
Sujets en rapport avec ce message
appel javascript à partie de C [ par jackylaurent2 ]
Bonjour. Je voudrais appeler une fonction javascript codée dans une page HTML à partir d'une DLL écrite en langage C (!!!). Quelqu'un a-t-il déjà prat
problem dans la programation de codage du huffman [ par wissala ]
bonjour, svp j'ai un problem de programer l'algorithm de huffman sur le c++ (pour avoir une image comprissé), alors est ce que quelqu'un peus me aidé
Appel d'une DLL à partir d'un code en C ? [ par hitachicm615 ]
Bonjour à vous,J'ai un programme que j'ai codé en C.J'ai une carte d'experimentation livrée avec une DLL et je voulais savoir comment l'appeller dans
problem d'execution de serveur ""CORBA""" [ par aimenvir12 ]
Bonjour, j'essayé de develloper une application Client/Serveur mais en exécutant le serveur j'ai eu un erreur il capte l'IOR mais il tourne pas il maf
interface d'un code C en java [ par imenteck ]
salut a tous. je veut un petit cou d'aide; j'envie de faire une interface d'un programme avec le turbo C, ils ont me dit que je peut écrit le code de
Appel DLL C++ depuis NSDK [ par wislam2007 ]
Salut les amis, franchement dans la merde! avec une dll c++. Je doit appelé une methode de cette DLL depuis une environnement NSDK, Sachant que cette
Appel librairie COM (en C#) depuis c++ [ par wislam2007 ]
Salut quand je met le type de retour de ma fct c++ (qui appel une fct d'une dll c#(com)) en string, pas de probleme par contre qd j utilise le char* c
chargement dll c# depuis c++ [ par wislam2007 ]
Salut, quand je test sur mon poste l'appel d'une dll c++ qui appel une dll (.tlb) c# ça fonctionne sans probleme, par contre quand je passe a un aut
vs 2008 mfc install problem [ par peuImport ]
bonjour, lorsque j'installe un vc++ 2008 il ne m'installe pas le folder mfcAtl (c:/programFiles/MicrosVisualC++2008/VC/mfcatl) comme c'est le cas pou
Lecture de 2 samples simultanés avec FMOD [ par kouax ]
Bonjour, J'utilise actuellement FMOD, et j'ai un soucis pour lire un sample tout en ayant un autre fond sonore qui tourne en boucle. Je joue donc le "
Livres en rapport
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Forum
ALGORITHMESALGORITHMES par whayoub
Cliquez pour lire la suite par whayoub
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|