ReactOS 0.4.15-dev-7788-g1ad9096
ieframe.h File Reference
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "winuser.h"
#include "ole2.h"
#include "olectl.h"
#include "shlobj.h"
#include "mshtmhst.h"
#include "exdisp.h"
#include "hlink.h"
#include "htiface.h"
#include "shdeprecated.h"
#include "docobjectservice.h"
#include "wine/heap.h"
#include "wine/list.h"
Include dependency graph for ieframe.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ConnectionPointContainer
 
struct  HlinkFrame
 
struct  _task_header_t
 
struct  ShellBrowser
 Implementation of IShellBrowserImpl interface in explorer child windows. More...
 
struct  IEHTMLWindow
 
struct  NewWindowManager
 
struct  travellog_entry_t
 
struct  _IDocHostContainerVtbl
 
struct  DocHost
 
struct  WebBrowser
 
struct  InternetExplorer
 

Macros

#define COBJMACROS
 
#define WM_DOCHOSTTASK   (WM_USER+0x300)
 
#define TID_LIST
 
#define XIID(iface)   iface ## _tid,
 
#define XCLSID(class)   class ## _tid,
 

Typedefs

typedef struct ConnectionPoint ConnectionPoint
 
typedef struct DocHost DocHost
 
typedef void(* task_proc_t) (DocHost *, struct _task_header_t *)
 
typedef void(* task_destr_t) (struct _task_header_t *)
 
typedef struct _task_header_t task_header_t
 
typedef struct _IDocHostContainerVtbl IDocHostContainerVtbl
 

Enumerations

enum  tid_t {
  LAST_tid , LAST_tid , Database_tid , Installer_tid ,
  Record_tid , Session_tid , StringList_tid , SummaryInfo_tid ,
  View_tid , LAST_tid , NULL_tid , IXMLDOMAttribute_tid ,
  IXMLDOMCDATASection_tid , IXMLDOMComment_tid , IXMLDOMDocument_tid , IXMLDOMDocument2_tid ,
  IXMLDOMDocument3_tid , IXMLDOMDocumentFragment_tid , IXMLDOMDocumentType_tid , IXMLDOMElement_tid ,
  IXMLDOMEntityReference_tid , IXMLDOMImplementation_tid , IXMLDOMNamedNodeMap_tid , IXMLDOMNode_tid ,
  IXMLDOMNodeList_tid , IXMLDOMParseError2_tid , IXMLDOMProcessingInstruction_tid , IXMLDOMSchemaCollection_tid ,
  IXMLDOMSchemaCollection2_tid , IXMLDOMSelection_tid , IXMLDOMText_tid , IXMLElement_tid ,
  IXMLDocument_tid , IXMLHTTPRequest_tid , IXSLProcessor_tid , IXSLTemplate_tid ,
  IVBSAXAttributes_tid , IVBSAXContentHandler_tid , IVBSAXDeclHandler_tid , IVBSAXDTDHandler_tid ,
  IVBSAXEntityResolver_tid , IVBSAXErrorHandler_tid , IVBSAXLexicalHandler_tid , IVBSAXLocator_tid ,
  IVBSAXXMLFilter_tid , IVBSAXXMLReader_tid , IMXAttributes_tid , IMXReaderControl_tid ,
  IMXWriter_tid , IVBMXNamespaceManager_tid , IServerXMLHTTPRequest_tid , LAST_tid ,
  NULL_tid , ITextDocument_tid , ITextRange_tid , ITextSelection_tid ,
  ITextFont_tid , ITextPara_tid , LAST_tid , NULL_tid ,
  IDictionary_tid , IDrive_tid , IDriveCollection_tid , IFile_tid ,
  IFileCollection_tid , IFileSystem3_tid , IFolder_tid , IFolderCollection_tid ,
  ITextStream_tid , LAST_tid , NULL_tid , IWshCollection_tid ,
  IWshEnvironment_tid , IWshExec_tid , IWshShell3_tid , IWshShortcut_tid ,
  LAST_tid
}
 

Functions

void WebBrowser_OleObject_Init (WebBrowser *) DECLSPEC_HIDDEN
 
void WebBrowser_ViewObject_Init (WebBrowser *) DECLSPEC_HIDDEN
 
void WebBrowser_Persist_Init (WebBrowser *) DECLSPEC_HIDDEN
 
void WebBrowser_ClassInfo_Init (WebBrowser *) DECLSPEC_HIDDEN
 
void WebBrowser_OleObject_Destroy (WebBrowser *) DECLSPEC_HIDDEN
 
void DocHost_Init (DocHost *, IWebBrowser2 *, const IDocHostContainerVtbl *) DECLSPEC_HIDDEN
 
void DocHost_Release (DocHost *) DECLSPEC_HIDDEN
 
void DocHost_ClientSite_Init (DocHost *) DECLSPEC_HIDDEN
 
void DocHost_ClientSite_Release (DocHost *) DECLSPEC_HIDDEN
 
void DocHost_Frame_Init (DocHost *) DECLSPEC_HIDDEN
 
void release_dochost_client (DocHost *) DECLSPEC_HIDDEN
 
void IEHTMLWindow_Init (DocHost *) DECLSPEC_HIDDEN
 
void NewWindowManager_Init (DocHost *) DECLSPEC_HIDDEN
 
void HlinkFrame_Init (HlinkFrame *, IUnknown *, DocHost *) DECLSPEC_HIDDEN
 
BOOL HlinkFrame_QI (HlinkFrame *, REFIID, void **) DECLSPEC_HIDDEN
 
HRESULT create_browser_service (DocHost *, ShellBrowser **) DECLSPEC_HIDDEN
 
void detach_browser_service (ShellBrowser *) DECLSPEC_HIDDEN
 
HRESULT create_shell_ui_helper (IShellUIHelper2 **) DECLSPEC_HIDDEN
 
void ConnectionPointContainer_Init (ConnectionPointContainer *, IUnknown *) DECLSPEC_HIDDEN
 
void ConnectionPointContainer_Destroy (ConnectionPointContainer *) DECLSPEC_HIDDEN
 
void call_sink (ConnectionPoint *, DISPID, DISPPARAMS *) DECLSPEC_HIDDEN
 
HRESULT navigate_url (DocHost *, LPCWSTR, const VARIANT *, const VARIANT *, VARIANT *, VARIANT *) DECLSPEC_HIDDEN
 
HRESULT go_home (DocHost *) DECLSPEC_HIDDEN
 
HRESULT go_back (DocHost *) DECLSPEC_HIDDEN
 
HRESULT go_forward (DocHost *) DECLSPEC_HIDDEN
 
HRESULT refresh_document (DocHost *, const VARIANT *) DECLSPEC_HIDDEN
 
HRESULT get_location_url (DocHost *, BSTR *) DECLSPEC_HIDDEN
 
HRESULT set_dochost_url (DocHost *, const WCHAR *) DECLSPEC_HIDDEN
 
void handle_navigation_error (DocHost *, HRESULT, BSTR, IHTMLWindow2 *) DECLSPEC_HIDDEN
 
HRESULT dochost_object_available (DocHost *, IUnknown *) DECLSPEC_HIDDEN
 
void set_doc_state (DocHost *, READYSTATE) DECLSPEC_HIDDEN
 
void deactivate_document (DocHost *) DECLSPEC_HIDDEN
 
void create_doc_view_hwnd (DocHost *) DECLSPEC_HIDDEN
 
void on_commandstate_change (DocHost *, LONG, BOOL) DECLSPEC_HIDDEN
 
void notify_download_state (DocHost *, BOOL) DECLSPEC_HIDDEN
 
void update_navigation_commands (DocHost *dochost) DECLSPEC_HIDDEN
 
void push_dochost_task (DocHost *, task_header_t *, task_proc_t, task_destr_t, BOOL) DECLSPEC_HIDDEN
 
void abort_dochost_tasks (DocHost *, task_proc_t) DECLSPEC_HIDDEN
 
LRESULT process_dochost_tasks (DocHost *) DECLSPEC_HIDDEN
 
void InternetExplorer_WebBrowser_Init (InternetExplorer *) DECLSPEC_HIDDEN
 
HRESULT update_ie_statustext (InternetExplorer *, LPCWSTR) DECLSPEC_HIDDEN
 
void released_obj (void) DECLSPEC_HIDDEN
 
DWORD release_extern_ref (InternetExplorer *, BOOL) DECLSPEC_HIDDEN
 
void register_iewindow_class (void) DECLSPEC_HIDDEN
 
void unregister_iewindow_class (void) DECLSPEC_HIDDEN
 
HRESULT get_typeinfo (tid_t, ITypeInfo **) DECLSPEC_HIDDEN
 
HRESULT WINAPI CUrlHistory_Create (IClassFactory *, IUnknown *, REFIID, void **) DECLSPEC_HIDDEN
 
HRESULT WINAPI InternetExplorer_Create (IClassFactory *, IUnknown *, REFIID, void **) DECLSPEC_HIDDEN
 
HRESULT WINAPI InternetShortcut_Create (IClassFactory *, IUnknown *, REFIID, void **) DECLSPEC_HIDDEN
 
HRESULT WINAPI WebBrowser_Create (IClassFactory *, IUnknown *, REFIID, void **) DECLSPEC_HIDDEN
 
HRESULT WINAPI WebBrowserV1_Create (IClassFactory *, IUnknown *, REFIID, void **) DECLSPEC_HIDDEN
 
