mirror of
https://github.com/reactos/reactos.git
synced 2025-05-30 22:49:12 +00:00
[MSHTML]
* Sync with Wine 1.7.27. CORE-8540 svn path=/trunk/; revision=64458
This commit is contained in:
parent
183ee0a9d0
commit
a197629da8
73 changed files with 2231 additions and 961 deletions
|
@ -16,6 +16,8 @@
|
|||
* 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 */
|
||||
|
|
|
@ -18,23 +18,120 @@
|
|||
|
||||
#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
|
||||
|
||||
X(IID_IPropertyNotifySink);
|
||||
X(DIID_HTMLDocumentEvents);
|
||||
X(DIID_HTMLDocumentEvents2);
|
||||
X(DIID_HTMLTableEvents);
|
||||
X(DIID_HTMLTextContainerEvents);
|
||||
|
||||
#undef X
|
||||
|
||||
return debugstr_guid(riid);
|
||||
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);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI EnumConnections_Skip(IEnumConnections *iface, ULONG cConnections)
|
||||
{
|
||||
EnumConnections *This = impl_from_IEnumConnections(iface);
|
||||
FIXME("(%p)->(%d)\n", This, cConnections);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
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);
|
||||
|
@ -45,23 +142,20 @@ static HRESULT WINAPI ConnectionPoint_QueryInterface(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)
|
||||
|
@ -162,8 +256,23 @@ static HRESULT WINAPI ConnectionPoint_EnumConnections(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 =
|
||||
|
@ -283,7 +392,7 @@ static HRESULT WINAPI ConnectionPointContainer_FindConnectionPoint(IConnectionPo
|
|||
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,
|
||||
|
@ -291,7 +400,7 @@ static HRESULT WINAPI ConnectionPointContainer_FindConnectionPoint(IConnectionPo
|
|||
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -129,7 +129,7 @@ static HRESULT get_typeinfo(tid_t tid, ITypeInfo **typeinfo)
|
|||
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -616,7 +616,7 @@ static HRESULT typeinfo_invoke(DispatchEx *This, func_info_t *func, WORD flags,
|
|||
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -702,6 +702,37 @@ static HRESULT function_value(DispatchEx *dispex, LCID lcid, WORD flags, DISPPAR
|
|||
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;
|
||||
|
@ -1184,6 +1215,7 @@ static HRESULT invoke_builtin_prop(DispatchEx *This, DISPID id, LCID lcid, WORD
|
|||
|
||||
switch(flags) {
|
||||
case DISPATCH_PROPERTYPUT:
|
||||
case DISPATCH_PROPERTYPUT | DISPATCH_PROPERTYPUTREF:
|
||||
if(res)
|
||||
V_VT(res) = VT_EMPTY;
|
||||
hres = builtin_propput(This, func, dp, caller);
|
||||
|
@ -1203,7 +1235,7 @@ static HRESULT invoke_builtin_prop(DispatchEx *This, DISPID id, LCID lcid, WORD
|
|||
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -246,7 +246,7 @@ static void remove_child_attr(nsIDOMElement *elem, LPCWSTR tag, nsAString *attr_
|
|||
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;
|
||||
|
@ -267,36 +267,29 @@ static void get_font_size(HTMLDocument *This, WCHAR *ret)
|
|||
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)
|
||||
|
|
|
@ -81,8 +81,9 @@ HTMLOuterWindow *get_target_window(HTMLOuterWindow *window, nsAString *target_st
|
|||
|
||||
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);
|
||||
|
|
|
@ -28,16 +28,16 @@ static HRESULT WINAPI HTMLDOMAttribute_QueryInterface(IHTMLDOMAttribute *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;
|
||||
}
|
||||
|
@ -123,11 +123,25 @@ static HRESULT WINAPI HTMLDOMAttribute_get_nodeName(IHTMLDOMAttribute *iface, BS
|
|||
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)
|
||||
|
@ -201,7 +215,7 @@ static const IHTMLDOMAttributeVtbl HTMLDOMAttributeVtbl = {
|
|||
HTMLDOMAttribute_GetIDsOfNames,
|
||||
HTMLDOMAttribute_Invoke,
|
||||
HTMLDOMAttribute_get_nodeName,
|
||||
HTMLDOMAttribute_put_nodeName,
|
||||
HTMLDOMAttribute_put_nodeValue,
|
||||
HTMLDOMAttribute_get_nodeValue,
|
||||
HTMLDOMAttribute_get_specified
|
||||
};
|
||||
|
|
|
@ -55,34 +55,28 @@ static HRESULT WINAPI HTMLCurrentStyle_QueryInterface(IHTMLCurrentStyle *iface,
|
|||
{
|
||||
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)
|
||||
|
@ -785,8 +779,8 @@ static HRESULT WINAPI HTMLCurrentStyle_get_overflowY(IHTMLCurrentStyle *iface, B
|
|||
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 = {
|
||||
|
|
|
@ -1555,8 +1555,17 @@ static HRESULT WINAPI HTMLDocument_get_onerrorupdate(IHTMLDocument2 *iface, VARI
|
|||
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,
|
||||
|
@ -2585,8 +2594,21 @@ static HRESULT WINAPI HTMLDocument5_get_doctype(IHTMLDocument5 *iface, IHTMLDOMN
|
|||
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,
|
||||
|
@ -3841,7 +3863,7 @@ static ULONG WINAPI SupportErrorInfo_Release(ISupportErrorInfo *iface)
|
|||
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -4113,106 +4135,81 @@ static BOOL htmldoc_qi(HTMLDocument *This, REFIID riid, void **ppv)
|
|||
{
|
||||
*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)) {
|
||||
|
@ -4230,18 +4227,6 @@ static BOOL htmldoc_qi(HTMLDocument *This, REFIID riid, void **ppv)
|
|||
}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;
|
||||
}
|
||||
|
@ -4304,15 +4289,15 @@ static HRESULT HTMLDocumentNode_QI(HTMLDOMNode *iface, REFIID riid, void **ppv)
|
|||
{
|
||||
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;
|
||||
|
@ -4344,11 +4329,7 @@ static void HTMLDocumentNode_destructor(HTMLDOMNode *iface)
|
|||
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;
|
||||
|
@ -4595,19 +4576,19 @@ static HRESULT WINAPI CustomDoc_QueryInterface(ICustomDoc *iface, REFIID riid, v
|
|||
{
|
||||
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;
|
||||
}
|
||||
|
@ -4744,7 +4725,7 @@ HRESULT HTMLDocument_Create(IUnknown *pUnkOuter, REFIID riid, void** ppvObject)
|
|||
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)
|
||||
|
|
|
@ -138,6 +138,68 @@ HRESULT replace_node_by_html(nsIDOMHTMLDocument *nsdoc, nsIDOMNode *nsnode, cons
|
|||
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;
|
||||
|
@ -771,30 +833,53 @@ static HRESULT WINAPI HTMLElement_get_onselectstart(IHTMLElement *iface, VARIANT
|
|||
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;
|
||||
|
@ -804,8 +889,10 @@ static HRESULT WINAPI HTMLElement_contains(IHTMLElement *iface, IHTMLElement *pC
|
|||
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)
|
||||
|
@ -1547,37 +1634,26 @@ HRESULT HTMLElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv)
|
|||
{
|
||||
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)
|
||||
|
@ -1896,25 +1972,23 @@ static HRESULT WINAPI HTMLFiltersCollection_QueryInterface(IHTMLFiltersCollectio
|
|||
{
|
||||
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)
|
||||
|
@ -2082,31 +2156,24 @@ static HRESULT WINAPI HTMLAttributeCollection_QueryInterface(IHTMLAttributeColle
|
|||
{
|
||||
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)
|
||||
|
|
|
@ -36,16 +36,16 @@ static HRESULT WINAPI HTMLRect_QueryInterface(IHTMLRect *iface, REFIID riid, voi
|
|||
{
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -160,15 +160,34 @@ static HRESULT WINAPI HTMLElement3_setActive(IHTMLElement3 *iface)
|
|||
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)
|
||||
|
@ -524,15 +543,19 @@ static HRESULT WINAPI HTMLElement4_Invoke(IHTMLElement4 *iface, DISPID dispIdMem
|
|||
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)
|
||||
|
|
|
@ -28,6 +28,15 @@ typedef struct {
|
|||
LONG ref;
|
||||
} HTMLElementCollection;
|
||||
|
||||
typedef struct {
|
||||
IEnumVARIANT IEnumVARIANT_iface;
|
||||
|
||||
LONG ref;
|
||||
|
||||
ULONG iter;
|
||||
HTMLElementCollection *col;
|
||||
} HTMLElementCollectionEnum;
|
||||
|
||||
typedef struct {
|
||||
HTMLElement **buf;
|
||||
DWORD len;
|
||||
|
@ -73,6 +82,118 @@ static inline BOOL is_elem_node(nsIDOMNode *node)
|
|||
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);
|
||||
|
@ -83,25 +204,20 @@ static HRESULT WINAPI HTMLElementCollection_QueryInterface(IHTMLElementCollectio
|
|||
{
|
||||
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)
|
||||
|
@ -197,8 +313,23 @@ static HRESULT WINAPI HTMLElementCollection_get__newEnum(IHTMLElementCollection
|
|||
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)
|
||||
|
@ -224,7 +355,7 @@ 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;
|
||||
|
||||
|
@ -241,15 +372,12 @@ static BOOL is_elem_name(HTMLElement *elem, LPCWSTR name)
|
|||
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;
|
||||
}
|
||||
|
||||
|
@ -605,6 +733,75 @@ IHTMLElementCollection *create_collection_from_htmlcol(HTMLDocumentNode *doc, ns
|
|||
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));
|
||||
|
|
|
@ -94,6 +94,9 @@ static const WCHAR onmouseoverW[] = {'o','n','m','o','u','s','e','o','v','e','r'
|
|||
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};
|
||||
|
||||
|
@ -190,6 +193,8 @@ static const event_info_t event_info[] = {
|
|||
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,
|
||||
|
@ -201,7 +206,7 @@ static const event_info_t event_info[] = {
|
|||
{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)
|
||||
|
@ -251,25 +256,22 @@ static HRESULT WINAPI HTMLEventObj_QueryInterface(IHTMLEventObj *iface, REFIID r
|
|||
{
|
||||
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)
|
||||
|
@ -1314,16 +1316,8 @@ static HRESULT ensure_nsevent_handler(HTMLDocumentNode *doc, event_target_t *eve
|
|||
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;
|
||||
|
@ -1509,24 +1503,19 @@ void update_cp_events(HTMLInnerWindow *window, event_target_t **event_target_ptr
|
|||
}
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
|
@ -1541,11 +1530,9 @@ void check_event_attr(HTMLDocumentNode *doc, nsIDOMElement *nselem)
|
|||
}
|
||||
IDispatch_Release(disp);
|
||||
}
|
||||
nsAString_Finish(&attr_value_str);
|
||||
}
|
||||
}
|
||||
|
||||
nsAString_Finish(&attr_value_str);
|
||||
nsAString_Finish(&attr_name_str);
|
||||
}
|
||||
|
||||
HRESULT doc_init_events(HTMLDocumentNode *doc)
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
typedef enum {
|
||||
EVENTID_ABORT,
|
||||
EVENTID_BEFOREUNLOAD,
|
||||
|
@ -39,6 +41,7 @@ typedef enum {
|
|||
EVENTID_MOUSEOUT,
|
||||
EVENTID_MOUSEOVER,
|
||||
EVENTID_MOUSEUP,
|
||||
EVENTID_MOUSEWHEEL,
|
||||
EVENTID_PASTE,
|
||||
EVENTID_READYSTATECHANGE,
|
||||
EVENTID_RESIZE,
|
||||
|
@ -49,7 +52,7 @@ typedef enum {
|
|||
} 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;
|
||||
|
|
|
@ -270,15 +270,36 @@ static HRESULT WINAPI HTMLFormElement_get_elements(IHTMLFormElement *iface, IDis
|
|||
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)
|
||||
|
@ -420,8 +441,16 @@ static HRESULT WINAPI HTMLFormElement_submit(IHTMLFormElement *iface)
|
|||
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)
|
||||
|
@ -552,7 +581,7 @@ static HRESULT HTMLFormElement_get_dispid(HTMLDOMNode *iface,
|
|||
{
|
||||
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;
|
||||
|
@ -588,7 +617,6 @@ static HRESULT HTMLFormElement_get_dispid(HTMLDOMNode *iface,
|
|||
}
|
||||
}
|
||||
|
||||
nsAString_InitDepend(&nsname, nameW);
|
||||
nsAString_Init(&nsstr, NULL);
|
||||
for(i = 0; i < len; ++i) {
|
||||
nsIDOMNode *nsitem;
|
||||
|
@ -628,21 +656,22 @@ static HRESULT HTMLFormElement_get_dispid(HTMLDOMNode *iface,
|
|||
}
|
||||
|
||||
/* 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);
|
||||
|
||||
nsIDOMHTMLCollection_Release(elements);
|
||||
|
||||
return hres;
|
||||
}
|
||||
|
||||
|
@ -669,12 +698,24 @@ static HRESULT HTMLFormElement_invoke(HTMLDOMNode *iface,
|
|||
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,
|
||||
|
|
|
@ -121,12 +121,12 @@ static HRESULT HTMLTitleElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv)
|
|||
{
|
||||
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;
|
||||
|
@ -281,12 +281,12 @@ static HRESULT HTMLHeadElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv)
|
|||
{
|
||||
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;
|
||||
|
|
|
@ -87,15 +87,37 @@ static HRESULT WINAPI HTMLImgElement_Invoke(IHTMLImgElement *iface, DISPID dispI
|
|||
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)
|
||||
|
@ -375,15 +397,35 @@ static HRESULT WINAPI HTMLImgElement_get_loop(IHTMLImgElement *iface, VARIANT *p
|
|||
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)
|
||||
|
@ -690,24 +732,22 @@ static HRESULT WINAPI HTMLImageElementFactory_QueryInterface(IHTMLImageElementFa
|
|||
{
|
||||
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)
|
||||
|
@ -737,16 +777,14 @@ static HRESULT WINAPI HTMLImageElementFactory_GetTypeInfoCount(IHTMLImageElement
|
|||
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,
|
||||
|
@ -754,9 +792,7 @@ static HRESULT WINAPI HTMLImageElementFactory_GetIDsOfNames(IHTMLImageElementFac
|
|||
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,
|
||||
|
@ -765,9 +801,8 @@ static HRESULT WINAPI HTMLImageElementFactory_Invoke(IHTMLImageElementFactory *i
|
|||
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)
|
||||
|
|
|
@ -241,22 +241,66 @@ static HRESULT WINAPI HTMLInputElement_get_disabled(IHTMLInputElement *iface, VA
|
|||
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)
|
||||
|
@ -375,15 +419,33 @@ static HRESULT WINAPI HTMLInputElement_get_defaultValue(IHTMLInputElement *iface
|
|||
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)
|
||||
|
@ -1320,29 +1382,10 @@ static HRESULT WINAPI HTMLLabelElement_put_htmlFor(IHTMLLabelElement *iface, BST
|
|||
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)
|
||||
|
|
|
@ -147,15 +147,33 @@ static HRESULT WINAPI HTMLLinkElement_get_rel(IHTMLLinkElement *iface, BSTR *p)
|
|||
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)
|
||||
|
@ -272,15 +290,35 @@ static HRESULT WINAPI HTMLLinkElement_get_disabled(IHTMLLinkElement *iface, VARI
|
|||
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 = {
|
||||
|
|
|
@ -63,25 +63,22 @@ static HRESULT WINAPI HTMLLocation_QueryInterface(IHTMLLocation *iface, REFIID r
|
|||
{
|
||||
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)
|
||||
|
@ -560,8 +557,8 @@ static HRESULT WINAPI HTMLLocation_replace(IHTMLLocation *iface, BSTR bstr)
|
|||
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)
|
||||
|
|
|
@ -91,19 +91,11 @@ static HRESULT WINAPI HTMLMetaElement_put_httpEquiv(IHTMLMetaElement *iface, BST
|
|||
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)
|
||||
|
@ -116,19 +108,11 @@ static HRESULT WINAPI HTMLMetaElement_put_content(IHTMLMetaElement *iface, BSTR
|
|||
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)
|
||||
|
@ -141,19 +125,11 @@ 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)
|
||||
|
@ -170,18 +146,24 @@ static HRESULT WINAPI HTMLMetaElement_get_url(IHTMLMetaElement *iface, BSTR *p)
|
|||
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 = {
|
||||
|
|
|
@ -33,6 +33,155 @@ typedef struct {
|
|||
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);
|
||||
|
@ -42,25 +191,22 @@ static HRESULT WINAPI HTMLDOMChildrenCollection_QueryInterface(IHTMLDOMChildrenC
|
|||
{
|
||||
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)
|
||||
|
@ -131,11 +277,26 @@ static HRESULT WINAPI HTMLDOMChildrenCollection_get_length(IHTMLDOMChildrenColle
|
|||
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)
|
||||
|
@ -181,7 +342,7 @@ static const IHTMLDOMChildrenCollectionVtbl HTMLDOMChildrenCollectionVtbl = {
|
|||
HTMLDOMChildrenCollection_GetIDsOfNames,
|
||||
HTMLDOMChildrenCollection_Invoke,
|
||||
HTMLDOMChildrenCollection_get_length,
|
||||
HTMLDOMChildrenCollection__newEnum,
|
||||
HTMLDOMChildrenCollection_get__newEnum,
|
||||
HTMLDOMChildrenCollection_item
|
||||
};
|
||||
|
||||
|
@ -316,6 +477,8 @@ static ULONG WINAPI HTMLDOMNode_Release(IHTMLDOMNode *iface)
|
|||
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);
|
||||
|
@ -984,47 +1147,34 @@ static nsXPCOMCycleCollectionParticipant node_ccp;
|
|||
|
||||
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)
|
||||
|
|
|
@ -352,26 +352,24 @@ static HRESULT WINAPI HTMLOptionElementFactory_QueryInterface(IHTMLOptionElement
|
|||
{
|
||||
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)
|
||||
|
@ -391,8 +389,10 @@ static ULONG WINAPI HTMLOptionElementFactory_Release(IHTMLOptionElementFactory *
|
|||
|
||||
TRACE("(%p) ref=%d\n", This, ref);
|
||||
|
||||
if(!ref)
|
||||
if(!ref) {
|
||||
release_dispex(&This->dispex);
|
||||
heap_free(This);
|
||||
}
|
||||
|
||||
return ref;
|
||||
}
|
||||
|
@ -400,16 +400,14 @@ static ULONG WINAPI HTMLOptionElementFactory_Release(IHTMLOptionElementFactory *
|
|||
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,
|
||||
|
@ -417,9 +415,7 @@ static HRESULT WINAPI HTMLOptionElementFactory_GetIDsOfNames(IHTMLOptionElementF
|
|||
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,
|
||||
|
@ -427,9 +423,8 @@ static HRESULT WINAPI HTMLOptionElementFactory_Invoke(IHTMLOptionElementFactory
|
|||
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,
|
||||
|
@ -495,6 +490,18 @@ static const IHTMLOptionElementFactoryVtbl HTMLOptionElementFactoryVtbl = {
|
|||
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;
|
||||
|
@ -507,6 +514,9 @@ HRESULT HTMLOptionElementFactory_Create(HTMLInnerWindow *window, HTMLOptionEleme
|
|||
ret->ref = 1;
|
||||
ret->window = window;
|
||||
|
||||
init_dispex(&ret->dispex, (IUnknown*)&ret->IHTMLOptionElementFactory_iface,
|
||||
&HTMLOptionElementFactory_dispex);
|
||||
|
||||
*ret_ptr = ret;
|
||||
return S_OK;
|
||||
}
|
||||
|
|
|
@ -34,25 +34,22 @@ static HRESULT WINAPI HTMLScreen_QueryInterface(IHTMLScreen *iface, REFIID riid,
|
|||
{
|
||||
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)
|
||||
|
@ -83,24 +80,22 @@ static ULONG WINAPI HTMLScreen_Release(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,
|
||||
|
@ -108,8 +103,8 @@ 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)
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
typedef struct {
|
||||
HTMLElement element;
|
||||
|
||||
|
|
|
@ -392,8 +392,14 @@ static HRESULT WINAPI HTMLSelectElement_add(IHTMLSelectElement *iface, IHTMLElem
|
|||
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)
|
||||
|
|
|
@ -33,25 +33,22 @@ static HRESULT WINAPI HTMLStorage_QueryInterface(IHTMLStorage *iface, REFIID rii
|
|||
{
|
||||
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)
|
||||
|
|
|
@ -20,6 +20,8 @@
|
|||
|
||||
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[] =
|
||||
|
@ -109,8 +111,12 @@ static const WCHAR attrLetterSpacing[] =
|
|||
{'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[] =
|
||||
|
@ -123,6 +129,8 @@ static const WCHAR attrMarginTop[] =
|
|||
{'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[] =
|
||||
|
@ -149,12 +157,16 @@ static const WCHAR attrPosition[] =
|
|||
{'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[] =
|
||||
|
@ -182,6 +194,7 @@ typedef struct {
|
|||
|
||||
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},
|
||||
|
@ -226,6 +239,8 @@ static const style_tbl_entry_t style_tbl[] = {
|
|||
{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},
|
||||
|
@ -233,6 +248,7 @@ static const style_tbl_entry_t style_tbl[] = {
|
|||
{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},
|
||||
|
@ -246,9 +262,11 @@ static const style_tbl_entry_t style_tbl[] = {
|
|||
{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},
|
||||
|
@ -649,6 +667,9 @@ static HRESULT get_nsstyle_pixel_val(HTMLStyle *This, styleid_t sid, LONG *p)
|
|||
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);
|
||||
|
@ -713,40 +734,32 @@ static HRESULT WINAPI HTMLStyle_QueryInterface(IHTMLStyle *iface, REFIID riid, v
|
|||
{
|
||||
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)
|
||||
|
@ -1059,15 +1072,19 @@ static HRESULT WINAPI HTMLStyle_get_backgroundRepeat(IHTMLStyle *iface, BSTR *p)
|
|||
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)
|
||||
|
@ -1441,15 +1458,19 @@ static HRESULT WINAPI HTMLStyle_get_verticalAlign(IHTMLStyle *iface, VARIANT *p)
|
|||
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)
|
||||
|
@ -1473,29 +1494,37 @@ static HRESULT WINAPI HTMLStyle_get_textAlign(IHTMLStyle *iface, BSTR *p)
|
|||
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)
|
||||
|
@ -2172,15 +2201,19 @@ static HRESULT WINAPI HTMLStyle_get_listStyleType(IHTMLStyle *iface, BSTR *p)
|
|||
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)
|
||||
|
@ -2200,15 +2233,19 @@ static HRESULT WINAPI HTMLStyle_get_listStyleImage(IHTMLStyle *iface, BSTR *p)
|
|||
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)
|
||||
|
@ -2406,15 +2443,19 @@ static HRESULT WINAPI HTMLStyle_get_cssText(IHTMLStyle *iface, BSTR *p)
|
|||
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)
|
||||
|
@ -2447,22 +2488,28 @@ static HRESULT WINAPI HTMLStyle_put_pixelWidth(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)
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
struct HTMLStyle {
|
||||
DispatchEx dispex;
|
||||
IHTMLStyle IHTMLStyle_iface;
|
||||
|
@ -34,6 +36,7 @@ struct HTMLStyle {
|
|||
/* 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,
|
||||
|
@ -78,6 +81,8 @@ typedef enum {
|
|||
STYLEID_LEFT,
|
||||
STYLEID_LETTER_SPACING,
|
||||
STYLEID_LINE_HEIGHT,
|
||||
STYLEID_LIST_STYLE,
|
||||
STYLEID_LISTSTYLEPOSITION,
|
||||
STYLEID_LISTSTYLETYPE,
|
||||
STYLEID_MARGIN,
|
||||
STYLEID_MARGIN_BOTTOM,
|
||||
|
@ -85,6 +90,7 @@ typedef enum {
|
|||
STYLEID_MARGIN_RIGHT,
|
||||
STYLEID_MARGIN_TOP,
|
||||
STYLEID_MIN_HEIGHT,
|
||||
STYLEID_MIN_WIDTH,
|
||||
STYLEID_OUTLINE,
|
||||
STYLEID_OVERFLOW,
|
||||
STYLEID_OVERFLOW_X,
|
||||
|
@ -98,9 +104,11 @@ typedef enum {
|
|||
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,
|
||||
|
|
|
@ -78,15 +78,19 @@ static HRESULT WINAPI HTMLStyle2_Invoke(IHTMLStyle2 *iface, DISPID dispIdMember,
|
|||
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)
|
||||
|
|
|
@ -530,15 +530,19 @@ static HRESULT WINAPI HTMLStyle5_get_maxHeight(IHTMLStyle5 *iface, VARIANT *p)
|
|||
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)
|
||||
|
|
|
@ -37,6 +37,7 @@ struct HTMLStyleSheetsCollection {
|
|||
};
|
||||
|
||||
struct HTMLStyleSheetRulesCollection {
|
||||
DispatchEx dispex;
|
||||
IHTMLStyleSheetRulesCollection IHTMLStyleSheetRulesCollection_iface;
|
||||
|
||||
LONG ref;
|
||||
|
@ -54,21 +55,22 @@ static HRESULT WINAPI HTMLStyleSheetRulesCollection_QueryInterface(IHTMLStyleShe
|
|||
{
|
||||
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)
|
||||
|
@ -89,6 +91,7 @@ static ULONG WINAPI HTMLStyleSheetRulesCollection_Release(IHTMLStyleSheetRulesCo
|
|||
TRACE("(%p) ref=%d\n", This, ref);
|
||||
|
||||
if(!ref) {
|
||||
release_dispex(&This->dispex);
|
||||
if(This->nslist)
|
||||
nsIDOMCSSRuleList_Release(This->nslist);
|
||||
heap_free(This);
|
||||
|
@ -101,25 +104,22 @@ static HRESULT WINAPI HTMLStyleSheetRulesCollection_GetTypeInfoCount(
|
|||
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,
|
||||
|
@ -127,9 +127,8 @@ static HRESULT WINAPI HTMLStyleSheetRulesCollection_Invoke(IHTMLStyleSheetRulesC
|
|||
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,
|
||||
|
@ -172,6 +171,17 @@ static const IHTMLStyleSheetRulesCollectionVtbl HTMLStyleSheetRulesCollectionVtb
|
|||
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;
|
||||
|
@ -181,6 +191,8 @@ static IHTMLStyleSheetRulesCollection *HTMLStyleSheetRulesCollection_Create(nsID
|
|||
ret->ref = 1;
|
||||
ret->nslist = nslist;
|
||||
|
||||
init_dispex(&ret->dispex, (IUnknown*)&ret->IHTMLStyleSheetRulesCollection_iface, &HTMLStyleSheetRulesCollection_dispex);
|
||||
|
||||
if(nslist)
|
||||
nsIDOMCSSRuleList_AddRef(nslist);
|
||||
|
||||
|
@ -197,28 +209,24 @@ static HRESULT WINAPI HTMLStyleSheetsCollection_QueryInterface(IHTMLStyleSheetsC
|
|||
{
|
||||
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)
|
||||
|
@ -239,6 +247,7 @@ static ULONG WINAPI HTMLStyleSheetsCollection_Release(IHTMLStyleSheetsCollection
|
|||
TRACE("(%p) ref=%d\n", This, ref);
|
||||
|
||||
if(!ref) {
|
||||
release_dispex(&This->dispex);
|
||||
if(This->nslist)
|
||||
nsIDOMStyleSheetList_Release(This->nslist);
|
||||
heap_free(This);
|
||||
|
@ -389,28 +398,24 @@ static HRESULT WINAPI HTMLStyleSheet_QueryInterface(IHTMLStyleSheet *iface, REFI
|
|||
{
|
||||
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)
|
||||
|
@ -430,8 +435,12 @@ static ULONG WINAPI HTMLStyleSheet_Release(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;
|
||||
}
|
||||
|
@ -447,7 +456,6 @@ static HRESULT WINAPI HTMLStyleSheet_GetTypeInfo(IHTMLStyleSheet *iface, UINT iT
|
|||
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);
|
||||
}
|
||||
|
||||
|
@ -456,7 +464,6 @@ static HRESULT WINAPI HTMLStyleSheet_GetIDsOfNames(IHTMLStyleSheet *iface, REFII
|
|||
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);
|
||||
}
|
||||
|
||||
|
@ -465,8 +472,6 @@ static HRESULT WINAPI HTMLStyleSheet_Invoke(IHTMLStyleSheet *iface, DISPID dispI
|
|||
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);
|
||||
}
|
||||
|
|
|
@ -43,6 +43,57 @@ static inline HTMLTable *impl_from_IHTMLTable3(IHTMLTable3 *iface)
|
|||
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)
|
||||
{
|
||||
|
@ -128,15 +179,34 @@ static HRESULT WINAPI HTMLTable_get_border(IHTMLTable *iface, VARIANT *p)
|
|||
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)
|
||||
|
@ -237,11 +307,11 @@ static HRESULT WINAPI HTMLTable_put_bgColor(IHTMLTable *iface, VARIANT 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;
|
||||
|
@ -381,15 +451,52 @@ static HRESULT WINAPI HTMLTable_get_rows(IHTMLTable *iface, IHTMLElementCollecti
|
|||
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)
|
||||
|
@ -520,15 +627,41 @@ static HRESULT WINAPI HTMLTable_deleteCaption(IHTMLTable *iface)
|
|||
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)
|
||||
|
@ -767,15 +900,35 @@ static HRESULT WINAPI HTMLTable3_Invoke(IHTMLTable3 *iface, DISPID dispIdMember,
|
|||
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 = {
|
||||
|
@ -812,10 +965,10 @@ static HRESULT HTMLTable_QI(HTMLDOMNode *iface, REFIID riid, void **ppv)
|
|||
*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) {
|
||||
|
@ -844,6 +997,8 @@ static const NodeImplVtbl HTMLTableImplVtbl = {
|
|||
static const tid_t HTMLTable_iface_tids[] = {
|
||||
HTMLELEMENT_TIDS,
|
||||
IHTMLTable_tid,
|
||||
IHTMLTable2_tid,
|
||||
IHTMLTable3_tid,
|
||||
0
|
||||
};
|
||||
|
||||
|
@ -865,6 +1020,8 @@ HRESULT HTMLTable_Create(HTMLDocumentNode *doc, nsIDOMHTMLElement *nselem, HTMLE
|
|||
|
||||
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);
|
||||
|
||||
|
|
|
@ -22,6 +22,8 @@ typedef struct {
|
|||
HTMLElement element;
|
||||
|
||||
IHTMLTableCell IHTMLTableCell_iface;
|
||||
|
||||
nsIDOMHTMLTableCellElement *nscell;
|
||||
} HTMLTableCell;
|
||||
|
||||
static inline HTMLTableCell *impl_from_IHTMLTableCell(IHTMLTableCell *iface)
|
||||
|
@ -112,15 +114,33 @@ static HRESULT WINAPI HTMLTableCell_get_colSpan(IHTMLTableCell *iface, LONG *p)
|
|||
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)
|
||||
|
@ -140,15 +160,47 @@ static HRESULT WINAPI HTMLTableCell_get_vAlign(IHTMLTableCell *iface, BSTR *p)
|
|||
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)
|
||||
|
@ -252,8 +304,16 @@ static HRESULT WINAPI HTMLTableCell_get_height(IHTMLTableCell *iface, VARIANT *p
|
|||
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 = {
|
||||
|
@ -349,6 +409,7 @@ static dispex_static_data_t HTMLTableCell_dispex = {
|
|||
HRESULT HTMLTableCell_Create(HTMLDocumentNode *doc, nsIDOMHTMLElement *nselem, HTMLElement **elem)
|
||||
{
|
||||
HTMLTableCell *ret;
|
||||
nsresult nsres;
|
||||
|
||||
ret = heap_alloc_zero(sizeof(*ret));
|
||||
if(!ret)
|
||||
|
@ -359,6 +420,12 @@ HRESULT HTMLTableCell_Create(HTMLDocumentNode *doc, nsIDOMHTMLElement *nselem, H
|
|||
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -161,8 +161,9 @@ static HRESULT WINAPI HTMLTableRow_put_bgColor(IHTMLTableRow *iface, VARIANT 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 = nsIDOMHTMLTableRowElement_SetBgColor(This->nsrow, &val);
|
||||
nsAString_Finish(&val);
|
||||
|
||||
|
@ -293,15 +294,41 @@ static HRESULT WINAPI HTMLTableRow_get_cells(IHTMLTableRow *iface, IHTMLElementC
|
|||
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 = {
|
||||
|
|
|
@ -117,59 +117,45 @@ static HRESULT WINAPI HTMLWindow2_QueryInterface(IHTMLWindow2 *iface, REFIID rii
|
|||
{
|
||||
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)
|
||||
|
@ -254,6 +240,9 @@ static void release_inner_window(HTMLInnerWindow *This)
|
|||
IOmHistory_Release(&This->history->IOmHistory_iface);
|
||||
}
|
||||
|
||||
if(This->session_storage)
|
||||
IHTMLStorage_Release(This->session_storage);
|
||||
|
||||
if(This->mon)
|
||||
IMoniker_Release(This->mon);
|
||||
|
||||
|
@ -1000,8 +989,10 @@ static HRESULT WINAPI HTMLWindow2_get_window(IHTMLWindow2 *iface, IHTMLWindow2 *
|
|||
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)
|
||||
|
@ -1284,8 +1275,17 @@ static HRESULT WINAPI HTMLWindow2_blur(IHTMLWindow2 *iface)
|
|||
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)
|
||||
|
@ -2383,8 +2383,7 @@ static HRESULT WINAPI WindowDispEx_GetIDsOfNames(IDispatchEx *iface, REFIID riid
|
|||
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 */
|
||||
|
@ -2662,7 +2661,7 @@ static HRESULT WINAPI HTMLWindowSP_QueryService(IServiceProvider *iface, REFGUID
|
|||
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;
|
||||
|
|
|
@ -39,7 +39,7 @@ static HRESULT WINAPI wrapper_QueryInterface(IUnknown *iface, REFIID riid, void
|
|||
{
|
||||
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);
|
||||
}
|
||||
|
|
|
@ -33,20 +33,18 @@ static HRESULT WINAPI InPlaceFrame_QueryInterface(IOleInPlaceFrame *iface,
|
|||
{
|
||||
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;
|
||||
}
|
||||
|
@ -217,17 +215,16 @@ static HRESULT WINAPI InPlaceUIWindow_QueryInterface(IOleInPlaceUIWindow *iface,
|
|||
{
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -34,18 +34,18 @@ STRINGTABLE
|
|||
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
|
||||
|
@ -54,6 +54,6 @@ 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, 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
|
||||
}
|
||||
|
|
|
@ -33,18 +33,18 @@ STRINGTABLE
|
|||
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
|
||||
|
@ -53,6 +53,6 @@ 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, 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
|
||||
}
|
||||
|
|
|
@ -31,18 +31,18 @@ STRINGTABLE
|
|||
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
|
||||
|
@ -51,6 +51,6 @@ 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 "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
|
||||
}
|
||||
|
|
|
@ -36,18 +36,18 @@ STRINGTABLE
|
|||
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
|
||||
|
@ -56,6 +56,6 @@ 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, 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
|
||||
}
|
||||
|
|
|
@ -31,18 +31,18 @@ STRINGTABLE
|
|||
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
|
||||
|
@ -51,6 +51,6 @@ 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
|
||||
PUSHBUTTON "אישור", IDOK, 40, 65, 50, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
|
||||
PUSHBUTTON "ביטול", IDCANCEL, 110, 65, 50, 15, WS_GROUP | WS_TABSTOP
|
||||
}
|
||||
|
|
|
@ -32,18 +32,18 @@ STRINGTABLE
|
|||
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
|
||||
|
@ -52,6 +52,6 @@ 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, 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
|
||||
}
|
||||
|
|
|
@ -32,18 +32,18 @@ STRINGTABLE
|
|||
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
|
||||
|
@ -52,6 +52,6 @@ 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, 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
|
||||
}
|
||||
|
|
|
@ -32,18 +32,18 @@ STRINGTABLE
|
|||
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
|
||||
|
@ -52,6 +52,6 @@ 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, 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
|
||||
}
|
||||
|
|
|
@ -30,26 +30,26 @@ STRINGTABLE
|
|||
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
|
||||
}
|
||||
|
|
|
@ -32,18 +32,18 @@ STRINGTABLE
|
|||
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
|
||||
|
@ -52,6 +52,6 @@ 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 "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
|
||||
}
|
||||
|
|
|
@ -31,18 +31,18 @@ STRINGTABLE
|
|||
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
|
||||
|
@ -51,6 +51,6 @@ 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, 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
|
||||
}
|
||||
|
|
|
@ -33,18 +33,18 @@ STRINGTABLE
|
|||
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
|
||||
|
@ -53,6 +53,6 @@ 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, 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
|
||||
}
|
||||
|
|
|
@ -31,18 +31,18 @@ STRINGTABLE
|
|||
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œci 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
|
||||
|
@ -51,6 +51,6 @@ 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, 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
|
||||
}
|
||||
|
|
|
@ -32,34 +32,34 @@ STRINGTABLE
|
|||
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
|
||||
}
|
||||
|
||||
|
||||
|
@ -71,6 +71,6 @@ 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, 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
|
||||
}
|
||||
|
|
|
@ -33,18 +33,18 @@ STRINGTABLE
|
|||
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
|
||||
|
@ -53,6 +53,6 @@ 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 "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
|
||||
}
|
||||
|
|
|
@ -32,18 +32,18 @@ STRINGTABLE
|
|||
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
|
||||
|
@ -52,6 +52,6 @@ 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, 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
|
||||
}
|
||||
|
|
|
@ -31,18 +31,18 @@ STRINGTABLE
|
|||
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
|
||||
|
@ -51,6 +51,6 @@ 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 "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
|
||||
}
|
||||
|
|
|
@ -29,18 +29,18 @@ STRINGTABLE
|
|||
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
|
||||
|
@ -49,6 +49,6 @@ 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, 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
|
||||
}
|
||||
|
|
|
@ -33,18 +33,18 @@ STRINGTABLE
|
|||
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
|
||||
|
@ -53,6 +53,6 @@ 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, 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
|
||||
}
|
||||
|
|
|
@ -35,18 +35,18 @@ STRINGTABLE
|
|||
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
|
||||
|
@ -55,8 +55,8 @@ 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
|
||||
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
|
||||
|
@ -72,16 +72,26 @@ STRINGTABLE
|
|||
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
|
||||
}
|
||||
|
|
|
@ -44,26 +44,22 @@ static HRESULT WINAPI HtmlLoadOptions_QueryInterface(IHtmlLoadOptions *iface,
|
|||
{
|
||||
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)
|
||||
|
@ -179,9 +175,11 @@ HRESULT HTMLLoadOptions_Create(IUnknown *pUnkOuter, REFIID riid, void** ppv)
|
|||
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;
|
||||
|
@ -189,6 +187,5 @@ HRESULT HTMLLoadOptions_Create(IUnknown *pUnkOuter, REFIID riid, void** ppv)
|
|||
|
||||
hres = IHtmlLoadOptions_QueryInterface(&ret->IHtmlLoadOptions_iface, riid, ppv);
|
||||
IHtmlLoadOptions_Release(&ret->IHtmlLoadOptions_iface);
|
||||
|
||||
return hres;
|
||||
}
|
||||
|
|
|
@ -186,7 +186,7 @@ static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFGUID
|
|||
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;
|
||||
}
|
||||
|
@ -259,25 +259,25 @@ static HRESULT ClassFactory_Create(REFIID riid, void **ppv, CreateInstanceFunc f
|
|||
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);
|
||||
}
|
||||
|
||||
|
@ -499,3 +499,68 @@ HRESULT WINAPI DllUnregisterServer(void)
|
|||
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);
|
||||
}
|
||||
|
|
|
@ -129,6 +129,7 @@ typedef struct event_target_t event_target_t;
|
|||
XDIID(DispHTMLStyle) \
|
||||
XDIID(DispHTMLStyleElement) \
|
||||
XDIID(DispHTMLStyleSheet) \
|
||||
XDIID(DispHTMLStyleSheetRulesCollection) \
|
||||
XDIID(DispHTMLStyleSheetsCollection) \
|
||||
XDIID(DispHTMLTable) \
|
||||
XDIID(DispHTMLTableCell) \
|
||||
|
@ -157,6 +158,7 @@ typedef struct event_target_t event_target_t;
|
|||
XIID(IHTMLDocument5) \
|
||||
XIID(IHTMLDOMAttribute) \
|
||||
XIID(IHTMLDOMChildrenCollection) \
|
||||
XIID(IHTMLDOMImplementation) \
|
||||
XIID(IHTMLDOMNode) \
|
||||
XIID(IHTMLDOMNode2) \
|
||||
XIID(IHTMLDOMTextNode) \
|
||||
|
@ -188,6 +190,7 @@ typedef struct event_target_t event_target_t;
|
|||
XIID(IHTMLObjectElement) \
|
||||
XIID(IHTMLObjectElement2) \
|
||||
XIID(IHTMLOptionElement) \
|
||||
XIID(IHTMLOptionElementFactory) \
|
||||
XIID(IHTMLPluginsCollection) \
|
||||
XIID(IHTMLRect) \
|
||||
XIID(IHTMLScreen) \
|
||||
|
@ -202,6 +205,7 @@ typedef struct event_target_t event_target_t;
|
|||
XIID(IHTMLStyle6) \
|
||||
XIID(IHTMLStyleElement) \
|
||||
XIID(IHTMLStyleSheet) \
|
||||
XIID(IHTMLStyleSheetRulesCollection) \
|
||||
XIID(IHTMLStyleSheetsCollection) \
|
||||
XIID(IHTMLTable) \
|
||||
XIID(IHTMLTable2) \
|
||||
|
@ -338,6 +342,7 @@ typedef struct {
|
|||
} global_prop_t;
|
||||
|
||||
typedef struct {
|
||||
DispatchEx dispex;
|
||||
IHTMLOptionElementFactory IHTMLOptionElementFactory_iface;
|
||||
|
||||
LONG ref;
|
||||
|
@ -750,6 +755,8 @@ struct HTMLDocumentNode {
|
|||
BOOL content_ready;
|
||||
event_target_t *body_event_target;
|
||||
|
||||
IHTMLDOMImplementation *dom_implementation;
|
||||
|
||||
ICatInformation *catmgr;
|
||||
nsDocumentEventListener *nsevent_listener;
|
||||
BOOL *event_vector;
|
||||
|
@ -780,6 +787,7 @@ HRESULT HTMLLocation_Create(HTMLInnerWindow*,HTMLLocation**) DECLSPEC_HIDDEN;
|
|||
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;
|
||||
|
||||
|
@ -845,7 +853,6 @@ void nsACString_Finish(nsACString*) 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;
|
||||
|
@ -976,6 +983,11 @@ HRESULT wrap_iface(IUnknown*,IUnknown*,IUnknown**) 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 {
|
||||
|
@ -1043,7 +1055,7 @@ void remove_target_tasks(LONG) DECLSPEC_HIDDEN;
|
|||
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);
|
||||
|
|
|
@ -617,16 +617,16 @@ static void NSAPI nsDocumentObserver_BindToDocument(nsIDocumentObserver *iface,
|
|||
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);
|
||||
|
|
|
@ -969,7 +969,7 @@ HRESULT bind_mon_to_wstr(HTMLInnerWindow *window, IMoniker *mon, WCHAR **ret)
|
|||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -194,10 +194,11 @@ typedef struct _NPPluginFuncs {
|
|||
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;
|
||||
|
||||
|
@ -214,17 +215,24 @@ static nsIDOMElement *get_dom_element(NPP instance)
|
|||
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;
|
||||
|
||||
|
@ -270,29 +278,22 @@ static BOOL parse_classid(const PRUnichar *classid, CLSID *clsid)
|
|||
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;
|
||||
}
|
||||
|
||||
|
@ -512,35 +513,28 @@ static void install_codebase(const WCHAR *url)
|
|||
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;
|
||||
|
||||
|
@ -582,7 +576,7 @@ static void check_codebase(HTMLInnerWindow *window, nsIDOMElement *nselem)
|
|||
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;
|
||||
|
@ -628,7 +622,7 @@ static IUnknown *create_activex_object(HTMLInnerWindow *window, nsIDOMElement *n
|
|||
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;
|
||||
|
@ -645,7 +639,7 @@ static NPError CDECL NPP_New(NPMIMEType pluginType, NPP instance, UINT16 mode, I
|
|||
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;
|
||||
}
|
||||
|
||||
|
@ -654,7 +648,7 @@ static NPError CDECL NPP_New(NPMIMEType pluginType, NPP instance, UINT16 mode, I
|
|||
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;
|
||||
|
@ -664,7 +658,7 @@ static NPError CDECL NPP_New(NPMIMEType pluginType, NPP instance, UINT16 mode, I
|
|||
err = NPERR_GENERIC_ERROR;
|
||||
}
|
||||
|
||||
nsIDOMElement_Release(nselem);
|
||||
nsIDOMHTMLElement_Release(nselem);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
|
@ -423,8 +423,10 @@ static BOOL install_wine_gecko(void)
|
|||
|
||||
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};
|
||||
|
@ -434,13 +436,6 @@ static void set_environment(LPCWSTR gre_path)
|
|||
{'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))
|
||||
|
@ -452,6 +447,23 @@ static void set_environment(LPCWSTR gre_path)
|
|||
|
||||
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)
|
||||
|
@ -825,11 +837,6 @@ void nsAString_InitDepend(nsAString *str, const PRUnichar *data)
|
|||
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);
|
||||
|
|
|
@ -1791,7 +1791,7 @@ interface nsIDOMHTMLSelectElement : nsIDOMHTMLElement
|
|||
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);
|
||||
|
@ -2070,6 +2070,44 @@ interface nsIDOMHTMLTableRowElement : nsIDOMHTMLElement
|
|||
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),
|
||||
|
@ -2180,23 +2218,6 @@ interface nsIDOMHTMLObjectElement : nsIDOMHTMLElement
|
|||
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),
|
||||
|
|
|
@ -2606,10 +2606,27 @@ static nsresult NSAPI nsURL_SetFilePath(nsIFileURL *iface, const nsACString *aFi
|
|||
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)
|
||||
|
|
|
@ -354,7 +354,7 @@ static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite
|
|||
(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));
|
||||
|
|
|
@ -41,6 +41,148 @@ typedef struct {
|
|||
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);
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
typedef struct HTMLPluginContainer HTMLPluginContainer;
|
||||
typedef struct PHEventSink PHEventSink;
|
||||
|
||||
|
|
|
@ -253,15 +253,18 @@ static const IPropertyBag2Vtbl PropertyBag2Vtbl = {
|
|||
|
||||
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);
|
||||
|
@ -280,31 +283,25 @@ static HRESULT fill_props(nsIDOMHTMLElement *nselem, PropertyBag *prop_bag)
|
|||
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)) {
|
||||
|
|
|
@ -764,7 +764,7 @@ static void parse_script_elem(ScriptHost *script_host, HTMLScriptElement *script
|
|||
return;
|
||||
}
|
||||
}else {
|
||||
ERR("GetAttribute(event) failed: %08x\n", nsres);
|
||||
ERR("GetEvent failed: %08x\n", nsres);
|
||||
}
|
||||
nsAString_Finish(&event_str);
|
||||
|
||||
|
@ -829,7 +829,8 @@ static BOOL get_guid_from_language(LPCWSTR type, GUID *guid)
|
|||
|
||||
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;
|
||||
|
||||
|
@ -851,26 +852,17 @@ static BOOL get_script_guid(HTMLInnerWindow *window, nsIDOMHTMLScriptElement *ns
|
|||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -121,7 +121,7 @@ reactos/dll/win32/msctf # Synced to Wine-1.7.27
|
|||
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
|
||||
|
|
Loading…
Reference in a new issue