ReactOS  0.4.12-dev-685-gf36cbf7
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/unicode.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, 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 
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,
314 TID_LIST
315 #undef XIID
316 #undef XCLSID
317  LAST_tid
318 } tid_t;
tid_t
Definition: ieframe.h:311
#define TID_LIST
Definition: ieframe.h:306

Function Documentation

◆ abort_dochost_tasks()

void abort_dochost_tasks ( DocHost ,
task_proc_t   
)

Definition at line 70 of file dochost.c.

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

Referenced by async_doc_navigate(), and DocHost_Release().

◆ call_sink()

void call_sink ( ConnectionPoint ,
DISPID  ,
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 DISPATCH_METHOD
Definition: oleauto.h:1006
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
smooth NULL
Definition: ftsmooth.c:416
#define LOCALE_SYSTEM_DEFAULT
unsigned long DWORD
Definition: ntddk_ex.h:95
#define IID_NULL
Definition: guiddef.h:93

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)
374  MultiByteToWideChar(CP_ACP, 0, str, -1, ret, len);
375  return ret;
376 }
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define CP_ACP
Definition: compat.h:99
int32_t INT
Definition: typedefs.h:56
const WCHAR * str
smooth NULL
Definition: ftsmooth.c:416
int ret
GLenum GLsizei len
Definition: glext.h:6722
#define MultiByteToWideChar
Definition: compat.h:100
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
Definition: ifs.c:406

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((strlenW(str) + 1)*sizeof(WCHAR));
362  if (ret)
363  lstrcpyW(ret, str);
364  return ret;
365 }
WINE_UNICODE_INLINE unsigned int strlenW(const WCHAR *str)
Definition: unicode.h:212
__wchar_t WCHAR
Definition: xmlstorage.h:180
const WCHAR * str
int ret
#define lstrcpyW
Definition: compat.h:406
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
Definition: ifs.c:406

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:101
#define CP_ACP
Definition: compat.h:99
char CHAR
Definition: xmlstorage.h:175
int32_t INT
Definition: typedefs.h:56
const WCHAR * str
smooth NULL
Definition: ftsmooth.c:416
int ret
GLenum GLsizei len
Definition: glext.h:6722
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
Definition: ifs.c:406

Referenced by UniformResourceLocatorA_GetUrl().

◆ ConnectionPointContainer_Destroy()

void ConnectionPointContainer_Destroy ( ConnectionPointContainer )

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 ,
IUnknown  
)

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 ,
ShellBrowser **   
)

Definition at line 924 of file shellbrowser.c.

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

Referenced by ClServiceProvider_QueryService().

◆ create_doc_view_hwnd()

void create_doc_view_hwnd ( DocHost )

Definition at line 480 of file dochost.c.

481 {
482  RECT rect;
483 
484  static const WCHAR wszShell_DocObject_View[] =
485  {'S','h','e','l','l',' ','D','o','c','O','b','j','e','c','t',' ','V','i','e','w',0};
486 
487  if(!doc_view_atom) {
488  static WNDCLASSEXW wndclass = {
489  sizeof(wndclass),
490  CS_PARENTDC,
492  0, 0 /* native uses 4*/, NULL, NULL, NULL,
493  (HBRUSH)(COLOR_WINDOW + 1), NULL,
494  wszShell_DocObject_View,
495  NULL
496  };
497 
498  wndclass.hInstance = ieframe_instance;
499 
500  doc_view_atom = RegisterClassExW(&wndclass);
501  }
502 
503  This->container_vtbl->get_docobj_rect(This, &rect);
504  This->hwnd = CreateWindowExW(0, wszShell_DocObject_View,
505  wszShell_DocObject_View,
507  rect.left, rect.top, rect.right, rect.bottom, This->frame_hwnd,
509 }
#define WS_CLIPSIBLINGS
Definition: pedump.c:618
__wchar_t WCHAR
Definition: xmlstorage.h:180
HINSTANCE ieframe_instance
Definition: ieframe_main.c:32
#define WS_CHILD
Definition: pedump.c:617
#define WS_CLIPCHILDREN
Definition: pedump.c:619
#define COLOR_WINDOW
Definition: winuser.h:908
& rect
Definition: startmenu.cpp:1413
ATOM WINAPI RegisterClassExW(_In_ CONST WNDCLASSEXW *)
static ATOM doc_view_atom
Definition: dochost.c:37
smooth NULL
Definition: ftsmooth.c:416
static LRESULT WINAPI doc_view_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: dochost.c:365
HINSTANCE hInstance
Definition: winuser.h:3174
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)
#define WS_TABSTOP
Definition: pedump.c:634
#define WS_VISIBLE
Definition: pedump.c:620
#define CS_PARENTDC
Definition: winuser.h:651

Referenced by create_frame_hwnd(), and navigate_bsc_proc().

◆ create_shell_ui_helper()

HRESULT create_shell_ui_helper ( IShellUIHelper2 **  )

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 void * heap_alloc(size_t len)
Definition: appwiz.h:65
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
int ret
#define S_OK
Definition: intsafe.h:59
#define _ret
static const IShellUIHelper2Vtbl ShellUIHelper2Vtbl

Referenced by DocHostUIHandler_GetExternal().

◆ CUrlHistory_Create()

HRESULT WINAPI CUrlHistory_Create ( IClassFactory ,
IUnknown ,
REFIID  ,
void **   
)

Definition at line 126 of file urlhist.c.

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

◆ deactivate_document()

void deactivate_document ( DocHost )

Definition at line 511 of file dochost.c.

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

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

◆ detach_browser_service()

void detach_browser_service ( ShellBrowser )

Definition at line 943 of file shellbrowser.c.