HRESULT WINAPI InternetExplorerManager_Create (IClassFactory *, IUnknown *, REFIID, void **) DECLSPEC_HIDDEN
 
static void lock_module (void)
 
static void unlock_module (void)
 
static LPWSTR heap_strdupW (LPCWSTR str)
 
static LPWSTR co_strdupW (LPCWSTR str)
 
static LPWSTR co_strdupAtoW (LPCSTR str)
 
static LPSTR co_strdupWtoA (LPCWSTR str)
 

Variables

IClassFactory InternetExplorerFactory DECLSPEC_HIDDEN
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 25 of file ieframe.h.

◆ TID_LIST

#define TID_LIST
Value:
XCLSID(WebBrowser_V1) \
XIID(IWebBrowser2)
#define XCLSID(class)
Definition: ieframe.h:313

Definition at line 306 of file ieframe.h.

◆ WM_DOCHOSTTASK

#define WM_DOCHOSTTASK   (WM_USER+0x300)

Definition at line 293 of file ieframe.h.

◆ XCLSID

#define XCLSID (   class)    class ## _tid,

Definition at line 313 of file ieframe.h.

◆ XIID

#define XIID (   iface)    iface ## _tid,

Definition at line 312 of file ieframe.h.

Typedef Documentation

◆ ConnectionPoint

Definition at line 49 of file ieframe.h.

◆ DocHost

Definition at line 50 of file ieframe.h.

◆ IDocHostContainerVtbl

◆ task_destr_t

typedef void(* task_destr_t) (struct _task_header_t *)

Definition at line 76 of file ieframe.h.

◆ task_header_t

◆ task_proc_t

typedef void(* task_proc_t) (DocHost *, struct _task_header_t *)

Definition at line 75 of file ieframe.h.

Enumeration Type Documentation

◆ tid_t

Enumerator
LAST_tid 
LAST_tid 
Database_tid 
Installer_tid 
Record_tid 
Session_tid 
StringList_tid 
SummaryInfo_tid 
View_tid 
LAST_tid 
NULL_tid 
IXMLDOMAttribute_tid 
IXMLDOMCDATASection_tid 
IXMLDOMComment_tid 
IXMLDOMDocument_tid 
IXMLDOMDocument2_tid 
IXMLDOMDocument3_tid 
IXMLDOMDocumentFragment_tid 
IXMLDOMDocumentType_tid 
IXMLDOMElement_tid 
IXMLDOMEntityReference_tid 
IXMLDOMImplementation_tid 
IXMLDOMNamedNodeMap_tid 
IXMLDOMNode_tid 
IXMLDOMNodeList_tid 
IXMLDOMParseError2_tid 
IXMLDOMProcessingInstruction_tid 
IXMLDOMSchemaCollection_tid 
IXMLDOMSchemaCollection2_tid 
IXMLDOMSelection_tid 
IXMLDOMText_tid 
IXMLElement_tid 
IXMLDocument_tid 
IXMLHTTPRequest_tid 
IXSLProcessor_tid 
IXSLTemplate_tid 
IVBSAXAttributes_tid 
IVBSAXContentHandler_tid 
IVBSAXDeclHandler_tid 
IVBSAXDTDHandler_tid 
IVBSAXEntityResolver_tid 
IVBSAXErrorHandler_tid 
IVBSAXLexicalHandler_tid 
IVBSAXLocator_tid 
IVBSAXXMLFilter_tid 
IVBSAXXMLReader_tid 
IMXAttributes_tid 
IMXReaderControl_tid 
IMXWriter_tid 
IVBMXNamespaceManager_tid 
IServerXMLHTTPRequest_tid 
LAST_tid 
NULL_tid 
ITextDocument_tid 
ITextRange_tid 
ITextSelection_tid 
ITextFont_tid 
ITextPara_tid 
LAST_tid 
NULL_tid 
IDictionary_tid 
IDrive_tid 
IDriveCollection_tid 
IFile_tid 
IFileCollection_tid 
IFileSystem3_tid 
IFolder_tid 
IFolderCollection_tid 
ITextStream_tid 
LAST_tid 
NULL_tid 
IWshCollection_tid 
IWshEnvironment_tid 
IWshExec_tid 
IWshShell3_tid 
IWshShortcut_tid 
LAST_tid 

Definition at line 311 of file ieframe.h.

311 {
312#define XIID(iface) iface ## _tid,
313#define XCLSID(class) class ## _tid,
315#undef XIID
316#undef XCLSID
318} tid_t;
tid_t
Definition: ieframe.h:311
@ LAST_tid
Definition: ieframe.h:317
#define TID_LIST
Definition: ieframe.h:306

Function Documentation

◆ abort_dochost_tasks()

void abort_dochost_tasks ( DocHost This,
task_proc_t  proc 
)

Definition at line 70 of file dochost.c.

71{
72 task_header_t *task, *cursor;
73
75 if(proc && proc != task->proc)
76 continue;
77
78 list_remove(&task->entry);
79 task->destr(task);
80 }
81}
static void list_remove(struct list_entry *entry)
Definition: list.h:90
const char cursor[]
Definition: icontest.c:13
uint32_t entry
Definition: isohybrid.c:63
static HANDLE proc()
Definition: pdb.c:34
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
Definition: list.h:204
async_task_proc_t proc
Definition: internet.h:389

Referenced by async_doc_navigate(), and DocHost_Release().

◆ call_sink()

void call_sink ( ConnectionPoint This,
DISPID  dispid,
DISPPARAMS *  dispparams 
)

Definition at line 391 of file events.c.

392{
393 DWORD i;
394
395 for(i=0; i<This->sinks_size; i++) {
396 if(This->sinks[i])
397 IDispatch_Invoke(This->sinks[i], dispid, &IID_NULL, LOCALE_SYSTEM_DEFAULT,
398 DISPATCH_METHOD, dispparams, NULL, NULL, NULL);
399 }
400}
#define NULL
Definition: types.h:112
unsigned long DWORD
Definition: ntddk_ex.h:95
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define LOCALE_SYSTEM_DEFAULT
#define DISPATCH_METHOD
Definition: oleauto.h:1006
#define IID_NULL
Definition: guiddef.h:98

Referenced by DocObjectService_FireBeforeNavigate2(), DocObjectService_FireDocumentComplete(), DocObjectService_FireNavigateComplete2(), handle_navigation_error(), notif_complete(), notify_download_state(), on_before_navigate2(), on_commandstate_change(), set_status_text(), WebBrowser_put_AddressBar(), WebBrowser_put_FullScreen(), WebBrowser_put_MenuBar(), WebBrowser_put_Resizable(), WebBrowser_put_StatusBar(), WebBrowser_put_TheaterMode(), WebBrowser_put_ToolBar(), and WebBrowser_put_Visible().

◆ co_strdupAtoW()

static LPWSTR co_strdupAtoW ( LPCSTR  str)
inlinestatic

Definition at line 367 of file ieframe.h.

368{
369 INT len;
370 WCHAR *ret;
371 len = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
372 ret = CoTaskMemAlloc(len*sizeof(WCHAR));
373 if (ret)
375 return ret;
376}
#define CP_ACP
Definition: compat.h:109
#define MultiByteToWideChar
Definition: compat.h:110
GLenum GLsizei len
Definition: glext.h:6722
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
Definition: ifs.c:426
const WCHAR * str
int32_t INT
Definition: typedefs.h:58
int ret
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by UniformResourceLocatorA_SetUrl().

◆ co_strdupW()

static LPWSTR co_strdupW ( LPCWSTR  str)
inlinestatic

Definition at line 359 of file ieframe.h.

360{
361 WCHAR *ret = CoTaskMemAlloc((lstrlenW(str) + 1)*sizeof(WCHAR));
362 if (ret)
363 lstrcpyW(ret, str);
364 return ret;
365}
#define lstrcpyW
Definition: compat.h:749
#define lstrlenW
Definition: compat.h:750

Referenced by http_options_GetCustomHeaders(), PersistFile_GetCurFile(), PersistFile_Load(), PersistFile_Save(), UniformResourceLocatorW_GetUrl(), and UniformResourceLocatorW_SetUrl().

◆ co_strdupWtoA()

static LPSTR co_strdupWtoA ( LPCWSTR  str)
inlinestatic

Definition at line 378 of file ieframe.h.

379{
380 INT len;
381 CHAR *ret;
382 len = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, 0, 0);
384 if (ret)
385 WideCharToMultiByte(CP_ACP, 0, str, -1, ret, len, 0, 0);
386 return ret;
387}
#define WideCharToMultiByte
Definition: compat.h:111
char CHAR
Definition: xmlstorage.h:175

Referenced by UniformResourceLocatorA_GetUrl().

◆ ConnectionPointContainer_Destroy()

void ConnectionPointContainer_Destroy ( ConnectionPointContainer This)

Definition at line 442 of file events.c.

443{
447}
static void ConnectionPoint_Destroy(ConnectionPoint *This)
Definition: events.c:418

◆ ConnectionPointContainer_Init()

void ConnectionPointContainer_Init ( ConnectionPointContainer This,
IUnknown impl 
)

Definition at line 431 of file events.c.

