Added (very) basic IE DOM support
git-svn-id: svn://10.0.0.236/trunk@24626 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -19,6 +19,8 @@
|
||||
#include "IEHtmlDocument.h"
|
||||
#include "IEHtmlElementCollection.h"
|
||||
|
||||
static NS_DEFINE_IID(kIDOMNodeIID, NS_IDOMNODE_IID);
|
||||
|
||||
CIEHtmlDocument::CIEHtmlDocument()
|
||||
{
|
||||
}
|
||||
@@ -39,6 +41,18 @@ HRESULT STDMETHODCALLTYPE CIEHtmlDocument::get_Script(IDispatch __RPC_FAR *__RPC
|
||||
// IHTMLDocument2 methods
|
||||
HRESULT STDMETHODCALLTYPE CIEHtmlDocument::get_all(IHTMLElementCollection __RPC_FAR *__RPC_FAR *p)
|
||||
{
|
||||
// Get the associated document
|
||||
nsIDOMNode *pIDOMNode = nsnull;
|
||||
if (m_pIDOMNode != nsnull)
|
||||
{
|
||||
m_pIDOMNode->QueryInterface(kIDOMNodeIID, (void **) &pIDOMNode);
|
||||
}
|
||||
if (pIDOMNode == nsnull)
|
||||
{
|
||||
return E_UNEXPECTED;
|
||||
}
|
||||
|
||||
// Validate parameters
|
||||
if (p == NULL)
|
||||
{
|
||||
return E_INVALIDARG;
|
||||
@@ -47,15 +61,15 @@ HRESULT STDMETHODCALLTYPE CIEHtmlDocument::get_all(IHTMLElementCollection __RPC_
|
||||
*p = NULL;
|
||||
|
||||
CIEHtmlElementCollectionInstance *pCollection = NULL;
|
||||
CIEHtmlElementCollectionInstance::CreateInstance(&pCollection);
|
||||
if (pCollection == NULL)
|
||||
CIEHtmlElementCollection::CreateFromParentNode(pIDOMNode, (CIEHtmlElementCollection **) &pCollection);
|
||||
if (pCollection)
|
||||
{
|
||||
return E_OUTOFMEMORY;
|
||||
pCollection->AddRef();
|
||||
*p = pCollection;
|
||||
}
|
||||
|
||||
// TODO get everything from NG and make some elements!
|
||||
pIDOMNode->Release();
|
||||
|
||||
pCollection->QueryInterface(IID_IHTMLElementCollection, (void **) p);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,9 @@
|
||||
#ifndef IEHTMLDOCUMENT_H
|
||||
#define IEHTMLDOCUMENT_H
|
||||
|
||||
class CIEHtmlDocument : public CComObjectRootEx<CComSingleThreadModel>,
|
||||
#include "IEHtmlNode.h"
|
||||
|
||||
class CIEHtmlDocument : public CIEHtmlNode,
|
||||
public IDispatchImpl<IHTMLDocument2, &IID_IHTMLDocument2, &LIBID_MSHTML>
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -19,7 +19,9 @@
|
||||
#include "stdafx.h"
|
||||
|
||||
#include "IEHtmlElement.h"
|
||||
#include "IEHtmlElementCollection.h"
|
||||
|
||||
static NS_DEFINE_IID(kIDOMNodeIID, NS_IDOMNODE_IID);
|
||||
|
||||
CIEHtmlElement::CIEHtmlElement()
|
||||
{
|
||||
@@ -30,7 +32,6 @@ CIEHtmlElement::~CIEHtmlElement()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// IHTMLElement implementation
|
||||
|
||||
@@ -56,7 +57,13 @@ HRESULT STDMETHODCALLTYPE CIEHtmlElement::put_className(BSTR v)
|
||||
|
||||
HRESULT STDMETHODCALLTYPE CIEHtmlElement::get_className(BSTR __RPC_FAR *p)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
if (p == NULL)
|
||||
{
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
// TODO
|
||||
*p = SysAllocString(OLESTR(""));
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE CIEHtmlElement::put_id(BSTR v)
|
||||
@@ -66,12 +73,28 @@ HRESULT STDMETHODCALLTYPE CIEHtmlElement::put_id(BSTR v)
|
||||
|
||||
HRESULT STDMETHODCALLTYPE CIEHtmlElement::get_id(BSTR __RPC_FAR *p)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
if (p == NULL)
|
||||
{
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
// TODO
|
||||
*p = SysAllocString(OLESTR(""));
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE CIEHtmlElement::get_tagName(BSTR __RPC_FAR *p)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
if (p == NULL)
|
||||
{
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
|
||||
nsString sNodeName;
|
||||
m_pIDOMNode->GetNodeName(sNodeName);
|
||||
|
||||
USES_CONVERSION;
|
||||
*p = SysAllocString(W2COLE((const PRUnichar *) sNodeName));
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE CIEHtmlElement::get_parentElement(IHTMLElement __RPC_FAR *__RPC_FAR *p)
|
||||
@@ -466,6 +489,35 @@ HRESULT STDMETHODCALLTYPE CIEHtmlElement::get_children(IDispatch __RPC_FAR *__RP
|
||||
|
||||
HRESULT STDMETHODCALLTYPE CIEHtmlElement::get_all(IDispatch __RPC_FAR *__RPC_FAR *p)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
// Get the associated document
|
||||
nsIDOMNode *pIDOMNode = nsnull;
|
||||
if (m_pIDOMNode != nsnull)
|
||||
{
|
||||
m_pIDOMNode->QueryInterface(kIDOMNodeIID, (void **) &pIDOMNode);
|
||||
}
|
||||
if (pIDOMNode == nsnull)
|
||||
{
|
||||
return E_UNEXPECTED;
|
||||
}
|
||||
|
||||
// Validate parameters
|
||||
if (p == NULL)
|
||||
{
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
|
||||
*p = NULL;
|
||||
|
||||
CIEHtmlElementCollectionInstance *pCollection = NULL;
|
||||
CIEHtmlElementCollection::CreateFromParentNode(pIDOMNode, (CIEHtmlElementCollection **) &pCollection);
|
||||
if (pCollection)
|
||||
{
|
||||
pCollection->AddRef();
|
||||
*p = pCollection;
|
||||
}
|
||||
|
||||
pIDOMNode->Release();
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
@@ -18,13 +18,23 @@
|
||||
#ifndef IEHTMLELEMENT_H
|
||||
#define IEHTMLELEMENT_H
|
||||
|
||||
class CIEHtmlElement : public CComObjectRootEx<CComSingleThreadModel>,
|
||||
#include "IEHtmlNode.h"
|
||||
|
||||
class CIEHtmlElement : public CIEHtmlNode,
|
||||
public IDispatchImpl<IHTMLElement, &IID_IHTMLElement, &LIBID_MSHTML>
|
||||
{
|
||||
public:
|
||||
CIEHtmlElement();
|
||||
protected:
|
||||
virtual ~CIEHtmlElement();
|
||||
|
||||
public:
|
||||
|
||||
BEGIN_COM_MAP(CIEHtmlElement)
|
||||
COM_INTERFACE_ENTRY_IID(IID_IDispatch, IHTMLElement)
|
||||
COM_INTERFACE_ENTRY_IID(IID_IHTMLElement, IHTMLElement)
|
||||
END_COM_MAP()
|
||||
|
||||
// Implementation of IHTMLElement
|
||||
virtual HRESULT STDMETHODCALLTYPE setAttribute(BSTR strAttributeName, VARIANT AttributeValue, LONG lFlags);
|
||||
virtual HRESULT STDMETHODCALLTYPE getAttribute(BSTR strAttributeName, LONG lFlags, VARIANT __RPC_FAR *AttributeValue);
|
||||
@@ -119,7 +129,6 @@ public:
|
||||
COM_INTERFACE_ENTRY_IID(IID_IDispatch, IHTMLElement) \
|
||||
COM_INTERFACE_ENTRY_IID(IID_IHTMLElement, IHTMLElement)
|
||||
|
||||
|
||||
typedef CComObject<CIEHtmlElement> CIEHtmlElementInstance;
|
||||
|
||||
#endif
|
||||
@@ -16,6 +16,7 @@
|
||||
* Reserved.
|
||||
*/
|
||||
#include "stdafx.h"
|
||||
#include "IEHtmlElement.h"
|
||||
#include "IEHtmlElementCollection.h"
|
||||
|
||||
CIEHtmlElementCollection::CIEHtmlElementCollection()
|
||||
@@ -26,6 +27,75 @@ CIEHtmlElementCollection::~CIEHtmlElementCollection()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
HRESULT CIEHtmlElementCollection::CreateFromParentNode(nsIDOMNode *pParentNode, CIEHtmlElementCollection **pInstance)
|
||||
{
|
||||
if (pInstance == NULL)
|
||||
{
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
|
||||
if (pParentNode == nsnull)
|
||||
{
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
|
||||
*pInstance = NULL;
|
||||
|
||||
CIEHtmlElementCollectionInstance *pCollection = NULL;
|
||||
CIEHtmlElementCollectionInstance::CreateInstance(&pCollection);
|
||||
|
||||
// Get elements
|
||||
nsIDOMNodeList *pIDOMNodeList = nsnull;
|
||||
pParentNode->GetChildNodes(&pIDOMNodeList);
|
||||
if (pIDOMNodeList)
|
||||
{
|
||||
PRUint32 aLength = 0;
|
||||
pIDOMNodeList->GetLength(&aLength);
|
||||
for (PRUint32 i = 0; i < aLength; i++)
|
||||
{
|
||||
nsIDOMNode *pChildNode = nsnull;
|
||||
pIDOMNodeList->Item(i, &pChildNode);
|
||||
|
||||
// Create an equivalent IE element
|
||||
CIEHtmlElementInstance *pElement = NULL;
|
||||
CIEHtmlElementInstance::CreateInstance(&pElement);
|
||||
if (pElement)
|
||||
{
|
||||
pElement->SetDOMNode(pChildNode);
|
||||
pCollection->AddNode(pElement);
|
||||
}
|
||||
|
||||
if (pChildNode)
|
||||
{
|
||||
pChildNode->Release();
|
||||
}
|
||||
}
|
||||
pIDOMNodeList->Release();
|
||||
}
|
||||
|
||||
*pInstance = pCollection;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
HRESULT CIEHtmlElementCollection::AddNode(IDispatch *pNode)
|
||||
{
|
||||
if (pNode == NULL)
|
||||
{
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
m_cNodeList.push_back(pNode);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// IHTMLElementCollection methods
|
||||
|
||||
|
||||
HRESULT STDMETHODCALLTYPE CIEHtmlElementCollection::toString(BSTR __RPC_FAR *String)
|
||||
{
|
||||
if (String == NULL)
|
||||
@@ -36,31 +106,57 @@ HRESULT STDMETHODCALLTYPE CIEHtmlElementCollection::toString(BSTR __RPC_FAR *Str
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
HRESULT STDMETHODCALLTYPE CIEHtmlElementCollection::put_length(long v)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
|
||||
HRESULT STDMETHODCALLTYPE CIEHtmlElementCollection::get_length(long __RPC_FAR *p)
|
||||
{
|
||||
if (p == NULL)
|
||||
{
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
*p = m_cElementList.size();
|
||||
*p = m_cNodeList.size();
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
HRESULT STDMETHODCALLTYPE CIEHtmlElementCollection::get__newEnum(IUnknown __RPC_FAR *__RPC_FAR *p)
|
||||
{
|
||||
*p = NULL;
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
|
||||
HRESULT STDMETHODCALLTYPE CIEHtmlElementCollection::item(VARIANT name, VARIANT index, IDispatch __RPC_FAR *__RPC_FAR *pdisp)
|
||||
{
|
||||
CComVariant vIndex;
|
||||
if (FAILED(vIndex.ChangeType(VT_I4, &index)))
|
||||
{
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
|
||||
int nIndex = vIndex.lVal;
|
||||
if (nIndex < 0 || nIndex >= m_cNodeList.size())
|
||||
{
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
|
||||
*pdisp = NULL;
|
||||
return E_NOTIMPL;
|
||||
|
||||
IDispatch *pNode = m_cNodeList[nIndex];
|
||||
if (pNode == NULL)
|
||||
{
|
||||
NG_ASSERT(0);
|
||||
return E_UNEXPECTED;
|
||||
}
|
||||
|
||||
pNode->QueryInterface(IID_IDispatch, (void **) pdisp);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE CIEHtmlElementCollection::tags(VARIANT tagName, IDispatch __RPC_FAR *__RPC_FAR *pdisp)
|
||||
|
||||
@@ -15,27 +15,33 @@
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
#ifndef IEHTMLELEMENTCOLLECTION_H
|
||||
#define IEHTMLELEMENTCOLLECTION_H
|
||||
#ifndef IEHTMLNODECOLLECTION_H
|
||||
#define IEHTMLNODECOLLECTION_H
|
||||
|
||||
#include "IEHtmlElement.h"
|
||||
#include "IEHtmlNode.h"
|
||||
|
||||
class CIEHtmlElementCollection : public CComObjectRootEx<CComSingleThreadModel>,
|
||||
public IDispatchImpl<IHTMLElementCollection, &IID_IHTMLElementCollection, &LIBID_MSHTML>
|
||||
public IDispatchImpl<IHTMLElementCollection, &IID_IHTMLElementCollection, &LIBID_MSHTML>
|
||||
{
|
||||
std::list< CIEHtmlElement * > m_cElementList;
|
||||
std::vector< CComQIPtr<IDispatch, &IID_IDispatch> > m_cNodeList;
|
||||
|
||||
public:
|
||||
CIEHtmlElementCollection();
|
||||
protected:
|
||||
virtual ~CIEHtmlElementCollection();
|
||||
|
||||
public:
|
||||
// Adds a node to the collection
|
||||
virtual HRESULT AddNode(IDispatch *pNode);
|
||||
|
||||
// Helper method creates a collection from a parent node
|
||||
static HRESULT CreateFromParentNode(nsIDOMNode *pParentNode, CIEHtmlElementCollection **pInstance);
|
||||
|
||||
BEGIN_COM_MAP(CIEHtmlElementCollection)
|
||||
COM_INTERFACE_ENTRY_IID(IID_IDispatch, IHTMLElementCollection)
|
||||
COM_INTERFACE_ENTRY_IID(IID_IHTMLElementCollection, IHTMLElementCollection)
|
||||
END_COM_MAP()
|
||||
|
||||
|
||||
// IHTMLElementCollection methods
|
||||
virtual HRESULT STDMETHODCALLTYPE toString(BSTR __RPC_FAR *String);
|
||||
virtual HRESULT STDMETHODCALLTYPE put_length(long v);
|
||||
@@ -47,5 +53,4 @@ END_COM_MAP()
|
||||
|
||||
typedef CComObject<CIEHtmlElementCollection> CIEHtmlElementCollectionInstance;
|
||||
|
||||
|
||||
#endif
|
||||
@@ -730,10 +730,10 @@ HRESULT STDMETHODCALLTYPE CMozillaBrowser::Navigate(BSTR URL, VARIANT __RPC_FAR
|
||||
|
||||
// Extract the launch flags parameter
|
||||
LONG lFlags = 0;
|
||||
if (Flags)
|
||||
if (Flags && Flags->vt != VT_EMPTY && Flags->vt != VT_NULL)
|
||||
{
|
||||
CComVariant vFlags;
|
||||
if (VariantChangeType(Flags, &vFlags, 0, VT_I4) != S_OK)
|
||||
if (vFlags.ChangeType(VT_I4, Flags) != S_OK)
|
||||
{
|
||||
NG_ASSERT(0);
|
||||
return E_INVALIDARG;
|
||||
@@ -966,6 +966,13 @@ HRESULT STDMETHODCALLTYPE CMozillaBrowser::get_Document(IDispatch __RPC_FAR *__R
|
||||
|
||||
*ppDisp = NULL;
|
||||
|
||||
// Get hold of the DOM document
|
||||
nsIDOMDocument *pIDOMDocument = nsnull;
|
||||
if (FAILED(GetDOMDocument(&pIDOMDocument)) || pIDOMDocument == nsnull)
|
||||
{
|
||||
return E_UNEXPECTED;
|
||||
}
|
||||
|
||||
CIEHtmlDocumentInstance *pDocument = NULL;
|
||||
CIEHtmlDocumentInstance::CreateInstance(&pDocument);
|
||||
if (pDocument == NULL)
|
||||
@@ -974,8 +981,10 @@ HRESULT STDMETHODCALLTYPE CMozillaBrowser::get_Document(IDispatch __RPC_FAR *__R
|
||||
}
|
||||
|
||||
pDocument->QueryInterface(IID_IDispatch, (void **) ppDisp);
|
||||
pDocument->SetDOMNode(pIDOMDocument);
|
||||
pIDOMDocument->Release();
|
||||
|
||||
return E_NOINTERFACE;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE CMozillaBrowser::get_TopLevelContainer(VARIANT_BOOL __RPC_FAR *pBool)
|
||||
@@ -1635,6 +1644,12 @@ HRESULT STDMETHODCALLTYPE CMozillaBrowser::Navigate2(VARIANT __RPC_FAR *URL, VAR
|
||||
return E_UNEXPECTED;
|
||||
}
|
||||
|
||||
if (URL == NULL)
|
||||
{
|
||||
NG_ASSERT(0);
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
|
||||
CComVariant vURLAsString;
|
||||
if (vURLAsString.ChangeType(VT_BSTR, URL) != S_OK)
|
||||
{
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Microsoft Developer Studio Project File - Name="MozillaControl" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 5.00
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) External Target" 0x0106
|
||||
@@ -17,13 +17,12 @@ CFG=MozillaControl - Win32 Debug
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "MozillaControl - Win32 Release" (based on\
|
||||
"Win32 (x86) External Target")
|
||||
!MESSAGE "MozillaControl - Win32 Debug" (based on\
|
||||
"Win32 (x86) External Target")
|
||||
!MESSAGE "MozillaControl - Win32 Release" (based on "Win32 (x86) External Target")
|
||||
!MESSAGE "MozillaControl - Win32 Debug" (based on "Win32 (x86) External Target")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
|
||||
@@ -111,6 +110,10 @@ SOURCE=.\IEHtmlElementCollection.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\IEHtmlNode.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\LegacyPlugin.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -199,6 +202,10 @@ SOURCE=.\IEHtmlElementCollection.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\IEHtmlNode.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\MozillaBrowser.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
@@ -93,7 +93,10 @@ typedef long int32;
|
||||
#include "nsCRT.h"
|
||||
|
||||
#include "nsIDocumentViewer.h"
|
||||
#include "nsIDOMNode.h"
|
||||
#include "nsIDOMNodeList.h"
|
||||
#include "nsIDOMDocument.h"
|
||||
#include "nsIDOMElement.h"
|
||||
|
||||
// Mozilla control headers
|
||||
#include "resource.h"
|
||||
|
||||
@@ -42,8 +42,9 @@ OBJS = \
|
||||
.\$(OBJDIR)\ControlSite.obj \
|
||||
.\$(OBJDIR)\ControlSiteIPFrame.obj \
|
||||
.\$(OBJDIR)\PropertyBag.obj \
|
||||
.\$(OBJDIR)\IEHtmlElement.obj \
|
||||
.\$(OBJDIR)\IEHtmlNode.obj \
|
||||
.\$(OBJDIR)\IEHtmlElementCollection.obj \
|
||||
.\$(OBJDIR)\IEHtmlElement.obj \
|
||||
.\$(OBJDIR)\IEHtmlDocument.obj \
|
||||
!ifdef MOZ_ACTIVEX_PLUGIN_SUPPORT
|
||||
.\$(OBJDIR)\ActiveXPlugin.obj \
|
||||
@@ -94,7 +95,7 @@ LLIBS = $(MYLIBS) \
|
||||
shell32.lib \
|
||||
-SUBSYSTEM:windows
|
||||
|
||||
LCFLAGS = /D "WIN32" /GX /FR
|
||||
LCFLAGS = /D "WIN32" /GX /FR /U "ClientWallet"
|
||||
LFLAGS = /DLL
|
||||
|
||||
include <$(DEPTH)\config\rules.mak>
|
||||
@@ -128,11 +129,13 @@ ControlSite.cpp \
|
||||
ControlSiteIPFrame.cpp \
|
||||
PropertyBag.cpp : StdAfx.h PropertyBag.h ControlSite.h ControlSiteIPFrame.h
|
||||
|
||||
IEHtmlElement.cpp : StdAfx.h IEHtmlElement.h
|
||||
IEHtmlNode.cpp : StdAfx.h IEHtmlNode.h
|
||||
|
||||
IEHtmlElementCollection.cpp : StdAfx.h IEHtmlElementCollection.h
|
||||
|
||||
IEHtmlDocument.cpp : StdAfx.h IEHtmlDocument.h
|
||||
IEHtmlElement.cpp : StdAfx.h IEHtmlNode.h IEHtmlElement.h
|
||||
|
||||
IEHtmlDocument.cpp : StdAfx.h IEHtmlNode.h IEHtmlDocument.h
|
||||
|
||||
MozillaControl.cpp \
|
||||
MozillaBrowser.cpp \
|
||||
|
||||
Reference in New Issue
Block a user