ReactOS  0.4.13-dev-92-gf251225
htmlanchor.c File Reference
#include "mshtml_private.h"
Include dependency graph for htmlanchor.c:

Go to the source code of this file.

Classes

struct  HTMLAnchorElement
 

Functions

static HRESULT navigate_href_new_window (HTMLElement *element, nsAString *href_str, const WCHAR *target)
 
HTMLOuterWindowget_target_window (HTMLOuterWindow *window, nsAString *target_str, BOOL *use_new_window)
 
static HRESULT navigate_href (HTMLElement *element, nsAString *href_str, nsAString *target_str)
 
HRESULT handle_link_click_event (HTMLElement *element, nsAString *href_str, nsAString *target_str, nsIDOMEvent *event, BOOL *prevent_default)
 
static HTMLAnchorElementimpl_from_IHTMLAnchorElement (IHTMLAnchorElement *iface)
 
static HRESULT WINAPI HTMLAnchorElement_QueryInterface (IHTMLAnchorElement *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI HTMLAnchorElement_AddRef (IHTMLAnchorElement *iface)
 
static ULONG WINAPI HTMLAnchorElement_Release (IHTMLAnchorElement *iface)
 
static HRESULT WINAPI HTMLAnchorElement_GetTypeInfoCount (IHTMLAnchorElement *iface, UINT *pctinfo)
 
static HRESULT WINAPI HTMLAnchorElement_GetTypeInfo (IHTMLAnchorElement *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
 
static HRESULT WINAPI HTMLAnchorElement_GetIDsOfNames (IHTMLAnchorElement *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
 
static HRESULT WINAPI HTMLAnchorElement_Invoke (IHTMLAnchorElement *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
 
static HRESULT WINAPI HTMLAnchorElement_put_href (IHTMLAnchorElement *iface, BSTR v)
 
static HRESULT WINAPI HTMLAnchorElement_get_href (IHTMLAnchorElement *iface, BSTR *p)
 
static HRESULT WINAPI HTMLAnchorElement_put_target (IHTMLAnchorElement *iface, BSTR v)
 
static HRESULT WINAPI HTMLAnchorElement_get_target (IHTMLAnchorElement *iface, BSTR *p)
 
static HRESULT WINAPI HTMLAnchorElement_put_rel (IHTMLAnchorElement *iface, BSTR v)
 
static HRESULT WINAPI HTMLAnchorElement_get_rel (IHTMLAnchorElement *iface, BSTR *p)
 
static HRESULT WINAPI HTMLAnchorElement_put_rev (IHTMLAnchorElement *iface, BSTR v)
 
static HRESULT WINAPI HTMLAnchorElement_get_rev (IHTMLAnchorElement *iface, BSTR *p)
 
static HRESULT WINAPI HTMLAnchorElement_put_urn (IHTMLAnchorElement *iface, BSTR v)
 
static HRESULT WINAPI HTMLAnchorElement_get_urn (IHTMLAnchorElement *iface, BSTR *p)
 
static HRESULT WINAPI HTMLAnchorElement_put_Methods (IHTMLAnchorElement *iface, BSTR v)
 
static HRESULT WINAPI HTMLAnchorElement_get_Methods (IHTMLAnchorElement *iface, BSTR *p)
 
static HRESULT WINAPI HTMLAnchorElement_put_name (IHTMLAnchorElement *iface, BSTR v)
 
static HRESULT WINAPI HTMLAnchorElement_get_name (IHTMLAnchorElement *iface, BSTR *p)
 
static HRESULT WINAPI HTMLAnchorElement_put_host (IHTMLAnchorElement *iface, BSTR v)
 
static HRESULT WINAPI HTMLAnchorElement_get_host (IHTMLAnchorElement *iface, BSTR *p)
 
static HRESULT WINAPI HTMLAnchorElement_put_hostname (IHTMLAnchorElement *iface, BSTR v)
 
static HRESULT WINAPI HTMLAnchorElement_get_hostname (IHTMLAnchorElement *iface, BSTR *p)
 
static HRESULT WINAPI HTMLAnchorElement_put_pathname (IHTMLAnchorElement *iface, BSTR v)
 
static HRESULT WINAPI HTMLAnchorElement_get_pathname (IHTMLAnchorElement *iface, BSTR *p)
 
static HRESULT WINAPI HTMLAnchorElement_put_port (IHTMLAnchorElement *iface, BSTR v)
 
static HRESULT WINAPI HTMLAnchorElement_get_port (IHTMLAnchorElement *iface, BSTR *p)
 
static HRESULT WINAPI HTMLAnchorElement_put_protocol (IHTMLAnchorElement *iface, BSTR v)
 
static HRESULT WINAPI HTMLAnchorElement_get_protocol (IHTMLAnchorElement *iface, BSTR *p)
 
static HRESULT WINAPI HTMLAnchorElement_put_search (IHTMLAnchorElement *iface, BSTR v)
 
static HRESULT WINAPI HTMLAnchorElement_get_search (IHTMLAnchorElement *iface, BSTR *p)
 
static HRESULT WINAPI HTMLAnchorElement_put_hash (IHTMLAnchorElement *iface, BSTR v)
 
static HRESULT WINAPI HTMLAnchorElement_get_hash (IHTMLAnchorElement *iface, BSTR *p)
 
static HRESULT WINAPI HTMLAnchorElement_put_onblur (IHTMLAnchorElement *iface, VARIANT v)
 
static HRESULT WINAPI HTMLAnchorElement_get_onblur (IHTMLAnchorElement *iface, VARIANT *p)
 
static HRESULT WINAPI HTMLAnchorElement_put_onfocus (IHTMLAnchorElement *iface, VARIANT v)
 
static HRESULT WINAPI HTMLAnchorElement_get_onfocus (IHTMLAnchorElement *iface, VARIANT *p)
 
static HRESULT WINAPI HTMLAnchorElement_put_accessKey (IHTMLAnchorElement *iface, BSTR v)
 
static HRESULT WINAPI HTMLAnchorElement_get_accessKey (IHTMLAnchorElement *iface, BSTR *p)
 
static HRESULT WINAPI HTMLAnchorElement_get_protocolLong (IHTMLAnchorElement *iface, BSTR *p)
 
static HRESULT WINAPI HTMLAnchorElement_get_mimeType (IHTMLAnchorElement *iface, BSTR *p)
 
static HRESULT WINAPI HTMLAnchorElement_get_nameProp (IHTMLAnchorElement *iface, BSTR *p)
 
static HRESULT WINAPI HTMLAnchorElement_put_tabIndex (IHTMLAnchorElement *iface, short v)
 
static HRESULT WINAPI HTMLAnchorElement_get_tabIndex (IHTMLAnchorElement *iface, short *p)
 
static HRESULT WINAPI HTMLAnchorElement_focus (IHTMLAnchorElement *iface)
 
static HRESULT WINAPI HTMLAnchorElement_blur (IHTMLAnchorElement *iface)
 
static HTMLAnchorElementimpl_from_HTMLDOMNode (HTMLDOMNode *iface)
 
static HRESULT HTMLAnchorElement_QI (HTMLDOMNode *iface, REFIID riid, void **ppv)
 
static HRESULT HTMLAnchorElement_handle_event (HTMLDOMNode *iface, DWORD eid, nsIDOMEvent *event, BOOL *prevent_default)
 
static void HTMLAnchorElement_traverse (HTMLDOMNode *iface, nsCycleCollectionTraversalCallback *cb)
 
static void HTMLAnchorElement_unlink (HTMLDOMNode *iface)
 
HRESULT HTMLAnchorElement_Create (HTMLDocumentNode *doc, nsIDOMHTMLElement *nselem, HTMLElement **elem)
 

Variables

static const IHTMLAnchorElementVtbl HTMLAnchorElementVtbl
 
static const NodeImplVtbl HTMLAnchorElementImplVtbl
 
static const tid_t HTMLAnchorElement_iface_tids []
 
static dispex_static_data_t HTMLAnchorElement_dispex
 

Function Documentation

◆ get_target_window()

HTMLOuterWindow* get_target_window ( HTMLOuterWindow window,
nsAString target_str,
BOOL use_new_window 
)

Definition at line 45 of file htmlanchor.c.

46 {
47  HTMLOuterWindow *top_window, *ret_window;
48  const PRUnichar *target;
49  HRESULT hres;
50 
51  static const WCHAR _parentW[] = {'_','p','a','r','e','n','t',0};
52  static const WCHAR _selfW[] = {'_','s','e','l','f',0};
53  static const WCHAR _topW[] = {'_','t','o','p',0};
54 
55  *use_new_window = FALSE;
56 
57  nsAString_GetData(target_str, &target);
58  TRACE("%s\n", debugstr_w(target));
59 
60  if(!*target || !strcmpiW(target, _selfW)) {
61  IHTMLWindow2_AddRef(&window->base.IHTMLWindow2_iface);
62  return window;
63  }
64 
65  if(!strcmpiW(target, _topW)) {
66  get_top_window(window, &top_window);
67  IHTMLWindow2_AddRef(&top_window->base.IHTMLWindow2_iface);
68  return top_window;
69  }
70 
71  if(!strcmpiW(target, _parentW)) {
72  if(!window->parent) {
73  WARN("Window has no parent, treat as self\n");
74  IHTMLWindow2_AddRef(&window->base.IHTMLWindow2_iface);
75  return window;
76  }
77 
78  IHTMLWindow2_AddRef(&window->parent->base.IHTMLWindow2_iface);
79  return window->parent;
80  }
81 
82  get_top_window(window, &top_window);
83 
84  hres = get_frame_by_name(top_window, target, TRUE, &ret_window);
85  if(FAILED(hres) || !ret_window) {
86  *use_new_window = TRUE;
87  return NULL;
88  }
89 
90  IHTMLWindow2_AddRef(&ret_window->base.IHTMLWindow2_iface);
91  return ret_window;
92 }
#define TRUE
Definition: types.h:120
void get_top_window(HTMLOuterWindow *window, HTMLOuterWindow **ret)
Definition: htmlwindow.c:59
#define WARN(fmt,...)
Definition: debug.h:111
#define debugstr_w
Definition: kernel32.h:32
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
HRESULT hres
Definition: protocol.c:465
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:77
UINT32 nsAString_GetData(const nsAString *, const PRUnichar **) DECLSPEC_HIDDEN
Definition: nsembed.c:831
static IHTMLWindow2 * window
Definition: events.c:77
#define strcmpiW(s1, s2)
Definition: unicode.h:39
IHTMLWindow2 IHTMLWindow2_iface
WCHAR PRUnichar
Definition: nsiface.idl:48
GLenum target
Definition: glext.h:7315
HRESULT get_frame_by_name(HTMLOuterWindow *This, const WCHAR *name, BOOL deep, HTMLOuterWindow **ret)
Definition: htmlwindow.c:343

Referenced by HTMLFormElement_submit(), and navigate_href().

◆ handle_link_click_event()

HRESULT handle_link_click_event ( HTMLElement element,
nsAString href_str,
nsAString target_str,
nsIDOMEvent event,
BOOL prevent_default 
)

Definition at line 123 of file htmlanchor.c.

125 {
127  INT16 button;
128  nsresult nsres;
129  HRESULT hres;
130 
131  TRACE("CLICK\n");
132 
133  nsres = nsIDOMEvent_QueryInterface(event, &IID_nsIDOMMouseEvent, (void**)&mouse_event);
134  assert(nsres == NS_OK);
135 
136  nsres = nsIDOMMouseEvent_GetButton(mouse_event, &button);
137  assert(nsres == NS_OK);
138 
139  nsIDOMMouseEvent_Release(mouse_event);
140 
141  switch(button) {
142  case 0:
143  *prevent_default = TRUE;
144  hres = navigate_href(element, href_str, target_str);
145  break;
146  case 1:
147  *prevent_default = TRUE;
149  break;
150  default:
151  *prevent_default = FALSE;
152  hres = S_OK;
153  }
154 
155  nsAString_Finish(href_str);
156  nsAString_Finish(target_str);
157  return hres;
158 }
#define TRUE
Definition: types.h:120
#define assert(x)
Definition: debug.h:53
#define NS_OK
static HRESULT navigate_href_new_window(HTMLElement *element, nsAString *href_str, const WCHAR *target)
Definition: htmlanchor.c:29
void WINAPI mouse_event(_In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ ULONG_PTR)
static HRESULT navigate_href(HTMLElement *element, nsAString *href_str, nsAString *target_str)
Definition: htmlanchor.c:94
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
struct _cl_event * event
Definition: glext.h:7739
#define S_OK
Definition: intsafe.h:59
void nsAString_Finish(nsAString *) DECLSPEC_HIDDEN
Definition: nsembed.c:836
HRESULT nsresult
Definition: nsiface.idl:39
signed short INT16

Referenced by HTMLAnchorElement_handle_event(), and HTMLAreaElement_handle_event().

◆ HTMLAnchorElement_AddRef()

static ULONG WINAPI HTMLAnchorElement_AddRef ( IHTMLAnchorElement *  iface)
static

Definition at line 173 of file htmlanchor.c.

174 {
176 
177  return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
178 }
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_blur()

static HRESULT WINAPI HTMLAnchorElement_blur ( IHTMLAnchorElement *  iface)
static

Definition at line 623 of file htmlanchor.c.

624 {
626 
627  TRACE("(%p)\n", This);
628 
629  return IHTMLElement2_blur(&This->element.IHTMLElement2_iface);
630 }
#define TRACE(s)
Definition: solgame.cpp:4
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_Create()

HRESULT HTMLAnchorElement_Create ( HTMLDocumentNode doc,
nsIDOMHTMLElement nselem,
HTMLElement **  elem 
)

Definition at line 798 of file htmlanchor.c.

799 {
801  nsresult nsres;
802 
803  ret = heap_alloc_zero(sizeof(HTMLAnchorElement));
804  if(!ret)
805  return E_OUTOFMEMORY;
806 
807  ret->IHTMLAnchorElement_iface.lpVtbl = &HTMLAnchorElementVtbl;
808  ret->element.node.vtbl = &HTMLAnchorElementImplVtbl;
809 
810  HTMLElement_Init(&ret->element, doc, nselem, &HTMLAnchorElement_dispex);
811 
812  nsres = nsIDOMHTMLElement_QueryInterface(nselem, &IID_nsIDOMHTMLAnchorElement, (void**)&ret->nsanchor);
813  assert(nsres == NS_OK);
814 
815  *elem = &ret->element;
816  return S_OK;
817 }
static const IHTMLAnchorElementVtbl HTMLAnchorElementVtbl
Definition: htmlanchor.c:632
#define assert(x)
Definition: debug.h:53
static dispex_static_data_t HTMLAnchorElement_dispex
Definition: htmlanchor.c:791
#define NS_OK
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
static size_t elem
Definition: string.c:68
int ret
void HTMLElement_Init(HTMLElement *This, HTMLDocumentNode *doc, nsIDOMHTMLElement *nselem, dispex_static_data_t *dispex_data)
Definition: htmlelem.c:4008
#define S_OK
Definition: intsafe.h:59
HRESULT nsresult
Definition: nsiface.idl:39
static const NodeImplVtbl HTMLAnchorElementImplVtbl
Definition: htmlanchor.c:764

◆ HTMLAnchorElement_focus()

static HRESULT WINAPI HTMLAnchorElement_focus ( IHTMLAnchorElement *  iface)
static

Definition at line 614 of file htmlanchor.c.

615 {
617 
618  TRACE("(%p)\n", This);
619 
620  return IHTMLElement2_focus(&This->element.IHTMLElement2_iface);
621 }
#define TRACE(s)
Definition: solgame.cpp:4
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_get_accessKey()

static HRESULT WINAPI HTMLAnchorElement_get_accessKey ( IHTMLAnchorElement *  iface,
BSTR p 
)
static

Definition at line 566 of file htmlanchor.c.

567 {
569 
570  TRACE("(%p)->(%p)\n", This, p);
571 
572  return IHTMLElement2_get_accessKey(&This->element.IHTMLElement2_iface, p);
573 }
#define TRACE(s)
Definition: solgame.cpp:4
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_get_hash()

static HRESULT WINAPI HTMLAnchorElement_get_hash ( IHTMLAnchorElement *  iface,
BSTR p 
)
static

Definition at line 508 of file htmlanchor.c.

509 {
511  nsAString hash_str;
512  nsresult nsres;
513 
514  TRACE("(%p)->(%p)\n", This, p);
515 
516  nsAString_Init(&hash_str, NULL);
517  nsres = nsIDOMHTMLAnchorElement_GetHash(This->nsanchor, &hash_str);
518  return return_nsstr(nsres, &hash_str, p);
519 }
smooth NULL
Definition: ftsmooth.c:416
HRESULT return_nsstr(nsresult, nsAString *, BSTR *) DECLSPEC_HIDDEN
Definition: nsembed.c:841
#define TRACE(s)
Definition: solgame.cpp:4
BOOL nsAString_Init(nsAString *, const PRUnichar *) DECLSPEC_HIDDEN
Definition: nsembed.c:817
HRESULT nsresult
Definition: nsiface.idl:39
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_get_host()

static HRESULT WINAPI HTMLAnchorElement_get_host ( IHTMLAnchorElement *  iface,
BSTR p 
)
static

Definition at line 402 of file htmlanchor.c.

403 {
405  FIXME("(%p)->(%p)\n", This, p);
406  return E_NOTIMPL;
407 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_get_hostname()

static HRESULT WINAPI HTMLAnchorElement_get_hostname ( IHTMLAnchorElement *  iface,
BSTR p 
)
static

Definition at line 416 of file htmlanchor.c.

417 {
419  nsAString hostname_str;
420  nsresult nsres;
421 
422  TRACE("(%p)->(%p)\n", This, p);
423 
424  nsAString_Init(&hostname_str, NULL);
425  nsres = nsIDOMHTMLAnchorElement_GetHostname(This->nsanchor, &hostname_str);
426  return return_nsstr(nsres, &hostname_str, p);
427 }
smooth NULL
Definition: ftsmooth.c:416
HRESULT return_nsstr(nsresult, nsAString *, BSTR *) DECLSPEC_HIDDEN
Definition: nsembed.c:841
#define TRACE(s)
Definition: solgame.cpp:4
BOOL nsAString_Init(nsAString *, const PRUnichar *) DECLSPEC_HIDDEN
Definition: nsembed.c:817
HRESULT nsresult
Definition: nsiface.idl:39
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_get_href()

static HRESULT WINAPI HTMLAnchorElement_get_href ( IHTMLAnchorElement *  iface,
BSTR p 
)
static

Definition at line 236 of file htmlanchor.c.

237 {
239  nsAString href_str;
240  nsresult nsres;
241  HRESULT hres;
242 
243  TRACE("(%p)->(%p)\n", This, p);
244 
245  nsAString_Init(&href_str, NULL);
246  nsres = nsIDOMHTMLAnchorElement_GetHref(This->nsanchor, &href_str);
247  if(NS_SUCCEEDED(nsres)) {
248  const PRUnichar *href;
249 
250  nsAString_GetData(&href_str, &href);
251  hres = nsuri_to_url(href, TRUE, p);
252  }else {
253  ERR("GetHref failed: %08x\n", nsres);
254  hres = E_FAIL;
255  }
256 
257  nsAString_Finish(&href_str);
258  return hres;
259 }
#define TRUE
Definition: types.h:120
#define E_FAIL
Definition: ddrawi.h:102
HRESULT nsuri_to_url(LPCWSTR, BOOL, BSTR *) DECLSPEC_HIDDEN
Definition: nsio.c:175
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
#define NS_SUCCEEDED(res)
UINT32 nsAString_GetData(const nsAString *, const PRUnichar **) DECLSPEC_HIDDEN
Definition: nsembed.c:831
#define ERR(fmt,...)
Definition: debug.h:109
BOOL nsAString_Init(nsAString *, const PRUnichar *) DECLSPEC_HIDDEN
Definition: nsembed.c:817
void nsAString_Finish(nsAString *) DECLSPEC_HIDDEN
Definition: nsembed.c:836
HRESULT nsresult
Definition: nsiface.idl:39
WCHAR PRUnichar
Definition: nsiface.idl:48
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_get_Methods()

static HRESULT WINAPI HTMLAnchorElement_get_Methods ( IHTMLAnchorElement *  iface,
BSTR p 
)
static

Definition at line 357 of file htmlanchor.c.

358 {
360  FIXME("(%p)->(%p)\n", This, p);
361  return E_NOTIMPL;
362 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_get_mimeType()

static HRESULT WINAPI HTMLAnchorElement_get_mimeType ( IHTMLAnchorElement *  iface,
BSTR p 
)
static

Definition at line 582 of file htmlanchor.c.

583 {
585  FIXME("(%p)->(%p)\n", This, p);
586  return E_NOTIMPL;
587 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_get_name()

static HRESULT WINAPI HTMLAnchorElement_get_name ( IHTMLAnchorElement *  iface,
BSTR p 
)
static

Definition at line 381 of file htmlanchor.c.

382 {
384  nsAString name_str;
385  nsresult nsres;
386 
387  TRACE("(%p)->(%p)\n", This, p);
388 
389  nsAString_Init(&name_str, NULL);
390  nsres = nsIDOMHTMLAnchorElement_GetName(This->nsanchor, &name_str);
391 
392  return return_nsstr(nsres, &name_str, p);
393 }
smooth NULL
Definition: ftsmooth.c:416
HRESULT return_nsstr(nsresult, nsAString *, BSTR *) DECLSPEC_HIDDEN
Definition: nsembed.c:841
#define TRACE(s)
Definition: solgame.cpp:4
BOOL nsAString_Init(nsAString *, const PRUnichar *) DECLSPEC_HIDDEN
Definition: nsembed.c:817
HRESULT nsresult
Definition: nsiface.idl:39
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_get_nameProp()

static HRESULT WINAPI HTMLAnchorElement_get_nameProp ( IHTMLAnchorElement *  iface,
BSTR p 
)
static

Definition at line 589 of file htmlanchor.c.

590 {
592  FIXME("(%p)->(%p)\n", This, p);
593  return E_NOTIMPL;
594 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_get_onblur()

static HRESULT WINAPI HTMLAnchorElement_get_onblur ( IHTMLAnchorElement *  iface,
VARIANT p 
)
static

Definition at line 530 of file htmlanchor.c.

531 {
533 
534  TRACE("(%p)->(%p)\n", This, p);
535 
536  return IHTMLElement2_get_onblur(&This->element.IHTMLElement2_iface, p);
537 }
#define TRACE(s)
Definition: solgame.cpp:4
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_get_onfocus()

static HRESULT WINAPI HTMLAnchorElement_get_onfocus ( IHTMLAnchorElement *  iface,
VARIANT p 
)
static

Definition at line 548 of file htmlanchor.c.

549 {
551 
552  TRACE("(%p)->(%p)\n", This, p);
553 
554  return IHTMLElement2_get_onfocus(&This->element.IHTMLElement2_iface, p);
555 }
#define TRACE(s)
Definition: solgame.cpp:4
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_get_pathname()

static HRESULT WINAPI HTMLAnchorElement_get_pathname ( IHTMLAnchorElement *  iface,
BSTR p 
)
static

Definition at line 436 of file htmlanchor.c.

437 {
439  FIXME("(%p)->(%p)\n", This, p);
440  return E_NOTIMPL;
441 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_get_port()

static HRESULT WINAPI HTMLAnchorElement_get_port ( IHTMLAnchorElement *  iface,
BSTR p 
)
static

Definition at line 450 of file htmlanchor.c.

451 {
453  FIXME("(%p)->(%p)\n", This, p);
454  return E_NOTIMPL;
455 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_get_protocol()

static HRESULT WINAPI HTMLAnchorElement_get_protocol ( IHTMLAnchorElement *  iface,
BSTR p 
)
static

Definition at line 464 of file htmlanchor.c.

465 {
467  FIXME("(%p)->(%p)\n", This, p);
468  return E_NOTIMPL;
469 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_get_protocolLong()

static HRESULT WINAPI HTMLAnchorElement_get_protocolLong ( IHTMLAnchorElement *  iface,
BSTR p 
)
static

Definition at line 575 of file htmlanchor.c.

576 {
578  FIXME("(%p)->(%p)\n", This, p);
579  return E_NOTIMPL;
580 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_get_rel()

static HRESULT WINAPI HTMLAnchorElement_get_rel ( IHTMLAnchorElement *  iface,
BSTR p 
)
static

Definition at line 309 of file htmlanchor.c.

310 {
312  nsAString nsstr;
313  nsresult nsres;
314 
315  TRACE("(%p)->(%p)\n", This, p);
316 
317  nsAString_Init(&nsstr, NULL);
318  nsres = nsIDOMHTMLAnchorElement_GetRel(This->nsanchor, &nsstr);
319  return return_nsstr(nsres, &nsstr, p);
320 }
smooth NULL
Definition: ftsmooth.c:416
HRESULT return_nsstr(nsresult, nsAString *, BSTR *) DECLSPEC_HIDDEN
Definition: nsembed.c:841
#define TRACE(s)
Definition: solgame.cpp:4
BOOL nsAString_Init(nsAString *, const PRUnichar *) DECLSPEC_HIDDEN
Definition: nsembed.c:817
HRESULT nsresult
Definition: nsiface.idl:39
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_get_rev()

static HRESULT WINAPI HTMLAnchorElement_get_rev ( IHTMLAnchorElement *  iface,
BSTR p 
)
static

Definition at line 329 of file htmlanchor.c.

330 {
332  FIXME("(%p)->(%p)\n", This, p);
333  return E_NOTIMPL;
334 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_get_search()

static HRESULT WINAPI HTMLAnchorElement_get_search ( IHTMLAnchorElement *  iface,
BSTR p 
)
static

Definition at line 488 of file htmlanchor.c.

489 {
491  nsAString search_str;
492  nsresult nsres;
493 
494  TRACE("(%p)->(%p)\n", This, p);
495 
496  nsAString_Init(&search_str, NULL);
497  nsres = nsIDOMHTMLAnchorElement_GetSearch(This->nsanchor, &search_str);
498  return return_nsstr(nsres, &search_str, p);
499 }
smooth NULL
Definition: ftsmooth.c:416
HRESULT return_nsstr(nsresult, nsAString *, BSTR *) DECLSPEC_HIDDEN
Definition: nsembed.c:841
#define TRACE(s)
Definition: solgame.cpp:4
BOOL nsAString_Init(nsAString *, const PRUnichar *) DECLSPEC_HIDDEN
Definition: nsembed.c:817
HRESULT nsresult
Definition: nsiface.idl:39
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_get_tabIndex()

static HRESULT WINAPI HTMLAnchorElement_get_tabIndex ( IHTMLAnchorElement *  iface,
short p 
)
static

Definition at line 605 of file htmlanchor.c.

606 {
608 
609  TRACE("(%p)->(%p)\n", This, p);
610 
611  return IHTMLElement2_get_tabIndex(&This->element.IHTMLElement2_iface, p);
612 }
#define TRACE(s)
Definition: solgame.cpp:4
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_get_target()

static HRESULT WINAPI HTMLAnchorElement_get_target ( IHTMLAnchorElement *  iface,
BSTR p 
)
static

Definition at line 278 of file htmlanchor.c.

279 {
281  nsAString target_str;
282  nsresult nsres;
283 
284  TRACE("(%p)->(%p)\n", This, p);
285 
286  nsAString_Init(&target_str, NULL);
287  nsres = nsIDOMHTMLAnchorElement_GetTarget(This->nsanchor, &target_str);
288 
289  return return_nsstr(nsres, &target_str, p);
290 }
smooth NULL
Definition: ftsmooth.c:416
HRESULT return_nsstr(nsresult, nsAString *, BSTR *) DECLSPEC_HIDDEN
Definition: nsembed.c:841
#define TRACE(s)
Definition: solgame.cpp:4
BOOL nsAString_Init(nsAString *, const PRUnichar *) DECLSPEC_HIDDEN
Definition: nsembed.c:817
HRESULT nsresult
Definition: nsiface.idl:39
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_get_urn()

static HRESULT WINAPI HTMLAnchorElement_get_urn ( IHTMLAnchorElement *  iface,
BSTR p 
)
static

Definition at line 343 of file htmlanchor.c.

344 {
346  FIXME("(%p)->(%p)\n", This, p);
347  return E_NOTIMPL;
348 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160
GLfloat GLfloat p
Definition: glext.h:8902

◆ HTMLAnchorElement_GetIDsOfNames()

static HRESULT WINAPI HTMLAnchorElement_GetIDsOfNames ( IHTMLAnchorElement *  iface,
REFIID  riid,
LPOLESTR rgszNames,
UINT  cNames,
LCID  lcid,
DISPID rgDispId 
)
static

Definition at line 201 of file htmlanchor.c.

204 {
206  return IDispatchEx_GetIDsOfNames(&This->element.node.event_target.dispex.IDispatchEx_iface, riid, rgszNames,
207  cNames, lcid, rgDispId);
208 }
REFIID riid
Definition: precomp.h:44
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_GetTypeInfo()

static HRESULT WINAPI HTMLAnchorElement_GetTypeInfo ( IHTMLAnchorElement *  iface,
UINT  iTInfo,
LCID  lcid,
ITypeInfo **  ppTInfo 
)
static

Definition at line 193 of file htmlanchor.c.

195 {
197  return IDispatchEx_GetTypeInfo(&This->element.node.event_target.dispex.IDispatchEx_iface, iTInfo, lcid,
198  ppTInfo);
199 }
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_GetTypeInfoCount()

static HRESULT WINAPI HTMLAnchorElement_GetTypeInfoCount ( IHTMLAnchorElement *  iface,
UINT pctinfo 
)
static

Definition at line 187 of file htmlanchor.c.

188 {
190  return IDispatchEx_GetTypeInfoCount(&This->element.node.event_target.dispex.IDispatchEx_iface, pctinfo);
191 }
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_handle_event()

static HRESULT HTMLAnchorElement_handle_event ( HTMLDOMNode iface,
DWORD  eid,
nsIDOMEvent event,
BOOL prevent_default 
)
static

Definition at line 713 of file htmlanchor.c.

714 {
716  nsAString href_str, target_str;
717  nsresult nsres;
718 
719  if(eid == EVENTID_CLICK) {
720  nsAString_Init(&href_str, NULL);
721  nsres = nsIDOMHTMLAnchorElement_GetHref(This->nsanchor, &href_str);
722  if (NS_FAILED(nsres)) {
723  ERR("Could not get anchor href: %08x\n", nsres);
724  goto fallback;
725  }
726 
727  nsAString_Init(&target_str, NULL);
728  nsres = nsIDOMHTMLAnchorElement_GetTarget(This->nsanchor, &target_str);
729  if (NS_FAILED(nsres)) {
730  ERR("Could not get anchor target: %08x\n", nsres);
731  goto fallback;
732  }
733 
734  return handle_link_click_event(&This->element, &href_str, &target_str, event, prevent_default);
735 
736 fallback:
737  nsAString_Finish(&href_str);
738  nsAString_Finish(&target_str);
739  }
740 
741  return HTMLElement_handle_event(&This->element.node, eid, event, prevent_default);
742 }
HRESULT HTMLElement_handle_event(HTMLDOMNode *iface, DWORD eid, nsIDOMEvent *event, BOOL *prevent_default)
Definition: htmlelem.c:3815
smooth NULL
Definition: ftsmooth.c:416
#define NS_FAILED(res)
static HTMLAnchorElement * impl_from_HTMLDOMNode(HTMLDOMNode *iface)
Definition: htmlanchor.c:683
struct _cl_event * event
Definition: glext.h:7739
#define ERR(fmt,...)
Definition: debug.h:109
HRESULT handle_link_click_event(HTMLElement *element, nsAString *href_str, nsAString *target_str, nsIDOMEvent *event, BOOL *prevent_default)
Definition: htmlanchor.c:123
BOOL nsAString_Init(nsAString *, const PRUnichar *) DECLSPEC_HIDDEN
Definition: nsembed.c:817
void nsAString_Finish(nsAString *) DECLSPEC_HIDDEN
Definition: nsembed.c:836
HRESULT nsresult
Definition: nsiface.idl:39

◆ HTMLAnchorElement_Invoke()

static HRESULT WINAPI HTMLAnchorElement_Invoke ( IHTMLAnchorElement *  iface,
DISPID  dispIdMember,
REFIID  riid,
LCID  lcid,
WORD  wFlags,
DISPPARAMS *  pDispParams,
VARIANT pVarResult,
EXCEPINFO *  pExcepInfo,
UINT puArgErr 
)
static

Definition at line 210 of file htmlanchor.c.

213 {
215  return IDispatchEx_Invoke(&This->element.node.event_target.dispex.IDispatchEx_iface, dispIdMember, riid,
216  lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
217 }
REFIID riid
Definition: precomp.h:44
_In_ DWORD _Out_ _In_ WORD wFlags
Definition: wincon.h:519
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_put_accessKey()

static HRESULT WINAPI HTMLAnchorElement_put_accessKey ( IHTMLAnchorElement *  iface,
BSTR  v 
)
static

Definition at line 557 of file htmlanchor.c.

558 {
560 
561  TRACE("(%p)->(%s)\n", This, debugstr_w(v));
562 
563  return IHTMLElement2_put_accessKey(&This->element.IHTMLElement2_iface, v);
564 }
#define debugstr_w
Definition: kernel32.h:32
#define TRACE(s)
Definition: solgame.cpp:4
const GLdouble * v
Definition: gl.h:2040
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_put_hash()

static HRESULT WINAPI HTMLAnchorElement_put_hash ( IHTMLAnchorElement *  iface,
BSTR  v 
)
static

Definition at line 501 of file htmlanchor.c.

502 {
504  FIXME("(%p)->(%s)\n", This, debugstr_w(v));
505  return E_NOTIMPL;
506 }
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
const GLdouble * v
Definition: gl.h:2040
#define E_NOTIMPL
Definition: ddrawi.h:99
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_put_host()

static HRESULT WINAPI HTMLAnchorElement_put_host ( IHTMLAnchorElement *  iface,
BSTR  v 
)
static

Definition at line 395 of file htmlanchor.c.

396 {
398  FIXME("(%p)->(%s)\n", This, debugstr_w(v));
399  return E_NOTIMPL;
400 }
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
const GLdouble * v
Definition: gl.h:2040
#define E_NOTIMPL
Definition: ddrawi.h:99
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_put_hostname()

static HRESULT WINAPI HTMLAnchorElement_put_hostname ( IHTMLAnchorElement *  iface,
BSTR  v 
)
static

Definition at line 409 of file htmlanchor.c.

410 {
412  FIXME("(%p)->(%s)\n", This, debugstr_w(v));
413  return E_NOTIMPL;
414 }
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
const GLdouble * v
Definition: gl.h:2040
#define E_NOTIMPL
Definition: ddrawi.h:99
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_put_href()

static HRESULT WINAPI HTMLAnchorElement_put_href ( IHTMLAnchorElement *  iface,
BSTR  v 
)
static

Definition at line 219 of file htmlanchor.c.

220 {
222  nsAString nsstr;
223  nsresult nsres;
224 
225  TRACE("(%p)->(%s)\n", This, debugstr_w(v));
226 
227  nsAString_InitDepend(&nsstr, v);
228  nsres = nsIDOMHTMLAnchorElement_SetHref(This->nsanchor, &nsstr);
229  nsAString_Finish(&nsstr);
230  if(NS_FAILED(nsres))
231  return E_FAIL;
232 
233  return S_OK;
234 }
#define E_FAIL
Definition: ddrawi.h:102
#define debugstr_w
Definition: kernel32.h:32
#define NS_FAILED(res)
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:59
const GLdouble * v
Definition: gl.h:2040
void nsAString_InitDepend(nsAString *, const PRUnichar *) DECLSPEC_HIDDEN
Definition: nsembed.c:826
void nsAString_Finish(nsAString *) DECLSPEC_HIDDEN
Definition: nsembed.c:836
HRESULT nsresult
Definition: nsiface.idl:39
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_put_Methods()

static HRESULT WINAPI HTMLAnchorElement_put_Methods ( IHTMLAnchorElement *  iface,
BSTR  v 
)
static

Definition at line 350 of file htmlanchor.c.

351 {
353  FIXME("(%p)->(%s)\n", This, debugstr_w(v));
354  return E_NOTIMPL;
355 }
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
const GLdouble * v
Definition: gl.h:2040
#define E_NOTIMPL
Definition: ddrawi.h:99
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_put_name()

static HRESULT WINAPI HTMLAnchorElement_put_name ( IHTMLAnchorElement *  iface,
BSTR  v 
)
static

Definition at line 364 of file htmlanchor.c.

365 {
367  nsAString nsstr;
368  nsresult nsres;
369 
370  TRACE("(%p)->(%s)\n", This, debugstr_w(v));
371 
372  nsAString_InitDepend(&nsstr, v);
373  nsres = nsIDOMHTMLAnchorElement_SetName(This->nsanchor, &nsstr);
374  nsAString_Finish(&nsstr);
375  if(NS_FAILED(nsres))
376  return E_FAIL;
377 
378  return S_OK;
379 }
#define E_FAIL
Definition: ddrawi.h:102
#define debugstr_w
Definition: kernel32.h:32
#define NS_FAILED(res)
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:59
const GLdouble * v
Definition: gl.h:2040
void nsAString_InitDepend(nsAString *, const PRUnichar *) DECLSPEC_HIDDEN
Definition: nsembed.c:826
void nsAString_Finish(nsAString *) DECLSPEC_HIDDEN
Definition: nsembed.c:836
HRESULT nsresult
Definition: nsiface.idl:39
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_put_onblur()

static HRESULT WINAPI HTMLAnchorElement_put_onblur ( IHTMLAnchorElement *  iface,
VARIANT  v 
)
static

Definition at line 521 of file htmlanchor.c.

522 {
524 
525  TRACE("(%p)->()\n", This);
526 
527  return IHTMLElement2_put_onblur(&This->element.IHTMLElement2_iface, v);
528 }
#define TRACE(s)
Definition: solgame.cpp:4
const GLdouble * v
Definition: gl.h:2040
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_put_onfocus()

static HRESULT WINAPI HTMLAnchorElement_put_onfocus ( IHTMLAnchorElement *  iface,
VARIANT  v 
)
static

Definition at line 539 of file htmlanchor.c.

540 {
542 
543  TRACE("(%p)->()\n", This);
544 
545  return IHTMLElement2_put_onfocus(&This->element.IHTMLElement2_iface, v);
546 }
#define TRACE(s)
Definition: solgame.cpp:4
const GLdouble * v
Definition: gl.h:2040
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_put_pathname()

static HRESULT WINAPI HTMLAnchorElement_put_pathname ( IHTMLAnchorElement *  iface,
BSTR  v 
)
static

Definition at line 429 of file htmlanchor.c.

430 {
432  FIXME("(%p)->(%s)\n", This, debugstr_w(v));
433  return E_NOTIMPL;
434 }
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
const GLdouble * v
Definition: gl.h:2040
#define E_NOTIMPL
Definition: ddrawi.h:99
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_put_port()

static HRESULT WINAPI HTMLAnchorElement_put_port ( IHTMLAnchorElement *  iface,
BSTR  v 
)
static

Definition at line 443 of file htmlanchor.c.

444 {
446  FIXME("(%p)->(%s)\n", This, debugstr_w(v));
447  return E_NOTIMPL;
448 }
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
const GLdouble * v
Definition: gl.h:2040
#define E_NOTIMPL
Definition: ddrawi.h:99
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_put_protocol()

static HRESULT WINAPI HTMLAnchorElement_put_protocol ( IHTMLAnchorElement *  iface,
BSTR  v 
)
static

Definition at line 457 of file htmlanchor.c.

458 {
460  FIXME("(%p)->(%s)\n", This, debugstr_w(v));
461  return E_NOTIMPL;
462 }
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
const GLdouble * v
Definition: gl.h:2040
#define E_NOTIMPL
Definition: ddrawi.h:99
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_put_rel()

static HRESULT WINAPI HTMLAnchorElement_put_rel ( IHTMLAnchorElement *  iface,
BSTR  v 
)
static

Definition at line 292 of file htmlanchor.c.

293 {
295  nsAString nsstr;
296  nsresult nsres;
297 
298  TRACE("(%p)->(%s)\n", This, debugstr_w(v));
299 
300  nsAString_InitDepend(&nsstr, v);
301  nsres = nsIDOMHTMLAnchorElement_SetRel(This->nsanchor, &nsstr);
302  nsAString_Finish(&nsstr);
303  if(NS_FAILED(nsres))
304  return E_FAIL;
305 
306  return S_OK;
307 }
#define E_FAIL
Definition: ddrawi.h:102
#define debugstr_w
Definition: kernel32.h:32
#define NS_FAILED(res)
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:59
const GLdouble * v
Definition: gl.h:2040
void nsAString_InitDepend(nsAString *, const PRUnichar *) DECLSPEC_HIDDEN
Definition: nsembed.c:826
void nsAString_Finish(nsAString *) DECLSPEC_HIDDEN
Definition: nsembed.c:836
HRESULT nsresult
Definition: nsiface.idl:39
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_put_rev()

static HRESULT WINAPI HTMLAnchorElement_put_rev ( IHTMLAnchorElement *  iface,
BSTR  v 
)
static

Definition at line 322 of file htmlanchor.c.

323 {
325  FIXME("(%p)->(%s)\n", This, debugstr_w(v));
326  return E_NOTIMPL;
327 }
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
const GLdouble * v
Definition: gl.h:2040
#define E_NOTIMPL
Definition: ddrawi.h:99
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_put_search()

static HRESULT WINAPI HTMLAnchorElement_put_search ( IHTMLAnchorElement *  iface,
BSTR  v 
)
static

Definition at line 471 of file htmlanchor.c.

472 {
474  nsAString nsstr;
475  nsresult nsres;
476 
477  TRACE("(%p)->(%s)\n", This, debugstr_w(v));
478 
479  nsAString_InitDepend(&nsstr, v);
480  nsres = nsIDOMHTMLAnchorElement_SetSearch(This->nsanchor, &nsstr);
481  nsAString_Finish(&nsstr);
482  if(NS_FAILED(nsres))
483  return E_FAIL;
484 
485  return S_OK;
486 }
#define E_FAIL
Definition: ddrawi.h:102
#define debugstr_w
Definition: kernel32.h:32
#define NS_FAILED(res)
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:59
const GLdouble * v
Definition: gl.h:2040
void nsAString_InitDepend(nsAString *, const PRUnichar *) DECLSPEC_HIDDEN
Definition: nsembed.c:826
void nsAString_Finish(nsAString *) DECLSPEC_HIDDEN
Definition: nsembed.c:836
HRESULT nsresult
Definition: nsiface.idl:39
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_put_tabIndex()

static HRESULT WINAPI HTMLAnchorElement_put_tabIndex ( IHTMLAnchorElement *  iface,
short  v 
)
static

Definition at line 596 of file htmlanchor.c.

597 {
599 
600  TRACE("(%p)->()\n", This);
601 
602  return IHTMLElement2_put_tabIndex(&This->element.IHTMLElement2_iface, v);
603 }
#define TRACE(s)
Definition: solgame.cpp:4
const GLdouble * v
Definition: gl.h:2040
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_put_target()

static HRESULT WINAPI HTMLAnchorElement_put_target ( IHTMLAnchorElement *  iface,
BSTR  v 
)
static

Definition at line 261 of file htmlanchor.c.

262 {
264  nsAString nsstr;
265  nsresult nsres;
266 
267  TRACE("(%p)->(%s)\n", This, debugstr_w(v));
268 
269  nsAString_InitDepend(&nsstr, v);
270  nsres = nsIDOMHTMLAnchorElement_SetTarget(This->nsanchor, &nsstr);
271  nsAString_Finish(&nsstr);
272  if(NS_FAILED(nsres))
273  return E_FAIL;
274 
275  return S_OK;
276 }
#define E_FAIL
Definition: ddrawi.h:102
#define debugstr_w
Definition: kernel32.h:32
#define NS_FAILED(res)
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:59
const GLdouble * v
Definition: gl.h:2040
void nsAString_InitDepend(nsAString *, const PRUnichar *) DECLSPEC_HIDDEN
Definition: nsembed.c:826
void nsAString_Finish(nsAString *) DECLSPEC_HIDDEN
Definition: nsembed.c:836
HRESULT nsresult
Definition: nsiface.idl:39
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_put_urn()

static HRESULT WINAPI HTMLAnchorElement_put_urn ( IHTMLAnchorElement *  iface,
BSTR  v 
)
static

Definition at line 336 of file htmlanchor.c.

337 {
339  FIXME("(%p)->(%s)\n", This, debugstr_w(v));
340  return E_NOTIMPL;
341 }
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
const GLdouble * v
Definition: gl.h:2040
#define E_NOTIMPL
Definition: ddrawi.h:99
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_QI()

static HRESULT HTMLAnchorElement_QI ( HTMLDOMNode iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 688 of file htmlanchor.c.

689 {
691 
692  *ppv = NULL;
693 
694  if(IsEqualGUID(&IID_IUnknown, riid)) {
695  TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
696  *ppv = &This->IHTMLAnchorElement_iface;
697  }else if(IsEqualGUID(&IID_IDispatch, riid)) {
698  TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
699  *ppv = &This->IHTMLAnchorElement_iface;
700  }else if(IsEqualGUID(&IID_IHTMLAnchorElement, riid)) {
701  TRACE("(%p)->(IID_IHTMLAnchorElement %p)\n", This, ppv);
702  *ppv = &This->IHTMLAnchorElement_iface;
703  }
704 
705  if(*ppv) {
706  IUnknown_AddRef((IUnknown*)*ppv);
707  return S_OK;
708  }
709 
710  return HTMLElement_QI(&This->element.node, riid, ppv);
711 }
REFIID riid
Definition: precomp.h:44
REFIID LPVOID * ppv
Definition: atlbase.h:39
HRESULT HTMLElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv)
Definition: htmlelem.c:3738
smooth NULL
Definition: ftsmooth.c:416
static HTMLAnchorElement * impl_from_HTMLDOMNode(HTMLDOMNode *iface)
Definition: htmlanchor.c:683
#define TRACE(s)
Definition: solgame.cpp:4
const GUID IID_IUnknown
const GUID IID_IDispatch
#define S_OK
Definition: intsafe.h:59
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4021

◆ HTMLAnchorElement_QueryInterface()

static HRESULT WINAPI HTMLAnchorElement_QueryInterface ( IHTMLAnchorElement *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 165 of file htmlanchor.c.

167 {
169 
170  return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
171 }
REFIID riid
Definition: precomp.h:44
REFIID LPVOID * ppv
Definition: atlbase.h:39
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_Release()

static ULONG WINAPI HTMLAnchorElement_Release ( IHTMLAnchorElement *  iface)
static

Definition at line 180 of file htmlanchor.c.

181 {
183 
184  return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
185 }
static HTMLAnchorElement * impl_from_IHTMLAnchorElement(IHTMLAnchorElement *iface)
Definition: htmlanchor.c:160

◆ HTMLAnchorElement_traverse()

static void HTMLAnchorElement_traverse ( HTMLDOMNode iface,
nsCycleCollectionTraversalCallback cb 
)
static

Definition at line 744 of file htmlanchor.c.

745 {
747 
748  if(This->nsanchor)
749  note_cc_edge((nsISupports*)This->nsanchor, "This->nsanchor", cb);
750 }
static HTMLAnchorElement * impl_from_HTMLDOMNode(HTMLDOMNode *iface)
Definition: htmlanchor.c:683
static DWORD cb
Definition: integrity.c:41

◆ HTMLAnchorElement_unlink()

static void HTMLAnchorElement_unlink ( HTMLDOMNode iface)
static

Definition at line 752 of file htmlanchor.c.

753 {
755 
756  if(This->nsanchor) {
757  nsIDOMHTMLAnchorElement *nsanchor = This->nsanchor;
758 
759  This->nsanchor = NULL;
760  nsIDOMHTMLAnchorElement_Release(nsanchor);
761  }
762 }
smooth NULL
Definition: ftsmooth.c:416
static HTMLAnchorElement * impl_from_HTMLDOMNode(HTMLDOMNode *iface)
Definition: htmlanchor.c:683

◆ impl_from_HTMLDOMNode()

static HTMLAnchorElement* impl_from_HTMLDOMNode ( HTMLDOMNode iface)
inlinestatic

Definition at line 683 of file htmlanchor.c.

684 {
685  return CONTAINING_RECORD(iface, HTMLAnchorElement, element.node);
686 }
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)
Definition: Messaging.c:560

Referenced by HTMLAnchorElement_handle_event(), HTMLAnchorElement_QI(), HTMLAnchorElement_traverse(), and HTMLAnchorElement_unlink().

◆ impl_from_IHTMLAnchorElement()

static HTMLAnchorElement* impl_from_IHTMLAnchorElement ( IHTMLAnchorElement *  iface)
inlinestatic

Definition at line 160 of file htmlanchor.c.

161 {
162  return CONTAINING_RECORD(iface, HTMLAnchorElement, IHTMLAnchorElement_iface);
163 }
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)
Definition: Messaging.c:560

Referenced by HTMLAnchorElement_AddRef(), HTMLAnchorElement_blur(), HTMLAnchorElement_focus(), HTMLAnchorElement_get_accessKey(), HTMLAnchorElement_get_hash(), HTMLAnchorElement_get_host(), HTMLAnchorElement_get_hostname(), HTMLAnchorElement_get_href(), HTMLAnchorElement_get_Methods(), HTMLAnchorElement_get_mimeType(), HTMLAnchorElement_get_name(), HTMLAnchorElement_get_nameProp(), HTMLAnchorElement_get_onblur(), HTMLAnchorElement_get_onfocus(), HTMLAnchorElement_get_pathname(), HTMLAnchorElement_get_port(), HTMLAnchorElement_get_protocol(), HTMLAnchorElement_get_protocolLong(), HTMLAnchorElement_get_rel(), HTMLAnchorElement_get_rev(), HTMLAnchorElement_get_search(), HTMLAnchorElement_get_tabIndex(), HTMLAnchorElement_get_target(), HTMLAnchorElement_get_urn(), HTMLAnchorElement_GetIDsOfNames(), HTMLAnchorElement_GetTypeInfo(), HTMLAnchorElement_GetTypeInfoCount(), HTMLAnchorElement_Invoke(), HTMLAnchorElement_put_accessKey(), HTMLAnchorElement_put_hash(), HTMLAnchorElement_put_host(), HTMLAnchorElement_put_hostname(), HTMLAnchorElement_put_href(), HTMLAnchorElement_put_Methods(), HTMLAnchorElement_put_name(), HTMLAnchorElement_put_onblur(), HTMLAnchorElement_put_onfocus(), HTMLAnchorElement_put_pathname(), HTMLAnchorElement_put_port(), HTMLAnchorElement_put_protocol(), HTMLAnchorElement_put_rel(), HTMLAnchorElement_put_rev(), HTMLAnchorElement_put_search(), HTMLAnchorElement_put_tabIndex(), HTMLAnchorElement_put_target(), HTMLAnchorElement_put_urn(), HTMLAnchorElement_QueryInterface(), and HTMLAnchorElement_Release().

◆ navigate_href()

static HRESULT navigate_href ( HTMLElement element,
nsAString href_str,
nsAString target_str 
)
static

Definition at line 94 of file htmlanchor.c.

95 {
97  BOOL use_new_window;
98  const PRUnichar *href;
99  HRESULT hres;
100 
101  window = get_target_window(element->node.doc->basedoc.window, target_str, &use_new_window);
102  if(!window) {
103  if(use_new_window) {
104  const PRUnichar *target;
105  nsAString_GetData(target_str, &target);
106  return navigate_href_new_window(element, href_str, target);
107  }else {
108  return S_OK;
109  }
110  }
111 
112  nsAString_GetData(href_str, &href);
113  if(*href) {
114  hres = navigate_url(window, href, window->uri_nofrag, BINDING_NAVIGATED);
115  }else {
116  TRACE("empty href\n");
117  hres = S_OK;
118  }
119  IHTMLWindow2_Release(&window->base.IHTMLWindow2_iface);
120  return hres;
121 }
static HRESULT navigate_url(HHInfo *info, LPCWSTR surl)
Definition: help.c:189
HTMLOuterWindow * get_target_window(HTMLOuterWindow *window, nsAString *target_str, BOOL *use_new_window)
Definition: htmlanchor.c:45
unsigned int BOOL
Definition: ntddk_ex.h:94
static HRESULT navigate_href_new_window(HTMLElement *element, nsAString *href_str, const WCHAR *target)
Definition: htmlanchor.c:29
#define TRACE(s)
Definition: solgame.cpp:4
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
UINT32 nsAString_GetData(const nsAString *, const PRUnichar **) DECLSPEC_HIDDEN
Definition: nsembed.c:831
static IHTMLWindow2 * window
Definition: events.c:77
#define S_OK
Definition: intsafe.h:59
#define BINDING_NAVIGATED
Definition: binding.h:127
WCHAR PRUnichar
Definition: nsiface.idl:48
GLenum target
Definition: glext.h:7315

Referenced by handle_link_click_event().

◆ navigate_href_new_window()

static HRESULT navigate_href_new_window ( HTMLElement element,
nsAString href_str,
const WCHAR target 
)
static

Definition at line 29 of file htmlanchor.c.

30 {
31  const PRUnichar *href;
32  IUri *uri;
33  HRESULT hres;
34 
35  nsAString_GetData(href_str, &href);
36  hres = create_relative_uri(element->node.doc->basedoc.window, href, &uri);
37  if(FAILED(hres))
38  return hres;
39 
40  hres = navigate_new_window(element->node.doc->basedoc.window, uri, target, NULL, NULL);
41  IUri_Release(uri);
42  return hres;
43 }
const char * uri
Definition: sec_mgr.c:1594
smooth NULL
Definition: ftsmooth.c:416
HRESULT navigate_new_window(HTMLOuterWindow *, IUri *, const WCHAR *, request_data_t *, IHTMLWindow2 **) DECLSPEC_HIDDEN
Definition: navigate.c:2132
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:77
HRESULT create_relative_uri(HTMLOuterWindow *, const WCHAR *, IUri **) DECLSPEC_HIDDEN
Definition: persist.c:163
UINT32 nsAString_GetData(const nsAString *, const PRUnichar **) DECLSPEC_HIDDEN
Definition: nsembed.c:831
WCHAR PRUnichar
Definition: nsiface.idl:48
GLenum target
Definition: glext.h:7315

Referenced by handle_link_click_event(), and navigate_href().

Variable Documentation

◆ HTMLAnchorElement_dispex

dispex_static_data_t HTMLAnchorElement_dispex
static
Initial value:
= {
DispHTMLAnchorElement_tid,
}
static const tid_t HTMLAnchorElement_iface_tids[]
Definition: htmlanchor.c:784
smooth NULL
Definition: ftsmooth.c:416

Definition at line 791 of file htmlanchor.c.

Referenced by HTMLAnchorElement_Create().

◆ HTMLAnchorElement_iface_tids

const tid_t HTMLAnchorElement_iface_tids[]
static
Initial value:
= {
IHTMLAnchorElement_tid,
IHTMLUniqueName_tid,
0
}
#define HTMLELEMENT_TIDS

Definition at line 784 of file htmlanchor.c.

◆ HTMLAnchorElementImplVtbl

const NodeImplVtbl HTMLAnchorElementImplVtbl
static
Initial value:
= {
}
const cpc_entry_t HTMLElement_cpc[]
Definition: htmlelem.c:3847
static void HTMLAnchorElement_unlink(HTMLDOMNode *iface)
Definition: htmlanchor.c:752
HRESULT HTMLElement_get_attr_col(HTMLDOMNode *iface, HTMLAttributeCollection **ac)
Definition: htmlelem.c:4827
static HRESULT HTMLAnchorElement_handle_event(HTMLDOMNode *iface, DWORD eid, nsIDOMEvent *event, BOOL *prevent_default)
Definition: htmlanchor.c:713
smooth NULL
Definition: ftsmooth.c:416
void HTMLElement_destructor(HTMLDOMNode *iface)
Definition: htmlelem.c:3764
static HRESULT HTMLAnchorElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv)
Definition: htmlanchor.c:688
HRESULT HTMLElement_clone(HTMLDOMNode *iface, nsIDOMNode *nsnode, HTMLDOMNode **ret)
Definition: htmlelem.c:3793
static void HTMLAnchorElement_traverse(HTMLDOMNode *iface, nsCycleCollectionTraversalCallback *cb)
Definition: htmlanchor.c:744

Definition at line 764 of file htmlanchor.c.

Referenced by HTMLAnchorElement_Create().

◆ HTMLAnchorElementVtbl

const IHTMLAnchorElementVtbl HTMLAnchorElementVtbl
static

Definition at line 632 of file htmlanchor.c.

Referenced by HTMLAnchorElement_Create().