432{
433 This->IConnectionPointContainer_iface.lpVtbl = &ConnectionPointContainerVtbl;
434
435 ConnectionPoint_Create(&DIID_DWebBrowserEvents2, &This->wbe2, &This->IConnectionPointContainer_iface);
436 ConnectionPoint_Create(&DIID_DWebBrowserEvents, &This->wbe, &This->IConnectionPointContainer_iface);
437 ConnectionPoint_Create(&IID_IPropertyNotifySink, &This->pns, &This->IConnectionPointContainer_iface);
438
439 This->impl = impl;
440}
static const IConnectionPointContainerVtbl ConnectionPointContainerVtbl
Definition: events.c:112
static void ConnectionPoint_Create(REFIID riid, ConnectionPoint **cp, IConnectionPointContainer *container)
Definition: events.c:402
const GUID IID_IPropertyNotifySink

Referenced by DocHost_Init(), HTMLElement_Init(), and init_doc().

◆ create_browser_service()

HRESULT create_browser_service ( DocHost doc_host,
ShellBrowser **  ret 
)

Definition at line 921 of file shellbrowser.c.

922{
924
925 sb = heap_alloc(sizeof(ShellBrowser));
926 if(!sb)
927 return E_OUTOFMEMORY;
928
929 sb->IShellBrowser_iface.lpVtbl = &ShellBrowserVtbl;
930 sb->IBrowserService_iface.lpVtbl = &BrowserServiceVtbl;
931 sb->IDocObjectService_iface.lpVtbl = &DocObjectServiceVtbl;
932
933 sb->ref = 1;
934 sb->doc_host = doc_host;
935
936 *ret = sb;
937 return S_OK;
938}
static void * heap_alloc(size_t len)
Definition: appwiz.h:66
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
superblock * sb
Definition: btrfs.c:4261
#define S_OK
Definition: intsafe.h:52
static const IDocObjectServiceVtbl DocObjectServiceVtbl
Definition: shellbrowser.c:905
static const IShellBrowserVtbl ShellBrowserVtbl
Definition: shellbrowser.c:240
static const IBrowserServiceVtbl BrowserServiceVtbl
Definition: shellbrowser.c:578
Implementation of IShellBrowserImpl interface in explorer child windows.
Definition: ieframe.h:84

Referenced by ClServiceProvider_QueryService().

◆ create_doc_view_hwnd()

void create_doc_view_hwnd ( DocHost This)

Definition at line 479 of file dochost.c.

