Jacek Caban : mshtml: Added get_type, get_value,
get_name and get_checked
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Mar 8 06:08:33 CST 2006
Module: wine
Branch: refs/heads/master
Commit: 92ff0e5019bbf6d052c496fb34b64e2e6976c7dd
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=92ff0e5019bbf6d052c496fb34b64e2e6976c7dd
Author: Jacek Caban <jacek at codeweavers.com>
Date: Tue Mar 7 23:10:45 2006 +0100
mshtml: Added get_type, get_value, get_name and get_checked
implementation of IHTMLInputElement interface.
---
dlls/mshtml/htmlinput.c | 83 ++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 75 insertions(+), 8 deletions(-)
diff --git a/dlls/mshtml/htmlinput.c b/dlls/mshtml/htmlinput.c
index 56b6ba9..85be481 100644
--- a/dlls/mshtml/htmlinput.c
+++ b/dlls/mshtml/htmlinput.c
@@ -142,8 +142,26 @@ static HRESULT WINAPI HTMLInputElement_p
static HRESULT WINAPI HTMLInputElement_get_type(IHTMLInputElement *iface, BSTR *p)
{
HTMLInputElement *This = HTMLINPUT_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ nsAString type_str;
+ const PRUnichar *type;
+ nsresult nsres;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ nsAString_Init(&type_str, NULL);
+ nsres = nsIDOMHTMLInputElement_GetType(This->nsinput, &type_str);
+
+ if(NS_SUCCEEDED(nsres)) {
+ nsAString_GetData(&type_str, &type, NULL);
+ *p = SysAllocString(type);
+ }else {
+ ERR("GetType failed: %08lx\n", nsres);
+ }
+
+ nsAString_Finish(&type_str);
+
+ TRACE("type=%s\n", debugstr_w(*p));
+ return S_OK;
}
static HRESULT WINAPI HTMLInputElement_put_value(IHTMLInputElement *iface, BSTR v)
@@ -156,8 +174,26 @@ static HRESULT WINAPI HTMLInputElement_p
static HRESULT WINAPI HTMLInputElement_get_value(IHTMLInputElement *iface, BSTR *p)
{
HTMLInputElement *This = HTMLINPUT_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ nsAString value_str;
+ const PRUnichar *value;
+ nsresult nsres;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ nsAString_Init(&value_str, NULL);
+
+ nsres = nsIDOMHTMLInputElement_GetValue(This->nsinput, &value_str);
+ if(NS_SUCCEEDED(nsres)) {
+ nsAString_GetData(&value_str, &value, NULL);
+ *p = SysAllocString(value);
+ }else {
+ ERR("GetValue failed: %08lx\n", nsres);
+ }
+
+ nsAString_Finish(&value_str);
+
+ TRACE("value=%s\n", debugstr_w(value));
+ return S_OK;
}
static HRESULT WINAPI HTMLInputElement_put_name(IHTMLInputElement *iface, BSTR v)
@@ -170,8 +206,27 @@ static HRESULT WINAPI HTMLInputElement_p
static HRESULT WINAPI HTMLInputElement_get_name(IHTMLInputElement *iface, BSTR *p)
{
HTMLInputElement *This = HTMLINPUT_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ nsAString name_str;
+ const PRUnichar *name;
+ nsresult nsres;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ nsAString_Init(&name_str, NULL);
+
+ nsres = nsIDOMHTMLInputElement_GetName(This->nsinput, &name_str);
+ if(NS_SUCCEEDED(nsres)) {
+ nsAString_GetData(&name_str, &name, NULL);
+ *p = SysAllocString(name);
+ }else {
+ ERR("GetName failed: %08lx\n", nsres);
+ return E_FAIL;
+ }
+
+ nsAString_Finish(&name_str);
+
+ TRACE("name=%s\n", debugstr_w(*p));
+ return S_OK;
}
static HRESULT WINAPI HTMLInputElement_put_status(IHTMLInputElement *iface, VARIANT_BOOL v)
@@ -345,8 +400,20 @@ static HRESULT WINAPI HTMLInputElement_p
static HRESULT WINAPI HTMLInputElement_get_checked(IHTMLInputElement *iface, VARIANT_BOOL *p)
{
HTMLInputElement *This = HTMLINPUT_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ PRBool checked;
+ nsresult nsres;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ nsres = nsIDOMHTMLInputElement_GetChecked(This->nsinput, &checked);
+ if(NS_FAILED(nsres)) {
+ ERR("GetChecked failed: %08lx\n", nsres);
+ return E_FAIL;
+ }
+
+ *p = checked ? VARIANT_TRUE : VARIANT_FALSE;
+ TRACE("checked=%x\n", *p);
+ return S_OK;
}
static HRESULT WINAPI HTMLInputElement_put_border(IHTMLInputElement *iface, VARIANT v)
More information about the wine-cvs
mailing list