ReactOS  0.4.12-dev-90-g2e2e63e
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.

Referenced by debugstr_mshtml_guid().

◆ WM_DOCHOSTTASK

#define WM_DOCHOSTTASK   (WM_USER+0x300)

Definition at line 293 of file ieframe.h.

Referenced by ie_window_proc(), push_dochost_task(), and shell_embedding_proc().

◆ 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.

Referenced by async_doc_navigate(), and DocHost_Release().

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:31
__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

◆ call_sink()

void call_sink ( ConnectionPoint ,
DISPID  ,
DISPPARAMS *   
)

Definition at line 391 of file events.c.

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().

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
GLenum GLclampf GLint i
Definition: glfuncs.h:14
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

◆ co_strdupAtoW()

static LPWSTR co_strdupAtoW ( LPCSTR  str)
inlinestatic

Definition at line 367 of file ieframe.h.

Referenced by UniformResourceLocatorA_SetUrl().

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

◆ co_strdupW()

static LPWSTR co_strdupW ( LPCWSTR  str)
inlinestatic

Definition at line 359 of file ieframe.h.

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

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

◆ co_strdupWtoA()

static LPSTR co_strdupWtoA ( LPCWSTR  str)
inlinestatic

Definition at line 378 of file ieframe.h.

Referenced by UniformResourceLocatorA_GetUrl().

379 {
380  INT len;
381  CHAR *ret;
382  len = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, 0, 0);
383  ret = CoTaskMemAlloc(len);
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

◆ 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.

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

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

◆ create_browser_service()

HRESULT create_browser_service ( DocHost ,
ShellBrowser **   
)

Definition at line 924 of file shellbrowser.c.

Referenced by ClServiceProvider_QueryService().

925 {
926  ShellBrowser *sb;
927 
928  sb = heap_alloc(sizeof(ShellBrowser));
929  if(!sb)
930  return E_OUTOFMEMORY;
931 
935 
936  sb->ref = 1;
937  sb->doc_host = doc_host;
938 
939  *ret = sb;
940  return S_OK;
941 }
IDocObjectService IDocObjectService_iface
Definition: ieframe.h:87
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
IBrowserService IBrowserService_iface
Definition: ieframe.h:86
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
LONG ref
Definition: ieframe.h:89
IShellBrowser IShellBrowser_iface
Definition: ieframe.h:85
DocHost * doc_host
Definition: ieframe.h:91

◆ create_doc_view_hwnd()

void create_doc_view_hwnd ( DocHost )

Definition at line 480 of file dochost.c.

Referenced by create_frame_hwnd(), and navigate_bsc_proc().

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
LONG top
Definition: windef.h:297
HINSTANCE ieframe_instance
Definition: ieframe_main.c:32
#define WS_CHILD
Definition: pedump.c:617
LONG left
Definition: windef.h:296
#define WS_CLIPCHILDREN
Definition: pedump.c:619
LONG right
Definition: windef.h:298
#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
LONG bottom
Definition: windef.h:299
#define WS_VISIBLE
Definition: pedump.c:620
#define CS_PARENTDC
Definition: winuser.h:651

◆ create_shell_ui_helper()

HRESULT create_shell_ui_helper ( IShellUIHelper2 **  )

Definition at line 369 of file shelluihelper.c.

Referenced by DocHostUIHandler_GetExternal().