480{
481 RECT rect;
482
483 static const WCHAR wszShell_DocObject_View[] =
484 {'S','h','e','l','l',' ','D','o','c','O','b','j','e','c','t',' ','V','i','e','w',0};
485
486 if(!doc_view_atom) {
487 static WNDCLASSEXW wndclass = {
488 sizeof(wndclass),
491 0, 0 /* native uses 4*/, NULL, NULL, NULL,
492 (HBRUSH)(COLOR_WINDOW + 1), NULL,
493 wszShell_DocObject_View,
494 NULL
495 };
496
497 wndclass.hInstance = ieframe_instance;
498
499 doc_view_atom = RegisterClassExW(&wndclass);
500 }
501
502 This->container_vtbl->get_docobj_rect(This, &rect);
503 This->hwnd = CreateWindowExW(0, wszShell_DocObject_View,
504 wszShell_DocObject_View,
506 rect.left, rect.top, rect.right, rect.bottom, This->frame_hwnd,
508}
static ATOM doc_view_atom
Definition: dochost.c:37
static LRESULT WINAPI doc_view_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: dochost.c:364
HINSTANCE ieframe_instance
Definition: ieframe_main.c:32
#define WS_CHILD
Definition: pedump.c:617
#define WS_TABSTOP
Definition: pedump.c:634
#define WS_VISIBLE
Definition: pedump.c:620
#define WS_CLIPSIBLINGS
Definition: pedump.c:618
#define WS_CLIPCHILDREN
Definition: pedump.c:619
& rect
Definition: startmenu.cpp:1413
HINSTANCE hInstance
Definition: winuser.h:3221
#define COLOR_WINDOW
Definition: winuser.h:918
HWND WINAPI CreateWindowExW(_In_ DWORD dwExStyle, _In_opt_ LPCWSTR lpClassName, _In_opt_ LPCWSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
ATOM WINAPI RegisterClassExW(_In_ CONST WNDCLASSEXW *)
#define CS_PARENTDC
Definition: winuser.h:656

Referenced by create_frame_hwnd(), and navigate_bsc_proc().

◆ create_shell_ui_helper()

HRESULT create_shell_ui_helper ( IShellUIHelper2 **  _ret)

Definition at line 369 of file shelluihelper.c.

370{
372
373 ret = heap_alloc(sizeof(*ret));
374 if(!ret)
375 return E_OUTOFMEMORY;
376
377 ret->IShellUIHelper2_iface.lpVtbl = &ShellUIHelper2Vtbl;
378 ret->ref = 1;
379
380 *_ret = &ret->IShellUIHelper2_iface;
381 return S_OK;
382}
static const IShellUIHelper2Vtbl ShellUIHelper2Vtbl

Referenced by DocHostUIHandler_GetExternal().

◆ CUrlHistory_Create()

HRESULT WINAPI CUrlHistory_Create ( IClassFactory iface,
IUnknown pOuter,
REFIID  riid,
void **  ppv 
)

Definition at line 126 of file urlhist.c.

127{
128 if(pOuter)
130
131 return IUrlHistoryStg2_QueryInterface(&UrlHistoryStg2, riid, ppv);
132}
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
static IUrlHistoryStg2 UrlHistoryStg2
Definition: urlhist.c:124
#define CLASS_E_NOAGGREGATION
Definition: winerror.h:2662

◆ deactivate_document()

void deactivate_document ( DocHost This)

Definition at line 510 of file dochost.c.

511{
513 IOleObject *oleobj = NULL;
514 IHlinkTarget *hlink = NULL;
516
517 if(!This->document) return;
518
519 if(This->doc_navigate) {
520 IUnknown_Release(This->doc_navigate);
521 This->doc_navigate = NULL;
522 }
523
524 if(This->is_prop_notif)
526
527 if(This->view)
528 IOleDocumentView_UIActivate(This->view, FALSE);
529
530 hres = IUnknown_QueryInterface(This->document, &IID_IOleInPlaceObjectWindowless,
531 (void**)&winobj);
532 if(SUCCEEDED(hres)) {
533 IOleInPlaceObjectWindowless_InPlaceDeactivate(winobj);
534 IOleInPlaceObjectWindowless_Release(winobj);
535 }
536
537 if(This->view) {
538 IOleDocumentView_Show(This->view, FALSE);
539 IOleDocumentView_CloseView(This->view, 0);
540 IOleDocumentView_SetInPlaceSite(This->view, NULL);
541 IOleDocumentView_Release(This->view);
542 This->view = NULL;
543 }
544
545 hres = IUnknown_QueryInterface(This->document, &IID_IOleObject, (void**)&oleobj);
546 if(SUCCEEDED(hres))
547 IOleObject_Close(oleobj, OLECLOSE_NOSAVE);
548
549 hres = IUnknown_QueryInterface(This->document, &IID_IHlinkTarget, (void**)&hlink);
550 if(SUCCEEDED(hres)) {
551 IHlinkTarget_SetBrowseContext(hlink, NULL);
552 IHlinkTarget_Release(hlink);
553 }
554
555 if(oleobj) {
557
558 IOleObject_GetClientSite(oleobj, &client_site);
559 if(client_site) {
560 if(client_site == &This->IOleClientSite_iface)
561 IOleObject_SetClientSite(oleobj, NULL);
562 IOleClientSite_Release(client_site);
563 }
564
565 IOleObject_Release(oleobj);
566 }
567
568 IUnknown_Release(This->document);
569 This->document = NULL;
570}
#define FALSE
Definition: types.h:117
static void advise_prop_notif(DocHost *This, BOOL set)
Definition: dochost.c:209
#define SUCCEEDED(hr)
Definition: intsafe.h:50
HRESULT hres
Definition: protocol.c:465
static IOleClientSite * client_site
Definition: activex.c:198
const GUID IID_IOleObject

Referenced by InternetExplorer_Release(), navigate_bsc(), OleObject_SetClientSite(), and release_extern_ref().

◆ detach_browser_service()

void detach_browser_service ( ShellBrowser sb)

Definition at line 940 of file shellbrowser.c.

941{
942 sb->doc_host = NULL;
943 IShellBrowser_Release(&sb->IShellBrowser_iface);
944}

Referenced by DocHost_ClientSite_Release().

◆ DocHost_ClientSite_Init()

void DocHost_ClientSite_Init ( DocHost This)

Definition at line 712 of file client.c.

713{
714 This->IOleClientSite_iface.lpVtbl = &OleClientSiteVtbl;
715 This->IOleInPlaceSiteEx_iface.lpVtbl = &OleInPlaceSiteExVtbl;
716 This->IOleDocumentSite_iface.lpVtbl = &OleDocumentSiteVtbl;
717 This->IOleControlSite_iface.lpVtbl = &OleControlSiteVtbl;
718 This->IDispatch_iface.lpVtbl = &DispatchVtbl;
719 This->IServiceProvider_iface.lpVtbl = &ServiceProviderVtbl;
720}
static const IOleClientSiteVtbl OleClientSiteVtbl
Definition: client.c:143
static const IOleInPlaceSiteExVtbl OleInPlaceSiteExVtbl
Definition: client.c:333
static IOleControlSiteVtbl OleControlSiteVtbl
Definition: client.c:510
static const IDispatchVtbl DispatchVtbl
Definition: client.c:627
static const IOleDocumentSiteVtbl OleDocumentSiteVtbl
Definition: client.c:406
static const IServiceProviderVtbl ServiceProviderVtbl
Definition: client.c:705

Referenced by DocHost_Init().

◆ DocHost_ClientSite_Release()

void DocHost_ClientSite_Release ( DocHost This)

Definition at line 722 of file client.c.

723{
724 if(This->browser_service)
725 detach_browser_service(This->browser_service);
726 if(This->view)
727 IOleDocumentView_Release(This->view);
728}
void detach_browser_service(ShellBrowser *) DECLSPEC_HIDDEN
Definition: shellbrowser.c:940

Referenced by DocHost_Release().

◆ DocHost_Frame_Init()

void DocHost_Frame_Init ( DocHost This)

Definition at line 182 of file frame.c.

183{
184 This->IOleInPlaceFrame_iface.lpVtbl = &OleInPlaceFrameVtbl;
185}
static const IOleInPlaceFrameVtbl OleInPlaceFrameVtbl
Definition: frame.c:164

Referenced by DocHost_Init().

◆ DocHost_Init()

void DocHost_Init ( DocHost This,
IWebBrowser2 *  wb,
const IDocHostContainerVtbl container 
)

Definition at line 1106 of file dochost.c.

1107{
1108 This->IDocHostUIHandler2_iface.lpVtbl = &DocHostUIHandler2Vtbl;
1109 This->IOleCommandTarget_iface.lpVtbl = &OleCommandTargetVtbl;
1110 This->IPropertyNotifySink_iface.lpVtbl = &PropertyNotifySinkVtbl;
1111
1112 This->wb = wb;
1113 This->container_vtbl = container;
1114
1115 This->ready_state = READYSTATE_UNINITIALIZED;
1116 list_init(&This->task_queue);
1117
1118 This->travellog.loading_pos = -1;
1119
1122
1126}
static void list_init(struct list_entry *head)
Definition: list.h:51
void DocHost_ClientSite_Init(DocHost *This)
Definition: client.c:712
void ConnectionPointContainer_Init(ConnectionPointContainer *This, IUnknown *impl)
Definition: events.c:431
void DocHost_Frame_Init(DocHost *This)
Definition: frame.c:182
static const IPropertyNotifySinkVtbl PropertyNotifySinkVtbl
Definition: dochost.c:1098
static const IDocHostUIHandler2Vtbl DocHostUIHandler2Vtbl
Definition: dochost.c:1016
static const IOleCommandTargetVtbl OleCommandTargetVtbl
Definition: dochost.c:782
void IEHTMLWindow_Init(DocHost *) DECLSPEC_HIDDEN
Definition: iehtmlwnd.c:692
void NewWindowManager_Init(DocHost *) DECLSPEC_HIDDEN

Referenced by create_ie(), and create_webbrowser().

◆ dochost_object_available()

HRESULT dochost_object_available ( DocHost This,
IUnknown doc 
)

Definition at line 304 of file dochost.c.

305{
306 READYSTATE ready_state;
307 task_header_t *task;
308 IOleObject *oleobj;
310
311 IUnknown_AddRef(doc);
312 This->document = doc;
313
314 hres = IUnknown_QueryInterface(doc, &IID_IOleObject, (void**)&oleobj);
315 if(SUCCEEDED(hres)) {
316 CLSID clsid;
317
318 hres = IOleObject_GetUserClassID(oleobj, &clsid);
319 if(SUCCEEDED(hres))
320 TRACE("Got clsid %s\n",
321 IsEqualGUID(&clsid, &CLSID_HTMLDocument) ? "CLSID_HTMLDocument" : debugstr_guid(&clsid));
322
323 hres = IOleObject_SetClientSite(oleobj, &This->IOleClientSite_iface);
324 if(FAILED(hres))
325 FIXME("SetClientSite failed: %08x\n", hres);
326
327 IOleObject_Release(oleobj);
328 }else {
329 FIXME("Could not get IOleObject iface: %08x\n", hres);
330 }
331
332 /* FIXME: Call SetAdvise */
333
334 task = heap_alloc(sizeof(*task));
336
337 hres = get_doc_ready_state(This, &ready_state);
338 if(SUCCEEDED(hres)) {
339 if(ready_state == READYSTATE_COMPLETE)
340 push_ready_state_task(This, READYSTATE_COMPLETE);
341 if(ready_state != READYSTATE_COMPLETE || This->doc_navigate)
343 }else if(!This->doc_navigate) {
344 /* If we can't get document's ready state, there is not much we can do.
345 * Assume that document is complete at this point. */
346 push_ready_state_task(This, READYSTATE_COMPLETE);
347 }
348
349 return S_OK;
350}
#define FIXME(fmt,...)
Definition: debug.h:111
#define TRUE
Definition: types.h:120
static void push_ready_state_task(DocHost *This, READYSTATE ready_state)
Definition: dochost.c:283
static void object_available_task_destr(task_header_t *task)
Definition: dochost.c:294
void push_dochost_task(DocHost *This, task_header_t *task, task_proc_t proc, task_destr_t destr, BOOL send)
Definition: dochost.c:39
static void object_available_proc(DocHost *This, task_header_t *task)
Definition: dochost.c:299
static HRESULT get_doc_ready_state(DocHost *This, READYSTATE *ret)
Definition: dochost.c:179
#define FAILED(hr)
Definition: intsafe.h:51
#define debugstr_guid
Definition: kernel32.h:35
REFCLSID clsid
Definition: msctf.c:82
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define TRACE(s)
Definition: solgame.cpp:4

Referenced by BindStatusCallback_OnObjectAvailable().

◆ DocHost_Release()

void DocHost_Release ( DocHost This)

Definition at line 1128 of file dochost.c.

1129{
1130 if(This->shell_ui_helper)
1131 IShellUIHelper2_Release(This->shell_ui_helper);
1132
1136
1138
1139 while(This->travellog.length)
1140 free_travellog_entry(This->travellog.log + --This->travellog.length);
1141 heap_free(This->travellog.log);
1142
1143 heap_free(This->url);
1144}
static BOOL heap_free(void *mem)
Definition: appwiz.h:76
void DocHost_ClientSite_Release(DocHost *This)
Definition: client.c:722
void ConnectionPointContainer_Destroy(ConnectionPointContainer *This)
Definition: events.c:442
void abort_dochost_tasks(DocHost *This, task_proc_t proc)
Definition: dochost.c:70
static void free_travellog_entry(travellog_entry_t *entry)
Definition: dochost.c:385
void release_dochost_client(DocHost *This)
Definition: dochost.c:601

Referenced by InternetExplorer_Release(), and WebBrowser_Release().

◆ get_location_url()

HRESULT get_location_url ( DocHost This,
BSTR ret 
)

Definition at line 1142 of file navigate.c.

1143{
1144 FIXME("semi-stub\n");
1145
1146 *ret = This->url ? SysAllocString(This->url) : SysAllocStringLen(NULL, 0);
1147 if(!*ret)
1148 return E_OUTOFMEMORY;
1149
1150 return This->url ? S_OK : S_FALSE;
1151}
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:238
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
Definition: oleaut.c:339
#define S_FALSE
Definition: winerror.h:2357

Referenced by InternetExplorer_get_LocationURL(), and WebBrowser_get_LocationURL().

◆ get_typeinfo()

HRESULT get_typeinfo ( tid_t  tid,
ITypeInfo **  typeinfo 
)

Definition at line 61 of file ieframe_main.c.

62{
64
65 if(!typelib)
67 if(!typelib)
68 return hres;
69
70 if(!typeinfos[tid]) {
71 ITypeInfo *ti;
72
73 hres = ITypeLib_GetTypeInfoOfGuid(typelib, tid_ids[tid], &ti);
74 if(FAILED(hres)) {
75 ERR("GetTypeInfoOfGuid(%s) failed: %08x\n", debugstr_guid(tid_ids[tid]), hres);
76 return hres;
77 }
78
80 ITypeInfo_Release(ti);
81 }
82
84 return S_OK;
85}
#define ERR(fmt,...)
Definition: debug.h:110
static ITypeLib * typelib
Definition: ieframe_main.c:34
static HRESULT load_typelib(void)
Definition: ieframe_main.c:45
static REFIID tid_ids[]
Definition: ieframe_main.c:37
static ITypeInfo * typeinfos[LAST_tid]
Definition: ieframe_main.c:35
#define InterlockedCompareExchangePointer
Definition: interlocked.h:129
static TfClientId tid

◆ go_back()

HRESULT go_back ( DocHost This)

Definition at line 1122 of file navigate.c.

1123{
1124 if(!This->travellog.position) {
1125 WARN("No history available\n");
1126 return E_FAIL;
1127 }
1128
1129 return navigate_history(This, This->travellog.position-1);
1130}
#define WARN(fmt,...)
Definition: debug.h:112
#define E_FAIL
Definition: ddrawi.h:102
static HRESULT navigate_history(DocHost *This, unsigned travellog_pos)
Definition: navigate.c:1090

Referenced by InternetExplorer_GoBack(), and WebBrowser_GoBack().

◆ go_forward()

HRESULT go_forward ( DocHost This)

Definition at line 1132 of file navigate.c.

1133{
1134 if(This->travellog.position >= This->travellog.length) {
1135 WARN("No history available\n");
1136 return E_FAIL;
1137 }
1138
1139 return navigate_history(This, This->travellog.position+1);
1140}

Referenced by InternetExplorer_GoForward(), and WebBrowser_GoForward().

◆ go_home()

HRESULT go_home ( DocHost This)

Definition at line 1065 of file navigate.c.

1066{
1067 HKEY hkey;
1068 DWORD res, type, size;
1069 WCHAR wszPageName[MAX_PATH];
1070 static const WCHAR wszAboutBlank[] = {'a','b','o','u','t',':','b','l','a','n','k',0};
1071 static const WCHAR wszStartPage[] = {'S','t','a','r','t',' ','P','a','g','e',0};
1072 static const WCHAR wszSubKey[] = {'S','o','f','t','w','a','r','e','\\',
1073 'M','i','c','r','o','s','o','f','t','\\',
1074 'I','n','t','e','r','n','e','t',' ','E','x','p','l','o','r','e','r','\\',
1075 'M','a','i','n',0};
1076
1077 res = RegOpenKeyW(HKEY_CURRENT_USER, wszSubKey, &hkey);
1078 if (res != ERROR_SUCCESS)
1079 return navigate_url(This, wszAboutBlank, NULL, NULL, NULL, NULL);
1080
1081 size = sizeof(wszPageName);
1082 res = RegQueryValueExW(hkey, wszStartPage, NULL, &type, (LPBYTE)wszPageName, &size);
1083 RegCloseKey(hkey);
1084 if (res != ERROR_SUCCESS || type != REG_SZ)
1085 return navigate_url(This, wszAboutBlank, NULL, NULL, NULL, NULL);
1086
1087 return navigate_url(This, wszPageName, NULL, NULL, NULL, NULL);
1088}
#define RegCloseKey(hKey)
Definition: registry.h:49
#define ERROR_SUCCESS
Definition: deptool.c:10
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3297
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4132
#define MAX_PATH
Definition: compat.h:34
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLsizeiptr size
Definition: glext.h:5919
GLuint res
Definition: glext.h:9613
HRESULT navigate_url(DocHost *This, LPCWSTR url, const VARIANT *Flags, const VARIANT *TargetFrameName, VARIANT *PostData, VARIANT *Headers)
Definition: navigate.c:941
#define REG_SZ
Definition: layer.c:22
unsigned char * LPBYTE
Definition: typedefs.h:53
#define HKEY_CURRENT_USER
Definition: winreg.h:11

Referenced by InternetExplorer_GoHome(), and WebBrowser_GoHome().

◆ handle_navigation_error()

void handle_navigation_error ( DocHost doc_host,
HRESULT  hres,
BSTR  url,
IHTMLWindow2 win2 
)

Definition at line 315 of file navigate.c.

316{
317 VARIANT var_status_code, var_frame_name, var_url;
318 DISPPARAMS dispparams;
320 VARIANT_BOOL cancel = VARIANT_FALSE;
321
322 dispparams.cArgs = 5;
323 dispparams.cNamedArgs = 0;
324 dispparams.rgdispidNamedArgs = NULL;
325 dispparams.rgvarg = params;
326
328 V_BOOLREF(params) = &cancel;
329
331 V_VARIANTREF(params+1) = &var_status_code;
332 V_VT(&var_status_code) = VT_I4;
333 V_I4(&var_status_code) = hres;
334
336 V_VARIANTREF(params+2) = &var_frame_name;
337 V_VT(&var_frame_name) = VT_BSTR;
338 if(win2) {
339 hres = IHTMLWindow2_get_name(win2, &V_BSTR(&var_frame_name));
340 if(FAILED(hres))
341 V_BSTR(&var_frame_name) = NULL;
342 } else
343 V_BSTR(&var_frame_name) = NULL;
344
346 V_VARIANTREF(params+3) = &var_url;
347 V_VT(&var_url) = VT_BSTR;
348 V_BSTR(&var_url) = url;
349
351 V_DISPATCH(params+4) = (IDispatch*)doc_host->wb;
352
353 call_sink(doc_host->cps.wbe2, DISPID_NAVIGATEERROR, &dispparams);
354 SysFreeString(V_BSTR(&var_frame_name));
355
356 if(!cancel)
357 FIXME("Navigate to error page\n");
358}
short VARIANT_BOOL
Definition: compat.h:2290
@ VT_BSTR
Definition: compat.h:2303
@ VT_BYREF
Definition: compat.h:2342
@ VT_VARIANT
Definition: compat.h:2307
@ VT_I4
Definition: compat.h:2298
@ VT_BOOL
Definition: compat.h:2306
@ VT_DISPATCH
Definition: compat.h:2304
void call_sink(ConnectionPoint *This, DISPID dispid, DISPPARAMS *dispparams)
Definition: events.c:391
GLenum const GLfloat * params
Definition: glext.h:5645
static const WCHAR url[]
Definition: encode.c:1432
struct stdole::DISPPARAMS DISPPARAMS
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:271
#define V_BOOLREF(A)
Definition: oleauto.h:225
#define V_VARIANTREF(A)
Definition: oleauto.h:283
#define V_VT(A)
Definition: oleauto.h:211
#define V_BSTR(A)
Definition: oleauto.h:226
#define V_I4(A)
Definition: oleauto.h:247
#define V_DISPATCH(A)
Definition: oleauto.h:239
ConnectionPoint * wbe2
Definition: ieframe.h:55
ConnectionPointContainer cps
Definition: ieframe.h:173
IWebBrowser2 * wb
Definition: ieframe.h:133
#define DISPID_NAVIGATEERROR
Definition: webchild.h:73

Referenced by BindStatusCallback_OnProgress(), BindStatusCallback_OnStopBinding(), ClOleCommandTarget_Exec(), nsChannelBSC_on_progress(), and nsChannelBSC_stop_binding().

◆ heap_strdupW()

static LPWSTR heap_strdupW ( LPCWSTR  str)
inlinestatic

Definition at line 343 of file ieframe.h.

344{
345 LPWSTR ret = NULL;
346
347 if(str) {
348 DWORD size;
349
350 size = (lstrlenW(str)+1)*sizeof(WCHAR);
352 if(ret)
353 memcpy(ret, str, size);
354 }
355
356 return ret;
357}
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
WCHAR * LPWSTR
Definition: xmlstorage.h:184

◆ HlinkFrame_Init()

void HlinkFrame_Init ( HlinkFrame This,
IUnknown outer,
DocHost doc_host 
)

Definition at line 1694 of file navigate.c.

1695{
1696 This->IHlinkFrame_iface.lpVtbl = &HlinkFrameVtbl;
1697 This->ITargetFrame_iface.lpVtbl = &TargetFrameVtbl;
1698 This->ITargetFrame2_iface.lpVtbl = &TargetFrame2Vtbl;
1699 This->ITargetFramePriv2_iface.lpVtbl = &TargetFramePriv2Vtbl;
1700 This->IWebBrowserPriv2IE9_iface.lpVtbl = &WebBrowserPriv2IE9Vtbl;
1701
1702 This->outer = outer;
1703 This->doc_host = doc_host;
1704}
static const ITargetFrame2Vtbl TargetFrame2Vtbl
Definition: navigate.c:1502
static const IWebBrowserPriv2IE9Vtbl WebBrowserPriv2IE9Vtbl
Definition: navigate.c:1659
static const ITargetFramePriv2Vtbl TargetFramePriv2Vtbl
Definition: navigate.c:1614
static const IHlinkFrameVtbl HlinkFrameVtbl
Definition: navigate.c:1241
static const ITargetFrameVtbl TargetFrameVtbl
Definition: navigate.c:1375

Referenced by create_ie(), and create_webbrowser().

◆ HlinkFrame_QI()

BOOL HlinkFrame_QI ( HlinkFrame This,
REFIID  riid,
void **  ppv 
)

Definition at line 1666 of file navigate.c.

1667{
1668 if(IsEqualGUID(&IID_IHlinkFrame, riid)) {
1669 TRACE("(%p)->(IID_IHlinkFrame %p)\n", This, ppv);
1670 *ppv = &This->IHlinkFrame_iface;
1671 }else if(IsEqualGUID(&IID_ITargetFrame, riid)) {
1672 TRACE("(%p)->(IID_ITargetFrame %p)\n", This, ppv);
1673 *ppv = &This->ITargetFrame_iface;
1674 }else if(IsEqualGUID(&IID_ITargetFrame2, riid)) {
1675 TRACE("(%p)->(IID_ITargetFrame2 %p)\n", This, ppv);
1676 *ppv = &This->ITargetFrame2_iface;
1677 }else if(IsEqualGUID(&IID_ITargetFramePriv, riid)) {
1678 TRACE("(%p)->(IID_ITargetFramePriv %p)\n", This, ppv);
1679 *ppv = &This->ITargetFramePriv2_iface;
1680 }else if(IsEqualGUID(&IID_ITargetFramePriv2, riid)) {
1681 TRACE("(%p)->(IID_ITargetFramePriv2 %p)\n", This, ppv);
1682 *ppv = &This->ITargetFramePriv2_iface;
1683 }else if(IsEqualGUID(&IID_IWebBrowserPriv2IE9, riid)) {
1684 TRACE("(%p)->(IID_IWebBrowserPriv2IE9 %p)\n", This, ppv);
1685 *ppv = &This->IWebBrowserPriv2IE9_iface;
1686 }else {
1687 return FALSE;
1688 }
1689
1690 IUnknown_AddRef((IUnknown*)*ppv);
1691 return TRUE;
1692}

Referenced by InternetExplorer_QueryInterface(), and WebBrowser_QueryInterface().

◆ IEHTMLWindow_Init()

void IEHTMLWindow_Init ( DocHost doc_host)

Definition at line 692 of file iehtmlwnd.c.

693{
695 doc_host->html_window.doc_host = doc_host;
696}
static const IHTMLWindow2Vtbl IEHTMLWindow2Vtbl
Definition: iehtmlwnd.c:612
IEHTMLWindow html_window
Definition: ieframe.h:174
DocHost * doc_host
Definition: ieframe.h:96
IHTMLWindow2 IHTMLWindow2_iface
Definition: ieframe.h:95

Referenced by DocHost_Init().

◆ InternetExplorer_Create()

HRESULT WINAPI InternetExplorer_Create ( IClassFactory iface,
IUnknown pOuter,
REFIID  riid,
void **  ppv 
)

Definition at line 837 of file iexplore.c.

838{
841
842 TRACE("(%p %s %p)\n", pOuter, debugstr_guid(riid), ppv);
843
844 hres = create_ie(&ret);
845 if(FAILED(hres))
846 return hres;
847
848 hres = IWebBrowser2_QueryInterface(&ret->IWebBrowser2_iface, riid, ppv);
849 IWebBrowser2_Release(&ret->IWebBrowser2_iface);
850 if(FAILED(hres))
851 return hres;
852
853 return S_OK;
854}
static HRESULT create_ie(InternetExplorer **ret_obj)
Definition: iexplore.c:813

◆ InternetExplorer_WebBrowser_Init()

void InternetExplorer_WebBrowser_Init ( InternetExplorer This)

Definition at line 872 of file ie.c.

873{
874 This->IWebBrowser2_iface.lpVtbl = &InternetExplorerVtbl;
875 This->IExternalConnection_iface.lpVtbl = &ExternalConnectionVtbl;
876 This->IServiceProvider_iface.lpVtbl = &ServiceProviderVtbl;
877}
static const IServiceProviderVtbl ServiceProviderVtbl
Definition: ie.c:864
static const IExternalConnectionVtbl ExternalConnectionVtbl
Definition: ie.c:817
static const IWebBrowser2Vtbl InternetExplorerVtbl
Definition: ie.c:670

Referenced by create_ie().

◆ InternetExplorerManager_Create()

HRESULT WINAPI InternetExplorerManager_Create ( IClassFactory iface,
IUnknown pOuter,
REFIID  riid,
void **  ppv 
)

Definition at line 926 of file iexplore.c.

927{
929 HRESULT hr;
930
931 TRACE("(%p %s %p)\n", pOuter, debugstr_guid(riid), ppv);
932
933 if (!(ret = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*ret))))
934 return E_OUTOFMEMORY;
935
936 ret->IInternetExplorerManager_iface.lpVtbl = &InternetExplorerManager_vtbl;
937 ret->ref = 1;
938
939 hr = IInternetExplorerManager_QueryInterface(&ret->IInternetExplorerManager_iface, riid, ppv);
940 IInternetExplorerManager_Release(&ret->IInternetExplorerManager_iface);
941
943 return hr;
944}
#define InterlockedIncrement
Definition: armddk.h:53
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
static const IInternetExplorerManagerVtbl InternetExplorerManager_vtbl
Definition: iexplore.c:918
static LONG obj_cnt
Definition: iexplore.c:58
HRESULT hr
Definition: shlfolder.c:183

