22#define CMDID_EXPLORER_UPDATEHISTORY 38
24static const WCHAR about_blankW[] = {
'a',
'b',
'o',
'u',
't',
':',
'b',
'l',
'a',
'n',
'k',0};
45 return zone == URLZONE_UNTRUSTED;
56 hres = IOleClientSite_QueryInterface(doc->
client, &IID_IOleCommandTarget, (
void**)&cmdtrg);
64 IOleCommandTarget_Release(cmdtrg);
76 IUri_Release(
window->uri_nofrag);
91 FIXME(
"get_uri_nofrag failed\n");
107 if(
This ==
This->doc_obj->basedoc.window)
110 TRACE(
"Skipping travellog update for frame navigation.\n");
112 IMoniker_Release(
This->mon);
120 IMoniker_AddRef(mon);
123 hres = IMoniker_QueryInterface(mon, &IID_IUriContainer, (
void**)&uri_container);
125 hres = IUriContainer_GetIUri(uri_container, &
uri);
126 IUriContainer_Release(uri_container);
128 WARN(
"GetIUri failed: %08x\n",
hres);
140 WARN(
"CrateUri failed: %08x\n",
hres);
148 WARN(
"GetDisplayName failed: %08x\n",
hres);
160 return CreateUri(uri_str,
flags | Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME, 0,
uri);
176 hres = IOleClientSite_QueryInterface(doc->
client, &IID_IOleCommandTarget, (
void**)&olecmd);
183 IOleCommandTarget_Exec(olecmd,
NULL, OLECMDID_SETDOWNLOADSTATE,
184 OLECMDEXECOPT_DONTPROMPTUSER, &
var,
NULL);
185 IOleCommandTarget_Release(olecmd);
199 TRACE(
"(%p)\n", doc);
202 IOleClientSite_QueryInterface(doc->
client, &IID_IOleCommandTarget, (
void**)&olecmd);
208 V_I4(&progress_max) = 0;
209 IOleCommandTarget_Exec(olecmd,
NULL, OLECMDID_SETPROGRESSMAX, OLECMDEXECOPT_DONTPROMPTUSER,
210 &progress_max,
NULL);
214 IOleCommandTarget_Exec(olecmd,
NULL, OLECMDID_SETPROGRESSPOS, OLECMDEXECOPT_DONTPROMPTUSER,
216 IOleCommandTarget_Release(olecmd);
220 DOCHOSTUIINFO hostinfo;
222 memset(&hostinfo, 0,
sizeof(DOCHOSTUIINFO));
223 hostinfo.cbSize =
sizeof(DOCHOSTUIINFO);
224 hres = IDocHostUIHandler_GetHostInfo(doc->
hostui, &hostinfo);
227 TRACE(
"hostinfo = {%u %08x %08x %s %s}\n",
228 hostinfo.cbSize, hostinfo.dwFlags, hostinfo.dwDoubleClick,
239 TRACE(
"(%p)\n", doc);
250 IAdviseSink_OnViewChange(doc->
view_sink, DVASPECT_CONTENT, -1);
255 hres = IDocHostUIHandler_GetDropTarget(doc->
hostui,
NULL , &drop_target);
257 FIXME(
"Use IDropTarget\n");
258 IDropTarget_Release(drop_target);
275 if(
This->doc_obj->client) {
283 FIXME(
"silent == true\n");
292 FIXME(
"offline == true\n");
296 if(
This->window->mon) {
303 if(
This->doc_obj->client) {
306 hres = IOleClientSite_QueryInterface(
This->doc_obj->client, &IID_IOleCommandTarget,
315 hres = IOleCommandTarget_Exec(cmdtrg, &CGID_ShellDocView, 63, 0, &
var, &
out);
321 IOleCommandTarget_Exec(cmdtrg, &CGID_ShellDocView, 37, 0, &
var,
NULL);
324 IOleCommandTarget_Release(cmdtrg);
341 doc_obj =
window->doc_obj;
343 hres = IMoniker_GetDisplayName(mon, pibc,
NULL, &
url);
345 WARN(
"GetDiaplayName failed: %08x\n",
hres);
368 bscallback = async_bsc;
374 if(
window->base.inner_window->doc)
382 TRACE(
"pending window for %p %p %p\n",
window, bscallback,
window->pending_window);
384 if(bscallback != async_bsc)
409 download_task->
doc = doc_obj;
452 READYSTATE prev_state =
window->readystate;
454 window->readystate = readystate;
456 if(
window->readystate_locked) {
460 if(
window->readystate_pending || prev_state == readystate)
467 IHTMLWindow2_AddRef(&
window->base.IHTMLWindow2_iface);
488 WARN(
"NULL nsdoc\n");
492 nsres = nsIDOMHTMLDocument_QueryInterface(
This->nsdoc, &IID_nsIDOMNode, (
void**)&nsnode);
494 ERR(
"Could not get nsIDOMNode failed: %08x\n", nsres);
500 nsIDOMNode_Release(nsnode);
549 return IPersistFile_GetClassID(&
This->IPersistFile_iface, pClassID);
558 return IPersistStreamInit_IsDirty(&
This->IPersistStreamInit_iface);
567 TRACE(
"(%p)->(%x %p %p %08x)\n",
This, fFullyAvailable, pimkName, pibc, grfMode);
590 IOleObject_SetClientSite(&
This->IOleObject_iface,
client);
591 IOleClientSite_Release(
client);
594 IUnknown_Release(unk);
611 FIXME(
"(%p)->(%p %p %x)\n",
This, pimkName, pbc, fRemember);
618 FIXME(
"(%p)->(%p %p)\n",
This, pimkName, pibc);
628 if(!
This->window || !
This->window->mon)
631 IMoniker_AddRef(
This->window->mon);
632 *ppimkName =
This->window->mon;
691 FIXME(
"mkp %d\n", mkp);
741 *pClassID = CLSID_HTMLDocument;
751 return IPersistStreamInit_IsDirty(&
This->IPersistStreamInit_iface);
839 return IPersistFile_GetClassID(&
This->IPersistFile_iface, pClassID);
864 WARN(
"CreateURLMoniker failed: %08x\n",
hres);
874 IMoniker_Release(mon);
886 TRACE(
"(%p)->(%p %x)\n",
This, pStm, fClearDirty);
922 WARN(
"CreateURLMoniker failed: %08x\n",
hres);
932 IMoniker_Release(mon);
978 return IPersistFile_GetClassID(&
This->IPersistFile_iface, pClassID);
989 TRACE(
"(%p)->(%p %p)\n",
This, pStream, pbc);
992 FIXME(
"No current window\n");
997 FIXME(
"pbc not supported\n");
999 if(
This->doc_obj->client) {
1002 hres = IOleClientSite_QueryInterface(
This->doc_obj->client, &IID_IOleCommandTarget,
1005 IOleCommandTarget_Exec(cmdtrg, &CGID_ShellDocView, 138, 0,
NULL,
NULL);
1006 IOleCommandTarget_Release(cmdtrg);
1045 if(!
This->window || !
This->window->uri) {
1046 FIXME(
"No current URI\n");
1052 hres = IUri_GetDisplayUri(
This->window->uri, &display_uri);
1057 hres = IStream_Write(pStream, &
len,
sizeof(
len), &written);
1059 hres = IStream_Write(pStream, display_uri,
len*
sizeof(
WCHAR), &written);
1067 FIXME(
"(%p)->(%x)\n",
This, dwPositioncookie);
1074 FIXME(
"(%p)->(%p)\n",
This, pdwPositioncookie);
ACPI_SIZE strlen(const char *String)
static char * heap_strdupWtoA(const WCHAR *str)
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
#define BINDING_NAVIGATED
IUri * get_uri_nofrag(IUri *) DECLSPEC_HIDDEN
HRESULT channelbsc_load_stream(HTMLInnerWindow *, IMoniker *, IStream *) DECLSPEC_HIDDEN
HRESULT load_nsuri(HTMLOuterWindow *, nsWineURI *, nsIInputStream *, nsChannelBSC *, DWORD) DECLSPEC_HIDDEN
HRESULT load_uri(HTMLOuterWindow *, IUri *, DWORD) DECLSPEC_HIDDEN
HRESULT create_channelbsc(IMoniker *, const WCHAR *, BYTE *, DWORD, BOOL, nsChannelBSC **) DECLSPEC_HIDDEN
HRESULT create_doc_uri(HTMLOuterWindow *, IUri *, nsWineURI **) DECLSPEC_HIDDEN
void call_property_onchanged(ConnectionPointContainer *container, DISPID dispid)
static void set_dirty(struct d3dx_parameter *param)
static WCHAR * heap_strdupW(const WCHAR *str)
#define INVALID_HANDLE_VALUE
#define FILE_ATTRIBUTE_NORMAL
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
HRESULT editor_is_dirty(HTMLDocument *This)
void set_statustext(HTMLDocumentObj *doc, INT id, LPCWSTR arg)
#define IDS_STATUS_DOWNLOADINGFROM
HRESULT WINAPI CreateUri(LPCWSTR pwzURI, DWORD dwFlags, DWORD_PTR dwReserved, IUri **ppURI)
HRESULT WINAPI CoInternetCombineUrlEx(IUri *pBaseUri, LPCWSTR pwzRelativeUrl, DWORD dwCombineFlags, IUri **ppCombinedUri, DWORD_PTR dwReserved)
void fire_event(HTMLDocumentNode *doc, eventid_t eid, BOOL set_event, nsIDOMNode *target, nsIDOMEvent *nsevent, IDispatch *script_this)
@ EVENTID_READYSTATECHANGE
void set_script_mode(HTMLOuterWindow *, SCRIPTMODE) DECLSPEC_HIDDEN
HRESULT create_pending_window(HTMLOuterWindow *outer_window, nsChannelBSC *channelbsc)
#define DISPID_AMBIENT_OFFLINEIFNOTCONNECTED
#define DISPID_AMBIENT_SILENT
#define DISPID_READYSTATE
static WebBrowser * impl_from_IPersistStreamInit(IPersistStreamInit *iface)
static HRESULT WINAPI PersistStreamInit_GetSizeMax(IPersistStreamInit *iface, ULARGE_INTEGER *pcbSize)
static HRESULT WINAPI PersistStreamInit_InitNew(IPersistStreamInit *iface)
static ULONG WINAPI PersistStreamInit_AddRef(IPersistStreamInit *iface)
static const IPersistStreamInitVtbl PersistStreamInitVtbl
static HRESULT WINAPI PersistStreamInit_IsDirty(IPersistStreamInit *iface)
static ULONG WINAPI PersistStreamInit_Release(IPersistStreamInit *iface)
static HRESULT WINAPI PersistStreamInit_GetClassID(IPersistStreamInit *iface, CLSID *pClassID)
static HRESULT WINAPI PersistStreamInit_Load(IPersistStreamInit *iface, LPSTREAM pStg)
static HRESULT WINAPI PersistStreamInit_Save(IPersistStreamInit *iface, LPSTREAM pStg, BOOL fSameAsLoad)
static HRESULT WINAPI PersistStreamInit_QueryInterface(IPersistStreamInit *iface, REFIID riid, LPVOID *ppobj)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
static const char * debugstr_variant(const VARIANT *var)
static const char * strw(LPCWSTR x)
static IHTMLWindow2 * window
static const WCHAR SZ_HTML_CLIENTSITE_OBJECTPARAM[]
void set_current_mon(HTMLOuterWindow *This, IMoniker *mon, DWORD flags)
static const WCHAR about_blankW[]
static HRESULT WINAPI PersistFile_Load(IPersistFile *iface, LPCOLESTR pszFileName, DWORD dwMode)
static HRESULT WINAPI PersistMoniker_GetClassID(IPersistMoniker *iface, CLSID *pClassID)
static ULONG WINAPI PersistFile_Release(IPersistFile *iface)
static HRESULT WINAPI PersistFile_QueryInterface(IPersistFile *iface, REFIID riid, void **ppv)
static const IPersistFileVtbl PersistFileVtbl
static HTMLDocument * impl_from_IMonikerProp(IMonikerProp *iface)
static HRESULT WINAPI PersistHistory_QueryInterface(IPersistHistory *iface, REFIID riid, void **ppv)
static HRESULT WINAPI PersistMoniker_Save(IPersistMoniker *iface, IMoniker *pimkName, LPBC pbc, BOOL fRemember)
HRESULT set_moniker(HTMLOuterWindow *window, IMoniker *mon, IUri *nav_uri, IBindCtx *pibc, nsChannelBSC *async_bsc, BOOL set_download)
static void notif_readystate_destr(task_t *_task)
static void set_progress_proc(task_t *_task)
static HTMLDocument * impl_from_IPersistHistory(IPersistHistory *iface)
static HRESULT WINAPI MonikerProp_PutProperty(IMonikerProp *iface, MONIKERPROPERTY mkp, LPCWSTR val)
static HRESULT WINAPI PersistFile_SaveCompleted(IPersistFile *iface, LPCOLESTR pszFileName)
static ULONG WINAPI MonikerProp_AddRef(IMonikerProp *iface)
static ULONG WINAPI PersistMoniker_Release(IPersistMoniker *iface)
static HRESULT WINAPI PersistMoniker_IsDirty(IPersistMoniker *iface)
static const IPersistMonikerVtbl PersistMonikerVtbl
void set_download_state(HTMLDocumentObj *doc, int state)
static HRESULT WINAPI PersistHistory_SetPositionCookie(IPersistHistory *iface, DWORD dwPositioncookie)
#define CMDID_EXPLORER_UPDATEHISTORY
static ULONG WINAPI PersistFile_AddRef(IPersistFile *iface)
HRESULT create_uri(const WCHAR *uri_str, DWORD flags, IUri **uri)
static void set_downloading_proc(task_t *_task)
static void set_downloading_task_destr(task_t *_task)
static const IMonikerPropVtbl MonikerPropVtbl
static HRESULT WINAPI PersistFile_IsDirty(IPersistFile *iface)
HRESULT create_relative_uri(HTMLOuterWindow *window, const WCHAR *rel_uri, IUri **uri)
void HTMLDocument_Persist_Init(HTMLDocument *This)
static HRESULT WINAPI MonikerProp_QueryInterface(IMonikerProp *iface, REFIID riid, void **ppv)
static HRESULT WINAPI PersistFile_Save(IPersistFile *iface, LPCOLESTR pszFileName, BOOL fRemember)
static const IPersistHistoryVtbl PersistHistoryVtbl
static HRESULT get_doc_string(HTMLDocumentNode *This, char **str)
static HRESULT WINAPI PersistMoniker_Load(IPersistMoniker *iface, BOOL fFullyAvailable, IMoniker *pimkName, LPBC pibc, DWORD grfMode)
static HRESULT WINAPI PersistHistory_LoadHistory(IPersistHistory *iface, IStream *pStream, IBindCtx *pbc)
static HRESULT WINAPI PersistMoniker_SaveCompleted(IPersistMoniker *iface, IMoniker *pimkName, LPBC pibc)
static HRESULT WINAPI PersistMoniker_GetCurMoniker(IPersistMoniker *iface, IMoniker **ppimkName)
void set_ready_state(HTMLOuterWindow *window, READYSTATE readystate)
static HTMLDocument * impl_from_IPersistMoniker(IPersistMoniker *iface)
static ULONG WINAPI PersistMoniker_AddRef(IPersistMoniker *iface)
static HRESULT WINAPI PersistHistory_SaveHistory(IPersistHistory *iface, IStream *pStream)
static HRESULT WINAPI PersistFile_GetCurFile(IPersistFile *iface, LPOLESTR *pszFileName)
static HRESULT WINAPI PersistHistory_GetClassID(IPersistHistory *iface, CLSID *pClassID)
static ULONG WINAPI PersistHistory_Release(IPersistHistory *iface)
static HRESULT WINAPI PersistFile_GetClassID(IPersistFile *iface, CLSID *pClassID)
static ULONG WINAPI MonikerProp_Release(IMonikerProp *iface)
void set_current_uri(HTMLOuterWindow *window, IUri *uri)
static HTMLDocument * impl_from_IPersistFile(IPersistFile *iface)
static BOOL use_gecko_script(HTMLOuterWindow *window)
static HRESULT WINAPI PersistHistory_GetPositionCookie(IPersistHistory *iface, DWORD *pdwPositioncookie)
static void notif_readystate(HTMLOuterWindow *window)
static ULONG WINAPI PersistHistory_AddRef(IPersistHistory *iface)
static void notif_readystate_proc(task_t *_task)
static HRESULT WINAPI PersistMoniker_QueryInterface(IPersistMoniker *iface, REFIID riid, void **ppv)
static void notify_travellog_update(HTMLDocumentObj *doc)
void prepare_for_binding(HTMLDocument *This, IMoniker *mon, DWORD flags)
HRESULT nsnode_to_nsstring(nsIDOMNode *, nsAString *) DECLSPEC_HIDDEN
void nsAString_Finish(nsAString *) DECLSPEC_HIDDEN
UINT32 nsAString_GetData(const nsAString *, const PRUnichar **) DECLSPEC_HIDDEN
void abort_window_bindings(HTMLInnerWindow *) DECLSPEC_HIDDEN
static HRESULT htmldoc_query_interface(HTMLDocument *This, REFIID riid, void **ppv)
BOOL nsAString_Init(nsAString *, const PRUnichar *) DECLSPEC_HIDDEN
HRESULT start_binding(HTMLInnerWindow *, BSCallback *, IBindCtx *) DECLSPEC_HIDDEN
void call_docview_84(HTMLDocumentObj *) DECLSPEC_HIDDEN
void HTMLDocument_LockContainer(HTMLDocumentObj *, BOOL) DECLSPEC_HIDDEN
static ULONG htmldoc_addref(HTMLDocument *This)
@ SCRIPTMODE_ACTIVESCRIPT
static ULONG htmldoc_release(HTMLDocument *This)
HRESULT push_task(task_t *, task_proc_t, task_proc_t, LONG) DECLSPEC_HIDDEN
void update_doc(HTMLDocument *, DWORD) DECLSPEC_HIDDEN
void remove_target_tasks(LONG) DECLSPEC_HIDDEN
interface IBindCtx * LPBC
interface IStream * LPSTREAM
BSTR WINAPI SysAllocString(LPCOLESTR str)
UINT WINAPI SysStringLen(BSTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
const GUID IID_IOleClientSite
static HRESULT get_client_disp_property(IOleClientSite *client, DISPID dispid, VARIANT *res)
#define URL_DONT_ESCAPE_EXTRA_INFO
#define URL_ESCAPE_SPACES_ONLY
IBindStatusCallback IBindStatusCallback_iface
IDocHostUIHandler * hostui
IHTMLWindow2 IHTMLWindow2_iface
#define CONTAINING_RECORD(address, type, field)
HRESULT WINAPI CreateURLMoniker(IMoniker *pmkContext, LPCWSTR szURL, IMoniker **ppmk)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
WORD WORD PSZ PSZ pszFileName
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
DWORD WINAPI GetLastError(void)