944 {
945  sb->doc_host = NULL;
946  IShellBrowser_Release(&sb->IShellBrowser_iface);
947 }
superblock * sb
Definition: btrfs.c:3876
smooth NULL
Definition: ftsmooth.c:416

Referenced by DocHost_ClientSite_Release().

◆ DocHost_ClientSite_Init()

void DocHost_ClientSite_Init ( DocHost )

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 IOleDocumentSiteVtbl OleDocumentSiteVtbl
Definition: client.c:406
static const IOleClientSiteVtbl OleClientSiteVtbl
Definition: client.c:143
static const IServiceProviderVtbl ServiceProviderVtbl
Definition: client.c:705
static IOleControlSiteVtbl OleControlSiteVtbl
Definition: client.c:510
static const IOleInPlaceSiteExVtbl OleInPlaceSiteExVtbl
Definition: client.c:333
static const IDispatchVtbl DispatchVtbl
Definition: client.c:627

Referenced by DocHost_Init().

◆ DocHost_ClientSite_Release()

void DocHost_ClientSite_Release ( DocHost )

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:943

Referenced by DocHost_Release().

◆ DocHost_Frame_Init()

void DocHost_Frame_Init ( DocHost )

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 ,
IWebBrowser2 *  ,
const IDocHostContainerVtbl  
)

Definition at line 1105 of file dochost.c.

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

Referenced by create_ie(), and create_webbrowser().

◆ dochost_object_available()

HRESULT dochost_object_available ( DocHost ,
IUnknown  
)

Definition at line 305 of file dochost.c.

306 {
307  READYSTATE ready_state;
308  task_header_t *task;
309  IOleObject *oleobj;
310  HRESULT hres;
311 
312  IUnknown_AddRef(doc);
313  This->document = doc;
314 
315  hres = IUnknown_QueryInterface(doc, &IID_IOleObject, (void**)&oleobj);
316  if(SUCCEEDED(hres)) {
317  CLSID clsid;
318 
319  hres = IOleObject_GetUserClassID(oleobj, &clsid);
320  if(SUCCEEDED(hres))
321  TRACE("Got clsid %s\n",
322  IsEqualGUID(&clsid, &CLSID_HTMLDocument) ? "CLSID_HTMLDocument" : debugstr_guid(&clsid));
323 
324  hres = IOleObject_SetClientSite(oleobj, &This->IOleClientSite_iface);
325  if(FAILED(hres))
326  FIXME("SetClientSite failed: %08x\n", hres);
327 
328  IOleObject_Release(oleobj);
329  }else {
330  FIXME("Could not get IOleObject iface: %08x\n", hres);
331  }
332 
333  /* FIXME: Call SetAdvise */
334 
335  task = heap_alloc(sizeof(*task));
337 
338  hres = get_doc_ready_state(This, &ready_state);
339  if(SUCCEEDED(hres)) {
340  if(ready_state == READYSTATE_COMPLETE)
341  push_ready_state_task(This, READYSTATE_COMPLETE);
342  if(ready_state != READYSTATE_COMPLETE || This->doc_navigate)
344  }else if(!This->doc_navigate) {
345  /* If we can't get document's ready state, there is not much we can do.
346  * Assume that document is complete at this point. */
347  push_ready_state_task(This, READYSTATE_COMPLETE);
348  }
349 
350  return S_OK;
351 }
#define TRUE
Definition: types.h:120
static void object_available_proc(DocHost *This, task_header_t *task)
Definition: dochost.c:300
static void advise_prop_notif(DocHost *This, BOOL set)
Definition: dochost.c:210
static void object_available_task_destr(task_header_t *task)
Definition: dochost.c:295
static void * heap_alloc(size_t len)
Definition: appwiz.h:65
#define FIXME(fmt,...)
Definition: debug.h:110
static void push_ready_state_task(DocHost *This, READYSTATE ready_state)
Definition: dochost.c:284
#define debugstr_guid
Definition: kernel32.h:35
const GUID IID_IOleObject
#define TRACE(s)
Definition: solgame.cpp:4
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
REFCLSID clsid
Definition: msctf.c:84
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 HRESULT get_doc_ready_state(DocHost *This, READYSTATE *ret)
Definition: dochost.c:180
#define S_OK
Definition: intsafe.h:59
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4021
#define SUCCEEDED(hr)
Definition: intsafe.h:57

Referenced by BindStatusCallback_OnObjectAvailable().

◆ DocHost_Release()

void DocHost_Release ( DocHost )

Definition at line 1127 of file dochost.c.

1128 {
1129  if(This->shell_ui_helper)
1130  IShellUIHelper2_Release(This->shell_ui_helper);
1131 
1135 
1137 
1138  while(This->travellog.length)
1139  free_travellog_entry(This->travellog.log + --This->travellog.length);
1140  heap_free(This->travellog.log);
1141 
1142  heap_free(This->url);
1143 }
void release_dochost_client(DocHost *This)
Definition: dochost.c:602
static void free_travellog_entry(travellog_entry_t *entry)
Definition: dochost.c:386
smooth NULL
Definition: ftsmooth.c:416
void abort_dochost_tasks(DocHost *This, task_proc_t proc)
Definition: dochost.c:70
void ConnectionPointContainer_Destroy(ConnectionPointContainer *This)
Definition: events.c:442
void DocHost_ClientSite_Release(DocHost *This)
Definition: client.c:722
static BOOL heap_free(void *mem)
Definition: appwiz.h:75

Referenced by InternetExplorer_Release(), and WebBrowser_Release().

◆ get_location_url()

HRESULT get_location_url ( DocHost ,
BSTR  
)

Definition at line 1137 of file navigate.c.

