Ich bin ein wenig neu in C++, bitte sei sanft.Wie bekomme ich eine Instanz von IWebBrowser2
Ich versuche, Internet Explorer zu automatisieren. Ich habe eine einfache Win32-Konsole-Anwendung, wo ich versuche, eine Instanz von IE mit einem lokalen Server zu erstellen.
Allerdings gibt mein Aufruf an CoCreateInstance()
kein Objekt zurück, um meine IWebBrowser2
Variable zu initialisieren.
Ich könnte Hilfe verwenden, um zu sehen, was ich vermisse.
Hier ist mein Code:
HRESULT InstanciateIEResult;
HRESULT NavigateResult;
HRESULT ShowBrowserResult;
VARIANT * empty = new VARIANT();
BSTR URL = L"bing.com";
IWebBrowser2* pBrowser2;
InstanciateIEResult = CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER,
IID_IWebBrowser2, (void**)&pBrowser2);
if(pBrowser2)
{
//never reach here
NavigateResult = pBrowser2->Navigate(URL, empty, empty, empty, empty);
ShowBrowserResult = pBrowser2->put_Visible(VARIANT_TRUE);
}
Ich bin auch nicht sicher, wie zu entschlüsseln, was die HRESULT
zurückkehrt. Wenn Sie wissen, wäre das auch hilfreich.
Ich schaute auf Dokumentation auf IWebBrowser2 interface und CoCreateInstance.
Vielleicht haben Sie nicht rufen 'CoInitialize (NULL)'. Zeigen Sie alle relevanten Code, nicht Bits und Stücke. –
Danke, das hat es funktioniert. Ich habe diesen Anruf nicht getätigt und es hat nicht funktioniert. Wenn Sie das zu einer Antwort machen können, werde ich Ihnen Kredit geben. –
Hätten Sie sich den Rückgabewert von 'CoCreateInstance()' angesehen, hätten Sie gesehen, dass es '0x800401F0', auch bekannt als' CO_E_NOTINITIALIZED' zurückgegeben hat ("CoInitialize wurde nicht aufgerufen"). Ignorieren Sie die Rückgabewerte nicht! –