ReactOS  0.4.14-dev-583-g2a1ba2c
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,
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 }
static HANDLE proc()
Definition: pdb.c:32
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
Definition: list.h:108
uint32_t entry
Definition: isohybrid.c:63
#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: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)
374  MultiByteToWideChar(CP_ACP, 0, str, -1, ret, len);
375  return ret;
376 }
#define CP_ACP
Definition: compat.h:99
int32_t INT
Definition: typedefs.h:56
const WCHAR * str
smooth NULL
Definition: ftsmooth.c:416
__wchar_t WCHAR
Definition: xmlstorage.h:180
int ret
GLenum GLsizei len
Definition: glext.h:6722
#define MultiByteToWideChar
Definition: compat.h:100
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
Definition: ifs.c:404

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 lstrlenW
Definition: compat.h:415
const WCHAR * str
__wchar_t WCHAR
Definition: xmlstorage.h:180
int ret
#define lstrcpyW
Definition: compat.h:414
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
Definition: ifs.c:404

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

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 921 of file shellbrowser.c.

922 {
923  ShellBrowser *sb;
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 }
superblock * sb
Definition: btrfs.c:4137
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:905
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 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),
489  CS_PARENTDC,
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 }
#define WS_CLIPSIBLINGS
Definition: pedump.c:618
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:364
__wchar_t WCHAR
Definition: xmlstorage.h:180
HINSTANCE hInstance
Definition: winuser.h:3196
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 510 of file dochost.c.

511 {
513  IOleObject *oleobj = NULL;
514  IHlinkTarget *hlink = NULL;
515  HRESULT hres;
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 }
static IOleClientSite * client_site
Definition: activex.c:198
static void advise_prop_notif(DocHost *This, BOOL set)
Definition: dochost.c:209
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 940 of file shellbrowser.c.

941 {
942  sb->doc_host = NULL;
943  IShellBrowser_Release(&sb->IShellBrowser_iface);
944 }
superblock * sb
Definition: btrfs.c:4137
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:940

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 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 }
void DocHost_ClientSite_Init(DocHost *This)
Definition: client.c:712
struct container container
static const IDocHostUIHandler2Vtbl DocHostUIHandler2Vtbl
Definition: dochost.c:1016
void ConnectionPointContainer_Init(ConnectionPointContainer *This, IUnknown *impl)
Definition: events.c:431
static const IPropertyNotifySinkVtbl PropertyNotifySinkVtbl
Definition: dochost.c:1098
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:782
__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 304 of file dochost.c.

305 {
306  READYSTATE ready_state;
307  task_header_t *task;
308  IOleObject *oleobj;
309  HRESULT hres;
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 TRUE
Definition: types.h:120
static void object_available_proc(DocHost *This, task_header_t *task)
Definition: dochost.c:299
static void advise_prop_notif(DocHost *This, BOOL set)
Definition: dochost.c:209
static void object_available_task_destr(task_header_t *task)
Definition: dochost.c:294
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:283
#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:82
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:179
#define S_OK
Definition: intsafe.h:59
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4112
#define SUCCEEDED(hr)
Definition: intsafe.h:57

Referenced by BindStatusCallback_OnObjectAvailable().

◆ DocHost_Release()

void DocHost_Release ( DocHost )

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 }
void release_dochost_client(DocHost *This)
Definition: dochost.c:601
static void free_travellog_entry(travellog_entry_t *entry)
Definition: dochost.c:385
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 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 SysAllocStringLen(const OLECHAR *str, unsigned int len)
Definition: oleaut.c:339
#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:238
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 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:111
#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 )

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 }
#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:1090

Referenced by InternetExplorer_GoForward(), and WebBrowser_GoForward().

◆ go_home()

HRESULT go_home ( DocHost )

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 ERROR_SUCCESS
Definition: deptool.c:10
#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:3296
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:941
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:4116
__wchar_t WCHAR
Definition: xmlstorage.h:180
#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 315 of file navigate.c.

316 {
317  VARIANT var_status_code, var_frame_name, var_url;
318  DISPPARAMS dispparams;
319  VARIANTARG params[5];
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 
350  V_VT(params+4) = VT_DISPATCH;
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 }
Definition: compat.h:1947
short VARIANT_BOOL
Definition: compat.h:1939
#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:271
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 = (lstrlenW(str)+1)*sizeof(WCHAR);
351  ret = heap_alloc(size);
352  if(ret)
353  memcpy(ret, str, size);
354  }
355 
356  return ret;
357 }
#define lstrlenW
Definition: compat.h:415
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
__wchar_t WCHAR
Definition: xmlstorage.h:180
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 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 ITargetFrameVtbl TargetFrameVtbl
Definition: navigate.c:1375
static const ITargetFramePriv2Vtbl TargetFramePriv2Vtbl
Definition: navigate.c:1614
static const IHlinkFrameVtbl HlinkFrameVtbl
Definition: navigate.c:1241
static const IWebBrowserPriv2IE9Vtbl WebBrowserPriv2IE9Vtbl
Definition: navigate.c:1659