1138 {
1139  FIXME("semi-stub\n");
1140 
1141  *ret = This->url ? SysAllocString(This->url) : SysAllocStringLen(NULL, 0);
1142  if(!*ret)
1143  return E_OUTOFMEMORY;
1144 
1145  return This->url ? S_OK : S_FALSE;
1146 }
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
Definition: oleaut.c:342
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define FIXME(fmt,...)
Definition: debug.h:110
#define S_FALSE
Definition: winerror.h:2357
smooth NULL
Definition: ftsmooth.c:416
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:241
int ret
#define S_OK
Definition: intsafe.h:59

Referenced by InternetExplorer_get_LocationURL(), and WebBrowser_get_LocationURL().

◆ get_typeinfo()

HRESULT get_typeinfo ( tid_t  ,
ITypeInfo **   
)

Definition at line 61 of file ieframe_main.c.

62 {
63  HRESULT hres;
64 
65  if(!typelib)
66  hres = load_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 }
static REFIID tid_ids[]
Definition: ieframe_main.c:37
static ITypeLib * typelib
Definition: ieframe_main.c:34
static ITypeInfo * typeinfos[LAST_tid]
Definition: ieframe_main.c:35
#define InterlockedCompareExchangePointer
Definition: interlocked.h:129
smooth NULL
Definition: ftsmooth.c:416
#define debugstr_guid
Definition: kernel32.h:35
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
static HRESULT load_typelib(void)
Definition: ieframe_main.c:45
#define ERR(fmt,...)
Definition: debug.h:109
#define S_OK
Definition: intsafe.h:59
static TfClientId tid

◆ go_back()

HRESULT go_back ( DocHost )

Definition at line 1117 of file navigate.c.

1118 {
1119  if(!This->travellog.position) {
1120  WARN("No history available\n");
1121  return E_FAIL;
1122  }
1123 
1124  return navigate_history(This, This->travellog.position-1);
1125 }
#define WARN(fmt,...)
Definition: debug.h:111
#define E_FAIL
Definition: ddrawi.h:102
static HRESULT navigate_history(DocHost *This, unsigned travellog_pos)
Definition: navigate.c:1085

Referenced by InternetExplorer_GoBack(), and WebBrowser_GoBack().

◆ go_forward()

HRESULT go_forward ( DocHost )

Definition at line 1127 of file navigate.c.

1128 {
1129  if(This->travellog.position >= This->travellog.length) {
1130  WARN("No history available\n");
1131  return E_FAIL;
1132  }
1133 
1134  return navigate_history(This, This->travellog.position+1);
1135 }
#define WARN(fmt,...)
Definition: debug.h:111
#define E_FAIL
Definition: ddrawi.h:102
static HRESULT navigate_history(DocHost *This, unsigned travellog_pos)
Definition: navigate.c:1085

Referenced by InternetExplorer_GoForward(), and WebBrowser_GoForward().

◆ go_home()

HRESULT go_home ( DocHost )

Definition at line 1060 of file navigate.c.

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

Referenced by InternetExplorer_GoHome(), and WebBrowser_GoHome().

◆ handle_navigation_error()

void handle_navigation_error ( DocHost ,
HRESULT  ,
BSTR  ,
IHTMLWindow2  
)

Definition at line 310 of file navigate.c.

311 {
312  VARIANT var_status_code, var_frame_name, var_url;
313  DISPPARAMS dispparams;
314  VARIANTARG params[5];
315  VARIANT_BOOL cancel = VARIANT_FALSE;
316 
317  dispparams.cArgs = 5;
318  dispparams.cNamedArgs = 0;
319  dispparams.rgdispidNamedArgs = NULL;
320  dispparams.rgvarg = params;
321 
323  V_BOOLREF(params) = &cancel;
324 
326  V_VARIANTREF(params+1) = &var_status_code;
327  V_VT(&var_status_code) = VT_I4;
328  V_I4(&var_status_code) = hres;
329 
331  V_VARIANTREF(params+2) = &var_frame_name;
332  V_VT(&var_frame_name) = VT_BSTR;
333  if(win2) {
334  hres = IHTMLWindow2_get_name(win2, &V_BSTR(&var_frame_name));
335  if(FAILED(hres))
336  V_BSTR(&var_frame_name) = NULL;
337  } else
338  V_BSTR(&var_frame_name) = NULL;
339 
341  V_VARIANTREF(params+3) = &var_url;
342  V_VT(&var_url) = VT_BSTR;
343  V_BSTR(&var_url) = url;
344 
345  V_VT(params+4) = VT_DISPATCH;
346  V_DISPATCH(params+4) = (IDispatch*)doc_host->wb;
347 
348  call_sink(doc_host->cps.wbe2, DISPID_NAVIGATEERROR, &dispparams);
349  SysFreeString(V_BSTR(&var_frame_name));
350 
351  if(!cancel)
352  FIXME("Navigate to error page\n");
353 }
Definition: compat.h:1932
short VARIANT_BOOL
Definition: compat.h:1924
#define V_I4(A)
Definition: oleauto.h:247
#define V_DISPATCH(A)
Definition: oleauto.h:239
GLenum const GLfloat * params
Definition: glext.h:5645
void call_sink(ConnectionPoint *This, DISPID dispid, DISPPARAMS *dispparams)
Definition: events.c:391
#define FIXME(fmt,...)
Definition: debug.h:110
#define V_BOOLREF(A)
Definition: oleauto.h:225
smooth NULL
Definition: ftsmooth.c:416
HRESULT hres
Definition: protocol.c:465
static const WCHAR url[]
Definition: encode.c:1432
#define DISPID_NAVIGATEERROR
Definition: webchild.h:73
#define V_VT(A)
Definition: oleauto.h:211
#define V_BSTR(A)
Definition: oleauto.h:226
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:274
struct stdole::DISPPARAMS DISPPARAMS
#define V_VARIANTREF(A)
Definition: oleauto.h:283

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 = (strlenW(str)+1)*sizeof(WCHAR);
351  ret = heap_alloc(size);
352  if(ret)
353  memcpy(ret, str, size);
354  }
355 
356  return ret;
357 }
WINE_UNICODE_INLINE unsigned int strlenW(const WCHAR *str)
Definition: unicode.h:212
__wchar_t WCHAR
Definition: xmlstorage.h:180
static void * heap_alloc(size_t len)
Definition: appwiz.h:65
const WCHAR * str
smooth NULL
Definition: ftsmooth.c:416
GLsizeiptr size
Definition: glext.h:5919
unsigned long DWORD
Definition: ntddk_ex.h:95
int ret
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
WCHAR * LPWSTR
Definition: xmlstorage.h:184

