In Fenster Button einfügen



  • Hi,
    wie kann man im folgendem Code noch ein Button einfüge?

    void BrowserThread( void* pParams )
    {
    	OleInitialize(NULL);
    	BROWSER_INFO *pBrowserInfo = (BROWSER_INFO *)pParams;
      	IWebBrowser2* m_pInetExplorer;
    
        HRESULT hr;
    		HICON hIcon;
        CLSID clsid;
        LPUNKNOWN punk=NULL;
        CLSIDFromProgID (OLESTR("InternetExplorer.Application"), &clsid);
        hr = CoCreateInstance (clsid, NULL, CLSCTX_SERVER, IID_IUnknown, (LPVOID *) &punk);
        if (SUCCEEDED(hr))
    	  {
    		punk->QueryInterface (IID_IWebBrowser2, (LPVOID *) &m_pInetExplorer);
    		punk->Release();
    		VARIANT vars[4];
            memset(vars,0,sizeof(vars));
            BSTR BStrURL = _com_util::ConvertStringToBSTR((const char *)(pBrowserInfo->zUrl));
    
    		m_pInetExplorer->put_Resizable(VARIANT_FALSE);
            m_pInetExplorer->put_ToolBar(FALSE);
            m_pInetExplorer->put_AddressBar(VARIANT_FALSE);
            m_pInetExplorer->put_MenuBar(VARIANT_FALSE);
            m_pInetExplorer->put_StatusBar(VARIANT_FALSE);
            m_pInetExplorer->put_Width(pBrowserInfo->nWidth);
            m_pInetExplorer->put_Height(pBrowserInfo->nHeight);
    
            m_pInetExplorer->put_Visible(VARIANT_TRUE);
            HRESULT hrie = m_pInetExplorer->Navigate(BStrURL,vars,vars+1,vars+2,vars+3);
            SysFreeString(BStrURL);
    				if (SUCCEEDED(hrie))
    				{
    						VARIANT_BOOL bBusy = VARIANT_TRUE;
    						while(bBusy == VARIANT_TRUE)
    						{
    								Sleep(500);
    								m_pInetExplorer->get_Busy(&bBusy);
    						}
     						HWND hWnd = NULL;
    						m_pInetExplorer->get_HWND ((long*)(&hWnd));
    						if (IsWindow(hWnd) && pBrowserInfo->hIcon != NULL)
    						{
    								hIcon = pBrowserInfo->hIcon;
    								SendMessage(hWnd, WM_SETICON, (WPARAM)ICON_SMALL, (LPARAM)hIcon);
    						}
    		//	Do other interesting IE stuff here while the window is valid.
    		//			while(IsWindow(hWnd))
    		//			{
    		//					Sleep(500);
    		//					m_pInetExplorer->get_HWND ((long*)(&hWnd));
    		//			}
    				}
    				m_pInetExplorer->Release();
    	  }
        OleUninitialize();
    		// thread exiting.
    }
    

    Verzweifle daran!

    Entnommen von: http://www.codeproject.com/KB/COM/IWebBrowser2.aspx



  • Kann mir auch jemand sagen, was ich tun kann, damit ich sachen machen kann, wenn das Fenster geschlossen wird?
    Wenn das Fenster geschlossen wird würde ich gerne etwas ausführen, aber egal wohin ich es packe.... Es wird immer sofort ausgeführt.


  • Mod

    Wenn Du mehr Kontrolle willst, dann slltest Du den Internet Explorer in einem eigenen Fenster hosten.

    Auch dazu findest Du Beispiele auf CodeProject.
    z.B.:
    http://www.codeproject.com/KB/miscctrl/simplebrowserformfc.aspx



  • Danke, aber das ist noch ein wenig zu "hoch" für mich. Das andere Beispiel läuft auch nur mit MFC, leider.


  • Mod

    dfhjdtzjetj schrieb:

    Danke, aber das ist noch ein wenig zu "hoch" für mich. Das andere Beispiel läuft auch nur mit MFC, leider.

    Bei "zu hoch" kann ich Dir auch nicht helfen! Das ist eben kein einfaches Thema, wenn Du noch mehr über das Browser Fenster wissen willst, oder eingreifen willst.

    Ansonsten: Der Haupteil ist COM...
    Wenn Du weiter die Samples ansiehst findest Du auch eine ATL Version hier:
    http://www.codeproject.com/KB/miscctrl/webapp.aspx


Anmelden zum Antworten