370 {
372 
373  ret = heap_alloc(sizeof(*ret));
374  if(!ret)
375  return E_OUTOFMEMORY;
376 
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
IShellUIHelper2 IShellUIHelper2_iface
Definition: shelluihelper.c:26
int ret
#define S_OK
Definition: intsafe.h:59
#define _ret
static const IShellUIHelper2Vtbl ShellUIHelper2Vtbl

◆ 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.

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

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

◆ detach_browser_service()

void detach_browser_service ( ShellBrowser )

Definition at line 943 of file shellbrowser.c.

Referenced by DocHost_ClientSite_Release().

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

◆ DocHost_ClientSite_Init()

void DocHost_ClientSite_Init ( DocHost )

Definition at line 712 of file client.c.

Referenced by DocHost_Init().

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

◆ DocHost_ClientSite_Release()

void DocHost_ClientSite_Release ( DocHost )

Definition at line 722 of file client.c.

Referenced by DocHost_Release().

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

◆ DocHost_Frame_Init()

void DocHost_Frame_Init ( DocHost )

Definition at line 182 of file frame.c.

Referenced by DocHost_Init().

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

◆ DocHost_Init()

void DocHost_Init ( DocHost ,
IWebBrowser2 *  ,
const IDocHostContainerVtbl  
)

Definition at line 1105 of file dochost.c.

Referenced by create_ie(), and create_webbrowser().

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

◆ dochost_object_available()

HRESULT dochost_object_available ( DocHost ,
IUnknown  
)

Definition at line 305 of file dochost.c.

Referenced by BindStatusCallback_OnObjectAvailable().

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:4024
#define SUCCEEDED(hr)
Definition: intsafe.h:57

◆ DocHost_Release()

void DocHost_Release ( DocHost )

Definition at line 1127 of file dochost.c.

Referenced by InternetExplorer_Release(), and WebBrowser_Release().

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

◆ get_location_url()

HRESULT get_location_url ( DocHost ,
BSTR  
)

Definition at line 1137 of file navigate.c.

Referenced by InternetExplorer_get_LocationURL(), and WebBrowser_get_LocationURL().

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:343
#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:242
int ret
#define S_OK
Definition: intsafe.h:59

◆ 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 
79  if(InterlockedCompareExchangePointer((void**)(typeinfos+tid), ti, NULL))
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.

Referenced by InternetExplorer_GoBack(), and WebBrowser_GoBack().

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

◆ go_forward()

HRESULT go_forward ( DocHost )

Definition at line 1127 of file navigate.c.

Referenced by InternetExplorer_GoForward(), and WebBrowser_GoForward().

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

◆ go_home()

HRESULT go_home ( DocHost )

Definition at line 1060 of file navigate.c.

Referenced by InternetExplorer_GoHome(), and WebBrowser_GoHome().

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

◆ handle_navigation_error()

void handle_navigation_error ( DocHost ,
HRESULT  ,
BSTR  ,
IHTMLWindow2  
)

Definition at line 310 of file navigate.c.

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

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 
322  V_VT(params) = VT_BOOL|VT_BYREF;
323  V_BOOLREF(params) = &cancel;
324 
325  V_VT(params+1) = VT_VARIANT|VT_BYREF;
326  V_VARIANTREF(params+1) = &var_status_code;
327  V_VT(&var_status_code) = VT_I4;
328  V_I4(&var_status_code) = hres;
329 
330  V_VT(params+2) = VT_VARIANT|VT_BYREF;
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 
340  V_VT(params+3) = VT_VARIANT|VT_BYREF;
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
void WINAPI SysFreeString(BSTR str)
Definition: oleaut.c:275
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
struct stdole::DISPPARAMS DISPPARAMS
#define V_VARIANTREF(A)
Definition: oleauto.h:283

◆ 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.

Referenced by create_ie(), and create_webbrowser().

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

◆ HlinkFrame_QI()

BOOL HlinkFrame_QI ( HlinkFrame ,
REFIID  ,
void **   
)

Definition at line 1661 of file navigate.c.

Referenced by InternetExplorer_QueryInterface(), and WebBrowser_QueryInterface().

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

◆ IEHTMLWindow_Init()

void IEHTMLWindow_Init ( DocHost )

Definition at line 692 of file iehtmlwnd.c.

Referenced by DocHost_Init().

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

◆ 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
IWebBrowser2 IWebBrowser2_iface
Definition: ieframe.h:232
#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.

Referenced by create_ie().

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

◆ 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 
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
REFIID riid
Definition: precomp.h:44
IInternetExplorerManager IInternetExplorerManager_iface
Definition: iexplore.c:860
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 
840  hres = Unknown_QueryInterface(This, riid, ppv);
841  Unknown_Release(This);
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.

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

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

◆ navigate_url()

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

Definition at line 936 of file navigate.c.

Referenced by go_home().

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

◆ NewWindowManager_Init()

void NewWindowManager_Init ( DocHost )

Definition at line 1009 of file shellbrowser.c.

Referenced by DocHost_Init().

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

◆ notify_download_state()

void notify_download_state ( DocHost ,
BOOL   
)

Definition at line 149 of file navigate.c.

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

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

◆ on_commandstate_change()

void on_commandstate_change ( DocHost ,
LONG  ,
BOOL   
)

Definition at line 83 of file dochost.c.

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

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

◆ process_dochost_tasks()

LRESULT process_dochost_tasks ( DocHost )

Definition at line 55 of file dochost.c.

Referenced by ie_window_proc(), and shell_embedding_proc().

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

◆ 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.

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

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:31
__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)