◆ HlinkFrame_Init()

void HlinkFrame_Init ( HlinkFrame ,
IUnknown ,
DocHost  
)

Definition at line 1689 of file navigate.c.

1690 {
1691  This->IHlinkFrame_iface.lpVtbl = &HlinkFrameVtbl;
1692  This->ITargetFrame_iface.lpVtbl = &TargetFrameVtbl;
1693  This->ITargetFrame2_iface.lpVtbl = &TargetFrame2Vtbl;
1694  This->ITargetFramePriv2_iface.lpVtbl = &TargetFramePriv2Vtbl;
1695  This->IWebBrowserPriv2IE9_iface.lpVtbl = &WebBrowserPriv2IE9Vtbl;
1696 
1697  This->outer = outer;
1698  This->doc_host = doc_host;
1699 }
static const ITargetFrame2Vtbl TargetFrame2Vtbl
Definition: navigate.c:1497
static const ITargetFrameVtbl TargetFrameVtbl
Definition: navigate.c:1370
static const ITargetFramePriv2Vtbl TargetFramePriv2Vtbl
Definition: navigate.c:1609
static const IHlinkFrameVtbl HlinkFrameVtbl
Definition: navigate.c:1236
static const IWebBrowserPriv2IE9Vtbl WebBrowserPriv2IE9Vtbl
Definition: navigate.c:1654

Referenced by create_ie(), and create_webbrowser().

◆ HlinkFrame_QI()

BOOL HlinkFrame_QI ( HlinkFrame ,
REFIID  ,
void **   
)

Definition at line 1661 of file navigate.c.

1662 {
1663  if(IsEqualGUID(&IID_IHlinkFrame, riid)) {
1664  TRACE("(%p)->(IID_IHlinkFrame %p)\n", This, ppv);
1665  *ppv = &This->IHlinkFrame_iface;
1666  }else if(IsEqualGUID(&IID_ITargetFrame, riid)) {
1667  TRACE("(%p)->(IID_ITargetFrame %p)\n", This, ppv);
1668  *ppv = &This->ITargetFrame_iface;
1669  }else if(IsEqualGUID(&IID_ITargetFrame2, riid)) {
1670  TRACE("(%p)->(IID_ITargetFrame2 %p)\n", This, ppv);
1671  *ppv = &This->ITargetFrame2_iface;
1672  }else if(IsEqualGUID(&IID_ITargetFramePriv, riid)) {
1673  TRACE("(%p)->(IID_ITargetFramePriv %p)\n", This, ppv);
1674  *ppv = &This->ITargetFramePriv2_iface;
1675  }else if(IsEqualGUID(&IID_ITargetFramePriv2, riid)) {
1676  TRACE("(%p)->(IID_ITargetFramePriv2 %p)\n", This, ppv);
1677  *ppv = &This->ITargetFramePriv2_iface;
1678  }else if(IsEqualGUID(&IID_IWebBrowserPriv2IE9, riid)) {
1679  TRACE("(%p)->(IID_IWebBrowserPriv2IE9 %p)\n", This, ppv);
1680  *ppv = &This->IWebBrowserPriv2IE9_iface;
1681  }else {
1682  return FALSE;
1683  }
1684 
1685  IUnknown_AddRef((IUnknown*)*ppv);
1686  return TRUE;
1687 }
#define TRUE
Definition: types.h:120
REFIID riid
Definition: precomp.h:44
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define TRACE(s)
Definition: solgame.cpp:4
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4021

Referenced by InternetExplorer_QueryInterface(), and WebBrowser_QueryInterface().

◆ IEHTMLWindow_Init()

void IEHTMLWindow_Init ( DocHost )

Definition at line 692 of file iehtmlwnd.c.

693 {
694  doc_host->html_window.IHTMLWindow2_iface.lpVtbl = &IEHTMLWindow2Vtbl;
695  doc_host->html_window.doc_host = doc_host;
696 }
static const IHTMLWindow2Vtbl IEHTMLWindow2Vtbl
Definition: iehtmlwnd.c:612

Referenced by DocHost_Init().

◆ InternetExplorer_Create()

HRESULT WINAPI InternetExplorer_Create ( IClassFactory ,
IUnknown ,
REFIID  ,
void **   
)

Definition at line 837 of file iexplore.c.

838 {
840  HRESULT hres;
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 }
REFIID riid
Definition: precomp.h:44
static HRESULT create_ie(InternetExplorer **ret_obj)
Definition: iexplore.c:813
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define debugstr_guid
Definition: kernel32.h:35
#define TRACE(s)
Definition: solgame.cpp:4
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
int ret
#define S_OK
Definition: intsafe.h:59

◆ InternetExplorer_WebBrowser_Init()

void InternetExplorer_WebBrowser_Init ( InternetExplorer )

Definition at line 839 of file ie.c.