Referenced by create_ie(), and create_webbrowser().

◆ HlinkFrame_QI()

BOOL HlinkFrame_QI ( HlinkFrame ,
REFIID  ,
void **   
)

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 }
#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:4112

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 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 IWebBrowser2Vtbl InternetExplorerVtbl
Definition: ie.c:670
static const IExternalConnectionVtbl ExternalConnectionVtbl
Definition: ie.c:817

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:403
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 941 of file navigate.c.

943 {
944  SAFEARRAY *post_array = NULL;
945  PBYTE post_data = NULL;
946  ULONG post_data_len = 0;
947  LPWSTR headers = NULL;
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 {
998  task_navigate_bsc_t *task;
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 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:550
#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:819
#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:1137
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:930
#define V_ARRAYREF(A)
Definition: oleauto.h:223
smooth NULL
Definition: ftsmooth.c:416
#define INTERNET_MAX_URL_LENGTH
Definition: session.c:1410
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
HRESULT hres
Definition: protocol.c:465
__wchar_t WCHAR
Definition: xmlstorage.h:180
#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:234
static const CHAR post_data[]
Definition: protocol.c:217
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:918
static void navigate_bsc_task_destr(task_header_t *t)
Definition: navigate.c:922
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:1033
#define ARRAY_SIZE(a)
Definition: main.h:24
UINT WINAPI SafeArrayGetElemsize(SAFEARRAY *psa)
Definition: safearray.c:1114
BindStatusCallback * bsc
Definition: navigate.c:919
#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:1168

Referenced by go_home().

◆ NewWindowManager_Init()

void NewWindowManager_Init ( DocHost )

Definition at line 1006 of file shellbrowser.c.

1007 {
1008  doc_host->nwm.INewWindowManager_iface.lpVtbl = &NewWindowManagerVtbl;
1009  doc_host->nwm.doc_host = doc_host;
1010 }
static const INewWindowManagerVtbl NewWindowManagerVtbl
Definition: shellbrowser.c:999

Referenced by DocHost_Init().

◆ notify_download_state()

void notify_download_state ( DocHost ,
BOOL   
)

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 }
#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:1947
#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 }
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
Definition: list.h:108
uint32_t entry
Definition: isohybrid.c:63
__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 572 of file dochost.c.

573 {
574  IOleCommandTarget *cmdtrg;
575  VARIANT vin, vout;
576  HRESULT hres;
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
Definition: compat.h:1947
#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:648
#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:3195
HINSTANCE ieframe_instance
Definition: ieframe_main.c:32
#define SM_CYSMICON
Definition: winuser.h:1003
HICON hIcon
Definition: winuser.h:3197
ATOM WINAPI RegisterClassExW(_In_ CONST WNDCLASSEXW *)
LPCWSTR lpszMenuName
Definition: winuser.h:3200
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:3194
static LRESULT WINAPI ie_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
Definition: iexplore.c:675
LPCWSTR lpszClassName
Definition: winuser.h:3201
static const WCHAR szIEWinFrame[]
Definition: iexplore.c:52
HBRUSH hbrBackground
Definition: winuser.h:3199
UINT cbSize
Definition: winuser.h:3191
int WINAPI GetSystemMetrics(_In_ int)
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
Definition: cursoricon.c:2074
HINSTANCE hInstance
Definition: winuser.h:3196
#define SM_CXSMICON
Definition: winuser.h:1002
HCURSOR hCursor
Definition: winuser.h:3198
UINT style
Definition: winuser.h:3192
#define IDI_APPICON
Definition: iexplore.c:48
WNDPROC lpfnWndProc
Definition: winuser.h:3193
HICON hIconSm
Definition: winuser.h:3202
#define IDC_ARROW
Definition: winuser.h:682
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
Definition: loader.c:847
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 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)
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 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 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:510
#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 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 ,
const WCHAR  
)

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 }
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
static WCHAR * heap_strdupW(const WCHAR *str)
Definition: propsheet.c:178
smooth NULL
Definition: ftsmooth.c:416
__wchar_t WCHAR
Definition: xmlstorage.h:180
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
#define SB_SIMPLEID
Definition: precomp.h:15
LONG_PTR LPARAM
Definition: windef.h:208
#define SB_SETTEXTW
Definition: commctrl.h:1938
#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
struct DocHost::@413 travellog
SHDocVw::uuid CSC_NAVIGATEBACK
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 LOGPIXELSX
Definition: wingdi.h:717
HDC WINAPI GetDC(_In_opt_ HWND)
static const IOleCommandTargetVtbl OleCommandTargetVtbl
Definition: oleobject.c:1191
static HDC
Definition: imagelist.c:92
static const IOleInPlaceObjectVtbl OleInPlaceObjectVtbl
Definition: oleobject.c:924
static const IOleInPlaceActiveObjectVtbl OleInPlaceActiveObjectVtbl
Definition: oleobject.c:1118
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
unsigned long DWORD
Definition: ntddk_ex.h:95
static const IOleObjectVtbl OleObjectVtbl
Definition: oleobject.c:800
HDC hdc
Definition: main.c:9
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.