From ec56eb048b6aceea41699ca8aa2b73955d870ec1 Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Sun, 9 Aug 2009 12:00:11 +0000 Subject: [PATCH] sync shdocvw and mshtml with wine 1.1.27 and add missing translations to avifil32 svn path=/trunk/; revision=42555 --- reactos/boot/bootdata/packages/reactos.dff | 2 +- reactos/dll/win32/avifil32/avifile_Lt.rc | 55 ++ reactos/dll/win32/avifil32/avifile_Ro.rc | 57 ++ reactos/dll/win32/avifil32/rsrc.rc | 2 + reactos/dll/win32/mshtml/Bg.rc | 1 + reactos/dll/win32/mshtml/Da.rc | 1 + reactos/dll/win32/mshtml/De.rc | 1 + reactos/dll/win32/mshtml/En.rc | 1 + reactos/dll/win32/mshtml/Es.rc | 1 + reactos/dll/win32/mshtml/Fi.rc | 1 + reactos/dll/win32/mshtml/Fr.rc | 29 +- reactos/dll/win32/mshtml/Hu.rc | 1 + reactos/dll/win32/mshtml/Ja.rc | 13 +- reactos/dll/win32/mshtml/Ko.rc | 1 + reactos/dll/win32/mshtml/Lt.rc | 4 +- reactos/dll/win32/mshtml/Nl.rc | 1 + reactos/dll/win32/mshtml/No.rc | 24 +- reactos/dll/win32/mshtml/Pl.rc | 1 + reactos/dll/win32/mshtml/Pt.rc | 30 +- reactos/dll/win32/mshtml/Ro.rc | 3 +- reactos/dll/win32/mshtml/Ru.rc | 36 +- reactos/dll/win32/mshtml/Si.rc | 15 +- reactos/dll/win32/mshtml/Sv.rc | 14 +- reactos/dll/win32/mshtml/Tr.rc | 1 + reactos/dll/win32/mshtml/Zh.rc | 4 +- reactos/dll/win32/mshtml/dispex.c | 2 + reactos/dll/win32/mshtml/htmlbody.c | 57 +- reactos/dll/win32/mshtml/htmlelemcol.c | 51 +- reactos/dll/win32/mshtml/htmllocation.c | 2 +- reactos/dll/win32/mshtml/htmlnode.c | 5 + reactos/dll/win32/mshtml/htmloption.c | 4 +- reactos/dll/win32/mshtml/htmlstyle.c | 3 + reactos/dll/win32/mshtml/htmlstyle.h | 1 + reactos/dll/win32/mshtml/htmlstyle3.c | 12 +- reactos/dll/win32/mshtml/htmlstylesheet.c | 4 +- reactos/dll/win32/mshtml/install.c | 6 +- reactos/dll/win32/mshtml/main.c | 7 +- reactos/dll/win32/mshtml/mshtml_private.h | 2 + reactos/dll/win32/mshtml/mutation.c | 6 + reactos/dll/win32/mshtml/navigate.c | 17 +- reactos/dll/win32/mshtml/nsembed.c | 10 +- reactos/dll/win32/mshtml/nsiface.idl | 30 +- reactos/dll/win32/mshtml/olecmd.c | 12 +- reactos/dll/win32/mshtml/omnavigator.c | 2 +- reactos/dll/win32/mshtml/resource.h | 4 + reactos/dll/win32/mshtml/rsrc.rc | 31 - reactos/dll/win32/mshtml/task.c | 16 +- reactos/dll/win32/mshtml/txtrange.c | 18 +- reactos/dll/win32/shdocvw/oleobject.c | 3 + reactos/dll/win32/shdocvw/shdocvw.inf | 4 +- reactos/dll/win32/shdocvw/shdocvw.rc | 10 +- reactos/dll/win32/shdocvw/shdocvw.spec | 2 +- reactos/dll/win32/shdocvw/shdocvw_main.c | 9 + reactos/dll/win32/shdocvw/taskbarlist.c | 17 +- reactos/include/psdk/mshtmdid.h | 36 + reactos/include/psdk/mshtml.idl | 772 ++++++++++++++++++++- 56 files changed, 1282 insertions(+), 172 deletions(-) create mode 100644 reactos/dll/win32/avifil32/avifile_Lt.rc create mode 100644 reactos/dll/win32/avifil32/avifile_Ro.rc diff --git a/reactos/boot/bootdata/packages/reactos.dff b/reactos/boot/bootdata/packages/reactos.dff index ab137d945de..763986cec54 100644 --- a/reactos/boot/bootdata/packages/reactos.dff +++ b/reactos/boot/bootdata/packages/reactos.dff @@ -669,7 +669,7 @@ modules\optional\vmx_fb.dll 1 optional modules\optional\vmx_mode.dll 1 optional modules\optional\vmx_svga.inf 6 optional modules\optional\vmx_svga.sys 2 optional -modules\optional\wine_gecko-0.9.1.cab 4 optional +modules\optional\wine_gecko-1.0.0-x86.cab 4 optional ; Rosapps modules\rosapps\applications\screensavers\cylfrac\cylfrac.scr 1 optional diff --git a/reactos/dll/win32/avifil32/avifile_Lt.rc b/reactos/dll/win32/avifil32/avifile_Lt.rc new file mode 100644 index 00000000000..e4795b5ea03 --- /dev/null +++ b/reactos/dll/win32/avifil32/avifile_Lt.rc @@ -0,0 +1,55 @@ +/* + * 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 + */ + +#include "avifile_private.h" + +/* UTF-8 */ +#pragma code_page(65001) + +LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL + +IDD_SAVEOPTIONS DIALOG FIXED IMPURE 43, 37, 226, 82 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Glaudinimo parametrai" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Pasirinkite srautą:",-1,2,5,154,10 + COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + PUSHBUTTON "&Parinktys...",IDC_OPTIONS,170,17,50,14 + AUTOCHECKBOX "&Įtarpuoti kas",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP + EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL + LTEXT "kadrų",-1,129,43,36,9 + LTEXT "Dabartinis formatas:",-1,3,56,73,9 + LTEXT "Ši vieta išnuomojama",IDC_FORMATTEXT,75,56,90,26 + DEFPUSHBUTTON "Gerai",IDOK,170,42,50,14 + PUSHBUTTON "Atsisakyti",IDCANCEL,170,61,50,14 +END + +STRINGTABLE DISCARDABLE +{ + IDS_WAVESTREAMFORMAT "Bangos forma: %s" + IDS_WAVEFILETYPE "Bangos forma" + IDS_ALLMULTIMEDIA "Visi multimedijos failai" + IDS_ALLFILES "Visi failai (*.*)@*.*" + IDS_VIDEO "vaizdas" + IDS_AUDIO "garsas" + IDS_AVISTREAMFORMAT "%s %s #%d" + IDS_AVIFILETYPE "Wine numatyta-AVI-doroklė" + IDS_UNCOMPRESSED "neglaudintas" +} diff --git a/reactos/dll/win32/avifil32/avifile_Ro.rc b/reactos/dll/win32/avifil32/avifile_Ro.rc new file mode 100644 index 00000000000..6e63780045f --- /dev/null +++ b/reactos/dll/win32/avifil32/avifile_Ro.rc @@ -0,0 +1,57 @@ +/* + * avifil32.dll (Romanian resources) + * + * Copyright 2009 Paul Chitescu + * + * 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 + */ + +#include "avifile_private.h" + +/* UTF-8 */ +#pragma code_page(65001) + +LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL + +IDD_SAVEOPTIONS DIALOG FIXED IMPURE 43, 37, 226, 82 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Opțiuni de compresie" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "&Alegeți un flux:",-1,2,5,154,10 + COMBOBOX IDC_STREAM,2,18,154,61,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + PUSHBUTTON "&Opțiuni...",IDC_OPTIONS,170,17,50,14 + AUTOCHECKBOX "Ȋ&ntrețese fiecare",IDC_INTERLEAVE,3,42,85,11,WS_TABSTOP + EDITTEXT IDC_INTERLEAVEEVERY,91,41,32,12,ES_AUTOHSCROLL + LTEXT "cadre",-1,129,43,36,9 + LTEXT "Formatul curent:",-1,3,56,73,9 + LTEXT "This space for rent",IDC_FORMATTEXT,75,56,90,26 + DEFPUSHBUTTON "OK",IDOK,170,42,50,14 + PUSHBUTTON "Renunță",IDCANCEL,170,61,50,14 +END + +STRINGTABLE DISCARDABLE +{ + IDS_WAVESTREAMFORMAT "Forma de undă: %s" + IDS_WAVEFILETYPE "Formă de undă" + IDS_ALLMULTIMEDIA "Toate fișierele multimedia" + IDS_ALLFILES "Toate fișierele (*.*)@*.*" + IDS_VIDEO "video" + IDS_AUDIO "audio" + IDS_AVISTREAMFORMAT "%s %s #%d" + IDS_AVIFILETYPE "Tratare implicită Wine pentru AVI" + IDS_UNCOMPRESSED "necomprimat" +} diff --git a/reactos/dll/win32/avifil32/rsrc.rc b/reactos/dll/win32/avifil32/rsrc.rc index 68fbab3e5bc..e4363a7d7cb 100644 --- a/reactos/dll/win32/avifil32/rsrc.rc +++ b/reactos/dll/win32/avifil32/rsrc.rc @@ -48,10 +48,12 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #include "avifile_It.rc" #include "avifile_Ja.rc" #include "avifile_Ko.rc" +#include "avifile_Lt.rc" #include "avifile_Nl.rc" #include "avifile_No.rc" #include "avifile_Pl.rc" #include "avifile_Pt.rc" +#include "avifile_Ro.rc" #include "avifile_Ru.rc" #include "avifile_Si.rc" #include "avifile_Sv.rc" diff --git a/reactos/dll/win32/mshtml/Bg.rc b/reactos/dll/win32/mshtml/Bg.rc index 92c86b6ba4f..a8fd605ab09 100644 --- a/reactos/dll/win32/mshtml/Bg.rc +++ b/reactos/dll/win32/mshtml/Bg.rc @@ -16,6 +16,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT diff --git a/reactos/dll/win32/mshtml/Da.rc b/reactos/dll/win32/mshtml/Da.rc index 47579b5a4d8..574ea093afe 100644 --- a/reactos/dll/win32/mshtml/Da.rc +++ b/reactos/dll/win32/mshtml/Da.rc @@ -18,6 +18,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" LANGUAGE LANG_DANISH, SUBLANG_DEFAULT diff --git a/reactos/dll/win32/mshtml/De.rc b/reactos/dll/win32/mshtml/De.rc index 991e84d28fd..dd55740ee0e 100644 --- a/reactos/dll/win32/mshtml/De.rc +++ b/reactos/dll/win32/mshtml/De.rc @@ -18,6 +18,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL diff --git a/reactos/dll/win32/mshtml/En.rc b/reactos/dll/win32/mshtml/En.rc index 09370deb353..41ee1197050 100644 --- a/reactos/dll/win32/mshtml/En.rc +++ b/reactos/dll/win32/mshtml/En.rc @@ -16,6 +16,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT diff --git a/reactos/dll/win32/mshtml/Es.rc b/reactos/dll/win32/mshtml/Es.rc index 94af0cfaf5c..fb79f87852c 100644 --- a/reactos/dll/win32/mshtml/Es.rc +++ b/reactos/dll/win32/mshtml/Es.rc @@ -18,6 +18,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL diff --git a/reactos/dll/win32/mshtml/Fi.rc b/reactos/dll/win32/mshtml/Fi.rc index d1d389a8ba5..564345d6960 100644 --- a/reactos/dll/win32/mshtml/Fi.rc +++ b/reactos/dll/win32/mshtml/Fi.rc @@ -18,6 +18,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT diff --git a/reactos/dll/win32/mshtml/Fr.rc b/reactos/dll/win32/mshtml/Fr.rc index 25426701de4..c7671d4aed4 100644 --- a/reactos/dll/win32/mshtml/Fr.rc +++ b/reactos/dll/win32/mshtml/Fr.rc @@ -2,7 +2,7 @@ * MsHTML resources * French Language Support * - * Copyright 2005-2007 Jonathan Ernst + * Copyright 2005-2009 Jonathan Ernst * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -19,14 +19,18 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" + +/* UTF-8 */ +#pragma code_page(65001) LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL STRINGTABLE DISCARDABLE { - IDS_HTMLDISABLED "Le rendu HTML est actuellement dsactiv." + IDS_HTMLDISABLED "Le rendu HTML est actuellement désactivé." IDS_HTMLDOCUMENT "Document HTML" - IDS_DOWNLOADING "Tlchargement..." + IDS_DOWNLOADING "Téléchargement..." IDS_INSTALLING "Installation..." } @@ -35,9 +39,9 @@ STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMEN CAPTION "Programme d'installation de Gecko pour Wine" FONT 8, "MS Shell Dlg" { - LTEXT "Cette application essaie d'afficher une page HTML. Wine requiert la prsence du moteur de rendu Gecko de Mozilla " \ + LTEXT "Cette application essaie d'afficher une page HTML. Wine requiert la présence du moteur de rendu Gecko de Mozilla " \ "pour afficher cette page. Cliquez sur Installer si vous souhaitez que Wine " \ - "tlcharge et installe automatiquement Gecko.", ID_DWL_STATUS, 10, 10, 240, 40, SS_LEFT + "télécharge et installe automatiquement Gecko.", ID_DWL_STATUS, 10, 10, 240, 40, SS_LEFT CONTROL "Progression", ID_DWL_PROGRESS, PROGRESS_CLASSA, WS_BORDER|PBS_SMOOTH, 10, 50, 240, 12 DEFPUSHBUTTON "&Installer", ID_DWL_INSTALL, 200, 70, 50, 15, WS_GROUP | WS_TABSTOP PUSHBUTTON "&Annuler", IDCANCEL, 140, 70, 50, 15, WS_GROUP | WS_TABSTOP @@ -49,10 +53,21 @@ 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, 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 + LTEXT "&URL :", -1, 10, 42, 20, 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 } + +ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90 +STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +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 +} diff --git a/reactos/dll/win32/mshtml/Hu.rc b/reactos/dll/win32/mshtml/Hu.rc index 7f3d25446ad..137a1007198 100644 --- a/reactos/dll/win32/mshtml/Hu.rc +++ b/reactos/dll/win32/mshtml/Hu.rc @@ -16,6 +16,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT diff --git a/reactos/dll/win32/mshtml/Ja.rc b/reactos/dll/win32/mshtml/Ja.rc index 81bf8f8eff2..202bd43164c 100644 --- a/reactos/dll/win32/mshtml/Ja.rc +++ b/reactos/dll/win32/mshtml/Ja.rc @@ -16,6 +16,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" + /* UTF-8 */ #pragma code_page(65001) @@ -56,4 +58,13 @@ FONT 9, "MS Shell Dlg" PUSHBUTTON "キャンセル", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP } -#pragma code_page(default) +ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90 +STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +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 +} diff --git a/reactos/dll/win32/mshtml/Ko.rc b/reactos/dll/win32/mshtml/Ko.rc index efad0075a87..01456e39d0d 100644 --- a/reactos/dll/win32/mshtml/Ko.rc +++ b/reactos/dll/win32/mshtml/Ko.rc @@ -17,6 +17,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT diff --git a/reactos/dll/win32/mshtml/Lt.rc b/reactos/dll/win32/mshtml/Lt.rc index f63b177746d..26167a9adc1 100644 --- a/reactos/dll/win32/mshtml/Lt.rc +++ b/reactos/dll/win32/mshtml/Lt.rc @@ -16,6 +16,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" + /* UTF-8 */ #pragma code_page(65001) @@ -66,5 +68,3 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "Gerai", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP PUSHBUTTON "Atsisakyti", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP } - -#pragma code_page(default) diff --git a/reactos/dll/win32/mshtml/Nl.rc b/reactos/dll/win32/mshtml/Nl.rc index f6f47e174b3..1aab09c79d6 100644 --- a/reactos/dll/win32/mshtml/Nl.rc +++ b/reactos/dll/win32/mshtml/Nl.rc @@ -18,6 +18,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL diff --git a/reactos/dll/win32/mshtml/No.rc b/reactos/dll/win32/mshtml/No.rc index 6060a515365..83989a0beab 100644 --- a/reactos/dll/win32/mshtml/No.rc +++ b/reactos/dll/win32/mshtml/No.rc @@ -1,7 +1,7 @@ /* - * Norwegian Bokml language support + * Norwegian Bokmål language support * - * Copyright 2005-2007 Alexander N. Srnes + * Copyright 2005-2009 Alexander N. Sørnes * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -18,12 +18,15 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" + +#pragma code_page(65001) LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL STRINGTABLE DISCARDABLE { - IDS_HTMLDISABLED "HTML-tegning er for yeblikket deaktivert." + IDS_HTMLDISABLED "HTML-tegning er for øyeblikket deaktivert." IDS_HTMLDOCUMENT "HTML-dokument" IDS_DOWNLOADING "Laster ned..." IDS_INSTALLING "Installerer..." @@ -34,8 +37,8 @@ STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMEN CAPTION "Installere Wine Gecko" FONT 8, "MS Shell Dlg" { - LTEXT "Dette programmer prver vise en HTML-side. Wine trenger Gecko " \ - "(Mozillas HTML-motor) for vise denne siden. Velg Installer hvis " \ + LTEXT "Dette programmer prøver å vise en HTML-side. Wine trenger Gecko " \ + "(Mozillas HTML-motor) for å vise denne siden. Velg «Installer» hvis " \ "du vil at Wine skal laste ned og installere Gecko automatisk.", ID_DWL_STATUS, 10, 10, 240, 30, SS_LEFT CONTROL "Progress", ID_DWL_PROGRESS, PROGRESS_CLASSA, WS_BORDER|PBS_SMOOTH, 10, 40, 240, 12 DEFPUSHBUTTON "&Installer", ID_DWL_INSTALL, 200, 60, 50, 15, WS_GROUP | WS_TABSTOP @@ -55,3 +58,14 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "OK", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP PUSHBUTTON "Avbryt", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP } + +ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90 +STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +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 +} diff --git a/reactos/dll/win32/mshtml/Pl.rc b/reactos/dll/win32/mshtml/Pl.rc index a17768651ef..11659ee2297 100644 --- a/reactos/dll/win32/mshtml/Pl.rc +++ b/reactos/dll/win32/mshtml/Pl.rc @@ -17,6 +17,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" LANGUAGE LANG_POLISH, SUBLANG_DEFAULT diff --git a/reactos/dll/win32/mshtml/Pt.rc b/reactos/dll/win32/mshtml/Pt.rc index 0a83ee06a41..d9ebbb3126a 100644 --- a/reactos/dll/win32/mshtml/Pt.rc +++ b/reactos/dll/win32/mshtml/Pt.rc @@ -16,15 +16,18 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" -LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL +#pragma code_page(65001) + +LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE STRINGTABLE DISCARDABLE { - IDS_HTMLDISABLED "A interpretao de HTML est desactivada." + IDS_HTMLDISABLED "A interpretação de HTML está desactivada." IDS_HTMLDOCUMENT "Documento HTML" - IDS_DOWNLOADING "Descarregando..." - IDS_INSTALLING "Instalando..." + IDS_DOWNLOADING "A descarregar..." + IDS_INSTALLING "A instalar..." } ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 @@ -32,8 +35,8 @@ STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMEN CAPTION "Instalador Wine Gecko" FONT 8, "MS Shell Dlg" { - LTEXT "Esta aplicao est a tentar mostrar uma pgina HTML. O Wine precisa que o Gecko " \ - "(Motor HTML Mozilla) seja instalado para mostrar a pgina. Clique em Instalar se deseja que o Wine " \ + LTEXT "Esta aplicação está a tentar mostrar uma página HTML. O Wine precisa que o Gecko " \ + "(Motor HTML Mozilla) seja instalado para mostrar a página. Clique em Instalar se deseja que o Wine " \ "descarregue e instale o Gecko automaticamente.", ID_DWL_STATUS, 10, 10, 240, 40, SS_LEFT CONTROL "Progresso", ID_DWL_PROGRESS, PROGRESS_CLASSA, WS_BORDER|PBS_SMOOTH, 10, 50, 240, 12 DEFPUSHBUTTON "&Instalar", ID_DWL_INSTALL, 200, 70, 50, 15, WS_GROUP | WS_TABSTOP @@ -42,10 +45,10 @@ FONT 8, "MS Shell Dlg" IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Hiperligao" +CAPTION "Hiperligação" FONT 8, "MS Shell Dlg" { - GROUPBOX "Informao da Hiperligao", -1, 5, 5, 190, 55 + GROUPBOX "Informação da Hiperligação", -1, 5, 5, 190, 55 LTEXT "&Tipo:", -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 @@ -53,3 +56,14 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "OK", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP PUSHBUTTON "Cancelar", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP } + +ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90 +STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +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 +} diff --git a/reactos/dll/win32/mshtml/Ro.rc b/reactos/dll/win32/mshtml/Ro.rc index 4bb71993c47..1bac21645d2 100644 --- a/reactos/dll/win32/mshtml/Ro.rc +++ b/reactos/dll/win32/mshtml/Ro.rc @@ -17,6 +17,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL @@ -65,5 +66,3 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "OK", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP PUSHBUTTON "Renunță", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP } - -#pragma code_page(default) diff --git a/reactos/dll/win32/mshtml/Ru.rc b/reactos/dll/win32/mshtml/Ru.rc index 9460f243567..7638d9b8e9d 100644 --- a/reactos/dll/win32/mshtml/Ru.rc +++ b/reactos/dll/win32/mshtml/Ru.rc @@ -16,40 +16,44 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" + +/* UTF-8 */ +#pragma code_page(65001) LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT STRINGTABLE DISCARDABLE { - IDS_HTMLDISABLED " HTML ." - IDS_HTMLDOCUMENT " HTML" - IDS_DOWNLOADING "..." - IDS_INSTALLING "..." + IDS_HTMLDISABLED "В настоящее время отображение HTML выключенно." + IDS_HTMLDOCUMENT "Документ HTML" + IDS_DOWNLOADING "Загрузка..." + IDS_INSTALLING "Установка..." } ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 261, 85 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION " Wine Gecko" +CAPTION "Установка Wine Gecko" FONT 8, "MS Shell Dlg" { - LTEXT " HTML . Wine " \ - " Gecko (Mozilla HTML engine). , Wine " \ - " Gecko.", ID_DWL_STATUS, 10, 10, 240, 33, SS_LEFT - CONTROL "", ID_DWL_PROGRESS, PROGRESS_CLASSA, WS_BORDER|PBS_SMOOTH, 10, 46, 240, 12 - DEFPUSHBUTTON "&", ID_DWL_INSTALL, 200, 63, 50, 15, WS_GROUP | WS_TABSTOP - PUSHBUTTON "&", IDCANCEL, 140, 63, 50, 15, WS_GROUP | WS_TABSTOP + LTEXT "Эта программа пытается отобразить HTML страницу. Для её отображения Wine необходимо " \ + "установить Gecko (Mozilla HTML engine). Нажмите кнопку установить если вы хотите, что бы Wine " \ + "автоматически загрузил и установил Gecko.", ID_DWL_STATUS, 10, 10, 240, 33, SS_LEFT + CONTROL "Прогресс", ID_DWL_PROGRESS, PROGRESS_CLASSA, WS_BORDER|PBS_SMOOTH, 10, 46, 240, 12 + DEFPUSHBUTTON "&Установить", ID_DWL_INSTALL, 200, 63, 50, 15, WS_GROUP | WS_TABSTOP + PUSHBUTTON "&Отмена", IDCANCEL, 140, 63, 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 "" +CAPTION "Ссылка" FONT 8, "MS Shell Dlg" { - GROUPBOX " ", -1, 5, 5, 190, 55 - LTEXT "&:", -1, 10, 22, 20, 10 + GROUPBOX "Информация о ссылке", -1, 5, 5, 190, 55 + LTEXT "&Тип:", -1, 10, 22, 20, 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, 20, 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 "Отмена", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP } diff --git a/reactos/dll/win32/mshtml/Si.rc b/reactos/dll/win32/mshtml/Si.rc index 2a67290fd73..92721df350d 100644 --- a/reactos/dll/win32/mshtml/Si.rc +++ b/reactos/dll/win32/mshtml/Si.rc @@ -16,13 +16,15 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" + #pragma code_page(65001) LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT STRINGTABLE DISCARDABLE { - IDS_HTMLDISABLED "Prikazovanje HTML dokumento je trenutno onemogočeno." + IDS_HTMLDISABLED "Prikazovanje HTML dokumentov je trenutno onemogočeno." IDS_HTMLDOCUMENT "HTML dokument" IDS_DOWNLOADING "Nalagam ..." IDS_INSTALLING "Nameščam ..." @@ -56,4 +58,13 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "Prekliči", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP } -#pragma code_page(default) +ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90 +STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +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 +} diff --git a/reactos/dll/win32/mshtml/Sv.rc b/reactos/dll/win32/mshtml/Sv.rc index 2d9c29233dd..041ff8b5dc7 100644 --- a/reactos/dll/win32/mshtml/Sv.rc +++ b/reactos/dll/win32/mshtml/Sv.rc @@ -16,6 +16,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL @@ -51,6 +52,17 @@ FONT 8, "MS Shell Dlg" 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 "Ok", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | 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 } + +ID_PROMPT_DIALOG DIALOG 0, 0, 200, 90 +STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "" +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 +} diff --git a/reactos/dll/win32/mshtml/Tr.rc b/reactos/dll/win32/mshtml/Tr.rc index 6d843a1503d..7e85fc6b4a1 100644 --- a/reactos/dll/win32/mshtml/Tr.rc +++ b/reactos/dll/win32/mshtml/Tr.rc @@ -16,6 +16,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/dll/win32/mshtml/Zh.rc b/reactos/dll/win32/mshtml/Zh.rc index 4b258a48fca..2365120e5bb 100644 --- a/reactos/dll/win32/mshtml/Zh.rc +++ b/reactos/dll/win32/mshtml/Zh.rc @@ -18,6 +18,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "resource.h" + /* Chinese text is encoded in UTF-8 */ #pragma code_page(65001) @@ -94,5 +96,3 @@ FONT 9, "MS Shell Dlg" PUSHBUTTON "確定", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP PUSHBUTTON "取消", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP } - -#pragma code_page(default) diff --git a/reactos/dll/win32/mshtml/dispex.c b/reactos/dll/win32/mshtml/dispex.c index 0d0422c873a..3dd11b18e4d 100644 --- a/reactos/dll/win32/mshtml/dispex.c +++ b/reactos/dll/win32/mshtml/dispex.c @@ -77,6 +77,8 @@ static REFIID tid_ids[] = { &DIID_DispHTMLIFrame, &DIID_DispHTMLImg, &DIID_DispHTMLInputElement, + &DIID_DispHTMLLocation, + &DIID_DispHTMLNavigator, &DIID_DispHTMLOptionElement, &DIID_DispHTMLSelectElement, &DIID_DispHTMLStyle, diff --git a/reactos/dll/win32/mshtml/htmlbody.c b/reactos/dll/win32/mshtml/htmlbody.c index 0cbfc06be67..b8e0f95c65b 100644 --- a/reactos/dll/win32/mshtml/htmlbody.c +++ b/reactos/dll/win32/mshtml/htmlbody.c @@ -44,6 +44,61 @@ typedef struct { #define HTMLBODY(x) (&(x)->lpHTMLBodyElementVtbl) +static const WCHAR aquaW[] = {'a','q','u','a',0}; +static const WCHAR blackW[] = {'b','l','a','c','k',0}; +static const WCHAR blueW[] = {'b','l','u','e',0}; +static const WCHAR fuchsiaW[] = {'f','u','s','h','s','i','a',0}; +static const WCHAR grayW[] = {'g','r','a','y',0}; +static const WCHAR greenW[] = {'g','r','e','e','n',0}; +static const WCHAR limeW[] = {'l','i','m','e',0}; +static const WCHAR maroonW[] = {'m','a','r','o','o','n',0}; +static const WCHAR navyW[] = {'n','a','v','y',0}; +static const WCHAR oliveW[] = {'o','l','i','v','e',0}; +static const WCHAR purpleW[] = {'p','u','r','p','l','e',0}; +static const WCHAR redW[] = {'r','e','d',0}; +static const WCHAR silverW[] = {'s','i','l','v','e','r',0}; +static const WCHAR tealW[] = {'t','e','a','l',0}; +static const WCHAR whiteW[] = {'w','h','i','t','e',0}; +static const WCHAR yellowW[] = {'y','e','l','l','o','w',0}; + +static const struct { + LPCWSTR keyword; + const WCHAR hexstr[8]; +} keyword_table[] = { + {aquaW, {'#','0','0','f','f','f','f',0}}, + {blackW, {'#','0','0','0','0','0','0',0}}, + {blueW, {'#','0','0','0','0','f','f',0}}, + {fuchsiaW, {'#','f','f','0','0','f','f',0}}, + {grayW, {'#','8','0','8','0','8','0',0}}, + {greenW, {'#','0','0','8','0','0','0',0}}, + {limeW, {'#','0','0','f','f','0','0',0}}, + {maroonW, {'#','8','0','0','0','0','0',0}}, + {navyW, {'#','0','0','0','0','8','0',0}}, + {oliveW, {'#','8','0','8','0','0','0',0}}, + {purpleW, {'#','8','0','0','0','8','0',0}}, + {redW, {'#','f','f','0','0','0','0',0}}, + {silverW, {'#','c','0','c','0','c','0',0}}, + {tealW, {'#','0','0','8','0','8','0',0}}, + {whiteW, {'#','f','f','f','f','f','f',0}}, + {yellowW, {'#','f','f','f','f','0','0',0}} +}; + +static BSTR nscolor_to_str(LPCWSTR color) +{ + int i; + + if(!color || *color == '#') + return SysAllocString(color); + + for(i=0; i < sizeof(keyword_table)/sizeof(keyword_table[0]); i++) { + if(!strcmpiW(color, keyword_table[i].keyword)) + return SysAllocString(keyword_table[i].hexstr); + } + + WARN("unknown color %s\n", debugstr_w(color)); + return SysAllocString(color); +} + static BOOL variant_to_nscolor(const VARIANT *v, nsAString *nsstr) { switch(V_VT(v)) { @@ -305,7 +360,7 @@ static HRESULT WINAPI HTMLBodyElement_get_bgColor(IHTMLBodyElement *iface, VARIA nsAString_GetData(&strColor, &color); V_VT(p) = VT_BSTR; - V_BSTR(p) = SysAllocString(color); + V_BSTR(p) = nscolor_to_str(color); nsAString_Finish(&strColor); diff --git a/reactos/dll/win32/mshtml/htmlelemcol.c b/reactos/dll/win32/mshtml/htmlelemcol.c index 049da58a9bb..43628907943 100644 --- a/reactos/dll/win32/mshtml/htmlelemcol.c +++ b/reactos/dll/win32/mshtml/htmlelemcol.c @@ -236,39 +236,43 @@ static BOOL is_elem_name(HTMLElement *elem, LPCWSTR name) return ret; } +static HRESULT get_item_idx(HTMLElementCollection *This, UINT idx, IDispatch **ret) +{ + if(idx < This->len) { + *ret = (IDispatch*)This->elems[idx]; + IDispatch_AddRef(*ret); + } + + return S_OK; +} + static HRESULT WINAPI HTMLElementCollection_item(IHTMLElementCollection *iface, VARIANT name, VARIANT index, IDispatch **pdisp) { HTMLElementCollection *This = ELEMCOL_THIS(iface); + HRESULT hres = S_OK; - TRACE("(%p)->(v(%d) v(%d) %p)\n", This, V_VT(&name), V_VT(&index), pdisp); + TRACE("(%p)->(%s %s %p)\n", This, debugstr_variant(&name), debugstr_variant(&index), pdisp); *pdisp = NULL; - if(V_VT(&name) == VT_I4) { - TRACE("name is VT_I4: %d\n", V_I4(&name)); - + switch(V_VT(&name)) { + case VT_I4: if(V_I4(&name) < 0) return E_INVALIDARG; - if(V_I4(&name) >= This->len) - return S_OK; + hres = get_item_idx(This, V_I4(&name), pdisp); + break; - *pdisp = (IDispatch*)This->elems[V_I4(&name)]; - IDispatch_AddRef(*pdisp); - TRACE("Returning pdisp=%p\n", pdisp); - return S_OK; - } + case VT_UINT: + hres = get_item_idx(This, V_UINT(&name), pdisp); + break; - if(V_VT(&name) == VT_BSTR) { + case VT_BSTR: { DWORD i; - TRACE("name is VT_BSTR: %s\n", debugstr_w(V_BSTR(&name))); - if(V_VT(&index) == VT_I4) { LONG idx = V_I4(&index); - TRACE("index = %d\n", idx); - if(idx < 0) return E_INVALIDARG; @@ -281,8 +285,6 @@ static HRESULT WINAPI HTMLElementCollection_item(IHTMLElementCollection *iface, *pdisp = (IDispatch*)HTMLELEM(This->elems[i]); IDispatch_AddRef(*pdisp); } - - return S_OK; }else { elem_vector_t buf = {NULL, 0, 8}; @@ -304,13 +306,18 @@ static HRESULT WINAPI HTMLElementCollection_item(IHTMLElementCollection *iface, heap_free(buf.buf); } - - return S_OK; } + break; } - FIXME("unsupported arguments\n"); - return E_INVALIDARG; + default: + FIXME("Unsupported name %s\n", debugstr_variant(&name)); + hres = E_NOTIMPL; + } + + if(SUCCEEDED(hres)) + TRACE("returning %p\n", *pdisp); + return hres; } static HRESULT WINAPI HTMLElementCollection_tags(IHTMLElementCollection *iface, diff --git a/reactos/dll/win32/mshtml/htmllocation.c b/reactos/dll/win32/mshtml/htmllocation.c index c671073b84b..35f042a2676 100644 --- a/reactos/dll/win32/mshtml/htmllocation.c +++ b/reactos/dll/win32/mshtml/htmllocation.c @@ -293,7 +293,7 @@ static const tid_t HTMLLocation_iface_tids[] = { }; static dispex_static_data_t HTMLLocation_dispex = { NULL, - IHTMLLocation_tid, + DispHTMLLocation_tid, NULL, HTMLLocation_iface_tids }; diff --git a/reactos/dll/win32/mshtml/htmlnode.c b/reactos/dll/win32/mshtml/htmlnode.c index 32b08019ec1..720bbfef4be 100644 --- a/reactos/dll/win32/mshtml/htmlnode.c +++ b/reactos/dll/win32/mshtml/htmlnode.c @@ -157,6 +157,11 @@ static HRESULT WINAPI HTMLDOMChildrenCollection_item(IHTMLDOMChildrenCollection TRACE("(%p)->(%d %p)\n", This, index, ppItem); + if (ppItem) + *ppItem = NULL; + else + return E_POINTER; + nsIDOMNodeList_GetLength(This->nslist, &length); if(index < 0 || index >= length) return E_INVALIDARG; diff --git a/reactos/dll/win32/mshtml/htmloption.c b/reactos/dll/win32/mshtml/htmloption.c index ae36a99f753..49d8deb3272 100644 --- a/reactos/dll/win32/mshtml/htmloption.c +++ b/reactos/dll/win32/mshtml/htmloption.c @@ -31,13 +31,13 @@ WINE_DEFAULT_DEBUG_CHANNEL(mshtml); -typedef struct { +struct HTMLOptionElement { HTMLElement element; const IHTMLOptionElementVtbl *lpHTMLOptionElementVtbl; nsIDOMHTMLOptionElement *nsoption; -} HTMLOptionElement; +}; #define HTMLOPTION(x) (&(x)->lpHTMLOptionElementVtbl) diff --git a/reactos/dll/win32/mshtml/htmlstyle.c b/reactos/dll/win32/mshtml/htmlstyle.c index 6a225a6bffc..f036077f642 100644 --- a/reactos/dll/win32/mshtml/htmlstyle.c +++ b/reactos/dll/win32/mshtml/htmlstyle.c @@ -119,6 +119,8 @@ static const WCHAR attrVisibility[] = {'v','i','s','i','b','i','l','i','t','y',0}; static const WCHAR attrWidth[] = {'w','i','d','t','h',0}; +static const WCHAR attrWordWrap[] = + {'w','o','r','d','-','w','r','a','p',0}; static const WCHAR attrZIndex[] = {'z','-','i','n','d','e','x',0}; @@ -168,6 +170,7 @@ static const struct{ {attrVerticalAlign, DISPID_IHTMLSTYLE_VERTICALALIGN}, {attrVisibility, DISPID_IHTMLSTYLE_VISIBILITY}, {attrWidth, DISPID_IHTMLSTYLE_WIDTH}, + {attrWordWrap, DISPID_IHTMLSTYLE3_WORDWRAP}, {attrZIndex, DISPID_IHTMLSTYLE_ZINDEX} }; diff --git a/reactos/dll/win32/mshtml/htmlstyle.h b/reactos/dll/win32/mshtml/htmlstyle.h index 596f5793f31..307824e5c5d 100644 --- a/reactos/dll/win32/mshtml/htmlstyle.h +++ b/reactos/dll/win32/mshtml/htmlstyle.h @@ -77,6 +77,7 @@ typedef enum { STYLEID_VERTICAL_ALIGN, STYLEID_VISIBILITY, STYLEID_WIDTH, + STYLEID_WORD_WRAP, STYLEID_Z_INDEX } styleid_t; diff --git a/reactos/dll/win32/mshtml/htmlstyle3.c b/reactos/dll/win32/mshtml/htmlstyle3.c index ce1d56e197d..505e91e01d1 100644 --- a/reactos/dll/win32/mshtml/htmlstyle3.c +++ b/reactos/dll/win32/mshtml/htmlstyle3.c @@ -117,15 +117,19 @@ static HRESULT WINAPI HTMLStyle3_get_zoom(IHTMLStyle3 *iface, VARIANT *p) static HRESULT WINAPI HTMLStyle3_put_wordWrap(IHTMLStyle3 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE3_THIS(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_WORD_WRAP, v, 0); } static HRESULT WINAPI HTMLStyle3_get_wordWrap(IHTMLStyle3 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE3_THIS(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, p); + + return get_nsstyle_attr(This->nsstyle, STYLEID_WORD_WRAP, p); } static HRESULT WINAPI HTMLStyle3_put_textUnderlinePosition(IHTMLStyle3 *iface, BSTR v) diff --git a/reactos/dll/win32/mshtml/htmlstylesheet.c b/reactos/dll/win32/mshtml/htmlstylesheet.c index dca4214d634..e39bfb761ce 100644 --- a/reactos/dll/win32/mshtml/htmlstylesheet.c +++ b/reactos/dll/win32/mshtml/htmlstylesheet.c @@ -48,13 +48,13 @@ struct HTMLStyleSheetsCollection { nsIDOMStyleSheetList *nslist; }; -typedef struct { +struct HTMLStyleSheetRulesCollection { const IHTMLStyleSheetRulesCollectionVtbl *lpHTMLStyleSheetRulesCollectionVtbl; LONG ref; nsIDOMCSSRuleList *nslist; -} HTMLStyleSheetRulesCollection; +}; #define HTMLSTYLESHEET(x) ((IHTMLStyleSheet*) &(x)->lpHTMLStyleSheetVtbl) #define HTMLSTYLESHEETSCOL(x) ((IHTMLStyleSheetsCollection*) &(x)->lpHTMLStyleSheetsCollectionVtbl) diff --git a/reactos/dll/win32/mshtml/install.c b/reactos/dll/win32/mshtml/install.c index 7bfe0f6201c..58ac724a2e7 100644 --- a/reactos/dll/win32/mshtml/install.c +++ b/reactos/dll/win32/mshtml/install.c @@ -47,7 +47,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(mshtml); -#define GECKO_FILE_NAME "wine_gecko-" GECKO_VERSION ".cab" +#define GECKO_FILE_NAME "wine_gecko-" GECKO_VERSION "-x86.cab" static const WCHAR mshtml_keyW[] = {'S','o','f','t','w','a','r','e', @@ -146,7 +146,7 @@ static BOOL install_cab(LPCWSTR file_name) TRACE("(%s)\n", debugstr_w(file_name)); - GetWindowsDirectoryA(install_dir, sizeof(install_dir)); + GetSystemDirectoryA(install_dir, sizeof(install_dir)); strcat(install_dir, "\\gecko\\"); res = CreateDirectoryA(install_dir, NULL); if(!res && GetLastError() != ERROR_ALREADY_EXISTS) { @@ -430,7 +430,7 @@ static LPWSTR get_url(void) static const WCHAR wszGeckoUrl[] = {'G','e','c','k','o','U','r','l',0}; static const WCHAR httpW[] = {'h','t','t','p'}; - static const WCHAR v_formatW[] = {'?','v','=',0}; + static const WCHAR v_formatW[] = {'?','a','r','c','h','=','x','8','6','&','v','=',0}; /* @@ Wine registry key: HKCU\Software\Wine\MSHTML */ res = RegOpenKeyW(HKEY_CURRENT_USER, mshtml_keyW, &hkey); diff --git a/reactos/dll/win32/mshtml/main.c b/reactos/dll/win32/mshtml/main.c index b1c8756ee99..548c50ca966 100644 --- a/reactos/dll/win32/mshtml/main.c +++ b/reactos/dll/win32/mshtml/main.c @@ -44,7 +44,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(mshtml); HINSTANCE hInst; -DWORD mshtml_tls = 0; +DWORD mshtml_tls = TLS_OUT_OF_INDEXES; static HINSTANCE shdoclc = NULL; @@ -69,7 +69,7 @@ static void process_detach(void) if(shdoclc) FreeLibrary(shdoclc); - if(mshtml_tls) + if(mshtml_tls != TLS_OUT_OF_INDEXES) TlsFree(mshtml_tls); } @@ -284,7 +284,6 @@ DEFINE_GUID(CLSID_HTMLPluginDocument, 0x25336921, 0x03F9, 0x11CF, 0x8F,0xD0, 0x0 DEFINE_GUID(CLSID_HTMLPopup, 0x3050F667, 0x98B5, 0x11CF, 0xBB,0x82, 0x00,0xAA,0x00,0xBD,0xCE,0x0B); DEFINE_GUID(CLSID_HTMLPopupDoc, 0x3050F67D, 0x98B5, 0x11CF, 0xBB,0x82, 0x00,0xAA,0x00,0xBD,0xCE,0x0B); DEFINE_GUID(CLSID_HTMLServerDoc, 0x3050F4E7, 0x98B5, 0x11CF, 0xBB,0x82, 0x00,0xAA,0x00,0xBD,0xCE,0x0B); -DEFINE_GUID(CLSID_HTMLWindowProxy, 0x3050F391, 0x98B5, 0x11CF, 0xBB,0x82, 0x00,0xAA,0x00,0xBD,0xCE,0x0B); DEFINE_GUID(CLSID_IImageDecodeFilter, 0x607FD4E8, 0x0A03, 0x11D1, 0xAB,0x1D, 0x00,0xC0,0x4F,0xC9,0xB3,0x04); DEFINE_GUID(CLSID_IImgCtx, 0x3050F3D6, 0x98B5, 0x11CF, 0xBB,0x82, 0x00,0xAA,0x00,0xBD,0xCE,0x0B); DEFINE_GUID(CLSID_IntDitherer, 0x05F6FE1A, 0xECEF, 0x11D0, 0xAA,0xE7, 0x00,0xC0,0x4F,0xC9,0xB3,0x04); @@ -434,6 +433,8 @@ const char *debugstr_variant(const VARIANT *v) return wine_dbg_sprintf("{VT_DISPATCH: %p}", V_DISPATCH(v)); case VT_BOOL: return wine_dbg_sprintf("{VT_BOOL: %x}", V_BOOL(v)); + case VT_UINT: + return wine_dbg_sprintf("{VT_UINT: %u}", V_UINT(v)); default: return wine_dbg_sprintf("{vt %d}", V_VT(v)); } diff --git a/reactos/dll/win32/mshtml/mshtml_private.h b/reactos/dll/win32/mshtml/mshtml_private.h index ebb63bbd39c..6ab70f2df21 100644 --- a/reactos/dll/win32/mshtml/mshtml_private.h +++ b/reactos/dll/win32/mshtml/mshtml_private.h @@ -74,6 +74,8 @@ typedef enum { DispHTMLIFrame_tid, DispHTMLImg_tid, DispHTMLInputElement_tid, + DispHTMLLocation_tid, + DispHTMLNavigator_tid, DispHTMLOptionElement_tid, DispHTMLSelectElement_tid, DispHTMLStyle_tid, diff --git a/reactos/dll/win32/mshtml/mutation.c b/reactos/dll/win32/mshtml/mutation.c index ab9649ca6c1..6060a8dca94 100644 --- a/reactos/dll/win32/mshtml/mutation.c +++ b/reactos/dll/win32/mshtml/mutation.c @@ -412,6 +412,11 @@ static void NSAPI nsDocumentObserver_CharacterDataChanged(nsIDocumentObserver *i { } +static void NSAPI nsDocumentObserver_AttributeWillChange(nsIDocumentObserver *iface, nsIDocument *aDocument, + nsIContent *aContent, PRInt32 aNameSpaceID, nsIAtom *aAttribute, PRInt32 aModType) +{ +} + static void NSAPI nsDocumentObserver_AttributeChanged(nsIDocumentObserver *iface, nsIDocument *aDocument, nsIContent *aContent, PRInt32 aNameSpaceID, nsIAtom *aAttribute, PRInt32 aModType, PRUint32 aStateMask) { @@ -563,6 +568,7 @@ static const nsIDocumentObserverVtbl nsDocumentObserverVtbl = { nsDocumentObserver_Release, nsDocumentObserver_CharacterDataWillChange, nsDocumentObserver_CharacterDataChanged, + nsDocumentObserver_AttributeWillChange, nsDocumentObserver_AttributeChanged, nsDocumentObserver_ContentAppended, nsDocumentObserver_ContentInserted, diff --git a/reactos/dll/win32/mshtml/navigate.c b/reactos/dll/win32/mshtml/navigate.c index 6e41699b280..f882e6c0290 100644 --- a/reactos/dll/win32/mshtml/navigate.c +++ b/reactos/dll/win32/mshtml/navigate.c @@ -152,18 +152,21 @@ static nsresult NSAPI nsInputStream_Read(nsIInputStream *iface, char *aBuf, PRUi PRUint32 *_retval) { nsProtocolStream *This = NSINSTREAM_THIS(iface); + DWORD read = aCount; TRACE("(%p)->(%p %d %p)\n", This, aBuf, aCount, _retval); - /* Gecko always calls Read with big enough buffer */ - if(aCount < This->buf_size) - FIXME("aCount < This->buf_size\n"); + if(read > This->buf_size) + read = This->buf_size; - *_retval = This->buf_size; - if(This->buf_size) - memcpy(aBuf, This->buf, This->buf_size); - This->buf_size = 0; + if(read) { + memcpy(aBuf, This->buf, read); + if(read < This->buf_size) + memmove(This->buf, This->buf+read, This->buf_size-read); + This->buf_size -= read; + } + *_retval = read; return NS_OK; } diff --git a/reactos/dll/win32/mshtml/nsembed.c b/reactos/dll/win32/mshtml/nsembed.c index 16ac21ebbd5..0464e0597b0 100644 --- a/reactos/dll/win32/mshtml/nsembed.c +++ b/reactos/dll/win32/mshtml/nsembed.c @@ -448,10 +448,6 @@ static BOOL init_xpcom(const PRUnichar *gre_path) if(NS_FAILED(nsres)) ERR("AutoRegister(NULL) failed: %08x\n", nsres); - nsres = nsIComponentRegistrar_AutoRegister(registrar, gre_dir); - if(NS_FAILED(nsres)) - ERR("AutoRegister(gre_dir) failed: %08x\n", nsres); - init_nsio(pCompMgr, registrar); }else { ERR("NS_GetComponentRegistrar failed: %08x\n", nsres); @@ -515,7 +511,7 @@ BOOL load_gecko(BOOL silent) || (install_wine_gecko(silent) && load_wine_gecko(gre_path))) ret = init_xpcom(gre_path); else - MESSAGE("Could not load Mozilla. HTML rendering will be disabled.\n"); + MESSAGE("Could not load wine-gecko. HTML rendering will be disabled.\n"); }else { ret = pCompMgr != NULL; } @@ -883,8 +879,8 @@ void close_gecko(void) if(nsmem) nsIMemory_Release(nsmem); - if(hXPCOM) - FreeLibrary(hXPCOM); + /* Gecko doesn't really support being unloaded */ + /* if (hXPCOM) FreeLibrary(hXPCOM); */ } /********************************************************** diff --git a/reactos/dll/win32/mshtml/nsiface.idl b/reactos/dll/win32/mshtml/nsiface.idl index 894bb41e0ed..24c6214ffc2 100644 --- a/reactos/dll/win32/mshtml/nsiface.idl +++ b/reactos/dll/win32/mshtml/nsiface.idl @@ -23,7 +23,7 @@ * compatible with XPCOM, usable in C code. */ -cpp_quote("#define GECKO_VERSION \"0.9.1\"") +cpp_quote("#define GECKO_VERSION \"1.0.0\"") cpp_quote("#define GECKO_VERSION_STRING \"Wine Gecko \" GECKO_VERSION") import "wtypes.idl"; @@ -855,7 +855,7 @@ interface nsIDOMDocument : nsIDOMNode [ object, - uuid(533a8131-8d0c-4ebf-990b-7fad7cd51466), + uuid(09a439ad-4079-46d5-a050-4d7015d1a108), local /* NOT_FROZEN */ ] @@ -868,9 +868,9 @@ interface nsIDOMNSDocument : nsISupports nsresult GetTitle(nsAString *aTitle); nsresult SetTitle(const nsAString *aTitle); nsresult GetContentType(nsAString *aContentType); + nsresult GetReadyState(nsAString *aReadyState); nsresult GetLastModified(nsAString *aLastModified); nsresult GetReferrer(nsAString *aReferrer); - nsresult GetBoxObjectFor(nsIDOMElement *elt, nsIBoxObject **_retval); nsresult HasFocus(PRBool *_retval); nsresult GetActiveElement(nsIDOMElement **aActiveElement); nsresult GetElementsByClassName(const nsAString *classes, nsIDOMNodeList **_retval); @@ -1546,13 +1546,13 @@ interface nsIWebNavigation : nsISupports [ object, - uuid(5af07661-6477-4235-8814-4a45215855b8), + uuid(343700dd-078b-42b6-a809-b9c1d7e951d0), local /* NOT_FROZEN */ ] interface nsIPrintSettings : nsISupports { - typedef struct { char dummy; } nsMargin; + typedef struct { char dummy; } nsIntMargin; nsresult SetPrintOptions(PRInt32 aType, PRBool aTurnOnOff); nsresult GetPrintOptions(PRInt32 aType, PRBool *_retval); @@ -1672,13 +1672,13 @@ interface nsIPrintSettings : nsISupports nsresult SetIsInitializedFromPrinter(PRBool aIsInitializedFromPrinter); nsresult GetIsInitializedFromPrefs(PRBool *aIsInitializedFromPrefs); nsresult SetIsInitializedFromPrefs(PRBool aIsInitializedFromPrefs); - nsresult SetMarginInTwips(nsMargin *aMargin); - nsresult SetEdgeInTwips(nsMargin *aEdge); - nsresult GetMarginInTwips(nsMargin *aMargin); - nsresult GetEdgeInTwips(nsMargin *aEdge); + nsresult SetMarginInTwips(nsIntMargin *aMargin); + nsresult SetEdgeInTwips(nsIntMargin *aEdge); + nsresult GetMarginInTwips(nsIntMargin *aMargin); + nsresult GetEdgeInTwips(nsIntMargin *aEdge); nsresult SetupSilentPrinting(); - nsresult SetUnwriteableMarginInTwips(nsMargin *aEdge); - nsresult GetUnwriteableMarginInTwips(nsMargin *aEdge); + nsresult SetUnwriteableMarginInTwips(nsIntMargin *aEdge); + nsresult GetUnwriteableMarginInTwips(nsIntMargin *aEdge); } [ @@ -1872,7 +1872,7 @@ interface nsIIOService : nsISupports [ object, - uuid(57322c6f-f4ec-4e46-8253-b74be220de16), + uuid(a50d5516-5c0a-4f08-b427-703ca0c44ac3), local, /* NOT_FROZEN */ ] @@ -2485,7 +2485,7 @@ interface nsIHTMLEditor : nsISupports [ object, - uuid(32e68316-67d4-44a5-8d35-0d390fa9df11), + uuid(365d600b-868a-452a-8de8-f46fad8fee53), local /* NOT_FROZEN */ ] @@ -2495,6 +2495,8 @@ interface nsIMutationObserver : nsISupports void /*CharacterDataChangeInfo*/ *aInfo); void CharacterDataChanged(nsIDocument *aDocument, nsIContent *aContent, void /*CharacterDataChangeInfo*/ *aInfo); + void AttributeWillChange(nsIDocument *aDocument, nsIContent * aContent, PRInt32 aNameSpaceID, + nsIAtom *aAttribute, PRInt32 aModType); void AttributeChanged(nsIDocument *aDocument, nsIContent *aContent, PRInt32 aNameSpaceID, nsIAtom *aAttribute, PRInt32 aModType, PRUint32 aStateMask); void ContentAppended(nsIDocument *aDocument, nsIContent *aContainer, PRInt32 aNewIndexInContainer); @@ -2531,7 +2533,7 @@ interface nsIDocumentObserver : nsIMutationObserver void StyleRuleAdded(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, nsIStyleRule *aStyleRule); void StyleRuleRemoved(nsIDocument *aDocument, nsIStyleSheet *aStyleSheet, nsIStyleRule *aStyleRule); void BindToDocument(nsIDocument *aDocument, nsIContent *aContent); - void DoneAddingContent(nsIContent *aContent, PRBool aHaveNotified); + void DoneAddingChildren(nsIContent *aContent, PRBool aHaveNotified); } /* diff --git a/reactos/dll/win32/mshtml/olecmd.c b/reactos/dll/win32/mshtml/olecmd.c index a122e0cb089..a8d3e6a95e9 100644 --- a/reactos/dll/win32/mshtml/olecmd.c +++ b/reactos/dll/win32/mshtml/olecmd.c @@ -583,9 +583,6 @@ static HRESULT exec_editmode(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in, debugstr_w(hostinfo.pchHostCss), debugstr_w(hostinfo.pchHostNS)); } - if(This->nscontainer) - set_ns_editmode(This->nscontainer); - update_doc(This, UPDATE_UI); if(This->mon) { @@ -610,12 +607,17 @@ static HRESULT exec_editmode(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in, return hres; if(This->ui_active) { - RECT rcBorderWidths; - if(This->ip_window) call_set_active_object(This->ip_window, NULL); if(This->hostui) IDocHostUIHandler_HideUI(This->hostui); + } + + if(This->nscontainer) + set_ns_editmode(This->nscontainer); + + if(This->ui_active) { + RECT rcBorderWidths; if(This->hostui) IDocHostUIHandler_ShowUI(This->hostui, DOCHOSTUITYPE_AUTHOR, ACTOBJ(This), CMDTARGET(This), diff --git a/reactos/dll/win32/mshtml/omnavigator.c b/reactos/dll/win32/mshtml/omnavigator.c index a3eed8bce3b..e86537f946d 100644 --- a/reactos/dll/win32/mshtml/omnavigator.c +++ b/reactos/dll/win32/mshtml/omnavigator.c @@ -329,7 +329,7 @@ static const tid_t OmNavigator_iface_tids[] = { }; static dispex_static_data_t OmNavigator_dispex = { NULL, - IOmNavigator_tid, + DispHTMLNavigator_tid, NULL, OmNavigator_iface_tids }; diff --git a/reactos/dll/win32/mshtml/resource.h b/reactos/dll/win32/mshtml/resource.h index f40938054e3..1e926378b10 100644 --- a/reactos/dll/win32/mshtml/resource.h +++ b/reactos/dll/win32/mshtml/resource.h @@ -16,6 +16,10 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include +#include +#include + #define IDS_HTMLDISABLED 7500 #define IDS_HTMLDOCUMENT 7501 #define IDS_DOWNLOADING 7502 diff --git a/reactos/dll/win32/mshtml/rsrc.rc b/reactos/dll/win32/mshtml/rsrc.rc index 8be957f7156..5e669de70ef 100644 --- a/reactos/dll/win32/mshtml/rsrc.rc +++ b/reactos/dll/win32/mshtml/rsrc.rc @@ -16,13 +16,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "windef.h" -#include "winuser.h" -#include "commctrl.h" -#include "mshtmcid.h" - -#include "resource.h" - #define WINE_OLESELFREGISTER #define WINE_FILEDESCRIPTION_STR "Wine HTML Viewer" #define WINE_FILENAME_STR "mshtml.dll" @@ -33,30 +26,6 @@ #include "wine/wine_common_ver.rc" -#include "Bg.rc" -#include "Da.rc" -#include "De.rc" -#include "En.rc" -#include "Es.rc" -#include "Fi.rc" -#include "Fr.rc" -#include "Hu.rc" -#include "Ja.rc" -#include "Ko.rc" -#include "Lt.rc" -#include "Nl.rc" -#include "No.rc" -#include "Pl.rc" -#include "Pt.rc" -#include "Ro.rc" -#include "Ru.rc" -#include "Si.rc" -#include "Sv.rc" -#include "Tr.rc" -#include "Zh.rc" - -LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL - /* @makedep: mshtml.inf */ REGINST REGINST mshtml.inf diff --git a/reactos/dll/win32/mshtml/task.c b/reactos/dll/win32/mshtml/task.c index ffef5434ab0..496b96f6bd4 100644 --- a/reactos/dll/win32/mshtml/task.c +++ b/reactos/dll/win32/mshtml/task.c @@ -478,11 +478,19 @@ thread_data_t *get_thread_data(BOOL create) { thread_data_t *thread_data; - if(!mshtml_tls) { - if(create) - mshtml_tls = TlsAlloc(); - else + if(mshtml_tls == TLS_OUT_OF_INDEXES) { + DWORD tls; + + if(!create) return NULL; + + tls = TlsAlloc(); + if(tls == TLS_OUT_OF_INDEXES) + return NULL; + + tls = InterlockedCompareExchange((LONG*)&mshtml_tls, tls, TLS_OUT_OF_INDEXES); + if(tls != mshtml_tls) + TlsFree(tls); } thread_data = TlsGetValue(mshtml_tls); diff --git a/reactos/dll/win32/mshtml/txtrange.c b/reactos/dll/win32/mshtml/txtrange.c index fd00f852ba8..509d9382033 100644 --- a/reactos/dll/win32/mshtml/txtrange.c +++ b/reactos/dll/win32/mshtml/txtrange.c @@ -804,11 +804,11 @@ static WCHAR prev_char(HTMLTxtRange *This, const dompos_t *pos, dompos_t *new_po return 0; } -static long move_next_chars(long cnt, const dompos_t *pos, BOOL col, const dompos_t *bound_pos, +static LONG move_next_chars(LONG cnt, const dompos_t *pos, BOOL col, const dompos_t *bound_pos, BOOL *bounded, dompos_t *new_pos) { dompos_t iter, tmp; - long ret = 0; + LONG ret = 0; WCHAR c; if(bounded) @@ -843,11 +843,11 @@ static long move_next_chars(long cnt, const dompos_t *pos, BOOL col, const dompo return ret; } -static long move_prev_chars(HTMLTxtRange *This, long cnt, const dompos_t *pos, BOOL end, +static LONG move_prev_chars(HTMLTxtRange *This, LONG cnt, const dompos_t *pos, BOOL end, const dompos_t *bound_pos, BOOL *bounded, dompos_t *new_pos) { dompos_t iter, tmp; - long ret = 0; + LONG ret = 0; BOOL prev_eq = FALSE; WCHAR c; @@ -882,7 +882,7 @@ static long move_prev_chars(HTMLTxtRange *This, long cnt, const dompos_t *pos, B return ret; } -static long find_prev_space(HTMLTxtRange *This, const dompos_t *pos, BOOL first_space, dompos_t *ret) +static LONG find_prev_space(HTMLTxtRange *This, const dompos_t *pos, BOOL first_space, dompos_t *ret) { dompos_t iter, tmp; WCHAR c; @@ -946,10 +946,10 @@ static int find_word_end(const dompos_t *pos, dompos_t *ret) return cnt; } -static long move_next_words(long cnt, const dompos_t *pos, dompos_t *new_pos) +static LONG move_next_words(LONG cnt, const dompos_t *pos, dompos_t *new_pos) { dompos_t iter, tmp; - long ret = 0; + LONG ret = 0; WCHAR c; c = get_pos_char(pos); @@ -974,10 +974,10 @@ static long move_next_words(long cnt, const dompos_t *pos, dompos_t *new_pos) return ret; } -static long move_prev_words(HTMLTxtRange *This, long cnt, const dompos_t *pos, dompos_t *new_pos) +static LONG move_prev_words(HTMLTxtRange *This, LONG cnt, const dompos_t *pos, dompos_t *new_pos) { dompos_t iter, tmp; - long ret = 0; + LONG ret = 0; iter = *pos; dompos_addref(&iter); diff --git a/reactos/dll/win32/shdocvw/oleobject.c b/reactos/dll/win32/shdocvw/oleobject.c index aab06d0194c..017e738e1ad 100644 --- a/reactos/dll/win32/shdocvw/oleobject.c +++ b/reactos/dll/win32/shdocvw/oleobject.c @@ -28,6 +28,7 @@ #include "shdocvw.h" #include "htiframe.h" #include "idispids.h" +#include "mshtmdid.h" WINE_DEFAULT_DEBUG_CHANNEL(shdocvw); @@ -723,6 +724,8 @@ static HRESULT WINAPI OleControl_OnAmbientPropertyChange(IOleControl *iface, DIS * BUT the Webbrowser OleControl object doesn't appear to do this. */ return S_OK; + case DISPID_AMBIENT_DLCONTROL: + return S_OK; case DISPID_AMBIENT_OFFLINEIFNOTCONNECTED: return on_offlineconnected_change(This); case DISPID_AMBIENT_SILENT: diff --git a/reactos/dll/win32/shdocvw/shdocvw.inf b/reactos/dll/win32/shdocvw/shdocvw.inf index 51b4d316285..d67443d3d63 100644 --- a/reactos/dll/win32/shdocvw/shdocvw.inf +++ b/reactos/dll/win32/shdocvw/shdocvw.inf @@ -140,9 +140,9 @@ HKLM,"Software\Microsoft\Windows\CurrentVersion\URL\Prefixes","www",,"http://" [Settings.Reg] -HKCU,"Software\Microsoft\Internet Explorer\Main","Start Page",2,"http://www.reactos.org" +HKCU,"Software\Microsoft\Internet Explorer\Main","Start Page",2,"http://www.winehq.org" HKCU,"Software\Microsoft\Internet Explorer\Main","Search Page",2,"http://www.google.com" -HKLM,"Software\Microsoft\Internet Explorer\Main","Default_Page_URL",2,"http://www.reactos.org" +HKLM,"Software\Microsoft\Internet Explorer\Main","Default_Page_URL",2,"http://www.winehq.org" HKLM,"Software\Microsoft\Windows\CurrentVersion\App Paths\iexplore.exe",,,"%16422%\Internet Explorer\iexplore.exe" HKLM,"Software\Microsoft\Windows\CurrentVersion\App Paths\iexplore.exe","Path",,"%16422%\Internet Explorer;" diff --git a/reactos/dll/win32/shdocvw/shdocvw.rc b/reactos/dll/win32/shdocvw/shdocvw.rc index 47718c16722..bb4809b6e08 100644 --- a/reactos/dll/win32/shdocvw/shdocvw.rc +++ b/reactos/dll/win32/shdocvw/shdocvw.rc @@ -16,7 +16,15 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "version.rc" +#define WINE_OLESELFREGISTER +#define WINE_FILEDESCRIPTION_STR "Wine core dll" +#define WINE_FILENAME_STR "shdocvw.dll" +#define WINE_FILEVERSION 6,0,2900,2180 +#define WINE_FILEVERSION_STR "6.0.2900.2180" +#define WINE_PRODUCTVERSION 6,0,2900,2180 +#define WINE_PRODUCTVERSION_STR "6.0.2900.2180" + +#include "wine/wine_common_ver.rc" LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL diff --git a/reactos/dll/win32/shdocvw/shdocvw.spec b/reactos/dll/win32/shdocvw/shdocvw.spec index 2bfcc8f4ddf..aa5ef512b3c 100644 --- a/reactos/dll/win32/shdocvw/shdocvw.spec +++ b/reactos/dll/win32/shdocvw/shdocvw.spec @@ -41,7 +41,7 @@ 152 stub -noname CShellUIHelper_CreateInstance2 153 stub -noname IsURLChild 158 stub -noname SHRestricted2A -159 stub -noname SHRestricted2W +159 stdcall -noname SHRestricted2W(long wstr long) 160 stub -noname SHIsRestricted2W 161 stub @ # CSearchAssistantOC::OnDraw 162 stub -noname CDDEAuto_Navigate diff --git a/reactos/dll/win32/shdocvw/shdocvw_main.c b/reactos/dll/win32/shdocvw/shdocvw_main.c index 110b713d883..9090b7d47f4 100644 --- a/reactos/dll/win32/shdocvw/shdocvw_main.c +++ b/reactos/dll/win32/shdocvw/shdocvw_main.c @@ -406,3 +406,12 @@ HRESULT WINAPI IEParseDisplayNameWithBCW(DWORD codepage, LPCWSTR lpszDisplayName FIXME("stub: 0x%x %s %p %p\n",codepage,debugstr_w(lpszDisplayName),pbc,ppidl); return E_FAIL; } + +/****************************************************************** + * SHRestricted2W (SHDOCVW.159) + */ +DWORD WINAPI SHRestricted2W(DWORD res, LPCWSTR url, DWORD reserved) +{ + FIXME("(%d %s %d) stub\n", res, debugstr_w(url), reserved); + return 0; +} diff --git a/reactos/dll/win32/shdocvw/taskbarlist.c b/reactos/dll/win32/shdocvw/taskbarlist.c index e0e063c5091..028169584f0 100644 --- a/reactos/dll/win32/shdocvw/taskbarlist.c +++ b/reactos/dll/win32/shdocvw/taskbarlist.c @@ -71,6 +71,7 @@ static ULONG STDMETHODCALLTYPE taskbar_list_Release(ITaskbarList *iface) if (!refcount) { HeapFree(GetProcessHeap(), 0, This); + SHDOCVW_UnlockModule(); } return refcount; @@ -130,12 +131,14 @@ static const struct ITaskbarListVtbl taskbar_list_vtbl = HRESULT TaskbarList_Create(IUnknown *outer, REFIID riid, void **taskbar_list) { struct taskbar_list *object; + HRESULT hr; TRACE("outer %p, riid %s, taskbar_list %p\n", outer, debugstr_guid(riid), taskbar_list); if (outer) { WARN("Aggregation not supported\n"); + *taskbar_list = NULL; return CLASS_E_NOAGGREGATION; } @@ -143,15 +146,23 @@ HRESULT TaskbarList_Create(IUnknown *outer, REFIID riid, void **taskbar_list) if (!object) { ERR("Failed to allocate taskbar list object memory\n"); + *taskbar_list = NULL; return E_OUTOFMEMORY; } object->lpVtbl = &taskbar_list_vtbl; - object->refcount = 1; - - *taskbar_list = object; + object->refcount = 0; TRACE("Created ITaskbarList %p\n", object); + hr = ITaskbarList_QueryInterface((ITaskbarList *)object, riid, taskbar_list); + if (FAILED(hr)) + { + HeapFree(GetProcessHeap(), 0, object); + return hr; + } + + SHDOCVW_LockModule(); + return S_OK; } diff --git a/reactos/include/psdk/mshtmdid.h b/reactos/include/psdk/mshtmdid.h index 75a72906bf1..980fbdd4681 100644 --- a/reactos/include/psdk/mshtmdid.h +++ b/reactos/include/psdk/mshtmdid.h @@ -1315,6 +1315,13 @@ #define DISPID_IHTMLDATABINDING_DATASRC DISPID_ELEMENT+22 #define DISPID_IHTMLDATABINDING_DATAFORMATAS DISPID_ELEMENT+23 +/* IHTMLDOMConstructor */ +#define DISPID_IHTMLDOMCONSTRUCTOR_CONSTRUCTOR DISPID_HTMLOBJECT+9 +#define DISPID_IHTMLDOMCONSTRUCTOR_LOOKUPGETTER +#define DISPID_IHTMLDOMCONSTRUCTOR_LOOKUPSETTER +#define DISPID_IHTMLDOMCONSTRUCTOR_DEFINEGETTER +#define DISPID_IHTMLDOMCONSTRUCTOR_DEFINESETTER + /* IHTMLStyle */ #define DISPID_IHTMLSTYLE_PIXELTOP DISPID_STYLE #define DISPID_IHTMLSTYLE_PIXELLEFT (DISPID_STYLE+1) @@ -1499,6 +1506,32 @@ #define DISPID_IHTMLBOOKMARKCOLLECTION__NEWENUM DISPID_NEWENUM #define DISPID_IHTMLBOOKMARKCOLLECTION_ITEM DISPID_VALUE +/* HTMLWindowEvents */ +#define DISPID_HTMLWINDOWEVENTS_ONLOAD DISPID_EVMETH_ONLOAD +#define DISPID_HTMLWINDOWEVENTS_ONUNLOAD DISPID_EVMETH_ONUNLOAD +#define DISPID_HTMLWINDOWEVENTS_ONHELP DISPID_EVMETH_ONHELP +#define DISPID_HTMLWINDOWEVENTS_ONFOCUS DISPID_EVMETH_ONFOCUS +#define DISPID_HTMLWINDOWEVENTS_ONBLUR DISPID_EVMETH_ONBLUR +#define DISPID_HTMLWINDOWEVENTS_ONERROR DISPID_EVMETH_ONERROR +#define DISPID_HTMLWINDOWEVENTS_ONRESIZE DISPID_EVMETH_ONRESIZE +#define DISPID_HTMLWINDOWEVENTS_ONSCROLL DISPID_EVMETH_ONSCROLL +#define DISPID_HTMLWINDOWEVENTS_ONBEFOREUNLOAD DISPID_EVMETH_ONBEFOREUNLOAD +#define DISPID_HTMLWINDOWEVENTS_ONBEFOREPRINT DISPID_EVMETH_ONBEFOREPRINT +#define DISPID_HTMLWINDOWEVENTS_ONAFTERPRINT DISPID_EVMETH_ONAFTERPRINT + +/* HTMLWindowEvents2 */ +#define DISPID_HTMLWINDOWEVENTS2_ONLOAD DISPID_EVMETH_ONLOAD +#define DISPID_HTMLWINDOWEVENTS2_ONUNLOAD DISPID_EVMETH_ONUNLOAD +#define DISPID_HTMLWINDOWEVENTS2_ONHELP DISPID_EVMETH_ONHELP +#define DISPID_HTMLWINDOWEVENTS2_ONFOCUS DISPID_EVMETH_ONFOCUS +#define DISPID_HTMLWINDOWEVENTS2_ONBLUR DISPID_EVMETH_ONBLUR +#define DISPID_HTMLWINDOWEVENTS2_ONERROR DISPID_EVMETH_ONERROR +#define DISPID_HTMLWINDOWEVENTS2_ONRESIZE DISPID_EVMETH_ONRESIZE +#define DISPID_HTMLWINDOWEVENTS2_ONSCROLL DISPID_EVMETH_ONSCROLL +#define DISPID_HTMLWINDOWEVENTS2_ONBEFOREUNLOAD DISPID_EVMETH_ONBEFOREUNLOAD +#define DISPID_HTMLWINDOWEVENTS2_ONBEFOREPRINT DISPID_EVMETH_ONBEFOREPRINT +#define DISPID_HTMLWINDOWEVENTS2_ONAFTERPRINT DISPID_EVMETH_ONAFTERPRINT + /* IHTMLWindow2 */ #define DISPID_IHTMLWINDOW2_HISTORY 2 #define DISPID_IHTMLWINDOW2_CLOSE 3 @@ -1572,6 +1605,9 @@ #define DISPID_IHTMLWINDOW4_CREATEPOPUP 1180 #define DISPID_IHTMLWINDOW4_FRAMEELEMENT 1181 +/* IHTMLWindow5 */ +#define DISPID_IHTMLWINDOW5_XMLHTTPREQUEST 1190 + /* IHTMLImageElementFactory */ #define DISPID_IHTMLIMAGEELEMENTFACTORY_CREATE DISPID_VALUE diff --git a/reactos/include/psdk/mshtml.idl b/reactos/include/psdk/mshtml.idl index 87c36079b60..740c6c5ac4f 100644 --- a/reactos/include/psdk/mshtml.idl +++ b/reactos/include/psdk/mshtml.idl @@ -92,6 +92,26 @@ typedef enum _SELECTION_TYPE { SELECTION_TYPE_Max = 2147483647 } SELECTION_TYPE; +[ + odl, + oleautomation, + dual, + uuid(3051049b-98b5-11cf-bb82-00aa00bdce0b) +] +interface IHTMLDOMConstructor : IDispatch +{ + [propget, id(DISPID_IHTMLDOMCONSTRUCTOR_CONSTRUCTOR), hidden] + HRESULT constructor([retval, out] IDispatch* * p); + + HRESULT LookupGetter([in] BSTR propname, [retval, out] VARIANT* ppDispHandler); + + HRESULT LookupSetter([in] BSTR propname, [retval, out] VARIANT* ppDispHandler); + + HRESULT DefineGetter([in] BSTR propname, [in] VARIANT* pdispHandler); + + HRESULT DefineSetter([in] BSTR propname, [in] VARIANT* pdispHandler); +} + interface IHTMLDocument2; interface IHTMLStyleSheetsCollection; interface IHTMLFrameBase; @@ -5377,6 +5397,41 @@ interface IHTMLStyleSheetRule : IDispatch HRESULT readOnly([retval, out] VARIANT_BOOL *p); } +[ + hidden, + uuid(3050f50e-98b5-11cf-bb82-00aa00bdce0b) +] +dispinterface DispHTMLStyleSheetRule +{ +properties: +methods: + [propput, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)] + void selectorText(BSTR v); + + [propget, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)] + BSTR selectorText(); + + [propget, id(DISPID_IHTMLSTYLESHEETRULE_STYLE), nonbrowsable] + IHTMLRuleStyle* style(); + + [propget, id(DISPID_IHTMLSTYLESHEETRULE_READONLY)] + VARIANT_BOOL readOnly(); + + [propget, id(DISPID_IHTMLDOMCONSTRUCTOR_CONSTRUCTOR), hidden] + IDispatch* constructor(); +} + +[ + noncreatable, + uuid(3050f3ce-98b5-11cf-bb82-00aa00bdce0b) +] +coclass HTMLStyleSheetRule +{ + [default] dispinterface DispHTMLStyleSheetRule; + interface IHTMLStyleSheetRule; + interface IHTMLDOMConstructor; +} + /***************************************************************************** * IHTMLStyleSheetRulesCollection interface */ @@ -5397,6 +5452,35 @@ interface IHTMLStyleSheetRulesCollection : IDispatch [retval, out] IHTMLStyleSheetRule **ppHTMLStyleSheetRule); } +[ + hidden, + uuid(3050f52f-98b5-11cf-bb82-00aa00bdce0b) +] +dispinterface DispHTMLStyleSheetRulesCollection +{ +properties: +methods: + [propget, id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_LENGTH)] + long length(); + + [id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_ITEM)] + IHTMLStyleSheetRule* item([in] long index); + + [propget, id(DISPID_IHTMLDOMCONSTRUCTOR_CONSTRUCTOR), hidden] + IDispatch* constructor(); +} + +[ + noncreatable, + uuid(3050f3cd-98b5-11cf-bb82-00aa00bdce0b) +] +coclass HTMLStyleSheetRulesCollection +{ + [default] dispinterface DispHTMLStyleSheetRulesCollection; + interface IHTMLStyleSheetRulesCollection; + interface IHTMLDOMConstructor; +} + [ odl, oleautomation, @@ -5412,6 +5496,34 @@ interface IHTMLStyleSheetPage : IDispatch HRESULT pseudoClass([retval, out] BSTR *p); } +[ + hidden, + uuid(3050f540-98b5-11cf-bb82-00aa00bdce0b) +] +dispinterface DispHTMLStyleSheetPage +{ +properties: +methods: + [propget, id(DISPID_IHTMLSTYLESHEETPAGE_SELECTOR)] + BSTR selector(); + + [propget, id(DISPID_IHTMLSTYLESHEETPAGE_PSEUDOCLASS)] + BSTR pseudoClass(); + + [propget, id(DISPID_IHTMLDOMCONSTRUCTOR_CONSTRUCTOR), hidden] + IDispatch* constructor(); +} +[ + noncreatable, + uuid(3050f7ef-98b5-11cf-bb82-00aa00bdce0b) +] +coclass HTMLStyleSheetPage +{ + [default] dispinterface DispHTMLStyleSheetPage; + interface IHTMLStyleSheetPage; + interface IHTMLDOMConstructor; +}; + [ odl, oleautomation, @@ -5429,6 +5541,35 @@ interface IHTMLStyleSheetPagesCollection : IDispatch [retval, out] IHTMLStyleSheetPage **ppHTMLStyleSheetPage); } +[ + hidden, + uuid(3050f543-98b5-11cf-bb82-00aa00bdce0b) +] +dispinterface DispHTMLStyleSheetPagesCollection +{ +properties: +methods: + [propget, id(DISPID_IHTMLSTYLESHEETPAGESCOLLECTION_LENGTH)] + long length(); + + [id(DISPID_IHTMLSTYLESHEETPAGESCOLLECTION_ITEM)] + IHTMLStyleSheetPage* item([in] long index); + + [propget, id(DISPID_IHTMLDOMCONSTRUCTOR_CONSTRUCTOR), hidden] + IDispatch* constructor(); +} + +[ + noncreatable, + uuid(3050f7f1-98b5-11cf-bb82-00aa00bdce0b) +] +coclass HTMLStyleSheetPagesCollection +{ + [default] dispinterface DispHTMLStyleSheetPagesCollection; + interface IHTMLStyleSheetPagesCollection; + interface IHTMLDOMConstructor; +} + /***************************************************************************** * IHTMLStyleSheet interface */ @@ -9616,6 +9757,21 @@ interface IHTMLOptionElement : IDispatch HRESULT form([retval, out] IHTMLFormElement **p); } +[ + odl, + oleautomation, + dual, + uuid(3050f820-98b5-11cf-bb82-00aa00bdce0b) +] +interface IHTMLOptionElement3 : IDispatch +{ + [propput, id(DISPID_IHTMLOPTIONELEMENT3_LABEL), displaybind, bindable] + HRESULT label([in] BSTR v); + + [propget, id(DISPID_IHTMLOPTIONELEMENT3_LABEL), displaybind, bindable] + HRESULT label([retval, out] BSTR * p); +} + /***************************************************************************** * IHTMLOptionElementFactory interface */ @@ -10527,6 +10683,27 @@ methods: BSTR label(); } +[ + noncreatable, + uuid(3050f24d-98b5-11cf-bb82-00aa00bdce0b) +] +coclass HTMLOptionElement +{ + [default] dispinterface DispHTMLOptionElement; + [source, default] dispinterface HTMLElementEvents; + [source] dispinterface HTMLElementEvents2; + interface IHTMLElement; + interface IHTMLElement2; + interface IHTMLElement3; + interface IHTMLElement4; + interface IHTMLUniqueName; + interface IHTMLDOMNode; + interface IHTMLDOMNode2; + interface IHTMLDatabinding; + interface IHTMLOptionElement; + interface IHTMLOptionElement3; +} + /***************************************************************************** * IHTMLInputElement interface */ @@ -13017,13 +13194,89 @@ interface IOmNavigator : IDispatch HRESULT userProfile([retval, out] IHTMLOpsProfile **p); } +/***************************************************************************** + * DispHTMLNavigator dispinterface + */ +[ + hidden, + uuid(3050f54c-98b5-11cf-bb82-00aa00bdce0b) +] +dispinterface DispHTMLNavigator +{ +properties: +methods: + [propget, id(DISPID_IOMNAVIGATOR_APPCODENAME)] + BSTR appCodeName(); + + [propget, id(DISPID_IOMNAVIGATOR_APPNAME)] + BSTR appName(); + + [propget, id(DISPID_IOMNAVIGATOR_APPVERSION)] + BSTR appVersion(); + + [propget, id(DISPID_IOMNAVIGATOR_USERAGENT)] + BSTR userAgent(); + + [id(DISPID_IOMNAVIGATOR_JAVAENABLED)] + VARIANT_BOOL javaEnabled(); + + [id(DISPID_IOMNAVIGATOR_TAINTENABLED)] + VARIANT_BOOL taintEnabled(); + + [propget, id(DISPID_IOMNAVIGATOR_MIMETYPES)] + IHTMLMimeTypesCollection *mimeTypes(); + + [propget, id(DISPID_IOMNAVIGATOR_PLUGINS)] + IHTMLPluginsCollection *plugins(); + + [propget, id(DISPID_IOMNAVIGATOR_COOKIEENABLED)] + VARIANT_BOOL cookieEnabled(); + + [propget, id(DISPID_IOMNAVIGATOR_OPSPROFILE)] + IHTMLOpsProfile *opsProfile(); + + [id(DISPID_IOMNAVIGATOR_TOSTRING)] + BSTR toString(); + + [propget, id(DISPID_IOMNAVIGATOR_CPUCLASS)] + BSTR cpuClass(); + + [propget, id(DISPID_IOMNAVIGATOR_SYSTEMLANGUAGE)] + BSTR systemLanguage(); + + [propget, id(DISPID_IOMNAVIGATOR_BROWSERLANGUAGE), hidden] + BSTR browserLanguage(); + + [propget, id(DISPID_IOMNAVIGATOR_USERLANGUAGE)] + BSTR userLanguage(); + + [propget, id(DISPID_IOMNAVIGATOR_PLATFORM)] + BSTR platform(); + + [propget, id(DISPID_IOMNAVIGATOR_APPMINORVERSION)] + BSTR appMinorVersion(); + + [propget, id(DISPID_IOMNAVIGATOR_CONNECTIONSPEED), hidden] + LONG connectionSpeed(); + + [propget, id(DISPID_IOMNAVIGATOR_ONLINE)] + VARIANT_BOOL onLine(); + + [propget, id(DISPID_IOMNAVIGATOR_USERPROFILE)] + IHTMLOpsProfile *userProfile(); + + [propget, id(DISPID_IHTMLDOMCONSTRUCTOR_CONSTRUCTOR), hidden] + IDispatch *constructor(); +} + [ noncreatable, uuid(FECEAAA6-8405-11cf-8BA1-00AA00476DA6) ] coclass HTMLNavigator { - [default] interface IOmNavigator; + [default] dispinterface DispHTMLNavigator; + interface IOmNavigator; } /***************************************************************************** @@ -13098,13 +13351,89 @@ interface IHTMLLocation : IDispatch HRESULT toString([retval, out] BSTR *String); } +/***************************************************************************** + * DispHTMLLocation dispinterface + */ +[ + hidden, + uuid(3050f54e-98b5-11cf-bb82-00aa00bdce0b) +] +dispinterface DispHTMLLocation +{ +properties: +methods: + [propput, id(DISPID_IHTMLLOCATION_HREF)] + void href(BSTR v); + + [propget, id(DISPID_IHTMLLOCATION_HREF)] + BSTR href(); + + [propput, id(DISPID_IHTMLLOCATION_PROTOCOL)] + void protocol(BSTR v); + + [propget, id(DISPID_IHTMLLOCATION_PROTOCOL)] + BSTR protocol(); + + [propput, id(DISPID_IHTMLLOCATION_HOST)] + void host(BSTR v); + + [propget, id(DISPID_IHTMLLOCATION_HOST)] + BSTR host(); + + [propput, id(DISPID_IHTMLLOCATION_HOSTNAME)] + void hostname(BSTR v); + + [propget, id(DISPID_IHTMLLOCATION_HOSTNAME)] + BSTR hostname(); + + [propput, id(DISPID_IHTMLLOCATION_PORT)] + void port(BSTR v); + + [propget, id(DISPID_IHTMLLOCATION_PORT)] + BSTR port(); + + [propput, id(DISPID_IHTMLLOCATION_PATHNAME)] + void pathname(BSTR v); + + [propget, id(DISPID_IHTMLLOCATION_PATHNAME)] + BSTR pathname(); + + [propput, id(DISPID_IHTMLLOCATION_SEARCH)] + void search(BSTR v); + + [propget, id(DISPID_IHTMLLOCATION_SEARCH)] + BSTR search(); + + [propput, id(DISPID_IHTMLLOCATION_HASH)] + void hash(BSTR v); + + [propget, id(DISPID_IHTMLLOCATION_HASH)] + BSTR hash(); + + [id(DISPID_IHTMLLOCATION_RELOAD)] + void reload([in, defaultvalue(0)] VARIANT_BOOL flag); + + [id(DISPID_IHTMLLOCATION_REPLACE)] + void replace([in] BSTR bstr); + + [id(DISPID_IHTMLLOCATION_ASSIGN)] + void assign([in] BSTR bstr); + + [id(DISPID_IHTMLLOCATION_TOSTRING)] + BSTR toString(); + + [propget, id(DISPID_IHTMLDOMCONSTRUCTOR_CONSTRUCTOR), hidden] + IDispatch *constructor(); +} + [ noncreatable, uuid(163BB1E1-6E00-11cf-837A-48DC04C10000) ] coclass HTMLLocation { - [default] interface IHTMLLocation; + [default] dispinterface DispHTMLLocation; + interface IHTMLLocation; } [ @@ -13883,6 +14212,43 @@ interface IHTMLWindow3 : IDispatch [out, retval] IHTMLWindow2 **pDialog); } +/***************************************************************************** + * IHTMLWindow4 interface + */ +[ + odl, + oleautomation, + dual, + uuid(3050f6cf-98b5-11cf-bb82-00aa00bdce0b) +] +interface IHTMLWindow4 : IDispatch +{ + [id(DISPID_IHTMLWINDOW4_CREATEPOPUP)] + HRESULT createPopup([optional, in] VARIANT* varArgIn, + [retval, out] IDispatch** ppPopup); + + [propget, id(DISPID_IHTMLWINDOW4_FRAMEELEMENT)] + HRESULT frameElement([retval, out] IHTMLFrameBase* * p); +}; + +/***************************************************************************** + * IHTMLWindow5 interface + */ +[ + odl, + oleautomation, + dual, + uuid(3051040e-98b5-11cf-bb82-00aa00bdce0b) +] +interface IHTMLWindow5 : IDispatch +{ + [propput, id(DISPID_IHTMLWINDOW5_XMLHTTPREQUEST)] + HRESULT XMLHttpRequest([in] VARIANT v); + + [propget, id(DISPID_IHTMLWINDOW5_XMLHTTPREQUEST)] + HRESULT XMLHttpRequest([retval, out] VARIANT * p); +}; + /***************************************************************************** * DispHTMLWindow2 dispinterface */ @@ -14168,6 +14534,408 @@ methods: IHTMLFrameBase *frameElement(); } +/***************************************************************************** + * DispHTMLWindowProxy dispinterface + */ +[ + hidden, + uuid(3050f55e-98b5-11cf-bb82-00aa00bdce0b) +] +dispinterface DispHTMLWindowProxy +{ +properties: +methods: + [id(DISPID_IHTMLFRAMESCOLLECTION2_ITEM)] + VARIANT item([in] VARIANT* pvarIndex); + + [propget, id(DISPID_IHTMLFRAMESCOLLECTION2_LENGTH)] + LONG length(); + + [propget, id(DISPID_IHTMLWINDOW2_FRAMES)] + IHTMLFramesCollection2* frames(); + + [propput, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)] + void defaultStatus(BSTR v); + + [propget, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)] + BSTR defaultStatus(); + + [propput, id(DISPID_IHTMLWINDOW2_STATUS)] + void status(BSTR v); + + [propget, id(DISPID_IHTMLWINDOW2_STATUS)] + BSTR status(); + + [id(DISPID_IHTMLWINDOW2_CLEARTIMEOUT)] + void clearTimeout([in] LONG timerID); + + [id(DISPID_IHTMLWINDOW2_ALERT)] + void alert([defaultvalue(""), in] BSTR message); + + [id(DISPID_IHTMLWINDOW2_CONFIRM)] + VARIANT_BOOL confirm([defaultvalue(""), in] BSTR message); + + [id(DISPID_IHTMLWINDOW2_PROMPT)] + VARIANT prompt([defaultvalue(""), in] BSTR message, + [defaultvalue("undefined"), in] BSTR defstr); + + [propget, id(DISPID_IHTMLWINDOW2_IMAGE)] + IHTMLImageElementFactory* Image(); + + [propget, id(DISPID_IHTMLWINDOW2_LOCATION)] + IHTMLLocation* location(); + + [propget, id(DISPID_IHTMLWINDOW2_HISTORY)] + IOmHistory* history(); + + [id(DISPID_IHTMLWINDOW2_CLOSE)] + void close(); + + [propput, id(DISPID_IHTMLWINDOW2_OPENER)] + void opener(VARIANT v); + + [propget, id(DISPID_IHTMLWINDOW2_OPENER)] + VARIANT opener(); + + [propget, id(DISPID_IHTMLWINDOW2_NAVIGATOR)] + IOmNavigator* navigator(); + + [propput, id(DISPID_IHTMLWINDOW2_NAME)] + void name(BSTR v); + + [propget, id(DISPID_IHTMLWINDOW2_NAME)] + BSTR name(); + + [propget, id(DISPID_IHTMLWINDOW2_PARENT)] + IHTMLWindow2* parent(); + + [id(DISPID_IHTMLWINDOW2_OPEN)] + IHTMLWindow2* open([defaultvalue(""), in] BSTR url, + [defaultvalue(""), in] BSTR name, + [defaultvalue(""), in] BSTR features, + [defaultvalue(0), in] VARIANT_BOOL replace); + + [propget, id(DISPID_IHTMLWINDOW2_SELF)] + IHTMLWindow2* self(); + + [propget, id(DISPID_IHTMLWINDOW2_TOP)] + IHTMLWindow2* top(); + + [propget, id(DISPID_IHTMLWINDOW2_WINDOW)] + IHTMLWindow2* window(); + + [id(DISPID_IHTMLWINDOW2_NAVIGATE)] + void navigate([in] BSTR url); + + [propput, id(DISPID_IHTMLWINDOW2_ONFOCUS), displaybind, bindable] + void onfocus(VARIANT v); + + [propget, id(DISPID_IHTMLWINDOW2_ONFOCUS), displaybind, bindable] + VARIANT onfocus(); + + [propput, id(DISPID_IHTMLWINDOW2_ONBLUR), displaybind, bindable] + void onblur(VARIANT v); + + [propget, id(DISPID_IHTMLWINDOW2_ONBLUR), displaybind, bindable] + VARIANT onblur(); + + [propput, id(DISPID_IHTMLWINDOW2_ONLOAD), displaybind, bindable] + void onload(VARIANT v); + + [propget, id(DISPID_IHTMLWINDOW2_ONLOAD), displaybind, bindable] + VARIANT onload(); + + [propput, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD), displaybind, bindable] + void onbeforeunload(VARIANT v); + + [propget, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD), displaybind, bindable] + VARIANT onbeforeunload(); + + [propput, id(DISPID_IHTMLWINDOW2_ONUNLOAD), displaybind, bindable] + void onunload(VARIANT v); + + [propget, id(DISPID_IHTMLWINDOW2_ONUNLOAD), displaybind, bindable] + VARIANT onunload(); + + [propput, id(DISPID_IHTMLWINDOW2_ONHELP), displaybind, bindable] + void onhelp(VARIANT v); + + [propget, id(DISPID_IHTMLWINDOW2_ONHELP), displaybind, bindable] + VARIANT onhelp(); + + [propput, id(DISPID_IHTMLWINDOW2_ONERROR), displaybind, bindable] + void onerror(VARIANT v); + + [propget, id(DISPID_IHTMLWINDOW2_ONERROR), displaybind, bindable] + VARIANT onerror(); + + [propput, id(DISPID_IHTMLWINDOW2_ONRESIZE), displaybind, bindable] + void onresize(VARIANT v); + + [propget, id(DISPID_IHTMLWINDOW2_ONRESIZE), displaybind, bindable] + VARIANT onresize(); + + [propput, id(DISPID_IHTMLWINDOW2_ONSCROLL), displaybind, bindable] + void onscroll(VARIANT v); + + [propget, id(DISPID_IHTMLWINDOW2_ONSCROLL), displaybind, bindable] + VARIANT onscroll(); + + [propget, id(DISPID_IHTMLWINDOW2_DOCUMENT), source] + IHTMLDocument2* document(); + + [propget, id(DISPID_IHTMLWINDOW2_EVENT)] + IHTMLEventObj* event(); + + [propget, id(DISPID_IHTMLWINDOW2__NEWENUM), hidden, restricted] + IUnknown* _newEnum(); + + [id(DISPID_IHTMLWINDOW2_SHOWMODALDIALOG)] + VARIANT showModalDialog([in] BSTR dialog, + [optional, in] VARIANT* varArgIn, + [optional, in] VARIANT* varOptions); + + [id(DISPID_IHTMLWINDOW2_SHOWHELP)] + void showHelp([in] BSTR helpURL, + [optional, in] VARIANT helpArg, + [defaultvalue(""), in] BSTR features); + + [propget, id(DISPID_IHTMLWINDOW2_SCREEN)] + IHTMLScreen* screen(); + + [propget, id(DISPID_IHTMLWINDOW2_OPTION)] + IHTMLOptionElementFactory* Option(); + + [id(DISPID_IHTMLWINDOW2_FOCUS)] + void focus(); + + [propget, id(DISPID_IHTMLWINDOW2_CLOSED)] + VARIANT_BOOL closed(); + + [id(DISPID_IHTMLWINDOW2_BLUR)] + void blur(); + + [id(DISPID_IHTMLWINDOW2_SCROLL)] + void scroll([in] LONG x, + [in] LONG y); + + [propget, id(DISPID_IHTMLWINDOW2_CLIENTINFORMATION)] + IOmNavigator* clientInformation(); + + [id(DISPID_IHTMLWINDOW2_CLEARINTERVAL)] + void clearInterval([in] LONG timerID); + + [propput, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)] + void offscreenBuffering(VARIANT v); + + [propget, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)] + VARIANT offscreenBuffering(); + + [id(DISPID_IHTMLWINDOW2_EXECSCRIPT)] + VARIANT execScript([in] BSTR code, + [defaultvalue("JScript"), in] BSTR language); + + [id(DISPID_IHTMLWINDOW2_TOSTRING)] + BSTR toString(); + + [id(DISPID_IHTMLWINDOW2_SCROLLBY)] + void scrollBy([in] LONG x, + [in] LONG y); + + [id(DISPID_IHTMLWINDOW2_SCROLLTO)] + void scrollTo([in] LONG x, + [in] LONG y); + + [id(DISPID_IHTMLWINDOW2_MOVETO)] + void moveTo([in] LONG x, + [in] LONG y); + + [id(DISPID_IHTMLWINDOW2_MOVEBY)] + void moveBy([in] LONG x, + [in] LONG y); + + [id(DISPID_IHTMLWINDOW2_RESIZETO)] + void resizeTo([in] LONG x, + [in] LONG y); + + [id(DISPID_IHTMLWINDOW2_RESIZEBY)] + void resizeBy([in] LONG x, + [in] LONG y); + + [propget, id(DISPID_IHTMLWINDOW2_EXTERNAL)] + IDispatch* external(); + + [propget, id(DISPID_IHTMLWINDOW3_SCREENLEFT)] + LONG screenLeft(); + + [propget, id(DISPID_IHTMLWINDOW3_SCREENTOP)] + LONG screenTop(); + + [id(DISPID_IHTMLWINDOW3_ATTACHEVENT)] + VARIANT_BOOL attachEvent([in] BSTR event, + [in] IDispatch* pDisp); + + [id(DISPID_IHTMLWINDOW3_DETACHEVENT)] + void detachEvent([in] BSTR event, + [in] IDispatch* pDisp); + + [id(DISPID_IHTMLWINDOW3_SETTIMEOUT)] + LONG setTimeout([in] VARIANT* expression, + [in] LONG msec, + [optional, in] VARIANT* language); + + [id(DISPID_IHTMLWINDOW3_SETINTERVAL)] + LONG setInterval([in] VARIANT* expression, + [in] LONG msec, + [optional, in] VARIANT* language); + + [id(DISPID_IHTMLWINDOW3_PRINT)] + void print(); + + [propput, id(DISPID_IHTMLWINDOW3_ONBEFOREPRINT), displaybind, bindable] + void onbeforeprint(VARIANT v); + + [propget, id(DISPID_IHTMLWINDOW3_ONBEFOREPRINT), displaybind, bindable] + VARIANT onbeforeprint(); + + [propput, id(DISPID_IHTMLWINDOW3_ONAFTERPRINT), displaybind, bindable] + void onafterprint(VARIANT v); + + [propget, id(DISPID_IHTMLWINDOW3_ONAFTERPRINT), displaybind, bindable] + VARIANT onafterprint(); + + [propget, id(DISPID_IHTMLWINDOW3_CLIPBOARDDATA)] + IHTMLDataTransfer* clipboardData(); + + [id(DISPID_IHTMLWINDOW3_SHOWMODELESSDIALOG)] + IHTMLWindow2* showModelessDialog([defaultvalue(""), in] BSTR url, + [optional, in] VARIANT* varArgIn, + [optional, in] VARIANT* options); + + [id(DISPID_IHTMLWINDOW4_CREATEPOPUP)] + IDispatch* createPopup([optional, in] VARIANT* varArgIn); + + [propget, id(DISPID_IHTMLWINDOW4_FRAMEELEMENT)] + IHTMLFrameBase* frameElement(); + + [propput, id(DISPID_IHTMLWINDOW5_XMLHTTPREQUEST)] + void XMLHttpRequest(VARIANT v); + + [propget, id(DISPID_IHTMLWINDOW5_XMLHTTPREQUEST)] + VARIANT XMLHttpRequest(); +}; + +/***************************************************************************** + * HTMLWindowEvents interface + */ +[ + hidden, + uuid(96A0A4E0-D062-11cf-94B6-00AA0060275C) +] +dispinterface HTMLWindowEvents +{ +properties: +methods: + [id(DISPID_HTMLWINDOWEVENTS_ONLOAD)] + void onload(); + + [id(DISPID_HTMLWINDOWEVENTS_ONUNLOAD)] + void onunload(); + + [id(DISPID_HTMLWINDOWEVENTS_ONHELP)] + VARIANT_BOOL onhelp(); + + [id(DISPID_HTMLWINDOWEVENTS_ONFOCUS)] + void onfocus(); + + [id(DISPID_HTMLWINDOWEVENTS_ONBLUR)] + void onblur(); + + [id(DISPID_HTMLWINDOWEVENTS_ONERROR)] + void onerror([in] BSTR description, + [in] BSTR url, + [in] LONG line); + + [id(DISPID_HTMLWINDOWEVENTS_ONRESIZE)] + void onresize(); + + [id(DISPID_HTMLWINDOWEVENTS_ONSCROLL)] + void onscroll(); + + [id(DISPID_HTMLWINDOWEVENTS_ONBEFOREUNLOAD)] + void onbeforeunload(); + + [id(DISPID_HTMLWINDOWEVENTS_ONBEFOREPRINT)] + void onbeforeprint(); + + [id(DISPID_HTMLWINDOWEVENTS_ONAFTERPRINT)] + void onafterprint(); +}; + +/***************************************************************************** + * HTMLWindowEvents2 interface + */ +[ + hidden, + uuid(3050f625-98b5-11cf-bb82-00aa00bdce0b) +] +dispinterface HTMLWindowEvents2 +{ +properties: +methods: + [id(DISPID_HTMLWINDOWEVENTS2_ONLOAD)] + void onload([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLWINDOWEVENTS2_ONUNLOAD)] + void onunload([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLWINDOWEVENTS2_ONHELP)] + VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLWINDOWEVENTS2_ONFOCUS)] + void onfocus([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLWINDOWEVENTS2_ONBLUR)] + void onblur([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLWINDOWEVENTS2_ONERROR)] + void onerror([in] BSTR description, + [in] BSTR url, + [in] LONG line); + + [id(DISPID_HTMLWINDOWEVENTS2_ONRESIZE)] + void onresize([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLWINDOWEVENTS2_ONSCROLL)] + void onscroll([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLWINDOWEVENTS2_ONBEFOREUNLOAD)] + void onbeforeunload([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLWINDOWEVENTS2_ONBEFOREPRINT)] + void onbeforeprint([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLWINDOWEVENTS2_ONAFTERPRINT)] + void onafterprint([in] IHTMLEventObj* pEvtObj); +}; + +/***************************************************************************** + * HTMLWindowProxy class + */ +[ + uuid(3050f391-98b5-11cf-bb82-00aa00bdce0b) +] +coclass HTMLWindowProxy +{ + [default] dispinterface DispHTMLWindowProxy; + [source, default] dispinterface HTMLWindowEvents; + [source] dispinterface HTMLWindowEvents2; + interface IHTMLWindow2; + interface IHTMLWindow3; + interface IHTMLWindow4; + interface IHTMLWindow5; +}; + /***************************************************************************** * HTMLDocumentEvents2 interface */