Причем ссылки которые открываются в новом окне - есстественно инициализируют новую копию Explorer ...
ну чего... Метод Navigate имеет вторым параметром flag
Flags
Optional. A constant or value that specifies whether to add the resource to the history list, whether to read from or write to the cache, and whether to display the resource in a new window. The variable can be a combination of the values defined by the BrowserNavConstants enumeration.
typedef enum BrowserNavConstants {
navOpenInNewWindow = 0x1,
navNoHistory = 0x2,
navNoReadFromCache = 0x4,
navNoWriteToCache = 0x8,
navAllowAutosearch = 0x10,
navBrowserBar = 0x20,
navHyperlink = 0x40
} BrowserNavConstants;
и третий параметр
TargetFrameName
Optional. String expression that evaluates to the name of an HTML frame in URL to display in the browser window. The possible values for this parameter are:
_BLANK
Load the link into a new unnamed window.
_PARENT
Load the link into the immediate parent of the document the link is in.
_SELF
Load the link into the same window the link was clicked in.
_TOP
Load the link into the full body of the current window.
<WINDOW_NAME>
A named HTML frame. If no frame or window exists that matches the specified target name, a new window is opened for the specified link.
короче, в том же окне открывать линк возможность есть.
Не знаю, что там у тебя не получается с BeforeNavigate? Как Андрей писал, приходит в OCXREGISTEREVENTPROC это событие?