840 {
841  This->IWebBrowser2_iface.lpVtbl = &InternetExplorerVtbl;
842  This->IExternalConnection_iface.lpVtbl = &ExternalConnectionVtbl;
843  This->IServiceProvider_iface.lpVtbl = &ServiceProviderVtbl;
844 }
static const IServiceProviderVtbl ServiceProviderVtbl
Definition: ie.c:831
static const IWebBrowser2Vtbl InternetExplorerVtbl
Definition: ie.c:637
static const IExternalConnectionVtbl ExternalConnectionVtbl
Definition: ie.c:784

Referenced by create_ie().

◆ InternetExplorerManager_Create()

HRESULT WINAPI InternetExplorerManager_Create ( IClassFactory ,
IUnknown ,
REFIID  ,
void **   
)

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 }
static LONG obj_cnt
Definition: iexplore.c:58
HRESULT hr
Definition: shlfolder.c:183
REFIID riid
Definition: precomp.h:44
REFIID LPVOID * ppv
Definition: atlbase.h:39
static const IInternetExplorerManagerVtbl InternetExplorerManager_vtbl
Definition: iexplore.c:918
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define debugstr_guid
Definition: kernel32.h:35
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:395
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
LONG HRESULT
Definition: typedefs.h:77
int ret
#define InterlockedIncrement
Definition: armddk.h:53
#define HEAP_ZERO_MEMORY
Definition: compat.h:123

◆ InternetShortcut_Create()

HRESULT WINAPI InternetShortcut_Create ( IClassFactory ,
IUnknown ,
REFIID  ,
void **   
)

Definition at line 824 of file intshcut.c.

825 {
827  HRESULT hres;
828 
829  TRACE("(%p, %s, %p)\n", outer, debugstr_guid(riid), ppv);
830 
831  *ppv = NULL;
832 
833  if(outer)
834  return CLASS_E_NOAGGREGATION;
835 
836  This = create_shortcut();
837  if(!This)
838  return E_OUTOFMEMORY;
839 
842  return hres;
843 }
static ULONG Unknown_Release(InternetShortcut *This)
Definition: intshcut.c:186
REFIID riid
Definition: precomp.h:44
static InternetShortcut * create_shortcut(void)
Definition: intshcut.c:786
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
smooth NULL
Definition: ftsmooth.c:416
#define debugstr_guid
Definition: kernel32.h:35
static HRESULT Unknown_QueryInterface(InternetShortcut *This, REFIID riid, PVOID *ppvObject)
Definition: intshcut.c:147
#define TRACE(s)
Definition: solgame.cpp:4
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
#define CLASS_E_NOAGGREGATION
Definition: winerror.h:2662

◆ lock_module()

static void lock_module ( void  )
inlinestatic

Definition at line 335 of file ieframe.h.

335  {
337 }
LONG module_ref
Definition: ieframe_main.c:31
#define InterlockedIncrement
Definition: armddk.h:53

Referenced by ClassFactory_LockServer(), create_jscript_object(), create_webbrowser(), and UrlHistoryStg_AddRef().

◆ navigate_url()

HRESULT navigate_url ( DocHost ,
LPCWSTR  ,
const VARIANT ,
const VARIANT ,
VARIANT ,
VARIANT  
)

Definition at line 936 of file navigate.c.

