Commit d98225ff authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

mshtml: Added IHTMLObjectElement::put_width implementation.

parent 31201da6
...@@ -246,8 +246,33 @@ static HRESULT WINAPI HTMLObjectElement_get_form(IHTMLObjectElement *iface, IHTM ...@@ -246,8 +246,33 @@ static HRESULT WINAPI HTMLObjectElement_get_form(IHTMLObjectElement *iface, IHTM
static HRESULT WINAPI HTMLObjectElement_put_width(IHTMLObjectElement *iface, VARIANT v) static HRESULT WINAPI HTMLObjectElement_put_width(IHTMLObjectElement *iface, VARIANT v)
{ {
HTMLObjectElement *This = impl_from_IHTMLObjectElement(iface); HTMLObjectElement *This = impl_from_IHTMLObjectElement(iface);
FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); nsAString width_str;
return E_NOTIMPL; PRUnichar buf[12];
nsresult nsres;
TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
switch(V_VT(&v)) {
case VT_I4: {
static const WCHAR formatW[] = {'%','d',0};
sprintfW(buf, formatW, V_I4(&v));
break;
}
default:
FIXME("unimplemented for arg %s\n", debugstr_variant(&v));
return E_NOTIMPL;
}
nsAString_InitDepend(&width_str, buf);
nsres = nsIDOMHTMLObjectElement_SetWidth(This->nsobject, &width_str);
nsAString_Finish(&width_str);
if(NS_FAILED(nsres)) {
FIXME("SetWidth failed: %08x\n", nsres);
return E_FAIL;
}
notif_container_change(&This->plugin_container, DISPID_UNKNOWN);
return S_OK;
} }
static HRESULT WINAPI HTMLObjectElement_get_width(IHTMLObjectElement *iface, VARIANT *p) static HRESULT WINAPI HTMLObjectElement_get_width(IHTMLObjectElement *iface, VARIANT *p)
......
...@@ -352,6 +352,23 @@ static void notif_enabled(PluginHost *plugin_host) ...@@ -352,6 +352,23 @@ static void notif_enabled(PluginHost *plugin_host)
} }
} }
void notif_container_change(HTMLPluginContainer *plugin_container, DISPID dispid)
{
IOleControl *ole_control;
HRESULT hres;
if(!plugin_container->plugin_host || !plugin_container->plugin_host->plugin_unk)
return;
notif_enabled(plugin_container->plugin_host);
hres = IUnknown_QueryInterface(plugin_container->plugin_host->plugin_unk, &IID_IOleControl, (void**)&ole_control);
if(SUCCEEDED(hres)) {
IOleControl_OnAmbientPropertyChange(ole_control, dispid);
IOleControl_Release(ole_control);
}
}
HRESULT get_plugin_disp(HTMLPluginContainer *plugin_container, IDispatch **ret) HRESULT get_plugin_disp(HTMLPluginContainer *plugin_container, IDispatch **ret)
{ {
PluginHost *host; PluginHost *host;
......
...@@ -70,3 +70,4 @@ HRESULT create_ip_frame(IOleInPlaceFrame**) DECLSPEC_HIDDEN; ...@@ -70,3 +70,4 @@ HRESULT create_ip_frame(IOleInPlaceFrame**) DECLSPEC_HIDDEN;
HRESULT get_plugin_disp(HTMLPluginContainer*,IDispatch**) DECLSPEC_HIDDEN; HRESULT get_plugin_disp(HTMLPluginContainer*,IDispatch**) DECLSPEC_HIDDEN;
HRESULT get_plugin_dispid(HTMLPluginContainer*,WCHAR*,DISPID*) DECLSPEC_HIDDEN; HRESULT get_plugin_dispid(HTMLPluginContainer*,WCHAR*,DISPID*) DECLSPEC_HIDDEN;
HRESULT invoke_plugin_prop(HTMLPluginContainer*,DISPID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*) DECLSPEC_HIDDEN; HRESULT invoke_plugin_prop(HTMLPluginContainer*,DISPID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*) DECLSPEC_HIDDEN;
void notif_container_change(HTMLPluginContainer*,DISPID);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment