OVH Cloud OVH Cloud

IE et OLE

6 réponses
Avatar
pascal
Salut,

Je cherche à controler une session IE d'ouverte.
J'ai tester avec OLE, mais cela m'ouvre une nouvelle fenêtre à chaque
fois.
Mon probléme et de lire l'URL active d'IE afin de chercher le server
intranet en cours afin de recreer un autre requête sur ce serveur.
En utilisant ShellExec, cela n'ouvre pas de nouvelle fenêtre, mais je
n'ai pas l'URL active.

Il y a une solution ?

6 réponses

Avatar
Christian ASTOR
pascal wrote:

Mon probléme et de lire l'URL active d'IE



IWebBrowser2::get_LocationURL()
Avatar
pascal
On Mon, 13 Sep 2004 23:05:22 +0200, Christian ASTOR wrote:

pascal wrote:

Mon probléme et de lire l'URL active d'IE



IWebBrowser2::get_LocationURL()



Cela ne marche que sur un IWebBrowser creer par l'appli non ?
Les test fait avec ne fonctionne qu'avec un IWebBrowser dans une fenêtre
de mon applli et ne creer pas de nouvelle fenêtre.
Avatar
Christian ASTOR
pascal wrote:

IWebBrowser2::get_LocationURL()



Cela ne marche que sur un IWebBrowser creer par l'appli non ?
Les test fait avec ne fonctionne qu'avec un IWebBrowser dans une fenêtre
de mon applli et ne creer pas de nouvelle fenêtre.



Non, cela marche à partir d'une fenêtre IE existante.
On récupère l'IHTMLDocument2 interface par la KB249232
Puis IHTMLDocument2::QueryInterface() => IServiceProvider
Puis IServiceProvider::QueryService() => IWebBrowser2
Et j'ai bien l'URL courante ds IWebBrowser2::get_LocationURL()
Avatar
pascal
On Tue, 14 Sep 2004 22:33:40 +0200, Christian ASTOR wrote:

pascal wrote:

IWebBrowser2::get_LocationURL()



Cela ne marche que sur un IWebBrowser creer par l'appli non ?
Les test fait avec ne fonctionne qu'avec un IWebBrowser dans une fenêtre
de mon applli et ne creer pas de nouvelle fenêtre.



Non, cela marche à partir d'une fenêtre IE existante.
On récupère l'IHTMLDocument2 interface par la KB249232
Puis IHTMLDocument2::QueryInterface() => IServiceProvider
Puis IServiceProvider::QueryService() => IWebBrowser2
Et j'ai bien l'URL courante ds IWebBrowser2::get_LocationURL()



Je connaissais la partie HWND et Messages, mais pas le reste. J'ai
regardé dans MSDN et KB249232 et adapter pour BCB6, mais en ce qui
concerne ::QueryInterface et ::QueryService, je séche... GID, IID, ou
et comment trouver ces infos ?
Avatar
pascal
On Tue, 14 Sep 2004 22:33:40 +0200, Christian ASTOR wrote:

pascal wrote:

IWebBrowser2::get_LocationURL()



Cela ne marche que sur un IWebBrowser creer par l'appli non ?
Les test fait avec ne fonctionne qu'avec un IWebBrowser dans une fenêtre
de mon applli et ne creer pas de nouvelle fenêtre.



Non, cela marche à partir d'une fenêtre IE existante.
On récupère l'IHTMLDocument2 interface par la KB249232
Puis IHTMLDocument2::QueryInterface() => IServiceProvider
Puis IServiceProvider::QueryService() => IWebBrowser2
Et j'ai bien l'URL courante ds IWebBrowser2::get_LocationURL()



Pour tout ce qui est HWND et Message, Ok. Mais ::QueryInterface et
::QueryService ? Là je séche.
Les GID et IID, ont les trouve où ? J'ai éplucher MSDN et les KB, mais
c'est pas toujours trés clair quand on prend le train en marche.
Vous pouvez être plus clair sur ces commandes ?
Avatar
Christian ASTOR
pascal wrote:

Pour tout ce qui est HWND et Message, Ok. Mais ::QueryInterface et
::QueryService ? Là je séche.
Les GID et IID, ont les trouve où ? J'ai éplucher MSDN et les KB, mais
c'est pas toujours trés clair quand on prend le train en marche.
Vous pouvez être plus clair sur ces commandes ?



C'est tjrs le même principe :

IServiceProvider *pServProv;
IWebBrowser2* pWebBrowser2;
hr = pHTMLDocument2->QueryInterface(IID_IServiceProvider, (LPVOID
*)&pServProv);
if (SUCCEEDED(hr))
{
hr = pServProv->QueryService(IID_IWebBrowserApp, IID_IWebBrowser2,
(LPVOID *)&pWebBrowser2);
if (SUCCEEDED(hr))
{
//pWebBrowser2->CeQueTuVeux();
pWebBrowser2->Release();
}
pServProv->Release();
}