◆ InternetShortcut_Create()

HRESULT WINAPI InternetShortcut_Create ( IClassFactory iface,
IUnknown outer,
REFIID  riid,
void **  ppv 
)

Definition at line 824 of file intshcut.c.

825{
828
829 TRACE("(%p, %s, %p)\n", outer, debugstr_guid(riid), ppv);
830
831 *ppv = NULL;
832
833 if(outer)
835
837 if(!This)
838 return E_OUTOFMEMORY;
839
842 return hres;
843}
static ULONG Unknown_Release(InternetShortcut *This)
Definition: intshcut.c:186
static InternetShortcut * create_shortcut(void)
Definition: intshcut.c:786
static HRESULT Unknown_QueryInterface(InternetShortcut *This, REFIID riid, PVOID *ppvObject)
Definition: intshcut.c:147

◆ lock_module()

static void lock_module ( void  )
inlinestatic

◆ navigate_url()

HRESULT navigate_url ( DocHost This,
LPCWSTR  url,
const VARIANT Flags,
const VARIANT TargetFrameName,
VARIANT PostData,
VARIANT Headers 
)

Definition at line 941 of file navigate.c.

943{
944 SAFEARRAY *post_array = NULL;
946 ULONG post_data_len = 0;
948 HRESULT hres = S_OK;
949
950 TRACE("navigating to %s\n", debugstr_w(url));
951
952 if((Flags && V_VT(Flags) != VT_EMPTY && V_VT(Flags) != VT_ERROR)
953 || (TargetFrameName && V_VT(TargetFrameName) != VT_EMPTY && V_VT(TargetFrameName) != VT_ERROR))
954 FIXME("Unsupported args (Flags %s; TargetFrameName %s)\n", debugstr_variant(Flags), debugstr_variant(TargetFrameName));
955
956 if(PostData) {
957 if(V_VT(PostData) & VT_ARRAY)
958 post_array = V_ISBYREF(PostData) ? *V_ARRAYREF(PostData) : V_ARRAY(PostData);
959 else
960 WARN("Invalid post data %s\n", debugstr_variant(PostData));
961 }
962
963 if(post_array) {
964 LONG elem_max;
965 SafeArrayAccessData(post_array, (void**)&post_data);
966 SafeArrayGetUBound(post_array, 1, &elem_max);
967 post_data_len = (elem_max+1) * SafeArrayGetElemsize(post_array);
968 }
969
970 if(Headers && V_VT(Headers) == VT_BSTR) {
971 headers = V_BSTR(Headers);
972 TRACE("Headers: %s\n", debugstr_w(headers));
973 }
974
975 set_doc_state(This, READYSTATE_LOADING);
976 This->ready_state = READYSTATE_LOADING;
977
978 if(This->doc_navigate) {
980
981 if(PathIsURLW(url)) {
982 new_url[0] = 0;
983 }else {
984 DWORD size;
985
986 size = ARRAY_SIZE(new_url);
987 hres = UrlApplySchemeW(url, new_url, &size,
989 if(FAILED(hres)) {
990 WARN("UrlApplyScheme failed: %08x\n", hres);
991 new_url[0] = 0;
992 }
993 }
994
995 hres = async_doc_navigate(This, *new_url ? new_url : url, headers, post_data,
996 post_data_len, TRUE);
997 }else {
999
1000 task = heap_alloc(sizeof(*task));
1001 task->bsc = create_callback(This, url, post_data, post_data_len, headers);
1003 }
1004
1005 if(post_data)
1006 SafeArrayUnaccessData(post_array);
1007
1008 return hres;
1009}
#define ARRAY_SIZE(A)
Definition: main.h:33
@ VT_ERROR
Definition: compat.h:2305
@ VT_ARRAY
Definition: compat.h:2341
@ VT_EMPTY
Definition: compat.h:2295
HRESULT WINAPI SafeArrayGetUBound(SAFEARRAY *psa, UINT nDim, LONG *plUbound)
Definition: safearray.c:1033
HRESULT WINAPI SafeArrayAccessData(SAFEARRAY *psa, void **ppvData)
Definition: safearray.c:1137
HRESULT WINAPI SafeArrayUnaccessData(SAFEARRAY *psa)
Definition: safearray.c:1168
UINT WINAPI SafeArrayGetElemsize(SAFEARRAY *psa)
Definition: safearray.c:1114
HRESULT WINAPI UrlApplySchemeW(LPCWSTR pszIn, LPWSTR pszOut, LPDWORD pcchOut, DWORD dwFlags)
Definition: url.c:1817
BOOL WINAPI PathIsURLW(LPCWSTR lpstrPath)
Definition: url.c:2432
#define INTERNET_MAX_URL_LENGTH
Definition: session.c:1418
void set_doc_state(DocHost *This, READYSTATE doc_state)
Definition: dochost.c:234
static BindStatusCallback * create_callback(DocHost *doc_host, LPCWSTR url, PBYTE post_data, ULONG post_data_len, LPCWSTR headers)
Definition: navigate.c:550
static HRESULT async_doc_navigate(DocHost *This, LPCWSTR url, LPCWSTR headers, PBYTE post_data, ULONG post_data_size, BOOL async_notif)
Definition: navigate.c:819
static void navigate_bsc_proc(DocHost *This, task_header_t *t)
Definition: navigate.c:930
static void navigate_bsc_task_destr(task_header_t *t)
Definition: navigate.c:922
#define debugstr_w
Definition: kernel32.h:32
static const char * debugstr_variant(const VARIANT *var)
Definition: container.c:46
static const CHAR post_data[]
Definition: protocol.c:217
#define V_ARRAY(A)
Definition: oleauto.h:222
#define V_ARRAYREF(A)
Definition: oleauto.h:223
#define V_ISBYREF(A)
Definition: oleauto.h:217
BYTE * PBYTE
Definition: pedump.c:66
long LONG
Definition: pedump.c:60
vector< Header * > headers
Definition: sdkparse.cpp:39
#define URL_APPLY_GUESSSCHEME
Definition: shlwapi.h:1203
#define URL_APPLY_DEFAULT
Definition: shlwapi.h:1204
#define URL_APPLY_GUESSFILE
Definition: shlwapi.h:1202
BindStatusCallback * bsc
Definition: navigate.c:919
task_header_t header
Definition: navigate.c:918
uint32_t ULONG
Definition: typedefs.h:59
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170

Referenced by go_home().

◆ NewWindowManager_Init()

void NewWindowManager_Init ( DocHost doc_host)

Definition at line 1006 of file shellbrowser.c.

1007{
1009 doc_host->nwm.doc_host = doc_host;
1010}
static const INewWindowManagerVtbl NewWindowManagerVtbl
Definition: shellbrowser.c:999
NewWindowManager nwm
Definition: ieframe.h:175
INewWindowManager INewWindowManager_iface
Definition: ieframe.h:100
DocHost * doc_host
Definition: ieframe.h:101

Referenced by DocHost_Init().

◆ notify_download_state()

void notify_download_state ( DocHost dochost,
BOOL  is_downloading 
)

Definition at line 153 of file navigate.c.

154{
155 DISPPARAMS dwl_dp = {NULL};
156 TRACE("(%x)\n", is_downloading);
157 dochost->busy = is_downloading ? VARIANT_TRUE : VARIANT_FALSE;
158 call_sink(dochost->cps.wbe2, is_downloading ? DISPID_DOWNLOADBEGIN : DISPID_DOWNLOADCOMPLETE, &dwl_dp);
159}
VARIANT_BOOL busy
Definition: ieframe.h:155
#define DISPID_DOWNLOADCOMPLETE
Definition: webchild.h:39
#define DISPID_DOWNLOADBEGIN
Definition: webchild.h:41

Referenced by BindStatusCallback_OnStopBinding(), ClOleCommandTarget_Exec(), and navigate_bsc().

◆ on_commandstate_change()

void on_commandstate_change ( DocHost doc_host,
LONG  command,
BOOL  enable 
)

Definition at line 83 of file dochost.c.

84{
85 DISPPARAMS dispparams;
87
88 TRACE("command=%d enable=%d\n", command, enable);
89
90 dispparams.cArgs = 2;
91 dispparams.cNamedArgs = 0;
92 dispparams.rgdispidNamedArgs = NULL;
93 dispparams.rgvarg = params;
94
96 V_BOOL(params) = enable ? VARIANT_TRUE : VARIANT_FALSE;
97
98 V_VT(params+1) = VT_I4;
99 V_I4(params+1) = command;
100
101 call_sink(doc_host->cps.wbe2, DISPID_COMMANDSTATECHANGE, &dispparams);
102
104}
GLboolean enable
Definition: glext.h:11120
#define V_BOOL(A)
Definition: oleauto.h:224
const IDocHostContainerVtbl * container_vtbl
Definition: ieframe.h:144
void(* on_command_state_change)(DocHost *, LONG, BOOL)
Definition: ieframe.h:115
#define DISPID_COMMANDSTATECHANGE
Definition: webchild.h:40

Referenced by navigate_bsc(), OleObject_SetClientSite(), and update_navigation_commands().

◆ process_dochost_tasks()

LRESULT process_dochost_tasks ( DocHost This)

Definition at line 55 of file dochost.c.

56{
57 task_header_t *task;
58
59 while(!list_empty(&This->task_queue)) {
60 task = LIST_ENTRY(This->task_queue.next, task_header_t, entry);
61 list_remove(&task->entry);
62
63 task->proc(This, task);
64 task->destr(task);
65 }
66
67 return 0;
68}
static int list_empty(struct list_entry *head)
Definition: list.h:58
#define LIST_ENTRY(type)
Definition: queue.h:175

Referenced by ie_window_proc(), and shell_embedding_proc().

◆ push_dochost_task()

void push_dochost_task ( DocHost This,
task_header_t task,
task_proc_t  proc,
task_destr_t  destr,
BOOL  send 
)

Definition at line 39 of file dochost.c.

40{
41 BOOL is_empty;
42
43 task->proc = proc;
44 task->destr = destr;
45
46 is_empty = list_empty(&This->task_queue);
47 list_add_tail(&This->task_queue, &task->entry);
48
49 if(send)
50 SendMessageW(This->frame_hwnd, WM_DOCHOSTTASK, 0, 0);
51 else if(is_empty)
52 PostMessageW(This->frame_hwnd, WM_DOCHOSTTASK, 0, 0);
53}
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
Definition: list.h:83
INT WSAAPI send(IN SOCKET s, IN CONST CHAR FAR *buf, IN INT len, IN INT flags)
Definition: send.c:23
unsigned int BOOL
Definition: ntddk_ex.h:94
#define WM_DOCHOSTTASK
Definition: ieframe.h:293
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)

