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,
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 HRESULT WINAPI HTMLLocation_put_protocol(IHTMLLocation *iface, BSTR v)
static HRESULT WINAPI HTMLLocation_put_search(IHTMLLocation *iface, BSTR v)
static HTMLLocation * impl_from_IHTMLLocation(IHTMLLocation *iface)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
static HRESULT WINAPI HTMLLocation_get_hostname(IHTMLLocation *iface, BSTR *p)
static HRESULT navigate_url(HHInfo *info, LPCWSTR surl)
static HRESULT WINAPI HTMLLocation_get_host(IHTMLLocation *iface, BSTR *p)
static const IHTMLLocationVtbl HTMLLocationVtbl
static HRESULT WINAPI HTMLLocation_GetTypeInfo(IHTMLLocation *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
DWORD WINAPI GetLastError(VOID)
static HRESULT WINAPI HTMLLocation_QueryInterface(IHTMLLocation *iface, REFIID riid, void **ppv)
static HRESULT WINAPI HTMLLocation_put_pathname(IHTMLLocation *iface, BSTR v)
static HRESULT WINAPI HTMLLocation_put_hostname(IHTMLLocation *iface, BSTR v)
HRESULT HTMLLocation_Create(HTMLInnerWindow *window, HTMLLocation **ret)
static const WCHAR doc_url[]
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
static void * heap_alloc(size_t len)
static HRESULT WINAPI HTMLLocation_put_hash(IHTMLLocation *iface, BSTR v)
static HRESULT get_url_components(HTMLLocation *This, URL_COMPONENTSW *url)
const char * debugstr_mshtml_guid(const GUID *iid)
GLenum GLuint GLenum GLsizei const GLchar * buf
static HRESULT WINAPI HTMLLocation_put_href(IHTMLLocation *iface, BSTR v)
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
static ULONG WINAPI HTMLLocation_Release(IHTMLLocation *iface)
static const tid_t HTMLLocation_iface_tids[]
BSTR WINAPI SysAllocString(LPCOLESTR str)
static HRESULT WINAPI HTMLLocation_get_port(IHTMLLocation *iface, BSTR *p)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
static HRESULT WINAPI HTMLLocation_get_href(IHTMLLocation *iface, BSTR *p)
static HRESULT WINAPI HTMLLocation_assign(IHTMLLocation *iface, BSTR bstr)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
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_get_hash(IHTMLLocation *iface, BSTR *p)
#define InterlockedDecrement
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
#define memcpy(s1, s2, n)
static HRESULT WINAPI HTMLLocation_put_host(IHTMLLocation *iface, BSTR v)
UINT WINAPI SysStringLen(BSTR str)
static IHTMLWindow2 * window
static IUri * get_uri(HTMLLocation *This)
static HRESULT WINAPI HTMLLocation_GetIDsOfNames(IHTMLLocation *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
#define location(file, line)
static HRESULT WINAPI HTMLLocation_get_search(IHTMLLocation *iface, BSTR *p)
_In_ DWORD _Out_ _In_ WORD wFlags
struct stdole::EXCEPINFO EXCEPINFO
static VARIANTARG static DISPID
static HRESULT WINAPI HTMLLocation_Invoke(IHTMLLocation *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static HRESULT WINAPI HTMLLocation_replace(IHTMLLocation *iface, BSTR bstr)
BOOL WINAPI InternetCreateUrlW(LPURL_COMPONENTSW lpUrlComponents, DWORD dwFlags, LPWSTR lpszUrl, LPDWORD lpdwUrlLength)
#define InterlockedIncrement
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
BOOL dispex_query_interface(DispatchEx *This, REFIID riid, void **ppv)
#define BINDING_NAVIGATED
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
HRESULT init_dispex(jsdisp_t *dispex, script_ctx_t *ctx, const builtin_info_t *builtin_info, jsdisp_t *prototype)
static HRESULT WINAPI HTMLLocation_toString(IHTMLLocation *iface, BSTR *String)
BOOL WINAPI InternetCrackUrlW(const WCHAR *lpszUrl, DWORD dwUrlLength, DWORD dwFlags, URL_COMPONENTSW *lpUC)
struct stdole::DISPPARAMS DISPPARAMS
static HRESULT WINAPI HTMLLocation_get_protocol(IHTMLLocation *iface, BSTR *p)
char * cleanup(char *str)
static HRESULT WINAPI HTMLLocation_reload(IHTMLLocation *iface, VARIANT_BOOL flag)
URL_COMPONENTS URL_COMPONENTSW
static HRESULT get_url(HTMLLocation *This, const WCHAR **ret)
#define HeapFree(x, y, z)
void release_dispex(DispatchEx *This)
static HRESULT WINAPI HTMLLocation_GetTypeInfoCount(IHTMLLocation *iface, UINT *pctinfo)
static HRESULT WINAPI HTMLLocation_put_port(IHTMLLocation *iface, BSTR v)
static BOOL heap_free(void *mem)
#define ERROR_INSUFFICIENT_BUFFER