938 {
939  SAFEARRAY *post_array = NULL;
940  PBYTE post_data = NULL;
941  ULONG post_data_len = 0;
942  LPWSTR headers = NULL;
943  HRESULT hres = S_OK;
944 
945  TRACE("navigating to %s\n", debugstr_w(url));
946 
947  if((Flags && V_VT(Flags) != VT_EMPTY && V_VT(Flags) != VT_ERROR)
948  || (TargetFrameName && V_VT(TargetFrameName) != VT_EMPTY && V_VT(TargetFrameName) != VT_ERROR))
949  FIXME("Unsupported args (Flags %s; TargetFrameName %s)\n", debugstr_variant(Flags), debugstr_variant(TargetFrameName));
950 
951  if(PostData) {
952  if(V_VT(PostData) & VT_ARRAY)
953  post_array = V_ISBYREF(PostData) ? *V_ARRAYREF(PostData) : V_ARRAY(PostData);
954  else
955  WARN("Invalid post data %s\n", debugstr_variant(PostData));
956  }
957 
958  if(post_array) {
959  LONG elem_max;
960  SafeArrayAccessData(post_array, (void**)&post_data);
961  SafeArrayGetUBound(post_array, 1, &elem_max);
962  post_data_len = (elem_max+1) * SafeArrayGetElemsize(post_array);
963  }
964 
965  if(Headers && V_VT(Headers) == VT_BSTR) {
966  headers = V_BSTR(Headers);
967  TRACE("Headers: %s\n", debugstr_w(headers));
968  }
969 
970  set_doc_state(This, READYSTATE_LOADING);
971  This->ready_state = READYSTATE_LOADING;
972 
973  if(This->doc_navigate) {
975 
976  if(PathIsURLW(url)) {
977  new_url[0] = 0;
978  }else {
979  DWORD size;
980 
981  size = ARRAY_SIZE(new_url);
982  hres = UrlApplySchemeW(url, new_url, &size,
984  if(FAILED(hres)) {
985  WARN("UrlApplyScheme failed: %08x\n", hres);
986  new_url[0] = 0;
987  }
988  }
989 
990  hres = async_doc_navigate(This, *new_url ? new_url : url, headers, post_data,
991  post_data_len, TRUE);
992  }else {
993  task_navigate_bsc_t *task;
994 
995  task = heap_alloc(sizeof(*task));
996  task->bsc = create_callback(This, url, post_data, post_data_len, headers);
998  }
999 
1000  if(post_data)
1001  SafeArrayUnaccessData(post_array);
1002 
1003  return hres;
1004 }
#define TRUE
Definition: types.h:120
static BindStatusCallback * create_callback(DocHost *doc_host, LPCWSTR url, PBYTE post_data, ULONG post_data_len, LPCWSTR headers)
Definition: navigate.c:545
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define V_ARRAY(A)
Definition: oleauto.h:222
static HRESULT async_doc_navigate(DocHost *This, LPCWSTR url, LPCWSTR headers, PBYTE post_data, ULONG post_data_size, BOOL async_notif)
Definition: navigate.c:816
#define WARN(fmt,...)
Definition: debug.h:111
#define V_ISBYREF(A)
Definition: oleauto.h:217
vector< Header * > headers
Definition: sdkparse.cpp:39
static void * heap_alloc(size_t len)
Definition: appwiz.h:65
BOOL WINAPI PathIsURLW(LPCWSTR lpstrPath)
Definition: url.c:2432
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
HRESULT WINAPI SafeArrayAccessData(SAFEARRAY *psa, void **ppvData)
Definition: safearray.c:1139
long LONG
Definition: pedump.c:60
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
static void navigate_bsc_proc(DocHost *This, task_header_t *t)
Definition: navigate.c:925
#define V_ARRAYREF(A)
Definition: oleauto.h:223
smooth NULL
Definition: ftsmooth.c:416
#define INTERNET_MAX_URL_LENGTH
Definition: session.c:1380
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
HRESULT hres
Definition: protocol.c:465
#define URL_APPLY_DEFAULT
Definition: shlwapi.h:1204
LONG HRESULT
Definition: typedefs.h:77
static const WCHAR url[]
Definition: encode.c:1432
unsigned long DWORD
Definition: ntddk_ex.h:95
void set_doc_state(DocHost *This, READYSTATE doc_state)
Definition: dochost.c:235
static const CHAR post_data[]
Definition: protocol.c:215
void push_dochost_task(DocHost *This, task_header_t *task, task_proc_t proc, task_destr_t destr, BOOL send)
Definition: dochost.c:39
HRESULT WINAPI UrlApplySchemeW(LPCWSTR pszIn, LPWSTR pszOut, LPDWORD pcchOut, DWORD dwFlags)
Definition: url.c:1817
#define V_VT(A)
Definition: oleauto.h:211
#define V_BSTR(A)
Definition: oleauto.h:226
task_header_t header
Definition: navigate.c:913
static void navigate_bsc_task_destr(task_header_t *t)
Definition: navigate.c:917
static const char * debugstr_variant(const VARIANT *var)
Definition: container.c:46
#define S_OK
Definition: intsafe.h:59
HRESULT WINAPI SafeArrayGetUBound(SAFEARRAY *psa, UINT nDim, LONG *plUbound)
Definition: safearray.c:1035
#define ARRAY_SIZE(a)
Definition: main.h:24
UINT WINAPI SafeArrayGetElemsize(SAFEARRAY *psa)
Definition: safearray.c:1116
BindStatusCallback * bsc
Definition: navigate.c:914
#define URL_APPLY_GUESSSCHEME
Definition: shlwapi.h:1203
unsigned int ULONG
Definition: retypes.h:1
#define URL_APPLY_GUESSFILE
Definition: shlwapi.h:1202
WCHAR * LPWSTR
Definition: xmlstorage.h:184
BYTE * PBYTE
Definition: pedump.c:66
HRESULT WINAPI SafeArrayUnaccessData(SAFEARRAY *psa)
Definition: safearray.c:1170

Referenced by go_home().

◆ NewWindowManager_Init()

void NewWindowManager_Init ( DocHost )

Definition at line 1009 of file shellbrowser.c.

1010 {
1011  doc_host->nwm.INewWindowManager_iface.lpVtbl = &NewWindowManagerVtbl;
1012  doc_host->nwm.doc_host = doc_host;
1013 }
static const INewWindowManagerVtbl NewWindowManagerVtbl

Referenced by DocHost_Init().

◆ notify_download_state()

void notify_download_state ( DocHost ,
BOOL   
)

Definition at line 149 of file navigate.c.

150 {
151  DISPPARAMS dwl_dp = {NULL};
152  TRACE("(%x)\n", is_downloading);
153  call_sink(dochost->cps.wbe2, is_downloading ? DISPID_DOWNLOADBEGIN : DISPID_DOWNLOADCOMPLETE, &dwl_dp);
154 }
#define DISPID_DOWNLOADCOMPLETE
Definition: webchild.h:39
void call_sink(ConnectionPoint *This, DISPID dispid, DISPPARAMS *dispparams)
Definition: events.c:391
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define DISPID_DOWNLOADBEGIN
Definition: webchild.h:41
struct stdole::DISPPARAMS DISPPARAMS

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

◆ on_commandstate_change()

void on_commandstate_change ( DocHost ,
LONG  ,
BOOL   
)

Definition at line 83 of file dochost.c.

84 {
85  DISPPARAMS dispparams;
86  VARIANTARG params[2];
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 
95  V_VT(params) = VT_BOOL;
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 
103  doc_host->container_vtbl->on_command_state_change(doc_host, command, enable);
104 }
#define DISPID_COMMANDSTATECHANGE
Definition: webchild.h:40
Definition: compat.h:1932
#define V_I4(A)
Definition: oleauto.h:247
GLenum const GLfloat * params
Definition: glext.h:5645
void call_sink(ConnectionPoint *This, DISPID dispid, DISPPARAMS *dispparams)
Definition: events.c:391
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define V_BOOL(A)
Definition: oleauto.h:224
#define V_VT(A)
Definition: oleauto.h:211
GLboolean enable
Definition: glext.h:11120
int command(const char *fmt,...)
Definition: ftp.c:266
struct stdole::DISPPARAMS DISPPARAMS

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

◆ process_dochost_tasks()

LRESULT process_dochost_tasks ( DocHost )

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 }
uint8_t entry
Definition: isohybrid.c:63
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
Definition: list.h:108
__WINE_SERVER_LIST_INLINE int list_empty(const struct list *list)
Definition: list.h:143
async_task_proc_t proc
Definition: internet.h:390
#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 ,
task_header_t ,
task_proc_t  ,
task_destr_t  ,
BOOL   
)

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 HANDLE proc()
Definition: pdb.c:32
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
Definition: list.h:102
unsigned int BOOL
Definition: ntddk_ex.h:94
#define WM_DOCHOSTTASK
Definition: ieframe.h:293
INT WSAAPI send(IN SOCKET s, IN CONST CHAR FAR *buf, IN INT len, IN INT flags)
Definition: send.c:23
__WINE_SERVER_LIST_INLINE int list_empty(const struct list *list)
Definition: list.h:143
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI PostMessageW(_In_opt_ 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 ,
const VARIANT  
)

Definition at line 573 of file dochost.c.

574 {
575  IOleCommandTarget *cmdtrg;
576  VARIANT vin, vout;
577  HRESULT hres;
578 
579  if(level && (V_VT(level) != VT_I4 || V_I4(level) != REFRESH_NORMAL))
580  FIXME("Unsupported refresh level %s\n", debugstr_variant(level));
581 
582  if(!This->document) {
583  FIXME("no document\n");
584  return E_FAIL;
585  }
586 
587  hres = IUnknown_QueryInterface(This->document, &IID_IOleCommandTarget, (void**)&cmdtrg);
588  if(FAILED(hres))
589  return hres;
590 
591  V_VT(&vin) = VT_EMPTY;
592  V_VT(&vout) = VT_EMPTY;
593  hres = IOleCommandTarget_Exec(cmdtrg, NULL, OLECMDID_REFRESH, OLECMDEXECOPT_PROMPTUSER, &vin, &vout);
594  IOleCommandTarget_Release(cmdtrg);
595  if(FAILED(hres))
596  return hres;
597 
598  VariantClear(&vout);
599  return S_OK;
600 }
GLint level
Definition: gl.h:1546
Definition: compat.h:1932
#define E_FAIL
Definition: ddrawi.h:102
#define V_I4(A)
Definition: oleauto.h:247
#define FIXME(fmt,...)
Definition: debug.h:110
smooth NULL
Definition: ftsmooth.c:416
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
Definition: variant.c:651
#define V_VT(A)
Definition: oleauto.h:211
static const char * debugstr_variant(const VARIANT *var)
Definition: container.c:46
#define S_OK
Definition: intsafe.h:59

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 }
#define LR_SHARED
Definition: winuser.h:1090
#define IMAGE_ICON
Definition: winuser.h:212
int cbWndExtra
Definition: winuser.h:3173
HINSTANCE ieframe_instance
Definition: ieframe_main.c:32
#define SM_CYSMICON
Definition: winuser.h:1003
HICON hIcon
Definition: winuser.h:3175
ATOM WINAPI RegisterClassExW(_In_ CONST WNDCLASSEXW *)
LPCWSTR lpszMenuName
Definition: winuser.h:3178
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_ UINT, _In_ int, _In_ int, _In_ UINT)
Definition: cursoricon.c:2172
smooth NULL
Definition: ftsmooth.c:416
int cbClsExtra
Definition: winuser.h:3172
static LRESULT WINAPI ie_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
Definition: iexplore.c:675
LPCWSTR lpszClassName
Definition: winuser.h:3179
static const WCHAR szIEWinFrame[]
Definition: iexplore.c:52
HBRUSH hbrBackground
Definition: winuser.h:3177
UINT cbSize
Definition: winuser.h:3169
int WINAPI GetSystemMetrics(_In_ int)
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
Definition: cursoricon.c:2074
HINSTANCE hInstance
Definition: winuser.h:3174
#define SM_CXSMICON
Definition: winuser.h:1002
HCURSOR hCursor
Definition: winuser.h:3176
UINT style
Definition: winuser.h:3170
#define IDI_APPICON
Definition: iexplore.c:48
WNDPROC lpfnWndProc
Definition: winuser.h:3171
HICON hIconSm
Definition: winuser.h:3180
#define IDC_ARROW
Definition: winuser.h:682
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
Definition: loader.c:845
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
Definition: cursoricon.c:2044
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
WCHAR * LPWSTR
Definition: xmlstorage.h:184
#define memset(x, y, z)
Definition: compat.h:39

Referenced by DllMain().

◆ release_dochost_client()

void release_dochost_client ( DocHost )

Definition at line 602 of file dochost.c.

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

Referenced by DocHost_Release(), and release_client_site().

◆ release_extern_ref()

DWORD release_extern_ref ( InternetExplorer ,
BOOL   
)

Definition at line 723 of file ie.c.

724 {
725  LONG ref = InterlockedDecrement(&This->extern_ref);
726 
727  TRACE("ref = %d\n", ref);
728 
729  if(ref)
730  return ref;
731 
732  if(!last_closes) {
733  WARN("Last external connection released with FALSE last_closes.\n");
734  return ref;
735  }
736 
737  deactivate_document(&This->doc_host);
738  return ref;
739 }
#define WARN(fmt,...)
Definition: debug.h:111
Definition: send.c:47
long LONG
Definition: pedump.c:60
GLenum GLint ref
Definition: glext.h:6028
void deactivate_document(DocHost *This)
Definition: dochost.c:511
#define TRACE(s)
Definition: solgame.cpp:4
#define InterlockedDecrement
Definition: armddk.h:52

Referenced by ExternalConnection_ReleaseConnection(), and ie_window_proc().

◆ released_obj()

void released_obj ( void  )

Definition at line 946 of file iexplore.c.

