diff --git a/reactos/dll/win32/mshtml/Lt.rc b/reactos/dll/win32/mshtml/Lt.rc
new file mode 100644
index 00000000000..c0081831ac2
--- /dev/null
+++ b/reactos/dll/win32/mshtml/Lt.rc
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2009 Aurimas Fišeras
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+/* UTF-8 */
+#pragma code_page(65001)
+
+LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL
+
+STRINGTABLE DISCARDABLE
+{
+ IDS_HTMLDISABLED "HTML atvaizdavimas yra išjungtas."
+ IDS_HTMLDOCUMENT "HTML dokumentas"
+ IDS_DOWNLOADING "Atsiunčiama..."
+ IDS_INSTALLING "Įdiegiama..."
+}
+
+ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 85
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Wine Gecko diegimo programa"
+FONT 8, "MS Shell Dlg"
+{
+ LTEXT "Ši programa mėgina parodyti HTML puslapį. Šiam puslapiui parodyti reikia, kad būtų " \
+ "įdiegtas Gecko (Mozilla HTML variklis). Spauskite įdiegti, jei norite, kad Wine " \
+ "automatiškai atsiųstų ir įdiegtų Gecko.", ID_DWL_STATUS, 10, 10, 240, 30, SS_LEFT
+ CONTROL "Eiga", ID_DWL_PROGRESS, PROGRESS_CLASSA, WS_BORDER|PBS_SMOOTH, 10, 40, 240, 12
+ DEFPUSHBUTTON "&Įdiegti", ID_DWL_INSTALL, 200, 60, 50, 15, WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "&Atsisakyti", IDCANCEL, 140, 60, 50, 15, WS_GROUP | WS_TABSTOP
+}
+
+IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 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
+ COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS
+ LTEXT "&URL:", -1, 10, 42, 20, 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
+}
+
+#pragma code_page(default)
diff --git a/reactos/dll/win32/mshtml/htmlanchor.c b/reactos/dll/win32/mshtml/htmlanchor.c
index 48095438bee..819c80c2833 100644
--- a/reactos/dll/win32/mshtml/htmlanchor.c
+++ b/reactos/dll/win32/mshtml/htmlanchor.c
@@ -38,7 +38,7 @@ typedef struct {
const IHTMLAnchorElementVtbl *lpHTMLAnchorElementVtbl;
} HTMLAnchorElement;
-#define HTMLANCHOR(x) ((IHTMLAnchorElement*) &(x)->lpHTMLAnchorElementVtbl)
+#define HTMLANCHOR(x) (&(x)->lpHTMLAnchorElementVtbl)
#define HTMLANCHOR_THIS(iface) DEFINE_THIS(HTMLAnchorElement, HTMLAnchorElement, iface)
diff --git a/reactos/dll/win32/mshtml/htmlbody.c b/reactos/dll/win32/mshtml/htmlbody.c
index 623d83d1a60..0cbfc06be67 100644
--- a/reactos/dll/win32/mshtml/htmlbody.c
+++ b/reactos/dll/win32/mshtml/htmlbody.c
@@ -42,7 +42,7 @@ typedef struct {
nsIDOMHTMLBodyElement *nsbody;
} HTMLBodyElement;
-#define HTMLBODY(x) ((IHTMLBodyElement*) &(x)->lpHTMLBodyElementVtbl)
+#define HTMLBODY(x) (&(x)->lpHTMLBodyElementVtbl)
static BOOL variant_to_nscolor(const VARIANT *v, nsAString *nsstr)
{
diff --git a/reactos/dll/win32/mshtml/htmlcomment.c b/reactos/dll/win32/mshtml/htmlcomment.c
index 82e05b3e070..f29d887453e 100644
--- a/reactos/dll/win32/mshtml/htmlcomment.c
+++ b/reactos/dll/win32/mshtml/htmlcomment.c
@@ -37,7 +37,7 @@ struct HTMLCommentElement {
const IHTMLCommentElementVtbl *lpIHTMLCommentElementVtbl;
};
-#define HTMLCOMMENT(x) ((IHTMLCommentElement*) &(x)->lpIHTMLCommentElementVtbl)
+#define HTMLCOMMENT(x) (&(x)->lpIHTMLCommentElementVtbl)
#define HTMLCOMMENT_THIS(iface) DEFINE_THIS(HTMLCommentElement, IHTMLCommentElement, iface)
diff --git a/reactos/dll/win32/mshtml/htmlcurstyle.c b/reactos/dll/win32/mshtml/htmlcurstyle.c
index 0a935709d9d..6d08dfba1fe 100644
--- a/reactos/dll/win32/mshtml/htmlcurstyle.c
+++ b/reactos/dll/win32/mshtml/htmlcurstyle.c
@@ -128,8 +128,10 @@ static HRESULT WINAPI HTMLCurrentStyle_Invoke(IHTMLCurrentStyle *iface, DISPID d
static HRESULT WINAPI HTMLCurrentStyle_get_position(IHTMLCurrentStyle *iface, BSTR *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ return get_nsstyle_attr(This->nsstyle, STYLEID_POSITION, p);
}
static HRESULT WINAPI HTMLCurrentStyle_get_styleFloat(IHTMLCurrentStyle *iface, BSTR *p)
@@ -156,43 +158,45 @@ static HRESULT WINAPI HTMLCurrentStyle_get_backgroundColor(IHTMLCurrentStyle *if
static HRESULT WINAPI HTMLCurrentStyle_get_fontFamily(IHTMLCurrentStyle *iface, BSTR *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ return get_nsstyle_attr(This->nsstyle, STYLEID_FONT_FAMILY, p);
}
static HRESULT WINAPI HTMLCurrentStyle_get_fontStyle(IHTMLCurrentStyle *iface, BSTR *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr(This->nsstyle, STYLEID_FONT_STYLE, p);
}
static HRESULT WINAPI HTMLCurrentStyle_get_fontVariant(IHTMLCurrentStyle *iface, BSTR *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr(This->nsstyle, STYLEID_FONT_VARIANT, p);
}
static HRESULT WINAPI HTMLCurrentStyle_get_fontWeight(IHTMLCurrentStyle *iface, VARIANT *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr_var(This->nsstyle, STYLEID_FONT_WEIGHT, p, ATTR_STR_TO_INT);
}
static HRESULT WINAPI HTMLCurrentStyle_get_fontSize(IHTMLCurrentStyle *iface, VARIANT *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr_var(This->nsstyle, STYLEID_FONT_SIZE, p, 0);
}
static HRESULT WINAPI HTMLCurrentStyle_get_backgroundImage(IHTMLCurrentStyle *iface, BSTR *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr(This->nsstyle, STYLEID_BACKGROUND_IMAGE, p);
}
static HRESULT WINAPI HTMLCurrentStyle_get_backgroundPositionX(IHTMLCurrentStyle *iface, VARIANT *p)
@@ -247,29 +251,29 @@ static HRESULT WINAPI HTMLCurrentStyle_get_borderBottomColor(IHTMLCurrentStyle *
static HRESULT WINAPI HTMLCurrentStyle_get_borderTopStyle(IHTMLCurrentStyle *iface, BSTR *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr(This->nsstyle, STYLEID_BORDER_TOP_STYLE, p);
}
static HRESULT WINAPI HTMLCurrentStyle_get_borderRightStyle(IHTMLCurrentStyle *iface, BSTR *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr(This->nsstyle, STYLEID_BORDER_RIGHT_STYLE, p);
}
static HRESULT WINAPI HTMLCurrentStyle_get_borderBottomStyle(IHTMLCurrentStyle *iface, BSTR *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr(This->nsstyle, STYLEID_BORDER_BOTTOM_STYLE, p);
}
static HRESULT WINAPI HTMLCurrentStyle_get_borderLeftStyle(IHTMLCurrentStyle *iface, BSTR *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr(This->nsstyle, STYLEID_BORDER_LEFT_STYLE, p);
}
static HRESULT WINAPI HTMLCurrentStyle_get_borderTopWidth(IHTMLCurrentStyle *iface, VARIANT *p)
@@ -303,36 +307,36 @@ static HRESULT WINAPI HTMLCurrentStyle_get_borderLeftWidth(IHTMLCurrentStyle *if
static HRESULT WINAPI HTMLCurrentStyle_get_left(IHTMLCurrentStyle *iface, VARIANT *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr_var(This->nsstyle, STYLEID_LEFT, p, 0);
}
static HRESULT WINAPI HTMLCurrentStyle_get_top(IHTMLCurrentStyle *iface, VARIANT *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr_var(This->nsstyle, STYLEID_TOP, p, 0);
}
static HRESULT WINAPI HTMLCurrentStyle_get_width(IHTMLCurrentStyle *iface, VARIANT *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr_var(This->nsstyle, STYLEID_WIDTH, p, 0);
}
static HRESULT WINAPI HTMLCurrentStyle_get_height(IHTMLCurrentStyle *iface, VARIANT *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr_var(This->nsstyle, STYLEID_HEIGHT, p, 0);
}
static HRESULT WINAPI HTMLCurrentStyle_get_paddingLeft(IHTMLCurrentStyle *iface, VARIANT *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr_var(This->nsstyle, STYLEID_PADDING_LEFT, p, 0);
}
static HRESULT WINAPI HTMLCurrentStyle_get_paddingTop(IHTMLCurrentStyle *iface, VARIANT *p)
@@ -359,15 +363,15 @@ static HRESULT WINAPI HTMLCurrentStyle_get_paddingBottom(IHTMLCurrentStyle *ifac
static HRESULT WINAPI HTMLCurrentStyle_get_textAlign(IHTMLCurrentStyle *iface, BSTR *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr(This->nsstyle, STYLEID_TEXT_ALIGN, p);
}
static HRESULT WINAPI HTMLCurrentStyle_get_textDecoration(IHTMLCurrentStyle *iface, BSTR *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr(This->nsstyle, STYLEID_TEXT_DECORATION, p);
}
static HRESULT WINAPI HTMLCurrentStyle_get_display(IHTMLCurrentStyle *iface, BSTR *p)
@@ -389,8 +393,8 @@ static HRESULT WINAPI HTMLCurrentStyle_get_visibility(IHTMLCurrentStyle *iface,
static HRESULT WINAPI HTMLCurrentStyle_get_zIndex(IHTMLCurrentStyle *iface, VARIANT *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr_var(This->nsstyle, STYLEID_Z_INDEX, p, ATTR_STR_TO_INT);
}
static HRESULT WINAPI HTMLCurrentStyle_get_letterSpacing(IHTMLCurrentStyle *iface, VARIANT *p)
@@ -417,8 +421,8 @@ static HRESULT WINAPI HTMLCurrentStyle_get_textIndent(IHTMLCurrentStyle *iface,
static HRESULT WINAPI HTMLCurrentStyle_get_verticalAlign(IHTMLCurrentStyle *iface, VARIANT *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr_var(This->nsstyle, STYLEID_VERTICAL_ALIGN, p, 0);
}
static HRESULT WINAPI HTMLCurrentStyle_get_backgroundAttachment(IHTMLCurrentStyle *iface, BSTR *p)
@@ -438,8 +442,8 @@ static HRESULT WINAPI HTMLCurrentStyle_get_marginTop(IHTMLCurrentStyle *iface, V
static HRESULT WINAPI HTMLCurrentStyle_get_marginRight(IHTMLCurrentStyle *iface, VARIANT *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr_var(This->nsstyle, STYLEID_MARGIN_RIGHT, p, 0);
}
static HRESULT WINAPI HTMLCurrentStyle_get_marginBottom(IHTMLCurrentStyle *iface, VARIANT *p)
@@ -536,8 +540,8 @@ static HRESULT WINAPI HTMLCurrentStyle_get_pageBreakAfter(IHTMLCurrentStyle *ifa
static HRESULT WINAPI HTMLCurrentStyle_get_cursor(IHTMLCurrentStyle *iface, BSTR *p)
{
HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr(This->nsstyle, STYLEID_CURSOR, p);
}
static HRESULT WINAPI HTMLCurrentStyle_get_tableLayout(IHTMLCurrentStyle *iface, BSTR *p)
diff --git a/reactos/dll/win32/mshtml/htmlgeneric.c b/reactos/dll/win32/mshtml/htmlgeneric.c
index fc53ee0b595..07e453e5c9c 100644
--- a/reactos/dll/win32/mshtml/htmlgeneric.c
+++ b/reactos/dll/win32/mshtml/htmlgeneric.c
@@ -38,7 +38,7 @@ typedef struct {
const IHTMLGenericElementVtbl *lpHTMLGenericElementVtbl;
} HTMLGenericElement;
-#define HTMLGENERIC(x) ((IHTMLGenericElement*) &(x)->lpHTMLGenericElementVtbl)
+#define HTMLGENERIC(x) (&(x)->lpHTMLGenericElementVtbl)
#define HTMLGENERIC_THIS(iface) DEFINE_THIS(HTMLGenericElement, HTMLGenericElement, iface)
diff --git a/reactos/dll/win32/mshtml/htmliframe.c b/reactos/dll/win32/mshtml/htmliframe.c
index f56bc16fda2..146432ba76f 100644
--- a/reactos/dll/win32/mshtml/htmliframe.c
+++ b/reactos/dll/win32/mshtml/htmliframe.c
@@ -41,7 +41,7 @@ typedef struct {
HTMLDocument *content_doc;
} HTMLIFrame;
-#define HTMLFRAMEBASE2(x) ((IHTMLFrameBase2*) &(x)->lpIHTMLFrameBase2Vtbl)
+#define HTMLFRAMEBASE2(x) (&(x)->lpIHTMLFrameBase2Vtbl)
#define HTMLFRAMEBASE2_THIS(iface) DEFINE_THIS(HTMLIFrame, IHTMLFrameBase2, iface)
diff --git a/reactos/dll/win32/mshtml/htmlimg.c b/reactos/dll/win32/mshtml/htmlimg.c
index e5c03722068..a2a27c88bcb 100644
--- a/reactos/dll/win32/mshtml/htmlimg.c
+++ b/reactos/dll/win32/mshtml/htmlimg.c
@@ -39,7 +39,7 @@ typedef struct {
nsIDOMHTMLImageElement *nsimg;
} HTMLImgElement;
-#define HTMLIMG(x) ((IHTMLImgElement*) &(x)->lpHTMLImgElementVtbl)
+#define HTMLIMG(x) (&(x)->lpHTMLImgElementVtbl)
#define HTMLIMG_THIS(iface) DEFINE_THIS(HTMLImgElement, HTMLImgElement, iface)
diff --git a/reactos/dll/win32/mshtml/htmlinput.c b/reactos/dll/win32/mshtml/htmlinput.c
index 3c851183fe2..dd40326e4c5 100644
--- a/reactos/dll/win32/mshtml/htmlinput.c
+++ b/reactos/dll/win32/mshtml/htmlinput.c
@@ -41,7 +41,7 @@ typedef struct {
} HTMLInputElement;
#define HTMLINPUT(x) ((IHTMLInputElement*) &(x)->lpHTMLInputElementVtbl)
-#define HTMLINPUTTEXT(x) ((IHTMLInputTextElement*) &(x)->lpHTMLInputTextElementVtbl)
+#define HTMLINPUTTEXT(x) (&(x)->lpHTMLInputTextElementVtbl)
#define HTMLINPUT_THIS(iface) DEFINE_THIS(HTMLInputElement, HTMLInputElement, iface)
diff --git a/reactos/dll/win32/mshtml/htmloption.c b/reactos/dll/win32/mshtml/htmloption.c
index fc3f89298b8..ae36a99f753 100644
--- a/reactos/dll/win32/mshtml/htmloption.c
+++ b/reactos/dll/win32/mshtml/htmloption.c
@@ -39,7 +39,7 @@ typedef struct {
nsIDOMHTMLOptionElement *nsoption;
} HTMLOptionElement;
-#define HTMLOPTION(x) ((IHTMLOptionElement*) &(x)->lpHTMLOptionElementVtbl)
+#define HTMLOPTION(x) (&(x)->lpHTMLOptionElementVtbl)
#define HTMLOPTION_THIS(iface) DEFINE_THIS(HTMLOptionElement, HTMLOptionElement, iface)
diff --git a/reactos/dll/win32/mshtml/htmlscript.c b/reactos/dll/win32/mshtml/htmlscript.c
index 8953b0994fd..958877a37a7 100644
--- a/reactos/dll/win32/mshtml/htmlscript.c
+++ b/reactos/dll/win32/mshtml/htmlscript.c
@@ -39,7 +39,7 @@ typedef struct {
nsIDOMHTMLScriptElement *nsscript;
} HTMLScriptElement;
-#define HTMLSCRIPT(x) ((IHTMLScriptElement*) &(x)->lpHTMLScriptElementVtbl)
+#define HTMLSCRIPT(x) (&(x)->lpHTMLScriptElementVtbl)
#define HTMLSCRIPT_THIS(iface) DEFINE_THIS(HTMLScriptElement, HTMLScriptElement, iface)
diff --git a/reactos/dll/win32/mshtml/htmlstyle.c b/reactos/dll/win32/mshtml/htmlstyle.c
index 18d3e315c77..769e14e57c1 100644
--- a/reactos/dll/win32/mshtml/htmlstyle.c
+++ b/reactos/dll/win32/mshtml/htmlstyle.c
@@ -83,6 +83,8 @@ static const WCHAR attrMarginLeft[] =
{'m','a','r','g','i','n','-','l','e','f','t',0};
static const WCHAR attrMarginRight[] =
{'m','a','r','g','i','n','-','r','i','g','h','t',0};
+static const WCHAR attrMinHeight[] =
+ {'m','i','n','-','h','e','i','g','h','t',0};
static const WCHAR attrOverflow[] =
{'o','v','e','r','f','l','o','w',0};
static const WCHAR attrPaddingLeft[] =
@@ -132,6 +134,7 @@ static const struct{
{attrMargin, DISPID_IHTMLSTYLE_MARGIN},
{attrMarginLeft, DISPID_IHTMLSTYLE_MARGINLEFT},
{attrMarginRight, DISPID_IHTMLSTYLE_MARGINRIGHT},
+ {attrMinHeight, DISPID_IHTMLSTYLE4_MINHEIGHT},
{attrOverflow, DISPID_IHTMLSTYLE_OVERFLOW},
{attrPaddingLeft, DISPID_IHTMLSTYLE_PADDINGLEFT},
{attrPosition, DISPID_IHTMLSTYLE2_POSITION},
@@ -209,10 +212,6 @@ static LPWSTR fix_url_value(LPCWSTR val)
return ret;
}
-#define ATTR_FIX_PX 1
-#define ATTR_FIX_URL 2
-#define ATTR_STR_TO_INT 4
-
HRESULT set_nsstyle_attr(nsIDOMCSSStyleDeclaration *nsstyle, styleid_t sid, LPCWSTR value, DWORD flags)
{
nsAString str_name, str_value, str_empty;
@@ -242,7 +241,7 @@ HRESULT set_nsstyle_attr(nsIDOMCSSStyleDeclaration *nsstyle, styleid_t sid, LPCW
return S_OK;
}
-static HRESULT set_nsstyle_attr_var(nsIDOMCSSStyleDeclaration *nsstyle, styleid_t sid, VARIANT *value, DWORD flags)
+HRESULT set_nsstyle_attr_var(nsIDOMCSSStyleDeclaration *nsstyle, styleid_t sid, VARIANT *value, DWORD flags)
{
switch(V_VT(value)) {
case VT_NULL:
@@ -251,6 +250,13 @@ static HRESULT set_nsstyle_attr_var(nsIDOMCSSStyleDeclaration *nsstyle, styleid_
case VT_BSTR:
return set_nsstyle_attr(nsstyle, sid, V_BSTR(value), flags);
+ case VT_I4: {
+ WCHAR str[14];
+ static const WCHAR format[] = {'%','d',0};
+
+ wsprintfW(str, format, V_I4(value));
+ return set_nsstyle_attr(nsstyle, sid, str, flags);
+ }
default:
FIXME("not implemented vt %d\n", V_VT(value));
return E_NOTIMPL;
@@ -301,7 +307,7 @@ HRESULT get_nsstyle_attr(nsIDOMCSSStyleDeclaration *nsstyle, styleid_t sid, BSTR
return S_OK;
}
-static HRESULT get_nsstyle_attr_var(nsIDOMCSSStyleDeclaration *nsstyle, styleid_t sid, VARIANT *p, DWORD flags)
+HRESULT get_nsstyle_attr_var(nsIDOMCSSStyleDeclaration *nsstyle, styleid_t sid, VARIANT *p, DWORD flags)
{
nsAString str_value;
const PRUnichar *value;
@@ -1121,8 +1127,8 @@ static HRESULT WINAPI HTMLStyle_put_marginRight(IHTMLStyle *iface, VARIANT v)
static HRESULT WINAPI HTMLStyle_get_marginRight(IHTMLStyle *iface, VARIANT *p)
{
HTMLStyle *This = HTMLSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr_var(This->nsstyle, STYLEID_MARGIN_RIGHT, p, 0);
}
static HRESULT WINAPI HTMLStyle_put_marginBottom(IHTMLStyle *iface, VARIANT v)
@@ -1186,8 +1192,8 @@ static HRESULT WINAPI HTMLStyle_get_margin(IHTMLStyle *iface, BSTR *p)
static HRESULT WINAPI HTMLStyle_get_marginLeft(IHTMLStyle *iface, VARIANT *p)
{
HTMLStyle *This = HTMLSTYLE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, p);
+ return get_nsstyle_attr_var(This->nsstyle, STYLEID_MARGIN_LEFT, p, 0);
}
static HRESULT WINAPI HTMLStyle_put_paddingTop(IHTMLStyle *iface, VARIANT v)
@@ -2163,7 +2169,7 @@ static HRESULT WINAPI HTMLStyle_setAttribute(IHTMLStyle *iface, BSTR strAttribut
if(lFlags == 1)
FIXME("Parameter lFlags ignored\n");
- hres = HTMLStyle_GetIDsOfNames(iface, &IID_NULL, (LPOLESTR*)&strAttributeName, 1,
+ hres = HTMLStyle_GetIDsOfNames(iface, &IID_NULL, &strAttributeName, 1,
LOCALE_USER_DEFAULT, &dispid);
if(hres == S_OK)
{
@@ -2205,7 +2211,7 @@ static HRESULT WINAPI HTMLStyle_getAttribute(IHTMLStyle *iface, BSTR strAttribut
if(lFlags == 1)
FIXME("Parameter lFlags ignored\n");
- hres = HTMLStyle_GetIDsOfNames(iface, &IID_NULL, (LPOLESTR*)&strAttributeName, 1,
+ hres = HTMLStyle_GetIDsOfNames(iface, &IID_NULL, &strAttributeName, 1,
LOCALE_USER_DEFAULT, &dispid);
if(hres == S_OK)
{
diff --git a/reactos/dll/win32/mshtml/htmlstyle.h b/reactos/dll/win32/mshtml/htmlstyle.h
index a9ff53566e0..8db28df1790 100644
--- a/reactos/dll/win32/mshtml/htmlstyle.h
+++ b/reactos/dll/win32/mshtml/htmlstyle.h
@@ -59,6 +59,7 @@ typedef enum {
STYLEID_MARGIN,
STYLEID_MARGIN_LEFT,
STYLEID_MARGIN_RIGHT,
+ STYLEID_MIN_HEIGHT,
STYLEID_OVERFLOW,
STYLEID_PADDING_LEFT,
STYLEID_POSITION,
@@ -76,3 +77,10 @@ void HTMLStyle3_Init(HTMLStyle*);
HRESULT get_nsstyle_attr(nsIDOMCSSStyleDeclaration*,styleid_t,BSTR*);
HRESULT set_nsstyle_attr(nsIDOMCSSStyleDeclaration*,styleid_t,LPCWSTR,DWORD);
+
+HRESULT set_nsstyle_attr_var(nsIDOMCSSStyleDeclaration *nsstyle, styleid_t sid, VARIANT *value, DWORD flags);
+HRESULT get_nsstyle_attr_var(nsIDOMCSSStyleDeclaration *nsstyle, styleid_t sid, VARIANT *p, DWORD flags);
+
+#define ATTR_FIX_PX 1
+#define ATTR_FIX_URL 2
+#define ATTR_STR_TO_INT 4
diff --git a/reactos/dll/win32/mshtml/htmlstyle3.c b/reactos/dll/win32/mshtml/htmlstyle3.c
index f5ed8b523c3..ce1d56e197d 100644
--- a/reactos/dll/win32/mshtml/htmlstyle3.c
+++ b/reactos/dll/win32/mshtml/htmlstyle3.c
@@ -409,15 +409,19 @@ static HRESULT WINAPI HTMLStyle4_get_textOverflow(IHTMLStyle4 *iface, BSTR *p)
static HRESULT WINAPI HTMLStyle4_put_minHeight(IHTMLStyle4 *iface, VARIANT v)
{
HTMLStyle *This = HTMLSTYLE4_THIS(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_HEIGHT, &v, 0);
}
static HRESULT WINAPI HTMLStyle4_get_minHeight(IHTMLStyle4 *iface, VARIANT *p)
{
HTMLStyle *This = HTMLSTYLE4_THIS(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_HEIGHT, p, 0);
}
static const IHTMLStyle4Vtbl HTMLStyle4Vtbl = {
diff --git a/reactos/dll/win32/mshtml/htmltable.c b/reactos/dll/win32/mshtml/htmltable.c
index 9396f448706..b842e90d449 100644
--- a/reactos/dll/win32/mshtml/htmltable.c
+++ b/reactos/dll/win32/mshtml/htmltable.c
@@ -40,7 +40,7 @@ typedef struct {
nsIDOMHTMLTableElement *nstable;
} HTMLTable;
-#define HTMLTABLE(x) ((IHTMLTable*) &(x)->lpHTMLTableVtbl)
+#define HTMLTABLE(x) (&(x)->lpHTMLTableVtbl)
#define HTMLTABLE_THIS(iface) DEFINE_THIS(HTMLTable, HTMLTable, iface)
diff --git a/reactos/dll/win32/mshtml/htmltablerow.c b/reactos/dll/win32/mshtml/htmltablerow.c
index e040ac06f41..89c7e47c4ed 100644
--- a/reactos/dll/win32/mshtml/htmltablerow.c
+++ b/reactos/dll/win32/mshtml/htmltablerow.c
@@ -39,7 +39,7 @@ typedef struct {
nsIDOMHTMLTableRowElement *nsrow;
} HTMLTableRow;
-#define HTMLTABLEROW(x) ((IHTMLTableRow*) &(x)->lpHTMLTableRowVtbl)
+#define HTMLTABLEROW(x) (&(x)->lpHTMLTableRowVtbl)
#define HTMLTABLEROW_THIS(iface) DEFINE_THIS(HTMLTableRow, HTMLTableRow, iface)
diff --git a/reactos/dll/win32/mshtml/htmltextnode.c b/reactos/dll/win32/mshtml/htmltextnode.c
index 76199613a4a..630d2ba8056 100644
--- a/reactos/dll/win32/mshtml/htmltextnode.c
+++ b/reactos/dll/win32/mshtml/htmltextnode.c
@@ -37,7 +37,7 @@ struct HTMLDOMTextNode {
const IHTMLDOMTextNodeVtbl *lpIHTMLDOMTextNodeVtbl;
};
-#define HTMLTEXT(x) ((IHTMLDOMTextNode*) &(x)->lpIHTMLDOMTextNodeVtbl)
+#define HTMLTEXT(x) (&(x)->lpIHTMLDOMTextNodeVtbl)
#define HTMLTEXT_THIS(iface) DEFINE_THIS(HTMLDOMTextNode, IHTMLDOMTextNode, iface)
diff --git a/reactos/dll/win32/mshtml/install.c b/reactos/dll/win32/mshtml/install.c
index 344f402f924..15f6d93bbd3 100644
--- a/reactos/dll/win32/mshtml/install.c
+++ b/reactos/dll/win32/mshtml/install.c
@@ -54,11 +54,6 @@ static const WCHAR mshtml_keyW[] =
'\\','W','i','n','e',
'\\','M','S','H','T','M','L',0};
-static const CHAR mshtml_keyA[] =
- {'S','o','f','t','w','a','r','e',
- '\\','W','i','n','e',
- '\\','M','S','H','T','M','L',0};
-
static HWND install_dialog = NULL;
static LPWSTR tmp_file_name = NULL;
static HANDLE tmp_file = INVALID_HANDLE_VALUE;
@@ -224,18 +219,23 @@ static BOOL install_from_unix_file(const char *file_name)
static BOOL install_from_registered_dir(void)
{
char *file_name;
+ HKEY hkey;
DWORD res, type, size = MAX_PATH;
BOOL ret;
- file_name = heap_alloc(size+sizeof(GECKO_FILE_NAME));
/* @@ Wine registry key: HKCU\Software\Wine\MSHTML */
- res = RegGetValueA(HKEY_CURRENT_USER, mshtml_keyA, "GeckoCabDir", RRF_RT_ANY, &type, (PBYTE)file_name, &size);
+ res = RegOpenKeyW(HKEY_CURRENT_USER, mshtml_keyW, &hkey);
+ if(res != ERROR_SUCCESS)
+ return FALSE;
+
+ file_name = heap_alloc(size+sizeof(GECKO_FILE_NAME));
+ res = RegQueryValueExA(hkey, "GeckoCabDir", NULL, &type, (PBYTE)file_name, &size);
if(res == ERROR_MORE_DATA) {
file_name = heap_realloc(file_name, size+sizeof(GECKO_FILE_NAME));
- res = RegGetValueA(HKEY_CURRENT_USER, mshtml_keyA, "GeckoCabDir", RRF_RT_ANY, &type, (PBYTE)file_name, &size);
+ res = RegQueryValueExA(hkey, "GeckoCabDir", NULL, &type, (PBYTE)file_name, &size);
}
-
- if(res != ERROR_SUCCESS || (type != REG_SZ && type != REG_EXPAND_SZ)) {
+ RegCloseKey(hkey);
+ if(res != ERROR_SUCCESS || type != REG_SZ) {
heap_free(file_name);
return FALSE;
}
diff --git a/reactos/dll/win32/mshtml/protocol.c b/reactos/dll/win32/mshtml/protocol.c
index e5e22daaeaf..220ef8aa038 100644
--- a/reactos/dll/win32/mshtml/protocol.c
+++ b/reactos/dll/win32/mshtml/protocol.c
@@ -39,9 +39,9 @@ WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
* common ProtocolFactory implementation
*/
-#define PROTOCOLINFO(x) ((IInternetProtocolInfo*) &(x)->lpInternetProtocolInfoVtbl)
-#define CLASSFACTORY(x) ((IClassFactory*) &(x)->lpClassFactoryVtbl)
+#define CLASSFACTORY(x) (&(x)->lpClassFactoryVtbl)
#define PROTOCOL(x) ((IInternetProtocol*) &(x)->lpInternetProtocolVtbl)
+#define PROTOCOLINFO(x) ((IInternetProtocolInfo*) &(x)->lpInternetProtocolInfoVtbl)
typedef struct {
const IInternetProtocolInfoVtbl *lpInternetProtocolInfoVtbl;
diff --git a/reactos/dll/win32/mshtml/rsrc.rc b/reactos/dll/win32/mshtml/rsrc.rc
index 83e9d69a1fb..8be957f7156 100644
--- a/reactos/dll/win32/mshtml/rsrc.rc
+++ b/reactos/dll/win32/mshtml/rsrc.rc
@@ -43,6 +43,7 @@
#include "Hu.rc"
#include "Ja.rc"
#include "Ko.rc"
+#include "Lt.rc"
#include "Nl.rc"
#include "No.rc"
#include "Pl.rc"
diff --git a/reactos/dll/win32/mshtml/script.c b/reactos/dll/win32/mshtml/script.c
index fb90b468a90..55636d2118e 100644
--- a/reactos/dll/win32/mshtml/script.c
+++ b/reactos/dll/win32/mshtml/script.c
@@ -63,9 +63,9 @@ typedef struct {
} ScriptHost;
#define ACTSCPSITE(x) ((IActiveScriptSite*) &(x)->lpIActiveScriptSiteVtbl)
-#define ACTSCPPOLL(x) ((IActiveScriptSiteInterruptPoll*) &(x)->lpIActiveScriptSiteInterruptPollVtbl)
-#define ACTSCPWIN(x) ((IActiveScriptSiteWindow*) &(x)->lpIActiveScriptSiteWindowVtbl)
-#define ACTSCPDBG32(x) ((IActiveScriptSiteDebug32*) &(x)->lpIActiveScriptSiteDebug32Vtbl)
+#define ACTSCPPOLL(x) (&(x)->lpIActiveScriptSiteInterruptPollVtbl)
+#define ACTSCPWIN(x) (&(x)->lpIActiveScriptSiteWindowVtbl)
+#define ACTSCPDBG32(x) (&(x)->lpIActiveScriptSiteDebug32Vtbl)
static BOOL init_script_engine(ScriptHost *script_host)
{
diff --git a/reactos/dll/win32/netapi32/nbnamecache.c b/reactos/dll/win32/netapi32/nbnamecache.c
index b9ed15911c7..5f9b0b515cc 100644
--- a/reactos/dll/win32/netapi32/nbnamecache.c
+++ b/reactos/dll/win32/netapi32/nbnamecache.c
@@ -176,31 +176,6 @@ const NBNameCacheEntry *NBNameCacheFindEntry(struct NBNameCache *cache,
return ret;
}
-BOOL NBNameCacheUpdateNBName(struct NBNameCache *cache,
- const UCHAR name[NCBNAMSZ], const UCHAR nbname[NCBNAMSZ])
-{
- BOOL ret;
-
- if (cache)
- {
- NBNameCacheNode **node;
-
- EnterCriticalSection(&cache->cs);
- node = NBNameCacheWalk(cache, (const char *)name);
- if (node && *node && (*node)->entry)
- {
- memcpy((*node)->entry->nbname, nbname, NCBNAMSZ);
- ret = TRUE;
- }
- else
- ret = FALSE;
- LeaveCriticalSection(&cache->cs);
- }
- else
- ret = FALSE;
- return ret;
-}
-
void NBNameCacheDestroy(struct NBNameCache *cache)
{
if (cache)
diff --git a/reactos/dll/win32/netapi32/nbnamecache.h b/reactos/dll/win32/netapi32/nbnamecache.h
index b227ed641e6..ffefbc5b8a1 100644
--- a/reactos/dll/win32/netapi32/nbnamecache.h
+++ b/reactos/dll/win32/netapi32/nbnamecache.h
@@ -68,15 +68,6 @@ BOOL NBNameCacheAddEntry(struct NBNameCache *cache, NBNameCacheEntry *entry);
const NBNameCacheEntry *NBNameCacheFindEntry(struct NBNameCache *cache,
const UCHAR name[NCBNAMSZ]);
-/* If the entry with name name is in the cache, updates its nbname member to
- * nbname. The entry's expire time is implicitly updated to entryExpireTimeMS
- * + the current time in MS, since getting the NetBIOS name meant validating
- * the name and address anyway.
- * Returns TRUE on success or FALSE on failure.
- */
-BOOL NBNameCacheUpdateNBName(struct NBNameCache *cache,
- const UCHAR name[NCBNAMSZ], const UCHAR nbname[NCBNAMSZ]);
-
void NBNameCacheDestroy(struct NBNameCache *cache);
#endif /* ndef __WINE_NBNAMECACHE_H */
diff --git a/reactos/dll/win32/ntprint/ntprint.c b/reactos/dll/win32/ntprint/ntprint.c
index 32a2c0898e2..e7779ba6b1b 100644
--- a/reactos/dll/win32/ntprint/ntprint.c
+++ b/reactos/dll/win32/ntprint/ntprint.c
@@ -102,7 +102,7 @@ HANDLE WINAPI PSetupCreateMonitorInfo(LPVOID unknown1, LPVOID unknown2,LPVOID u
}
TRACE("=> %p (%u monitors installed)\n", mi, mi->installed);
- return (HANDLE) mi;
+ return mi;
}
/*****************************************************
@@ -112,7 +112,7 @@ HANDLE WINAPI PSetupCreateMonitorInfo(LPVOID unknown1, LPVOID unknown2,LPVOID u
VOID WINAPI PSetupDestroyMonitorInfo(HANDLE monitorinfo)
{
- monitorinfo_t * mi = (monitorinfo_t *) monitorinfo;
+ monitorinfo_t * mi = monitorinfo;
TRACE("(%p)\n", mi);
if (mi) {
@@ -144,7 +144,7 @@ VOID WINAPI PSetupDestroyMonitorInfo(HANDLE monitorinfo)
BOOL WINAPI PSetupEnumMonitor(HANDLE monitorinfo, DWORD index, LPWSTR buffer, LPDWORD psize)
{
- monitorinfo_t * mi = (monitorinfo_t *) monitorinfo;
+ monitorinfo_t * mi = monitorinfo;
LPWSTR nameW;
DWORD len;
diff --git a/reactos/dll/win32/objsel/factory.c b/reactos/dll/win32/objsel/factory.c
index f104c00045a..11d81b90e69 100644
--- a/reactos/dll/win32/objsel/factory.c
+++ b/reactos/dll/win32/objsel/factory.c
@@ -41,7 +41,7 @@ static HRESULT WINAPI OBJSEL_IClassFactory_QueryInterface(
if (IsEqualGUID(riid, &IID_IUnknown) ||
IsEqualGUID(riid, &IID_IClassFactory))
{
- *ppvObj = (LPVOID)iface;
+ *ppvObj = iface;
IClassFactory_AddRef(iface);
return S_OK;
}
diff --git a/reactos/dll/win32/objsel/objsel.c b/reactos/dll/win32/objsel/objsel.c
index e99aaefbee4..51e8d0b594e 100644
--- a/reactos/dll/win32/objsel/objsel.c
+++ b/reactos/dll/win32/objsel/objsel.c
@@ -72,7 +72,7 @@ HRESULT WINAPI DllCanUnloadNow(void)
/**********************************************************************
* OBJSEL_IDsObjectPicker_Destroy (also IUnknown)
*/
-static VOID WINAPI OBJSEL_IDsObjectPicker_Destroy(IDsObjectPickerImpl *This)
+static VOID OBJSEL_IDsObjectPicker_Destroy(IDsObjectPickerImpl *This)
{
HeapFree(GetProcessHeap(),
0,
@@ -142,7 +142,7 @@ static HRESULT WINAPI OBJSEL_IDsObjectPicker_QueryInterface(
if (IsEqualGUID(riid, &IID_IUnknown) ||
IsEqualGUID(riid, &IID_IDsObjectPicker))
{
- *ppvObj = (LPVOID)iface;
+ *ppvObj = iface;
OBJSEL_IDsObjectPicker_AddRef(iface);
return S_OK;
}
diff --git a/reactos/dll/win32/objsel/regsvr.c b/reactos/dll/win32/objsel/regsvr.c
index bfb4dd1310d..439b798fdc0 100644
--- a/reactos/dll/win32/objsel/regsvr.c
+++ b/reactos/dll/win32/objsel/regsvr.c
@@ -34,6 +34,7 @@
#include "objsel.h"
#include "wine/debug.h"
+#include "wine/unicode.h"
#include "initguid.h"
@@ -168,7 +169,7 @@ static HRESULT register_interfaces(struct regsvr_interface const *list) {
KEY_READ | KEY_WRITE, NULL, &key, NULL);
if (res != ERROR_SUCCESS) goto error_close_iid_key;
- wsprintfW(buf, fmt, list->num_methods);
+ sprintfW(buf, fmt, list->num_methods);
res = RegSetValueExW(key, NULL, 0, REG_SZ,
(CONST BYTE*)buf,
(lstrlenW(buf) + 1) * sizeof(WCHAR));