* Sync with Wine 1.7.27.
CORE-8540
svn path=/trunk/; revision=64458
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
+#pragma once
+
typedef struct nsWineURI nsWineURI;
/* Keep sync with request_method_strings in nsio.c */
#include "mshtml_private.h"
-static const char *debugstr_cp_guid(REFIID riid)
+typedef struct {
+ IEnumConnections IEnumConnections_iface;
+
+ LONG ref;
+
+ unsigned iter;
+ ConnectionPoint *cp;
+} EnumConnections;
+
+static inline EnumConnections *impl_from_IEnumConnections(IEnumConnections *iface)
{
-#define X(x) \
- if(IsEqualGUID(riid, &x)) \
- return #x
+ return CONTAINING_RECORD(iface, EnumConnections, IEnumConnections_iface);
+}
+
+static HRESULT WINAPI EnumConnections_QueryInterface(IEnumConnections *iface, REFIID riid, void **ppv)
+{
+ EnumConnections *This = impl_from_IEnumConnections(iface);
+
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+
+ if(IsEqualGUID(riid, &IID_IUnknown)) {
+ *ppv = &This->IEnumConnections_iface;
+ }else if(IsEqualGUID(riid, &IID_IEnumConnections)) {
+ *ppv = &This->IEnumConnections_iface;
+ }else {
+ WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+ *ppv = NULL;
+ return E_NOINTERFACE;
+ }
+
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
+}
+
+static ULONG WINAPI EnumConnections_AddRef(IEnumConnections *iface)
+{
+ EnumConnections *This = impl_from_IEnumConnections(iface);
+ ULONG ref = InterlockedIncrement(&This->ref);
+
+ TRACE("(%p) ref=%d\n", This, ref);
+
+ return ref;
+}
+
+static ULONG WINAPI EnumConnections_Release(IEnumConnections *iface)
+{
+ EnumConnections *This = impl_from_IEnumConnections(iface);
+ ULONG ref = InterlockedDecrement(&This->ref);
+
+ TRACE("(%p) ref=%d\n", This, ref);
+
+ if(!ref) {
+ IConnectionPoint_Release(&This->cp->IConnectionPoint_iface);
+ heap_free(This);
+ }
+
+ return ref;
+}
+
+static HRESULT WINAPI EnumConnections_Next(IEnumConnections *iface, ULONG cConnections, CONNECTDATA *rgcd, ULONG *pcFetched)
+{
+ EnumConnections *This = impl_from_IEnumConnections(iface);
+ ULONG fetched = 0;
+
+ TRACE("(%p)->(%d %p %p)\n", This, cConnections, rgcd, pcFetched);
- X(IID_IPropertyNotifySink);
- X(DIID_HTMLDocumentEvents);
- X(DIID_HTMLDocumentEvents2);
- X(DIID_HTMLTableEvents);
- X(DIID_HTMLTextContainerEvents);
+ while(fetched < cConnections && This->iter < This->cp->sinks_size) {
+ if(!This->cp->sinks[This->iter].unk) {
+ This->iter++;
+ continue;
+ }
+
+ rgcd[fetched].pUnk = This->cp->sinks[This->iter].unk;
+ rgcd[fetched].dwCookie = ++This->iter;
+ IUnknown_AddRef(rgcd[fetched].pUnk);
+ fetched++;
+ }
+
+ if(pcFetched)
+ *pcFetched = fetched;
+ return fetched == cConnections ? S_OK : S_FALSE;
+}
-#undef X
+static HRESULT WINAPI EnumConnections_Skip(IEnumConnections *iface, ULONG cConnections)
+{
+ EnumConnections *This = impl_from_IEnumConnections(iface);
+ FIXME("(%p)->(%d)\n", This, cConnections);
+ return E_NOTIMPL;
+}
- return debugstr_guid(riid);
+static HRESULT WINAPI EnumConnections_Reset(IEnumConnections *iface)
+{
+ EnumConnections *This = impl_from_IEnumConnections(iface);
+ FIXME("(%p)\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI EnumConnections_Clone(IEnumConnections *iface, IEnumConnections **ppEnum)
+{
+ EnumConnections *This = impl_from_IEnumConnections(iface);
+ FIXME("(%p)->(%p)\n", This, ppEnum);
+ return E_NOTIMPL;
}
+static const IEnumConnectionsVtbl EnumConnectionsVtbl = {
+ EnumConnections_QueryInterface,
+ EnumConnections_AddRef,
+ EnumConnections_Release,
+ EnumConnections_Next,
+ EnumConnections_Skip,
+ EnumConnections_Reset,
+ EnumConnections_Clone
+};
+
static inline ConnectionPoint *impl_from_IConnectionPoint(IConnectionPoint *iface)
{
return CONTAINING_RECORD(iface, ConnectionPoint, IConnectionPoint_iface);
{
ConnectionPoint *This = impl_from_IConnectionPoint(iface);
- *ppv = NULL;
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IConnectionPoint_iface;
}else if(IsEqualGUID(&IID_IConnectionPoint, riid)) {
- TRACE("(%p)->(IID_IConnectionPoint %p)\n", This, ppv);
*ppv = &This->IConnectionPoint_iface;
+ }else {
+ *ppv = NULL;
+ WARN("Unsupported interface %s\n", debugstr_mshtml_guid(riid));
+ return E_NOINTERFACE;
}
- if(*ppv) {
- IUnknown_AddRef((IUnknown*)*ppv);
- return S_OK;
- }
-
- WARN("Unsupported interface %s\n", debugstr_guid(riid));
- return E_NOINTERFACE;
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
}
static ULONG WINAPI ConnectionPoint_AddRef(IConnectionPoint *iface)
IEnumConnections **ppEnum)
{
ConnectionPoint *This = impl_from_IConnectionPoint(iface);
- FIXME("(%p)->(%p)\n", This, ppEnum);
- return E_NOTIMPL;
+ EnumConnections *ret;
+
+ TRACE("(%p)->(%p)\n", This, ppEnum);
+
+ ret = heap_alloc(sizeof(*ret));
+ if(!ret)
+ return E_OUTOFMEMORY;
+
+ ret->IEnumConnections_iface.lpVtbl = &EnumConnectionsVtbl;
+ ret->ref = 1;
+ ret->iter = 0;
+
+ IConnectionPoint_AddRef(&This->IConnectionPoint_iface);
+ ret->cp = This;
+
+ *ppEnum = &ret->IEnumConnections_iface;
+ return S_OK;
}
static const IConnectionPointVtbl ConnectionPointVtbl =
ConnectionPointContainer *This = impl_from_IConnectionPointContainer(iface);
ConnectionPoint *cp;
- TRACE("(%p)->(%s %p)\n", This, debugstr_cp_guid(riid), ppCP);
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppCP);
if(This->forward_container)
return IConnectionPointContainer_FindConnectionPoint(&This->forward_container->IConnectionPointContainer_iface,
cp = get_cp(This, riid, TRUE);
if(!cp) {
- FIXME("unsupported riid %s\n", debugstr_cp_guid(riid));
+ FIXME("unsupported riid %s\n", debugstr_mshtml_guid(riid));
*ppCP = NULL;
return CONNECT_E_NOCONNECTION;
}
hres = ITypeLib_GetTypeInfoOfGuid(typelib, tid_ids[tid], &ti);
if(FAILED(hres)) {
- ERR("GetTypeInfoOfGuid(%s) failed: %08x\n", debugstr_guid(tid_ids[tid]), hres);
+ ERR("GetTypeInfoOfGuid(%s) failed: %08x\n", debugstr_mshtml_guid(tid_ids[tid]), hres);
return hres;
}
hres = IUnknown_QueryInterface(This->outer, tid_ids[func->tid], (void**)&unk);
if(FAILED(hres)) {
- ERR("Could not get iface %s: %08x\n", debugstr_guid(tid_ids[func->tid]), hres);
+ ERR("Could not get iface %s: %08x\n", debugstr_mshtml_guid(tid_ids[func->tid]), hres);
return E_FAIL;
}
return E_UNEXPECTED;
hres = typeinfo_invoke(This->obj, This->info, flags, params, res, ei);
break;
+ case DISPATCH_PROPERTYGET: {
+ unsigned name_len;
+ WCHAR *ptr;
+ BSTR str;
+
+ static const WCHAR func_prefixW[] =
+ {'\n','f','u','n','c','t','i','o','n',' '};
+ static const WCHAR func_suffixW[] =
+ {'(',')',' ','{','\n',' ',' ',' ',' ','[','n','a','t','i','v','e',' ','c','o','d','e',']','\n','}','\n'};
+
+ /* FIXME: This probably should be more generic. Also we should try to get IID_IActiveScriptSite and SID_GetCaller. */
+ if(!caller)
+ return E_ACCESSDENIED;
+
+ name_len = SysStringLen(This->info->name);
+ ptr = str = SysAllocStringLen(NULL, name_len + (sizeof(func_prefixW)+sizeof(func_suffixW))/sizeof(WCHAR));
+ if(!str)
+ return E_OUTOFMEMORY;
+
+ memcpy(ptr, func_prefixW, sizeof(func_prefixW));
+ ptr += sizeof(func_prefixW)/sizeof(WCHAR);
+
+ memcpy(ptr, This->info->name, name_len*sizeof(WCHAR));
+ ptr += name_len;
+
+ memcpy(ptr, func_suffixW, sizeof(func_suffixW));
+
+ V_VT(res) = VT_BSTR;
+ V_BSTR(res) = str;
+ return S_OK;
+ }
default:
FIXME("Unimplemented flags %x\n", flags);
hres = E_NOTIMPL;
switch(flags) {
case DISPATCH_PROPERTYPUT:
+ case DISPATCH_PROPERTYPUT | DISPATCH_PROPERTYPUTREF:
if(res)
V_VT(res) = VT_EMPTY;
hres = builtin_propput(This, func, dp, caller);
if(flags != (DISPATCH_PROPERTYGET|DISPATCH_METHOD) || dp->cArgs) {
if(V_VT(&v) != VT_DISPATCH) {
- FIXME("Not a function %s\n", debugstr_variant(&v));
+ FIXME("Not a function %s flags %08x\n", debugstr_variant(&v), flags);
VariantClear(&v);
return E_FAIL;
}
static void get_font_size(HTMLDocument *This, WCHAR *ret)
{
nsISelection *nsselection = get_ns_selection(This);
- nsIDOMElement *elem = NULL;
+ nsIDOMHTMLElement *elem = NULL;
nsIDOMNode *node = NULL, *tmp_node;
nsAString tag_str;
LPCWSTR tag;
break;
if(node_type == ELEMENT_NODE) {
- nsIDOMNode_QueryInterface(node, &IID_nsIDOMElement, (void**)&elem);
+ nsIDOMNode_QueryInterface(node, &IID_nsIDOMHTMLElement, (void**)&elem);
nsAString_Init(&tag_str, NULL);
- nsIDOMElement_GetTagName(elem, &tag_str);
+ nsIDOMHTMLElement_GetTagName(elem, &tag_str);
nsAString_GetData(&tag_str, &tag);
if(!strcmpiW(tag, fontW)) {
- nsAString size_str, val_str;
- LPCWSTR val;
+ nsAString val_str;
+ const PRUnichar *val;
TRACE("found font tag %p\n", elem);
- nsAString_InitDepend(&size_str, sizeW);
- nsAString_Init(&val_str, NULL);
-
- nsIDOMElement_GetAttribute(elem, &size_str, &val_str);
- nsAString_GetData(&val_str, &val);
-
+ get_elem_attr_value(elem, sizeW, &val_str, &val);
if(*val) {
TRACE("found size %s\n", debugstr_w(val));
strcpyW(ret, val);
}
- nsAString_Finish(&size_str);
nsAString_Finish(&val_str);
}
nsAString_Finish(&tag_str);
-
- nsIDOMElement_Release(elem);
+ nsIDOMHTMLElement_Release(elem);
}
if(*ret)
if(!strcmpiW(target, _parentW)) {
if(!window->parent) {
- WARN("Window has no parent\n");
- return NULL;
+ WARN("Window has no parent, treat as self\n");
+ IHTMLWindow2_AddRef(&window->base.IHTMLWindow2_iface);
+ return window;
}
IHTMLWindow2_AddRef(&window->parent->base.IHTMLWindow2_iface);
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute(iface);
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IHTMLDOMAttribute_iface;
}else if(IsEqualGUID(&IID_IHTMLDOMAttribute, riid)) {
- TRACE("(%p)->(IID_IHTMLDOMAttribute %p)\n", This, ppv);
*ppv = &This->IHTMLDOMAttribute_iface;
}else if(dispex_query_interface(&This->dispex, riid, ppv)) {
return *ppv ? S_OK : E_NOINTERFACE;
}else {
- WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
+ WARN("%s not supported\n", debugstr_mshtml_guid(riid));
*ppv = NULL;
return E_NOINTERFACE;
}
return IDispatchEx_GetMemberName(&This->elem->node.dispex.IDispatchEx_iface, This->dispid, p);
}
-static HRESULT WINAPI HTMLDOMAttribute_put_nodeName(IHTMLDOMAttribute *iface, VARIANT v)
+static HRESULT WINAPI HTMLDOMAttribute_put_nodeValue(IHTMLDOMAttribute *iface, VARIANT v)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
- return E_NOTIMPL;
+ DISPID dispidNamed = DISPID_PROPERTYPUT;
+ DISPPARAMS dp = {&v, &dispidNamed, 1, 1};
+ EXCEPINFO ei;
+ VARIANT ret;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
+
+ if(!This->elem) {
+ FIXME("NULL This->elem\n");
+ return E_UNEXPECTED;
+ }
+
+ memset(&ei, 0, sizeof(ei));
+
+ return IDispatchEx_InvokeEx(&This->elem->node.dispex.IDispatchEx_iface, This->dispid, LOCALE_SYSTEM_DEFAULT,
+ DISPATCH_PROPERTYPUT, &dp, &ret, &ei, NULL);
}
static HRESULT WINAPI HTMLDOMAttribute_get_nodeValue(IHTMLDOMAttribute *iface, VARIANT *p)
HTMLDOMAttribute_GetIDsOfNames,
HTMLDOMAttribute_Invoke,
HTMLDOMAttribute_get_nodeName,
- HTMLDOMAttribute_put_nodeName,
+ HTMLDOMAttribute_put_nodeValue,
HTMLDOMAttribute_get_nodeValue,
HTMLDOMAttribute_get_specified
};
{
HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle(iface);
- *ppv = NULL;
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IHTMLCurrentStyle_iface;
}else if(IsEqualGUID(&IID_IHTMLCurrentStyle, riid)) {
- TRACE("(%p)->(IID_IHTMLCurrentStyle %p)\n", This, ppv);
*ppv = &This->IHTMLCurrentStyle_iface;
}else if(IsEqualGUID(&IID_IHTMLCurrentStyle2, riid)) {
- TRACE("(%p)->(IID_IHTMLCurrentStyle2 %p)\n", This, ppv);
*ppv = &This->IHTMLCurrentStyle2_iface;
}else if(IsEqualGUID(&IID_IHTMLCurrentStyle3, riid)) {
- TRACE("(%p)->(IID_IHTMLCurrentStyle3 %p)\n", This, ppv);
*ppv = &This->IHTMLCurrentStyle3_iface;
}else if(IsEqualGUID(&IID_IHTMLCurrentStyle4, riid)) {
- TRACE("(%p)->(IID_IHTMLCurrentStyle4 %p)\n", This, ppv);
*ppv = &This->IHTMLCurrentStyle4_iface;
}else if(dispex_query_interface(&This->dispex, riid, ppv)) {
return *ppv ? S_OK : E_NOINTERFACE;
+ }else {
+ *ppv = NULL;
+ WARN("unsupported %s\n", debugstr_mshtml_guid(riid));
+ return E_NOINTERFACE;
}
- if(*ppv) {
- IUnknown_AddRef((IUnknown*)*ppv);
- return S_OK;
- }
-
- WARN("unsupported %s\n", debugstr_guid(riid));
- return E_NOINTERFACE;
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
}
static ULONG WINAPI HTMLCurrentStyle_AddRef(IHTMLCurrentStyle *iface)
static HRESULT WINAPI HTMLCurrentStyle_get_textTransform(IHTMLCurrentStyle *iface, BSTR *p)
{
HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr(This->nsstyle, STYLEID_TEXT_TRANSFORM, p, 0);
}
static const IHTMLCurrentStyleVtbl HTMLCurrentStyleVtbl = {
static HRESULT WINAPI HTMLDocument_toString(IHTMLDocument2 *iface, BSTR *String)
{
HTMLDocument *This = impl_from_IHTMLDocument2(iface);
- FIXME("(%p)->(%p)\n", This, String);
- return E_NOTIMPL;
+
+ static const WCHAR objectW[] = {'[','o','b','j','e','c','t',']',0};
+
+ TRACE("(%p)->(%p)\n", This, String);
+
+ if(!String)
+ return E_INVALIDARG;
+
+ *String = SysAllocString(objectW);
+ return *String ? S_OK : E_OUTOFMEMORY;
+
}
static HRESULT WINAPI HTMLDocument_createStyleSheet(IHTMLDocument2 *iface, BSTR bstrHref,
static HRESULT WINAPI HTMLDocument5_get_implementation(IHTMLDocument5 *iface, IHTMLDOMImplementation **p)
{
HTMLDocument *This = impl_from_IHTMLDocument5(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ HTMLDocumentNode *doc_node = This->doc_node;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ if(!doc_node->dom_implementation) {
+ HRESULT hres;
+
+ hres = create_dom_implementation(&doc_node->dom_implementation);
+ if(FAILED(hres))
+ return hres;
+ }
+
+ IHTMLDOMImplementation_AddRef(doc_node->dom_implementation);
+ *p = doc_node->dom_implementation;
+ return S_OK;
}
static HRESULT WINAPI HTMLDocument5_createAttribute(IHTMLDocument5 *iface, BSTR bstrattrName,
static HRESULT WINAPI SupportErrorInfo_InterfaceSupportsErrorInfo(ISupportErrorInfo *iface, REFIID riid)
{
- FIXME("(%p)->(%s)\n", iface, debugstr_guid(riid));
+ FIXME("(%p)->(%s)\n", iface, debugstr_mshtml_guid(riid));
return S_FALSE;
}
{
*ppv = NULL;
- if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown, %p)\n", This, ppv);
+ if(IsEqualGUID(&IID_IUnknown, riid))
*ppv = &This->IHTMLDocument2_iface;
- }else if(IsEqualGUID(&IID_IDispatch, riid)) {
- TRACE("(%p)->(IID_IDispatch, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IDispatch, riid))
*ppv = &This->IDispatchEx_iface;
- }else if(IsEqualGUID(&IID_IDispatchEx, riid)) {
- TRACE("(%p)->(IID_IDispatchEx, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IDispatchEx, riid))
*ppv = &This->IDispatchEx_iface;
- }else if(IsEqualGUID(&IID_IHTMLDocument, riid)) {
- TRACE("(%p)->(IID_IHTMLDocument, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IHTMLDocument, riid))
*ppv = &This->IHTMLDocument2_iface;
- }else if(IsEqualGUID(&IID_IHTMLDocument2, riid)) {
- TRACE("(%p)->(IID_IHTMLDocument2, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IHTMLDocument2, riid))
*ppv = &This->IHTMLDocument2_iface;
- }else if(IsEqualGUID(&IID_IHTMLDocument3, riid)) {
- TRACE("(%p)->(IID_IHTMLDocument3, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IHTMLDocument3, riid))
*ppv = &This->IHTMLDocument3_iface;
- }else if(IsEqualGUID(&IID_IHTMLDocument4, riid)) {
- TRACE("(%p)->(IID_IHTMLDocument4, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IHTMLDocument4, riid))
*ppv = &This->IHTMLDocument4_iface;
- }else if(IsEqualGUID(&IID_IHTMLDocument5, riid)) {
- TRACE("(%p)->(IID_IHTMLDocument5, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IHTMLDocument5, riid))
*ppv = &This->IHTMLDocument5_iface;
- }else if(IsEqualGUID(&IID_IHTMLDocument6, riid)) {
- TRACE("(%p)->(IID_IHTMLDocument6, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IHTMLDocument6, riid))
*ppv = &This->IHTMLDocument6_iface;
- }else if(IsEqualGUID(&IID_IHTMLDocument7, riid)) {
- TRACE("(%p)->(IID_IHTMLDocument7, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IHTMLDocument7, riid))
*ppv = &This->IHTMLDocument7_iface;
- }else if(IsEqualGUID(&IID_IPersist, riid)) {
- TRACE("(%p)->(IID_IPersist, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IPersist, riid))
*ppv = &This->IPersistFile_iface;
- }else if(IsEqualGUID(&IID_IPersistMoniker, riid)) {
- TRACE("(%p)->(IID_IPersistMoniker, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IPersistMoniker, riid))
*ppv = &This->IPersistMoniker_iface;
- }else if(IsEqualGUID(&IID_IPersistFile, riid)) {
- TRACE("(%p)->(IID_IPersistFile, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IPersistFile, riid))
*ppv = &This->IPersistFile_iface;
- }else if(IsEqualGUID(&IID_IMonikerProp, riid)) {
- TRACE("(%p)->(IID_IMonikerProp, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IMonikerProp, riid))
*ppv = &This->IMonikerProp_iface;
- }else if(IsEqualGUID(&IID_IOleObject, riid)) {
- TRACE("(%p)->(IID_IOleObject, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IOleObject, riid))
*ppv = &This->IOleObject_iface;
- }else if(IsEqualGUID(&IID_IOleDocument, riid)) {
- TRACE("(%p)->(IID_IOleDocument, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IOleDocument, riid))
*ppv = &This->IOleDocument_iface;
- }else if(IsEqualGUID(&IID_IOleDocumentView, riid)) {
- TRACE("(%p)->(IID_IOleDocumentView, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IOleDocumentView, riid))
*ppv = &This->IOleDocumentView_iface;
- }else if(IsEqualGUID(&IID_IOleInPlaceActiveObject, riid)) {
- TRACE("(%p)->(IID_IOleInPlaceActiveObject, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IOleInPlaceActiveObject, riid))
*ppv = &This->IOleInPlaceActiveObject_iface;
- }else if(IsEqualGUID(&IID_IViewObject, riid)) {
- TRACE("(%p)->(IID_IViewObject, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IViewObject, riid))
*ppv = &This->IViewObjectEx_iface;
- }else if(IsEqualGUID(&IID_IViewObject2, riid)) {
- TRACE("(%p)->(IID_IViewObject2, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IViewObject2, riid))
*ppv = &This->IViewObjectEx_iface;
- }else if(IsEqualGUID(&IID_IViewObjectEx, riid)) {
- TRACE("(%p)->(IID_IViewObjectEx, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IViewObjectEx, riid))
*ppv = &This->IViewObjectEx_iface;
- }else if(IsEqualGUID(&IID_IOleWindow, riid)) {
- TRACE("(%p)->(IID_IOleWindow, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IOleWindow, riid))
*ppv = &This->IOleInPlaceActiveObject_iface;
- }else if(IsEqualGUID(&IID_IOleInPlaceObject, riid)) {
- TRACE("(%p)->(IID_IOleInPlaceObject, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IOleInPlaceObject, riid))
*ppv = &This->IOleInPlaceObjectWindowless_iface;
- }else if(IsEqualGUID(&IID_IOleInPlaceObjectWindowless, riid)) {
- TRACE("(%p)->(IID_IOleInPlaceObjectWindowless, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IOleInPlaceObjectWindowless, riid))
*ppv = &This->IOleInPlaceObjectWindowless_iface;
- }else if(IsEqualGUID(&IID_IServiceProvider, riid)) {
- TRACE("(%p)->(IID_IServiceProvider, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IServiceProvider, riid))
*ppv = &This->IServiceProvider_iface;
- }else if(IsEqualGUID(&IID_IOleCommandTarget, riid)) {
- TRACE("(%p)->(IID_IOleCommandTarget, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IOleCommandTarget, riid))
*ppv = &This->IOleCommandTarget_iface;
- }else if(IsEqualGUID(&IID_IOleControl, riid)) {
- TRACE("(%p)->(IID_IOleControl, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IOleControl, riid))
*ppv = &This->IOleControl_iface;
- }else if(IsEqualGUID(&IID_IHlinkTarget, riid)) {
- TRACE("(%p)->(IID_IHlinkTarget, %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IHlinkTarget, riid))
*ppv = &This->IHlinkTarget_iface;
- }else if(IsEqualGUID(&IID_IConnectionPointContainer, riid)) {
- TRACE("(%p)->(IID_IConnectionPointContainer %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IConnectionPointContainer, riid))
*ppv = &This->cp_container.IConnectionPointContainer_iface;
- }else if(IsEqualGUID(&IID_IPersistStreamInit, riid)) {
- TRACE("(%p)->(IID_IPersistStreamInit %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IPersistStreamInit, riid))
*ppv = &This->IPersistStreamInit_iface;
- }else if(IsEqualGUID(&DIID_DispHTMLDocument, riid)) {
- TRACE("(%p)->(DIID_DispHTMLDocument %p)\n", This, ppv);
+ else if(IsEqualGUID(&DIID_DispHTMLDocument, riid))
*ppv = &This->IHTMLDocument2_iface;
- }else if(IsEqualGUID(&IID_ISupportErrorInfo, riid)) {
- TRACE("(%p)->(IID_ISupportErrorInfo %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_ISupportErrorInfo, riid))
*ppv = &This->ISupportErrorInfo_iface;
- }else if(IsEqualGUID(&IID_IPersistHistory, riid)) {
- TRACE("(%p)->(IID_IPersistHistory %p)\n", This, ppv);
+ else if(IsEqualGUID(&IID_IPersistHistory, riid))
*ppv = &This->IPersistHistory_iface;
- }else if(IsEqualGUID(&CLSID_CMarkup, riid)) {
+ else if(IsEqualGUID(&IID_IObjectWithSite, riid))
+ *ppv = &This->IObjectWithSite_iface;
+ else if(IsEqualGUID(&IID_IOleContainer, riid))
+ *ppv = &This->IOleContainer_iface;
+ else if(IsEqualGUID(&IID_IObjectSafety, riid))
+ *ppv = &This->IObjectSafety_iface;
+ else if(IsEqualGUID(&IID_IProvideClassInfo, riid))
+ *ppv = &This->IProvideClassInfo_iface;
+ else if(IsEqualGUID(&CLSID_CMarkup, riid)) {
FIXME("(%p)->(CLSID_CMarkup %p)\n", This, ppv);
*ppv = NULL;
}else if(IsEqualGUID(&IID_IRunnableObject, riid)) {
}else if(IsEqualGUID(&IID_IStdMarshalInfo, riid)) {
TRACE("(%p)->(IID_IStdMarshalInfo %p) returning NULL\n", This, ppv);
*ppv = NULL;
- }else if(IsEqualGUID(&IID_IObjectWithSite, riid)) {
- TRACE("(%p)->(IID_IObjectWithSite %p)\n", This, ppv);
- *ppv = &This->IObjectWithSite_iface;
- }else if(IsEqualGUID(&IID_IOleContainer, riid)) {
- TRACE("(%p)->(IID_IOleContainer %p)\n", This, ppv);
- *ppv = &This->IOleContainer_iface;
- }else if(IsEqualGUID(&IID_IObjectSafety, riid)) {
- TRACE("(%p)->(IID_IObjectSafety %p)\n", This, ppv);
- *ppv = &This->IObjectSafety_iface;
- }else if(IsEqualGUID(&IID_IProvideClassInfo, riid)) {
- TRACE("(%p)->(IID_IProvideClassInfo, %p)\n", This, ppv);
- *ppv = &This->IProvideClassInfo_iface;
}else {
return FALSE;
}
{
HTMLDocumentNode *This = impl_from_HTMLDOMNode(iface);
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+
if(htmldoc_qi(&This->basedoc, riid, ppv))
return *ppv ? S_OK : E_NOINTERFACE;
- if(IsEqualGUID(&IID_IInternetHostSecurityManager, riid)) {
- TRACE("(%p)->(IID_IInternetHostSecurityManager %p)\n", This, ppv);
+ if(IsEqualGUID(&IID_IInternetHostSecurityManager, riid))
*ppv = &This->IInternetHostSecurityManager_iface;
- }else {
+ else
return HTMLDOMNode_QI(&This->node, riid, ppv);
- }
IUnknown_AddRef((IUnknown*)*ppv);
return S_OK;
This->nsnode_selector = NULL;
}
- if(This->nsdoc) {
- assert(!This->window);
- release_document_mutation(This);
- nsIDOMHTMLDocument_Release(This->nsdoc);
- }else if(This->window) {
+ if(!This->nsdoc && This->window) {
/* document fragments own reference to inner window */
IHTMLWindow2_Release(&This->window->base.IHTMLWindow2_iface);
This->window = NULL;
{
HTMLDocumentObj *This = impl_from_ICustomDoc(iface);
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+
if(htmldoc_qi(&This->basedoc, riid, ppv))
return *ppv ? S_OK : E_NOINTERFACE;
if(IsEqualGUID(&IID_ICustomDoc, riid)) {
- TRACE("(%p)->(IID_ICustomDoc %p)\n", This, ppv);
*ppv = &This->ICustomDoc_iface;
}else if(IsEqualGUID(&IID_ITargetContainer, riid)) {
- TRACE("(%p)->(IID_ITargetContainer %p)\n", This, ppv);
*ppv = &This->ITargetContainer_iface;
}else if(dispex_query_interface(&This->dispex, riid, ppv)) {
return *ppv ? S_OK : E_NOINTERFACE;
}else {
- FIXME("Unimplemented interface %s\n", debugstr_guid(riid));
+ FIXME("Unimplemented interface %s\n", debugstr_mshtml_guid(riid));
*ppv = NULL;
return E_NOINTERFACE;
}
nsresult nsres;
HRESULT hres;
- TRACE("(%p %s %p)\n", pUnkOuter, debugstr_guid(riid), ppvObject);
+ TRACE("(%p %s %p)\n", pUnkOuter, debugstr_mshtml_guid(riid), ppvObject);
doc = heap_alloc_zero(sizeof(HTMLDocumentObj));
if(!doc)
return hres;
}
+nsresult get_elem_attr_value(nsIDOMHTMLElement *nselem, const WCHAR *name, nsAString *val_str, const PRUnichar **val)
+{
+ nsAString name_str;
+ nsresult nsres;
+
+ nsAString_InitDepend(&name_str, name);
+ nsAString_Init(val_str, NULL);
+ nsres = nsIDOMHTMLElement_GetAttribute(nselem, &name_str, val_str);
+ nsAString_Finish(&name_str);
+ if(NS_FAILED(nsres)) {
+ ERR("GetAttribute(%s) failed: %08x\n", debugstr_w(name), nsres);
+ nsAString_Finish(val_str);
+ return nsres;
+ }
+
+ nsAString_GetData(val_str, val);
+ return NS_OK;
+}
+
+HRESULT elem_string_attr_getter(HTMLElement *elem, const WCHAR *name, BOOL use_null, BSTR *p)
+{
+ const PRUnichar *val;
+ nsAString val_str;
+ nsresult nsres;
+ HRESULT hres = S_OK;
+
+ nsres = get_elem_attr_value(elem->nselem, name, &val_str, &val);
+ if(NS_FAILED(nsres))
+ return E_FAIL;
+
+ TRACE("%s: returning %s\n", debugstr_w(name), debugstr_w(val));
+
+ if(*val || !use_null) {
+ *p = SysAllocString(val);
+ if(!*p)
+ hres = E_OUTOFMEMORY;
+ }else {
+ *p = NULL;
+ }
+ nsAString_Finish(&val_str);
+ return hres;
+}
+
+HRESULT elem_string_attr_setter(HTMLElement *elem, const WCHAR *name, const WCHAR *value)
+{
+ nsAString name_str, val_str;
+ nsresult nsres;
+
+ nsAString_InitDepend(&name_str, name);
+ nsAString_InitDepend(&val_str, value);
+ nsres = nsIDOMHTMLElement_SetAttribute(elem->nselem, &name_str, &val_str);
+ nsAString_Finish(&name_str);
+ nsAString_Finish(&val_str);
+
+ if(NS_FAILED(nsres)) {
+ WARN("SetAttribute failed: %08x\n", nsres);
+ return E_FAIL;
+ }
+
+ return S_OK;
+}
+
typedef struct
{
DispatchEx dispex;
static HRESULT WINAPI HTMLElement_scrollIntoView(IHTMLElement *iface, VARIANT varargStart)
{
HTMLElement *This = impl_from_IHTMLElement(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_variant(&varargStart));
- return E_NOTIMPL;
+ cpp_bool start = TRUE;
+ nsresult nsres;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_variant(&varargStart));
+
+ switch(V_VT(&varargStart)) {
+ case VT_EMPTY:
+ case VT_ERROR:
+ break;
+ case VT_BOOL:
+ start = V_BOOL(&varargStart) != VARIANT_FALSE;
+ break;
+ default:
+ FIXME("Unsupported argument %s\n", debugstr_variant(&varargStart));
+ }
+
+ if(!This->nselem) {
+ FIXME("Unsupported for comments\n");
+ return E_NOTIMPL;
+ }
+
+ nsres = nsIDOMHTMLElement_ScrollIntoView(This->nselem, start, 1);
+ assert(nsres == NS_OK);
+
+ return S_OK;
}
static HRESULT WINAPI HTMLElement_contains(IHTMLElement *iface, IHTMLElement *pChild,
VARIANT_BOOL *pfResult)
{
HTMLElement *This = impl_from_IHTMLElement(iface);
- HTMLElement *child;
- cpp_bool result;
- nsresult nsres;
+ cpp_bool result = FALSE;
TRACE("(%p)->(%p %p)\n", This, pChild, pfResult);
- child = unsafe_impl_from_IHTMLElement(pChild);
- if(!child) {
- ERR("not our element\n");
- return E_FAIL;
- }
+ if(pChild) {
+ HTMLElement *child;
+ nsresult nsres;
- nsres = nsIDOMNode_Contains(This->node.nsnode, child->node.nsnode, &result);
- if(NS_FAILED(nsres)) {
- ERR("failed\n");
- return E_FAIL;
+ child = unsafe_impl_from_IHTMLElement(pChild);
+ if(!child) {
+ ERR("not our element\n");
+ return E_FAIL;
+ }
+
+ nsres = nsIDOMNode_Contains(This->node.nsnode, child->node.nsnode, &result);
+ assert(nsres == NS_OK);
}
*pfResult = result ? VARIANT_TRUE : VARIANT_FALSE;
static HRESULT WINAPI HTMLElement_get_sourceIndex(IHTMLElement *iface, LONG *p)
{
HTMLElement *This = impl_from_IHTMLElement(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ return get_elem_source_index(This, p);
}
static HRESULT WINAPI HTMLElement_get_recordNumber(IHTMLElement *iface, VARIANT *p)
{
HTMLElement *This = impl_from_HTMLDOMNode(iface);
- *ppv = NULL;
-
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IHTMLElement_iface;
}else if(IsEqualGUID(&IID_IDispatch, riid)) {
- TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
*ppv = &This->IHTMLElement_iface;
}else if(IsEqualGUID(&IID_IHTMLElement, riid)) {
- TRACE("(%p)->(IID_IHTMLElement %p)\n", This, ppv);
*ppv = &This->IHTMLElement_iface;
}else if(IsEqualGUID(&IID_IHTMLElement2, riid)) {
- TRACE("(%p)->(IID_IHTMLElement2 %p)\n", This, ppv);
*ppv = &This->IHTMLElement2_iface;
}else if(IsEqualGUID(&IID_IHTMLElement3, riid)) {
- TRACE("(%p)->(IID_IHTMLElement3 %p)\n", This, ppv);
*ppv = &This->IHTMLElement3_iface;
}else if(IsEqualGUID(&IID_IHTMLElement4, riid)) {
- TRACE("(%p)->(IID_IHTMLElement4 %p)\n", This, ppv);
*ppv = &This->IHTMLElement4_iface;
}else if(IsEqualGUID(&IID_IConnectionPointContainer, riid)) {
- TRACE("(%p)->(IID_IConnectionPointContainer %p)\n", This, ppv);
*ppv = &This->cp_container.IConnectionPointContainer_iface;
+ }else {
+ return HTMLDOMNode_QI(&This->node, riid, ppv);
}
- if(*ppv) {
- IHTMLElement_AddRef(&This->IHTMLElement_iface);
- return S_OK;
- }
-
- return HTMLDOMNode_QI(&This->node, riid, ppv);
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
}
void HTMLElement_destructor(HTMLDOMNode *iface)
{
HTMLFiltersCollection *This = impl_from_IHTMLFiltersCollection(iface);
- TRACE("%p %s %p\n", This, debugstr_guid( riid ), ppv );
+ TRACE("%p %s %p\n", This, debugstr_mshtml_guid(riid), ppv );
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IHTMLFiltersCollection_iface;
}else if(IsEqualGUID(&IID_IHTMLFiltersCollection, riid)) {
TRACE("(%p)->(IID_IHTMLFiltersCollection %p)\n", This, ppv);
*ppv = &This->IHTMLFiltersCollection_iface;
}else if(dispex_query_interface(&This->dispex, riid, ppv)) {
return *ppv ? S_OK : E_NOINTERFACE;
+ }else {
+ *ppv = NULL;
+ FIXME("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+ return E_NOINTERFACE;
}
- if(*ppv) {
- IUnknown_AddRef((IUnknown*)*ppv);
- return S_OK;
- }
-
- FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
- return E_NOINTERFACE;
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
}
static ULONG WINAPI HTMLFiltersCollection_AddRef(IHTMLFiltersCollection *iface)
{
HTMLAttributeCollection *This = impl_from_IHTMLAttributeCollection(iface);
- *ppv = NULL;
-
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IHTMLAttributeCollection_iface;
}else if(IsEqualGUID(&IID_IHTMLAttributeCollection, riid)) {
- TRACE("(%p)->(IID_IHTMLAttributeCollection %p)\n", This, ppv);
*ppv = &This->IHTMLAttributeCollection_iface;
}else if(IsEqualGUID(&IID_IHTMLAttributeCollection2, riid)) {
- TRACE("(%p)->(IID_IHTMLAttributeCollection2 %p)\n", This, ppv);
*ppv = &This->IHTMLAttributeCollection2_iface;
}else if(IsEqualGUID(&IID_IHTMLAttributeCollection3, riid)) {
- TRACE("(%p)->(IID_IHTMLAttributeCollection3 %p)\n", This, ppv);
*ppv = &This->IHTMLAttributeCollection3_iface;
}else if(dispex_query_interface(&This->dispex, riid, ppv)) {
return *ppv ? S_OK : E_NOINTERFACE;
+ }else {
+ *ppv = NULL;
+ WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+ return E_NOINTERFACE;
}
- if(*ppv) {
- IUnknown_AddRef((IUnknown*)*ppv);
- return S_OK;
- }
-
- WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
- return E_NOINTERFACE;
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
}
static ULONG WINAPI HTMLAttributeCollection_AddRef(IHTMLAttributeCollection *iface)
{
HTMLRect *This = impl_from_IHTMLRect(iface);
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IHTMLRect_iface;
}else if(IsEqualGUID(&IID_IHTMLRect, riid)) {
- TRACE("(%p)->(IID_IHTMLRect %p)\n", This, ppv);
*ppv = &This->IHTMLRect_iface;
}else if(dispex_query_interface(&This->dispex, riid, ppv)) {
return *ppv ? S_OK : E_NOINTERFACE;
}else {
- FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
+ FIXME("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
*ppv = NULL;
return E_NOINTERFACE;
}
static HRESULT WINAPI HTMLElement3_put_contentEditable(IHTMLElement3 *iface, BSTR v)
{
HTMLElement *This = impl_from_IHTMLElement3(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_w(v));
- return E_NOTIMPL;
+ nsresult nsres;
+ nsAString str;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_w(v));
+
+ nsAString_InitDepend(&str, v);
+ nsres = nsIDOMHTMLElement_SetContentEditable(This->nselem, &str);
+ nsAString_Finish(&str);
+
+ if (NS_FAILED(nsres)){
+ ERR("SetContentEditable(%s) failed!\n", debugstr_w(v));
+ return E_FAIL;
+ }
+
+ return S_OK;
}
static HRESULT WINAPI HTMLElement3_get_contentEditable(IHTMLElement3 *iface, BSTR *p)
{
HTMLElement *This = impl_from_IHTMLElement3(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ nsresult nsres;
+ nsAString str;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ nsAString_Init(&str, NULL);
+ nsres = nsIDOMHTMLElement_GetContentEditable(This->nselem, &str);
+ return return_nsstr(nsres, &str, p);
}
static HRESULT WINAPI HTMLElement3_get_isContentEditable(IHTMLElement3 *iface, VARIANT_BOOL *p)
static HRESULT WINAPI HTMLElement4_put_onmousewheel(IHTMLElement4 *iface, VARIANT v)
{
HTMLElement *This = impl_from_IHTMLElement4(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
- return E_NOTIMPL;
+
+ FIXME("(%p)->(%s) semi-stub\n", This, debugstr_variant(&v));
+
+ return set_node_event(&This->node, EVENTID_MOUSEWHEEL, &v);
}
static HRESULT WINAPI HTMLElement4_get_onmousewheel(IHTMLElement4 *iface, VARIANT *p)
{
HTMLElement *This = impl_from_IHTMLElement4(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ return get_node_event(&This->node, EVENTID_MOUSEWHEEL, p);
}
static HRESULT WINAPI HTMLElement4_normalize(IHTMLElement4 *iface)
LONG ref;
} HTMLElementCollection;
+typedef struct {
+ IEnumVARIANT IEnumVARIANT_iface;
+
+ LONG ref;
+
+ ULONG iter;
+ HTMLElementCollection *col;
+} HTMLElementCollectionEnum;
+
typedef struct {
HTMLElement **buf;
DWORD len;
return type == ELEMENT_NODE || type == COMMENT_NODE;
}
+static inline HTMLElementCollectionEnum *impl_from_IEnumVARIANT(IEnumVARIANT *iface)
+{
+ return CONTAINING_RECORD(iface, HTMLElementCollectionEnum, IEnumVARIANT_iface);
+}
+
+static HRESULT WINAPI HTMLElementCollectionEnum_QueryInterface(IEnumVARIANT *iface, REFIID riid, void **ppv)
+{
+ HTMLElementCollectionEnum *This = impl_from_IEnumVARIANT(iface);
+
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+
+ if(IsEqualGUID(riid, &IID_IUnknown)) {
+ *ppv = &This->IEnumVARIANT_iface;
+ }else if(IsEqualGUID(riid, &IID_IEnumVARIANT)) {
+ *ppv = &This->IEnumVARIANT_iface;
+ }else {
+ FIXME("Unsupported iface %s\n", debugstr_mshtml_guid(riid));
+ *ppv = NULL;
+ return E_NOINTERFACE;
+ }
+
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
+}
+
+static ULONG WINAPI HTMLElementCollectionEnum_AddRef(IEnumVARIANT *iface)
+{
+ HTMLElementCollectionEnum *This = impl_from_IEnumVARIANT(iface);
+ LONG ref = InterlockedIncrement(&This->ref);
+
+ TRACE("(%p) ref=%d\n", This, ref);
+
+ return ref;
+}
+
+static ULONG WINAPI HTMLElementCollectionEnum_Release(IEnumVARIANT *iface)
+{
+ HTMLElementCollectionEnum *This = impl_from_IEnumVARIANT(iface);
+ LONG ref = InterlockedDecrement(&This->ref);
+
+ TRACE("(%p) ref=%d\n", This, ref);
+
+ if(!ref) {
+ IHTMLElementCollection_Release(&This->col->IHTMLElementCollection_iface);
+ heap_free(This);
+ }
+
+ return ref;
+}
+
+static HRESULT WINAPI HTMLElementCollectionEnum_Next(IEnumVARIANT *iface, ULONG celt, VARIANT *rgVar, ULONG *pCeltFetched)
+{
+ HTMLElementCollectionEnum *This = impl_from_IEnumVARIANT(iface);
+ ULONG fetched = 0;
+
+ TRACE("(%p)->(%d %p %p)\n", This, celt, rgVar, pCeltFetched);
+
+ while(This->iter+fetched < This->col->len && fetched < celt) {
+ V_VT(rgVar+fetched) = VT_DISPATCH;
+ V_DISPATCH(rgVar+fetched) = (IDispatch*)&This->col->elems[This->iter+fetched]->IHTMLElement_iface;
+ IDispatch_AddRef(V_DISPATCH(rgVar+fetched));
+ fetched++;
+ }
+
+ This->iter += fetched;
+ if(pCeltFetched)
+ *pCeltFetched = fetched;
+ return fetched == celt ? S_OK : S_FALSE;
+}
+
+static HRESULT WINAPI HTMLElementCollectionEnum_Skip(IEnumVARIANT *iface, ULONG celt)
+{
+ HTMLElementCollectionEnum *This = impl_from_IEnumVARIANT(iface);
+
+ TRACE("(%p)->(%d)\n", This, celt);
+
+ if(This->iter + celt > This->col->len) {
+ This->iter = This->col->len;
+ return S_FALSE;
+ }
+
+ This->iter += celt;
+ return S_OK;
+}
+
+static HRESULT WINAPI HTMLElementCollectionEnum_Reset(IEnumVARIANT *iface)
+{
+ HTMLElementCollectionEnum *This = impl_from_IEnumVARIANT(iface);
+
+ TRACE("(%p)->()\n", This);
+
+ This->iter = 0;
+ return S_OK;
+}
+
+static HRESULT WINAPI HTMLElementCollectionEnum_Clone(IEnumVARIANT *iface, IEnumVARIANT **ppEnum)
+{
+ HTMLElementCollectionEnum *This = impl_from_IEnumVARIANT(iface);
+ FIXME("(%p)->(%p)\n", This, ppEnum);
+ return E_NOTIMPL;
+}
+
+static const IEnumVARIANTVtbl HTMLElementCollectionEnumVtbl = {
+ HTMLElementCollectionEnum_QueryInterface,
+ HTMLElementCollectionEnum_AddRef,
+ HTMLElementCollectionEnum_Release,
+ HTMLElementCollectionEnum_Next,
+ HTMLElementCollectionEnum_Skip,
+ HTMLElementCollectionEnum_Reset,
+ HTMLElementCollectionEnum_Clone
+};
+
static inline HTMLElementCollection *impl_from_IHTMLElementCollection(IHTMLElementCollection *iface)
{
return CONTAINING_RECORD(iface, HTMLElementCollection, IHTMLElementCollection_iface);
{
HTMLElementCollection *This = impl_from_IHTMLElementCollection(iface);
- *ppv = NULL;
-
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IHTMLElementCollection_iface;
}else if(IsEqualGUID(&IID_IHTMLElementCollection, riid)) {
- TRACE("(%p)->(IID_IHTMLElementCollection %p)\n", This, ppv);
*ppv = &This->IHTMLElementCollection_iface;
}else if(dispex_query_interface(&This->dispex, riid, ppv)) {
return *ppv ? S_OK : E_NOINTERFACE;
+ }else {
+ *ppv = NULL;
+ FIXME("Unsupported iface %s\n", debugstr_mshtml_guid(riid));
+ return E_NOINTERFACE;
}
- if(*ppv) {
- IHTMLElementCollection_AddRef(&This->IHTMLElementCollection_iface);
- return S_OK;
- }
-
- FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
- return E_NOINTERFACE;
+ IHTMLElementCollection_AddRef(&This->IHTMLElementCollection_iface);
+ return S_OK;
}
static ULONG WINAPI HTMLElementCollection_AddRef(IHTMLElementCollection *iface)
IUnknown **p)
{
HTMLElementCollection *This = impl_from_IHTMLElementCollection(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ HTMLElementCollectionEnum *ret;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ ret = heap_alloc(sizeof(*ret));
+ if(!ret)
+ return E_OUTOFMEMORY;
+
+ ret->IEnumVARIANT_iface.lpVtbl = &HTMLElementCollectionEnumVtbl;
+ ret->ref = 1;
+ ret->iter = 0;
+
+ IHTMLElementCollection_AddRef(&This->IHTMLElementCollection_iface);
+ ret->col = This;
+
+ *p = (IUnknown*)&ret->IEnumVARIANT_iface;
+ return S_OK;
}
static BOOL is_elem_id(HTMLElement *elem, LPCWSTR name)
static BOOL is_elem_name(HTMLElement *elem, LPCWSTR name)
{
const PRUnichar *str;
- nsAString nsstr, nsname;
+ nsAString nsstr;
BOOL ret = FALSE;
nsresult nsres;
return TRUE;
}
- nsAString_InitDepend(&nsname, nameW);
- nsres = nsIDOMHTMLElement_GetAttribute(elem->nselem, &nsname, &nsstr);
- nsAString_Finish(&nsname);
+ nsres = get_elem_attr_value(elem->nselem, nameW, &nsstr, &str);
if(NS_SUCCEEDED(nsres)) {
- nsAString_GetData(&nsstr, &str);
ret = !strcmpiW(str, name);
+ nsAString_Finish(&nsstr);
}
- nsAString_Finish(&nsstr);
return ret;
}
return HTMLElementCollection_Create(buf.buf, buf.len);
}
+HRESULT get_elem_source_index(HTMLElement *elem, LONG *ret)
+{
+ elem_vector_t buf = {NULL, 0, 8};
+ nsIDOMNode *parent_node, *iter;
+ UINT16 parent_type;
+ HTMLDOMNode *node;
+ int i;
+ nsresult nsres;
+ HRESULT hres;
+
+ iter = elem->node.nsnode;
+ nsIDOMNode_AddRef(iter);
+
+ /* Find document or document fragment parent. */
+ while(1) {
+ nsres = nsIDOMNode_GetParentNode(iter, &parent_node);
+ nsIDOMNode_Release(iter);
+ assert(nsres == NS_OK);
+ if(!parent_node)
+ break;
+
+ nsres = nsIDOMNode_GetNodeType(parent_node, &parent_type);
+ assert(nsres == NS_OK);
+
+ if(parent_type != ELEMENT_NODE) {
+ if(parent_type != DOCUMENT_NODE && parent_type != DOCUMENT_FRAGMENT_NODE)
+ FIXME("Unexpected parent_type %d\n", parent_type);
+ break;
+ }
+
+ iter = parent_node;
+ }
+
+ if(!parent_node) {
+ *ret = -1;
+ return S_OK;
+ }
+
+ hres = get_node(elem->node.doc, parent_node, TRUE, &node);
+ nsIDOMNode_Release(parent_node);
+ if(FAILED(hres))
+ return hres;
+
+
+ /* Create all children collection and find the element in it.
+ * This could be optimized if we ever find the reason. */
+ buf.buf = heap_alloc(buf.size*sizeof(*buf.buf));
+ if(!buf.buf) {
+ IHTMLDOMNode_Release(&node->IHTMLDOMNode_iface);
+ return E_OUTOFMEMORY;
+ }
+
+ create_all_list(elem->node.doc, node, &buf);
+
+ for(i=0; i < buf.len; i++) {
+ if(buf.buf[i] == elem)
+ break;
+ }
+ IHTMLDOMNode_Release(&node->IHTMLDOMNode_iface);
+ heap_free(buf.buf);
+ if(i == buf.len) {
+ FIXME("The element is not in parent's child list?\n");
+ return E_UNEXPECTED;
+ }
+
+ *ret = i;
+ return S_OK;
+}
+
static IHTMLElementCollection *HTMLElementCollection_Create(HTMLElement **elems, DWORD len)
{
HTMLElementCollection *ret = heap_alloc_zero(sizeof(HTMLElementCollection));
static const WCHAR mouseupW[] = {'m','o','u','s','e','u','p',0};
static const WCHAR onmouseupW[] = {'o','n','m','o','u','s','e','u','p',0};
+static const WCHAR mousewheelW[] = {'m','o','u','s','e','w','h','e','e','l',0};
+static const WCHAR onmousewheelW[] = {'o','n','m','o','u','s','e','w','h','e','e','l',0};
+
static const WCHAR pasteW[] = {'p','a','s','t','e',0};
static const WCHAR onpasteW[] = {'o','n','p','a','s','t','e',0};
EVENT_DEFAULTLISTENER|EVENT_BUBBLE},
{mouseupW, onmouseupW, EVENTT_MOUSE, DISPID_EVMETH_ONMOUSEUP,
EVENT_DEFAULTLISTENER|EVENT_BUBBLE},
+ {mousewheelW, onmousewheelW, EVENTT_MOUSE, DISPID_EVMETH_ONMOUSEWHEEL,
+ 0},
{pasteW, onpasteW, EVENTT_NONE, DISPID_EVMETH_ONPASTE,
EVENT_CANCELABLE},
{readystatechangeW, onreadystatechangeW, EVENTT_NONE, DISPID_EVMETH_ONREADYSTATECHANGE,
{selectstartW, onselectstartW, EVENTT_MOUSE, DISPID_EVMETH_ONSELECTSTART,
EVENT_CANCELABLE},
{submitW, onsubmitW, EVENTT_HTML, DISPID_EVMETH_ONSUBMIT,
- EVENT_DEFAULTLISTENER|EVENT_BUBBLE|EVENT_CANCELABLE}
+ EVENT_DEFAULTLISTENER|EVENT_BUBBLE|EVENT_CANCELABLE|EVENT_HASDEFAULTHANDLERS}
};
eventid_t str_to_eid(LPCWSTR str)
{
HTMLEventObj *This = impl_from_IHTMLEventObj(iface);
- *ppv = NULL;
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IHTMLEventObj_iface;
}else if(IsEqualGUID(&IID_IHTMLEventObj, riid)) {
- TRACE("(%p)->(IID_IHTMLEventObj %p)\n", This, ppv);
*ppv = &This->IHTMLEventObj_iface;
}else if(dispex_query_interface(&This->dispex, riid, ppv)) {
return *ppv ? S_OK : E_NOINTERFACE;
+ }else {
+ *ppv = NULL;
+ WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+ return E_NOINTERFACE;
}
- if(*ppv) {
- IUnknown_AddRef((IUnknown*)*ppv);
- return S_OK;
- }
-
- WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
- return E_NOINTERFACE;
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
}
static ULONG WINAPI HTMLEventObj_AddRef(IHTMLEventObj *iface)
return S_OK;
if(event_info[eid].flags & EVENT_BIND_TO_BODY) {
- nsIDOMHTMLElement *nsbody;
- nsresult nsres;
-
- nsres = nsIDOMHTMLDocument_GetBody(doc->nsdoc, &nsbody);
- if(NS_SUCCEEDED(nsres) && nsbody) {
- nsnode = (nsIDOMNode*)nsbody;
- }else {
- ERR("GetBody failed: %08x\n", nsres);
- return E_UNEXPECTED;
- }
+ nsnode = doc->node.nsnode;
+ nsIDOMNode_AddRef(nsnode);
}
doc->event_vector[eid] = TRUE;
}
}
-void check_event_attr(HTMLDocumentNode *doc, nsIDOMElement *nselem)
+void check_event_attr(HTMLDocumentNode *doc, nsIDOMHTMLElement *nselem)
{
const PRUnichar *attr_value;
- nsAString attr_name_str, attr_value_str;
+ nsAString attr_value_str;
IDispatch *disp;
HTMLDOMNode *node;
int i;
nsresult nsres;
HRESULT hres;
- nsAString_Init(&attr_value_str, NULL);
- nsAString_Init(&attr_name_str, NULL);
-
for(i=0; i < EVENTID_LAST; i++) {
- nsAString_SetData(&attr_name_str, event_info[i].attr_name);
- nsres = nsIDOMElement_GetAttribute(nselem, &attr_name_str, &attr_value_str);
+ nsres = get_elem_attr_value(nselem, event_info[i].attr_name, &attr_value_str, &attr_value);
if(NS_SUCCEEDED(nsres)) {
- nsAString_GetData(&attr_value_str, &attr_value);
if(!*attr_value)
continue;
}
IDispatch_Release(disp);
}
+ nsAString_Finish(&attr_value_str);
}
}
-
- nsAString_Finish(&attr_value_str);
- nsAString_Finish(&attr_name_str);
}
HRESULT doc_init_events(HTMLDocumentNode *doc)
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
+#pragma once
+
typedef enum {
EVENTID_ABORT,
EVENTID_BEFOREUNLOAD,
EVENTID_MOUSEOUT,
EVENTID_MOUSEOVER,
EVENTID_MOUSEUP,
+ EVENTID_MOUSEWHEEL,
EVENTID_PASTE,
EVENTID_READYSTATECHANGE,
EVENTID_RESIZE,
} eventid_t;
eventid_t str_to_eid(LPCWSTR) DECLSPEC_HIDDEN;
-void check_event_attr(HTMLDocumentNode*,nsIDOMElement*) DECLSPEC_HIDDEN;
+void check_event_attr(HTMLDocumentNode*,nsIDOMHTMLElement*) DECLSPEC_HIDDEN;
void release_event_target(event_target_t*) DECLSPEC_HIDDEN;
void fire_event(HTMLDocumentNode*,eventid_t,BOOL,nsIDOMNode*,nsIDOMEvent*,IDispatch*) DECLSPEC_HIDDEN;
HRESULT set_event_handler(event_target_t**,HTMLDocumentNode*,eventid_t,VARIANT*) DECLSPEC_HIDDEN;
static HRESULT WINAPI HTMLFormElement_put_target(IHTMLFormElement *iface, BSTR v)
{
HTMLFormElement *This = impl_from_IHTMLFormElement(iface);
- FIXME("(%p)->(%s)\n", This, wine_dbgstr_w(v));
- return E_NOTIMPL;
+ nsAString str;
+ nsresult nsres;
+
+ TRACE("(%p)->(%s)\n", This, wine_dbgstr_w(v));
+
+ nsAString_InitDepend(&str, v);
+
+ nsres = nsIDOMHTMLFormElement_SetTarget(This->nsform, &str);
+
+ nsAString_Finish(&str);
+ if (NS_FAILED(nsres)) {
+ ERR("Set Target(%s) failed: %08x\n", wine_dbgstr_w(v), nsres);
+ return E_FAIL;
+ }
+
+ return S_OK;
}
static HRESULT WINAPI HTMLFormElement_get_target(IHTMLFormElement *iface, BSTR *p)
{
HTMLFormElement *This = impl_from_IHTMLFormElement(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ nsAString str;
+ nsresult nsres;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ nsAString_Init(&str, NULL);
+ nsres = nsIDOMHTMLFormElement_GetTarget(This->nsform, &str);
+
+ return return_nsstr(nsres, &str, p);
}
static HRESULT WINAPI HTMLFormElement_put_name(IHTMLFormElement *iface, BSTR v)
static HRESULT WINAPI HTMLFormElement_reset(IHTMLFormElement *iface)
{
HTMLFormElement *This = impl_from_IHTMLFormElement(iface);
- FIXME("(%p)->()\n", This);
- return E_NOTIMPL;
+ nsresult nsres;
+
+ TRACE("(%p)->()\n", This);
+ nsres = nsIDOMHTMLFormElement_Reset(This->nsform);
+ if (NS_FAILED(nsres)) {
+ ERR("Reset failed: %08x\n", nsres);
+ return E_FAIL;
+ }
+
+ return S_OK;
}
static HRESULT WINAPI HTMLFormElement_put_length(IHTMLFormElement *iface, LONG v)
{
HTMLFormElement *This = impl_from_HTMLDOMNode(iface);
nsIDOMHTMLCollection *elements;
- nsAString nsname, nsstr;
+ nsAString nsstr, name_str;
UINT32 len, i;
nsresult nsres;
HRESULT hres = DISP_E_UNKNOWNNAME;
}
}
- nsAString_InitDepend(&nsname, nameW);
nsAString_Init(&nsstr, NULL);
for(i = 0; i < len; ++i) {
nsIDOMNode *nsitem;
}
/* compare by name attr */
- nsres = nsIDOMHTMLElement_GetAttribute(nshtml_elem, &nsname, &nsstr);
+ nsres = get_elem_attr_value(nshtml_elem, nameW, &name_str, &str);
nsIDOMHTMLElement_Release(nshtml_elem);
- nsAString_GetData(&nsstr, &str);
- if(!strcmpiW(str, name)) {
- /* FIXME: using index for dispid */
- *pid = MSHTML_DISPID_CUSTOM_MIN + i;
- hres = S_OK;
- break;
+ if(NS_SUCCEEDED(nsres)) {
+ if(!strcmpiW(str, name)) {
+ nsAString_Finish(&name_str);
+ /* FIXME: using index for dispid */
+ *pid = MSHTML_DISPID_CUSTOM_MIN + i;
+ hres = S_OK;
+ break;
+ }
+ nsAString_Finish(&name_str);
}
}
- nsAString_Finish(&nsname);
- nsAString_Finish(&nsstr);
+ nsAString_Finish(&nsstr);
nsIDOMHTMLCollection_Release(elements);
-
return hres;
}
return S_OK;
}
+static HRESULT HTMLFormElement_handle_event(HTMLDOMNode *iface, eventid_t eid, nsIDOMEvent *event, BOOL *prevent_default)
+{
+ HTMLFormElement *This = impl_from_HTMLDOMNode(iface);
+
+ if(eid == EVENTID_SUBMIT) {
+ *prevent_default = TRUE;
+ return IHTMLFormElement_submit(&This->IHTMLFormElement_iface);
+ }
+
+ return HTMLElement_handle_event(&This->element.node, eid, event, prevent_default);
+}
+
static const NodeImplVtbl HTMLFormElementImplVtbl = {
HTMLFormElement_QI,
HTMLElement_destructor,
HTMLElement_cpc,
HTMLElement_clone,
- HTMLElement_handle_event,
+ HTMLFormElement_handle_event,
HTMLElement_get_attr_col,
NULL,
NULL,
{
HTMLTitleElement *This = HTMLTitleElement_from_HTMLDOMNode(iface);
- if(IsEqualGUID(&IID_IHTMLTitleElement, riid)) {
- TRACE("(%p)->(IID_IHTMLTitleElement %p)\n", This, ppv);
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+
+ if(IsEqualGUID(&IID_IHTMLTitleElement, riid))
*ppv = &This->IHTMLTitleElement_iface;
- }else {
+ else
return HTMLElement_QI(&This->element.node, riid, ppv);
- }
IUnknown_AddRef((IUnknown*)*ppv);
return S_OK;
{
HTMLHeadElement *This = impl_from_HTMLDOMNode(iface);
- if(IsEqualGUID(&IID_IHTMLHeadElement, riid)) {
- TRACE("(%p)->(IID_IHTMLHeadElement %p)\n", This, ppv);
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+
+ if(IsEqualGUID(&IID_IHTMLHeadElement, riid))
*ppv = &This->IHTMLHeadElement_iface;
- }else {
+ else
return HTMLElement_QI(&This->element.node, riid, ppv);
- }
IUnknown_AddRef((IUnknown*)*ppv);
return S_OK;
static HRESULT WINAPI HTMLImgElement_put_isMap(IHTMLImgElement *iface, VARIANT_BOOL v)
{
HTMLImgElement *This = impl_from_IHTMLImgElement(iface);
- FIXME("(%p)->(%x)\n", This, v);
- return E_NOTIMPL;
+ nsresult nsres;
+
+ TRACE("(%p)->(%x)\n", This, v);
+
+ nsres = nsIDOMHTMLImageElement_SetIsMap(This->nsimg, v != VARIANT_FALSE);
+ if (NS_FAILED(nsres)) {
+ ERR("Set IsMap failed: %08x\n", nsres);
+ return E_FAIL;
+ }
+
+ return S_OK;
}
static HRESULT WINAPI HTMLImgElement_get_isMap(IHTMLImgElement *iface, VARIANT_BOOL *p)
{
HTMLImgElement *This = impl_from_IHTMLImgElement(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ cpp_bool b;
+ nsresult nsres;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ if (p == NULL)
+ return E_INVALIDARG;
+
+ nsres = nsIDOMHTMLImageElement_GetIsMap(This->nsimg, &b);
+ if (NS_FAILED(nsres)) {
+ ERR("Get IsMap failed: %08x\n", nsres);
+ return E_FAIL;
+ }
+ *p = b ? VARIANT_TRUE : VARIANT_FALSE;
+ return S_OK;
}
static HRESULT WINAPI HTMLImgElement_put_useMap(IHTMLImgElement *iface, BSTR v)
static HRESULT WINAPI HTMLImgElement_put_align(IHTMLImgElement *iface, BSTR v)
{
HTMLImgElement *This = impl_from_IHTMLImgElement(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_w(v));
- return E_NOTIMPL;
+ nsAString str;
+ nsresult nsres;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_w(v));
+
+ nsAString_InitDepend(&str, v);
+
+ nsres = nsIDOMHTMLImageElement_SetAlign(This->nsimg, &str);
+ nsAString_Finish(&str);
+ if (NS_FAILED(nsres)){
+ ERR("Set Align(%s) failed: %08x\n", debugstr_w(v), nsres);
+ return E_FAIL;
+ }
+
+ return S_OK;
}
static HRESULT WINAPI HTMLImgElement_get_align(IHTMLImgElement *iface, BSTR *p)
{
HTMLImgElement *This = impl_from_IHTMLImgElement(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ nsAString str;
+ nsresult nsres;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ nsAString_Init(&str, NULL);
+ nsres = nsIDOMHTMLImageElement_GetAlign(This->nsimg, &str);
+
+ return return_nsstr(nsres, &str, p);
}
static HRESULT WINAPI HTMLImgElement_put_onload(IHTMLImgElement *iface, VARIANT v)
{
HTMLImageElementFactory *This = impl_from_IHTMLImageElementFactory(iface);
- *ppv = NULL;
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_Unknown %p)\n", This, ppv);
*ppv = &This->IHTMLImageElementFactory_iface;
}else if(IsEqualGUID(&IID_IHTMLImageElementFactory, riid)) {
- TRACE("(%p)->(IID_IHTMLImageElementFactory %p)\n", This, ppv);
*ppv = &This->IHTMLImageElementFactory_iface;
- }else if(dispex_query_interface(&This->dispex, riid, ppv))
+ }else if(dispex_query_interface(&This->dispex, riid, ppv)) {
return *ppv ? S_OK : E_NOINTERFACE;
-
- if(*ppv) {
- IUnknown_AddRef((IUnknown*)*ppv);
- return S_OK;
+ }else {
+ *ppv = NULL;
+ WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+ return E_NOINTERFACE;
}
- WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
- return E_NOINTERFACE;
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
}
static ULONG WINAPI HTMLImageElementFactory_AddRef(IHTMLImageElementFactory *iface)
UINT *pctinfo)
{
HTMLImageElementFactory *This = impl_from_IHTMLImageElementFactory(iface);
- FIXME("(%p)->(%p)\n", This, pctinfo);
- return E_NOTIMPL;
+ return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
}
static HRESULT WINAPI HTMLImageElementFactory_GetTypeInfo(IHTMLImageElementFactory *iface,
UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
{
HTMLImageElementFactory *This = impl_from_IHTMLImageElementFactory(iface);
- FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo);
- return E_NOTIMPL;
+ return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
}
static HRESULT WINAPI HTMLImageElementFactory_GetIDsOfNames(IHTMLImageElementFactory *iface,
DISPID *rgDispId)
{
HTMLImageElementFactory *This = impl_from_IHTMLImageElementFactory(iface);
- FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames,
- cNames, lcid, rgDispId);
- return E_NOTIMPL;
+ return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames, lcid, rgDispId);
}
static HRESULT WINAPI HTMLImageElementFactory_Invoke(IHTMLImageElementFactory *iface,
UINT *puArgErr)
{
HTMLImageElementFactory *This = impl_from_IHTMLImageElementFactory(iface);
- FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid),
- lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
- return E_NOTIMPL;
+ return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid, wFlags,
+ pDispParams, pVarResult, pExcepInfo, puArgErr);
}
static LONG var_to_size(const VARIANT *v)
static HRESULT WINAPI HTMLInputElement_get_form(IHTMLInputElement *iface, IHTMLFormElement **p)
{
HTMLInputElement *This = impl_from_IHTMLInputElement(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ nsIDOMHTMLFormElement *nsform;
+ HTMLDOMNode *node;
+ HRESULT hres;
+ nsresult nsres;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ nsres = nsIDOMHTMLInputElement_GetForm(This->nsinput, &nsform);
+ if (NS_FAILED(nsres) || nsform == NULL) {
+ ERR("GetForm failed: %08x, nsform: %p\n", nsres, nsform);
+ *p = NULL;
+ return E_FAIL;
+ }
+
+ hres = get_node(This->element.node.doc, (nsIDOMNode*)nsform, TRUE, &node);
+ nsIDOMHTMLFormElement_Release(nsform);
+ if (FAILED(hres))
+ return hres;
+
+ hres = IHTMLDOMNode_QueryInterface(&node->IHTMLDOMNode_iface, &IID_IHTMLElement, (void**)p);
+
+ node_release(node);
+ return hres;
}
static HRESULT WINAPI HTMLInputElement_put_size(IHTMLInputElement *iface, LONG v)
{
HTMLInputElement *This = impl_from_IHTMLInputElement(iface);
- FIXME("(%p)->(%d)\n", This, v);
- return E_NOTIMPL;
+ UINT32 val = v;
+ nsresult nsres;
+
+ TRACE("(%p)->(%d)\n", This, v);
+ if (v <= 0)
+ return CTL_E_INVALIDPROPERTYVALUE;
+
+ nsres = nsIDOMHTMLInputElement_SetSize(This->nsinput, val);
+ if (NS_FAILED(nsres)) {
+ ERR("Set Size(%u) failed: %08x\n", val, nsres);
+ return E_FAIL;
+ }
+ return S_OK;
}
static HRESULT WINAPI HTMLInputElement_get_size(IHTMLInputElement *iface, LONG *p)
{
HTMLInputElement *This = impl_from_IHTMLInputElement(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ UINT32 val;
+ nsresult nsres;
+
+ TRACE("(%p)->(%p)\n", This, p);
+ if (p == NULL)
+ return E_INVALIDARG;
+
+ nsres = nsIDOMHTMLInputElement_GetSize(This->nsinput, &val);
+ if (NS_FAILED(nsres)) {
+ ERR("Get Size failed: %08x\n", nsres);
+ return E_FAIL;
+ }
+ *p = val;
+ return S_OK;
}
static HRESULT WINAPI HTMLInputElement_put_maxLength(IHTMLInputElement *iface, LONG v)
static HRESULT WINAPI HTMLInputElement_put_readOnly(IHTMLInputElement *iface, VARIANT_BOOL v)
{
HTMLInputElement *This = impl_from_IHTMLInputElement(iface);
- FIXME("(%p)->(%x)\n", This, v);
- return E_NOTIMPL;
+ nsresult nsres;
+
+ TRACE("(%p)->(%x)\n", This, v);
+
+ nsres = nsIDOMHTMLInputElement_SetReadOnly(This->nsinput, v != VARIANT_FALSE);
+ if (NS_FAILED(nsres)) {
+ ERR("Set ReadOnly Failed: %08x\n", nsres);
+ return E_FAIL;
+ }
+ return S_OK;
}
static HRESULT WINAPI HTMLInputElement_get_readOnly(IHTMLInputElement *iface, VARIANT_BOOL *p)
{
HTMLInputElement *This = impl_from_IHTMLInputElement(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ nsresult nsres;
+ cpp_bool b;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ nsres = nsIDOMHTMLInputElement_GetReadOnly(This->nsinput, &b);
+ if (NS_FAILED(nsres)) {
+ ERR("Get ReadOnly Failed: %08x\n", nsres);
+ return E_FAIL;
+ }
+ *p = b ? VARIANT_TRUE : VARIANT_FALSE;
+ return S_OK;
}
static HRESULT WINAPI HTMLInputElement_createTextRange(IHTMLInputElement *iface, IHTMLTxtRange **range)
static HRESULT WINAPI HTMLLabelElement_get_htmlFor(IHTMLLabelElement *iface, BSTR *p)
{
HTMLLabelElement *This = impl_from_IHTMLLabelElement(iface);
- nsAString for_str, val_str;
- nsresult nsres;
- HRESULT hres;
TRACE("(%p)->(%p)\n", This, p);
- nsAString_InitDepend(&for_str, forW);
- nsAString_Init(&val_str, NULL);
- nsres = nsIDOMHTMLElement_GetAttribute(This->element.nselem, &for_str, &val_str);
- nsAString_Finish(&for_str);
- if(NS_SUCCEEDED(nsres)) {
- const PRUnichar *val;
-
- nsAString_GetData(&val_str, &val);
- *p = SysAllocString(val);
- hres = *p ? S_OK : E_OUTOFMEMORY;
- }else {
- ERR("GetAttribute failed: %08x\n", nsres);
- hres = E_FAIL;
- }
-
- nsAString_Finish(&val_str);
- return hres;
+ return elem_string_attr_getter(&This->element, forW, FALSE, p);
}
static HRESULT WINAPI HTMLLabelElement_put_accessKey(IHTMLLabelElement *iface, BSTR v)
static HRESULT WINAPI HTMLLinkElement_put_rev(IHTMLLinkElement *iface, BSTR v)
{
HTMLLinkElement *This = impl_from_IHTMLLinkElement(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_w(v));
- return E_NOTIMPL;
+ nsAString nsstr;
+ nsresult nsres;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_w(v));
+
+ nsAString_InitDepend(&nsstr, v);
+ nsres = nsIDOMHTMLLinkElement_SetRev(This->nslink, &nsstr);
+ nsAString_Finish(&nsstr);
+ if(NS_FAILED(nsres)) {
+ ERR("SetRev failed: %08x\n", nsres);
+ return E_FAIL;
+ }
+
+ return S_OK;
}
static HRESULT WINAPI HTMLLinkElement_get_rev(IHTMLLinkElement *iface, BSTR *p)
{
HTMLLinkElement *This = impl_from_IHTMLLinkElement(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ nsAString nsstr;
+ nsresult nsres;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ nsAString_Init(&nsstr, NULL);
+ nsres = nsIDOMHTMLLinkElement_GetRev(This->nslink, &nsstr);
+ return return_nsstr(nsres, &nsstr, p);
}
static HRESULT WINAPI HTMLLinkElement_put_type(IHTMLLinkElement *iface, BSTR v)
static HRESULT WINAPI HTMLLinkElement_put_media(IHTMLLinkElement *iface, BSTR v)
{
HTMLLinkElement *This = impl_from_IHTMLLinkElement(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_w(v));
- return E_NOTIMPL;
+ nsresult nsres;
+ nsAString str;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_w(v));
+
+ nsAString_InitDepend(&str, v);
+
+ nsres = nsIDOMHTMLLinkElement_SetMedia(This->nslink, &str);
+ nsAString_Finish(&str);
+
+ if(NS_FAILED(nsres)) {
+ ERR("Set Media(%s) failed: %08x\n", debugstr_w(v), nsres);
+ return E_FAIL;
+ }
+ return S_OK;
}
static HRESULT WINAPI HTMLLinkElement_get_media(IHTMLLinkElement *iface, BSTR *p)
{
HTMLLinkElement *This = impl_from_IHTMLLinkElement(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ nsresult nsres;
+ nsAString str;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ nsAString_Init(&str, NULL);
+ nsres = nsIDOMHTMLLinkElement_GetMedia(This->nslink, &str);
+
+ return return_nsstr(nsres, &str, p);
}
static const IHTMLLinkElementVtbl HTMLLinkElementVtbl = {
{
HTMLLocation *This = impl_from_IHTMLLocation(iface);
- *ppv = NULL;
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IHTMLLocation_iface;
}else if(IsEqualGUID(&IID_IHTMLLocation, riid)) {
- TRACE("(%p)->(IID_IHTMLLocation %p)\n", This, ppv);
*ppv = &This->IHTMLLocation_iface;
}else if(dispex_query_interface(&This->dispex, riid, ppv)) {
return *ppv ? S_OK : E_NOINTERFACE;
+ }else {
+ *ppv = NULL;
+ WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+ return E_NOINTERFACE;
}
- if(*ppv) {
- IUnknown_AddRef((IUnknown*)*ppv);
- return S_OK;
- }
-
- WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
- return E_NOINTERFACE;
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
}
static ULONG WINAPI HTMLLocation_AddRef(IHTMLLocation *iface)
static HRESULT WINAPI HTMLLocation_assign(IHTMLLocation *iface, BSTR bstr)
{
HTMLLocation *This = impl_from_IHTMLLocation(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_w(bstr));
- return E_NOTIMPL;
+ TRACE("(%p)->(%s)\n", This, debugstr_w(bstr));
+ return IHTMLLocation_put_href(iface, bstr);
}
static HRESULT WINAPI HTMLLocation_toString(IHTMLLocation *iface, BSTR *String)
static HRESULT WINAPI HTMLMetaElement_get_httpEquiv(IHTMLMetaElement *iface, BSTR *p)
{
HTMLMetaElement *This = impl_from_IHTMLMetaElement(iface);
- nsAString httpequiv_str, val_str;
- nsresult nsres;
-
static const PRUnichar httpEquivW[] = {'h','t','t','p','-','e','q','u','i','v',0};
TRACE("(%p)->(%p)\n", This, p);
- nsAString_InitDepend(&httpequiv_str, httpEquivW);
- nsAString_Init(&val_str, NULL);
- nsres = nsIDOMHTMLElement_GetAttribute(This->element.nselem, &httpequiv_str, &val_str);
- nsAString_Finish(&httpequiv_str);
-
- return return_nsstr(nsres, &val_str, p);
+ return elem_string_attr_getter(&This->element, httpEquivW, TRUE, p);
}
static HRESULT WINAPI HTMLMetaElement_put_content(IHTMLMetaElement *iface, BSTR v)
static HRESULT WINAPI HTMLMetaElement_get_content(IHTMLMetaElement *iface, BSTR *p)
{
HTMLMetaElement *This = impl_from_IHTMLMetaElement(iface);
- nsAString content_str, val_str;
- nsresult nsres;
-
static const PRUnichar contentW[] = {'c','o','n','t','e','n','t',0};
TRACE("(%p)->(%p)\n", This, p);
- nsAString_InitDepend(&content_str, contentW);
- nsAString_Init(&val_str, NULL);
- nsres = nsIDOMHTMLElement_GetAttribute(This->element.nselem, &content_str, &val_str);
- nsAString_Finish(&content_str);
-
- return return_nsstr(nsres, &val_str, p);
+ return elem_string_attr_getter(&This->element, contentW, TRUE, p);
}
static HRESULT WINAPI HTMLMetaElement_put_name(IHTMLMetaElement *iface, BSTR v)
static HRESULT WINAPI HTMLMetaElement_get_name(IHTMLMetaElement *iface, BSTR *p)
{
HTMLMetaElement *This = impl_from_IHTMLMetaElement(iface);
- nsAString name_str, val_str;
- nsresult nsres;
-
static const PRUnichar nameW[] = {'n','a','m','e',0};
TRACE("(%p)->(%p)\n", This, p);
- nsAString_InitDepend(&name_str, nameW);
- nsAString_Init(&val_str, NULL);
- nsres = nsIDOMHTMLElement_GetAttribute(This->element.nselem, &name_str, &val_str);
- nsAString_Finish(&name_str);
-
- return return_nsstr(nsres, &val_str, p);
+ return elem_string_attr_getter(&This->element, nameW, TRUE, p);
}
static HRESULT WINAPI HTMLMetaElement_put_url(IHTMLMetaElement *iface, BSTR v)
return E_NOTIMPL;
}
+static const WCHAR charsetW[] = {'c','h','a','r','s','e','t',0};
+
static HRESULT WINAPI HTMLMetaElement_put_charset(IHTMLMetaElement *iface, BSTR v)
{
HTMLMetaElement *This = impl_from_IHTMLMetaElement(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_w(v));
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_w(v));
+
+ return elem_string_attr_setter(&This->element, charsetW, v);
}
static HRESULT WINAPI HTMLMetaElement_get_charset(IHTMLMetaElement *iface, BSTR *p)
{
HTMLMetaElement *This = impl_from_IHTMLMetaElement(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ return elem_string_attr_getter(&This->element, charsetW, TRUE, p);
}
static const IHTMLMetaElementVtbl HTMLMetaElementVtbl = {
nsIDOMNodeList *nslist;
} HTMLDOMChildrenCollection;
+typedef struct {
+ IEnumVARIANT IEnumVARIANT_iface;
+
+ LONG ref;
+
+ ULONG iter;
+ HTMLDOMChildrenCollection *col;
+} HTMLDOMChildrenCollectionEnum;
+
+static inline HTMLDOMChildrenCollectionEnum *impl_from_IEnumVARIANT(IEnumVARIANT *iface)
+{
+ return CONTAINING_RECORD(iface, HTMLDOMChildrenCollectionEnum, IEnumVARIANT_iface);
+}
+
+static HRESULT WINAPI HTMLDOMChildrenCollectionEnum_QueryInterface(IEnumVARIANT *iface, REFIID riid, void **ppv)
+{
+ HTMLDOMChildrenCollectionEnum *This = impl_from_IEnumVARIANT(iface);
+
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+
+ if(IsEqualGUID(riid, &IID_IUnknown)) {
+ *ppv = &This->IEnumVARIANT_iface;
+ }else if(IsEqualGUID(riid, &IID_IEnumVARIANT)) {
+ *ppv = &This->IEnumVARIANT_iface;
+ }else {
+ FIXME("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+ *ppv = NULL;
+ return E_NOINTERFACE;
+ }
+
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
+}
+
+static ULONG WINAPI HTMLDOMChildrenCollectionEnum_AddRef(IEnumVARIANT *iface)
+{
+ HTMLDOMChildrenCollectionEnum *This = impl_from_IEnumVARIANT(iface);
+ LONG ref = InterlockedIncrement(&This->ref);
+
+ TRACE("(%p) ref=%d\n", This, ref);
+
+ return ref;
+}
+
+static ULONG WINAPI HTMLDOMChildrenCollectionEnum_Release(IEnumVARIANT *iface)
+{
+ HTMLDOMChildrenCollectionEnum *This = impl_from_IEnumVARIANT(iface);
+ LONG ref = InterlockedDecrement(&This->ref);
+
+ TRACE("(%p) ref=%d\n", This, ref);
+
+ if(!ref) {
+ IHTMLDOMChildrenCollection_Release(&This->col->IHTMLDOMChildrenCollection_iface);
+ heap_free(This);
+ }
+
+ return ref;
+}
+
+static ULONG get_enum_len(HTMLDOMChildrenCollectionEnum *This)
+{
+ ULONG len;
+ nsresult nsres;
+
+ nsres = nsIDOMNodeList_GetLength(This->col->nslist, &len);
+ assert(nsres == NS_OK);
+ return len;
+}
+
+static HRESULT WINAPI HTMLDOMChildrenCollectionEnum_Next(IEnumVARIANT *iface, ULONG celt, VARIANT *rgVar, ULONG *pCeltFetched)
+{
+ HTMLDOMChildrenCollectionEnum *This = impl_from_IEnumVARIANT(iface);
+ ULONG fetched = 0, len;
+ nsIDOMNode *nsnode;
+ HTMLDOMNode *node;
+ nsresult nsres;
+ HRESULT hres;
+
+ TRACE("(%p)->(%d %p %p)\n", This, celt, rgVar, pCeltFetched);
+
+ len = get_enum_len(This);
+
+ while(This->iter+fetched < len && fetched < celt) {
+ nsres = nsIDOMNodeList_Item(This->col->nslist, This->iter+fetched, &nsnode);
+ assert(nsres == NS_OK);
+
+ hres = get_node(This->col->doc, nsnode, TRUE, &node);
+ nsIDOMNode_Release(nsnode);
+ if(FAILED(hres)) {
+ ERR("get_node failed: %08x\n", hres);
+ break;
+ }
+
+ V_VT(rgVar+fetched) = VT_DISPATCH;
+ IHTMLDOMNode_AddRef(&node->IHTMLDOMNode_iface);
+ V_DISPATCH(rgVar+fetched) = (IDispatch*)&node->IHTMLDOMNode_iface;
+ fetched++;
+ }
+
+ This->iter += fetched;
+ if(pCeltFetched)
+ *pCeltFetched = fetched;
+ return fetched == celt ? S_OK : S_FALSE;
+}
+
+static HRESULT WINAPI HTMLDOMChildrenCollectionEnum_Skip(IEnumVARIANT *iface, ULONG celt)
+{
+ HTMLDOMChildrenCollectionEnum *This = impl_from_IEnumVARIANT(iface);
+ ULONG len;
+
+ TRACE("(%p)->(%d)\n", This, celt);
+
+ len = get_enum_len(This);
+ if(This->iter + celt > len) {
+ This->iter = len;
+ return S_FALSE;
+ }
+
+ This->iter += celt;
+ return S_OK;
+}
+
+static HRESULT WINAPI HTMLDOMChildrenCollectionEnum_Reset(IEnumVARIANT *iface)
+{
+ HTMLDOMChildrenCollectionEnum *This = impl_from_IEnumVARIANT(iface);
+
+ TRACE("(%p)->()\n", This);
+
+ This->iter = 0;
+ return S_OK;
+}
+
+static HRESULT WINAPI HTMLDOMChildrenCollectionEnum_Clone(IEnumVARIANT *iface, IEnumVARIANT **ppEnum)
+{
+ HTMLDOMChildrenCollectionEnum *This = impl_from_IEnumVARIANT(iface);
+ FIXME("(%p)->(%p)\n", This, ppEnum);
+ return E_NOTIMPL;
+}
+
+static const IEnumVARIANTVtbl HTMLDOMChildrenCollectionEnumVtbl = {
+ HTMLDOMChildrenCollectionEnum_QueryInterface,
+ HTMLDOMChildrenCollectionEnum_AddRef,
+ HTMLDOMChildrenCollectionEnum_Release,
+ HTMLDOMChildrenCollectionEnum_Next,
+ HTMLDOMChildrenCollectionEnum_Skip,
+ HTMLDOMChildrenCollectionEnum_Reset,
+ HTMLDOMChildrenCollectionEnum_Clone
+};
+
static inline HTMLDOMChildrenCollection *impl_from_IHTMLDOMChildrenCollection(IHTMLDOMChildrenCollection *iface)
{
return CONTAINING_RECORD(iface, HTMLDOMChildrenCollection, IHTMLDOMChildrenCollection_iface);
{
HTMLDOMChildrenCollection *This = impl_from_IHTMLDOMChildrenCollection(iface);
- *ppv = NULL;
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IHTMLDOMChildrenCollection_iface;
}else if(IsEqualGUID(&IID_IHTMLDOMChildrenCollection, riid)) {
- TRACE("(%p)->(IID_IHTMLDOMChildrenCollection %p)\n", This, ppv);
*ppv = &This->IHTMLDOMChildrenCollection_iface;
}else if(dispex_query_interface(&This->dispex, riid, ppv)) {
return *ppv ? S_OK : E_NOINTERFACE;
+ }else {
+ *ppv = NULL;
+ WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+ return E_NOINTERFACE;
}
- if(*ppv) {
- IUnknown_AddRef((IUnknown*)*ppv);
- return S_OK;
- }
-
- WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
- return E_NOINTERFACE;
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
}
static ULONG WINAPI HTMLDOMChildrenCollection_AddRef(IHTMLDOMChildrenCollection *iface)
return S_OK;
}
-static HRESULT WINAPI HTMLDOMChildrenCollection__newEnum(IHTMLDOMChildrenCollection *iface, IUnknown **p)
+static HRESULT WINAPI HTMLDOMChildrenCollection_get__newEnum(IHTMLDOMChildrenCollection *iface, IUnknown **p)
{
HTMLDOMChildrenCollection *This = impl_from_IHTMLDOMChildrenCollection(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ HTMLDOMChildrenCollectionEnum *ret;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ ret = heap_alloc(sizeof(*ret));
+ if(!ret)
+ return E_OUTOFMEMORY;
+
+ ret->IEnumVARIANT_iface.lpVtbl = &HTMLDOMChildrenCollectionEnumVtbl;
+ ret->ref = 1;
+ ret->iter = 0;
+
+ IHTMLDOMChildrenCollection_AddRef(&This->IHTMLDOMChildrenCollection_iface);
+ ret->col = This;
+
+ *p = (IUnknown*)&ret->IEnumVARIANT_iface;
+ return S_OK;
}
static HRESULT WINAPI HTMLDOMChildrenCollection_item(IHTMLDOMChildrenCollection *iface, LONG index, IDispatch **ppItem)
HTMLDOMChildrenCollection_GetIDsOfNames,
HTMLDOMChildrenCollection_Invoke,
HTMLDOMChildrenCollection_get_length,
- HTMLDOMChildrenCollection__newEnum,
+ HTMLDOMChildrenCollection_get__newEnum,
HTMLDOMChildrenCollection_item
};
TRACE("(%p) ref=%d\n", This, ref);
if(!ref) {
+ if(This->vtbl->unlink)
+ This->vtbl->unlink(This);
This->vtbl->destructor(This);
release_dispex(&This->dispex);
heap_free(This);
HRESULT HTMLDOMNode_QI(HTMLDOMNode *This, REFIID riid, void **ppv)
{
- *ppv = NULL;
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IHTMLDOMNode_iface;
}else if(IsEqualGUID(&IID_IDispatch, riid)) {
- TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
*ppv = &This->IHTMLDOMNode_iface;
- }else if(IsEqualGUID(&IID_IDispatchEx, riid)) {
- if(This->dispex.data) {
- TRACE("(%p)->(IID_IDispatchEx %p)\n", This, ppv);
- *ppv = &This->dispex.IDispatchEx_iface;
- }else {
- FIXME("(%p)->(IID_IDispatchEx %p)\n", This, ppv);
- return E_NOINTERFACE;
- }
+ }else if(IsEqualGUID(&IID_IDispatchEx, riid) && This->dispex.data) {
+ *ppv = &This->dispex.IDispatchEx_iface;
}else if(IsEqualGUID(&IID_IHTMLDOMNode, riid)) {
- TRACE("(%p)->(IID_IHTMLDOMNode %p)\n", This, ppv);
*ppv = &This->IHTMLDOMNode_iface;
}else if(IsEqualGUID(&IID_IHTMLDOMNode2, riid)) {
- TRACE("(%p)->(IID_IHTMLDOMNode2 %p)\n", This, ppv);
*ppv = &This->IHTMLDOMNode2_iface;
}else if(IsEqualGUID(&IID_nsXPCOMCycleCollectionParticipant, riid)) {
- TRACE("(%p)->(IID_nsXPCOMCycleCollectionParticipant %p)\n", This, ppv);
*ppv = &node_ccp;
return NS_OK;
}else if(IsEqualGUID(&IID_nsCycleCollectionISupports, riid)) {
- TRACE("(%p)->(IID_nsCycleCollectionISupports %p)\n", This, ppv);
*ppv = &This->IHTMLDOMNode_iface;
return NS_OK;
}else if(dispex_query_interface(&This->dispex, riid, ppv)) {
return *ppv ? S_OK : E_NOINTERFACE;
+ }else {
+ *ppv = NULL;
+ WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+ return E_NOINTERFACE;
}
- if(*ppv) {
- IUnknown_AddRef((IUnknown*)*ppv);
- return S_OK;
- }
-
- WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
- return E_NOINTERFACE;
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
}
void HTMLDOMNode_destructor(HTMLDOMNode *This)
{
HTMLOptionElementFactory *This = impl_from_IHTMLOptionElementFactory(iface);
- *ppv = NULL;
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IHTMLOptionElementFactory_iface;
}else if(IsEqualGUID(&IID_IDispatch, riid)) {
- TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
*ppv = &This->IHTMLOptionElementFactory_iface;
}else if(IsEqualGUID(&IID_IHTMLOptionElementFactory, riid)) {
- TRACE("(%p)->(IID_IHTMLOptionElementFactory %p)\n", This, ppv);
*ppv = &This->IHTMLOptionElementFactory_iface;
+ }else if(dispex_query_interface(&This->dispex, riid, ppv)) {
+ return *ppv ? S_OK : E_NOINTERFACE;
+ }else {
+ *ppv = NULL;
+ WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+ return E_NOINTERFACE;
}
- if(*ppv) {
- IUnknown_AddRef((IUnknown*)*ppv);
- return S_OK;
- }
-
- WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
- return E_NOINTERFACE;
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
}
static ULONG WINAPI HTMLOptionElementFactory_AddRef(IHTMLOptionElementFactory *iface)
TRACE("(%p) ref=%d\n", This, ref);
- if(!ref)
+ if(!ref) {
+ release_dispex(&This->dispex);
heap_free(This);
+ }
return ref;
}
static HRESULT WINAPI HTMLOptionElementFactory_GetTypeInfoCount(IHTMLOptionElementFactory *iface, UINT *pctinfo)
{
HTMLOptionElementFactory *This = impl_from_IHTMLOptionElementFactory(iface);
- FIXME("(%p)->(%p)\n", This, pctinfo);
- return E_NOTIMPL;
+ return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
}
static HRESULT WINAPI HTMLOptionElementFactory_GetTypeInfo(IHTMLOptionElementFactory *iface, UINT iTInfo,
LCID lcid, ITypeInfo **ppTInfo)
{
HTMLOptionElementFactory *This = impl_from_IHTMLOptionElementFactory(iface);
- FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo);
- return E_NOTIMPL;
+ return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
}
static HRESULT WINAPI HTMLOptionElementFactory_GetIDsOfNames(IHTMLOptionElementFactory *iface, REFIID riid,
LCID lcid, DISPID *rgDispId)
{
HTMLOptionElementFactory *This = impl_from_IHTMLOptionElementFactory(iface);
- FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames,
- lcid, rgDispId);
- return E_NOTIMPL;
+ return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames, lcid, rgDispId);
}
static HRESULT WINAPI HTMLOptionElementFactory_Invoke(IHTMLOptionElementFactory *iface, DISPID dispIdMember,
VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
{
HTMLOptionElementFactory *This = impl_from_IHTMLOptionElementFactory(iface);
- FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid),
- lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
- return E_NOTIMPL;
+ return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid, wFlags, pDispParams,
+ pVarResult, pExcepInfo, puArgErr);
}
static HRESULT WINAPI HTMLOptionElementFactory_create(IHTMLOptionElementFactory *iface,
HTMLOptionElementFactory_create
};
+static const tid_t HTMLOptionElementFactory_iface_tids[] = {
+ IHTMLOptionElementFactory_tid,
+ 0
+};
+
+static dispex_static_data_t HTMLOptionElementFactory_dispex = {
+ NULL,
+ IHTMLOptionElementFactory_tid,
+ NULL,
+ HTMLOptionElementFactory_iface_tids
+};
+
HRESULT HTMLOptionElementFactory_Create(HTMLInnerWindow *window, HTMLOptionElementFactory **ret_ptr)
{
HTMLOptionElementFactory *ret;
ret->ref = 1;
ret->window = window;
+ init_dispex(&ret->dispex, (IUnknown*)&ret->IHTMLOptionElementFactory_iface,
+ &HTMLOptionElementFactory_dispex);
+
*ret_ptr = ret;
return S_OK;
}
{
HTMLScreen *This = impl_from_IHTMLScreen(iface);
- *ppv = NULL;
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IHTMLScreen_iface;
}else if(IsEqualGUID(&IID_IHTMLScreen, riid)) {
- TRACE("(%p)->(IID_IHTMLScreen %p)\n", This, ppv);
*ppv = &This->IHTMLScreen_iface;
}else if(dispex_query_interface(&This->dispex, riid, ppv)) {
return *ppv ? S_OK : E_NOINTERFACE;
+ }else {
+ *ppv = NULL;
+ WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+ return E_NOINTERFACE;
}
- if(*ppv) {
- IUnknown_AddRef((IUnknown*)*ppv);
- return S_OK;
- }
-
- WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
- return E_NOINTERFACE;
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
}
static ULONG WINAPI HTMLScreen_AddRef(IHTMLScreen *iface)
static HRESULT WINAPI HTMLScreen_GetTypeInfoCount(IHTMLScreen *iface, UINT *pctinfo)
{
HTMLScreen *This = impl_from_IHTMLScreen(iface);
- FIXME("(%p)\n", This);
- return E_NOTIMPL;
+ return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
}
static HRESULT WINAPI HTMLScreen_GetTypeInfo(IHTMLScreen *iface, UINT iTInfo,
LCID lcid, ITypeInfo **ppTInfo)
{
HTMLScreen *This = impl_from_IHTMLScreen(iface);
- FIXME("(%p)\n", This);
- return E_NOTIMPL;
+ return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
}
static HRESULT WINAPI HTMLScreen_GetIDsOfNames(IHTMLScreen *iface, REFIID riid,
LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
{
HTMLScreen *This = impl_from_IHTMLScreen(iface);
- FIXME("(%p)\n", This);
- return E_NOTIMPL;
+ return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames,
+ lcid, rgDispId);
}
static HRESULT WINAPI HTMLScreen_Invoke(IHTMLScreen *iface, DISPID dispIdMember,
VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
{
HTMLScreen *This = impl_from_IHTMLScreen(iface);
- FIXME("(%p)\n", This);
- return E_NOTIMPL;
+ return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid, wFlags,
+ pDispParams, pVarResult, pExcepInfo, puArgErr);
}
static HRESULT WINAPI HTMLScreen_get_colorDepth(IHTMLScreen *iface, LONG *p)
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
+#pragma once
+
typedef struct {
HTMLElement element;
static HRESULT WINAPI HTMLSelectElement_remove(IHTMLSelectElement *iface, LONG index)
{
HTMLSelectElement *This = impl_from_IHTMLSelectElement(iface);
- FIXME("(%p)->(%d)\n", This, index);
- return E_NOTIMPL;
+ nsresult nsres;
+ TRACE("(%p)->(%d)\n", This, index);
+ nsres = nsIDOMHTMLSelectElement_select_Remove(This->nsselect, index);
+ if(NS_FAILED(nsres)) {
+ ERR("Remove failed: %08x\n", nsres);
+ return E_FAIL;
+ }
+ return S_OK;
}
static HRESULT WINAPI HTMLSelectElement_put_length(IHTMLSelectElement *iface, LONG v)
{
HTMLStorage *This = impl_from_IHTMLStorage(iface);
- *ppv = NULL;
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IHTMLStorage_iface;
}else if(IsEqualGUID(&IID_IHTMLStorage, riid)) {
- TRACE("(%p)->(IID_IHTMLStorage %p)\n", This, ppv);
*ppv = &This->IHTMLStorage_iface;
}else if(dispex_query_interface(&This->dispex, riid, ppv)) {
return *ppv ? S_OK : E_NOINTERFACE;
+ }else {
+ *ppv = NULL;
+ WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+ return E_NOINTERFACE;
}
- if(*ppv) {
- IUnknown_AddRef((IUnknown*)*ppv);
- return S_OK;
- }
-
- WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
- return E_NOINTERFACE;
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
}
static ULONG WINAPI HTMLStorage_AddRef(IHTMLStorage *iface)
static const WCHAR attrBackground[] =
{'b','a','c','k','g','r','o','u','n','d',0};
+static const WCHAR attrBackgroundAttachment[] =
+ {'b','a','c','k','g','r','o','u','n','d','-','a','t','t','a','c','h','m','e','n','t',0};
static const WCHAR attrBackgroundColor[] =
{'b','a','c','k','g','r','o','u','n','d','-','c','o','l','o','r',0};
static const WCHAR attrBackgroundImage[] =
{'l','e','t','t','e','r','-','s','p','a','c','i','n','g',0};
static const WCHAR attrLineHeight[] =
{'l','i','n','e','-','h','e','i','g','h','t',0};
+static const WCHAR attrListStyle[] =
+ {'l','i','s','t','-','s','t','y','l','e',0};
static const WCHAR attrListStyleType[] =
{'l','i','s','t','-','s','t','y','l','e','-','t','y','p','e',0};
+static const WCHAR attrListStylePosition[] =
+ {'l','i','s','t','-','s','t','y','l','e','-','p','o','s','i','t','i','o','n',0};
static const WCHAR attrMargin[] =
{'m','a','r','g','i','n',0};
static const WCHAR attrMarginBottom[] =
{'m','a','r','g','i','n','-','t','o','p',0};
static const WCHAR attrMinHeight[] =
{'m','i','n','-','h','e','i','g','h','t',0};
+static const WCHAR attrMinWidth[] =
+ {'m','i','n','-','w','i','d','t','h',0};
static const WCHAR attrOutline[] =
{'o','u','t','l','i','n','e',0};
static const WCHAR attrOverflow[] =
{'p','o','s','i','t','i','o','n',0};
static const WCHAR attrRight[] =
{'r','i','g','h','t',0};
+static const WCHAR attrTableLayout[] =
+ {'t','a','b','l','e','-','l','a','y','o','u','t',0};
static const WCHAR attrTextAlign[] =
{'t','e','x','t','-','a','l','i','g','n',0};
static const WCHAR attrTextDecoration[] =
{'t','e','x','t','-','d','e','c','o','r','a','t','i','o','n',0};
static const WCHAR attrTextIndent[] =
{'t','e','x','t','-','i','n','d','e','n','t',0};
+static const WCHAR attrTextTransform[] =
+ {'t','e','x','t','-','t','r','a','n','s','f','o','r','m',0};
static const WCHAR attrTop[] =
{'t','o','p',0};
static const WCHAR attrVerticalAlign[] =
static const style_tbl_entry_t style_tbl[] = {
{attrBackground, DISPID_IHTMLSTYLE_BACKGROUND},
+ {attrBackgroundAttachment, DISPID_IHTMLSTYLE_BACKGROUNDATTACHMENT},
{attrBackgroundColor, DISPID_IHTMLSTYLE_BACKGROUNDCOLOR},
{attrBackgroundImage, DISPID_IHTMLSTYLE_BACKGROUNDIMAGE},
{attrBackgroundPosition, DISPID_IHTMLSTYLE_BACKGROUNDPOSITION},
{attrLeft, DISPID_IHTMLSTYLE_LEFT},
{attrLetterSpacing, DISPID_IHTMLSTYLE_LETTERSPACING},
{attrLineHeight, DISPID_IHTMLSTYLE_LINEHEIGHT},
+ {attrListStyle, DISPID_IHTMLSTYLE_LISTSTYLE},
+ {attrListStylePosition, DISPID_IHTMLSTYLE_LISTSTYLEPOSITION},
{attrListStyleType, DISPID_IHTMLSTYLE_LISTSTYLETYPE},
{attrMargin, DISPID_IHTMLSTYLE_MARGIN},
{attrMarginBottom, DISPID_IHTMLSTYLE_MARGINBOTTOM},
{attrMarginRight, DISPID_IHTMLSTYLE_MARGINRIGHT},
{attrMarginTop, DISPID_IHTMLSTYLE_MARGINTOP},
{attrMinHeight, DISPID_IHTMLSTYLE4_MINHEIGHT},
+ {attrMinWidth, DISPID_IHTMLSTYLE5_MINWIDTH},
{attrOutline, DISPID_IHTMLSTYLE6_OUTLINE},
{attrOverflow, DISPID_IHTMLSTYLE_OVERFLOW},
{attrOverflowX, DISPID_IHTMLSTYLE2_OVERFLOWX},
{attrPageBreakBefore, DISPID_IHTMLSTYLE_PAGEBREAKBEFORE},
{attrPosition, DISPID_IHTMLSTYLE2_POSITION},
{attrRight, DISPID_IHTMLSTYLE2_RIGHT},
+ {attrTableLayout, DISPID_IHTMLSTYLE2_TABLELAYOUT},
{attrTextAlign, DISPID_IHTMLSTYLE_TEXTALIGN},
{attrTextDecoration, DISPID_IHTMLSTYLE_TEXTDECORATION},
{attrTextIndent, DISPID_IHTMLSTYLE_TEXTINDENT},
+ {attrTextTransform, DISPID_IHTMLSTYLE_TEXTTRANSFORM},
{attrTop, DISPID_IHTMLSTYLE_TOP},
{attrVerticalAlign, DISPID_IHTMLSTYLE_VERTICALALIGN},
{attrVisibility, DISPID_IHTMLSTYLE_VISIBILITY},
nsAString str_value;
HRESULT hres;
+ if(!p)
+ return E_POINTER;
+
nsAString_Init(&str_value, NULL);
hres = get_nsstyle_attr_nsval(This->nsstyle, sid, &str_value);
{
HTMLStyle *This = impl_from_IHTMLStyle(iface);
- *ppv = NULL;
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IHTMLStyle_iface;
}else if(IsEqualGUID(&IID_IHTMLStyle, riid)) {
- TRACE("(%p)->(IID_IHTMLStyle %p)\n", This, ppv);
*ppv = &This->IHTMLStyle_iface;
}else if(IsEqualGUID(&IID_IHTMLStyle2, riid)) {
- TRACE("(%p)->(IID_IHTMLStyle2 %p)\n", This, ppv);
*ppv = &This->IHTMLStyle2_iface;
}else if(IsEqualGUID(&IID_IHTMLStyle3, riid)) {
- TRACE("(%p)->(IID_IHTMLStyle3 %p)\n", This, ppv);
*ppv = &This->IHTMLStyle3_iface;
}else if(IsEqualGUID(&IID_IHTMLStyle4, riid)) {
- TRACE("(%p)->(IID_IHTMLStyle4 %p)\n", This, ppv);
*ppv = &This->IHTMLStyle4_iface;
}else if(IsEqualGUID(&IID_IHTMLStyle5, riid)) {
- TRACE("(%p)->(IID_IHTMLStyle5 %p)\n", This, ppv);
*ppv = &This->IHTMLStyle5_iface;
}else if(IsEqualGUID(&IID_IHTMLStyle6, riid)) {
- TRACE("(%p)->(IID_IHTMLStyle6 %p)\n", This, ppv);
*ppv = &This->IHTMLStyle6_iface;
}else if(dispex_query_interface(&This->dispex, riid, ppv)) {
return *ppv ? S_OK : E_NOINTERFACE;
+ }else {
+ *ppv = NULL;
+ WARN("unsupported iface %s\n", debugstr_mshtml_guid(riid));
+ return E_NOINTERFACE;
}
- if(*ppv) {
- IUnknown_AddRef((IUnknown*)*ppv);
- return S_OK;
- }
-
- WARN("unsupported %s\n", debugstr_guid(riid));
- return E_NOINTERFACE;
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
}
static ULONG WINAPI HTMLStyle_AddRef(IHTMLStyle *iface)
static HRESULT WINAPI HTMLStyle_put_backgroundAttachment(IHTMLStyle *iface, BSTR v)
{
HTMLStyle *This = impl_from_IHTMLStyle(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_w(v));
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_w(v));
+
+ return set_style_attr(This, STYLEID_BACKGROUND_ATTACHMENT, v, 0);
}
static HRESULT WINAPI HTMLStyle_get_backgroundAttachment(IHTMLStyle *iface, BSTR *p)
{
HTMLStyle *This = impl_from_IHTMLStyle(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ return get_style_attr(This, STYLEID_BACKGROUND_ATTACHMENT, p);
}
static HRESULT WINAPI HTMLStyle_put_backgroundPosition(IHTMLStyle *iface, BSTR v)
static HRESULT WINAPI HTMLStyle_put_textTransform(IHTMLStyle *iface, BSTR v)
{
HTMLStyle *This = impl_from_IHTMLStyle(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_w(v));
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_w(v));
+
+ return set_style_attr(This, STYLEID_TEXT_TRANSFORM, v, 0);
}
static HRESULT WINAPI HTMLStyle_get_textTransform(IHTMLStyle *iface, BSTR *p)
{
HTMLStyle *This = impl_from_IHTMLStyle(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ return get_style_attr(This, STYLEID_TEXT_TRANSFORM, p);
}
static HRESULT WINAPI HTMLStyle_put_textAlign(IHTMLStyle *iface, BSTR v)
static HRESULT WINAPI HTMLStyle_put_textIndent(IHTMLStyle *iface, VARIANT v)
{
HTMLStyle *This = impl_from_IHTMLStyle(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
+
+ return set_nsstyle_attr_var(This->nsstyle, STYLEID_TEXT_INDENT, &v, ATTR_FIX_PX);
}
static HRESULT WINAPI HTMLStyle_get_textIndent(IHTMLStyle *iface, VARIANT *p)
{
HTMLStyle *This = impl_from_IHTMLStyle(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ return get_nsstyle_attr_var(This->nsstyle, STYLEID_TEXT_INDENT, p, 0);
}
static HRESULT WINAPI HTMLStyle_put_lineHeight(IHTMLStyle *iface, VARIANT v)
{
HTMLStyle *This = impl_from_IHTMLStyle(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
+
+ return set_nsstyle_attr_var(This->nsstyle, STYLEID_LINE_HEIGHT, &v, 0);
}
static HRESULT WINAPI HTMLStyle_get_lineHeight(IHTMLStyle *iface, VARIANT *p)
{
HTMLStyle *This = impl_from_IHTMLStyle(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ return get_nsstyle_attr_var(This->nsstyle, STYLEID_LINE_HEIGHT, p, 0);
}
static HRESULT WINAPI HTMLStyle_put_marginTop(IHTMLStyle *iface, VARIANT v)
static HRESULT WINAPI HTMLStyle_put_listStylePosition(IHTMLStyle *iface, BSTR v)
{
HTMLStyle *This = impl_from_IHTMLStyle(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_w(v));
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_w(v));
+
+ return set_style_attr(This, STYLEID_LISTSTYLEPOSITION, v, 0);
}
static HRESULT WINAPI HTMLStyle_get_listStylePosition(IHTMLStyle *iface, BSTR *p)
{
HTMLStyle *This = impl_from_IHTMLStyle(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ return get_style_attr(This, STYLEID_LISTSTYLEPOSITION, p);
}
static HRESULT WINAPI HTMLStyle_put_listStyleImage(IHTMLStyle *iface, BSTR v)
static HRESULT WINAPI HTMLStyle_put_listStyle(IHTMLStyle *iface, BSTR v)
{
HTMLStyle *This = impl_from_IHTMLStyle(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_w(v));
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_w(v));
+
+ return set_style_attr(This, STYLEID_LIST_STYLE, v, 0);
}
static HRESULT WINAPI HTMLStyle_get_listStyle(IHTMLStyle *iface, BSTR *p)
{
HTMLStyle *This = impl_from_IHTMLStyle(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ return get_style_attr(This, STYLEID_LIST_STYLE, p);
}
static HRESULT WINAPI HTMLStyle_put_whiteSpace(IHTMLStyle *iface, BSTR v)
static HRESULT WINAPI HTMLStyle_put_pixelTop(IHTMLStyle *iface, LONG v)
{
HTMLStyle *This = impl_from_IHTMLStyle(iface);
- FIXME("(%p)->()\n", This);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%d)\n", This, v);
+
+ return set_style_pxattr(This->nsstyle, STYLEID_TOP, v);
}
static HRESULT WINAPI HTMLStyle_get_pixelTop(IHTMLStyle *iface, LONG *p)
{
HTMLStyle *This = impl_from_IHTMLStyle(iface);
- FIXME("(%p)->()\n", This);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ return get_nsstyle_pixel_val(This, STYLEID_TOP, p);
}
static HRESULT WINAPI HTMLStyle_put_pixelLeft(IHTMLStyle *iface, LONG v)
static HRESULT WINAPI HTMLStyle_get_pixelWidth(IHTMLStyle *iface, LONG *p)
{
HTMLStyle *This = impl_from_IHTMLStyle(iface);
- FIXME("(%p)->()\n", This);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ return get_nsstyle_pixel_val(This, STYLEID_WIDTH, p);
}
static HRESULT WINAPI HTMLStyle_put_pixelHeight(IHTMLStyle *iface, LONG v)
{
HTMLStyle *This = impl_from_IHTMLStyle(iface);
- FIXME("(%p)->()\n", This);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%d)\n", This, v);
+
+ return set_style_pxattr(This->nsstyle, STYLEID_HEIGHT, v);
}
static HRESULT WINAPI HTMLStyle_get_pixelHeight(IHTMLStyle *iface, LONG *p)
{
HTMLStyle *This = impl_from_IHTMLStyle(iface);
- FIXME("(%p)->()\n", This);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ return get_nsstyle_pixel_val(This, STYLEID_HEIGHT, p);
}
static HRESULT WINAPI HTMLStyle_put_posTop(IHTMLStyle *iface, float v)
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
+#pragma once
+
struct HTMLStyle {
DispatchEx dispex;
IHTMLStyle IHTMLStyle_iface;
/* NOTE: Make sure to keep in sync with style_tbl in htmlstyle.c */
typedef enum {
STYLEID_BACKGROUND,
+ STYLEID_BACKGROUND_ATTACHMENT,
STYLEID_BACKGROUND_COLOR,
STYLEID_BACKGROUND_IMAGE,
STYLEID_BACKGROUND_POSITION,
STYLEID_LEFT,
STYLEID_LETTER_SPACING,
STYLEID_LINE_HEIGHT,
+ STYLEID_LIST_STYLE,
+ STYLEID_LISTSTYLEPOSITION,
STYLEID_LISTSTYLETYPE,
STYLEID_MARGIN,
STYLEID_MARGIN_BOTTOM,
STYLEID_MARGIN_RIGHT,
STYLEID_MARGIN_TOP,
STYLEID_MIN_HEIGHT,
+ STYLEID_MIN_WIDTH,
STYLEID_OUTLINE,
STYLEID_OVERFLOW,
STYLEID_OVERFLOW_X,
STYLEID_PAGE_BREAK_BEFORE,
STYLEID_POSITION,
STYLEID_RIGHT,
+ STYLEID_TABLE_LAYOUT,
STYLEID_TEXT_ALIGN,
STYLEID_TEXT_DECORATION,
STYLEID_TEXT_INDENT,
+ STYLEID_TEXT_TRANSFORM,
STYLEID_TOP,
STYLEID_VERTICAL_ALIGN,
STYLEID_VISIBILITY,
static HRESULT WINAPI HTMLStyle2_put_tableLayout(IHTMLStyle2 *iface, BSTR v)
{
HTMLStyle *This = impl_from_IHTMLStyle2(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_w(v));
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_w(v));
+
+ return set_nsstyle_attr(This->nsstyle, STYLEID_TABLE_LAYOUT, v, 0);
}
static HRESULT WINAPI HTMLStyle2_get_tableLayout(IHTMLStyle2 *iface, BSTR *p)
{
HTMLStyle *This = impl_from_IHTMLStyle2(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ return get_nsstyle_attr(This->nsstyle, STYLEID_TABLE_LAYOUT, p, 0);
}
static HRESULT WINAPI HTMLStyle2_put_borderCollapse(IHTMLStyle2 *iface, BSTR v)
static HRESULT WINAPI HTMLStyle5_put_minWidth(IHTMLStyle5 *iface, VARIANT v)
{
HTMLStyle *This = impl_from_IHTMLStyle5(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
+
+ return set_nsstyle_attr_var(This->nsstyle, STYLEID_MIN_WIDTH, &v, ATTR_FIX_PX);
}
static HRESULT WINAPI HTMLStyle5_get_minWidth(IHTMLStyle5 *iface, VARIANT *p)
{
HTMLStyle *This = impl_from_IHTMLStyle5(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ return get_nsstyle_attr_var(This->nsstyle, STYLEID_MIN_WIDTH, p, 0);
}
static HRESULT WINAPI HTMLStyle5_put_maxWidth(IHTMLStyle5 *iface, VARIANT v)
};
struct HTMLStyleSheetRulesCollection {
+ DispatchEx dispex;
IHTMLStyleSheetRulesCollection IHTMLStyleSheetRulesCollection_iface;
LONG ref;
{
HTMLStyleSheetRulesCollection *This = impl_from_IHTMLStyleSheetRulesCollection(iface);
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IHTMLStyleSheetRulesCollection_iface;
}else if(IsEqualGUID(&IID_IHTMLStyleSheetRulesCollection, riid)) {
- TRACE("(%p)->(IID_IHTMLStyleSheetRulesCollection %p)\n", This, ppv);
*ppv = &This->IHTMLStyleSheetRulesCollection_iface;
+ }else if(dispex_query_interface(&This->dispex, riid, ppv)) {
+ return *ppv ? S_OK : E_NOINTERFACE;
+ }else {
+ *ppv = NULL;
+ FIXME("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+ return E_NOINTERFACE;
}
- if(*ppv) {
- IUnknown_AddRef((IUnknown*)*ppv);
- return S_OK;
- }
-
- FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
- return E_NOINTERFACE;
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
}
static ULONG WINAPI HTMLStyleSheetRulesCollection_AddRef(IHTMLStyleSheetRulesCollection *iface)
TRACE("(%p) ref=%d\n", This, ref);
if(!ref) {
+ release_dispex(&This->dispex);
if(This->nslist)
nsIDOMCSSRuleList_Release(This->nslist);
heap_free(This);
IHTMLStyleSheetRulesCollection *iface, UINT *pctinfo)
{
HTMLStyleSheetRulesCollection *This = impl_from_IHTMLStyleSheetRulesCollection(iface);
- FIXME("(%p)->(%p)\n", This, pctinfo);
- return E_NOTIMPL;
+ return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
}
static HRESULT WINAPI HTMLStyleSheetRulesCollection_GetTypeInfo(IHTMLStyleSheetRulesCollection *iface,
UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
{
HTMLStyleSheetRulesCollection *This = impl_from_IHTMLStyleSheetRulesCollection(iface);
- FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo);
- return E_NOTIMPL;
+ return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
}
static HRESULT WINAPI HTMLStyleSheetRulesCollection_GetIDsOfNames(IHTMLStyleSheetRulesCollection *iface,
REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
{
HTMLStyleSheetRulesCollection *This = impl_from_IHTMLStyleSheetRulesCollection(iface);
- FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames,
- lcid, rgDispId);
- return E_NOTIMPL;
+ return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames,
+ lcid, rgDispId);
}
static HRESULT WINAPI HTMLStyleSheetRulesCollection_Invoke(IHTMLStyleSheetRulesCollection *iface,
VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
{
HTMLStyleSheetRulesCollection *This = impl_from_IHTMLStyleSheetRulesCollection(iface);
- FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid),
- lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
- return E_NOTIMPL;
+ return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid, wFlags,
+ pDispParams, pVarResult, pExcepInfo, puArgErr);
}
static HRESULT WINAPI HTMLStyleSheetRulesCollection_get_length(IHTMLStyleSheetRulesCollection *iface,
HTMLStyleSheetRulesCollection_item
};
+static const tid_t HTMLStyleSheetRulesCollection_iface_tids[] = {
+ IHTMLStyleSheetRulesCollection_tid,
+ 0
+};
+static dispex_static_data_t HTMLStyleSheetRulesCollection_dispex = {
+ NULL,
+ DispHTMLStyleSheetRulesCollection_tid,
+ NULL,
+ HTMLStyleSheetRulesCollection_iface_tids
+};
+
static IHTMLStyleSheetRulesCollection *HTMLStyleSheetRulesCollection_Create(nsIDOMCSSRuleList *nslist)
{
HTMLStyleSheetRulesCollection *ret;
ret->ref = 1;
ret->nslist = nslist;
+ init_dispex(&ret->dispex, (IUnknown*)&ret->IHTMLStyleSheetRulesCollection_iface, &HTMLStyleSheetRulesCollection_dispex);
+
if(nslist)
nsIDOMCSSRuleList_AddRef(nslist);
{
HTMLStyleSheetsCollection *This = impl_from_IHTMLStyleSheetsCollection(iface);
- *ppv = NULL;
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IHTMLStyleSheetsCollection_iface;
}else if(IsEqualGUID(&IID_IDispatch, riid)) {
- TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
*ppv = &This->IHTMLStyleSheetsCollection_iface;
}else if(IsEqualGUID(&IID_IHTMLStyleSheetsCollection, riid)) {
- TRACE("(%p)->(IID_IHTMLStyleSheetsCollection %p)\n", This, ppv);
*ppv = &This->IHTMLStyleSheetsCollection_iface;
}else if(dispex_query_interface(&This->dispex, riid, ppv)) {
return *ppv ? S_OK : E_NOINTERFACE;
+ }else {
+ *ppv = NULL;
+ WARN("unsupported %s\n", debugstr_mshtml_guid(riid));
+ return E_NOINTERFACE;
}
- if(*ppv) {
- IUnknown_AddRef((IUnknown*)*ppv);
- return S_OK;
- }
-
- WARN("unsupported %s\n", debugstr_guid(riid));
- return E_NOINTERFACE;
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
}
static ULONG WINAPI HTMLStyleSheetsCollection_AddRef(IHTMLStyleSheetsCollection *iface)
TRACE("(%p) ref=%d\n", This, ref);
if(!ref) {
+ release_dispex(&This->dispex);
if(This->nslist)
nsIDOMStyleSheetList_Release(This->nslist);
heap_free(This);
{
HTMLStyleSheet *This = impl_from_IHTMLStyleSheet(iface);
- *ppv = NULL;
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IHTMLStyleSheet_iface;
}else if(IsEqualGUID(&IID_IDispatch, riid)) {
- TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
*ppv = &This->IHTMLStyleSheet_iface;
}else if(IsEqualGUID(&IID_IHTMLStyleSheet, riid)) {
- TRACE("(%p)->(IID_IHTMLStyleSheet %p)\n", This, ppv);
*ppv = &This->IHTMLStyleSheet_iface;
}else if(dispex_query_interface(&This->dispex, riid, ppv)) {
return *ppv ? S_OK : E_NOINTERFACE;
+ }else {
+ *ppv = NULL;
+ WARN("unsupported %s\n", debugstr_mshtml_guid(riid));
+ return E_NOINTERFACE;
}
- if(*ppv) {
- IUnknown_AddRef((IUnknown*)*ppv);
- return S_OK;
- }
-
- WARN("unsupported %s\n", debugstr_guid(riid));
- return E_NOINTERFACE;
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
}
static ULONG WINAPI HTMLStyleSheet_AddRef(IHTMLStyleSheet *iface)
TRACE("(%p) ref=%d\n", This, ref);
- if(!ref)
+ if(!ref) {
+ release_dispex(&This->dispex);
+ if(This->nsstylesheet)
+ nsIDOMCSSStyleSheet_Release(This->nsstylesheet);
heap_free(This);
+ }
return ref;
}
LCID lcid, ITypeInfo **ppTInfo)
{
HTMLStyleSheet *This = impl_from_IHTMLStyleSheet(iface);
- TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo);
return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
}
LCID lcid, DISPID *rgDispId)
{
HTMLStyleSheet *This = impl_from_IHTMLStyleSheet(iface);
- TRACE("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId);
return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames, lcid, rgDispId);
}
VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
{
HTMLStyleSheet *This = impl_from_IHTMLStyleSheet(iface);
- TRACE("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid),
- lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid, wFlags, pDispParams,
pVarResult, pExcepInfo, puArgErr);
}
return CONTAINING_RECORD(iface, HTMLTable, IHTMLTable3_iface);
}
+static HRESULT var2str(const VARIANT *p, nsAString *nsstr)
+{
+ BSTR str;
+ BOOL ret;
+ HRESULT hres;
+
+ switch(V_VT(p)) {
+ case VT_BSTR:
+ return nsAString_Init(nsstr, V_BSTR(p))?
+ S_OK : E_OUTOFMEMORY;
+ case VT_R8:
+ hres = VarBstrFromR8(V_R8(p), 0, 0, &str);
+ break;
+ case VT_R4:
+ hres = VarBstrFromR4(V_R4(p), 0, 0, &str);
+ break;
+ case VT_I4:
+ hres = VarBstrFromI4(V_I4(p), 0, 0, &str);
+ break;
+ default:
+ FIXME("unsupported arg %s\n", debugstr_variant(p));
+ return E_NOTIMPL;
+ }
+ if (FAILED(hres))
+ return hres;
+
+ ret = nsAString_Init(nsstr, str);
+ SysFreeString(str);
+ return ret ? S_OK : E_OUTOFMEMORY;
+}
+
+static HRESULT nsstr_to_truncated_bstr(const nsAString *nsstr, BSTR *ret_ptr)
+{
+ const PRUnichar *str, *ptr, *end = NULL;
+ BSTR ret;
+
+ nsAString_GetData(nsstr, &str);
+
+ for(ptr = str; isdigitW(*ptr); ptr++);
+ if(*ptr == '.') {
+ for(end = ptr++; isdigitW(*ptr); ptr++);
+ if(*ptr)
+ end = NULL;
+ }
+
+ ret = end ? SysAllocStringLen(str, end-str) : SysAllocString(str);
+
+ *ret_ptr = ret;
+ return ret ? S_OK : E_OUTOFMEMORY;
+}
+
static HRESULT WINAPI HTMLTable_QueryInterface(IHTMLTable *iface,
REFIID riid, void **ppv)
{
static HRESULT WINAPI HTMLTable_put_frame(IHTMLTable *iface, BSTR v)
{
HTMLTable *This = impl_from_IHTMLTable(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_w(v));
- return E_NOTIMPL;
+ nsAString str;
+ nsresult nsres;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_w(v));
+
+ nsAString_InitDepend(&str, v);
+ nsres = nsIDOMHTMLTableElement_SetFrame(This->nstable, &str);
+ nsAString_Finish(&str);
+
+ if (NS_FAILED(nsres)) {
+ ERR("SetFrame(%s) failed: %08x\n", debugstr_w(v), nsres);
+ return E_FAIL;
+ }
+ return S_OK;
}
static HRESULT WINAPI HTMLTable_get_frame(IHTMLTable *iface, BSTR *p)
{
HTMLTable *This = impl_from_IHTMLTable(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ nsAString str;
+ nsresult nsres;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ nsAString_Init(&str, NULL);
+ nsres = nsIDOMHTMLTableElement_GetFrame(This->nstable, &str);
+
+ return return_nsstr(nsres, &str, p);
}
static HRESULT WINAPI HTMLTable_put_rules(IHTMLTable *iface, BSTR v)
TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
- nsAString_InitDepend(&val, V_BSTR(&v));
- variant_to_nscolor(&v, &val);
+ if(!variant_to_nscolor(&v, &val))
+ return S_OK;
+
nsres = nsIDOMHTMLTableElement_SetBgColor(This->nstable, &val);
nsAString_Finish(&val);
-
if (NS_FAILED(nsres)){
ERR("Set BgColor(%s) failed!\n", debugstr_variant(&v));
return E_FAIL;
static HRESULT WINAPI HTMLTable_put_width(IHTMLTable *iface, VARIANT v)
{
HTMLTable *This = impl_from_IHTMLTable(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
- return E_NOTIMPL;
+ nsAString val;
+ HRESULT hres;
+ nsresult nsres;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
+ hres = var2str(&v, &val);
+
+ if (FAILED(hres)){
+ ERR("Set Width(%s) failed when initializing a nsAString, err = %08x\n",
+ debugstr_variant(&v), hres);
+ return hres;
+ }
+
+ nsres = nsIDOMHTMLTableElement_SetWidth(This->nstable, &val);
+ nsAString_Finish(&val);
+
+ if (NS_FAILED(nsres)){
+ ERR("Set Width(%s) failed, err = %08x\n", debugstr_variant(&v), nsres);
+ return E_FAIL;
+ }
+ return S_OK;
}
static HRESULT WINAPI HTMLTable_get_width(IHTMLTable *iface, VARIANT *p)
{
HTMLTable *This = impl_from_IHTMLTable(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ nsAString val;
+ BSTR bstr;
+ nsresult nsres;
+ HRESULT hres;
+
+ TRACE("(%p)->(%p)\n", This, p);
+ nsAString_Init(&val, NULL);
+ nsres = nsIDOMHTMLTableElement_GetWidth(This->nstable, &val);
+ if (NS_FAILED(nsres)){
+ ERR("Get Width failed!\n");
+ nsAString_Finish(&val);
+ return E_FAIL;
+ }
+
+ hres = nsstr_to_truncated_bstr(&val, &bstr);
+ nsAString_Finish(&val);
+
+ V_VT(p) = VT_BSTR;
+ V_BSTR(p) = bstr;
+ return hres;
}
static HRESULT WINAPI HTMLTable_put_height(IHTMLTable *iface, VARIANT v)
static HRESULT WINAPI HTMLTable_insertRow(IHTMLTable *iface, LONG index, IDispatch **row)
{
HTMLTable *This = impl_from_IHTMLTable(iface);
- FIXME("(%p)->(%d %p)\n", This, index, row);
- return E_NOTIMPL;
+ nsIDOMHTMLElement *nselem;
+ HTMLElement *elem;
+ nsresult nsres;
+ HRESULT hres;
+
+ TRACE("(%p)->(%d %p)\n", This, index, row);
+ nsres = nsIDOMHTMLTableElement_InsertRow(This->nstable, index, &nselem);
+ if(NS_FAILED(nsres)) {
+ ERR("Insert Row at %d failed: %08x\n", index, nsres);
+ return E_FAIL;
+ }
+
+ hres = HTMLTableRow_Create(This->element.node.doc, nselem, &elem);
+ nsIDOMHTMLElement_Release(nselem);
+ if (FAILED(hres)) {
+ ERR("Create TableRow failed: %08x\n", hres);
+ return hres;
+ }
+
+ *row = (IDispatch *)&elem->IHTMLElement_iface;
+ return S_OK;
}
static HRESULT WINAPI HTMLTable_deleteRow(IHTMLTable *iface, LONG index)
{
HTMLTable *This = impl_from_IHTMLTable(iface);
- FIXME("(%p)->(%d)\n", This, index);
- return E_NOTIMPL;
+ nsresult nsres;
+
+ TRACE("(%p)->(%d)\n", This, index);
+ nsres = nsIDOMHTMLTableElement_DeleteRow(This->nstable, index);
+ if(NS_FAILED(nsres)) {
+ ERR("Delete Row failed: %08x\n", nsres);
+ return E_FAIL;
+ }
+ return S_OK;
}
static HRESULT WINAPI HTMLTable_get_readyState(IHTMLTable *iface, BSTR *p)
static HRESULT WINAPI HTMLTable3_put_summary(IHTMLTable3 *iface, BSTR v)
{
HTMLTable *This = impl_from_IHTMLTable3(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_w(v));
- return E_NOTIMPL;
+ nsAString str;
+ nsresult nsres;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_w(v));
+
+ nsAString_InitDepend(&str, v);
+
+ nsres = nsIDOMHTMLTableElement_SetSummary(This->nstable, &str);
+
+ nsAString_Finish(&str);
+ if (NS_FAILED(nsres)) {
+ ERR("Set summary(%s) failed: %08x\n", debugstr_w(v), nsres);
+ return E_FAIL;
+ }
+ return S_OK;
}
static HRESULT WINAPI HTMLTable3_get_summary(IHTMLTable3 *iface, BSTR * p)
{
HTMLTable *This = impl_from_IHTMLTable3(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ nsAString str;
+ nsresult nsres;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ nsAString_Init(&str, NULL);
+ nsres = nsIDOMHTMLTableElement_GetSummary(This->nstable, &str);
+
+ return return_nsstr(nsres, &str, p);
}
static const IHTMLTable3Vtbl HTMLTable3Vtbl = {
*ppv = &This->IHTMLTable_iface;
}else if(IsEqualGUID(&IID_IHTMLTable2, riid)) {
TRACE("(%p)->(IID_IHTMLTable2 %p)\n", This, ppv);
- *ppv = &This->IHTMLTable_iface;
+ *ppv = &This->IHTMLTable2_iface;
}else if(IsEqualGUID(&IID_IHTMLTable3, riid)) {
TRACE("(%p)->(IID_IHTMLTable3 %p)\n", This, ppv);
- *ppv = &This->IHTMLTable_iface;
+ *ppv = &This->IHTMLTable3_iface;
}
if(*ppv) {
static const tid_t HTMLTable_iface_tids[] = {
HTMLELEMENT_TIDS,
IHTMLTable_tid,
+ IHTMLTable2_tid,
+ IHTMLTable3_tid,
0
};
ret->element.node.vtbl = &HTMLTableImplVtbl;
ret->IHTMLTable_iface.lpVtbl = &HTMLTableVtbl;
+ ret->IHTMLTable2_iface.lpVtbl = &HTMLTable2Vtbl;
+ ret->IHTMLTable3_iface.lpVtbl = &HTMLTable3Vtbl;
HTMLElement_Init(&ret->element, doc, nselem, &HTMLTable_dispex);
HTMLElement element;
IHTMLTableCell IHTMLTableCell_iface;
+
+ nsIDOMHTMLTableCellElement *nscell;
} HTMLTableCell;
static inline HTMLTableCell *impl_from_IHTMLTableCell(IHTMLTableCell *iface)
static HRESULT WINAPI HTMLTableCell_put_align(IHTMLTableCell *iface, BSTR v)
{
HTMLTableCell *This = impl_from_IHTMLTableCell(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_w(v));
- return E_NOTIMPL;
+ nsAString str;
+ nsresult nsres;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_w(v));
+
+ nsAString_InitDepend(&str, v);
+ nsres = nsIDOMHTMLTableCellElement_SetAlign(This->nscell, &str);
+ nsAString_Finish(&str);
+ if (NS_FAILED(nsres)) {
+ ERR("Set Align failed: %08x\n", nsres);
+ return E_FAIL;
+ }
+ return S_OK;
}
static HRESULT WINAPI HTMLTableCell_get_align(IHTMLTableCell *iface, BSTR *p)
{
HTMLTableCell *This = impl_from_IHTMLTableCell(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ nsAString str;
+ nsresult nsres;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ nsAString_Init(&str, NULL);
+ nsres = nsIDOMHTMLTableCellElement_GetAlign(This->nscell, &str);
+
+ return return_nsstr(nsres, &str, p);
}
static HRESULT WINAPI HTMLTableCell_put_vAlign(IHTMLTableCell *iface, BSTR v)
static HRESULT WINAPI HTMLTableCell_put_bgColor(IHTMLTableCell *iface, VARIANT v)
{
HTMLTableCell *This = impl_from_IHTMLTableCell(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
- return E_NOTIMPL;
+ nsAString strColor;
+ nsresult nsres;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
+
+ if(!variant_to_nscolor(&v, &strColor))
+ return S_OK;
+
+ nsres = nsIDOMHTMLTableCellElement_SetBgColor(This->nscell, &strColor);
+ nsAString_Finish(&strColor);
+ if(NS_FAILED(nsres)) {
+ ERR("SetBgColor(%s) failed: %08x\n", debugstr_variant(&v), nsres);
+ return E_FAIL;
+ }
+
+ return S_OK;
}
static HRESULT WINAPI HTMLTableCell_get_bgColor(IHTMLTableCell *iface, VARIANT *p)
{
HTMLTableCell *This = impl_from_IHTMLTableCell(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ nsAString strColor;
+ nsresult nsres;
+ HRESULT hres;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ nsAString_Init(&strColor, NULL);
+ nsres = nsIDOMHTMLTableCellElement_GetBgColor(This->nscell, &strColor);
+
+ if(NS_SUCCEEDED(nsres)) {
+ const PRUnichar *color;
+ nsAString_GetData(&strColor, &color);
+ V_VT(p) = VT_BSTR;
+ hres = nscolor_to_str(color, &V_BSTR(p));
+ }else {
+ ERR("GetBgColor failed: %08x\n", nsres);
+ hres = E_FAIL;
+ }
+ nsAString_Finish(&strColor);
+ return hres;
}
static HRESULT WINAPI HTMLTableCell_put_noWrap(IHTMLTableCell *iface, VARIANT_BOOL v)
static HRESULT WINAPI HTMLTableCell_get_cellIndex(IHTMLTableCell *iface, LONG *p)
{
HTMLTableCell *This = impl_from_IHTMLTableCell(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ nsresult nsres;
+
+ TRACE("(%p)->(%p)\n", This, p);
+ nsres = nsIDOMHTMLTableCellElement_GetCellIndex(This->nscell, p);
+ if (NS_FAILED(nsres)) {
+ ERR("Get CellIndex failed: %08x\n", nsres);
+ return E_FAIL;
+ }
+
+ return S_OK;
}
static const IHTMLTableCellVtbl HTMLTableCellVtbl = {
HRESULT HTMLTableCell_Create(HTMLDocumentNode *doc, nsIDOMHTMLElement *nselem, HTMLElement **elem)
{
HTMLTableCell *ret;
+ nsresult nsres;
ret = heap_alloc_zero(sizeof(*ret));
if(!ret)
HTMLElement_Init(&ret->element, doc, nselem, &HTMLTableCell_dispex);
+ nsres = nsIDOMHTMLElement_QueryInterface(nselem, &IID_nsIDOMHTMLTableCellElement, (void**)&ret->nscell);
+
+ /* Share nscell reference with nsnode */
+ assert(nsres == NS_OK && (nsIDOMNode*)ret->nscell == ret->element.node.nsnode);
+ nsIDOMNode_Release(ret->element.node.nsnode);
+
*elem = &ret->element;
return S_OK;
}
TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
- nsAString_InitDepend(&val, V_BSTR(&v));
- variant_to_nscolor(&v, &val);
+ if (!variant_to_nscolor(&v, &val))
+ return S_OK;
+
nsres = nsIDOMHTMLTableRowElement_SetBgColor(This->nsrow, &val);
nsAString_Finish(&val);
static HRESULT WINAPI HTMLTableRow_insertCell(IHTMLTableRow *iface, LONG index, IDispatch **row)
{
HTMLTableRow *This = impl_from_IHTMLTableRow(iface);
- FIXME("(%p)->(%d %p)\n", This, index, row);
- return E_NOTIMPL;
+ nsIDOMHTMLElement *nselem;
+ HTMLElement *elem;
+ nsresult nsres;
+ HRESULT hres;
+
+ TRACE("(%p)->(%d %p)\n", This, index, row);
+ nsres = nsIDOMHTMLTableRowElement_InsertCell(This->nsrow, index, &nselem);
+ if(NS_FAILED(nsres)) {
+ ERR("Insert Cell at %d failed: %08x\n", index, nsres);
+ return E_FAIL;
+ }
+
+ hres = HTMLTableCell_Create(This->element.node.doc, nselem, &elem);
+ nsIDOMHTMLElement_Release(nselem);
+ if (FAILED(hres)) {
+ ERR("Create TableCell failed: %08x\n", hres);
+ return hres;
+ }
+
+ *row = (IDispatch *)&elem->IHTMLElement_iface;
+ return S_OK;
}
static HRESULT WINAPI HTMLTableRow_deleteCell(IHTMLTableRow *iface, LONG index)
{
HTMLTableRow *This = impl_from_IHTMLTableRow(iface);
- FIXME("(%p)->(%d)\n", This, index);
- return E_NOTIMPL;
+ nsresult nsres;
+
+ TRACE("(%p)->(%d)\n", This, index);
+ nsres = nsIDOMHTMLTableRowElement_DeleteCell(This->nsrow, index);
+ if(NS_FAILED(nsres)) {
+ ERR("Delete Cell failed: %08x\n", nsres);
+ return E_FAIL;
+ }
+ return S_OK;
}
static const IHTMLTableRowVtbl HTMLTableRowVtbl = {
{
HTMLWindow *This = impl_from_IHTMLWindow2(iface);
- *ppv = NULL;
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IHTMLWindow2_iface;
}else if(IsEqualGUID(&IID_IDispatch, riid)) {
- TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
*ppv = &This->IHTMLWindow2_iface;
}else if(IsEqualGUID(&IID_IDispatchEx, riid)) {
- TRACE("(%p)->(IID_IDispatchEx %p)\n", This, ppv);
*ppv = &This->IDispatchEx_iface;
}else if(IsEqualGUID(&IID_IHTMLFramesCollection2, riid)) {
- TRACE("(%p)->(IID_IHTMLFramesCollection2 %p)\n", This, ppv);
*ppv = &This->IHTMLWindow2_iface;
}else if(IsEqualGUID(&IID_IHTMLWindow2, riid)) {
- TRACE("(%p)->(IID_IHTMLWindow2 %p)\n", This, ppv);
*ppv = &This->IHTMLWindow2_iface;
}else if(IsEqualGUID(&IID_IHTMLWindow3, riid)) {
- TRACE("(%p)->(IID_IHTMLWindow3 %p)\n", This, ppv);
*ppv = &This->IHTMLWindow3_iface;
}else if(IsEqualGUID(&IID_IHTMLWindow4, riid)) {
- TRACE("(%p)->(IID_IHTMLWindow4 %p)\n", This, ppv);
*ppv = &This->IHTMLWindow4_iface;
}else if(IsEqualGUID(&IID_IHTMLWindow5, riid)) {
- TRACE("(%p)->(IID_IHTMLWindow5 %p)\n", This, ppv);
*ppv = &This->IHTMLWindow5_iface;
}else if(IsEqualGUID(&IID_IHTMLWindow6, riid)) {
- TRACE("(%p)->(IID_IHTMLWindow6 %p)\n", This, ppv);
*ppv = &This->IHTMLWindow6_iface;
}else if(IsEqualGUID(&IID_IHTMLPrivateWindow, riid)) {
- TRACE("(%p)->(IID_IHTMLPrivateWindow %p)\n", This, ppv);
*ppv = &This->IHTMLPrivateWindow_iface;
}else if(IsEqualGUID(&IID_IServiceProvider, riid)) {
- TRACE("(%p)->(IID_IServiceProvider %p)\n", This, ppv);
*ppv = &This->IServiceProvider_iface;
}else if(IsEqualGUID(&IID_ITravelLogClient, riid)) {
- TRACE("(%p)->(IID_ITravelLogClient %p)\n", This, ppv);
*ppv = &This->ITravelLogClient_iface;
}else if(IsEqualGUID(&IID_IObjectIdentity, riid)) {
- TRACE("(%p)->(IID_IObjectIdentity %p)\n", This, ppv);
*ppv = &This->IObjectIdentity_iface;
}else if(dispex_query_interface(&This->inner_window->dispex, riid, ppv)) {
assert(!*ppv);
return E_NOINTERFACE;
+ }else {
+ *ppv = NULL;
+ WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+ return E_NOINTERFACE;
}
- if(*ppv) {
- IUnknown_AddRef((IUnknown*)*ppv);
- return S_OK;
- }
-
- WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
- return E_NOINTERFACE;
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
}
static ULONG WINAPI HTMLWindow2_AddRef(IHTMLWindow2 *iface)
IOmHistory_Release(&This->history->IOmHistory_iface);
}
+ if(This->session_storage)
+ IHTMLStorage_Release(This->session_storage);
+
if(This->mon)
IMoniker_Release(This->mon);
static HRESULT WINAPI HTMLWindow2_navigate(IHTMLWindow2 *iface, BSTR url)
{
HTMLWindow *This = impl_from_IHTMLWindow2(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_w(url));
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_w(url));
+
+ return navigate_url(This->outer_window, url, This->outer_window->uri, BINDING_NAVIGATED);
}
static HRESULT WINAPI HTMLWindow2_put_onfocus(IHTMLWindow2 *iface, VARIANT v)
static HRESULT WINAPI HTMLWindow2_scroll(IHTMLWindow2 *iface, LONG x, LONG y)
{
HTMLWindow *This = impl_from_IHTMLWindow2(iface);
- FIXME("(%p)->(%d %d)\n", This, x, y);
- return E_NOTIMPL;
+ nsresult nsres;
+
+ TRACE("(%p)->(%d %d)\n", This, x, y);
+
+ nsres = nsIDOMWindow_Scroll(This->outer_window->nswindow, x, y);
+ if(NS_FAILED(nsres)) {
+ ERR("ScrollBy failed: %08x\n", nsres);
+ return E_FAIL;
+ }
+
+ return S_OK;
}
static HRESULT WINAPI HTMLWindow2_get_clientInformation(IHTMLWindow2 *iface, IOmNavigator **p)
UINT i;
HRESULT hres;
- WARN("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames,
- lcid, rgDispId);
+ WARN("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId);
for(i=0; i < cNames; i++) {
/* We shouldn't use script's IDispatchEx here, so we shouldn't use GetDispID */
return IHTMLWindow2_QueryInterface(&This->IHTMLWindow2_iface, riid, ppv);
}
- TRACE("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv);
+ TRACE("(%p)->(%s %s %p)\n", This, debugstr_mshtml_guid(guidService), debugstr_mshtml_guid(riid), ppv);
if(!This->outer_window->doc_obj)
return E_NOINTERFACE;
{
iface_wrapper_t *This = impl_from_IUnknown(iface);
- TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
return IUnknown_QueryInterface(This->ref_unk, riid, ppv);
}
{
InPlaceFrame *This = impl_from_IOleInPlaceFrame(iface);
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IOleInPlaceFrame_iface;
}else if(IsEqualGUID(&IID_IOleWindow, riid)) {
- TRACE("(%p)->(IID_IOleWindow %p)\n", This, ppv);
*ppv = &This->IOleInPlaceFrame_iface;
}else if(IsEqualGUID(&IID_IOleInPlaceUIWindow, riid)) {
- TRACE("(%p)->(IID_IOleInPlaceUIWindow %p)\n", This, ppv);
*ppv = &This->IOleInPlaceFrame_iface;
}else if(IsEqualGUID(&IID_IOleInPlaceFrame, riid)) {
- TRACE("(%p)->(IID_IOleInPlaceFrame %p)\n", This, ppv);
*ppv = &This->IOleInPlaceFrame_iface;
}else {
- WARN("Unsopported interface %s\n", debugstr_guid(riid));
+ WARN("Unsopported interface %s\n", debugstr_mshtml_guid(riid));
*ppv = NULL;
return E_NOINTERFACE;
}
{
InPlaceUIWindow *This = impl_from_IOleInPlaceUIWindow(iface);
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IOleInPlaceUIWindow_iface;
}else if(IsEqualGUID(&IID_IOleWindow, riid)) {
- TRACE("(%p)->(IID_IOleWindow %p)\n", This, ppv);
*ppv = &This->IOleInPlaceUIWindow_iface;
}else if(IsEqualGUID(&IID_IOleInPlaceUIWindow, riid)) {
- TRACE("(%p)->(IID_IOleInPlaceUIWindow %p)\n", This, ppv);
*ppv = &This->IOleInPlaceUIWindow_iface;
}else {
- WARN("Unsopported interface %s\n", debugstr_guid(riid));
+ WARN("Unsopported interface %s\n", debugstr_mshtml_guid(riid));
*ppv = NULL;
return E_NOINTERFACE;
}
IDS_HTMLDOCUMENT "HTML dokument"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Hyperlink"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "Information om Hyperlink'en", -1, 5, 5, 190, 55
- LTEXT "&Type:", -1, 10, 22, 20, 10
+ LTEXT "&Type:", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "&URL:", -1, 10, 42, 20, 10
+ LTEXT "&URL:", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Annuller", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Annuller", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90
{
LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Annuller", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Annuller", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
IDS_HTMLDOCUMENT "HTML-Dokument"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Hyperlink"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "Hyperlink-Eigenschaften", -1, 5, 5, 190, 55
- LTEXT "&Typ:", -1, 10, 22, 20, 10
+ LTEXT "&Type:", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "&URL:", -1, 10, 42, 20, 10
+ LTEXT "&URL:", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Abbrechen", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Abbrechen", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90
{
LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Abbrechen", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Abbrechen", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
IDS_HTMLDOCUMENT "Documento HTML"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Enlace"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "Información sobre el enlace", -1, 5, 5, 190, 55
- LTEXT "&Tipo :", -1, 10, 22, 20, 10
+ LTEXT "&Tipo :", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "&URL :", -1, 10, 42, 20, 10
+ LTEXT "&URL:", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Aceptar", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Anular", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Aceptar", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Anular", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90
{
LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Aceptar", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Cancelar", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Aceptar", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Cancelar", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
IDS_HTMLDOCUMENT "Document HTML"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Hyperlien"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "Informations sur l'hyperlien", -1, 5, 5, 190, 55
- LTEXT "&Type :", -1, 10, 22, 20, 10
+ LTEXT "&Type:", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "&URL :", -1, 10, 42, 20, 10
+ LTEXT "&URL:", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Annuler", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Annuler", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90
{
LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Annuler", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Annuler", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
IDS_HTMLDOCUMENT "מסמך HTML"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "קישור"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "מידע קישור", -1, 5, 5, 190, 55
- LTEXT "סוג:", -1, 10, 22, 20, 10
+ LTEXT "סוג:", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "&URL:", -1, 10, 42, 20, 10
+ LTEXT "&URL:", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "אישור", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "ביטול", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "אישור", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "ביטול", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90
{
LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "אישור", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "ביטול", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "אישור", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "ביטול", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
IDS_HTMLDOCUMENT "HTML dokumentum"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Hiperhivatkozás"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "Hiperhivatkozás információ", -1, 5, 5, 190, 55
- LTEXT "&Típus:", -1, 10, 22, 20, 10
+ LTEXT "&Típus:", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "&URL:", -1, 10, 42, 20, 10
+ LTEXT "&URL:", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Mégse", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Mégse", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90
{
LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Mégse", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Mégse", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
IDS_HTMLDOCUMENT "Documento HTML"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Hyperlink"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "Informazioni sull'hyperlink", -1, 5, 5, 190, 55
- LTEXT "&Tipo:", -1, 10, 22, 20, 10
+ LTEXT "&Tipo:", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "&URL:", -1, 10, 42, 20, 10
+ LTEXT "&URL:", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Annulla", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Annulla", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90
{
LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Annulla", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Annulla", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
IDS_HTMLDOCUMENT "HTML 文書"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "ハイパーリンク"
FONT 9, "MS Shell Dlg"
{
GROUPBOX "ハイパーリンクの情報", -1, 5, 5, 190, 55
- LTEXT "種類(&T):", -1, 10, 22, 20, 10
+ LTEXT "種類(&T):", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "&URL:", -1, 10, 42, 20, 10
+ LTEXT "&URL:", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "キャンセル", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "キャンセル", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90
{
LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "キャンセル", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "キャンセル", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
IDS_HTMLDOCUMENT "HTML ¹®¼"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "ÇÏÀÌÆÛ¸µÅ©"
FONT 9, "MS Shell Dlg"
{
- GROUPBOX "ÇÏÀÌÆÛ¸µÅ© Á¤º¸", -1, 5, 5, 190, 55
- LTEXT "Çü½Ä(&T):", -1, 10, 22, 24, 10
- COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "ÁÖ¼Ò(&U):", -1, 10, 42, 24, 10
- EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "È®ÀÎ", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Ãë¼Ò", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ GROUPBOX "ÇÏÀÌÆÛ¸µÅ© Á¤º¸", -1, 5, 5, 190, 55
+ LTEXT "Çü½Ä(&T):", -1, 10, 22, 24, 10
+ COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
+ LTEXT "ÁÖ¼Ò(&U):", -1, 10, 42, 24, 10
+ EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "È®ÀÎ", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Ãë¼Ò", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Shell Dlg"
{
- LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
- EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "È®ÀÎ", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Ãë¼Ò", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP
+ LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
+ EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "È®ÀÎ", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Ãë¼Ò", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
IDS_HTMLDOCUMENT "HTML dokumentas"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Saitas"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "Saito informacija", -1, 5, 5, 190, 55
- LTEXT "&Tipas:", -1, 10, 22, 20, 10
+ LTEXT "&Tipas:", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "&URL:", -1, 10, 42, 20, 10
+ LTEXT "&URL:", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Gerai", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Atsisakyti", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Gerai", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Atsisakyti", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90
{
LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Gerai", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Atsisakyti", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Gerai", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Atsisakyti", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
IDS_HTMLDOCUMENT "HTML document"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Webverwijzing"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "Webverwijzing Informatie", -1, 5, 5, 190, 55
- LTEXT "&Type:", -1, 10, 22, 20, 10
+ LTEXT "&Type:", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "&URL:", -1, 10, 42, 20, 10
+ LTEXT "&URL:", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Annuleren", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Annuleren", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90
{
LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Annuleren", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Annuleren", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
IDS_HTMLDOCUMENT "HTML-dokument"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Hyperkobling"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "Informasjon om koblingen", -1, 5, 5, 190, 55
- LTEXT "&Type:", -1, 10, 22, 20, 10
+ LTEXT "&Type:", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "&URL:", -1, 10, 42, 20, 10
+ LTEXT "&URL:", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Avbryt", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Avbryt", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90
{
LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Avbryt", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Avbryt", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
IDS_HTMLDOCUMENT "Dokument HTML"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Hiper³¹cze"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "W³asno\9cci hiper³¹cza", -1, 5, 5, 190, 55
- LTEXT "&Typ:", -1, 10, 22, 20, 10
+ LTEXT "&Typ:", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "&URL:", -1, 10, 42, 20, 10
+ LTEXT "&URL:", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Anuluj", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Anuluj", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90
{
LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Anuluj", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Anuluj", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
IDS_HTMLDOCUMENT "Documento HTML"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Hiperlink"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "Informação do Hiperlink", -1, 5, 5, 190, 55
- LTEXT "&Tipo:", -1, 10, 22, 20, 10
+ LTEXT "&Tipo:", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "&URL:", -1, 10, 42, 20, 10
+ LTEXT "&URL:", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Cancelar", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Cancelar", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Hiperligação"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "Informação da Hiperligação", -1, 5, 5, 190, 55
- LTEXT "&Tipo:", -1, 10, 22, 20, 10
+ LTEXT "&Tipo:", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "&URL:", -1, 10, 42, 20, 10
+ LTEXT "&URL:", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Cancelar", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Cancelar", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
{
LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Cancelar", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Cancelar", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
IDS_HTMLDOCUMENT "Document HTML"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Hiperlegătură"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "Informații de hiperlegătură", -1, 5, 5, 190, 55
- LTEXT "&Tip:", -1, 10, 22, 20, 10
+ LTEXT "&Tip:", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "&URL:", -1, 10, 42, 20, 10
+ LTEXT "&URL:", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Con&firmă", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "A&nulează", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Con&firmă", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "A&nulează", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90
{
LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Con&firmă", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "A&nulează", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Con&firmă", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "A&nulează", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
IDS_HTMLDOCUMENT "Документ HTML"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Ссылка"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "Информация о ссылке", -1, 5, 5, 190, 55
- LTEXT "&Тип:", -1, 10, 22, 20, 10
+ LTEXT "&Тип:", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "&Адрес:", -1, 10, 42, 20, 10
+ LTEXT "&Адрес:", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Отмена", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Отмена", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90
{
LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Отмена", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Отмена", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
IDS_HTMLDOCUMENT "HTML dokument"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Hiperpovezava"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "Lastnosti hiperpovezave", -1, 5, 5, 190, 55
- LTEXT "&Vrsta:", -1, 10, 22, 20, 10
+ LTEXT "&Vrsta:", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "&URL:", -1, 10, 42, 20, 10
+ LTEXT "&URL:", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "V redu", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Prekliči", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "V redu", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Prekliči", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90
{
LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "V redu", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Prekliči", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "V redu", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Prekliči", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
IDS_HTMLDOCUMENT "HTML-dokument"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Hyperlänk"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "Länkinformation", -1, 5, 5, 190, 55
- LTEXT "&Typ:", -1, 10, 22, 20, 10
+ LTEXT "&Typ:", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "&URL:", -1, 10, 42, 20, 10
+ LTEXT "&URL:", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Avbryt", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Avbryt", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90
{
LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Avbryt", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Avbryt", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
IDS_HTMLDOCUMENT "Документ HTML"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Гіперпосилання"
FONT 8, "MS Shell Dlg"
{
GROUPBOX "Дані про Гіперпосилання", -1, 5, 5, 190, 55
- LTEXT "&Тип:", -1, 10, 22, 20, 10
+ LTEXT "&Тип:", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "&URL:", -1, 10, 42, 20, 10
+ LTEXT "&URL:", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Скасувати", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Скасувати", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90
{
LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "OK", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "Скасувати", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Скасувати", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
IDS_HTMLDOCUMENT "HTML 文件"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "超链接"
FONT 9, "MS Shell Dlg"
{
GROUPBOX "超链接信息", -1, 5, 5, 190, 55
- LTEXT "类型(&T):", -1, 10, 22, 20, 10
+ LTEXT "类型(&T):", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "网址(&U):", -1, 10, 42, 20, 10
+ LTEXT "网址(&U):", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "确定", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "取消", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "确定", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "取消", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
}
ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90
{
LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "确定", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "取消", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "确定", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "取消", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
IDS_HTMLDOCUMENT "HTML 檔案"
}
-IDD_HYPERLINK DIALOG 0, 0, 250, 65
+IDD_HYPERLINK DIALOG 0, 0, 255, 65
STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "超鏈接"
FONT 9, "MS Shell Dlg"
{
GROUPBOX "超鏈接資訊", -1, 5, 5, 190, 55
- LTEXT "類型(&T):", -1, 10, 22, 20, 10
+ LTEXT "類型(&T):", -1, 10, 22, 24, 10
COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
- LTEXT "網址(&U):", -1, 10, 42, 20, 10
+ LTEXT "網址(&U):", -1, 10, 42, 24, 10
EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "確定", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
- PUSHBUTTON "取消", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "確定", IDOK, 200, 10, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "取消", IDCANCEL, 200, 28, 50, 14, WS_GROUP | WS_TABSTOP
+}
+
+ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90
+STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Shell Dlg"
+{
+ LTEXT "", ID_PROMPT_PROMPT, 10, 10, 180, 30
+ EDITTEXT ID_PROMPT_EDIT, 10, 45, 180, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "OK", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Cancel", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
}
{
HTMLLoadOptions *This = impl_from_IHtmlLoadOptions(iface);
- *ppv = NULL;
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
if(IsEqualGUID(&IID_IUnknown, riid)) {
- TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
*ppv = &This->IHtmlLoadOptions_iface;
}else if(IsEqualGUID(&IID_IOptionArray, riid)) {
- TRACE("(%p)->(IID_IOptionArray %p)\n", This, ppv);
*ppv = &This->IHtmlLoadOptions_iface;
}else if(IsEqualGUID(&IID_IHtmlLoadOptions, riid)) {
- TRACE("(%p)->(IID_IHtmlLoadOptions %p)\n", This, ppv);
*ppv = &This->IHtmlLoadOptions_iface;
+ }else {
+ *ppv = NULL;
+ WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+ return E_NOINTERFACE;
}
- if(*ppv) {
- IHtmlLoadOptions_AddRef(&This->IHtmlLoadOptions_iface);
- return S_OK;
- }
-
- WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
- return E_NOINTERFACE;
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
}
static ULONG WINAPI HtmlLoadOptions_AddRef(IHtmlLoadOptions *iface)
HTMLLoadOptions *ret;
HRESULT hres;
- TRACE("(%p %s %p)\n", pUnkOuter, debugstr_guid(riid), ppv);
+ TRACE("(%p %s %p)\n", pUnkOuter, debugstr_mshtml_guid(riid), ppv);
ret = heap_alloc(sizeof(HTMLLoadOptions));
+ if(!ret)
+ return E_OUTOFMEMORY;
ret->IHtmlLoadOptions_iface.lpVtbl = &HtmlLoadOptionsVtbl;
ret->ref = 1;
hres = IHtmlLoadOptions_QueryInterface(&ret->IHtmlLoadOptions_iface, riid, ppv);
IHtmlLoadOptions_Release(&ret->IHtmlLoadOptions_iface);
-
return hres;
}
return S_OK;
}
- WARN("not supported iid %s\n", debugstr_guid(riid));
+ WARN("not supported iid %s\n", debugstr_mshtml_guid(riid));
*ppvObject = NULL;
return E_NOINTERFACE;
}
HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
{
if(IsEqualGUID(&CLSID_HTMLDocument, rclsid)) {
- TRACE("(CLSID_HTMLDocument %s %p)\n", debugstr_guid(riid), ppv);
+ TRACE("(CLSID_HTMLDocument %s %p)\n", debugstr_mshtml_guid(riid), ppv);
return ClassFactory_Create(riid, ppv, HTMLDocument_Create);
}else if(IsEqualGUID(&CLSID_AboutProtocol, rclsid)) {
- TRACE("(CLSID_AboutProtocol %s %p)\n", debugstr_guid(riid), ppv);
+ TRACE("(CLSID_AboutProtocol %s %p)\n", debugstr_mshtml_guid(riid), ppv);
return ProtocolFactory_Create(rclsid, riid, ppv);
}else if(IsEqualGUID(&CLSID_JSProtocol, rclsid)) {
- TRACE("(CLSID_JSProtocol %s %p)\n", debugstr_guid(riid), ppv);
+ TRACE("(CLSID_JSProtocol %s %p)\n", debugstr_mshtml_guid(riid), ppv);
return ProtocolFactory_Create(rclsid, riid, ppv);
}else if(IsEqualGUID(&CLSID_MailtoProtocol, rclsid)) {
- TRACE("(CLSID_MailtoProtocol %s %p)\n", debugstr_guid(riid), ppv);
+ TRACE("(CLSID_MailtoProtocol %s %p)\n", debugstr_mshtml_guid(riid), ppv);
return ProtocolFactory_Create(rclsid, riid, ppv);
}else if(IsEqualGUID(&CLSID_ResProtocol, rclsid)) {
- TRACE("(CLSID_ResProtocol %s %p)\n", debugstr_guid(riid), ppv);
+ TRACE("(CLSID_ResProtocol %s %p)\n", debugstr_mshtml_guid(riid), ppv);
return ProtocolFactory_Create(rclsid, riid, ppv);
}else if(IsEqualGUID(&CLSID_SysimageProtocol, rclsid)) {
- TRACE("(CLSID_SysimageProtocol %s %p)\n", debugstr_guid(riid), ppv);
+ TRACE("(CLSID_SysimageProtocol %s %p)\n", debugstr_mshtml_guid(riid), ppv);
return ProtocolFactory_Create(rclsid, riid, ppv);
}else if(IsEqualGUID(&CLSID_HTMLLoadOptions, rclsid)) {
- TRACE("(CLSID_HTMLLoadOptions %s %p)\n", debugstr_guid(riid), ppv);
+ TRACE("(CLSID_HTMLLoadOptions %s %p)\n", debugstr_mshtml_guid(riid), ppv);
return ClassFactory_Create(riid, ppv, HTMLLoadOptions_Create);
}
if(SUCCEEDED(hres)) hres = register_server(FALSE);
return hres;
}
+
+const char *debugstr_mshtml_guid(const GUID *iid)
+{
+#define X(x) if(IsEqualGUID(iid, &x)) return #x
+ X(DIID_HTMLDocumentEvents);
+ X(DIID_HTMLDocumentEvents2);
+ X(DIID_HTMLTableEvents);
+ X(DIID_HTMLTextContainerEvents);
+ X(IID_IConnectionPoint);
+ X(IID_IConnectionPointContainer);
+ X(IID_ICustomDoc);
+ X(IID_IDispatch);
+ X(IID_IDispatchEx);
+ X(IID_IEnumConnections);
+ X(IID_IEnumVARIANT);
+ X(IID_IHlinkTarget);
+ X(IID_IHTMLDocument6);
+ X(IID_IHTMLDocument7);
+ X(IID_IHTMLFramesCollection2);
+ X(IID_IHTMLPrivateWindow);
+ X(IID_IHtmlLoadOptions);
+ X(IID_IInternetHostSecurityManager);
+ X(IID_IMonikerProp);
+ X(IID_IObjectIdentity);
+ X(IID_IObjectSafety);
+ X(IID_IObjectWithSite);
+ X(IID_IOleContainer);
+ X(IID_IOleCommandTarget);
+ X(IID_IOleControl);
+ X(IID_IOleDocument);
+ X(IID_IOleDocumentView);
+ X(IID_IOleInPlaceActiveObject);
+ X(IID_IOleInPlaceFrame);
+ X(IID_IOleInPlaceObject);
+ X(IID_IOleInPlaceObjectWindowless);
+ X(IID_IOleInPlaceUIWindow);
+ X(IID_IOleObject);
+ X(IID_IOleWindow);
+ X(IID_IOptionArray);
+ X(IID_IPersist);
+ X(IID_IPersistFile);
+ X(IID_IPersistHistory);
+ X(IID_IPersistMoniker);
+ X(IID_IPersistStreamInit);
+ X(IID_IPropertyNotifySink);
+ X(IID_IProvideClassInfo);
+ X(IID_IServiceProvider);
+ X(IID_ISupportErrorInfo);
+ X(IID_ITargetContainer);
+ X(IID_ITravelLogClient);
+ X(IID_IUnknown);
+ X(IID_IViewObject);
+ X(IID_IViewObject2);
+ X(IID_IViewObjectEx);
+ X(IID_nsCycleCollectionISupports);
+ X(IID_nsXPCOMCycleCollectionParticipant);
+#define XIID(x) X(IID_##x);
+#define XDIID(x) X(DIID_##x);
+ TID_LIST
+#undef XIID
+#undef XDIID
+#undef X
+
+ return debugstr_guid(iid);
+}
XDIID(DispHTMLStyle) \
XDIID(DispHTMLStyleElement) \
XDIID(DispHTMLStyleSheet) \
+ XDIID(DispHTMLStyleSheetRulesCollection) \
XDIID(DispHTMLStyleSheetsCollection) \
XDIID(DispHTMLTable) \
XDIID(DispHTMLTableCell) \
XIID(IHTMLDocument5) \
XIID(IHTMLDOMAttribute) \
XIID(IHTMLDOMChildrenCollection) \
+ XIID(IHTMLDOMImplementation) \
XIID(IHTMLDOMNode) \
XIID(IHTMLDOMNode2) \
XIID(IHTMLDOMTextNode) \
XIID(IHTMLObjectElement) \
XIID(IHTMLObjectElement2) \
XIID(IHTMLOptionElement) \
+ XIID(IHTMLOptionElementFactory) \
XIID(IHTMLPluginsCollection) \
XIID(IHTMLRect) \
XIID(IHTMLScreen) \
XIID(IHTMLStyle6) \
XIID(IHTMLStyleElement) \
XIID(IHTMLStyleSheet) \
+ XIID(IHTMLStyleSheetRulesCollection) \
XIID(IHTMLStyleSheetsCollection) \
XIID(IHTMLTable) \
XIID(IHTMLTable2) \
} global_prop_t;
typedef struct {
+ DispatchEx dispex;
IHTMLOptionElementFactory IHTMLOptionElementFactory_iface;
LONG ref;
BOOL content_ready;
event_target_t *body_event_target;
+ IHTMLDOMImplementation *dom_implementation;
+
ICatInformation *catmgr;
nsDocumentEventListener *nsevent_listener;
BOOL *event_vector;
IOmNavigator *OmNavigator_Create(void) DECLSPEC_HIDDEN;
HRESULT HTMLScreen_Create(IHTMLScreen**) DECLSPEC_HIDDEN;
HRESULT create_history(HTMLInnerWindow*,OmHistory**) DECLSPEC_HIDDEN;
+HRESULT create_dom_implementation(IHTMLDOMImplementation**) DECLSPEC_HIDDEN;
HRESULT create_storage(IHTMLStorage**) DECLSPEC_HIDDEN;
BOOL nsAString_Init(nsAString*,const PRUnichar*) DECLSPEC_HIDDEN;
void nsAString_InitDepend(nsAString*,const PRUnichar*) DECLSPEC_HIDDEN;
-void nsAString_SetData(nsAString*,const PRUnichar*) DECLSPEC_HIDDEN;
UINT32 nsAString_GetData(const nsAString*,const PRUnichar**) DECLSPEC_HIDDEN;
void nsAString_Finish(nsAString*) DECLSPEC_HIDDEN;
HRESULT return_nsstr(nsresult,nsAString*,BSTR*) DECLSPEC_HIDDEN;
IHTMLElementCollection *create_all_collection(HTMLDOMNode*,BOOL) DECLSPEC_HIDDEN;
IHTMLElementCollection *create_collection_from_nodelist(HTMLDocumentNode*,nsIDOMNodeList*) DECLSPEC_HIDDEN;
IHTMLElementCollection *create_collection_from_htmlcol(HTMLDocumentNode*,nsIDOMHTMLCollection*) DECLSPEC_HIDDEN;
+HRESULT get_elem_source_index(HTMLElement*,LONG*) DECLSPEC_HIDDEN;
+
+nsresult get_elem_attr_value(nsIDOMHTMLElement*,const WCHAR*,nsAString*,const PRUnichar**) DECLSPEC_HIDDEN;
+HRESULT elem_string_attr_getter(HTMLElement*,const WCHAR*,BOOL,BSTR*) DECLSPEC_HIDDEN;
+HRESULT elem_string_attr_setter(HTMLElement*,const WCHAR*,const WCHAR*) DECLSPEC_HIDDEN;
/* commands */
typedef struct {
HRESULT set_task_timer(HTMLInnerWindow*,DWORD,BOOL,IDispatch*,LONG*) DECLSPEC_HIDDEN;
HRESULT clear_task_timer(HTMLInnerWindow*,BOOL,DWORD) DECLSPEC_HIDDEN;
-const char *debugstr_variant(const VARIANT*) DECLSPEC_HIDDEN;
+const char *debugstr_mshtml_guid(const GUID*) DECLSPEC_HIDDEN;
DEFINE_GUID(CLSID_AboutProtocol, 0x3050F406, 0x98B5, 0x11CF, 0xBB,0x82, 0x00,0xAA,0x00,0xBD,0xCE,0x0B);
DEFINE_GUID(CLSID_JSProtocol, 0x3050F3B2, 0x98B5, 0x11CF, 0xBB,0x82, 0x00,0xAA,0x00,0xBD,0xCE,0x0B);
nsIDOMHTMLIFrameElement *nsiframe;
nsIDOMHTMLFrameElement *nsframe;
nsIDOMHTMLScriptElement *nsscript;
+ nsIDOMHTMLElement *nselem;
nsIDOMComment *nscomment;
- nsIDOMElement *nselem;
nsresult nsres;
TRACE("(%p)->(%p %p)\n", This, aDocument, aContent);
- nsres = nsIContent_QueryInterface(aContent, &IID_nsIDOMElement, (void**)&nselem);
+ nsres = nsIContent_QueryInterface(aContent, &IID_nsIDOMHTMLElement, (void**)&nselem);
if(NS_SUCCEEDED(nsres)) {
check_event_attr(This, nselem);
- nsIDOMElement_Release(nselem);
+ nsIDOMHTMLElement_Release(nselem);
}
nsres = nsIContent_QueryInterface(aContent, &IID_nsIDOMComment, (void**)&nscomment);
break;
}
- MultiByteToWideChar(CP_ACP, 0, bsc->buf, bsc->bsc.readed, text, len);
+ MultiByteToWideChar(cp, 0, bsc->buf, bsc->bsc.readed, text, len);
text[len] = 0;
}
}
NPP_LostFocusPtr lostfocus;
} NPPluginFuncs;
-static nsIDOMElement *get_dom_element(NPP instance)
+static nsIDOMHTMLElement *get_dom_element(NPP instance)
{
nsISupports *instance_unk = (nsISupports*)instance->ndata;
nsIPluginInstance *plugin_instance;
+ nsIDOMHTMLElement *html_elem;
nsIDOMElement *elem;
nsresult nsres;
return NULL;
}
- return elem;
+ nsres = nsIDOMElement_QueryInterface(elem, &IID_nsIDOMHTMLElement, (void**)&html_elem);
+ nsIDOMElement_Release(elem);
+ if(NS_FAILED(nsres)) {
+ ERR("Could not get nsIDOMHTMLElement iface: %08x\n", nsres);
+ return NULL;
+ }
+
+ return html_elem;
}
-static HTMLInnerWindow *get_elem_window(nsIDOMElement *elem)
+static HTMLInnerWindow *get_elem_window(nsIDOMHTMLElement *elem)
{
nsIDOMWindow *nswindow;
nsIDOMDocument *nsdoc;
HTMLOuterWindow *window;
nsresult nsres;
- nsres = nsIDOMElement_GetOwnerDocument(elem, &nsdoc);
+ nsres = nsIDOMHTMLElement_GetOwnerDocument(elem, &nsdoc);
if(NS_FAILED(nsres))
return NULL;
return SUCCEEDED(hres);
}
-static BOOL get_elem_clsid(nsIDOMElement *elem, CLSID *clsid)
+static BOOL get_elem_clsid(nsIDOMHTMLElement *elem, CLSID *clsid)
{
- nsAString attr_str, val_str;
+ const PRUnichar *val;
+ nsAString val_str;
nsresult nsres;
BOOL ret = FALSE;
static const PRUnichar classidW[] = {'c','l','a','s','s','i','d',0};
- nsAString_InitDepend(&attr_str, classidW);
- nsAString_Init(&val_str, NULL);
- nsres = nsIDOMElement_GetAttribute(elem, &attr_str, &val_str);
- nsAString_Finish(&attr_str);
+ nsres = get_elem_attr_value(elem, classidW, &val_str, &val);
if(NS_SUCCEEDED(nsres)) {
- const PRUnichar *val;
-
- nsAString_GetData(&val_str, &val);
if(*val)
ret = parse_classid(val, clsid);
- }else {
- ERR("GetAttribute failed: %08x\n", nsres);
+ nsAString_Finish(&val_str);
}
- nsAString_Finish(&val_str);
return ret;
}
WARN("FAILED: %08x\n", hres);
}
-static void check_codebase(HTMLInnerWindow *window, nsIDOMElement *nselem)
+static void check_codebase(HTMLInnerWindow *window, nsIDOMHTMLElement *nselem)
{
- nsAString attr_str, val_str;
BOOL is_on_list = FALSE;
install_entry_t *iter;
+ const PRUnichar *val;
+ nsAString val_str;
IUri *uri = NULL;
nsresult nsres;
HRESULT hres;
static const PRUnichar codebaseW[] = {'c','o','d','e','b','a','s','e',0};
- nsAString_InitDepend(&attr_str, codebaseW);
- nsAString_Init(&val_str, NULL);
- nsres = nsIDOMElement_GetAttribute(nselem, &attr_str, &val_str);
- nsAString_Finish(&attr_str);
+ nsres = get_elem_attr_value(nselem, codebaseW, &val_str, &val);
if(NS_SUCCEEDED(nsres)) {
- const PRUnichar *val;
-
- nsAString_GetData(&val_str, &val);
if(*val) {
hres = CoInternetCombineUrlEx(window->base.outer_window->uri, val, 0, &uri, 0);
if(FAILED(hres))
uri = NULL;
}
- }else {
- ERR("GetAttribute failed: %08x\n", nsres);
+ nsAString_Finish(&val_str);
}
- nsAString_Finish(&val_str);
if(!uri)
return;
IUri_Release(uri);
}
-static IUnknown *create_activex_object(HTMLInnerWindow *window, nsIDOMElement *nselem, CLSID *clsid)
+static IUnknown *create_activex_object(HTMLInnerWindow *window, nsIDOMHTMLElement *nselem, CLSID *clsid)
{
IClassFactoryEx *cfex;
IClassFactory *cf;
static NPError CDECL NPP_New(NPMIMEType pluginType, NPP instance, UINT16 mode, INT16 argc, char **argn,
char **argv, NPSavedData *saved)
{
- nsIDOMElement *nselem;
+ nsIDOMHTMLElement *nselem;
HTMLInnerWindow *window;
IUnknown *obj;
CLSID clsid;
window = get_elem_window(nselem);
if(!window) {
ERR("Could not get element's window object\n");
- nsIDOMElement_Release(nselem);
+ nsIDOMHTMLElement_Release(nselem);
return NPERR_GENERIC_ERROR;
}
PluginHost *host;
HRESULT hres;
- hres = create_plugin_host(window->doc, nselem, obj, &clsid, &host);
+ hres = create_plugin_host(window->doc, (nsIDOMElement*)nselem, obj, &clsid, &host);
IUnknown_Release(obj);
if(SUCCEEDED(hres))
instance->pdata = host;
err = NPERR_GENERIC_ERROR;
}
- nsIDOMElement_Release(nselem);
+ nsIDOMHTMLElement_Release(nselem);
return err;
}
static void set_environment(LPCWSTR gre_path)
{
- WCHAR path_env[MAX_PATH], buf[20];
- int len, debug_level = 0;
+ size_t len, gre_path_len;
+ int debug_level = 0;
+ WCHAR *path, buf[20];
+ const WCHAR *ptr;
static const WCHAR pathW[] = {'P','A','T','H',0};
static const WCHAR warnW[] = {'w','a','r','n',0};
{'N','S','P','R','_','L','O','G','_','M','O','D','U','L','E','S',0};
static const WCHAR debug_formatW[] = {'a','l','l',':','%','d',0};
- /* We have to modify PATH as XPCOM loads other DLLs from this directory. */
- GetEnvironmentVariableW(pathW, path_env, sizeof(path_env)/sizeof(WCHAR));
- len = strlenW(path_env);
- path_env[len++] = ';';
- strcpyW(path_env+len, gre_path);
- SetEnvironmentVariableW(pathW, path_env);
-
SetEnvironmentVariableW(xpcom_debug_breakW, warnW);
if(TRACE_ON(gecko))
sprintfW(buf, debug_formatW, debug_level);
SetEnvironmentVariableW(nspr_log_modulesW, buf);
+
+ len = GetEnvironmentVariableW(pathW, NULL, 0);
+ gre_path_len = strlenW(gre_path);
+ path = heap_alloc((len+gre_path_len+1)*sizeof(WCHAR));
+ if(!path)
+ return;
+ GetEnvironmentVariableW(pathW, path, len);
+
+ /* We have to modify PATH as xul.dll loads other DLLs from this directory. */
+ if(!(ptr = strstrW(path, gre_path))
+ || (ptr > path && *(ptr-1) != ';')
+ || (ptr[gre_path_len] && ptr[gre_path_len] != ';')) {
+ if(len)
+ path[len-1] = ';';
+ strcpyW(path+len, gre_path);
+ SetEnvironmentVariableW(pathW, path);
+ }
}
static BOOL load_xul(const PRUnichar *gre_path)
NS_StringContainerInit2(str, data, PR_UINT32_MAX, NS_STRING_CONTAINER_INIT_DEPEND);
}
-void nsAString_SetData(nsAString *str, const PRUnichar *data)
-{
- NS_StringSetData(str, data, PR_UINT32_MAX);
-}
-
UINT32 nsAString_GetData(const nsAString *str, const PRUnichar **data)
{
return NS_StringGetData(str, data, NULL);
nsresult Item(uint32_t index, nsIDOMNode **_retval);
nsresult NamedItem(const nsAString *name, nsIDOMNode **_retval);
nsresult Add(nsIDOMHTMLElement *element, nsIVariant *before);
- nsresult Remove(int32_t index);
+ nsresult select_Remove(int32_t index);
nsresult GetSelectedIndex(int32_t *aSelectedIndex);
nsresult SetSelectedIndex(int32_t aSelectedIndex);
nsresult GetValue(nsAString *aValue);
nsresult DeleteCell(int32_t index);
}
+[
+ object,
+ uuid(1fb22137-c231-4eae-9ca4-557bb0852d89),
+ local
+]
+interface nsIDOMHTMLTableCellElement : nsIDOMHTMLElement
+{
+ nsresult GetCellIndex(int32_t *aCellIndex);
+ nsresult GetAbbr(nsAString *aAbbr);
+ nsresult SetAbbr(const nsAString *aAbbr);
+ nsresult GetAlign(nsAString *aAlign);
+ nsresult SetAlign(const nsAString *aAlign);
+ nsresult GetAxis(nsAString *aAxis);
+ nsresult SetAxis(const nsAString *aAxis);
+ nsresult GetBgColor(nsAString *aBgColor);
+ nsresult SetBgColor(const nsAString *aBgColor);
+ nsresult GetCh(nsAString *aCh);
+ nsresult SetCh(const nsAString *aCh);
+ nsresult GetChOff(nsAString *aChOff);
+ nsresult SetChOff(const nsAString *aChOff);
+ nsresult GetColSpan(int32_t *aColSpan);
+ nsresult SetColSpan(int32_t aColSpan);
+ nsresult GetHeaders(nsAString *aHeaders);
+ nsresult SetHeaders(const nsAString *aHeaders);
+ nsresult GetHeight(nsAString *aHeight);
+ nsresult SetHeight(const nsAString *aHeight);
+ nsresult GetNoWrap(bool *aNoWrap);
+ nsresult SetNoWrap(bool aNoWrap);
+ nsresult GetRowSpan(int32_t *aRowSpan);
+ nsresult SetRowSpan(int32_t aRowSpan);
+ nsresult GetScope(nsAString *aScope);
+ nsresult SetScope(const nsAString *aScope);
+ nsresult GetVAlign(nsAString *aVAlign);
+ nsresult SetVAlign(const nsAString *aVAlign);
+ nsresult GetWidth(nsAString *aWidth);
+ nsresult SetWidth(const nsAString *aWidth);
+}
+
[
object,
uuid(21ffbe98-51f5-499e-8d6f-612ae798c1e1),
nsresult SetCustomValidity(const nsAString *error);
}
-[
- object,
- uuid(f85e1b05-6dc4-442d-bea8-7cf551f9bc9f),
- local
-]
-interface nsIDOMHTMLParamElement : nsIDOMHTMLElement
-{
- nsresult GetName(nsAString *aName);
- nsresult SetName(const nsAString *aName);
- nsresult GetType(nsAString *aType);
- nsresult SetType(const nsAString *aType);
- nsresult GetValue(nsAString *aValue);
- nsresult SetValue(const nsAString *aValue);
- nsresult GetValueType(nsAString *aValueType);
- nsresult SetValueType(const nsAString *aValueType);
-}
-
[
object,
uuid(e81273e1-d440-4dd3-9073-8199f7a9525e),
static nsresult NSAPI nsURL_GetQuery(nsIFileURL *iface, nsACString *aQuery)
{
nsWineURI *This = impl_from_nsIFileURL(iface);
+ WCHAR *ptr;
+ BSTR query;
+ nsresult nsres;
+ HRESULT hres;
TRACE("(%p)->(%p)\n", This, aQuery);
- return get_uri_string(This, Uri_PROPERTY_QUERY, aQuery);
+ if(!ensure_uri(This))
+ return NS_ERROR_UNEXPECTED;
+
+ hres = IUri_GetQuery(This->uri, &query);
+ if(FAILED(hres))
+ return NS_ERROR_FAILURE;
+
+ ptr = query;
+ if(ptr && *ptr == '?')
+ ptr++;
+
+ nsres = return_wstr_nsacstr(aQuery, ptr, -1);
+ SysFreeString(query);
+ return nsres;
}
static nsresult NSAPI nsURL_SetQuery(nsIFileURL *iface, const nsACString *aQuery)
(void**)&uihandler2);
if(SUCCEEDED(hres)) {
hres = IDocHostUIHandler2_GetOverrideKeyPath(uihandler2, &override_key_path, 0);
- if(hres == S_OK && override_key_path && override_key_path[0]) {
+ if(hres == S_OK && override_key_path) {
if(override_key_path[0]) {
/*FIXME: use override_key_path */
FIXME("override_key_path = %s\n", debugstr_w(override_key_path));
HTMLMimeTypesCollection *mime_types;
} OmNavigator;
+typedef struct {
+ DispatchEx dispex;
+ IHTMLDOMImplementation IHTMLDOMImplementation_iface;
+
+ LONG ref;
+} HTMLDOMImplementation;
+
+static inline HTMLDOMImplementation *impl_from_IHTMLDOMImplementation(IHTMLDOMImplementation *iface)
+{
+ return CONTAINING_RECORD(iface, HTMLDOMImplementation, IHTMLDOMImplementation_iface);
+}
+
+static HRESULT WINAPI HTMLDOMImplementation_QueryInterface(IHTMLDOMImplementation *iface, REFIID riid, void **ppv)
+{
+ HTMLDOMImplementation *This = impl_from_IHTMLDOMImplementation(iface);
+
+ TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
+
+ if(IsEqualGUID(&IID_IUnknown, riid) || IsEqualGUID(&IID_IHTMLDOMImplementation, riid)) {
+ *ppv = &This->IHTMLDOMImplementation_iface;
+ }else if(dispex_query_interface(&This->dispex, riid, ppv)) {
+ return *ppv ? S_OK : E_NOINTERFACE;
+ }else {
+ WARN("Unsupported interface %s\n", debugstr_mshtml_guid(riid));
+ *ppv = NULL;
+ return E_NOINTERFACE;
+ }
+
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
+}
+
+static ULONG WINAPI HTMLDOMImplementation_AddRef(IHTMLDOMImplementation *iface)
+{
+ HTMLDOMImplementation *This = impl_from_IHTMLDOMImplementation(iface);
+ LONG ref = InterlockedIncrement(&This->ref);
+
+ TRACE("(%p) ref=%d\n", This, ref);
+
+ return ref;
+}
+
+static ULONG WINAPI HTMLDOMImplementation_Release(IHTMLDOMImplementation *iface)
+{
+ HTMLDOMImplementation *This = impl_from_IHTMLDOMImplementation(iface);
+ LONG ref = InterlockedDecrement(&This->ref);
+
+ TRACE("(%p) ref=%d\n", This, ref);
+
+ if(!ref) {
+ release_dispex(&This->dispex);
+ heap_free(This);
+ }
+
+ return ref;
+}
+
+static HRESULT WINAPI HTMLDOMImplementation_GetTypeInfoCount(IHTMLDOMImplementation *iface, UINT *pctinfo)
+{
+ HTMLDOMImplementation *This = impl_from_IHTMLDOMImplementation(iface);
+
+ return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
+}
+
+static HRESULT WINAPI HTMLDOMImplementation_GetTypeInfo(IHTMLDOMImplementation *iface, UINT iTInfo,
+ LCID lcid, ITypeInfo **ppTInfo)
+{
+ HTMLDOMImplementation *This = impl_from_IHTMLDOMImplementation(iface);
+
+ return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
+}
+
+static HRESULT WINAPI HTMLDOMImplementation_GetIDsOfNames(IHTMLDOMImplementation *iface, REFIID riid,
+ LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
+{
+ HTMLDOMImplementation *This = impl_from_IHTMLDOMImplementation(iface);
+
+ return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames,
+ cNames, lcid, rgDispId);
+}
+
+static HRESULT WINAPI HTMLDOMImplementation_Invoke(IHTMLDOMImplementation *iface, DISPID dispIdMember,
+ REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult,
+ EXCEPINFO *pExcepInfo, UINT *puArgErr)
+{
+ HTMLDOMImplementation *This = impl_from_IHTMLDOMImplementation(iface);
+
+ return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid,
+ lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
+}
+
+static HRESULT WINAPI HTMLDOMImplementation_hasFeature(IHTMLDOMImplementation *iface, BSTR feature,
+ VARIANT version, VARIANT_BOOL *pfHasFeature)
+{
+ HTMLDOMImplementation *This = impl_from_IHTMLDOMImplementation(iface);
+
+ FIXME("(%p)->(%s %s %p) returning false\n", This, debugstr_w(feature), debugstr_variant(&version), pfHasFeature);
+
+ *pfHasFeature = VARIANT_FALSE;
+ return S_OK;
+}
+
+static const IHTMLDOMImplementationVtbl HTMLDOMImplementationVtbl = {
+ HTMLDOMImplementation_QueryInterface,
+ HTMLDOMImplementation_AddRef,
+ HTMLDOMImplementation_Release,
+ HTMLDOMImplementation_GetTypeInfoCount,
+ HTMLDOMImplementation_GetTypeInfo,
+ HTMLDOMImplementation_GetIDsOfNames,
+ HTMLDOMImplementation_Invoke,
+ HTMLDOMImplementation_hasFeature
+};
+
+static const tid_t HTMLDOMImplementation_iface_tids[] = {
+ IHTMLDOMImplementation_tid,
+ 0
+};
+static dispex_static_data_t HTMLDOMImplementation_dispex = {
+ NULL,
+ IHTMLDOMImplementation_tid,
+ NULL,
+ HTMLDOMImplementation_iface_tids
+};
+
+HRESULT create_dom_implementation(IHTMLDOMImplementation **ret)
+{
+ HTMLDOMImplementation *dom_implementation;
+
+ dom_implementation = heap_alloc_zero(sizeof(*dom_implementation));
+ if(!dom_implementation)
+ return E_OUTOFMEMORY;
+
+ dom_implementation->IHTMLDOMImplementation_iface.lpVtbl = &HTMLDOMImplementationVtbl;
+ dom_implementation->ref = 1;
+
+ init_dispex(&dom_implementation->dispex, (IUnknown*)&dom_implementation->IHTMLDOMImplementation_iface,
+ &HTMLDOMImplementation_dispex);
+
+ *ret = &dom_implementation->IHTMLDOMImplementation_iface;
+ return S_OK;
+}
+
static inline OmHistory *impl_from_IOmHistory(IOmHistory *iface)
{
return CONTAINING_RECORD(iface, OmHistory, IOmHistory_iface);
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
+#pragma once
+
typedef struct HTMLPluginContainer HTMLPluginContainer;
typedef struct PHEventSink PHEventSink;
static HRESULT fill_props(nsIDOMHTMLElement *nselem, PropertyBag *prop_bag)
{
- nsIDOMHTMLParamElement *nsparam;
+ const PRUnichar *name, *value;
nsAString name_str, value_str;
nsIDOMHTMLCollection *params;
+ nsIDOMHTMLElement *param_elem;
UINT32 length, i;
nsIDOMNode *nsnode;
nsresult nsres;
HRESULT hres = S_OK;
+ static const PRUnichar nameW[] = {'n','a','m','e',0};
static const PRUnichar paramW[] = {'p','a','r','a','m',0};
+ static const PRUnichar valueW[] = {'v','a','l','u','e',0};
nsAString_InitDepend(&name_str, paramW);
nsres = nsIDOMHTMLElement_GetElementsByTagName(nselem, &name_str, ¶ms);
break;
}
- nsres = nsIDOMNode_QueryInterface(nsnode, &IID_nsIDOMHTMLParamElement, (void**)&nsparam);
+ nsres = nsIDOMNode_QueryInterface(nsnode, &IID_nsIDOMHTMLElement, (void**)¶m_elem);
nsIDOMNode_Release(nsnode);
if(NS_FAILED(nsres)) {
hres = E_FAIL;
break;
}
- nsAString_Init(&name_str, NULL);
- nsres = nsIDOMHTMLParamElement_GetName(nsparam, &name_str);
+ nsres = get_elem_attr_value(param_elem, nameW, &name_str, &name);
if(NS_SUCCEEDED(nsres)) {
- nsAString_Init(&value_str, NULL);
- nsres = nsIDOMHTMLParamElement_GetValue(nsparam, &value_str);
+ nsres = get_elem_attr_value(param_elem, valueW, &value_str, &value);
if(NS_SUCCEEDED(nsres)) {
- const PRUnichar *name, *value;
-
- nsAString_GetData(&name_str, &name);
- nsAString_GetData(&value_str, &value);
-
hres = add_prop(prop_bag, name, value);
+ nsAString_Finish(&value_str);
}
- nsAString_Finish(&value_str);
+
+ nsAString_Finish(&name_str);
}
- nsAString_Finish(&name_str);
- nsIDOMHTMLParamElement_Release(nsparam);
+ nsIDOMHTMLElement_Release(param_elem);
if(FAILED(hres))
break;
if(NS_FAILED(nsres)) {
return;
}
}else {
- ERR("GetAttribute(event) failed: %08x\n", nsres);
+ ERR("GetEvent failed: %08x\n", nsres);
}
nsAString_Finish(&event_str);
static BOOL get_script_guid(HTMLInnerWindow *window, nsIDOMHTMLScriptElement *nsscript, GUID *guid)
{
- nsAString attr_str, val_str;
+ const PRUnichar *language;
+ nsAString val_str;
BOOL ret = FALSE;
nsresult nsres;
ERR("GetType failed: %08x\n", nsres);
}
- nsAString_InitDepend(&attr_str, languageW);
- nsres = nsIDOMHTMLScriptElement_GetAttribute(nsscript, &attr_str, &val_str);
- nsAString_Finish(&attr_str);
+ nsres = get_elem_attr_value((nsIDOMHTMLElement*)nsscript, languageW, &val_str, &language);
if(NS_SUCCEEDED(nsres)) {
- const PRUnichar *language;
-
- nsAString_GetData(&val_str, &language);
-
if(*language) {
ret = get_guid_from_language(language, guid);
}else {
*guid = get_default_script_guid(window);
ret = TRUE;
}
- }else {
- ERR("GetAttribute(language) failed: %08x\n", nsres);
+ nsAString_Finish(&val_str);
}
- nsAString_Finish(&val_str);
-
return ret;
}
reactos/dll/win32/msftedit # Synced to Wine-1.7.17
reactos/dll/win32/msg711.acm # Synced to Wine-1.7.17
reactos/dll/win32/msgsm32.acm # Synced to Wine-1.7.17
-reactos/dll/win32/mshtml # Synced to Wine-1.7.17
+reactos/dll/win32/mshtml # Synced to Wine-1.7.27
reactos/dll/win32/mshtml.tlb # Synced to Wine-1.7.17
reactos/dll/win32/msi # Synced to Wine-1.7.27
reactos/dll/win32/msimg32 # Synced to Wine-1.7.17