зеркало из https://github.com/mozilla/pjs.git
Move IWebBrowser impl into a template class so it can be shared with plugin. Fixed postdata, headers and target args. b=100629 r=chak@netscape.com rpotts@netscape.com
This commit is contained in:
Родитель
84c7fdbd46
Коммит
5db50498d6
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -40,9 +40,7 @@
|
|||
#ifndef __MOZILLABROWSER_H_
|
||||
#define __MOZILLABROWSER_H_
|
||||
|
||||
// This file is autogenerated by the ATL proxy wizard
|
||||
// so don't edit it!
|
||||
#include "CPMozillaControl.h"
|
||||
#include "IWebBrowserImpl.h"
|
||||
|
||||
// Commands sent via WM_COMMAND
|
||||
#define ID_PRINT 1
|
||||
|
@ -63,10 +61,6 @@ extern GUID CGID_MSHTML_Moz;
|
|||
#define HTMLID_VIEWSOURCE 2
|
||||
#define HTMLID_OPTIONS 3
|
||||
|
||||
// Some definitions which are used to make firing events easier
|
||||
#define CDWebBrowserEvents1 CProxyDWebBrowserEvents<CMozillaBrowser>
|
||||
#define CDWebBrowserEvents2 CProxyDWebBrowserEvents2<CMozillaBrowser>
|
||||
|
||||
// A list of objects
|
||||
typedef CComPtr<IUnknown> CComUnkPtr;
|
||||
|
||||
|
@ -79,10 +73,8 @@ class ATL_NO_VTABLE CMozillaBrowser :
|
|||
public CComObjectRootEx<CComMultiThreadModel>,
|
||||
public CComCoClass<CMozillaBrowser, &CLSID_MozillaBrowser>,
|
||||
public CComControl<CMozillaBrowser>,
|
||||
public CDWebBrowserEvents1,
|
||||
public CDWebBrowserEvents2,
|
||||
public IPropertyNotifySinkCP<CMozillaBrowser>,
|
||||
public CStockPropImpl<CMozillaBrowser, IWebBrowser2, &IID_IWebBrowser2, &LIBID_MOZILLACONTROLLib>,
|
||||
public IWebBrowserImpl<CMozillaBrowser, &CLSID_MozillaBrowser, &LIBID_MOZILLACONTROLLib>,
|
||||
public IProvideClassInfo2Impl<&CLSID_MozillaBrowser, &DIID_DWebBrowserEvents2, &LIBID_MOZILLACONTROLLib>,
|
||||
public IPersistStreamInitImpl<CMozillaBrowser>,
|
||||
public IPersistStorageImpl<CMozillaBrowser>,
|
||||
|
@ -111,20 +103,22 @@ DECLARE_REGISTRY_RESOURCEID(IDR_MOZILLABROWSER)
|
|||
BEGIN_COM_MAP(CMozillaBrowser)
|
||||
// Mozilla control interfaces
|
||||
COM_INTERFACE_ENTRY(IMozControlBridge)
|
||||
// IE web browser interface
|
||||
// IE web browser interface
|
||||
COM_INTERFACE_ENTRY(IWebBrowser2)
|
||||
COM_INTERFACE_ENTRY_IID(IID_IDispatch, IWebBrowser2)
|
||||
COM_INTERFACE_ENTRY_IID(IID_IWebBrowser, IWebBrowser2)
|
||||
COM_INTERFACE_ENTRY_IID(IID_IWebBrowserApp, IWebBrowser2)
|
||||
// Outgoing IE event interfaces
|
||||
COM_INTERFACE_ENTRY_IID(DIID_DWebBrowserEvents, CDWebBrowserEvents1) //Requests to DWebBrowserEvents will get the vtable of CDWebBrowserEvents1
|
||||
COM_INTERFACE_ENTRY_IID(DIID_DWebBrowserEvents2, CDWebBrowserEvents2) //Requests to DWebBrowserEvents2 will get the vtable of CDWebBrowserEvents2
|
||||
COM_INTERFACE_ENTRY_IID(DIID_DWebBrowserEvents,
|
||||
CProxyDWebBrowserEvents<CMozillaBrowser>)
|
||||
COM_INTERFACE_ENTRY_IID(DIID_DWebBrowserEvents2,
|
||||
CProxyDWebBrowserEvents2<CMozillaBrowser>)
|
||||
// Other ActiveX/OLE interfaces
|
||||
COM_INTERFACE_ENTRY_IMPL(IViewObjectEx)
|
||||
COM_INTERFACE_ENTRY_IMPL_IID(IID_IViewObject2, IViewObjectEx)
|
||||
COM_INTERFACE_ENTRY_IMPL_IID(IID_IViewObject, IViewObjectEx)
|
||||
COM_INTERFACE_ENTRY_IMPL(IOleInPlaceObjectWindowless)
|
||||
COM_INTERFACE_ENTRY_IMPL_IID(IID_IOleInPlaceObject, IOleInPlaceObjectWindowless)
|
||||
COM_INTERFACE_ENTRY_IMPL_IID(IID_IOleInPlaceObject, IOleInPlaceObjectWindowless)
|
||||
COM_INTERFACE_ENTRY_IMPL(IOleInPlaceActiveObject)
|
||||
COM_INTERFACE_ENTRY_IMPL(IOleControl)
|
||||
COM_INTERFACE_ENTRY_IMPL(IOleObject)
|
||||
|
@ -381,31 +375,21 @@ protected:
|
|||
|
||||
// Flag to indicate if browser is created or not
|
||||
BOOL mValidBrowserFlag;
|
||||
// Indicates the browser is busy doing something
|
||||
BOOL mBusyFlag;
|
||||
// Flag to indicate if browser is in edit mode or not
|
||||
BOOL mEditModeFlag;
|
||||
// Flag to indicate if the browser has a drop target
|
||||
BOOL mHaveDropTargetFlag;
|
||||
// Contains an error message if startup went wrong
|
||||
tstring mStartupErrorMessage;
|
||||
// Property list
|
||||
PropertyList mPropertyList;
|
||||
// Ready status of control
|
||||
READYSTATE mBrowserReadyState;
|
||||
// List of registered browser helper objects
|
||||
CComUnkPtr *mBrowserHelperList;
|
||||
ULONG mBrowserHelperListCount;
|
||||
// Post data from last navigate operation
|
||||
CComVariant mLastPostData;
|
||||
|
||||
virtual BOOL IsValid();
|
||||
virtual HRESULT Initialize();
|
||||
virtual HRESULT Terminate();
|
||||
virtual HRESULT CreateBrowser();
|
||||
virtual HRESULT DestroyBrowser();
|
||||
virtual HRESULT SetStartupErrorMessage(UINT nStringID);
|
||||
virtual HRESULT SetErrorInfo(LPCTSTR lpszDesc, HRESULT hr);
|
||||
virtual HRESULT GetDOMDocument(nsIDOMDocument **pDocument);
|
||||
virtual HRESULT SetEditorMode(BOOL bEnabled);
|
||||
virtual HRESULT OnEditorCommand(DWORD nCmdID);
|
||||
|
@ -431,75 +415,16 @@ public:
|
|||
// IMozControlBridge implementation
|
||||
virtual HRESULT STDMETHODCALLTYPE GetWebBrowser(/* [out] */ void __RPC_FAR *__RPC_FAR *aBrowser);
|
||||
|
||||
// IWebBrowser implementation
|
||||
virtual HRESULT STDMETHODCALLTYPE GoBack(void);
|
||||
virtual HRESULT STDMETHODCALLTYPE GoForward(void);
|
||||
virtual HRESULT STDMETHODCALLTYPE GoHome(void);
|
||||
virtual HRESULT STDMETHODCALLTYPE GoSearch(void);
|
||||
virtual HRESULT STDMETHODCALLTYPE Navigate(BSTR URL, VARIANT __RPC_FAR *Flags, VARIANT __RPC_FAR *TargetFrameName, VARIANT __RPC_FAR *PostData, VARIANT __RPC_FAR *Headers);
|
||||
virtual HRESULT STDMETHODCALLTYPE Refresh(void);
|
||||
virtual HRESULT STDMETHODCALLTYPE Refresh2(VARIANT __RPC_FAR *Level);
|
||||
virtual HRESULT STDMETHODCALLTYPE Stop( void);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_Application(IDispatch __RPC_FAR *__RPC_FAR *ppDisp);
|
||||
// IWebBrowserImpl overrides
|
||||
virtual nsresult GetWebNavigation(nsIWebNavigation **aWebNav);
|
||||
virtual nsresult GetDOMWindow(nsIDOMWindow **aDOMWindow);
|
||||
virtual nsresult GetPrefs(nsIPref **aPref);
|
||||
virtual PRBool BrowserIsValid();
|
||||
// IWebBrowser
|
||||
virtual HRESULT STDMETHODCALLTYPE get_Parent(IDispatch __RPC_FAR *__RPC_FAR *ppDisp);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_Container(IDispatch __RPC_FAR *__RPC_FAR *ppDisp);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_Document(IDispatch __RPC_FAR *__RPC_FAR *ppDisp);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_TopLevelContainer(VARIANT_BOOL __RPC_FAR *pBool);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_Type(BSTR __RPC_FAR *Type);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_Left(long __RPC_FAR *pl);
|
||||
virtual HRESULT STDMETHODCALLTYPE put_Left(long Left);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_Top(long __RPC_FAR *pl);
|
||||
virtual HRESULT STDMETHODCALLTYPE put_Top(long Top);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_Width(long __RPC_FAR *pl);
|
||||
virtual HRESULT STDMETHODCALLTYPE put_Width(long Width);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_Height(long __RPC_FAR *pl);
|
||||
virtual HRESULT STDMETHODCALLTYPE put_Height(long Height);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_LocationName(BSTR __RPC_FAR *LocationName);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_LocationURL(BSTR __RPC_FAR *LocationURL);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_Busy(VARIANT_BOOL __RPC_FAR *pBool);
|
||||
|
||||
// IWebBrowserApp implementation
|
||||
virtual HRESULT STDMETHODCALLTYPE Quit(void);
|
||||
virtual HRESULT STDMETHODCALLTYPE ClientToWindow(int __RPC_FAR *pcx, int __RPC_FAR *pcy);
|
||||
virtual HRESULT STDMETHODCALLTYPE PutProperty(BSTR Property, VARIANT vtValue);
|
||||
virtual HRESULT STDMETHODCALLTYPE GetProperty(BSTR Property, VARIANT __RPC_FAR *pvtValue);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR __RPC_FAR *Name);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_HWND(long __RPC_FAR *pHWND);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_FullName(BSTR __RPC_FAR *FullName);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_Path(BSTR __RPC_FAR *Path);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_Visible(VARIANT_BOOL __RPC_FAR *pBool);
|
||||
virtual HRESULT STDMETHODCALLTYPE put_Visible(VARIANT_BOOL Value);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_StatusBar(VARIANT_BOOL __RPC_FAR *pBool);
|
||||
virtual HRESULT STDMETHODCALLTYPE put_StatusBar(VARIANT_BOOL Value);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_StatusText(BSTR __RPC_FAR *StatusText);
|
||||
virtual HRESULT STDMETHODCALLTYPE put_StatusText(BSTR StatusText);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_ToolBar(int __RPC_FAR *Value);
|
||||
virtual HRESULT STDMETHODCALLTYPE put_ToolBar(int Value);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_MenuBar(VARIANT_BOOL __RPC_FAR *Value);
|
||||
virtual HRESULT STDMETHODCALLTYPE put_MenuBar(VARIANT_BOOL Value);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_FullScreen(VARIANT_BOOL __RPC_FAR *pbFullScreen);
|
||||
virtual HRESULT STDMETHODCALLTYPE put_FullScreen(VARIANT_BOOL bFullScreen);
|
||||
|
||||
// IWebBrowser2 implementation
|
||||
virtual HRESULT STDMETHODCALLTYPE Navigate2(VARIANT __RPC_FAR *URL, VARIANT __RPC_FAR *Flags, VARIANT __RPC_FAR *TargetFrameName, VARIANT __RPC_FAR *PostData, VARIANT __RPC_FAR *Headers);
|
||||
virtual HRESULT STDMETHODCALLTYPE QueryStatusWB(OLECMDID cmdID, OLECMDF __RPC_FAR *pcmdf);
|
||||
virtual HRESULT STDMETHODCALLTYPE ExecWB(OLECMDID cmdID, OLECMDEXECOPT cmdexecopt, VARIANT __RPC_FAR *pvaIn, VARIANT __RPC_FAR *pvaOut);
|
||||
virtual HRESULT STDMETHODCALLTYPE ShowBrowserBar(VARIANT __RPC_FAR *pvaClsid, VARIANT __RPC_FAR *pvarShow, VARIANT __RPC_FAR *pvarSize);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_ReadyState(READYSTATE __RPC_FAR *plReadyState);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_Offline(VARIANT_BOOL __RPC_FAR *pbOffline);
|
||||
virtual HRESULT STDMETHODCALLTYPE put_Offline(VARIANT_BOOL bOffline);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_Silent(VARIANT_BOOL __RPC_FAR *pbSilent);
|
||||
virtual HRESULT STDMETHODCALLTYPE put_Silent(VARIANT_BOOL bSilent);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_RegisterAsBrowser(VARIANT_BOOL __RPC_FAR *pbRegister);
|
||||
virtual HRESULT STDMETHODCALLTYPE put_RegisterAsBrowser(VARIANT_BOOL bRegister);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_RegisterAsDropTarget(VARIANT_BOOL __RPC_FAR *pbRegister);
|
||||
virtual HRESULT STDMETHODCALLTYPE put_RegisterAsDropTarget(VARIANT_BOOL bRegister);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_TheaterMode(VARIANT_BOOL __RPC_FAR *pbRegister);
|
||||
virtual HRESULT STDMETHODCALLTYPE put_TheaterMode(VARIANT_BOOL bRegister);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_AddressBar(VARIANT_BOOL __RPC_FAR *Value);
|
||||
virtual HRESULT STDMETHODCALLTYPE put_AddressBar(VARIANT_BOOL Value);
|
||||
virtual HRESULT STDMETHODCALLTYPE get_Resizable(VARIANT_BOOL __RPC_FAR *Value);
|
||||
virtual HRESULT STDMETHODCALLTYPE put_Resizable(VARIANT_BOOL Value);
|
||||
|
||||
public:
|
||||
HRESULT OnDraw(ATL_DRAWINFO& di);
|
||||
|
|
|
@ -242,6 +242,10 @@ SOURCE=.\ItemContainer.h
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\IWebBrowserImpl.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\MozillaBrowser.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
@ -299,7 +303,7 @@ SOURCE=.\MozillaControl.rc
|
|||
# End Group
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\makefile.win
|
||||
SOURCE=.\Makefile.in
|
||||
# End Source File
|
||||
# End Target
|
||||
# End Project
|
||||
|
|
|
@ -76,8 +76,8 @@ protected:
|
|||
protected:
|
||||
CMozillaBrowser *mOwner;
|
||||
nsCOMPtr<nsIURI> mCurrentURI;
|
||||
CDWebBrowserEvents1 *mEvents1;
|
||||
CDWebBrowserEvents2 *mEvents2;
|
||||
CProxyDWebBrowserEvents<CMozillaBrowser> *mEvents1;
|
||||
CProxyDWebBrowserEvents2<CMozillaBrowser> *mEvents2;
|
||||
nsString mTitle;
|
||||
PRPackedBool mVisible;
|
||||
|
||||
|
|
|
@ -45,6 +45,10 @@ REQUIRES = \
|
|||
js \
|
||||
pref \
|
||||
xpconnect \
|
||||
docshell \
|
||||
webshell \
|
||||
necko \
|
||||
windowwatcher \
|
||||
$(NULL)
|
||||
XPIFILE = mozactivex.xpi
|
||||
|
||||
|
|
|
@ -42,13 +42,16 @@
|
|||
#include "npapi.h"
|
||||
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIInterfaceRequestorUtils.h"
|
||||
#include "nsIServiceManagerUtils.h"
|
||||
#include "nsString.h"
|
||||
#include "nsIDOMWindow.h"
|
||||
#include "nsIDOMWindowInternal.h"
|
||||
#include "nsIDOMLocation.h"
|
||||
#include "nsIPref.h"
|
||||
|
||||
|
||||
#include "XPCBrowser.h"
|
||||
|
||||
static NS_DEFINE_CID(kPrefCID, NS_PREF_CID);
|
||||
|
||||
IEBrowser::IEBrowser()
|
||||
{
|
||||
}
|
||||
|
@ -60,430 +63,47 @@ IEBrowser::~IEBrowser()
|
|||
HRESULT IEBrowser::Init(PluginInstanceData *pData)
|
||||
{
|
||||
mData = pData;
|
||||
|
||||
// Get the location URL
|
||||
nsCOMPtr<nsIDOMWindow> window;
|
||||
NPN_GetValue(mData->pPluginInstance, NPNVDOMWindow, (void *) &window);
|
||||
if (window)
|
||||
NPN_GetValue(mData->pPluginInstance, NPNVDOMWindow, (void *) &mDOMWindow);
|
||||
if (mDOMWindow)
|
||||
{
|
||||
nsCOMPtr<nsIDOMWindowInternal> windowInternal = do_QueryInterface(window);
|
||||
if (windowInternal)
|
||||
{
|
||||
nsCOMPtr<nsIDOMLocation> location;
|
||||
nsAutoString href;
|
||||
windowInternal->GetLocation(getter_AddRefs(location));
|
||||
if (location &&
|
||||
NS_SUCCEEDED(location->GetHref(href)))
|
||||
{
|
||||
const PRUnichar *s = href.get();
|
||||
mLocationURL.Attach(::SysAllocString(s));
|
||||
}
|
||||
}
|
||||
mWebNavigation = do_GetInterface(mDOMWindow);
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
// IWebBrowser
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::GoBack(void)
|
||||
nsresult IEBrowser::GetWebNavigation(nsIWebNavigation **aWebNav)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
NS_ENSURE_ARG_POINTER(aWebNav);
|
||||
*aWebNav = mWebNavigation;
|
||||
NS_IF_ADDREF(*aWebNav);
|
||||
return (*aWebNav) ? NS_OK : NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::GoForward(void)
|
||||
// Return the nsIDOMWindow object
|
||||
nsresult IEBrowser::GetDOMWindow(nsIDOMWindow **aDOMWindow)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
NS_ENSURE_ARG_POINTER(aDOMWindow);
|
||||
*aDOMWindow = mDOMWindow;
|
||||
NS_IF_ADDREF(*aDOMWindow);
|
||||
return (*aDOMWindow) ? NS_OK : NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::GoHome(void)
|
||||
// Return the nsIPref object
|
||||
nsresult IEBrowser::GetPrefs(nsIPref **aPrefs)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
NS_ENSURE_ARG_POINTER(aPrefs);
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIPref> prefs = do_GetService(kPrefCID, &rv);
|
||||
*aPrefs = prefs;
|
||||
NS_IF_ADDREF(*aPrefs);
|
||||
return rv;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::GoSearch(void)
|
||||
// Return the valid state of the browser
|
||||
PRBool IEBrowser::BrowserIsValid()
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
return mWebNavigation ? PR_TRUE : PR_FALSE;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::Navigate(
|
||||
BSTR URL,
|
||||
VARIANT *Flags,
|
||||
VARIANT *TargetFrameName,
|
||||
VARIANT *PostData,
|
||||
VARIANT *Headers)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::Refresh(void)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::Refresh2(
|
||||
VARIANT *Level)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::Stop(void)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_Application(
|
||||
IDispatch **ppDisp)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_Parent(
|
||||
IDispatch **ppDisp)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_Container(
|
||||
IDispatch **ppDisp)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_Document(
|
||||
IDispatch **ppDisp)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_TopLevelContainer(
|
||||
VARIANT_BOOL *pBool)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_Type(
|
||||
BSTR *Type)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_Left(
|
||||
long *pl)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::put_Left(
|
||||
long Left)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_Top(
|
||||
long *pl)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::put_Top(
|
||||
long Top)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_Width(
|
||||
long *pl)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::put_Width(
|
||||
long Width)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_Height(
|
||||
long *pl)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::put_Height(
|
||||
long Height)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_LocationName(
|
||||
BSTR *LocationName)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_LocationURL(
|
||||
BSTR *LocationURL)
|
||||
{
|
||||
*LocationURL = mLocationURL.Copy();
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_Busy(
|
||||
VARIANT_BOOL *pBool)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
// IWebBrowserApp
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::Quit(void)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::ClientToWindow(
|
||||
int *pcx,
|
||||
int *pcy)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::PutProperty(
|
||||
BSTR Property,
|
||||
VARIANT vtValue)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::GetProperty(
|
||||
BSTR Property,
|
||||
VARIANT *pvtValue)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_Name(
|
||||
BSTR *Name)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_HWND(
|
||||
long __RPC_FAR *pHWND)
|
||||
{
|
||||
HWND hwnd = NULL;
|
||||
NPN_GetValue(mData->pPluginInstance, NPNVnetscapeWindow, &hwnd);
|
||||
*((HWND *)pHWND) = hwnd;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_FullName(
|
||||
BSTR *FullName)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_Path(
|
||||
BSTR *Path)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_Visible(
|
||||
VARIANT_BOOL *pBool)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::put_Visible(
|
||||
VARIANT_BOOL Value)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_StatusBar(
|
||||
VARIANT_BOOL *pBool)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::put_StatusBar(
|
||||
VARIANT_BOOL Value)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_StatusText(
|
||||
BSTR *StatusText)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::put_StatusText(
|
||||
BSTR StatusText)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_ToolBar(
|
||||
int *Value)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::put_ToolBar(
|
||||
int Value)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_MenuBar(
|
||||
VARIANT_BOOL *Value)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::put_MenuBar(
|
||||
VARIANT_BOOL Value)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_FullScreen(
|
||||
VARIANT_BOOL *pbFullScreen)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::put_FullScreen(
|
||||
VARIANT_BOOL bFullScreen)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// IWebBrowser2
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::Navigate2(
|
||||
VARIANT *URL,
|
||||
VARIANT *Flags,
|
||||
VARIANT *TargetFrameName,
|
||||
VARIANT *PostData,
|
||||
VARIANT *Headers)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::QueryStatusWB(
|
||||
OLECMDID cmdID,
|
||||
OLECMDF *pcmdf)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::ExecWB(
|
||||
OLECMDID cmdID,
|
||||
OLECMDEXECOPT cmdexecopt,
|
||||
VARIANT *pvaIn,
|
||||
VARIANT *pvaOut)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::ShowBrowserBar(
|
||||
VARIANT *pvaClsid,
|
||||
VARIANT *pvarShow,
|
||||
VARIANT *pvarSize)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_ReadyState(
|
||||
READYSTATE *plReadyState)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_Offline(
|
||||
VARIANT_BOOL *pbOffline)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::put_Offline(
|
||||
VARIANT_BOOL bOffline)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_Silent(
|
||||
VARIANT_BOOL *pbSilent)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::put_Silent(
|
||||
VARIANT_BOOL bSilent)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_RegisterAsBrowser(
|
||||
VARIANT_BOOL *pbRegister)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::put_RegisterAsBrowser(
|
||||
VARIANT_BOOL bRegister)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_RegisterAsDropTarget(
|
||||
VARIANT_BOOL *pbRegister)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::put_RegisterAsDropTarget(
|
||||
VARIANT_BOOL bRegister)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_TheaterMode(
|
||||
VARIANT_BOOL *pbRegister)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::put_TheaterMode(
|
||||
VARIANT_BOOL bRegister)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_AddressBar(
|
||||
VARIANT_BOOL *Value)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::put_AddressBar(
|
||||
VARIANT_BOOL Value)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::get_Resizable(
|
||||
VARIANT_BOOL *Value)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE IEBrowser::put_Resizable(
|
||||
VARIANT_BOOL Value)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
|
|
@ -43,11 +43,16 @@
|
|||
#include <docobj.h>
|
||||
#include <ExDisp.h>
|
||||
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIWebNavigation.h"
|
||||
|
||||
#include "LegacyPlugin.h"
|
||||
|
||||
#include "IWebBrowserImpl.h"
|
||||
|
||||
class IEBrowser :
|
||||
public CComObjectRootEx<CComSingleThreadModel>,
|
||||
public IDispatchImpl<IWebBrowser2, &IID_IWebBrowser2, &LIBID_MSHTML>
|
||||
public IWebBrowserImpl<IEBrowser, &CLSID_NULL>
|
||||
{
|
||||
public:
|
||||
BEGIN_COM_MAP(IEBrowser)
|
||||
|
@ -57,7 +62,8 @@ BEGIN_COM_MAP(IEBrowser)
|
|||
END_COM_MAP()
|
||||
|
||||
PluginInstanceData *mData;
|
||||
CComBSTR mLocationURL;
|
||||
nsCOMPtr<nsIWebNavigation> mWebNavigation;
|
||||
nsCOMPtr<nsIDOMWindow> mDOMWindow;
|
||||
|
||||
IEBrowser();
|
||||
HRESULT Init(PluginInstanceData *pData);
|
||||
|
@ -66,210 +72,15 @@ protected:
|
|||
virtual ~IEBrowser();
|
||||
|
||||
public:
|
||||
// IWebBrowser
|
||||
virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE GoBack(void);
|
||||
|
||||
virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE GoForward(void);
|
||||
|
||||
virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE GoHome(void);
|
||||
|
||||
virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE GoSearch(void);
|
||||
|
||||
virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Navigate(
|
||||
/* [in] */ BSTR URL,
|
||||
/* [optional][in] */ VARIANT *Flags,
|
||||
/* [optional][in] */ VARIANT *TargetFrameName,
|
||||
/* [optional][in] */ VARIANT *PostData,
|
||||
/* [optional][in] */ VARIANT *Headers);
|
||||
|
||||
virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Refresh(void);
|
||||
|
||||
virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Refresh2(
|
||||
/* [optional][in] */ VARIANT *Level);
|
||||
|
||||
virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Stop(void);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Application(
|
||||
/* [retval][out] */ IDispatch **ppDisp);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Parent(
|
||||
/* [retval][out] */ IDispatch **ppDisp);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Container(
|
||||
/* [retval][out] */ IDispatch **ppDisp);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Document(
|
||||
/* [retval][out] */ IDispatch **ppDisp);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TopLevelContainer(
|
||||
/* [retval][out] */ VARIANT_BOOL *pBool);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Type(
|
||||
/* [retval][out] */ BSTR *Type);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Left(
|
||||
/* [retval][out] */ long *pl);
|
||||
|
||||
virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Left(
|
||||
/* [in] */ long Left);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Top(
|
||||
/* [retval][out] */ long *pl);
|
||||
|
||||
virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Top(
|
||||
/* [in] */ long Top);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Width(
|
||||
/* [retval][out] */ long *pl);
|
||||
|
||||
virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Width(
|
||||
/* [in] */ long Width);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Height(
|
||||
/* [retval][out] */ long *pl);
|
||||
|
||||
virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Height(
|
||||
/* [in] */ long Height);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LocationName(
|
||||
/* [retval][out] */ BSTR *LocationName);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LocationURL(
|
||||
/* [retval][out] */ BSTR *LocationURL);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Busy(
|
||||
/* [retval][out] */ VARIANT_BOOL *pBool);
|
||||
|
||||
// IWebBrowserApp
|
||||
virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Quit(void);
|
||||
|
||||
virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE ClientToWindow(
|
||||
/* [out][in] */ int *pcx,
|
||||
/* [out][in] */ int *pcy);
|
||||
|
||||
virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE PutProperty(
|
||||
/* [in] */ BSTR Property,
|
||||
/* [in] */ VARIANT vtValue);
|
||||
|
||||
virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE GetProperty(
|
||||
/* [in] */ BSTR Property,
|
||||
/* [retval][out] */ VARIANT *pvtValue);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name(
|
||||
/* [retval][out] */ BSTR *Name);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HWND(
|
||||
/* [retval][out] */ long __RPC_FAR *pHWND);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_FullName(
|
||||
/* [retval][out] */ BSTR *FullName);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Path(
|
||||
/* [retval][out] */ BSTR *Path);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Visible(
|
||||
/* [retval][out] */ VARIANT_BOOL *pBool);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Visible(
|
||||
/* [in] */ VARIANT_BOOL Value);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StatusBar(
|
||||
/* [retval][out] */ VARIANT_BOOL *pBool);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StatusBar(
|
||||
/* [in] */ VARIANT_BOOL Value);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StatusText(
|
||||
/* [retval][out] */ BSTR *StatusText);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StatusText(
|
||||
/* [in] */ BSTR StatusText);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToolBar(
|
||||
/* [retval][out] */ int *Value);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToolBar(
|
||||
/* [in] */ int Value);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MenuBar(
|
||||
/* [retval][out] */ VARIANT_BOOL *Value);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MenuBar(
|
||||
/* [in] */ VARIANT_BOOL Value);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_FullScreen(
|
||||
/* [retval][out] */ VARIANT_BOOL *pbFullScreen);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_FullScreen(
|
||||
/* [in] */ VARIANT_BOOL bFullScreen);
|
||||
|
||||
// IWebBrowser2
|
||||
virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Navigate2(
|
||||
/* [in] */ VARIANT *URL,
|
||||
/* [optional][in] */ VARIANT *Flags,
|
||||
/* [optional][in] */ VARIANT *TargetFrameName,
|
||||
/* [optional][in] */ VARIANT *PostData,
|
||||
/* [optional][in] */ VARIANT *Headers);
|
||||
|
||||
virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE QueryStatusWB(
|
||||
/* [in] */ OLECMDID cmdID,
|
||||
/* [retval][out] */ OLECMDF *pcmdf);
|
||||
|
||||
virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE ExecWB(
|
||||
/* [in] */ OLECMDID cmdID,
|
||||
/* [in] */ OLECMDEXECOPT cmdexecopt,
|
||||
/* [optional][in] */ VARIANT *pvaIn,
|
||||
/* [optional][in][out] */ VARIANT *pvaOut);
|
||||
|
||||
virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE ShowBrowserBar(
|
||||
/* [in] */ VARIANT *pvaClsid,
|
||||
/* [optional][in] */ VARIANT *pvarShow,
|
||||
/* [optional][in] */ VARIANT *pvarSize);
|
||||
|
||||
virtual /* [bindable][propget][id] */ HRESULT STDMETHODCALLTYPE get_ReadyState(
|
||||
/* [out][retval] */ READYSTATE *plReadyState);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Offline(
|
||||
/* [retval][out] */ VARIANT_BOOL *pbOffline);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Offline(
|
||||
/* [in] */ VARIANT_BOOL bOffline);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Silent(
|
||||
/* [retval][out] */ VARIANT_BOOL *pbSilent);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Silent(
|
||||
/* [in] */ VARIANT_BOOL bSilent);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RegisterAsBrowser(
|
||||
/* [retval][out] */ VARIANT_BOOL *pbRegister);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_RegisterAsBrowser(
|
||||
/* [in] */ VARIANT_BOOL bRegister);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RegisterAsDropTarget(
|
||||
/* [retval][out] */ VARIANT_BOOL *pbRegister);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_RegisterAsDropTarget(
|
||||
/* [in] */ VARIANT_BOOL bRegister);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TheaterMode(
|
||||
/* [retval][out] */ VARIANT_BOOL *pbRegister);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TheaterMode(
|
||||
/* [in] */ VARIANT_BOOL bRegister);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AddressBar(
|
||||
/* [retval][out] */ VARIANT_BOOL *Value);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AddressBar(
|
||||
/* [in] */ VARIANT_BOOL Value);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Resizable(
|
||||
/* [retval][out] */ VARIANT_BOOL *Value);
|
||||
|
||||
virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Resizable(
|
||||
/* [in] */ VARIANT_BOOL Value);
|
||||
// IWebBrowserImpl overrides
|
||||
// Return the nsIWebNavigation object
|
||||
virtual nsresult GetWebNavigation(nsIWebNavigation **aWebNav);
|
||||
// Return the nsIDOMWindow object
|
||||
virtual nsresult GetDOMWindow(nsIDOMWindow **aDOMWindow);
|
||||
// Return the nsIPref object
|
||||
virtual nsresult GetPrefs(nsIPref **aPrefs);
|
||||
// Return the valid state of the browser
|
||||
virtual PRBool BrowserIsValid();
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -40,18 +40,27 @@
|
|||
#include "StdAfx.h"
|
||||
|
||||
#include <mshtml.h>
|
||||
|
||||
#include "XPConnect.h"
|
||||
#include "XPCBrowser.h"
|
||||
#include "LegacyPlugin.h"
|
||||
#include <hlink.h>
|
||||
|
||||
#include "npapi.h"
|
||||
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIInterfaceRequestorUtils.h"
|
||||
#include "nsString.h"
|
||||
#include "nsNetUtil.h"
|
||||
|
||||
#include "nsIURI.h"
|
||||
#include "nsIDOMWindow.h"
|
||||
#include "nsIDOMElement.h"
|
||||
#include "nsIDOMDocument.h"
|
||||
#include "nsIDOMWindowInternal.h"
|
||||
#include "nsIDOMLocation.h"
|
||||
#include "nsIWebNavigation.h"
|
||||
#include "nsILinkHandler.h"
|
||||
|
||||
#include "XPConnect.h"
|
||||
#include "XPCBrowser.h"
|
||||
#include "LegacyPlugin.h"
|
||||
|
||||
/*
|
||||
* This file contains partial implementations of various IE objects and
|
||||
|
@ -250,6 +259,7 @@ BEGIN_COM_MAP(IEWindow)
|
|||
COM_INTERFACE_ENTRY(IDispatch)
|
||||
COM_INTERFACE_ENTRY(IHTMLWindow2)
|
||||
COM_INTERFACE_ENTRY(IHTMLFramesCollection2)
|
||||
COM_INTERFACE_ENTRY_BREAK(IHlinkFrame)
|
||||
END_COM_MAP()
|
||||
|
||||
//IHTMLFramesCollection2
|
||||
|
@ -649,7 +659,7 @@ END_COM_MAP()
|
|||
/* [out][retval] */ BSTR __RPC_FAR *String)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
}
|
||||
|
||||
virtual /* [id] */ HRESULT STDMETHODCALLTYPE scrollBy(
|
||||
/* [in] */ long x,
|
||||
|
@ -706,11 +716,15 @@ class IEDocument :
|
|||
public CComObjectRootEx<CComSingleThreadModel>,
|
||||
public IDispatchImpl<IHTMLDocument2, &IID_IHTMLDocument2, &LIBID_MSHTML>,
|
||||
public IServiceProvider,
|
||||
public IOleContainer
|
||||
public IOleContainer,
|
||||
public IBindHost,
|
||||
public IHlinkFrame
|
||||
{
|
||||
public:
|
||||
PluginInstanceData *mData;
|
||||
|
||||
nsCOMPtr<nsIDOMWindow> mDOMWindow;
|
||||
nsCOMPtr<nsIDOMDocument> mDOMDocument;
|
||||
CComObject<IEWindow> *mWindow;
|
||||
CComObject<IEBrowser> *mBrowser;
|
||||
CComBSTR mURL;
|
||||
|
@ -726,12 +740,20 @@ public:
|
|||
HRESULT Init(PluginInstanceData *pData)
|
||||
{
|
||||
mData = pData;
|
||||
nsCOMPtr<nsIDOMElement> element;
|
||||
|
||||
nsCOMPtr<nsIDOMWindow> window;
|
||||
NPN_GetValue(mData->pPluginInstance, NPNVDOMWindow, (void *) &window);
|
||||
if (window)
|
||||
// Get the DOM document
|
||||
NPN_GetValue(mData->pPluginInstance, NPNVDOMElement, (void *) &element);
|
||||
if (element)
|
||||
{
|
||||
nsCOMPtr<nsIDOMWindowInternal> windowInternal = do_QueryInterface(window);
|
||||
element->GetOwnerDocument(getter_AddRefs(mDOMDocument));
|
||||
}
|
||||
|
||||
// Get the DOM window
|
||||
NPN_GetValue(mData->pPluginInstance, NPNVDOMWindow, (void *) &mDOMWindow);
|
||||
if (mDOMWindow)
|
||||
{
|
||||
nsCOMPtr<nsIDOMWindowInternal> windowInternal = do_QueryInterface(mDOMWindow);
|
||||
if (windowInternal)
|
||||
{
|
||||
nsCOMPtr<nsIDOMLocation> location;
|
||||
|
@ -757,7 +779,7 @@ public:
|
|||
|
||||
CComObject<IEBrowser>::CreateInstance(&mBrowser);
|
||||
ATLASSERT(mBrowser);
|
||||
if (mBrowser)
|
||||
if (!mBrowser)
|
||||
{
|
||||
return E_OUTOFMEMORY;
|
||||
}
|
||||
|
@ -781,12 +803,15 @@ public:
|
|||
}
|
||||
|
||||
BEGIN_COM_MAP(IEDocument)
|
||||
COM_INTERFACE_ENTRY(IServiceProvider)
|
||||
COM_INTERFACE_ENTRY(IDispatch)
|
||||
COM_INTERFACE_ENTRY(IHTMLDocument)
|
||||
COM_INTERFACE_ENTRY(IHTMLDocument2)
|
||||
COM_INTERFACE_ENTRY(IServiceProvider)
|
||||
COM_INTERFACE_ENTRY(IParseDisplayName)
|
||||
COM_INTERFACE_ENTRY(IOleContainer)
|
||||
COM_INTERFACE_ENTRY(IBindHost)
|
||||
COM_INTERFACE_ENTRY_BREAK(IHlinkTarget)
|
||||
COM_INTERFACE_ENTRY(IHlinkFrame)
|
||||
END_COM_MAP()
|
||||
|
||||
// IServiceProvider
|
||||
|
@ -815,6 +840,10 @@ END_COM_MAP()
|
|||
{
|
||||
ATLTRACE(_T(" IHTMLDocument2\n"));
|
||||
}
|
||||
else if (IsEqualIID(riid, __uuidof(IBindHost)))
|
||||
{
|
||||
ATLTRACE(_T(" IBindHost\n"));
|
||||
}
|
||||
else
|
||||
{
|
||||
USES_CONVERSION;
|
||||
|
@ -1524,6 +1553,154 @@ END_COM_MAP()
|
|||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
|
||||
// IHlinkFrame
|
||||
virtual HRESULT STDMETHODCALLTYPE SetBrowseContext(
|
||||
/* [unique][in] */ IHlinkBrowseContext *pihlbc)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetBrowseContext(
|
||||
/* [out] */ IHlinkBrowseContext **ppihlbc)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE Navigate(
|
||||
/* [in] */ DWORD grfHLNF,
|
||||
/* [unique][in] */ LPBC pbc,
|
||||
/* [unique][in] */ IBindStatusCallback *pibsc,
|
||||
/* [unique][in] */ IHlink *pihlNavigate)
|
||||
{
|
||||
if (!pihlNavigate) return E_INVALIDARG;
|
||||
// TODO check grfHLNF for type of link
|
||||
LPWSTR szTarget = NULL;
|
||||
LPWSTR szLocation = NULL;
|
||||
LPWSTR szTargetFrame = NULL;
|
||||
HRESULT hr;
|
||||
hr = pihlNavigate->GetStringReference(HLINKGETREF_DEFAULT, &szTarget, &szLocation);
|
||||
hr = pihlNavigate->GetTargetFrameName(&szTargetFrame);
|
||||
if (szTarget && szTarget[0] != WCHAR('\0'))
|
||||
{
|
||||
nsCAutoString spec = NS_ConvertUCS2toUTF8(szTarget);
|
||||
nsCOMPtr<nsIURI> uri;
|
||||
nsresult rv = NS_NewURI(getter_AddRefs(uri), spec);
|
||||
if (NS_SUCCEEDED(rv) && uri)
|
||||
{
|
||||
nsCOMPtr<nsIWebNavigation> webNav = do_GetInterface(mDOMWindow);
|
||||
if (webNav)
|
||||
{
|
||||
nsCOMPtr<nsILinkHandler> lh = do_QueryInterface(webNav);
|
||||
if (lh)
|
||||
{
|
||||
lh->OnLinkClick(nsnull, eLinkVerb_Replace,
|
||||
uri, szTargetFrame);
|
||||
}
|
||||
}
|
||||
hr = S_OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
hr = E_FAIL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
hr = E_FAIL;
|
||||
}
|
||||
if (szTarget)
|
||||
CoTaskMemFree(szTarget);
|
||||
if (szLocation)
|
||||
CoTaskMemFree(szLocation);
|
||||
if (szTargetFrame)
|
||||
CoTaskMemFree(szTargetFrame);
|
||||
return hr;
|
||||
}
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE OnNavigate(
|
||||
/* [in] */ DWORD grfHLNF,
|
||||
/* [unique][in] */ IMoniker *pimkTarget,
|
||||
/* [unique][in] */ LPCWSTR pwzLocation,
|
||||
/* [unique][in] */ LPCWSTR pwzFriendlyName,
|
||||
/* [in] */ DWORD dwreserved)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE UpdateHlink(
|
||||
/* [in] */ ULONG uHLID,
|
||||
/* [unique][in] */ IMoniker *pimkTarget,
|
||||
/* [unique][in] */ LPCWSTR pwzLocation,
|
||||
/* [unique][in] */ LPCWSTR pwzFriendlyName)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
// IBindHost
|
||||
virtual HRESULT STDMETHODCALLTYPE CreateMoniker(
|
||||
/* [in] */ LPOLESTR szName,
|
||||
/* [in] */ IBindCtx *pBC,
|
||||
/* [out] */ IMoniker **ppmk,
|
||||
/* [in] */ DWORD dwReserved)
|
||||
{
|
||||
if (!szName || !ppmk) return E_POINTER;
|
||||
if (!*szName) return E_INVALIDARG;
|
||||
|
||||
*ppmk = NULL;
|
||||
HRESULT hr = CreateURLMoniker(NULL, szName, ppmk);
|
||||
if (SUCCEEDED(hr) && !*ppmk)
|
||||
hr = E_FAIL;
|
||||
return hr;
|
||||
}
|
||||
|
||||
virtual /* [local] */ HRESULT STDMETHODCALLTYPE MonikerBindToStorage(
|
||||
/* [in] */ IMoniker *pMk,
|
||||
/* [in] */ IBindCtx *pBC,
|
||||
/* [in] */ IBindStatusCallback *pBSC,
|
||||
/* [in] */ REFIID riid,
|
||||
/* [out] */ void **ppvObj)
|
||||
{
|
||||
if (!pMk || !ppvObj) return E_POINTER;
|
||||
|
||||
*ppvObj = NULL;
|
||||
HRESULT hr = S_OK;
|
||||
CComPtr<IBindCtx> spBindCtx;
|
||||
if (pBC)
|
||||
{
|
||||
spBindCtx = pBC;
|
||||
if (pBSC)
|
||||
{
|
||||
hr = RegisterBindStatusCallback(spBindCtx, pBSC, NULL, 0);
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (pBSC)
|
||||
hr = CreateAsyncBindCtx(0, pBSC, NULL, &spBindCtx);
|
||||
else
|
||||
hr = CreateBindCtx(0, &spBindCtx);
|
||||
if (SUCCEEDED(hr) && !spBindCtx)
|
||||
hr = E_FAIL;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
}
|
||||
return pMk->BindToStorage(spBindCtx, NULL, riid, ppvObj);
|
||||
}
|
||||
|
||||
virtual /* [local] */ HRESULT STDMETHODCALLTYPE MonikerBindToObject(
|
||||
/* [in] */ IMoniker *pMk,
|
||||
/* [in] */ IBindCtx *pBC,
|
||||
/* [in] */ IBindStatusCallback *pBSC,
|
||||
/* [in] */ REFIID riid,
|
||||
/* [out] */ void **ppvObj)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
HRESULT xpc_GetServiceProvider(PluginInstanceData *pData, IServiceProvider **pSP)
|
||||
|
|
Загрузка…
Ссылка в новой задаче