Referenced by async_doc_navigate(), dochost_object_available(), navigate_url(), and push_ready_state_task().

◆ refresh_document()

HRESULT refresh_document ( DocHost This,
const VARIANT level 
)

Definition at line 572 of file dochost.c.

573{
574 IOleCommandTarget *cmdtrg;
575 VARIANT vin, vout;
577
578 if(level && (V_VT(level) != VT_I4 || V_I4(level) != REFRESH_NORMAL))
579 FIXME("Unsupported refresh level %s\n", debugstr_variant(level));
580
581 if(!This->document) {
582 FIXME("no document\n");
583 return E_FAIL;
584 }
585
586 hres = IUnknown_QueryInterface(This->document, &IID_IOleCommandTarget, (void**)&cmdtrg);
587 if(FAILED(hres))
588 return hres;
589
590 V_VT(&vin) = VT_EMPTY;
591 V_VT(&vout) = VT_EMPTY;
592 hres = IOleCommandTarget_Exec(cmdtrg, NULL, OLECMDID_REFRESH, OLECMDEXECOPT_PROMPTUSER, &vin, &vout);
593 IOleCommandTarget_Release(cmdtrg);
594 if(FAILED(hres))
595 return hres;
596
597 VariantClear(&vout);
598 return S_OK;
599}
GLint level
Definition: gl.h:1546
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
Definition: variant.c:648