947 {
949  PostQuitMessage(0);
950 }
static LONG obj_cnt
Definition: iexplore.c:58
#define InterlockedDecrement
Definition: armddk.h:52
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)

Referenced by InternetExplorer_Release(), and InternetExplorerManager_Release().

◆ set_doc_state()

void set_doc_state ( DocHost ,
READYSTATE   
)

Definition at line 235 of file dochost.c.

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

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

◆ set_dochost_url()

HRESULT set_dochost_url ( DocHost ,
const WCHAR  
)

Definition at line 130 of file navigate.c.

131 {
132  WCHAR *new_url;
133 
134  if(url) {
135  new_url = heap_strdupW(url);
136  if(!new_url)
137  return E_OUTOFMEMORY;
138  }else {
139  new_url = NULL;
140  }
141 
142  heap_free(This->url);
143  This->url = new_url;
144 
145  This->container_vtbl->set_url(This, This->url);
146  return S_OK;
147 }
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
static WCHAR * heap_strdupW(const WCHAR *str)
Definition: propsheet.c:178
smooth NULL
Definition: ftsmooth.c:416
static const WCHAR url[]
Definition: encode.c:1432
#define S_OK
Definition: intsafe.h:59
static BOOL heap_free(void *mem)
Definition: appwiz.h:75

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

◆ unlock_module()

static void unlock_module ( void  )
inlinestatic

Definition at line 339 of file ieframe.h.

339  {
341 }
LONG module_ref
Definition: ieframe_main.c:31
#define InterlockedDecrement
Definition: armddk.h:52

Referenced by ClassFactory_LockServer(), JScript_Release(), Unknown_Release(), UrlHistoryStg_Release(), and WebBrowser_Release().

◆ unregister_iewindow_class()

void unregister_iewindow_class ( void  )

Definition at line 735 of file iexplore.c.

736 {
738 }
BOOL WINAPI UnregisterClassW(_In_ LPCWSTR, HINSTANCE)
HINSTANCE ieframe_instance
Definition: ieframe_main.c:32
static const WCHAR szIEWinFrame[]
Definition: iexplore.c:52

Referenced by DllMain().

◆ update_ie_statustext()

HRESULT update_ie_statustext ( InternetExplorer ,
LPCWSTR   
)

Definition at line 63 of file iexplore.c.

64 {
65  if(!SendMessageW(This->status_hwnd, SB_SETTEXTW, MAKEWORD(SB_SIMPLEID, 0), (LPARAM)text))
66  return E_FAIL;
67 
68  return S_OK;
69 }
#define MAKEWORD(a, b)
Definition: typedefs.h:247
const WCHAR * text
Definition: package.c:1827
#define E_FAIL
Definition: ddrawi.h:102
LONG_PTR LPARAM
Definition: windef.h:208
#define SB_SIMPLEID
Definition: precomp.h:15
#define SB_SETTEXTW
Definition: commctrl.h:1914
#define S_OK
Definition: intsafe.h:59
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)

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 
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
SHDocVw::uuid CSC_NAVIGATEBACK
struct DocHost::@404 travellog
SHDocVw::uuid CSC_NAVIGATEFORWARD

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

◆ WebBrowser_ClassInfo_Init()

void WebBrowser_ClassInfo_Init ( WebBrowser )

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 ,
IUnknown ,
REFIID  ,
void **   
)

Definition at line 1269 of file webbrowser.c.

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

◆ WebBrowser_OleObject_Destroy()

void WebBrowser_OleObject_Destroy ( WebBrowser )

Definition at line 1222 of file oleobject.c.

1223 {
1225 }
#define TRUE
Definition: types.h:120
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 )

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 }
#define HDC
Definition: msvc.h:22
#define LOGPIXELSX
Definition: wingdi.h:717
HDC WINAPI GetDC(_In_opt_ HWND)
static const IOleCommandTargetVtbl OleCommandTargetVtbl
Definition: oleobject.c:1191
static const IOleInPlaceObjectVtbl OleInPlaceObjectVtbl
Definition: oleobject.c:924
static const IOleInPlaceActiveObjectVtbl OleInPlaceActiveObjectVtbl
Definition: oleobject.c:1118
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
HDC hdc
Definition: msvc.h:53
unsigned long DWORD
Definition: ntddk_ex.h:95
static const IOleObjectVtbl OleObjectVtbl
Definition: oleobject.c:800
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
#define LOGPIXELSY
Definition: wingdi.h:718
#define MulDiv(x, y, z)
Definition: gdifloat.h:86
static const IOleControlVtbl OleControlVtbl
Definition: oleobject.c:1013

Referenced by create_webbrowser().

◆ WebBrowser_Persist_Init()

void WebBrowser_Persist_Init ( WebBrowser )

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 IPersistStorageVtbl PersistStorageVtbl
Definition: persist.c:99
static const IPersistStreamInitVtbl PersistStreamInitVtbl
Definition: persist.c:266
static const IPersistMemoryVtbl PersistMemoryVtbl
Definition: persist.c:183

Referenced by create_webbrowser().

◆ WebBrowser_ViewObject_Init()

void WebBrowser_ViewObject_Init ( WebBrowser )

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 ,
IUnknown ,
REFIID  ,
void **   
)

Definition at line 1264 of file webbrowser.c.

1265 {
1266  return create_webbrowser(1, pOuter, riid, ppv);
1267 }
REFIID riid
Definition: precomp.h:44
REFIID LPVOID * ppv
Definition: atlbase.h:39
static HRESULT create_webbrowser(int version, IUnknown *outer, REFIID riid, void **ppv)
Definition: webbrowser.c:1227

Variable Documentation

◆ DECLSPEC_HIDDEN

HINSTANCE ieframe_instance DECLSPEC_HIDDEN

Definition at line 330 of file ieframe.h.