Commit c0e42d55 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

shdocvw: Added beginning InternetExplorer implementation.

parent c48c50f5
......@@ -16,6 +16,7 @@ C_SRCS = \
events.c \
factory.c \
frame.c \
ie.c \
iexplore.c \
navigate.c \
oleobject.c \
......
......@@ -172,7 +172,7 @@ iecs_QueryInterface(iecs *This, REFIID riid, void **ppv)
IsEqualGUID(riid, &IID_IOleClientSite))
{
iecs_AddRef(This);
*ppv = &This->lpVtbl;;
*ppv = &This->lpVtbl;
return S_OK;
}
if (IsEqualGUID(riid, &IID_IOleInPlaceSite) ||
......@@ -553,3 +553,30 @@ error:
return r;
}
HRESULT InternetExplorer_Create(IUnknown *pOuter, REFIID riid, void **ppv)
{
InternetExplorer *ret;
HRESULT hres;
TRACE("(%p %s %p)\n", pOuter, debugstr_guid(riid), ppv);
ret = HeapAlloc(GetProcessHeap(), 0, sizeof(InternetExplorer));
ret->ref = 0;
ret->doc_host.disp = (IDispatch*)WEBBROWSER2(ret);
DocHost_Init(&ret->doc_host, (IDispatch*)WEBBROWSER2(ret));
InternetExplorer_WebBrowser_Init(ret);
/* create_frame_hwnd(ret); */
ret->doc_host.frame_hwnd = ret->frame_hwnd = NULL;
hres = IWebBrowser2_QueryInterface(WEBBROWSER2(ret), riid, ppv);
if(FAILED(hres)) {
HeapFree(GetProcessHeap(), 0, ret);
return hres;
}
return hres;
}
......@@ -118,6 +118,16 @@ typedef struct {
DocHost doc_host;
} WebBrowser;
typedef struct {
const IWebBrowser2Vtbl *lpWebBrowser2Vtbl;
LONG ref;
HWND frame_hwnd;
DocHost doc_host;
} InternetExplorer;
#define WEBBROWSER(x) ((IWebBrowser*) &(x)->lpWebBrowser2Vtbl)
#define WEBBROWSER2(x) ((IWebBrowser2*) &(x)->lpWebBrowser2Vtbl)
#define OLEOBJ(x) ((IOleObject*) &(x)->lpOleObjectVtbl)
......@@ -171,6 +181,9 @@ HRESULT navigate_url(DocHost*,LPCWSTR,PBYTE,ULONG,LPWSTR);
HRESULT create_mozctl(REFIID,void**);
HRESULT InternetExplorer_Create(IUnknown*,REFIID,void**);
void InternetExplorer_WebBrowser_Init(InternetExplorer*);
#define WB_WM_NAVIGATE2 (WM_USER+100)
#define DEFINE_THIS(cls,ifc,iface) ((cls*)((BYTE*)(iface)-offsetof(cls,lp ## ifc ## Vtbl)))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment