23 if(!
This->window || !
This->window->base.outer_window || !
This->window->base.outer_window->url) {
24 FIXME(
"No current URL\n");
28 *
ret =
This->window->base.outer_window->url;
34 if(!
This->window || !
This->window->base.outer_window)
36 return This->window->base.outer_window->uri;
69 *
ppv = &
This->IHTMLLocation_iface;
71 *
ppv = &
This->IHTMLLocation_iface;
114 return IDispatchEx_GetTypeInfoCount(&
This->dispex.IDispatchEx_iface, pctinfo);
121 return IDispatchEx_GetTypeInfo(&
This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
129 return IDispatchEx_GetIDsOfNames(&
This->dispex.IDispatchEx_iface,
riid, rgszNames, cNames,
135 VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
UINT *puArgErr)
138 return IDispatchEx_Invoke(&
This->dispex.IDispatchEx_iface, dispIdMember,
riid, lcid,
139 wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
148 if(!
This->window || !
This->window->base.outer_window) {
149 FIXME(
"No window available\n");
170 url.dwSchemeLength = 1;
171 url.dwHostNameLength = 1;
172 url.dwUrlPathLength = 1;
173 url.dwExtraInfoLength = 1;
178 switch(
url.nScheme) {
187 url.lpszUrlPath = url_path;
188 url.dwUrlPathLength =
url.dwUrlPathLength + 1;
195 if(!
url.dwUrlPathLength) {
200 url.lpszUrlPath[0] =
'/';
201 url.dwUrlPathLength = 1;
210 for(
i = 0;
i <
url.dwUrlPathLength; ++
i)
211 if(
url.lpszUrlPath[
i] ==
'\\')
212 url.lpszUrlPath[
i] =
'/';
215 FIXME(
"InternetCreateUrl succeeded with NULL buffer?\n");
277 FIXME(
"No current URI\n");
319 url.dwHostNameLength = 1;
324 if(!
url.dwHostNameLength){
337 buf[
url.dwHostNameLength] =
':';
367 FIXME(
"No current URI\n");
404 FIXME(
"No current URI\n");
413 static const WCHAR formatW[] = {
'%',
'u',0};
445 url.dwUrlPathLength = 1;
446 url.dwExtraInfoLength = 1;
451 if(
url.dwUrlPathLength &&
url.lpszUrlPath[0] ==
'/')
481 FIXME(
"No current URI\n");
504 if(!
This->window || !
This->window->base.outer_window) {
505 FIXME(
"No window available\n");
525 FIXME(
"No current URI\n");
555 if(!
This->window || !
This->window->base.outer_window) {
556 FIXME(
"No window available\n");
560 return navigate_url(
This->window->base.outer_window, bstr,
This->window->base.outer_window->uri,
568 return IHTMLLocation_put_href(iface, bstr);
577 return IHTMLLocation_get_href(&
This->IHTMLLocation_iface,
String);
616 DispHTMLLocation_tid,
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
#define InterlockedIncrement
#define InterlockedDecrement
#define BINDING_NAVIGATED
#define ERROR_INSUFFICIENT_BUFFER
#define HeapFree(x, y, z)
static HRESULT navigate_url(HHInfo *info, LPCWSTR surl)
static void cleanup(void)
static HRESULT get_url_components(HTMLLocation *This, URL_COMPONENTSW *url)
static HRESULT WINAPI HTMLLocation_get_port(IHTMLLocation *iface, BSTR *p)
static HRESULT WINAPI HTMLLocation_GetTypeInfo(IHTMLLocation *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT WINAPI HTMLLocation_get_search(IHTMLLocation *iface, BSTR *p)
static HRESULT WINAPI HTMLLocation_put_protocol(IHTMLLocation *iface, BSTR v)
static HRESULT get_url(HTMLLocation *This, const WCHAR **ret)
static HRESULT WINAPI HTMLLocation_get_hash(IHTMLLocation *iface, BSTR *p)
static HRESULT WINAPI HTMLLocation_toString(IHTMLLocation *iface, BSTR *String)
static HRESULT WINAPI HTMLLocation_reload(IHTMLLocation *iface, VARIANT_BOOL flag)
static HRESULT WINAPI HTMLLocation_assign(IHTMLLocation *iface, BSTR bstr)
HRESULT HTMLLocation_Create(HTMLInnerWindow *window, HTMLLocation **ret)
static HRESULT WINAPI HTMLLocation_get_href(IHTMLLocation *iface, BSTR *p)
static dispex_static_data_t HTMLLocation_dispex
static HRESULT WINAPI HTMLLocation_get_pathname(IHTMLLocation *iface, BSTR *p)
static ULONG WINAPI HTMLLocation_AddRef(IHTMLLocation *iface)
static HRESULT WINAPI HTMLLocation_put_hostname(IHTMLLocation *iface, BSTR v)
static HRESULT WINAPI HTMLLocation_put_pathname(IHTMLLocation *iface, BSTR v)
static const IHTMLLocationVtbl HTMLLocationVtbl
static HRESULT WINAPI HTMLLocation_GetIDsOfNames(IHTMLLocation *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static IUri * get_uri(HTMLLocation *This)
static HRESULT WINAPI HTMLLocation_GetTypeInfoCount(IHTMLLocation *iface, UINT *pctinfo)
static HRESULT WINAPI HTMLLocation_put_href(IHTMLLocation *iface, BSTR v)
static HRESULT WINAPI HTMLLocation_Invoke(IHTMLLocation *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static const tid_t HTMLLocation_iface_tids[]
static HRESULT WINAPI HTMLLocation_replace(IHTMLLocation *iface, BSTR bstr)
static ULONG WINAPI HTMLLocation_Release(IHTMLLocation *iface)
static HRESULT WINAPI HTMLLocation_get_hostname(IHTMLLocation *iface, BSTR *p)
static HRESULT WINAPI HTMLLocation_put_search(IHTMLLocation *iface, BSTR v)
static HRESULT WINAPI HTMLLocation_get_protocol(IHTMLLocation *iface, BSTR *p)
static HTMLLocation * impl_from_IHTMLLocation(IHTMLLocation *iface)
static HRESULT WINAPI HTMLLocation_get_host(IHTMLLocation *iface, BSTR *p)
static HRESULT WINAPI HTMLLocation_put_port(IHTMLLocation *iface, BSTR v)
static HRESULT WINAPI HTMLLocation_put_hash(IHTMLLocation *iface, BSTR v)
static HRESULT WINAPI HTMLLocation_put_host(IHTMLLocation *iface, BSTR v)
static HRESULT WINAPI HTMLLocation_QueryInterface(IHTMLLocation *iface, REFIID riid, void **ppv)
const char * debugstr_mshtml_guid(const GUID *iid)
BOOL WINAPI InternetCrackUrlW(const WCHAR *lpszUrl, DWORD dwUrlLength, DWORD dwFlags, URL_COMPONENTSW *lpUC)
BOOL WINAPI InternetCreateUrlW(LPURL_COMPONENTSW lpUrlComponents, DWORD dwFlags, LPWSTR lpszUrl, LPDWORD lpdwUrlLength)
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
GLenum GLuint GLenum GLsizei const GLchar * buf
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 flag
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
HRESULT init_dispex(jsdisp_t *dispex, script_ctx_t *ctx, const builtin_info_t *builtin_info, jsdisp_t *prototype)
#define location(file, line)
#define memcpy(s1, s2, n)
static IHTMLWindow2 * window
static const WCHAR doc_url[]
static VARIANTARG static DISPID
void release_dispex(DispatchEx *This)
BOOL dispex_query_interface(DispatchEx *This, REFIID riid, void **ppv)
BSTR WINAPI SysAllocString(LPCOLESTR str)
UINT WINAPI SysStringLen(BSTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
#define IsEqualGUID(rguid1, rguid2)
#define CONTAINING_RECORD(address, type, field)
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
DWORD WINAPI GetLastError(void)
_In_ DWORD _Out_ _In_ WORD wFlags
#define INTERNET_SCHEME_FTP
#define INTERNET_SCHEME_HTTP
#define INTERNET_SCHEME_HTTPS