Referenced by InternetExplorer_Refresh(), InternetExplorer_Refresh2(), WebBrowser_Refresh(), and WebBrowser_Refresh2().

◆ register_iewindow_class()

void register_iewindow_class ( void  )

Definition at line 713 of file iexplore.c.

714{
715 WNDCLASSEXW wc;
716
717 memset(&wc, 0, sizeof wc);
718 wc.cbSize = sizeof(wc);
719 wc.style = 0;
721 wc.cbClsExtra = 0;
722 wc.cbWndExtra = sizeof(InternetExplorer*);
728 wc.hbrBackground = 0;
730 wc.lpszMenuName = NULL;
731
732 RegisterClassExW(&wc);
733}
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
Definition: loader.c:838
static LRESULT WINAPI ie_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
Definition: iexplore.c:675
#define IDI_APPICON
Definition: iexplore.c:48
static const WCHAR szIEWinFrame[]
Definition: iexplore.c:52
#define memset(x, y, z)
Definition: compat.h:39
LPCWSTR lpszClassName
Definition: winuser.h:3226
LPCWSTR lpszMenuName
Definition: winuser.h:3225
HBRUSH hbrBackground
Definition: winuser.h:3224
WNDPROC lpfnWndProc
Definition: winuser.h:3218
UINT cbSize
Definition: winuser.h:3216
int cbWndExtra
Definition: winuser.h:3220
HCURSOR hCursor
Definition: winuser.h:3223
HICON hIconSm
Definition: winuser.h:3227
UINT style
Definition: winuser.h:3217
int cbClsExtra
Definition: winuser.h:3219
HICON hIcon
Definition: winuser.h:3222
#define IMAGE_ICON
Definition: winuser.h:212
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE hInst, _In_ LPCWSTR name, _In_ UINT type, _In_ int cx, _In_ int cy, _In_ UINT fuLoad)
Definition: cursoricon.c:2203
#define IDC_ARROW
Definition: winuser.h:687
#define SM_CYSMICON
Definition: winuser.h:1013
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
Definition: cursoricon.c:2105
#define SM_CXSMICON
Definition: winuser.h:1012
#define LR_SHARED
Definition: winuser.h:1100
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE hInstance, _In_ LPCWSTR lpIconName)
Definition: cursoricon.c:2075
int WINAPI GetSystemMetrics(_In_ int)

Referenced by DllMain().

◆ release_dochost_client()

void release_dochost_client ( DocHost This)

Definition at line 601 of file dochost.c.

602{
603 if(This->hwnd) {
604 DestroyWindow(This->hwnd);
605 This->hwnd = NULL;
606 }
607
608 if(This->hostui) {
609 IDocHostUIHandler_Release(This->hostui);
610 This->hostui = NULL;
611 }
612
613 if(This->client_disp) {
614 IDispatch_Release(This->client_disp);
615 This->client_disp = NULL;
616 }
617
618 if(This->frame) {
619 IOleInPlaceFrame_Release(This->frame);
620 This->frame = NULL;
621 }
622
623 if(This->olecmd) {
624 IOleCommandTarget_Release(This->olecmd);
625 This->olecmd = NULL;
626 }
627}
BOOL WINAPI DestroyWindow(_In_ HWND)

