Activex Replacement- Plugin Code understanding
[Link]
Technologies and APIs not supported in Microsoft
Edge
Here are some key technologies which will not be supported in Microsoft Edge. A
number of these had been deprecated in the past few releases, but moving to a new
engine allows us to remove support completely. To ensure future compatibility with
Microsoft Edge and other modern browsers, we recommend against any future
development or deployment of these technologies. These technologies will continue to
be supported in Internet Explorer on Windows 10 for users and enterprises who depend
on them.
ActiveX
ActiveX is a binary extension model introduced in 1996 which allowed developers to embed native
Windows technologies (COM/OLE) in web pages. These controls can be downloaded and installed
from a site and were subsequently loaded in-process and rendered in Internet Explorer.
The need for ActiveX controls has been significantly reduced by HTML5-era capabilities, which also
produces interoperable code across browsers. Microsoft Edge will support native PDF rendering and
Adobe Flash as built-in features rather than external [Link] recently demonstrated our early
work on a modern, HTML/JavaScript-based extension model to provide extensibility beyond what is
available with HTML5. We will enable this new model after our initial release of Microsoft Edge this
summer and we look forward to sharing more details soon.
To achieve accessibility across browsers
To achieve more security
ActiveX is a Microsoft technology which is being used in the eRoom Plugin, which is
only supported by Microsoft ‘s Internet Explorer (IE) and not by chrome and all…..
That is the main problem.
Internet Explorer is a series of graphical web browsers developed by Microsoft and
included in the Microsoft Windows line of operating systems, starting in 1995
ERoom was also developed in that era… So…..used Activex technology…
Rich text editing >> ERAddin
D & D >> ERAddin
Firefox plugin >> NPERPlugin
Capturing etrace >> eTrace
Active Template Library
The Active Template Library is a set of template-based C++ classes developed by Microsoft,
intended to simplify the programming of Component Object Model objects. Wikipedia
The Active Template Library (ATL) is a set of template-based C++ classes that let you create small, fast
Component Object Model (COM) objects. It has special support for key COM features, including stock
implementations, dual interfaces, standard COM enumerator interfaces, connection points, tear-off
interfaces, and ActiveX controls.
Developed by: Microsoft Corporation
Operating system: Microsoft Windows
Written in: C++
License: Proprietary
ERAddin
ERClient
ERClientUI
ERCltCommon
ERCommonLite
ERDiagConsole
ERInterfaces
ETraces
NPERPlugin
ResAddin
ResClient
ResCommon
spell
----------------------------------- ---------------------- -------------------------- --------------------------
Program Files and Program Files(x86)
1. The regular Program Files folder holds 64-bit applications, while "Program Files(x86)"
is used for 32-bit applications. Installing a 32-bit application in a PC with a 64-bit
Windows automatically gets directed to Program Files (x86). See Program
Filesand x86
2. The x86 version is there for backwards compatibility so that you can run 32bit
applications on a 64bit OS. So you need both folders and shouldn't “eighty-six” any of
them.
3. TheProgram Files folder serves as the default installation target for 64-bit programs,
while the Program Files (x86) folder is the default installation target for 32-
bitprograms that need WoW64 emulation layer.
4. The first 64 bit edition of Windows was given the title Windows XP x64 . And I guess
the term x64 stuck from there. The x86 moniker comes from the 32bit instruction set. So
all x86 processors (without a leading 80 ) run the same 32 bit instruction set (and hence
are all compatible).
5. What is the x86 vs x64?
6. There will be an entry called System Type listed. If it lists 32-bit Operating
System, then the PC is running the 32-bit (x86) version of Windows. If it lists 64-
bit Operating System, then the PC is running the 64-bit (x64) version of
Windows.
1. ERClient
StdAf .h
atlbase.h >> is a header file which is provided by the Microsoft Active Template Library. The
error "System header atlbase.h is not available" indicates that you do not have a copy of ATL in
your INCLUDE directory
CERPageAddin::CERPageAddin()
{
CERAutoStackTrace trace(kAddinSubsys, 5, "CERPageAddin::CERPageAddin");
m_bWindowOnly = TRUE;
m_fCreateCalled = FALSE;
m_fInitializeCalled = FALSE;
m_fDragDropRegistered = FALSE;
m_fIsInitialized = FALSE;
m_fBrowserOffline = FALSE;
m_browserType = BROWSER_TYPE_BRAND_IE; // convenient initialization
value only!
m_nFirefoxVersion = 0;
}
c:\CodeBase\Main\Source\Client\ERAddIn\[Link]
ASSERT(pPageAddin->m_browserType & BROWSER_TYPE_VERSION_MASK);
// [27748] Get the browser type from the add-in control, not the
registry
m_browserType = pPageAddin->m_browserType;
c:\CodeBase\Main\Source\Core\Common\ERAppState.h
ERBrowserType GetDefaultBrowser();
ERBrowserType GetBrowserType();
TO DEBUG CLIENT CODE ON THE CLIENT MACHINE IN VS 2008 :
Client solution >> ERAddin > properties > c/c++ > General
Debug Information Format == Program Database(/Zi)
Rich text editing
c:\CodeBase\Main\Source\Client\ERAddIn\ERRichText.h Initial Declarations
BEGIN_MSG_MAP(CERRichText)
MESSAGE_HANDLER(WM_CREATE, OnCreate)
MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
MESSAGE_HANDLER(WM_ACTIVATE, OnActivate)
MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBkgnd)
COMMAND_ID_HANDLER(ID_ER_BOLD, OnCharFormat)
COMMAND_ID_HANDLER(ID_ER_ITALIC, OnCharFormat)
COMMAND_ID_HANDLER(ID_ER_UNDERLINE, OnCharFormat)
COMMAND_ID_HANDLER(ID_ER_COLOR, OnColor)
COMMAND_ID_HANDLER(ID_ER_LEFT, OnAlign)
COMMAND_ID_HANDLER(ID_ER_CENTER, OnAlign)
COMMAND_ID_HANDLER(ID_ER_RIGHT, OnAlign)
COMMAND_ID_HANDLER(ID_ER_BULLETS, OnBullets)
COMMAND_ID_HANDLER(ID_ER_SPELLCHECK, OnSpellCheck)
COMMAND_ID_HANDLER(ID_ER_CLIPBOARD, OnBtnClipboard)
COMMAND_ID_HANDLER(ID_ER_LINK, OnLink)
COMMAND_ID_HANDLER(ID_ER_PICTURE, OnPicture)
COMMAND_HANDLER(kEditWndID, EN_CHANGE, OnEditChanged)
NOTIFY_HANDLER(kEditWndID, EN_MSGFILTER, OnMsgFilter)
NOTIFY_HANDLER(kEditWndID, EN_SELCHANGE, OnSelectionChanged)
NOTIFY_CODE_HANDLER(TTN_NEEDTEXT, OnToolTipText)
OnIdle(uMsg); // devious trick to give us a simulated idle function
// inherited message maps
CHAIN_MSG_MAP(CComControl<CERRichText>)
CContainedWindowT<ATLControls::CToolBarCtrl> m_ctlToolbar;
CContainedWindowT<ATLControls::CComboBox> m_ctlFont;
CContainedWindowT<ATLControls::CComboBox> m_ctlSize;
CContainedWindowT<CERRichEditCtrl, CRTEWinTraits> m_ctlEdit;
CComPtr<IRichEditOle> m_pRichEditOle;
CComPtr<ITextDocument>
m_pTextDocument;
c:\CodeBase\Main\Source\Client\ERAddIn\[Link]
Oncreate(
{ CreateToolbar(&rc);
{
* CERRichText::CreateToolbar
*
* Create the toolbar control and set up the buttons,
* combo boxes, etc. The Toolbar is created in the rect
* passed in, and updates the rect to remove its own area
* so that the editor can be created in the rest of the window
CreateEditWnd(&rc);
const SIZE kButtonSize = { 24, 22 };
const SIZE kBitmapSize = { 17, 16 };
Object Linking & Embedding (OLE) is a proprietary technology developed by Microsoft that allows
embedding and linking to documents and other objects. For developers, it brought OLE Control
Extension (OCX), a way to develop and use custom user interface elements. On a technical level, an
OLE object is any object that implements the
IOleObject interface,
possibly along with a wide range of other interfaces, depending on the object's needs
OVERVIEW
OLE allows an editing application to export part of a document to another editing application and
then import it with additional content. For example, a desktop publishing system might send some
text to a word processor or a picture to a bitmap editor using OLE. The main benefit of OLE is to add
different kinds of data to a document from different applications, like a text editor and an image
editor. This creates a Compound File Binary Format document and a master file to which the
document makes reference. Changes to data in the master file immediately affect the document that
references it. This is called "linking" (instead of "embedding").
Its primary use is for managing Compound File Binary Formats, but it is also used for transferring
data between different applications using drag and drop and clipboard operations.
[Link] >> used to run as the background process in the OS and to show as the hidden
items in the taskbar.
DRANG AND DROP BASE
#ifdef _INC_SHELLAPI
// Drag-Drop Functions
void DragAcceptFiles(BOOL bAccept = TRUE) throw()
{
ATLASSERT(::IsWindow(m_hWnd)); ::DragAcceptFiles(m_hWnd,
bAccept);
}
#endif
CERPageAddin::Initialize(
{ AuthSetToken( >> ResetSiteLogin( >>
ValidateServer( >> GetServerList() >>
Run “regedit” >> HKEY_CLASSES_ROOT >>
1. [Link]
2. [Link].1
3. [Link]
4. [Link].7
5. [Link]
6. [Link].7
7. [Link]
8. [Link].1
STEP 1 : entering the request WIN16SQL16/EROOM
CERPageAddin::CERPageAddin()
{
}
c:\CodeBase\Main\Source\Client\ERAddIn\ERPageAddin.h
ProcessWindowMessage(
{ MESSAGE_HANDLER(WM_CREATE, OnCreate)
OnCreate(
{
GetWindowRect(&rc);
DragAcceptFiles(TRUE);
SetupMessaging() >> RegisterDragDrop(
}
------------ ---------------------- ------------------------ -----------------------------------------------
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\atlmfc\include\atlwin.h
WindowProc( >> ProcessWindowMessage( >>
--------------- ------------------ --------------------
STEP 2 : After Clicking “OK”
Software Options
1. Just the web browser
2. ERoom plug-in software (ticked on)
c:\CodeBase\Main\Source\Client\ERAddIn\ERPageAddin.h
BEGIN_MSG_MAP(CERPageAddin)
MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
OnDestroy(
{
RevokeDragDrop(m_hDropWindow);
}
STEP 3 : after clicking “login” with id & password
c:\CodeBase\Main\Source\Client\ERAddIn\[Link]
CERPageAddin::AuthCachePassword(BSTR siteGuid, UINT userID, BSTR username,
BSTR password) // username =sa ; password = sa ;
{ CachePassword(userID, siteGuid, username, password);
{ ERAuthCache& ERAuthCache::GetAuthCache()
{
authCacheMutexLock(
static ERAuthCache theCache;
{ ERAuthCache::ERAuthCache()
{ CreateFileMapping(
ERSetLowIntegrityLevel(
{ ERSetIntegrityLevel(
{ ERGetOSVersion()
MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
------------- --------------- ----------------- -------------------
STEP :4 CLICK “OK” FOR TIME ZONE
Hi
From the analysis of logs, the leaked site connections have been found as mentioned earlier.
Engineering team has prepared the document on how to resolve this leaked connection
errors while migrating custom code to [Link]. You may refer to that and if you don’t find I
can share later as per your request.
The analysis is as follows…
worked on this earlier and found that the reason is unsupported format of custom extension
code.
We have to achieve some technical challenges when migrating custom code from VB6.0 to
[Link] (from 32-bit to 64-bit application). But It seems like some of those challenges was not
been taken care of properly which is causing the current issue.
RICHTEXT EDITING
c:\CodeBase\Main\Source\Client\ERAddIn\[Link]
CERRichText::CERRichText() >> 174 L
{ OnCreate(
CERSpellChecker::CERSpellChecker()
{ CreateSpellcheckEngine()
{ CERWordSCEngine()
{ ERDefaultUserDataDirectory(
{ ERGetOSVersion(}
OnCreate( >> CreateToolbar(&rc);
// create the editor window
CreateEditWnd(&rc)
------------------------- --------------------- ------------
Test Case : Only client can not be even loaded if we remove or rename the
[Link](ActiveX binary)
Reason : ERClient has hardly 2 .cpp files. Even some of those files are linked to ERAddin .cpp
files
(it uses the functions defined in the ERAddin )
[Link] >> nRet = ERClientWinMain (bEmbedded);
ERClientWinMain >> defined in c:\CodeBase\Main\Source\Client\ERAddIn\
[Link]
i.e >> it means all of the 5 features are part of “[Link]”
------------------------- - ----------------------- -----
Firewall
Computing
In computing, a firewall is a network security system that monitors and controls
incoming and outgoing network traffic based on predetermined security rules.
A firewall typically establishes a barrier between a trusted internal network and untrusted
external network, such as the Internet
A firewall is a system designed to prevent unauthorized access to or from a private network.
You can implement a firewall in either hardware or software form, or a combination of
both. Firewalls prevent unauthorized internet users from accessing private networks connected
to the internet, especially intranets
------------ ----------- ---------------- ---------
Windows Firewall
Windows Firewall, is a firewall component of Microsoft Windows. It was first included in
Windows XP and Windows Server 2003. Prior to the release of Windows XP Service Pack 2 in
2004, it was known as Internet Connection Firewall. Wikipedia
Other names: Windows Firewall; Internet Connection Firewall
Included with: Windows XP and later; Windows Server 2008 and later
What is the Hkey_local_machine?
The Windows Registry contains a root key titled HKEY_LOCAL_MACHINE, or HKLM.
The HKLM root key contains settings that relate to the local computer. In Microsoft
Windows XP and prior, there are four main subkeys under HKLM: SAM, SECURITY,
SOFTWARE, [Link] 10, 2017
What is the Hkey?
HKEY stands for "Handle to Registry Key" and is a typedef supplied in the Windows
headers files. The Window architects use the opaque handle scheme that most
operating systems use. When requesting resources from the operating system, you are
given a "handle" or cookie that represents the real object.
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\
7F852643D71E45F44B6CA10BBACB190A\1F61ECF34CCC81A47A7B8873CF4CBA1B
1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-
1-5-18\Components\10088B94E80F8044B84916A05D58D802
>> C:\Program Files (x86)\eRoom 7\[Link]
-------------- ----------------------- ------------------------------------------ ------------------------
How do I activate ActiveX on Google Chrome?
How to Enable ActiveX in Google Chrome
1. Locate and click the "Add to Chrome" button at the top-right of the screen.
2. Click "Continue" when the download dialog box opens at the bottom of the screen.
3. Click "Install" when the dialog box opens after the download is finished. ...
4. Click the IE Tab icon to open a new tab with an Internet Explorer address bar.
w/0 running [Link](eRoom file watcher process) in the task manager or in hidden items
we can use or run the plugin
TASKS
1. As discussed, please try to identify how exactly IE looks for and loads the ActiveX control
[Link].
2. Procmon is one way –
3. A more formal approach could be to read up on how IE loads Active X components in general.
You could investigate what steps the plug-in installer does etc.
4. Once you’ve identified that connection – see if you can disable that, and if you can disable it
then does the Monitor functionality (outlook meeting synch, task synch) still work?
C:\Program Files (x86)\eRoom 7\[Link]
C:\Program Files (x86)\eRoom 7\[Link], 101
I removed this [Link] binary in the registry >> Then plugin is loaded
Plugin still works fine >> but some dependency on RICH text editing
"CLSID\{6E2510E6-BF2D-4C78-9F28-2F5C8760F124}\InprocServer32"
We can use eroom plugin in chrome >> using IE Tab extension
Add-on : ERPageAddin Class
Name: ERPageAddin Class
Publisher: (Not verified) EMC
Type: ActiveX Control
Architecture: 32-bit
Version: 16.4
File date: Wednesday, June 27, 2018, 2:47 PM
Date last accessed: Today, July 5, 2018, 2 minutes ago
Class ID: {6E2510E6-BF2D-4C78-9F28-2F5C8760F124}
Use count: 1842
Block count: 9
File: [Link]
Folder: C:\Program Files (x86)\eRoom 7
Add-On : ERRichText Class
Name: ERRichText Class
Publisher: (Not verified) EMC
Type: ActiveX Control
Architecture: 32-bit
Version: 16.4
File date: Wednesday, June 27, 2018, 2:47 PM
Date last accessed: Today, July 5, 2018, 2 hours ago
Class ID: {40A4B825-09EE-1100-B465-00AA006988E8}
Use count: 88
Block count: 0
File: [Link]
Folder: C:\Program Files (x86)\eRoom 7
Blocked > 1c = 28
Count >> 75b = 1883
Flags >> 4
Time >
Type > 1
Default settings
I.E > Internet option > security > custom level
Activex controls and plugins
1. Allow Activex filtering > disable
2. Allow previously unused activex controls to run w/o prompt > enable
3. Allow scriptlets > enable
4. Allow prompting for activex controls > disable
5. Binary script behaviours > enable
6. Display video… >disable
7. Download signed activex controls > prompt
8. Download unsigned activex controls > disable
9. Initialize and script activex controls > disable
10. Only allow approved domains > disable
11. Run activex controls and plugin > enable
12. Run antimalware > disable
13. Script activex controls > enable
. capture client trace >> we should not see the i.e in the client trace
1. What REG keys for ERPageAddin Add-ons
HKCU\Software\Classes\WOW6432Node\CLSID\{6E2510E6-BF2D-4C78-9F28-
2F5C8760F124}
Value data = “ERPageAddin Class”
Note : I removed here “ERPageAddin Class”
This “ERPageAddin Class” is coming from this registry to I.E manage ADD-ons
If it is “bhanu plugin” > in i.e we wil see “Bhanu plugin”
2. HKCU\Software\Classes\WOW6432Node\CLSID\{6E2510E6-BF2D-4C78-9F28-
2F5C8760F124}\InProcServer32
Default Value data =” C:\Program Files (x86)\eRoom 7\[Link]”
Threadingmodel = “Apartment”
3. HKCU\Software\Classes\WOW6432Node\CLSID\{6E2510E6-BF2D-4C78-9F28-
2F5C8760F124}\MiscStatus\ProgID
Value data = “[Link].7”
4. HKCU\Software\Classes\WOW6432Node\CLSID\{6E2510E6-BF2D-4C78-9F28-
2F5C8760F124}\MiscStatus\ToolBitmap32
Value data = “C:\Program Files (x86)\eRoom 7\[Link], 101”
5. HKCU\Software\Classes\WOW6432Node\CLSID\{6E2510E6-BF2D-4C78-9F28-
2F5C8760F124}\TypeLib
Value data = “{40A4B514-09EE-1100-B465-00AA006988E8}”
6. HKCU\Software\Classes\WOW6432Node\CLSID\{6E2510E6-BF2D-4C78-9F28-
2F5C8760F124}\MiscStatus\Version
Value data = “7.0”
7. HKCU\Software\Classes\WOW6432Node\CLSID\{6E2510E6-BF2D-4C78-9F28-
2F5C8760F124}\MiscStatus\VersionIndependentProgID
Value data = “[Link]”
2. What REG keys for ERRichText Class Add-ons
HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{40A4B825-09EE-1100-
B465-00AA006988E8} = “ERRichText Class”
ProgID = “[Link].7”
ToolboxBitmap32 = “C:\Program Files (x86)\eRoom 7\[Link], 144”
TypeLib = “{40A4B514-09EE-1100-B465-00AA006988E8}”
Version = “7.0”
VersionIndependentProgID = “[Link]”
……../////////////////// --------------------- ////////////////////// ------- ///////
HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{6e2510e6-bf2d-4c78-9f28-2f5c8760f124}\
InprocServer32
{
InprocServer32
{ default = “C:\Program Files (x86)\eRoom 7\[Link]”
InprocServer32 = “=(*S8rl8n?Gz-q5Gpj+bProgramFiles>eZ)p4&B9RAoU}ZanuX[[”
“=(*S8rl8n?Gz-q5Gpj+bProgramFiles>eZ)p4&B9RAoU}ZanuX[[”
ThreadingModel = “Apartment”
ProgID = “[Link].7”
ToolboxBitmap32 = “C:\Program Files (x86)\eRoom 7\[Link], 101”
TypeLib = “{40A4B514-09EE-1100-B465-00AA006988E8}”
Version = “7.0”
VersionIndependentProgID = “[Link]”
}
1. HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{6e2510e6-bf2d-
4c78-9f28-2f5c8760f124} >> clear “InprocServer32”
2. HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{6e2510e6-bf2d-4c78-9f28-
2f5c8760f124} >> clear “InprocServer32
//////////////////////,,,,,,,,,,,,,,,,,,,, ///////////////////////// ………. /////////////////
ANUJ FOUND
1. ERPageAddin Class :
Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\
{6E2510E6-BF2D-4C78-9F28-2F5C8760F124} > it is there when add-on is disabled
2. ERRichtext class :
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Ext\Settings\
{40A4B825-09EE-1100-B465-00AA006988E8} > > it is there when add-on is disabled
Ie reg key s
Ie compatibility mode
Erpageaddin
FILE WATCHER :
Note : any type of of file opened with the plug-in enabled will be stored in the following
location……. on particular eroom client installed machine.
Step 1 : the moment when we just open a file for view
The file will be stored in 2 locations (need to know how that happens)
“C:\Users\aletib\AppData\Roaming\eRoom\eRoom Client\V7\Attachments”
“C:\Users\aletib\AppData\Roaming\eRoom\eRoom Client\V7\EditingFiles”
Step 2: the moment when you close the file ……..
1. That file will be remain stored here…..
“C:\Users\aletib\AppData\Roaming\eRoom\eRoom Client\V7\Attachments”
But removed from here
“C:\Users\aletib\AppData\Roaming\eRoom\eRoom Client\V7\EditingFiles”
It will be empty…..
Current Problem : To access this File watcher functionality, we should have the connections
b/w browser and aciveX plugin…………. or
“ERPageAddin Class” and “ERRichText Class” ADD-ons enabled in I.E
Challenge : we have to achieve this “File watcher” functionality also… through [Link]
binary by which “Outlook Synch” and “system tray” functionalities work without need of
connection b/w browser and activeX (which is indirectly “browser mode” i.e. even though we
don’t use plug-in)
Here it enters into the client code :
c:\CodeBase\Main\Source\Client\ERAddIn\[Link] // definition
CERPageAddin::ExecuteVerb(
{ GetObjectDocIDAndType( >
CERPageAddin::ActivateFile (
{ _tsplitpath (m_sPath, NULL, NULL, file, ext)
CoCreateInstance( }
c:\CodeBase\Main\Source\Client\ERAddIn\ERPageAddin.h // Declaration
STDMETHOD(ExecuteVerb)(BSTR bsVerb, BSTR bsServerPath, BSTR bsFacility, BSTR
bsMenuObjID, BSTR bsPath, /*[in]*/VARIANT_BOOL fBrowserOffline, long *pRes);
1. c:\CodeBase\Main\Source\Client\ERCltCommon\[Link]
// CERClientFile::GetFileForEditing
// Move the file into the editing directory and sets up the registry with
// all of the editing information, and returns a path to the file.
//
*****************************************************************************
HRESULT CERClientFile::GetFileForEditing(tstring& filepath, bool fOffline
2. c:\CodeBase\Main\Source\Client\ERAddIn\[Link]
* CERFileWatcher::LaunchUsingOle
* Start an editing session of a document using OLE
*/
HRESULT CERFileWatcher::LaunchUsingOle ()
Task 1: As discussed, please try to identify how exactly IE looks for and
loads the ActiveX control [Link].
Analysis :
the moment we disable 2 add-ons in I.E >> it will create 2 reg keys in the
following directory
Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Ext\
Settings\
1. {6e2510e6-bf2d-4c78-9f28-2f5c8760f124} >> for ERPageAddin class
2. {40A4B825-09EE-1100-B465-00AA006988E8} >> for ERRichText Class
and the moment we enable those add-ons in I.E >> it will delete those reg keys
in this directory.
On a client installed machine other reg keys related to the activex
1. HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{6e2510e6-bf2d-
4c78-9f28-2f5c8760f124}\InprocServer32
2. HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{40A4B825-09EE-
1100-B465-00AA006988E8}\InprocServer32
3. HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{6e2510e6-bf2d-4c78-9f28-
2f5c8760f124}\InprocServer32
4. HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{40A4B825-09EE-1100-B465-
00AA006988E8}\InprocServer32
if i clear data values of these reg keys >> I.E is not able even load the add-
ons
Task 2. see if you can disable that, and if you can disable it then does the
Monitor functionality (outlook meeting synch, task synch) still work?
Yes. Once we disabled connection b/w I.E and ActiveX, Monitor
Functionalities(outlook meeting synch, task synch and Quick access to site
from the system tray) are working
Task 3. Can we achieve File handling functionality from [Link] or
"eRoom Monitor(V7)" directly?
(after removing connection b/w browser and ActiveX)
I am working to figure out this thing.
///////////////////////////////////////////////////////////////////
1. c:\CodeBase\Main\Source\Client\ERClient\StdAfx.h
#include <atlbase.h>
#include <atlcom.h>
#include <atlctl.h>
#include <atlwin.h>
#include <ERCommon.h>
#include <CComObjPtr.h>
#include <atlcontrols.h>
// memory checking
#include "ERCltMemChk.h"
2. c:\CodeBase\Main\Source\Client\ERAddIn\StdAfx.h
#include <atlbase.h>
#include <atlcom.h>
#include <atlhost.h>
#include <atlctl.h>
#include <atlwin.h>
#include <atlcontrols.h>
using namespace ATLControls;
#include <map>
#include <vector>
using namespace std;
#include <ERCommon.h>
#include <ERClientCommon.h>
#include <wininet.h>
#include "ERCltMemChk.h"
#include "ERStl.h"
//Error Classes and macros
#include "ERCltReportError.h"
System tray is using “atlwin.h” library which is included in
c:\CodeBase\Main\Source\Client\ERClient\StdAfx.h
c:\CodeBase\Main\Source\Client\ERAddIn\ERMonitorFrame.h
Client Etrace is capturing in a temporary text file “C:\Users\aletib\AppData\
Local\Temp\~[Link]” where originally etrace is capturing………………..
ERClient7 Features after disabling Plugin in browser
extern "C" int ERClientWinMain(bool bEmbedded);
// declared in
c:\CodeBase\Main\Source\Client\ERClient\[Link]
The extern keyword is not used for defining a variable; rather it is used for declaring
a variable. I can say extern is a storage class, not a data type. extern is used to let
other C files or external components know this variable is already defined somewhere.
External variables are allocated and initialized when the program starts, and the memory is
only released when the program ends. Their lifetime is the same as the program's. If
the initialization is not done explicitly, external (static or not) and local
static variables are initialized to zero.
extern tells the compiler that the variable is defined somewhere else, so it doesn't complain about it
being undefined.
--includes.h
extern int count;
--[Link]
#include "includes.h"
int count = 4;
--[Link]
#include "includes.h"
cout<<count; // will output 4
That's the general idea, anyway
// defined in
c:\CodeBase\Main\Source\Client\ERAddIn\[Link]
bool CERRegCURoom::FindKeyInRegistry (
{05F08A40-A67F-4833-9A59-39FF79ABDF53}
STDMETHODIMP CERPageAddin::ExecuteVerb(
This ensures that your calling convention is the one used by COM. When you are writing a COM
server, you normally use STDMETHOD to declare methods exposed to COM and STDMETHODIMP to
implement them.
E.g
*.idl
interface IWhatever
{
HRESULT Method(params);
};
*.h
class IWhateverImpl : ...
{
...
STDMETHOD(Method)(params);
...
};
*.cpp
STDMETHODIMP IWhateverImpl::Method(params)
{
...
}