diff --git a/dlls/mshtml/htmlinput.c b/dlls/mshtml/htmlinput.c
index 56b6ba9cb38..85be4817bc0 100644
--- a/dlls/mshtml/htmlinput.c
+++ b/dlls/mshtml/htmlinput.c
@@ -142,8 +142,26 @@ static HRESULT WINAPI HTMLInputElement_put_type(IHTMLInputElement *iface, BSTR v
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_put_value(IHTMLInputElement *iface, BSTR
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_put_name(IHTMLInputElement *iface, BSTR v
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_put_checked(IHTMLInputElement *iface, VAR
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)