Connecting to a running instance of Internet Explorer Iowa

Methods to connect to a running instance of IE

Local Companies

Ice Technoligies Inc
(319) 373-2005
204 Collins Rd NE
Cedar Rapids, IA
Crescent Technologies Inc
(563) 323-7126
929 College Ave
Davenport, IA
Infoweb Systems Inc
(563) 582-5042
3435 Asbury Rd Ste 175
Dubuque, IA
Hybrid Technologies
(319) 367-2230
207 E Linder St
New London, IA
Black B A Solutions
(515) 382-1027
1731 S G Ave
Nevada, IA
Silicon Plains Technologies
(515) 225-8700
8530 New York Ave
Urbandale, IA
Technical Solution Design Proffesional
(563) 359-6060
5129 Utica Ridge Rd
Davenport, IA
Eurosoft
(712) 255-7483
700 Jackson St
Sioux City, IA
Palmer Group
(515) 225-7000
3737 Woodland Ave Ste 300
West Des Moines, IA
Softechnics Inc
(515) 327-9300
4500 Westown Pkwy Ste 250
West Des Moines, IA

provided by: 
Originally published at Internet.com


There are some methods to connect to a running instance of IE. This one is how to connect through the ROT (Running Object Table).

Usually, an application connects to a running instance of another application using the Running Object table. However the Internet Explorer 4.0 doesn't not register itself in ROT. The solution is to write so-called "Browser Helper Object" – a tiny COM object that exposes IObjectWithSite interface and register itself in the ROT. Also it's necessary to register this object in the Registry under the following key: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\ The Internet Explorer will create new instance of each Browser Helper Object listed in registry every time new instance of Internet Expoler is started. HKLM\SOFTWARE\Microsoft\Windows \CurrentVersion\Explorer\Browser Helper Objects\{CE7C3CF0-4B15- 11D1-ABED-709549C10000}

The following code demonstrates how to allow multiple instances of the Internet Explorer to be registered in the ROT using item moniker. ///////////////////////////////////////////////////////////////////////////// IEHELPER.H #ifndef __IEHELPER_H_ #define __IEHELPER_H_ #include "resource.h" // main symbols ///////////////////////////////////////////////////////////////////////////// // CIEHelper class CIEHelper : public CComObjectRootEx, public CComCoClass, public IObjectWithSiteImpl, public IIEHelper { public: CIEHelper() { m_dwROTID = 0; } _1_CIEHelper() { } // IObjectWithSite interface STDMETHOD(SetSite)(IUnknown* pUnkSite); DECLARE_REGISTRY_RESOURCEID(IDR_IEHELPER) BEGIN_COM_MAP(CIEHelper) COM_INTERFACE_ENTRY(IIEHelper) COM_INTERFACE_ENTRY(IObjectWithSite) END_COM_MAP() // IIEHelper public: void SetROTID(DWORD dwValue) { m_dwROTID = dwValue; } private: DWORD m_dwROTID; void ROT_UnRegister(); void ROT_Register(); }; #endif //__IEHELPER_H_ /////////////////////////////////////////////////////////////////// IEHELPER.CPP // IEHelper.cpp : Implementation of CIEHelper #include "stdafx.h" #include "IE.h" #include "IEHelper.h" #include #include // the IID_IWebBrowser is located over there #include ///////////////////////////////////////////////////////////////////////////// // CIEHelper // // CObjectWithSite Methods // STDMETHODIMP CIEHelper::SetSite(IUnknown* pUnkSite) { USES_CONVERSION; // remove previously registered object from the table ROT_UnRegister(); // neccessary initialization HRESULT hResult = IObjectWithSiteImpl::SetSite(pUnkSite); // register helper object in the running object table ROT_Register(); return hResult; } /////////////////////////////////////////////////////////////////////////// // // // Private Section // const static TCHAR* szMonikerTemplateName = _T("Browser Helper Object"); // // register the object in the running object table // void CIEHelper::ROT_Register() { CComPtr pTable; if(GetRunningObjectTable(0, &pTable) == S_OK) { CComBSTR bstrItemName; CComPtr pMoniker; TCHAR szBuffer[1024]; sprintf(szBuffer, "%s | %d", szMonikerTemplateName, m_spUnkSite); bstrItemName = szBuffer; if(CreateItemMoniker(NULL, bstrItemName, &pMoniker) == S_OK) { DWORD dwRegister; if(pTable->Register(1, (IUnknown*)this, pMoniker, &dwRegister) == S_OK) { SetROTID(dwRegister); ATLTRACE("IIEHelper: the moniker %s has been registered successfully\n", szBuffer); } else { ATLTRACE("IIEHelper: failed to register moniker % s in the ROT\n", szBuffer); } } else { ATLTRACE("IIEHelper: failed to create moniker %s\n", szBuffer); } } else { ATLTRACE("IIEHelper: Could not retrieve the ROT pointer\n"); } } void CIEHelper::ROT_UnRegister() { CComPtr pTable; if(GetRunningObjectTable(0, &pTable) == S_OK) { HRESULT hRes = pTable->Revoke(m_dwROTID); ATLTRACE("IIEHelper: ID = %d, result code %x\n", m_dwROTID, hRes); } SetROTID(0); } ////////////////////////////////////////////////////////////////////// IEHELPER.RGS // The following lines should be included into the self-registration portion of // COM application... HKLM { SOFTWARE { Microsoft { Windows { CurrentVersion { Explorer { 'Browser Helper Objects' { } } } } } } } ...

Read article at Internet.com site
Regional Articles
- Connecting to a running instance of Internet Explorer Ames IA
- Connecting to a running instance of Internet Explorer Ankeny IA
- Connecting to a running instance of Internet Explorer Bettendorf IA
- Connecting to a running instance of Internet Explorer Burlington IA
- Connecting to a running instance of Internet Explorer Cedar Falls IA
- Connecting to a running instance of Internet Explorer Cedar Rapids IA
- Connecting to a running instance of Internet Explorer Clinton IA
- Connecting to a running instance of Internet Explorer Coralville IA
- Connecting to a running instance of Internet Explorer Council Bluffs IA
- Connecting to a running instance of Internet Explorer Davenport IA
- Connecting to a running instance of Internet Explorer Des Moines IA
- Connecting to a running instance of Internet Explorer Dubuque IA
- Connecting to a running instance of Internet Explorer Fort Dodge IA
- Connecting to a running instance of Internet Explorer Indianola IA
- Connecting to a running instance of Internet Explorer Iowa City IA
- Connecting to a running instance of Internet Explorer Marion IA
- Connecting to a running instance of Internet Explorer Marshalltown IA
- Connecting to a running instance of Internet Explorer Mason City IA
- Connecting to a running instance of Internet Explorer Muscatine IA
- Connecting to a running instance of Internet Explorer Oskaloosa IA
- Connecting to a running instance of Internet Explorer Ottumwa IA
- Connecting to a running instance of Internet Explorer Sioux City IA
- Connecting to a running instance of Internet Explorer Urbandale IA
- Connecting to a running instance of Internet Explorer Waterloo IA
- Connecting to a running instance of Internet Explorer West Des Moines IA
Related Local Events
Technology Series: Cloud Computing, Data Hosting and Disaster Recovery
Dates: 1/19/2010 - 1/19/2010
Location: Alliance Technologies Inc‎
Des Moines, IA
View Details

Chamber Coffee - Vantus Bank
Dates: 11/18/2009 - 11/18/2009
Location: Le Mars Chamber of Commerce
Le Mars, IA
View Details

Chamber Coffee - The Living Center
Dates: 11/11/2009 - 11/11/2009
Location: Le Mars Chamber of Commerce
Le Mars, IA
View Details

Topics: 
Architecture & Design Languages & Tools Project Management Web Services
Database Microsoft & .NET Security Wireless
Java Open Source Techniques XML