diff --git a/dlls/mshtml/htmlstylesheet.c b/dlls/mshtml/htmlstylesheet.c index 823e5f56b5a..30c25cee571 100644 --- a/dlls/mshtml/htmlstylesheet.c +++ b/dlls/mshtml/htmlstylesheet.c @@ -170,8 +170,38 @@ static HRESULT WINAPI HTMLStyleSheetsCollection_item(IHTMLStyleSheetsCollection VARIANT *pvarIndex, VARIANT *pvarResult) { HTMLStyleSheetsCollection *This = HTMLSTYLESHEETSCOL_THIS(iface); - FIXME("(%p)->(%p %p)\n", This, pvarIndex, pvarResult); - return E_NOTIMPL; + + TRACE("(%p)->(%p %p)\n", This, pvarIndex, pvarResult); + + switch(V_VT(pvarIndex)) { + case VT_I4: { + nsIDOMStyleSheet *nsstylesheet; + nsresult nsres; + + TRACE("index=%d\n", V_I4(pvarIndex)); + + nsres = nsIDOMStyleSheetList_Item(This->nslist, V_I4(pvarIndex), &nsstylesheet); + if(NS_FAILED(nsres) || !nsstylesheet) { + WARN("Item failed: %08x\n", nsres); + V_VT(pvarResult) = VT_EMPTY; + return E_INVALIDARG; + } + + V_VT(pvarResult) = VT_DISPATCH; + V_DISPATCH(pvarResult) = (IDispatch*)HTMLStyleSheet_Create(nsstylesheet); + + return S_OK; + } + + case VT_BSTR: + FIXME("id=%s not implemented\n", debugstr_w(V_BSTR(pvarResult))); + return E_NOTIMPL; + + default: + WARN("Invalid vt=%d\n", V_VT(pvarIndex)); + } + + return E_INVALIDARG; } #undef HTMLSTYLESHEETSCOL_THIS