Referenced by DocHost_Release(), and release_client_site().

◆ release_extern_ref()

DWORD release_extern_ref ( InternetExplorer This,
BOOL  last_closes 
)

Definition at line 756 of file ie.c.

757{
758 LONG ref = InterlockedDecrement(&This->extern_ref);
759
760 TRACE("ref = %d\n", ref);
761
762 if(ref)
763 return ref;
764
765 if(!last_closes) {
766 WARN("Last external connection released with FALSE last_closes.\n");
767 return ref;
768 }
769
770 deactivate_document(&This->doc_host);
771 return ref;
772}
#define InterlockedDecrement
Definition: armddk.h:52
void deactivate_document(DocHost *This)
Definition: dochost.c:510
Definition: send.c:48

Referenced by ExternalConnection_ReleaseConnection(), and ie_window_proc().

◆ released_obj()

void released_obj ( void  )

Definition at line 946 of file iexplore.c.

947{
950}
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)

Referenced by InternetExplorer_Release(), and InternetExplorerManager_Release().

◆ set_doc_state()

void set_doc_state ( DocHost This,
READYSTATE  doc_state 
)

Definition at line 234 of file dochost.c.

235{
236 This->doc_state = doc_state;
237 if(doc_state > This->ready_state)
238 This->ready_state = doc_state;
239}

Referenced by html_window_navigate(), navigate_bsc(), navigate_url(), and update_ready_state().

◆ set_dochost_url()

HRESULT set_dochost_url ( DocHost This,
const WCHAR url 
)

Definition at line 134 of file navigate.c.

135{
136 WCHAR *new_url;
137
138 if(url) {
139 new_url = heap_strdupW(url);
140 if(!new_url)
141 return E_OUTOFMEMORY;
142 }else {
143 new_url = NULL;
144 }
145
146 heap_free(This->url);
147 This->url = new_url;
148
149 This->container_vtbl->set_url(This, This->url);
150 return S_OK;
151}
static WCHAR * heap_strdupW(const WCHAR *str)
Definition: propsheet.c:178

Referenced by bind_to_object(), BindStatusCallback_OnProgress(), DocObjectService_FireNavigateComplete2(), and html_window_navigate().

◆ unlock_module()

static void unlock_module ( void  )
inlinestatic

◆ unregister_iewindow_class()

void unregister_iewindow_class ( void  )

Definition at line 735 of file iexplore.c.

736{
738}
BOOL WINAPI UnregisterClassW(_In_ LPCWSTR, HINSTANCE)

Referenced by DllMain().

◆ update_ie_statustext()

HRESULT update_ie_statustext ( InternetExplorer This,
LPCWSTR  text 
)

Definition at line 63 of file iexplore.c.

64{
66 return E_FAIL;
67
68 return S_OK;
69}
const WCHAR * text
Definition: package.c:1799
#define SB_SIMPLEID
Definition: precomp.h:15
#define SB_SETTEXTW
Definition: commctrl.h:1942
#define MAKEWORD(a, b)
Definition: typedefs.h:248
LONG_PTR LPARAM
Definition: windef.h:208

Referenced by DocHostContainer_set_status_text(), and InternetExplorer_put_StatusText().

◆ update_navigation_commands()

void update_navigation_commands ( DocHost dochost)

Definition at line 106 of file dochost.c.

107{
108 unsigned pos = dochost->travellog.loading_pos == -1 ? dochost->travellog.position : dochost->travellog.loading_pos;
109
110 on_commandstate_change(dochost, CSC_NAVIGATEBACK, pos > 0);
111 on_commandstate_change(dochost, CSC_NAVIGATEFORWARD, pos < dochost->travellog.length);
112}
void on_commandstate_change(DocHost *doc_host, LONG command, BOOL enable)
Definition: dochost.c:83
struct DocHost::@430 travellog

Referenced by ClOleCommandTarget_Exec(), DocObjectService_FireNavigateComplete2(), and navigate_history().

◆ WebBrowser_ClassInfo_Init()

void WebBrowser_ClassInfo_Init ( WebBrowser This)

Definition at line 100 of file classinfo.c.

101{
102 This->IProvideClassInfo2_iface.lpVtbl = &ProvideClassInfoVtbl;
103}
static const IProvideClassInfo2Vtbl ProvideClassInfoVtbl
Definition: classinfo.c:91

Referenced by create_webbrowser().

◆ WebBrowser_Create()

HRESULT WINAPI WebBrowser_Create ( IClassFactory iface,
IUnknown pOuter,
REFIID  riid,
void **  ppv 
)

Definition at line 1269 of file webbrowser.c.

1270{
1271 return create_webbrowser(2, pOuter, riid, ppv);
1272}
static HRESULT create_webbrowser(int version, IUnknown *outer, REFIID riid, void **ppv)
Definition: webbrowser.c:1227

◆ WebBrowser_OleObject_Destroy()

void WebBrowser_OleObject_Destroy ( WebBrowser This)

Definition at line 1222 of file oleobject.c.

1223{
1225}
static void release_client_site(WebBrowser *This, BOOL destroy_win)
Definition: oleobject.c:286

Referenced by WebBrowser_Release().

◆ WebBrowser_OleObject_Init()

void WebBrowser_OleObject_Init ( WebBrowser This)

Definition at line 1199 of file oleobject.c.

1200{
1201 DWORD dpi_x;
1202 DWORD dpi_y;
1203 HDC hdc;
1204
1205 /* default aspect ratio is 96dpi / 96dpi */
1206 hdc = GetDC(0);
1207 dpi_x = GetDeviceCaps(hdc, LOGPIXELSX);
1208 dpi_y = GetDeviceCaps(hdc, LOGPIXELSY);
1209 ReleaseDC(0, hdc);
1210
1211 This->IOleObject_iface.lpVtbl = &OleObjectVtbl;
1212 This->IOleInPlaceObject_iface.lpVtbl = &OleInPlaceObjectVtbl;
1213 This->IOleControl_iface.lpVtbl = &OleControlVtbl;
1214 This->IOleInPlaceActiveObject_iface.lpVtbl = &OleInPlaceActiveObjectVtbl;
1215 This->IOleCommandTarget_iface.lpVtbl = &OleCommandTargetVtbl;
1216
1217 /* Default size is 50x20 pixels, in himetric units */
1218 This->extent.cx = MulDiv( 50, 2540, dpi_x );
1219 This->extent.cy = MulDiv( 20, 2540, dpi_y );
1220}
HDC hdc
Definition: main.c:9
static HDC
Definition: imagelist.c:92
INT WINAPI MulDiv(INT nNumber, INT nNumerator, INT nDenominator)
Definition: muldiv.c:25
static const IOleInPlaceObjectVtbl OleInPlaceObjectVtbl
Definition: oleobject.c:924
static const IOleInPlaceActiveObjectVtbl OleInPlaceActiveObjectVtbl
Definition: oleobject.c:1118
static const IOleObjectVtbl OleObjectVtbl
Definition: oleobject.c:800
static const IOleCommandTargetVtbl OleCommandTargetVtbl
Definition: oleobject.c:1191
static const IOleControlVtbl OleControlVtbl
Definition: oleobject.c:1013
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
#define LOGPIXELSY
Definition: wingdi.h:719
#define LOGPIXELSX
Definition: wingdi.h:718
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
HDC WINAPI GetDC(_In_opt_ HWND)

Referenced by create_webbrowser().

◆ WebBrowser_Persist_Init()

void WebBrowser_Persist_Init ( WebBrowser This)

Definition at line 279 of file persist.c.

280{
281 This->IPersistStorage_iface.lpVtbl = &PersistStorageVtbl;
282 This->IPersistMemory_iface.lpVtbl = &PersistMemoryVtbl;
283 This->IPersistStreamInit_iface.lpVtbl = &PersistStreamInitVtbl;
284}
static const IPersistMemoryVtbl PersistMemoryVtbl
Definition: persist.c:183
static const IPersistStreamInitVtbl PersistStreamInitVtbl
Definition: persist.c:266
static const IPersistStorageVtbl PersistStorageVtbl
Definition: persist.c:99

Referenced by create_webbrowser().

◆ WebBrowser_ViewObject_Init()

void WebBrowser_ViewObject_Init ( WebBrowser This)

Definition at line 253 of file view.c.

254{
255 This->IViewObject2_iface.lpVtbl = &ViewObjectVtbl;
256 This->IDataObject_iface.lpVtbl = &DataObjectVtbl;
257}
static const IViewObject2Vtbl ViewObjectVtbl
Definition: view.c:135
static const IDataObjectVtbl DataObjectVtbl
Definition: view.c:238

Referenced by create_webbrowser().

◆ WebBrowserV1_Create()

HRESULT WINAPI WebBrowserV1_Create ( IClassFactory iface,
IUnknown pOuter,
REFIID  riid,
void **  ppv 
)

Definition at line 1264 of file webbrowser.c.

1265{
1266 return create_webbrowser(1, pOuter, riid, ppv);
1267}

Variable Documentation

◆ DECLSPEC_HIDDEN

HINSTANCE ieframe_instance DECLSPEC_HIDDEN
extern

Definition at line 330 of file ieframe.h.