◆ refresh_document()

HRESULT refresh_document ( DocHost ,
const VARIANT  
)

Definition at line 573 of file dochost.c.

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

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
HRESULT WINAPI VariantClear(VARIANTARG *pVarg)
Definition: variant.c:651
#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
#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

◆ register_iewindow_class()

void register_iewindow_class ( void  )

Definition at line 713 of file iexplore.c.

Referenced by DllMain().

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

◆ release_dochost_client()

void release_dochost_client ( DocHost )

Definition at line 602 of file dochost.c.

Referenced by DocHost_Release(), and release_client_site().

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

◆ release_extern_ref()

DWORD release_extern_ref ( InternetExplorer ,
BOOL   
)

Definition at line 723 of file ie.c.

Referenced by ExternalConnection_ReleaseConnection(), and ie_window_proc().

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

◆ released_obj()

void released_obj ( void  )

Definition at line 946 of file iexplore.c.

Referenced by InternetExplorer_Release(), and InternetExplorerManager_Release().

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)

◆ set_doc_state()

void set_doc_state ( DocHost ,
READYSTATE   
)

Definition at line 235 of file dochost.c.

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

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

◆ set_dochost_url()

HRESULT set_dochost_url ( DocHost ,
const WCHAR  
)

Definition at line 130 of file navigate.c.

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

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

◆ unlock_module()

static void unlock_module ( void  )
inlinestatic

Definition at line 339 of file ieframe.h.

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

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

◆ unregister_iewindow_class()

void unregister_iewindow_class ( void  )

Definition at line 735 of file iexplore.c.

Referenced by DllMain().

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

◆ update_ie_statustext()

HRESULT update_ie_statustext ( InternetExplorer ,
LPCWSTR   
)

Definition at line 63 of file iexplore.c.

Referenced by DocHostContainer_set_status_text(), and InternetExplorer_put_StatusText().

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:1912
#define S_OK
Definition: intsafe.h:59
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)

◆ update_navigation_commands()

void update_navigation_commands ( DocHost dochost)

Definition at line 106 of file dochost.c.

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

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

◆ WebBrowser_ClassInfo_Init()

void WebBrowser_ClassInfo_Init ( WebBrowser )

Definition at line 100 of file classinfo.c.

Referenced by create_webbrowser().

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

◆ 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.

Referenced by WebBrowser_Release().

1223 {
1225 }
#define TRUE
Definition: types.h:120
static void release_client_site(WebBrowser *This, BOOL destroy_win)
Definition: oleobject.c:286

◆ WebBrowser_OleObject_Init()

void WebBrowser_OleObject_Init ( WebBrowser )

Definition at line 1199 of file oleobject.c.

Referenced by create_webbrowser().

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:716
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:717
#define MulDiv(x, y, z)
Definition: gdifloat.h:86
static const IOleControlVtbl OleControlVtbl
Definition: oleobject.c:1013

◆ WebBrowser_Persist_Init()

void WebBrowser_Persist_Init ( WebBrowser )

Definition at line 279 of file persist.c.

Referenced by create_webbrowser().

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

◆ WebBrowser_ViewObject_Init()

void WebBrowser_ViewObject_Init ( WebBrowser )

Definition at line 253 of file view.c.

Referenced by create_webbrowser().

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

◆ 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.