From: Daniel Reimer Date: Mon, 26 Jul 2010 02:26:04 +0000 (+0000) Subject: Finish the Wine sync. These components are not just rc file changes X-Git-Tag: backups/Ash_Shell@48412~1^2~57 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=6170959bce1b3bf6da72b4d0b8e73554f9d1848a Finish the Wine sync. These components are not just rc file changes atl, comctl32, comdlg32, dwmapi, fusion, gdiplus, jscript, mpr, mshtml, msi, msimtf, msxml3, ole32, oleaut32, riched20, shdocvw, shlwapi, urlmon, usp10, version and windowscodecs Seems to build and boot. /me hides svn path=/trunk/; revision=48273 --- diff --git a/reactos/dll/win32/atl/atl_main.c b/reactos/dll/win32/atl/atl_main.c index 696f7ef4c4d..88795c90be7 100644 --- a/reactos/dll/win32/atl/atl_main.c +++ b/reactos/dll/win32/atl/atl_main.c @@ -60,7 +60,7 @@ HRESULT WINAPI AtlModuleInit(_ATL_MODULEW* pM, _ATL_OBJMAP_ENTRYW* p, HINSTANCE INT i; UINT size; - //FIXME("SEMI-STUB (%p %p %p)\n",pM,p,h); + FIXME("SEMI-STUB (%p %p %p)\n",pM,p,h); size = pM->cbSize; switch (size) @@ -259,7 +259,7 @@ HRESULT WINAPI AtlInternalQueryInterface(void* this, const _ATL_INTMAP_ENTRY* pE TRACE("Trying entry %i (%s %i %p)\n",i,debugstr_guid(pEntries[i].piid), pEntries[i].dw, pEntries[i].pFunc); - if (pEntries[i].piid && IsEqualGUID(iid,pEntries[i].piid)) + if (!pEntries[i].piid || IsEqualGUID(iid,pEntries[i].piid)) { TRACE("MATCH\n"); if (pEntries[i].pFunc == (_ATL_CREATORARGFUNC*)1) @@ -267,14 +267,15 @@ HRESULT WINAPI AtlInternalQueryInterface(void* this, const _ATL_INTMAP_ENTRY* pE TRACE("Offset\n"); *ppvObject = ((LPSTR)this+pEntries[i].dw); IUnknown_AddRef((IUnknown*)*ppvObject); - rc = S_OK; + return S_OK; } else { TRACE("Function\n"); rc = pEntries[i].pFunc(this, iid, ppvObject, pEntries[i].dw); + if(rc==S_OK || pEntries[i].piid) + return rc; } - break; } i++; } diff --git a/reactos/dll/win32/comctl32/comctl_Bg.rc b/reactos/dll/win32/comctl32/comctl_Bg.rc index 6c64f9ac0c8..a45bcd16f29 100644 --- a/reactos/dll/win32/comctl32/comctl_Bg.rc +++ b/reactos/dll/win32/comctl32/comctl_Bg.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Ñâîéñòâà íà %s" FONT 8, "MS Shell Dlg" @@ -35,7 +35,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Wizard" FONT 8, "MS Shell Dlg" @@ -51,7 +51,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 407, 125 /* 357 -> 407 ? */ +IDD_TBCUSTOMIZE DIALOG 10, 20, 407, 125 /* 357 -> 407 ? */ STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Ïåðñîíàëèçèðàíå íà ëåíòàòà ñ èíñòðóìåíòè" FONT 8, "MS Shell Dlg" @@ -69,23 +69,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 192,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP /* 182 -> 192 ? */ END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Çàòâîðè" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Äíåñ:" IDM_GOTODAY "Èäè íà äíåñ" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Ðàçäåëèòåë" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "Íèùî" } diff --git a/reactos/dll/win32/comctl32/comctl_Cs.rc b/reactos/dll/win32/comctl32/comctl_Cs.rc index e770e331e5c..d993c713a29 100644 --- a/reactos/dll/win32/comctl32/comctl_Cs.rc +++ b/reactos/dll/win32/comctl32/comctl_Cs.rc @@ -26,7 +26,7 @@ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT /* Czech strings in CP1250 */ -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Vlastnosti %s" FONT 8, "MS Shell Dlg" @@ -39,7 +39,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Prùvodce" FONT 8, "MS Shell Dlg" @@ -55,7 +55,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Nastavení panelu" FONT 8, "MS Shell Dlg" @@ -73,23 +73,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Zavøít" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Dnes:" IDM_GOTODAY "Jdi na dnešek" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Oddìlovaè" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "Žádný" } diff --git a/reactos/dll/win32/comctl32/comctl_Da.rc b/reactos/dll/win32/comctl32/comctl_Da.rc index 07c177cf462..0dc1068f83b 100644 --- a/reactos/dll/win32/comctl32/comctl_Da.rc +++ b/reactos/dll/win32/comctl32/comctl_Da.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_DANISH, SUBLANG_DEFAULT -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Egenskaber for %s" FONT 8, "MS Shell Dlg" @@ -36,7 +36,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Guide" FONT 8, "MS Shell Dlg" @@ -52,7 +52,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Tilpas Værktøjslinje" FONT 8, "MS Shell Dlg" @@ -70,23 +70,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Luk" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Idag:" IDM_GOTODAY "GÃ¥ til i dag" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Separator" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "Ingen" } diff --git a/reactos/dll/win32/comctl32/comctl_De.rc b/reactos/dll/win32/comctl32/comctl_De.rc index 87730c881f9..afb2a844c1e 100644 --- a/reactos/dll/win32/comctl32/comctl_De.rc +++ b/reactos/dll/win32/comctl32/comctl_De.rc @@ -22,28 +22,28 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Schließen" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Heute:" IDM_GOTODAY "Gehe zu Heute" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Trennzeichen" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "Keiner" } -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Eigenschaften für %s" FONT 8, "MS Shell Dlg" @@ -56,7 +56,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Wizard" FONT 8, "MS Shell Dlg" @@ -72,7 +72,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Toolbar einrichten" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/comctl32/comctl_El.rc b/reactos/dll/win32/comctl32/comctl_El.rc index de08357270d..284b3a287c4 100644 --- a/reactos/dll/win32/comctl32/comctl_El.rc +++ b/reactos/dll/win32/comctl32/comctl_El.rc @@ -20,7 +20,7 @@ LANGUAGE LANG_GREEK, SUBLANG_DEFAULT -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Éäéüôçôåò ãéá %s" FONT 8, "MS Shell Dlg" @@ -33,7 +33,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Âïçèüò" FONT 8, "MS Shell Dlg" @@ -49,7 +49,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Ðáñáìåôñïðïßçóç ÌðÜñáò Åñãáëåßùí" FONT 8, "MS Shell Dlg" @@ -67,23 +67,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Êëåßóéìï" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "ÓÞìåñá:" IDM_GOTODAY "ÌåôÜâáóç óôá óçìåñéíÜ" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Äéá÷ùñéóôÞò" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "ÊáíÝíá" } diff --git a/reactos/dll/win32/comctl32/comctl_En.rc b/reactos/dll/win32/comctl32/comctl_En.rc index d8055e98f3f..c7ddc7a15c8 100644 --- a/reactos/dll/win32/comctl32/comctl_En.rc +++ b/reactos/dll/win32/comctl32/comctl_En.rc @@ -20,7 +20,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Properties for %s" FONT 8, "MS Shell Dlg" @@ -33,7 +33,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Wizard" FONT 8, "MS Shell Dlg" @@ -49,7 +49,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Customize Toolbar" FONT 8, "MS Shell Dlg" @@ -67,23 +67,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Close" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Today:" IDM_GOTODAY "Go to today" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Separator" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "None" } diff --git a/reactos/dll/win32/comctl32/comctl_Es.rc b/reactos/dll/win32/comctl32/comctl_Es.rc index ce4621791f0..34e6f6c0a5d 100644 --- a/reactos/dll/win32/comctl32/comctl_Es.rc +++ b/reactos/dll/win32/comctl32/comctl_Es.rc @@ -20,7 +20,7 @@ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Propiedades de %s" FONT 8, "MS Shell Dlg" @@ -33,7 +33,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Ayudante" FONT 8, "MS Shell Dlg" @@ -49,7 +49,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Personalizar barra de herramientas" FONT 8, "MS Shell Dlg" @@ -67,23 +67,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Cerrar" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Hoy:" IDM_GOTODAY "Ir a hoy" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Separador" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "Ninguno" } diff --git a/reactos/dll/win32/comctl32/comctl_Fr.rc b/reactos/dll/win32/comctl32/comctl_Fr.rc index 6c766cf454d..fd8aa10eb49 100644 --- a/reactos/dll/win32/comctl32/comctl_Fr.rc +++ b/reactos/dll/win32/comctl32/comctl_Fr.rc @@ -27,7 +27,7 @@ LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Propriétés pour %s" FONT 8, "MS Shell Dlg" @@ -40,7 +40,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Assistant" FONT 8, "MS Shell Dlg" @@ -56,7 +56,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Personnaliser la barre d'outils" FONT 8, "MS Shell Dlg" @@ -74,23 +74,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Fermer" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Aujourd'hui :" IDM_GOTODAY "Aller à aujourd'hui" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Séparateur" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "Aucun" } diff --git a/reactos/dll/win32/comctl32/comctl_Hu.rc b/reactos/dll/win32/comctl32/comctl_Hu.rc index 2ba1160efc1..87183c4038a 100644 --- a/reactos/dll/win32/comctl32/comctl_Hu.rc +++ b/reactos/dll/win32/comctl32/comctl_Hu.rc @@ -20,7 +20,7 @@ LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Tulajdonságok: %s" FONT 8, "MS Shell Dlg" @@ -33,7 +33,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Varázsló" FONT 8, "MS Shell Dlg" @@ -49,7 +49,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Eszköztár testreszabása" FONT 8, "MS Shell Dlg" @@ -67,23 +67,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Bezárás" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Ma:" IDM_GOTODAY "Ugrás mára" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Elválasztó" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "Nincs" } diff --git a/reactos/dll/win32/comctl32/comctl_It.rc b/reactos/dll/win32/comctl32/comctl_It.rc index 75bd9c19c4c..8253dab38ce 100644 --- a/reactos/dll/win32/comctl32/comctl_It.rc +++ b/reactos/dll/win32/comctl32/comctl_It.rc @@ -21,7 +21,7 @@ LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Proprietà per %s" FONT 8, "MS Shell Dlg" @@ -34,7 +34,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Procedura guidata" FONT 8, "MS Shell Dlg" @@ -50,7 +50,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Personalizza la barra degli strumenti" FONT 8, "MS Shell Dlg" @@ -68,23 +68,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Chiudi" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Oggi:" IDM_GOTODAY "Vai a oggi" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Separatore" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "Nessuno" } diff --git a/reactos/dll/win32/comctl32/comctl_Ja.rc b/reactos/dll/win32/comctl32/comctl_Ja.rc index ce16f5a2f53..156a00f60d0 100644 --- a/reactos/dll/win32/comctl32/comctl_Ja.rc +++ b/reactos/dll/win32/comctl32/comctl_Ja.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "%sのプロパティ" FONT 9, "MS Shell Dlg" @@ -36,7 +36,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "ウィザード" FONT 9, "MS Shell Dlg" @@ -52,7 +52,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ツールバーのカスタマイズ" FONT 9, "MS Shell Dlg" @@ -70,23 +70,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "閉じる" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "今日:" IDM_GOTODAY "今日へ移動" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "区切り" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "なし" } diff --git a/reactos/dll/win32/comctl32/comctl_Ko.rc b/reactos/dll/win32/comctl32/comctl_Ko.rc index 4f9ec0aff25..31c625263bc 100644 --- a/reactos/dll/win32/comctl32/comctl_Ko.rc +++ b/reactos/dll/win32/comctl32/comctl_Ko.rc @@ -21,7 +21,7 @@ LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "%s ¼Ó¼º" FONT 9, "MS Shell Dlg" @@ -34,7 +34,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "¸¶¹ý»ç" FONT 9, "MS Shell Dlg" @@ -50,7 +50,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "µµ±¸¹Ù »ç¿ëÀÚ Á¤ÀÇ" FONT 9, "MS Shell Dlg" @@ -68,23 +68,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "´Ý±â" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "¿À´Ã:" IDM_GOTODAY "¿À´Ã·Î °¡±â" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "ºÐ¸®ÀÚ" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "¾øÀ½" } diff --git a/reactos/dll/win32/comctl32/comctl_Lt.rc b/reactos/dll/win32/comctl32/comctl_Lt.rc index f5f329429cb..b723d223155 100644 --- a/reactos/dll/win32/comctl32/comctl_Lt.rc +++ b/reactos/dll/win32/comctl32/comctl_Lt.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "%s savybės" FONT 8, "MS Shell Dlg" @@ -36,7 +36,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Vediklis" FONT 8, "MS Shell Dlg" @@ -52,7 +52,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Tinkinti mygtukų juostą" FONT 8, "MS Shell Dlg" @@ -70,23 +70,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Užverti" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Å iandien:" IDM_GOTODAY "Eiti į Å¡iandien" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Skirtukas" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "Joks" } diff --git a/reactos/dll/win32/comctl32/comctl_Nl.rc b/reactos/dll/win32/comctl32/comctl_Nl.rc index fe2bf7a9d4a..5e94680a2de 100644 --- a/reactos/dll/win32/comctl32/comctl_Nl.rc +++ b/reactos/dll/win32/comctl32/comctl_Nl.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Eigenschappen van %s" FONT 8, "MS Shell Dlg" @@ -35,7 +35,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Assistent" FONT 8, "MS Shell Dlg" @@ -51,7 +51,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Gereedschappenbalk aanpassen" FONT 8, "MS Shell Dlg" @@ -69,23 +69,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Sluiten" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Vandaag:" IDM_GOTODAY "Ga naar vandaag" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Scheidingsteken" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "Geen" } diff --git a/reactos/dll/win32/comctl32/comctl_No.rc b/reactos/dll/win32/comctl32/comctl_No.rc index 6361f048943..ada1a47c4ca 100644 --- a/reactos/dll/win32/comctl32/comctl_No.rc +++ b/reactos/dll/win32/comctl32/comctl_No.rc @@ -20,7 +20,7 @@ LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Egenskaper for %s" FONT 8, "MS Shell Dlg" @@ -33,7 +33,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Veiviser" FONT 8, "MS Shell Dlg" @@ -49,7 +49,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Tilpass verktøylinje" FONT 8, "MS Shell Dlg" @@ -67,23 +67,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Lukk" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Idag:" IDM_GOTODAY "Gå til idag" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Adskiller" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "Ingen" } diff --git a/reactos/dll/win32/comctl32/comctl_Pl.rc b/reactos/dll/win32/comctl32/comctl_Pl.rc index 12f13a63fa1..f3317e00e27 100644 --- a/reactos/dll/win32/comctl32/comctl_Pl.rc +++ b/reactos/dll/win32/comctl32/comctl_Pl.rc @@ -21,7 +21,7 @@ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "W³aœciwoœci %s" FONT 8, "MS Shell Dlg" @@ -34,7 +34,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Kreator" FONT 8, "MS Shell Dlg" @@ -50,7 +50,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Dostosowywanie paska narzêdzi" FONT 8, "MS Shell Dlg" @@ -68,23 +68,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Zamknij" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Dziœ:" IDM_GOTODAY "IdŸ do dziœ" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Odstêp" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "Brak" } diff --git a/reactos/dll/win32/comctl32/comctl_Pt.rc b/reactos/dll/win32/comctl32/comctl_Pt.rc index 914c4c22439..ca60a59f130 100644 --- a/reactos/dll/win32/comctl32/comctl_Pt.rc +++ b/reactos/dll/win32/comctl32/comctl_Pt.rc @@ -24,7 +24,7 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Propriedades de %s" FONT 8, "MS Shell Dlg" @@ -36,7 +36,7 @@ BEGIN CONTROL "Separador", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP|TCS_MULTILINE,4,4,212,114 END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Assistente" FONT 8, "MS Shell Dlg" @@ -51,7 +51,7 @@ BEGIN LTEXT "", IDC_SUNKEN_LINEHEADER,0,35,290,1,SS_LEFT | SS_SUNKEN | WS_CHILD | WS_VISIBLE END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Personalizar barra de ferramentas" FONT 8, "MS Shell Dlg" @@ -69,23 +69,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Fechar" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Hoje:" IDM_GOTODAY "Ir para hoje" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Separador" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "Nenhum" } diff --git a/reactos/dll/win32/comctl32/comctl_Ro.rc b/reactos/dll/win32/comctl32/comctl_Ro.rc index 497f626ee5b..fd6b1161ec8 100644 --- a/reactos/dll/win32/comctl32/comctl_Ro.rc +++ b/reactos/dll/win32/comctl32/comctl_Ro.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL #pragma code_page(65001) -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Proprietăți pentru %s" FONT 8, "MS Shell Dlg" @@ -36,7 +36,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Expert" FONT 8, "MS Shell Dlg" @@ -52,7 +52,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Personalizare toolbar" FONT 8, "MS Shell Dlg" @@ -70,23 +70,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Închide" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Azi:" IDM_GOTODAY "Mergi la Azi" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Separator" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "Nimic" } diff --git a/reactos/dll/win32/comctl32/comctl_Ru.rc b/reactos/dll/win32/comctl32/comctl_Ru.rc index e09817cf659..ce330609db4 100644 --- a/reactos/dll/win32/comctl32/comctl_Ru.rc +++ b/reactos/dll/win32/comctl32/comctl_Ru.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Свойства для %s" FONT 8, "MS Shell Dlg" @@ -38,7 +38,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Мастер" FONT 8, "MS Shell Dlg" @@ -54,7 +54,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Настройка панели инструментов" FONT 8, "MS Shell Dlg" @@ -72,23 +72,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Закрыть" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Сегодня:" IDM_GOTODAY "Текущая дата" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Разделитель" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "Нет" } diff --git a/reactos/dll/win32/comctl32/comctl_Si.rc b/reactos/dll/win32/comctl32/comctl_Si.rc index cc1053f18f6..9d1b1f22a62 100644 --- a/reactos/dll/win32/comctl32/comctl_Si.rc +++ b/reactos/dll/win32/comctl32/comctl_Si.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Lastnosti %s" FONT 8, "MS Shell Dlg" @@ -35,7 +35,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Čarovnik" FONT 8, "MS Shell Dlg" @@ -51,7 +51,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Prilagoditev orodne vrstice" FONT 8, "MS Shell Dlg" @@ -69,23 +69,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Zapri" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Danes:" IDM_GOTODAY "Pojdi na danes" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Ločilo" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "Brez" } diff --git a/reactos/dll/win32/comctl32/comctl_Sk.rc b/reactos/dll/win32/comctl32/comctl_Sk.rc index c543e376f30..4acd84c5ac5 100644 --- a/reactos/dll/win32/comctl32/comctl_Sk.rc +++ b/reactos/dll/win32/comctl32/comctl_Sk.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "%s - vlastnosti" FONT 8, "MS Shell Dlg" @@ -36,7 +36,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Sprievodca" FONT 8, "MS Shell Dlg" @@ -52,7 +52,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Prispôsobenie panela nástrojov" FONT 8, "MS Shell Dlg" @@ -70,23 +70,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Zavrie" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Dnes:" IDM_GOTODAY "Choï na dnešok" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Odde¾ovaè" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "Žiadne" } diff --git a/reactos/dll/win32/comctl32/comctl_Sr.rc b/reactos/dll/win32/comctl32/comctl_Sr.rc new file mode 100644 index 00000000000..8681ecbe629 --- /dev/null +++ b/reactos/dll/win32/comctl32/comctl_Sr.rc @@ -0,0 +1,162 @@ +/* + * Copyright 2010 Nenad Vujic + * Paul Vriens + * + * 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 "comctl32.h" + +#pragma code_page(65001) + +LANGUAGE LANG_SERBIAN, SUBLANG_SERBIAN_LATIN + +IDD_PROPSHEET DIALOG 0, 0, 220, 140 +STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE +CAPTION "Detalji za %s" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "OK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP + PUSHBUTTON "Otkaži", IDCANCEL,58,122,50,14 + PUSHBUTTON "&Primeni", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED + PUSHBUTTON "Pomoć", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP + CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP|TCS_MULTILINE,4,4,212,114 +END + + +IDD_WIZARD DIALOG 0, 0, 290, 159 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE +CAPTION "Čarobnjak" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "< &Nazad", IDC_BACK_BUTTON,71,138,50,14 + DEFPUSHBUTTON "&Sledeće >", IDC_NEXT_BUTTON,121,138,50,14 + DEFPUSHBUTTON "ZavrÅ¡i", IDC_FINISH_BUTTON,121,138,50,14 + PUSHBUTTON "Otkaži", IDCANCEL,178,138,50,14 + PUSHBUTTON "Pomoć", IDHELP,235,138,50,14,WS_GROUP + LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN + CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5 + LTEXT "", IDC_SUNKEN_LINEHEADER,0,35,290,1,SS_LEFT | SS_SUNKEN | WS_CHILD | WS_VISIBLE +END + + +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Podesi Toolbar" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "&Zatvori", IDCANCEL,308,6,44,14 + PUSHBUTTON "R&esetuj", IDC_RESET_BTN,308,23,44,14 + PUSHBUTTON "&Pomoć", IDC_HELP_BTN,308,40,44,14 + PUSHBUTTON "Pomeri &Gore", IDC_MOVEUP_BTN,308,74,44,14 + PUSHBUTTON "Pomeri &Dole", IDC_MOVEDN_BTN,308,91,44,14 + LTEXT "D&ostupni tasteri:", -1,4,5,84,10 + LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + PUSHBUTTON "&Dodaj ->", IDOK, 131, 42, 44, 14 + PUSHBUTTON "<- &Ukloni", IDC_REMOVE_BTN,131,62,44,14 + LTEXT "&Toolbar tasteri:", -1,182,5,78,10 + LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP +END + +STRINGTABLE +{ + IDS_CLOSE "Zatvori" +} + +STRINGTABLE +{ + IDM_TODAY "Danas:" + IDM_GOTODAY "Idi na danas" +} + +STRINGTABLE +{ + IDS_SEPARATOR "Odvajanje" +} + +STRINGTABLE +{ + HKY_NONE "NiÅ¡ta" +} + +LANGUAGE LANG_SERBIAN, SUBLANG_SERBIAN_CYRILLIC + +IDD_PROPSHEET DIALOG 0, 0, 220, 140 +STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE +CAPTION "Детаљи за %s" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "ОK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP + PUSHBUTTON "Откажи", IDCANCEL,58,122,50,14 + PUSHBUTTON "&Примени", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED + PUSHBUTTON "Помоћ", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP + CONTROL "Таб", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP|TCS_MULTILINE,4,4,212,114 +END + + +IDD_WIZARD DIALOG 0, 0, 290, 159 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE +CAPTION "Чаробњак" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "< &Назад", IDC_BACK_BUTTON,71,138,50,14 + DEFPUSHBUTTON "&Следеће >", IDC_NEXT_BUTTON,121,138,50,14 + DEFPUSHBUTTON "Заврши", IDC_FINISH_BUTTON,121,138,50,14 + PUSHBUTTON "Откажи", IDCANCEL,178,138,50,14 + PUSHBUTTON "Помоћ", IDHELP,235,138,50,14,WS_GROUP + LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN + CONTROL "Таб", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5 + LTEXT "", IDC_SUNKEN_LINEHEADER,0,35,290,1,SS_LEFT | SS_SUNKEN | WS_CHILD | WS_VISIBLE +END + + +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Подеси Тулбар" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "&Затвори", IDCANCEL,308,6,44,14 + PUSHBUTTON "Р&есетуј", IDC_RESET_BTN,308,23,44,14 + PUSHBUTTON "&Помоћ", IDC_HELP_BTN,308,40,44,14 + PUSHBUTTON "Помери &Горе", IDC_MOVEUP_BTN,308,74,44,14 + PUSHBUTTON "Помери &Доле", IDC_MOVEDN_BTN,308,91,44,14 + LTEXT "Д&оступни тастери:", -1,4,5,84,10 + LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + PUSHBUTTON "&Додај ->", IDOK, 131, 42, 44, 14 + PUSHBUTTON "<- &Уклони", IDC_REMOVE_BTN,131,62,44,14 + LTEXT "&Тулбар тастери:", -1,182,5,78,10 + LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP +END + +STRINGTABLE +{ + IDS_CLOSE "Затвори" +} + +STRINGTABLE +{ + IDM_TODAY "Данас:" + IDM_GOTODAY "Иди на данас" +} + +STRINGTABLE +{ + IDS_SEPARATOR "Одвајање" +} + +STRINGTABLE +{ + HKY_NONE "Ништа" +} diff --git a/reactos/dll/win32/comctl32/comctl_Sv.rc b/reactos/dll/win32/comctl32/comctl_Sv.rc index 18bfefc6635..e66b379217d 100644 --- a/reactos/dll/win32/comctl32/comctl_Sv.rc +++ b/reactos/dll/win32/comctl32/comctl_Sv.rc @@ -20,7 +20,7 @@ LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Egenskaper för %s" FONT 8, "MS Shell Dlg" @@ -33,7 +33,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Guide" FONT 8, "MS Shell Dlg" @@ -49,7 +49,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Anpassa verktygsfältet" FONT 8, "MS Shell Dlg" @@ -67,23 +67,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Stäng" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Idag:" IDM_GOTODAY "Gå till idag" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Separator" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "Ingen" } diff --git a/reactos/dll/win32/comctl32/comctl_Th.rc b/reactos/dll/win32/comctl32/comctl_Th.rc index ff1e1fa4feb..915ecf4df8d 100644 --- a/reactos/dll/win32/comctl32/comctl_Th.rc +++ b/reactos/dll/win32/comctl32/comctl_Th.rc @@ -20,7 +20,7 @@ LANGUAGE LANG_THAI, SUBLANG_DEFAULT -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "¤Ø³ÊÁºÑµÔ¢Í§ %s" FONT 8, "MS Shell Dlg" @@ -33,7 +33,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Wizard" FONT 8, "MS Shell Dlg" @@ -49,7 +49,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "»ÃѺáµè§á¶ºà¤Ã×èͧÁ×Í" FONT 8, "MS Shell Dlg" @@ -67,23 +67,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "»Õ´" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Çѹ¹Õé:" IDM_GOTODAY "件֧Çѹ¹Õé" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Separator" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "äÁèÁÕàÅÂ" } diff --git a/reactos/dll/win32/comctl32/comctl_Tr.rc b/reactos/dll/win32/comctl32/comctl_Tr.rc index cdc89ca0533..cda21936f5c 100644 --- a/reactos/dll/win32/comctl32/comctl_Tr.rc +++ b/reactos/dll/win32/comctl32/comctl_Tr.rc @@ -20,7 +20,7 @@ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Özellikler: %s" FONT 8, "MS Shell Dlg" @@ -33,7 +33,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Sihirbaz" FONT 8, "MS Shell Dlg" @@ -49,7 +49,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Araç Çubuðunu Özelleþtir" FONT 8, "MS Shell Dlg" @@ -67,23 +67,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Kapat" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Bugün:" IDM_GOTODAY "Bugüne git" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Ayraç" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "Hiçbiri" } diff --git a/reactos/dll/win32/comctl32/comctl_Uk.rc b/reactos/dll/win32/comctl32/comctl_Uk.rc index 333eb779c91..3aa29f024f8 100644 --- a/reactos/dll/win32/comctl32/comctl_Uk.rc +++ b/reactos/dll/win32/comctl32/comctl_Uk.rc @@ -24,7 +24,7 @@ LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Âëàñòèâîñò³ äëÿ %s" FONT 8, "MS Shell Dlg" @@ -37,7 +37,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "Ìàéñòåð" FONT 8, "MS Shell Dlg" @@ -53,7 +53,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Íàñòðîéêà ïàíåë³ ³íñòðóìåíò³â" FONT 8, "MS Shell Dlg" @@ -71,23 +71,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "Çàêðèòè" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "Ñüîãîäí³:" IDM_GOTODAY "Ïîòî÷íà äàòà" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "Ðîçä³ëüíèê" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "Íåìà" } diff --git a/reactos/dll/win32/comctl32/comctl_Zh.rc b/reactos/dll/win32/comctl32/comctl_Zh.rc index 8919119cae9..63f22e7aa16 100644 --- a/reactos/dll/win32/comctl32/comctl_Zh.rc +++ b/reactos/dll/win32/comctl32/comctl_Zh.rc @@ -26,7 +26,7 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "属性 %s" FONT 9, "MS Shell Dlg" @@ -39,7 +39,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "向导" FONT 9, "MS Shell Dlg" @@ -55,7 +55,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "自定义工具栏" FONT 9, "MS Shell Dlg" @@ -73,30 +73,30 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "关闭" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "今天:" IDM_GOTODAY "转到今天" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "分隔符" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "无" } LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 +IDD_PROPSHEET DIALOG 0, 0, 220, 140 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "屬性 %s" FONT 9, "MS Shell Dlg" @@ -109,7 +109,7 @@ BEGIN END -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 +IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE CAPTION "向導" FONT 9, "MS Shell Dlg" @@ -125,7 +125,7 @@ BEGIN END -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 +IDD_TBCUSTOMIZE DIALOG 10, 20, 357, 125 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "自定義工具欄" FONT 9, "MS Shell Dlg" @@ -143,23 +143,23 @@ BEGIN LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_CLOSE "關閉" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDM_TODAY "今天:" IDM_GOTODAY "轉到今天" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SEPARATOR "分隔符" } -STRINGTABLE DISCARDABLE +STRINGTABLE { HKY_NONE "無" } diff --git a/reactos/dll/win32/comctl32/monthcal.c b/reactos/dll/win32/comctl32/monthcal.c index a9795e09c40..ded407eca10 100644 --- a/reactos/dll/win32/comctl32/monthcal.c +++ b/reactos/dll/win32/comctl32/monthcal.c @@ -6,7 +6,7 @@ * Copyright 1999 Chris Morgan and * James Abbatiello * Copyright 2000 Uwe Bonnes - * Copyright 2009 Nikolay Sivov + * Copyright 2009, 2010 Nikolay Sivov * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -65,7 +65,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(monthcal); #define MC_PREVPRESSED 4 /* Prev month button pressed */ #define MC_NEXTPRESSED 8 /* Next month button pressed */ #define MC_PREVNEXTMONTHDELAY 350 /* when continuously pressing `next/prev - month', wait 500 ms before going + month', wait 350 ms before going to the next/prev month */ #define MC_TODAYUPDATEDELAY 120000 /* time between today check for update (2 min) */ @@ -77,6 +77,19 @@ WINE_DEFAULT_DEBUG_CHANNEL(monthcal); /* convert from days to 100 nanoseconds unit - used as FILETIME unit */ #define DAYSTO100NSECS(days) (((ULONGLONG)(days))*24*60*60*10000000) +/* single calendar data */ +typedef struct _CALENDAR_INFO +{ + RECT title; /* rect for the header above the calendar */ + RECT titlemonth; /* the 'month name' text in the header */ + RECT titleyear; /* the 'year number' text in the header */ + RECT wdays; /* week days at top */ + RECT days; /* calendar area */ + RECT weeknums; /* week numbers at left side */ + + SYSTEMTIME month;/* contains calendar main month/year */ +} CALENDAR_INFO; + typedef struct { HWND hwndSelf; @@ -117,19 +130,16 @@ typedef struct SYSTEMTIME minDate; SYSTEMTIME maxDate; - RECT title; /* rect for the header above the calendar */ RECT titlebtnnext; /* the `next month' button in the header */ RECT titlebtnprev; /* the `prev month' button in the header */ - RECT titlemonth; /* the `month name' txt in the header */ - RECT titleyear; /* the `year number' txt in the header */ - RECT wdays; /* week days at top */ - RECT days; /* calendar area */ - RECT weeknums; /* week numbers at left side */ RECT todayrect; /* `today: xx/xx/xx' text rect */ HWND hwndNotify; /* Window to receive the notifications */ HWND hWndYearEdit; /* Window Handle of edit box to handle years */ HWND hWndYearUpDown;/* Window Handle of updown box to handle years */ WNDPROC EditWndProc; /* original Edit window procedure */ + + CALENDAR_INFO *calendars; + INT cal_num; } MONTHCAL_INFO, *LPMONTHCAL_INFO; static const WCHAR themeClass[] = { 'S','c','r','o','l','l','b','a','r',0 }; @@ -464,13 +474,14 @@ static inline void MONTHCAL_GetPrevMonth(SYSTEMTIME *date) /* Returns full date for a first currently visible day */ static void MONTHCAL_GetMinDate(const MONTHCAL_INFO *infoPtr, SYSTEMTIME *date) { - SYSTEMTIME st_first = infoPtr->curSel; - int firstDay; + /* zero indexed calendar has the earliest date */ + SYSTEMTIME st_first = infoPtr->calendars[0].month; + INT firstDay; st_first.wDay = 1; firstDay = MONTHCAL_CalculateDayOfWeek(&st_first, FALSE); - *date = infoPtr->curSel; + *date = infoPtr->calendars[0].month; MONTHCAL_GetPrevMonth(date); date->wDay = MONTHCAL_MonthLength(date->wMonth, date->wYear) + @@ -486,15 +497,16 @@ static void MONTHCAL_GetMinDate(const MONTHCAL_INFO *infoPtr, SYSTEMTIME *date) /* Returns full date for a last currently visible day */ static void MONTHCAL_GetMaxDate(const MONTHCAL_INFO *infoPtr, SYSTEMTIME *date) { - SYSTEMTIME st; + /* the latest date is in latest calendar */ + SYSTEMTIME st, lt_month = infoPtr->calendars[infoPtr->cal_num-1].month; - *date = infoPtr->curSel; + *date = lt_month; MONTHCAL_GetNextMonth(date); MONTHCAL_GetMinDate(infoPtr, &st); /* Use month length to get max day. 42 means max day count in calendar area */ date->wDay = 42 - (MONTHCAL_MonthLength(st.wMonth, st.wYear) - st.wDay + 1) - - MONTHCAL_MonthLength(infoPtr->curSel.wMonth, infoPtr->curSel.wYear); + MONTHCAL_MonthLength(lt_month.wMonth, lt_month.wYear); /* fix day of week */ MONTHCAL_CalculateDayOfWeek(date, TRUE); @@ -504,7 +516,7 @@ static void MONTHCAL_GetMaxDate(const MONTHCAL_INFO *infoPtr, SYSTEMTIME *date) and day in the calendar. day== 0 mean the last day of tha last month */ static int MONTHCAL_CalcDayFromPos(const MONTHCAL_INFO *infoPtr, int x, int y, - int *daypos,int *weekpos) + int *daypos, int *weekpos) { int retval, firstDay; RECT rcClient; @@ -517,9 +529,8 @@ static int MONTHCAL_CalcDayFromPos(const MONTHCAL_INFO *infoPtr, int x, int y, if (x > rcClient.right) x = rcClient.right; - - *daypos = (x - infoPtr->days.left ) / infoPtr->width_increment; - *weekpos = (y - infoPtr->days.top ) / infoPtr->height_increment; + *daypos = (x - infoPtr->calendars[0].days.left ) / infoPtr->width_increment; + *weekpos = (y - infoPtr->calendars[0].days.top ) / infoPtr->height_increment; st.wDay = 1; firstDay = (MONTHCAL_CalculateDayOfWeek(&st, FALSE) + 6 - infoPtr->firstDay) % 7; @@ -569,9 +580,9 @@ static void MONTHCAL_CalcDayXY(const MONTHCAL_INFO *infoPtr, /* x: column(day), y: row(week) */ static inline void MONTHCAL_CalcDayRect(const MONTHCAL_INFO *infoPtr, RECT *r, int x, int y) { - r->left = infoPtr->days.left + x * infoPtr->width_increment; + r->left = infoPtr->calendars[0].days.left + x * infoPtr->width_increment; r->right = r->left + infoPtr->width_increment; - r->top = infoPtr->days.top + y * infoPtr->height_increment; + r->top = infoPtr->calendars[0].days.top + y * infoPtr->height_increment; r->bottom = r->top + infoPtr->textHeight; } @@ -735,23 +746,19 @@ static void MONTHCAL_PaintButton(MONTHCAL_INFO *infoPtr, HDC hdc, BOOL btnNext) } } /* paint a title with buttons and month/year string */ -static void MONTHCAL_PaintTitle(MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps) +static void MONTHCAL_PaintTitle(MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps, INT calIdx) { static const WCHAR fmt_monthW[] = { '%','s',' ','%','l','d',0 }; + RECT *title = &infoPtr->calendars[calIdx].title; WCHAR buf_month[80], buf_fmt[80]; HBRUSH hbr; - RECT *title = &infoPtr->title; SIZE sz; /* fill header box */ - hbr = CreateSolidBrush(infoPtr->titlebk); + hbr = CreateSolidBrush(infoPtr->titlebk); FillRect(hdc, title, hbr); DeleteObject(hbr); - /* navigation buttons */ - MONTHCAL_PaintButton(infoPtr, hdc, FALSE); - MONTHCAL_PaintButton(infoPtr, hdc, TRUE); - /* month/year string */ SetBkColor(hdc, infoPtr->titlebk); SetTextColor(hdc, infoPtr->titletxt); @@ -766,15 +773,15 @@ static void MONTHCAL_PaintTitle(MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRU /* update title rectangles with current month - used while testing hits */ GetTextExtentPoint32W(hdc, buf_fmt, strlenW(buf_fmt), &sz); - infoPtr->titlemonth.left = title->right / 2 + title->left / 2 - sz.cx / 2; - infoPtr->titleyear.right = title->right / 2 + title->left / 2 + sz.cx / 2; + infoPtr->calendars[calIdx].titlemonth.left = title->right / 2 + title->left / 2 - sz.cx / 2; + infoPtr->calendars[calIdx].titleyear.right = title->right / 2 + title->left / 2 + sz.cx / 2; GetTextExtentPoint32W(hdc, buf_month, strlenW(buf_month), &sz); - infoPtr->titlemonth.right = infoPtr->titlemonth.left + sz.cx; - infoPtr->titleyear.left = infoPtr->titlemonth.right; + infoPtr->calendars[calIdx].titlemonth.right = infoPtr->calendars[calIdx].titlemonth.left + sz.cx; + infoPtr->calendars[calIdx].titleyear.left = infoPtr->calendars[calIdx].titlemonth.right; } -static void MONTHCAL_PaintWeeknumbers(MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps) +static void MONTHCAL_PaintWeeknumbers(const MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps, INT calIdx) { static const WCHAR fmt_weekW[] = { '%','d',0 }; INT mindays, weeknum, weeknum1, startofprescal; @@ -849,7 +856,7 @@ static void MONTHCAL_PaintWeeknumbers(MONTHCAL_INFO *infoPtr, HDC hdc, const PAI if ((infoPtr->firstDay - weeknum1) % 7 > mindays) weeknum++; } - r = infoPtr->weeknums; + r = infoPtr->calendars[calIdx].weeknums; r.bottom = r.top + infoPtr->height_increment; for(i = 0; i < 6; i++) { @@ -870,43 +877,100 @@ static void MONTHCAL_PaintWeeknumbers(MONTHCAL_INFO *infoPtr, HDC hdc, const PAI } /* line separator for week numbers column */ - MoveToEx(hdc, infoPtr->weeknums.right, infoPtr->weeknums.top + 3 , NULL); - LineTo(hdc, infoPtr->weeknums.right, infoPtr->weeknums.bottom); + MoveToEx(hdc, infoPtr->calendars[calIdx].weeknums.right, infoPtr->calendars[calIdx].weeknums.top + 3 , NULL); + LineTo(hdc, infoPtr->calendars[calIdx].weeknums.right, infoPtr->calendars[calIdx].weeknums.bottom); +} + +/* bottom today date */ +static void MONTHCAL_PaintTodayTitle(const MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps) +{ + if(!(infoPtr->dwStyle & MCS_NOTODAY)) { + static const WCHAR todayW[] = { 'T','o','d','a','y',':',0 }; + static const WCHAR fmt_todayW[] = { '%','s',' ','%','s',0 }; + WCHAR buf_todayW[30], buf_dateW[20], buf[80]; + RECT rtoday; + + if(!(infoPtr->dwStyle & MCS_NOTODAYCIRCLE)) { + SYSTEMTIME fake_st; + + MONTHCAL_GetMaxDate(infoPtr, &fake_st); + /* this is always safe cause next month will never fully fit calendar */ + fake_st.wDay += 1; + MONTHCAL_CircleDay(infoPtr, hdc, &fake_st); + } + if (!LoadStringW(COMCTL32_hModule, IDM_TODAY, buf_todayW, countof(buf_todayW))) + { + WARN("Can't load resource\n"); + strcpyW(buf_todayW, todayW); + } + MONTHCAL_CalcDayRect(infoPtr, &rtoday, 1, 6); + GetDateFormatW(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &infoPtr->todaysDate, NULL, + buf_dateW, countof(buf_dateW)); + SelectObject(hdc, infoPtr->hBoldFont); + + wsprintfW(buf, fmt_todayW, buf_todayW, buf_dateW); + DrawTextW(hdc, buf, -1, &rtoday, DT_CALCRECT | DT_LEFT | DT_VCENTER | DT_SINGLELINE); + DrawTextW(hdc, buf, -1, &rtoday, DT_LEFT | DT_VCENTER | DT_SINGLELINE); + + SelectObject(hdc, infoPtr->hFont); + } +} + +/* today mark + focus */ +static void MONTHCAL_PaintFocusAndCircle(const MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps) +{ + if((infoPtr->curSel.wMonth == infoPtr->todaysDate.wMonth) && + (infoPtr->curSel.wYear == infoPtr->todaysDate.wYear) && + !(infoPtr->dwStyle & MCS_NOTODAYCIRCLE)) + { + MONTHCAL_CircleDay(infoPtr, hdc, &infoPtr->todaysDate); + } + + if(!MONTHCAL_IsDateEqual(&infoPtr->focusedSel, &st_null)) + { + RECT r; + MONTHCAL_CalcPosFromDay(infoPtr, &infoPtr->focusedSel, &r); + DrawFocusRect(hdc, &r); + } } /* paint a calendar area */ -static void MONTHCAL_PaintCalendar(MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps) +static void MONTHCAL_PaintCalendar(const MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps, INT calIdx) { INT prev_month, i, j; WCHAR buf[80]; HBRUSH hbr; - RECT r; + RECT r, fill_bk_rect; int mask; SYSTEMTIME st; - UnionRect(&r, &infoPtr->wdays, &infoPtr->todayrect); + /* fill whole days area - from week days area to today note rectangle */ + fill_bk_rect = infoPtr->calendars[calIdx].wdays; + fill_bk_rect.bottom = infoPtr->calendars[calIdx].days.bottom + + (infoPtr->todayrect.bottom - infoPtr->todayrect.top); - hbr = CreateSolidBrush(infoPtr->monthbk); - FillRect(hdc, &r, hbr); + hbr = CreateSolidBrush(infoPtr->monthbk); + FillRect(hdc, &fill_bk_rect, hbr); DeleteObject(hbr); /* draw line under day abbreviations */ - MoveToEx(hdc, infoPtr->days.left + 3, - infoPtr->title.bottom + infoPtr->textHeight + 1, NULL); - LineTo(hdc, infoPtr->days.right - 3, - infoPtr->title.bottom + infoPtr->textHeight + 1); + MoveToEx(hdc, infoPtr->calendars[calIdx].days.left + 3, + infoPtr->calendars[calIdx].title.bottom + infoPtr->textHeight + 1, NULL); + LineTo(hdc, infoPtr->calendars[calIdx].days.right - 3, + infoPtr->calendars[calIdx].title.bottom + infoPtr->textHeight + 1); prev_month = infoPtr->curSel.wMonth - 1; - if(prev_month == 0) prev_month = 12; + if (prev_month == 0) prev_month = 12; - infoPtr->wdays.left = infoPtr->days.left = infoPtr->weeknums.right; + infoPtr->calendars[calIdx].wdays.left = infoPtr->calendars[calIdx].days.left = + infoPtr->calendars[calIdx].weeknums.right; /* 1. draw day abbreviations */ SelectObject(hdc, infoPtr->hFont); SetBkColor(hdc, infoPtr->monthbk); SetTextColor(hdc, infoPtr->trailingtxt); /* rectangle to draw a single day abbreviation within */ - r = infoPtr->wdays; + r = infoPtr->calendars[calIdx].wdays; r.right = r.left + infoPtr->width_increment; i = infoPtr->firstDay; @@ -917,32 +981,41 @@ static void MONTHCAL_PaintCalendar(MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTS } /* 2. previous and next months */ - if (!(infoPtr->dwStyle & MCS_NOTRAILINGDATES)) + if (!(infoPtr->dwStyle & MCS_NOTRAILINGDATES) && (calIdx == 0 || calIdx == infoPtr->cal_num - 1)) { SYSTEMTIME st_max; SetTextColor(hdc, infoPtr->trailingtxt); - MONTHCAL_GetMinDate(infoPtr, &st); - /* draw prev month */ - mask = 1 << (st.wDay-1); - while(st.wDay <= MONTHCAL_MonthLength(prev_month, infoPtr->curSel.wYear)) { - MONTHCAL_DrawDay(infoPtr, hdc, &st, infoPtr->monthdayState[0] & mask, ps); - mask <<= 1; - st.wDay++; + if (calIdx == 0) + { + MONTHCAL_GetMinDate(infoPtr, &st); + mask = 1 << (st.wDay-1); + + while(st.wDay <= MONTHCAL_MonthLength(prev_month, infoPtr->curSel.wYear)) + { + MONTHCAL_DrawDay(infoPtr, hdc, &st, infoPtr->monthdayState[0] & mask, ps); + mask <<= 1; + st.wDay++; + } } /* draw next month */ - st = infoPtr->curSel; - st.wDay = 1; - MONTHCAL_GetNextMonth(&st); - MONTHCAL_GetMaxDate(infoPtr, &st_max); - mask = 1; - while(st.wDay <= st_max.wDay) { - MONTHCAL_DrawDay(infoPtr, hdc, &st, infoPtr->monthdayState[2] & mask, ps); - mask <<= 1; - st.wDay++; + if (calIdx == infoPtr->cal_num - 1) + { + st = infoPtr->curSel; + st.wDay = 1; + MONTHCAL_GetNextMonth(&st); + MONTHCAL_GetMaxDate(infoPtr, &st_max); + mask = 1; + + while(st.wDay <= st_max.wDay) + { + MONTHCAL_DrawDay(infoPtr, hdc, &st, infoPtr->monthdayState[2] & mask, ps); + mask <<= 1; + st.wDay++; + } } } @@ -952,81 +1025,49 @@ static void MONTHCAL_PaintCalendar(MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTS st.wDay = 1; mask = 1; while(st.wDay <= MONTHCAL_MonthLength(infoPtr->curSel.wMonth, infoPtr->curSel.wYear)) { - MONTHCAL_DrawDay(infoPtr, hdc, &st, infoPtr->monthdayState[1] & mask, - ps); + MONTHCAL_DrawDay(infoPtr, hdc, &st, infoPtr->monthdayState[1] & mask, ps); mask <<= 1; st.wDay++; } - - /* 4. bottom today date */ - if(!(infoPtr->dwStyle & MCS_NOTODAY)) { - static const WCHAR todayW[] = { 'T','o','d','a','y',':',0 }; - static const WCHAR fmt_todayW[] = { '%','s',' ','%','s',0 }; - WCHAR buf_todayW[30], buf_dateW[20]; - RECT rtoday; - - if(!(infoPtr->dwStyle & MCS_NOTODAYCIRCLE)) { - SYSTEMTIME fake_st; - - MONTHCAL_GetMaxDate(infoPtr, &fake_st); - /* this is always safe cause next month will never fully fit calendar */ - fake_st.wDay += 1; - MONTHCAL_CircleDay(infoPtr, hdc, &fake_st); - } - if (!LoadStringW(COMCTL32_hModule, IDM_TODAY, buf_todayW, countof(buf_todayW))) - { - WARN("Can't load resource\n"); - strcpyW(buf_todayW, todayW); - } - MONTHCAL_CalcDayRect(infoPtr, &rtoday, 1, 6); - GetDateFormatW(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &infoPtr->todaysDate, NULL, - buf_dateW, countof(buf_dateW)); - SelectObject(hdc, infoPtr->hBoldFont); - - wsprintfW(buf, fmt_todayW, buf_todayW, buf_dateW); - DrawTextW(hdc, buf, -1, &rtoday, DT_CALCRECT | DT_LEFT | DT_VCENTER | DT_SINGLELINE); - DrawTextW(hdc, buf, -1, &rtoday, DT_LEFT | DT_VCENTER | DT_SINGLELINE); - - SelectObject(hdc, infoPtr->hFont); - } - - /* 5. today mark + focus */ - if((infoPtr->curSel.wMonth == infoPtr->todaysDate.wMonth) && - (infoPtr->curSel.wYear == infoPtr->todaysDate.wYear) && - !(infoPtr->dwStyle & MCS_NOTODAYCIRCLE)) - { - MONTHCAL_CircleDay(infoPtr, hdc, &infoPtr->todaysDate); - } - - if(!MONTHCAL_IsDateEqual(&infoPtr->focusedSel, &st_null)) - { - MONTHCAL_CalcPosFromDay(infoPtr, &infoPtr->focusedSel, &r); - DrawFocusRect(hdc, &r); - } } static void MONTHCAL_Refresh(MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps) { - RECT *title = &infoPtr->title; COLORREF old_text_clr, old_bk_clr; HFONT old_font; - RECT r_temp; + INT i; old_text_clr = SetTextColor(hdc, comctl32_color.clrWindowText); old_bk_clr = GetBkColor(hdc); old_font = GetCurrentObject(hdc, OBJ_FONT); - /* draw title, redraw all its elements */ - if(IntersectRect(&r_temp, &(ps->rcPaint), title)) - MONTHCAL_PaintTitle(infoPtr, hdc, ps); + for (i = 0; i < infoPtr->cal_num; i++) + { + RECT *title = &infoPtr->calendars[i].title; + RECT r; + + /* draw title, redraw all its elements */ + if (IntersectRect(&r, &(ps->rcPaint), title)) + MONTHCAL_PaintTitle(infoPtr, hdc, ps, i); + + /* draw calendar area */ + UnionRect(&r, &infoPtr->calendars[i].wdays, &infoPtr->todayrect); + if (IntersectRect(&r, &(ps->rcPaint), &r)) + MONTHCAL_PaintCalendar(infoPtr, hdc, ps, i); - /* draw calendar area */ - UnionRect(&r_temp, &infoPtr->wdays, &infoPtr->todayrect); - if(IntersectRect(&r_temp, &(ps->rcPaint), &r_temp)) - MONTHCAL_PaintCalendar(infoPtr, hdc, ps); + /* week numbers */ + MONTHCAL_PaintWeeknumbers(infoPtr, hdc, ps, i); + } - /* week numbers */ - MONTHCAL_PaintWeeknumbers(infoPtr, hdc, ps); + /* focus and today rectangle */ + MONTHCAL_PaintFocusAndCircle(infoPtr, hdc, ps); + + /* today at the bottom left */ + MONTHCAL_PaintTodayTitle(infoPtr, hdc, ps); + + /* navigation buttons */ + MONTHCAL_PaintButton(infoPtr, hdc, FALSE); + MONTHCAL_PaintButton(infoPtr, hdc, TRUE); /* restore context */ SetBkColor(hdc, old_bk_clr); @@ -1041,9 +1082,9 @@ MONTHCAL_GetMinReqRect(const MONTHCAL_INFO *infoPtr, LPRECT lpRect) if(!lpRect) return FALSE; - lpRect->left = infoPtr->title.left; - lpRect->top = infoPtr->title.top; - lpRect->right = infoPtr->title.right; + lpRect->left = infoPtr->calendars[0].title.left; + lpRect->top = infoPtr->calendars[0].title.top; + lpRect->right = infoPtr->calendars[0].title.right; lpRect->bottom = infoPtr->todayrect.bottom; AdjustWindowRect(lpRect, infoPtr->dwStyle, FALSE); @@ -1200,7 +1241,8 @@ MONTHCAL_SetFirstDayOfWeek(MONTHCAL_INFO *infoPtr, INT day) { /* Native behaviour for that case is broken: invalid date number >31 got displayed at (0,0) position, current month starts always from - (1,0) position. Should be implemnted here as well. */ + (1,0) position. Should be implemented here as well only if there's + nothing else to do. */ if (day < -1) FIXME("No bug compatibility for day=%d\n", day); @@ -1220,19 +1262,18 @@ MONTHCAL_SetFirstDayOfWeek(MONTHCAL_INFO *infoPtr, INT day) static LRESULT MONTHCAL_GetMonthRange(const MONTHCAL_INFO *infoPtr, DWORD flag, SYSTEMTIME *st) { - TRACE("\n"); + TRACE("flag=%d, st=%p\n", flag, st); if(st) { switch (flag) { case GMR_VISIBLE: { - /*FIXME: currently multicalendar feature isn't implemented, so entirely - visible month is current */ - st[0] = st[1] = infoPtr->curSel; + st[0] = infoPtr->calendars[0].month; + st[1] = infoPtr->calendars[infoPtr->cal_num-1].month; - if (infoPtr->curSel.wMonth == min_allowed_date.wMonth && - infoPtr->curSel.wYear == min_allowed_date.wYear) + if (st[0].wMonth == min_allowed_date.wMonth && + st[0].wYear == min_allowed_date.wYear) { st[0].wDay = min_allowed_date.wDay; } @@ -1242,8 +1283,8 @@ MONTHCAL_GetMonthRange(const MONTHCAL_INFO *infoPtr, DWORD flag, SYSTEMTIME *st) st[1].wDay = MONTHCAL_MonthLength(st[1].wMonth, st[1].wYear); MONTHCAL_CalculateDayOfWeek(&st[1], TRUE); - /* a single current month used */ - return 1; + + return infoPtr->cal_num; } case GMR_DAYSTATE: { @@ -1343,13 +1384,10 @@ MONTHCAL_GetRange(const MONTHCAL_INFO *infoPtr, SYSTEMTIME *range) static LRESULT MONTHCAL_SetDayState(const MONTHCAL_INFO *infoPtr, INT months, MONTHDAYSTATE *states) { - int i; - - TRACE("%d %p\n", months, states); + TRACE("%p %d %p\n", infoPtr, months, states); if(months != infoPtr->monthRange) return 0; - for(i = 0; i < months; i++) - infoPtr->monthdayState[i] = states[i]; + memcpy(infoPtr->monthdayState, states, months*sizeof(MONTHDAYSTATE)); return 1; } @@ -1401,6 +1439,7 @@ MONTHCAL_SetCurSel(MONTHCAL_INFO *infoPtr, SYSTEMTIME *curSel) InvalidateRect(infoPtr->hwndSelf, NULL, FALSE); infoPtr->curSel = *curSel; + infoPtr->calendars[0].month = *curSel; return TRUE; } @@ -1481,6 +1520,7 @@ MONTHCAL_SetSelRange(MONTHCAL_INFO *infoPtr, SYSTEMTIME *range) infoPtr->maxSel = range[0]; } infoPtr->curSel = infoPtr->minSel; + infoPtr->calendars[0].month = infoPtr->minSel; /* update day of week */ MONTHCAL_CalculateDayOfWeek(&infoPtr->minSel, TRUE); @@ -1552,19 +1592,39 @@ MONTHCAL_SetToday(MONTHCAL_INFO *infoPtr, const SYSTEMTIME *today) return TRUE; } +/* returns calendar index containing specified point, or -1 if it's background */ +static INT MONTHCAL_GetCalendarFromPoint(const MONTHCAL_INFO *infoPtr, const POINT *pt) +{ + RECT r; + INT i; + + for (i = 0; i < infoPtr->cal_num; i++) + { + /* whole bounding rectangle allows some optimization to compute */ + r.left = infoPtr->calendars[i].title.left; + r.top = infoPtr->calendars[i].title.top; + r.bottom = infoPtr->calendars[i].days.bottom; + r.right = infoPtr->calendars[i].days.right; + + if (PtInRect(&r, *pt)) return i; + } + + return -1; +} + static LRESULT MONTHCAL_HitTest(const MONTHCAL_INFO *infoPtr, MCHITTESTINFO *lpht) { - UINT x,y; - DWORD retval; - int day,wday,wnum; + INT day, wday, wnum, calIdx; + SYSTEMTIME ht_month; + UINT x, y; if(!lpht || lpht->cbSize < MCHITTESTINFO_V1_SIZE) return -1; x = lpht->pt.x; y = lpht->pt.y; - ZeroMemory(&lpht->st, sizeof(lpht->st)); + memset(&lpht->st, 0, sizeof(lpht->st)); /* Comment in for debugging... TRACE("%d %d wd[%d %d %d %d] d[%d %d %d %d] t[%d %d %d %d] wn[%d %d %d %d]\n", x, y, @@ -1578,87 +1638,106 @@ MONTHCAL_HitTest(const MONTHCAL_INFO *infoPtr, MCHITTESTINFO *lpht) infoPtr->weeknums.top, infoPtr->weeknums.bottom); */ - /* are we in the header? */ + /* guess in what calendar we are */ + calIdx = MONTHCAL_GetCalendarFromPoint(infoPtr, &lpht->pt); + if (calIdx == -1) + { + if (PtInRect(&infoPtr->todayrect, lpht->pt)) + lpht->uHit = MCHT_TODAYLINK; + else + /* outside of calendar area? What's left must be background :-) */ + lpht->uHit = MCHT_CALENDARBK; - if(PtInRect(&infoPtr->title, lpht->pt)) { - if(PtInRect(&infoPtr->titlebtnprev, lpht->pt)) { - retval = MCHT_TITLEBTNPREV; - goto done; + return lpht->uHit; + } + + ht_month = infoPtr->calendars[calIdx].month; + + /* are we in the header? */ + if (PtInRect(&infoPtr->calendars[calIdx].title, lpht->pt)) { + /* FIXME: buttons hittesting could be optimized cause maximum + two calendars have buttons */ + if (calIdx == 0 && PtInRect(&infoPtr->titlebtnprev, lpht->pt)) + { + lpht->uHit = MCHT_TITLEBTNPREV; } - if(PtInRect(&infoPtr->titlebtnnext, lpht->pt)) { - retval = MCHT_TITLEBTNNEXT; - goto done; + else if (PtInRect(&infoPtr->titlebtnnext, lpht->pt)) + { + lpht->uHit = MCHT_TITLEBTNNEXT; } - if(PtInRect(&infoPtr->titlemonth, lpht->pt)) { - retval = MCHT_TITLEMONTH; - goto done; + else if (PtInRect(&infoPtr->calendars[calIdx].titlemonth, lpht->pt)) + { + lpht->uHit = MCHT_TITLEMONTH; } - if(PtInRect(&infoPtr->titleyear, lpht->pt)) { - retval = MCHT_TITLEYEAR; - goto done; + else if (PtInRect(&infoPtr->calendars[calIdx].titleyear, lpht->pt)) + { + lpht->uHit = MCHT_TITLEYEAR; } + else + lpht->uHit = MCHT_TITLE; + + return lpht->uHit; + } - retval = MCHT_TITLE; - goto done; - } - - day = MONTHCAL_CalcDayFromPos(infoPtr,x,y,&wday,&wnum); - if(PtInRect(&infoPtr->wdays, lpht->pt)) { - retval = MCHT_CALENDARDAY; - lpht->st.wYear = infoPtr->curSel.wYear; - lpht->st.wMonth = (day < 1)? infoPtr->curSel.wMonth -1 : infoPtr->curSel.wMonth; - lpht->st.wDay = (day < 1)? - MONTHCAL_MonthLength(infoPtr->curSel.wMonth-1, infoPtr->curSel.wYear) -day : day; - goto done; - } - if(PtInRect(&infoPtr->weeknums, lpht->pt)) { - retval = MCHT_CALENDARWEEKNUM; - lpht->st.wYear = infoPtr->curSel.wYear; - lpht->st.wMonth = (day < 1) ? infoPtr->curSel.wMonth -1 : - (day > MONTHCAL_MonthLength(infoPtr->curSel.wMonth,infoPtr->curSel.wYear)) ? - infoPtr->curSel.wMonth +1 :infoPtr->curSel.wMonth; - lpht->st.wDay = (day < 1 ) ? - MONTHCAL_MonthLength(infoPtr->curSel.wMonth-1,infoPtr->curSel.wYear) -day : - (day > MONTHCAL_MonthLength(infoPtr->curSel.wMonth,infoPtr->curSel.wYear)) ? - day - MONTHCAL_MonthLength(infoPtr->curSel.wMonth,infoPtr->curSel.wYear) : day; - goto done; - } - if(PtInRect(&infoPtr->days, lpht->pt)) + /* days area (including week days and week numbers */ + day = MONTHCAL_CalcDayFromPos(infoPtr, x, y, &wday, &wnum); + if (PtInRect(&infoPtr->calendars[calIdx].wdays, lpht->pt)) { - lpht->st.wYear = infoPtr->curSel.wYear; - lpht->st.wMonth = infoPtr->curSel.wMonth; + lpht->uHit = MCHT_CALENDARDAY; + lpht->st.wYear = ht_month.wYear; + lpht->st.wMonth = (day < 1) ? ht_month.wMonth -1 : ht_month.wMonth; + lpht->st.wDay = (day < 1) ? + MONTHCAL_MonthLength(ht_month.wMonth-1, ht_month.wYear) - day : day; + } + else if(PtInRect(&infoPtr->calendars[calIdx].weeknums, lpht->pt)) + { + lpht->uHit = MCHT_CALENDARWEEKNUM; + lpht->st.wYear = ht_month.wYear; + + if (day < 1) { + lpht->st.wMonth = ht_month.wMonth - 1; + } + else if (day > MONTHCAL_MonthLength(ht_month.wMonth, ht_month.wYear)) { + lpht->st.wMonth = ht_month.wMonth + 1; + } + else + lpht->st.wMonth = ht_month.wMonth; + + if (day < 1) { + lpht->st.wDay = MONTHCAL_MonthLength(ht_month.wMonth-1, ht_month.wYear) - day; + } + else if (day > MONTHCAL_MonthLength(ht_month.wMonth, ht_month.wYear)) { + lpht->st.wDay = day - MONTHCAL_MonthLength(ht_month.wMonth, ht_month.wYear); + } + else + lpht->st.wDay = day; + } + else if(PtInRect(&infoPtr->calendars[calIdx].days, lpht->pt)) + { + lpht->st.wYear = ht_month.wYear; + lpht->st.wMonth = ht_month.wMonth; if (day < 1) { - retval = MCHT_CALENDARDATEPREV; + lpht->uHit = MCHT_CALENDARDATEPREV; MONTHCAL_GetPrevMonth(&lpht->st); lpht->st.wDay = MONTHCAL_MonthLength(lpht->st.wMonth, lpht->st.wYear) + day; } - else if (day > MONTHCAL_MonthLength(infoPtr->curSel.wMonth, infoPtr->curSel.wYear)) + else if (day > MONTHCAL_MonthLength(ht_month.wMonth, ht_month.wYear)) { - retval = MCHT_CALENDARDATENEXT; + lpht->uHit = MCHT_CALENDARDATENEXT; MONTHCAL_GetNextMonth(&lpht->st); - lpht->st.wDay = day - MONTHCAL_MonthLength(infoPtr->curSel.wMonth, infoPtr->curSel.wYear); + lpht->st.wDay = day - MONTHCAL_MonthLength(ht_month.wMonth, ht_month.wYear); } else { - retval = MCHT_CALENDARDATE; + lpht->uHit = MCHT_CALENDARDATE; lpht->st.wDay = day; } + /* always update day of week */ MONTHCAL_CalculateDayOfWeek(&lpht->st, TRUE); - goto done; - } - if(PtInRect(&infoPtr->todayrect, lpht->pt)) { - retval = MCHT_TODAYLINK; - goto done; } - - /* Hit nothing special? What's left must be background :-) */ - - retval = MCHT_CALENDARBK; - done: - lpht->uHit = retval; - return retval; + return lpht->uHit; } /* MCN_GETDAYSTATE notification helper */ @@ -1666,7 +1745,6 @@ static void MONTHCAL_NotifyDayState(MONTHCAL_INFO *infoPtr) { if(infoPtr->dwStyle & MCS_DAYSTATE) { NMDAYSTATE nmds; - INT i; nmds.nmhdr.hwndFrom = infoPtr->hwndSelf; nmds.nmhdr.idFrom = GetWindowLongPtrW(infoPtr->hwndSelf, GWLP_ID); @@ -1680,8 +1758,7 @@ static void MONTHCAL_NotifyDayState(MONTHCAL_INFO *infoPtr) nmds.stStart.wDay = 1; SendMessageW(infoPtr->hwndNotify, WM_NOTIFY, nmds.nmhdr.idFrom, (LPARAM)&nmds); - for(i = 0; i < infoPtr->monthRange; i++) - infoPtr->monthdayState[i] = nmds.prgDayState[i]; + memcpy(infoPtr->monthdayState, nmds.prgDayState, infoPtr->monthRange*sizeof(MONTHDAYSTATE)); Free(nmds.prgDayState); } @@ -1747,6 +1824,7 @@ MONTHCAL_RButtonUp(MONTHCAL_INFO *infoPtr, LPARAM lParam) menupoint.x, menupoint.y, 0, infoPtr->hwndSelf, NULL)) { infoPtr->curSel = infoPtr->todaysDate; + infoPtr->calendars[0].month = infoPtr->todaysDate; infoPtr->minSel = infoPtr->todaysDate; infoPtr->maxSel = infoPtr->todaysDate; InvalidateRect(infoPtr->hwndSelf, NULL, FALSE); @@ -1807,8 +1885,8 @@ static void MONTHCAL_EditYear(MONTHCAL_INFO *infoPtr) { infoPtr->hWndYearEdit = CreateWindowExW(0, WC_EDITW, 0, WS_VISIBLE | WS_CHILD | ES_READONLY, - infoPtr->titleyear.left + 3, infoPtr->titlebtnnext.top, - infoPtr->titleyear.right - infoPtr->titleyear.left + 4, + infoPtr->calendars[0].titleyear.left + 3, infoPtr->titlebtnnext.top, + infoPtr->calendars[0].titleyear.right - infoPtr->calendars[0].titleyear.left + 4, infoPtr->textHeight, infoPtr->hwndSelf, NULL, NULL, NULL); @@ -1817,7 +1895,7 @@ static void MONTHCAL_EditYear(MONTHCAL_INFO *infoPtr) infoPtr->hWndYearUpDown = CreateWindowExW(0, UPDOWN_CLASSW, 0, WS_VISIBLE | WS_CHILD | UDS_SETBUDDYINT | UDS_NOTHOUSANDS | UDS_ARROWKEYS, - infoPtr->titleyear.right + 7, infoPtr->titlebtnnext.top, + infoPtr->calendars[0].titleyear.right + 7, infoPtr->titlebtnnext.top, 18, infoPtr->textHeight, infoPtr->hwndSelf, NULL, NULL, NULL); @@ -1908,6 +1986,7 @@ MONTHCAL_LButtonDown(MONTHCAL_INFO *infoPtr, LPARAM lParam) case MCHT_TODAYLINK: { infoPtr->curSel = infoPtr->todaysDate; + infoPtr->calendars[0].month = infoPtr->todaysDate; infoPtr->minSel = infoPtr->todaysDate; infoPtr->maxSel = infoPtr->todaysDate; InvalidateRect(infoPtr->hwndSelf, NULL, FALSE); @@ -2159,14 +2238,14 @@ static void MONTHCAL_UpdateSize(MONTHCAL_INFO *infoPtr) { static const WCHAR O0W[] = { '0','0',0 }; HDC hdc = GetDC(infoPtr->hwndSelf); - RECT *title=&infoPtr->title; + RECT *title=&infoPtr->calendars[0].title; RECT *prev=&infoPtr->titlebtnprev; RECT *next=&infoPtr->titlebtnnext; - RECT *titlemonth=&infoPtr->titlemonth; - RECT *titleyear=&infoPtr->titleyear; - RECT *wdays=&infoPtr->wdays; - RECT *weeknumrect=&infoPtr->weeknums; - RECT *days=&infoPtr->days; + RECT *titlemonth=&infoPtr->calendars[0].titlemonth; + RECT *titleyear=&infoPtr->calendars[0].titleyear; + RECT *wdays=&infoPtr->calendars[0].wdays; + RECT *weeknumrect=&infoPtr->calendars[0].weeknums; + RECT *days=&infoPtr->calendars[0].days; RECT *todayrect=&infoPtr->todayrect; SIZE size, sz; TEXTMETRICW tm; @@ -2383,14 +2462,18 @@ MONTHCAL_Create(HWND hwnd, LPCREATESTRUCTW lpcs) infoPtr = Alloc(sizeof(MONTHCAL_INFO)); SetWindowLongPtrW(hwnd, 0, (DWORD_PTR)infoPtr); - if(infoPtr == NULL) { - ERR( "could not allocate info memory!\n"); + if (infoPtr == NULL) { + ERR("could not allocate info memory!\n"); return 0; } infoPtr->hwndSelf = hwnd; infoPtr->hwndNotify = lpcs->hwndParent; infoPtr->dwStyle = GetWindowLongW(hwnd, GWL_STYLE); + infoPtr->calendars = Alloc(sizeof(CALENDAR_INFO)); + if (!infoPtr->calendars) goto fail; + + infoPtr->cal_num = 1; MONTHCAL_SetFont(infoPtr, GetStockObject(DEFAULT_GUI_FONT), FALSE); @@ -2402,7 +2485,10 @@ MONTHCAL_Create(HWND hwnd, LPCREATESTRUCTW lpcs) infoPtr->maxSelCount = (infoPtr->dwStyle & MCS_MULTISELECT) ? 7 : 1; infoPtr->monthRange = 3; + infoPtr->monthdayState = Alloc(infoPtr->monthRange * sizeof(MONTHDAYSTATE)); + if (!infoPtr->monthdayState) goto fail; + infoPtr->titlebk = comctl32_color.clrActiveCaption; infoPtr->titletxt = comctl32_color.clrWindow; infoPtr->monthbk = comctl32_color.clrWindow; @@ -2413,6 +2499,7 @@ MONTHCAL_Create(HWND hwnd, LPCREATESTRUCTW lpcs) infoPtr->minSel = infoPtr->todaysDate; infoPtr->maxSel = infoPtr->todaysDate; infoPtr->curSel = infoPtr->todaysDate; + infoPtr->calendars[0].month = infoPtr->todaysDate; infoPtr->isUnicode = TRUE; /* call MONTHCAL_UpdateSize to set all of the dimensions */ @@ -2425,14 +2512,20 @@ MONTHCAL_Create(HWND hwnd, LPCREATESTRUCTW lpcs) OpenThemeData (infoPtr->hwndSelf, themeClass); return 0; -} +fail: + Free(infoPtr->monthdayState); + Free(infoPtr->calendars); + Free(infoPtr); + return 0; +} static LRESULT MONTHCAL_Destroy(MONTHCAL_INFO *infoPtr) { /* free month calendar info data */ Free(infoPtr->monthdayState); + Free(infoPtr->calendars); SetWindowLongPtrW(infoPtr->hwndSelf, 0, 0); CloseThemeData (GetWindowTheme (infoPtr->hwndSelf)); diff --git a/reactos/dll/win32/comctl32/propsheet.c b/reactos/dll/win32/comctl32/propsheet.c index 2b4729a8e9b..3e313bad59e 100644 --- a/reactos/dll/win32/comctl32/propsheet.c +++ b/reactos/dll/win32/comctl32/propsheet.c @@ -2421,28 +2421,6 @@ static BOOL PROPSHEET_RemovePage(HWND hwndDlg, return FALSE; } -BOOL CALLBACK -EnumChildProc(HWND hwnd, LPARAM lParam) -{ - WCHAR szType[20]; - RealGetWindowClassW(hwnd, szType, 20); - - if (strcmpW(szType, WC_EDITW) == 0) - { - if (IsWindowEnabled(hwnd) && IsWindowVisible(hwnd)) - { - SetFocus(hwnd); - return FALSE; - } - } - else - { - EnumChildWindows(hwnd, EnumChildProc, 0); - } - - return TRUE; -} - /****************************************************************************** * PROPSHEET_SetWizButtons * @@ -2464,6 +2442,17 @@ static void PROPSHEET_SetWizButtons(HWND hwndDlg, DWORD dwFlags) EnableWindow(hwndNext, FALSE); EnableWindow(hwndFinish, FALSE); + /* set the default pushbutton to an enabled button */ + if (((dwFlags & PSWIZB_FINISH) || psInfo->hasFinish) && !(dwFlags & PSWIZB_DISABLEDFINISH)) + SendMessageW(hwndDlg, DM_SETDEFID, IDC_FINISH_BUTTON, 0); + else if (dwFlags & PSWIZB_NEXT) + SendMessageW(hwndDlg, DM_SETDEFID, IDC_NEXT_BUTTON, 0); + else if (dwFlags & PSWIZB_BACK) + SendMessageW(hwndDlg, DM_SETDEFID, IDC_BACK_BUTTON, 0); + else + SendMessageW(hwndDlg, DM_SETDEFID, IDCANCEL, 0); + + if (dwFlags & PSWIZB_BACK) EnableWindow(hwndBack, TRUE); @@ -2493,31 +2482,6 @@ static void PROPSHEET_SetWizButtons(HWND hwndDlg, DWORD dwFlags) } else if (!(dwFlags & PSWIZB_DISABLEDFINISH)) EnableWindow(hwndFinish, TRUE); - - /* set the default pushbutton to an enabled button and give it focus */ - if (((dwFlags & PSWIZB_FINISH) || psInfo->hasFinish) && !(dwFlags & PSWIZB_DISABLEDFINISH)) - { - SendMessageW(hwndDlg, DM_SETDEFID, IDC_FINISH_BUTTON, 0); - SetFocus(hwndFinish); - } - else if (dwFlags & PSWIZB_NEXT) - { - SendMessageW(hwndDlg, DM_SETDEFID, IDC_NEXT_BUTTON, 0); - SetFocus(hwndNext); - } - else if (dwFlags & PSWIZB_BACK) - { - SendMessageW(hwndDlg, DM_SETDEFID, IDC_BACK_BUTTON, 0); - SetFocus(hwndBack); - } - else - { - SendMessageW(hwndDlg, DM_SETDEFID, IDCANCEL, 0); - SetFocus(GetDlgItem(hwndDlg, IDCANCEL)); - } - - /* Now try to find an edit control that deserves focus */ - EnumChildWindows(PropSheet_GetCurrentPageHwnd(hwndDlg), EnumChildProc, 0); } /****************************************************************************** @@ -3447,9 +3411,14 @@ PROPSHEET_DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) psInfo->hwnd = hwnd; SetWindowLongPtrW(hwnd, DWLP_USER, (DWORD_PTR)psInfo); - /* set up the Next and Back buttons by default */ - PROPSHEET_SetWizButtons(hwnd, PSWIZB_BACK|PSWIZB_NEXT); - SetFocus(GetDlgItem(hwnd, IDC_NEXT_BUTTON)); + if (psInfo->ppshheader.dwFlags & INTRNL_ANY_WIZARD) + { + /* set up the Next and Back buttons by default */ + PROPSHEET_SetWizButtons(hwnd, PSWIZB_BACK|PSWIZB_NEXT); + SetFocus(GetDlgItem(hwnd, IDC_NEXT_BUTTON)); + } + else + SetFocus(GetDlgItem(hwnd, IDOK)); /* Set up fonts */ SystemParametersInfoW (SPI_GETICONTITLELOGFONT, 0, &logFont, 0); diff --git a/reactos/dll/win32/comctl32/rsrc.rc b/reactos/dll/win32/comctl32/rsrc.rc index f906a7fc8d7..a95d0fb531c 100644 --- a/reactos/dll/win32/comctl32/rsrc.rc +++ b/reactos/dll/win32/comctl32/rsrc.rc @@ -37,49 +37,49 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #include "wine/wine_common_ver.rc" /* @makedep: idt_check.bmp */ -IDT_CHECK BITMAP LOADONCALL DISCARDABLE idt_check.bmp +IDT_CHECK BITMAP idt_check.bmp /* @makedep: idb_std_small.bmp */ -IDB_STD_SMALL BITMAP LOADONCALL DISCARDABLE idb_std_small.bmp +IDB_STD_SMALL BITMAP idb_std_small.bmp /* @makedep: idb_std_large.bmp */ -IDB_STD_LARGE BITMAP LOADONCALL DISCARDABLE idb_std_large.bmp +IDB_STD_LARGE BITMAP idb_std_large.bmp /* @makedep: idb_view_small.bmp */ -IDB_VIEW_SMALL BITMAP LOADONCALL DISCARDABLE idb_view_small.bmp +IDB_VIEW_SMALL BITMAP idb_view_small.bmp /* @makedep: idb_view_large.bmp */ -IDB_VIEW_LARGE BITMAP LOADONCALL MOVEABLE DISCARDABLE idb_view_large.bmp +IDB_VIEW_LARGE BITMAP idb_view_large.bmp /* @makedep: idb_hist_small.bmp */ -IDB_HIST_SMALL BITMAP LOADONCALL DISCARDABLE idb_hist_small.bmp +IDB_HIST_SMALL BITMAP idb_hist_small.bmp /* @makedep: idb_hist_large.bmp */ -IDB_HIST_LARGE BITMAP LOADONCALL DISCARDABLE idb_hist_large.bmp +IDB_HIST_LARGE BITMAP idb_hist_large.bmp /* @makedep: idc_copy.cur */ -IDC_COPY CURSOR LOADONCALL DISCARDABLE idc_copy.cur +IDC_COPY CURSOR idc_copy.cur /* @makedep: idc_divider.cur */ -IDC_DIVIDER CURSOR LOADONCALL DISCARDABLE idc_divider.cur +IDC_DIVIDER CURSOR idc_divider.cur /* @makedep: idc_divideropen.cur */ -IDC_DIVIDEROPEN CURSOR LOADONCALL DISCARDABLE idc_divideropen.cur +IDC_DIVIDEROPEN CURSOR idc_divideropen.cur /* @makedep: idc_movebutton.cur */ -IDC_MOVEBUTTON CURSOR LOADONCALL DISCARDABLE idc_movebutton.cur +IDC_MOVEBUTTON CURSOR idc_movebutton.cur /* @makedep: idi_dragarrow.ico */ -IDI_DRAGARROW ICON LOADONCALL DISCARDABLE idi_dragarrow.ico +IDI_DRAGARROW ICON idi_dragarrow.ico /* @makedep: idi_tt_info_sm.ico */ -IDI_TT_INFO_SM ICON LOADONCALL DISCARDABLE idi_tt_info_sm.ico +IDI_TT_INFO_SM ICON idi_tt_info_sm.ico /* @makedep: idi_tt_warn_sm.ico */ -IDI_TT_WARN_SM ICON LOADONCALL DISCARDABLE idi_tt_warn_sm.ico +IDI_TT_WARN_SM ICON idi_tt_warn_sm.ico /* @makedep: idi_tt_error_sm.ico */ -IDI_TT_ERROR_SM ICON LOADONCALL DISCARDABLE idi_tt_error_sm.ico +IDI_TT_ERROR_SM ICON idi_tt_error_sm.ico /* @@ -117,4 +117,5 @@ IDI_TT_ERROR_SM ICON LOADONCALL DISCARDABLE idi_tt_error_sm.ico #include "comctl_Ro.rc" #include "comctl_Ru.rc" #include "comctl_Si.rc" +#include "comctl_Sr.rc" #include "comctl_Zh.rc" diff --git a/reactos/dll/win32/comctl32/toolbar.c b/reactos/dll/win32/comctl32/toolbar.c index fe782c3e4c3..9b41732c289 100644 --- a/reactos/dll/win32/comctl32/toolbar.c +++ b/reactos/dll/win32/comctl32/toolbar.c @@ -3028,7 +3028,7 @@ TOOLBAR_AutoSize (TOOLBAR_INFO *infoPtr) if (!(infoPtr->dwStyle & CCS_NORESIZE)) { RECT window_rect; - UINT uPosFlags = SWP_NOZORDER; + UINT uPosFlags = SWP_NOZORDER | SWP_NOACTIVATE; if ((infoPtr->dwStyle & CCS_BOTTOM) == CCS_NOMOVEY) { @@ -3050,9 +3050,8 @@ TOOLBAR_AutoSize (TOOLBAR_INFO *infoPtr) if (infoPtr->dwStyle & WS_BORDER) { - x = y = 1; /* FIXME: this looks wrong */ - cy += GetSystemMetrics(SM_CYEDGE); - cx += GetSystemMetrics(SM_CXEDGE); + cy += 2 * GetSystemMetrics(SM_CXBORDER); + cx += 2 * GetSystemMetrics(SM_CYBORDER); } SetWindowPos(infoPtr->hwndSelf, NULL, x, y, cx, cy, uPosFlags); @@ -4842,7 +4841,7 @@ TOOLBAR_SetRows (TOOLBAR_INFO *infoPtr, WPARAM wParam, LPRECT lprc) SetWindowPos(infoPtr->hwndSelf, NULL, 0, 0, infoPtr->rcBound.right - infoPtr->rcBound.left, infoPtr->rcBound.bottom - infoPtr->rcBound.top, - SWP_NOMOVE); + SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE); } /* repaint toolbar */ @@ -6007,7 +6006,7 @@ TOOLBAR_NCPaint (HWND hwnd, WPARAM wParam, LPARAM lParam) GetWindowRect (hwnd, &rcWindow); OffsetRect (&rcWindow, -rcWindow.left, -rcWindow.top); if( dwStyle & WS_BORDER ) - OffsetRect (&rcWindow, 1, 1); + InflateRect (&rcWindow, -1, -1); DrawEdge (hdc, &rcWindow, EDGE_ETCHED, BF_TOP); } diff --git a/reactos/dll/win32/comctl32/tooltips.c b/reactos/dll/win32/comctl32/tooltips.c index 8f49c430d4c..688d3b5ec44 100644 --- a/reactos/dll/win32/comctl32/tooltips.c +++ b/reactos/dll/win32/comctl32/tooltips.c @@ -1986,32 +1986,8 @@ TOOLTIPS_NCHitTest (const TOOLTIPS_INFO *infoPtr, WPARAM wParam, LPARAM lParam) static LRESULT TOOLTIPS_NotifyFormat (TOOLTIPS_INFO *infoPtr, WPARAM wParam, LPARAM lParam) { - TTTOOL_INFO *toolPtr = infoPtr->tools; - INT nResult; - - TRACE("hwnd=%p wParam=%lx lParam=%lx\n", infoPtr->hwndSelf, wParam, lParam); + FIXME ("hwnd=%p wParam=%lx lParam=%lx\n", infoPtr->hwndSelf, wParam, lParam); - if (lParam == NF_QUERY) { - if (toolPtr->bNotifyUnicode) { - return NFR_UNICODE; - } else { - return NFR_ANSI; - } - } - else if (lParam == NF_REQUERY) { - nResult = (INT) SendMessageW (toolPtr->hwnd, WM_NOTIFYFORMAT, - (WPARAM)infoPtr->hwndSelf, (LPARAM)NF_QUERY); - if (nResult == NFR_ANSI) { - toolPtr->bNotifyUnicode = FALSE; - TRACE(" -- WM_NOTIFYFORMAT returns: NFR_ANSI\n"); - } else if (nResult == NFR_UNICODE) { - toolPtr->bNotifyUnicode = TRUE; - TRACE(" -- WM_NOTIFYFORMAT returns: NFR_UNICODE\n"); - } else { - TRACE (" -- WM_NOTIFYFORMAT returns: error!\n"); - } - return nResult; - } return 0; } diff --git a/reactos/dll/win32/comctl32/treeview.c b/reactos/dll/win32/comctl32/treeview.c index 6dbee0ff4a6..c3b43c4ad13 100644 --- a/reactos/dll/win32/comctl32/treeview.c +++ b/reactos/dll/win32/comctl32/treeview.c @@ -76,6 +76,7 @@ typedef struct _TREEITEM /* HTREEITEM is a _TREEINFO *. */ int cchTextMax; int iImage; int iSelectedImage; + int iExpandedImage; int cChildren; LPARAM lParam; int iIntegral; /* item height multiplier (1 is normal) */ @@ -248,6 +249,10 @@ static inline BOOL item_changed (const TREEVIEW_ITEM *tiOld, const TREEVIEW_ITEM tiNew->iSelectedImage != I_IMAGECALLBACK) return TRUE; + if ((tvChange->mask & TVIF_EXPANDEDIMAGE) && (tiOld->iExpandedImage != tiNew->iExpandedImage) && + tiNew->iExpandedImage != I_IMAGECALLBACK) + return TRUE; + /* Text has changed and it's not a callback */ if ((tvChange->mask & TVIF_TEXT) && (tiOld->pszText != tiNew->pszText) && tiNew->pszText != LPSTR_TEXTCALLBACKW) @@ -801,6 +806,9 @@ TREEVIEW_UpdateDispInfo(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem, if (mask & TVIF_SELECTEDIMAGE) wineItem->iSelectedImage = callback.item.iSelectedImage; + if (mask & TVIF_EXPANDEDIMAGE) + wineItem->iExpandedImage = callback.item.iExpandedImage; + if (mask & TVIF_CHILDREN) wineItem->cChildren = callback.item.cChildren; @@ -997,6 +1005,7 @@ TREEVIEW_AllocateItem(const TREEVIEW_INFO *infoPtr) * inc/dec to toggle the images. */ newItem->iImage = 0; newItem->iSelectedImage = 0; + newItem->iExpandedImage = 0; if (DPA_InsertPtr(infoPtr->items, INT_MAX, newItem) == -1) { @@ -1173,6 +1182,16 @@ TREEVIEW_DoSetItemT(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem, callbackClear |= TVIF_SELECTEDIMAGE; } + if (tvItem->mask & TVIF_EXPANDEDIMAGE) + { + wineItem->iExpandedImage = tvItem->iExpandedImage; + + if (wineItem->iExpandedImage == I_IMAGECALLBACK) + callbackSet |= TVIF_EXPANDEDIMAGE; + else + callbackClear |= TVIF_EXPANDEDIMAGE; + } + if (tvItem->mask & TVIF_PARAM) wineItem->lParam = tvItem->lParam; @@ -1189,6 +1208,11 @@ TREEVIEW_DoSetItemT(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem, wineItem->state |= (tvItem->state & tvItem->stateMask); } + if (tvItem->mask & TVIF_STATEEX) + { + FIXME("New extended state: %x\n", tvItem->uStateEx); + } + wineItem->callbackMask |= callbackSet; wineItem->callbackMask &= ~callbackClear; @@ -2076,6 +2100,9 @@ TREEVIEW_GetItemT(const TREEVIEW_INFO *infoPtr, LPTVITEMEXW tvItem, BOOL isW) if (tvItem->mask & TVIF_SELECTEDIMAGE) tvItem->iSelectedImage = wineItem->iSelectedImage; + if (tvItem->mask & TVIF_EXPANDEDIMAGE) + tvItem->iExpandedImage = wineItem->iExpandedImage; + if (tvItem->mask & TVIF_STATE) /* Careful here - Windows ignores the stateMask when you get the state That contradicts the documentation, but makes more common sense, masking @@ -2539,8 +2566,8 @@ TREEVIEW_DrawItem(const TREEVIEW_INFO *infoPtr, HDC hdc, TREEVIEW_ITEM *wineItem ILD_NORMAL); } - /* Now, draw the normal image; can be either selected or - * non-selected image. + /* Now, draw the normal image; can be either selected, + * non-selected or expanded image. */ if ((wineItem->state & TVIS_SELECTED) && (wineItem->iSelectedImage >= 0)) @@ -2548,9 +2575,14 @@ TREEVIEW_DrawItem(const TREEVIEW_INFO *infoPtr, HDC hdc, TREEVIEW_ITEM *wineItem /* The item is currently selected */ imageIndex = wineItem->iSelectedImage; } + else if ((wineItem->state & TVIS_EXPANDED) && (wineItem->iExpandedImage >= 0)) + { + /* The item is currently not selected but expanded */ + imageIndex = wineItem->iExpandedImage; + } else { - /* The item is not selected */ + /* The item is not selected and not expanded */ imageIndex = wineItem->iImage; } @@ -3283,6 +3315,7 @@ TREEVIEW_Expand(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem, LONG orgNextTop = 0; RECT scrollRect; TREEVIEW_ITEM *nextItem, *tmpItem; + BOOL sendsNotifications; TRACE("(%p, %p, partial=%d, %d\n", infoPtr, wineItem, bExpandPartial, bUser); @@ -3305,30 +3338,20 @@ TREEVIEW_Expand(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem, TRACE("TVE_EXPAND %p %s\n", wineItem, TREEVIEW_ItemName(wineItem)); - if (bUser || ((wineItem->cChildren != 0) && - !(wineItem->state & TVIS_EXPANDEDONCE))) + sendsNotifications = bUser || ((wineItem->cChildren != 0) && + !(wineItem->state & TVIS_EXPANDEDONCE)); + if (sendsNotifications) { if (!TREEVIEW_SendExpanding(infoPtr, wineItem, TVE_EXPAND)) { TRACE(" TVN_ITEMEXPANDING returned TRUE, exiting...\n"); return FALSE; } - - if (!wineItem->firstChild) - return FALSE; - - wineItem->state |= TVIS_EXPANDED; - TREEVIEW_SendExpanded(infoPtr, wineItem, TVE_EXPAND); - wineItem->state |= TVIS_EXPANDEDONCE; } - else - { - if (!wineItem->firstChild) - return FALSE; + if (!wineItem->firstChild) + return FALSE; - /* this item has already been expanded */ - wineItem->state |= TVIS_EXPANDED; - } + wineItem->state |= TVIS_EXPANDED; if (bExpandPartial) FIXME("TVE_EXPANDPARTIAL not implemented\n"); @@ -3388,6 +3411,11 @@ TREEVIEW_Expand(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem, } } + if (sendsNotifications) { + TREEVIEW_SendExpanded(infoPtr, wineItem, TVE_EXPAND); + wineItem->state |= TVIS_EXPANDEDONCE; + } + return TRUE; } diff --git a/reactos/dll/win32/comdlg32/cdlg_Bg.rc b/reactos/dll/win32/comdlg32/cdlg_Bg.rc index 5b0865a7c24..b0db421e778 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Bg.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Bg.rc @@ -26,7 +26,7 @@ LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Îòâîðè" FONT 8, "MS Shell Dlg" @@ -48,7 +48,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Ñúõðàíè êàòî..." FONT 8, "MS Shell Dlg" @@ -70,7 +70,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Ïå÷àò" FONT 8, "MS Shell Dlg" @@ -93,7 +93,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Íàñòðîéêè íà ïå÷àòàíåòî" FONT 8, "MS Shell Dlg" @@ -119,7 +119,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Øðèôò" FONT 8, "MS Shell Dlg" @@ -151,7 +151,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 314, 185 +CHOOSE_COLOR DIALOG 36, 24, 314, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Öâÿò" FONT 8, "MS Shell Dlg" @@ -185,7 +185,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 281, 62 +FINDDLGORD DIALOG 36, 24, 281, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Òúðñåíå" FONT 8, "MS Shell Dlg" @@ -204,7 +204,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 281, 94 +REPLACEDLGORD DIALOG 36, 24, 281, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Çàìÿíà" FONT 8, "MS Shell Dlg" @@ -224,7 +224,7 @@ FONT 8, "MS Shell Dlg" } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 321, 186 +PRINT32 DIALOG 32, 32, 321, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Ïå÷àò" @@ -264,7 +264,7 @@ FONT 8, "MS Shell Dlg" RTEXT "&äî:", stc3, 112,124, 16,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Íàñòðîéêè íà ïå÷àòàíåòî" @@ -299,7 +299,7 @@ BEGIN CONTROL "Ïåéçà&æ", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Íàñòðîéêè íà ñòðàíèöàòà" FONT 8, "MS Shell Dlg" @@ -329,7 +329,7 @@ BEGIN PUSHBUTTON "&Ïðèíòåð...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Îòâîðè" FONT 8, "MS Shell Dlg" @@ -353,7 +353,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Ïîìîù", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&Îòíîñíî FolderPicker òåñòà" IDS_DOCUMENTFOLDERS "Ïàïêè ñ äîêóìåíòè" @@ -365,7 +365,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "Ìîÿ êîìïþòúð" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "Ñèñòåìíè ïàïêè" IDS_LOCALHARDRIVES "Ëîêàëíè óñòðîéñòâà" @@ -379,7 +379,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "Ôàéëúò íå ñúùåñòâóâà" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "Åäíî íèâî íàãîðå" IDS_NEWFOLDER "Ñúçäàé íîâà ïàïêà" @@ -388,7 +388,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Ïðåìèíè êúì ðàáîòíèÿ ïëîò" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Ïå÷àò" @@ -447,7 +447,7 @@ STRINGTABLE DISCARDABLE PD32_PRINTER_STATUS_POWER_SAVE "Ðåæèì íà ïåñòåíå íà åíåðãèÿ; " } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "×åðíî" IDS_COLOR_MAROON "Øàòåí" /* Maroon? ×åðâåíèêàâî êàôÿâ? */ @@ -467,7 +467,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "Áÿëî" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Èçáåðåòå ðàçìåð íà øðèôòà ìåæäó %d è %d ïóíêòà." IDS_SAVE_BUTTON "&Ñúõðàíè" diff --git a/reactos/dll/win32/comdlg32/cdlg_Ca.rc b/reactos/dll/win32/comdlg32/cdlg_Ca.rc index 59cffb12fa3..87d45a2dfda 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Ca.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Ca.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_CATALAN, SUBLANG_DEFAULT -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Obrir" FONT 8, "MS Shell Dlg" @@ -47,7 +47,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Anomenar i desar..." FONT 8, "MS Shell Dlg" @@ -69,14 +69,14 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Impressió" FONT 8, "MS Shell Dlg" { LTEXT "Impressora:", 1088, 6, 6, 40, 9 - LTEXT "Impressió del document", 1089, 60, 6, 150, 9 - GROUPBOX "", 1072, 6, 30, 160, 65, BS_GROUPBOX + LTEXT "", 1089, 60, 6, 150, 9 + GROUPBOX "Print Range", grp1, 6, 30, 160, 65, BS_GROUPBOX RADIOBUTTON "&Sencer", 1056, 16, 45, 60, 12 RADIOBUTTON "&Part seleccionada", 1057, 16, 60, 60, 12 RADIOBUTTON "Pà&gines", 1058, 16, 75, 60, 12 @@ -92,7 +92,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Configuració de la impressió" FONT 8, "MS Shell Dlg" @@ -118,7 +118,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Tipus de lletra" FONT 8, "MS Shell Dlg" @@ -150,7 +150,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Color" FONT 8, "MS Shell Dlg" @@ -184,7 +184,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Cerca" FONT 8, "MS Shell Dlg" @@ -202,7 +202,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Substitució" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/comdlg32/cdlg_Cs.rc b/reactos/dll/win32/comdlg32/cdlg_Cs.rc index e3acb801f68..5b8acf95dd6 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Cs.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Cs.rc @@ -29,7 +29,7 @@ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT /* Czech strings in CP1250 */ -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Otevøení souboru" FONT 8, "MS Shell Dlg" @@ -51,7 +51,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Ulož pod jménem..." FONT 8, "MS Shell Dlg" @@ -73,7 +73,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Tisk" FONT 8, "MS Shell Dlg" @@ -96,7 +96,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Nastavení tisku" FONT 8, "MS Shell Dlg" @@ -122,7 +122,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Písmo" FONT 8, "MS Shell Dlg" @@ -154,7 +154,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Barvy" FONT 8, "MS Shell Dlg" @@ -188,7 +188,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Hledání" FONT 8, "MS Shell Dlg" @@ -207,7 +207,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Nahrazení" FONT 8, "MS Shell Dlg" @@ -226,7 +226,7 @@ FONT 8, "MS Shell Dlg" } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Tisk" @@ -266,7 +266,7 @@ FONT 8, "MS Shell Dlg" RTEXT "&do:", stc3, 100,124, 16,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Nastavení tisku" @@ -301,7 +301,7 @@ BEGIN CONTROL "N&a šíøku", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Nastavení stránky" FONT 8, "MS Shell Dlg" @@ -331,7 +331,7 @@ BEGIN PUSHBUTTON "Tiská&rna...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Otevøít" FONT 8, "MS Shell Dlg" @@ -355,7 +355,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Nápovìda", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&O FolderPicker testu" IDS_DOCUMENTFOLDERS "Složky dokumentù" @@ -367,7 +367,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "Mùj poèítaè" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "Systémové složky" IDS_LOCALHARDRIVES "Místní jednotky pevných diskù" @@ -381,7 +381,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "Soubor neexistuje" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "O jednu úroveò výše" IDS_NEWFOLDER "Vytvoøit novou složku" @@ -390,7 +390,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Prohlížet plochu" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Tisk" @@ -446,7 +446,7 @@ podporov PD32_PRINTER_STATUS_POWER_SAVE "Úsporný režim; " } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "èerná" IDS_COLOR_MAROON "hnìdá" @@ -466,7 +466,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "bílá" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Urèete velikost fontu mezi %d a %d body." IDS_SAVE_BUTTON "&Uložit" diff --git a/reactos/dll/win32/comdlg32/cdlg_Da.rc b/reactos/dll/win32/comdlg32/cdlg_Da.rc index 4502c93d3d8..2d92bef30bd 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Da.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Da.rc @@ -29,7 +29,7 @@ LANGUAGE LANG_DANISH, SUBLANG_DEFAULT -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Åbn" FONT 8, "MS Shell Dlg" @@ -51,7 +51,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Gem som..." FONT 8, "MS Shell Dlg" @@ -73,7 +73,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Udskriv" FONT 8, "MS Shell Dlg" @@ -96,7 +96,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Udskriftsindstilling" FONT 8, "MS Shell Dlg" @@ -122,7 +122,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Skrifttyper" FONT 8, "MS Shell Dlg" @@ -154,7 +154,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Farve" FONT 8, "MS Shell Dlg" @@ -188,7 +188,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Find" FONT 8, "MS Shell Dlg" @@ -207,7 +207,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Erstat" FONT 8, "MS Shell Dlg" @@ -227,7 +227,7 @@ FONT 8, "MS Shell Dlg" } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Udskriv" @@ -267,7 +267,7 @@ FONT 8, "MS Shell Dlg" RTEXT "&til:", stc3, 100,124, 16,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Printer Indstillinger" @@ -302,7 +302,7 @@ BEGIN CONTROL "L&andskab", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Papir opsætning" FONT 8, "MS Shell Dlg" @@ -332,7 +332,7 @@ BEGIN PUSHBUTTON "P&rinter...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Åbn" FONT 8, "MS Shell Dlg" @@ -356,7 +356,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Hjælp", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&Om FolderPicker Test" IDS_DOCUMENTFOLDERS "Dokument foldere" @@ -368,7 +368,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "Min computer" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "System mapper" IDS_LOCALHARDRIVES "Lokale harddiske" @@ -382,7 +382,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "Filen eksisterer ikke." } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "Et niveau op" IDS_NEWFOLDER "Opret ny mappe" @@ -391,7 +391,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Gennemse skrivebordet" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Udskriv" @@ -448,7 +448,7 @@ Installer venligst en og prøv igen." PD32_PRINTER_STATUS_POWER_SAVE "Energispare mode; " } -STRINGTABLE DISCARDABLE /* Font styles */ +STRINGTABLE /* Font styles */ { IDS_FONT_REGULAR "Normal" IDS_FONT_BOLD "Fed" @@ -458,7 +458,7 @@ STRINGTABLE DISCARDABLE /* Font styles */ -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "Sort" IDS_COLOR_MAROON "Mørkerød" @@ -479,7 +479,7 @@ STRINGTABLE DISCARDABLE /* Color names */ } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Vælg en skrift størrelse mellem %d og %d punkter." IDS_SAVE_BUTTON "&Gem" diff --git a/reactos/dll/win32/comdlg32/cdlg_De.rc b/reactos/dll/win32/comdlg32/cdlg_De.rc index 787a85e0f0c..a471584a992 100644 --- a/reactos/dll/win32/comdlg32/cdlg_De.rc +++ b/reactos/dll/win32/comdlg32/cdlg_De.rc @@ -28,7 +28,7 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Öffnen" FONT 8, "MS Shell Dlg" @@ -50,7 +50,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Speichern als..." FONT 8, "MS Shell Dlg" @@ -72,7 +72,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Drucken" FONT 8, "MS Shell Dlg" @@ -95,7 +95,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Druckereinrichtung" FONT 8, "MS Shell Dlg" @@ -120,7 +120,7 @@ FONT 8, "MS Shell Dlg" COMBOBOX 1138, 155, 110, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP } -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Seite einrichten" FONT 8, "MS Shell Dlg" @@ -151,7 +151,7 @@ BEGIN END -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Schriftart" FONT 8, "MS Shell Dlg" @@ -183,7 +183,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Farbe" FONT 8, "MS Shell Dlg" @@ -217,7 +217,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 30, 73, 241, 63 +FINDDLGORD DIALOG 30, 73, 241, 63 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Suchen" FONT 8, "MS Shell Dlg" @@ -235,7 +235,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 44, 240, 94 +REPLACEDLGORD DIALOG 36, 44, 240, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Ersetzen" FONT 8, "MS Shell Dlg" @@ -253,7 +253,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Hilfe", pshHelp, 175, 74, 60, 14, WS_GROUP | WS_TABSTOP } -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Öffnen" FONT 8, "MS Shell Dlg" @@ -277,7 +277,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Hilfe", pshHelp,222,145,50,14 } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 295, 186 +PRINT32 DIALOG 32, 32, 295, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Drucken" @@ -317,7 +317,7 @@ FONT 8, "MS Shell Dlg" RTEXT "&bis:", stc3, 100,124, 16,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Druckereinrichtung" @@ -352,7 +352,7 @@ BEGIN CONTROL "&Querformat", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "Ü&ber den Folderpicker" IDS_DOCUMENTFOLDERS "Dokumenten Ordner" @@ -364,7 +364,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "Arbeitsplatz" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "System Ordner" IDS_LOCALHARDRIVES "Lokale Festplatten" @@ -378,7 +378,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "Die Datei existiert nicht" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "Eine Verzeichnisebene höher" IDS_NEWFOLDER "Neuen Ordner anlegen" @@ -387,7 +387,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Desktopordner anzeigen" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Drucken" @@ -442,7 +442,7 @@ Bitte geben sie einen Wert zwischen %d und %d an." PD32_PRINTER_STATUS_POWER_SAVE "Stromsparmodus; " } -STRINGTABLE DISCARDABLE /* Font styles */ +STRINGTABLE /* Font styles */ { IDS_FONT_REGULAR "Normal" IDS_FONT_BOLD "Fett" @@ -450,7 +450,7 @@ STRINGTABLE DISCARDABLE /* Font styles */ IDS_FONT_BOLD_ITALIC "Fett Kursiv" } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "Schwarz" IDS_COLOR_MAROON "Kastanienbraun" @@ -470,7 +470,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "Weiß" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Wählen Sie eine Schriftgröße zwischen %d und %d Punkten aus." IDS_SAVE_BUTTON "&Speichern" diff --git a/reactos/dll/win32/comdlg32/cdlg_El.rc b/reactos/dll/win32/comdlg32/cdlg_El.rc index 309cda955c2..505a889395c 100644 --- a/reactos/dll/win32/comdlg32/cdlg_El.rc +++ b/reactos/dll/win32/comdlg32/cdlg_El.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_GREEK, SUBLANG_DEFAULT -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "¢íïéãìá" FONT 8, "MS Shell Dlg" @@ -47,7 +47,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "ÁðïèÞêåõóç ùò..." FONT 8, "MS Shell Dlg" @@ -69,7 +69,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Åêôýðùóç" FONT 8, "MS Shell Dlg" @@ -92,7 +92,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "ÅãêáôÜóôáóç åêôõðùôÞ" FONT 8, "MS Shell Dlg" @@ -118,7 +118,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "ÃñáììáôïóåéñÜ" FONT 8, "MS Shell Dlg" @@ -150,7 +150,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "×ñþìá" FONT 8, "MS Shell Dlg" @@ -184,7 +184,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Åýñåóç" FONT 8, "MS Shell Dlg" @@ -203,7 +203,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "ÁíôéêáôÜóôáóç" FONT 8, "MS Shell Dlg" @@ -223,7 +223,7 @@ FONT 8, "MS Shell Dlg" } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Åêôýðùóç" @@ -263,7 +263,7 @@ FONT 8, "MS Shell Dlg" RTEXT "&Ýùò:", stc3, 100,124, 16,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Ñýèìéóç åêôýðùóçò" @@ -298,7 +298,7 @@ BEGIN CONTROL "L&andscape", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Ñýèìéóç óåëßäáò" FONT 8, "MS Shell Dlg" @@ -328,7 +328,7 @@ BEGIN PUSHBUTTON "Åê&ôõðùôÞò...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "¢íïéãìá" FONT 8, "MS Shell Dlg" @@ -352,7 +352,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&ÂïÞèåéá", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&About FolderPicker Test" IDS_DOCUMENTFOLDERS "Document Folders" @@ -364,7 +364,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "Ï ÕðïëïãéóôÞò ìïõ" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "ÊáôÜëïãïé ÓõóôÞìáôïò" IDS_LOCALHARDRIVES "Ôïðéêïß Óêëçñïß Äßóêïé" @@ -378,7 +378,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "Ôï áñ÷åßï äåí õðÜñ÷åé" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "¸íá åðßðåäï ðÜíù" IDS_NEWFOLDER "Äçìéïõñãßá íÝïõ êáôáëüãïõ" @@ -387,7 +387,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Browse to Desktop" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Åêôýðùóç" @@ -446,7 +446,7 @@ Please install one and retry." PD32_PRINTER_STATUS_POWER_SAVE "Power save mode; " } -STRINGTABLE DISCARDABLE /* Font styles */ +STRINGTABLE /* Font styles */ { IDS_FONT_REGULAR "ÊáíïíéêÜ" IDS_FONT_BOLD "¸íôïíá" @@ -454,7 +454,7 @@ STRINGTABLE DISCARDABLE /* Font styles */ IDS_FONT_BOLD_ITALIC "¸íôïíá ÐëÜãéá" } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "Ìáýñï" IDS_COLOR_MAROON "Maroon" @@ -474,7 +474,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "¢óðñï" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "ÅðéëÝîôå ìÝãåèïò ãñáììáôïóåéñÜò ìåôáîý %d êáé %d ðüíôïõò." IDS_SAVE_BUTTON "&ÁðïèÞêåõóç" diff --git a/reactos/dll/win32/comdlg32/cdlg_En.rc b/reactos/dll/win32/comdlg32/cdlg_En.rc index c6889b41947..15b985ed6ce 100644 --- a/reactos/dll/win32/comdlg32/cdlg_En.rc +++ b/reactos/dll/win32/comdlg32/cdlg_En.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Open" FONT 8, "MS Shell Dlg" @@ -47,7 +47,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Save As..." FONT 8, "MS Shell Dlg" @@ -69,7 +69,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Print" FONT 8, "MS Shell Dlg" @@ -92,7 +92,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Print Setup" FONT 8, "MS Shell Dlg" @@ -118,7 +118,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Font" FONT 8, "MS Shell Dlg" @@ -150,7 +150,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Color" FONT 8, "MS Shell Dlg" @@ -184,7 +184,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Find" FONT 8, "MS Shell Dlg" @@ -203,7 +203,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Replace" FONT 8, "MS Shell Dlg" @@ -223,7 +223,7 @@ FONT 8, "MS Shell Dlg" } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Print" @@ -263,7 +263,7 @@ FONT 8, "MS Shell Dlg" RTEXT "&to:", stc3, 100,124, 16,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Print Setup" @@ -298,7 +298,7 @@ BEGIN CONTROL "L&andscape", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Setup Page" FONT 8, "MS Shell Dlg" @@ -328,7 +328,7 @@ BEGIN PUSHBUTTON "P&rinter...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Open" FONT 8, "MS Shell Dlg" @@ -352,7 +352,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Help", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&About FolderPicker Test" IDS_DOCUMENTFOLDERS "Document Folders" @@ -364,7 +364,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "My Computer" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "System Folders" IDS_LOCALHARDRIVES "Local Hard Drives" @@ -378,7 +378,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "File does not exist" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "Up One Level" IDS_NEWFOLDER "Create New Folder" @@ -387,7 +387,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Browse to Desktop" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Print" @@ -446,7 +446,7 @@ Please install one and retry." PD32_PRINTER_STATUS_POWER_SAVE "Power save mode; " } -STRINGTABLE DISCARDABLE /* Font styles */ +STRINGTABLE /* Font styles */ { IDS_FONT_REGULAR "Regular" IDS_FONT_BOLD "Bold" @@ -454,7 +454,7 @@ STRINGTABLE DISCARDABLE /* Font styles */ IDS_FONT_BOLD_ITALIC "Bold Italic" } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "Black" IDS_COLOR_MAROON "Maroon" @@ -474,7 +474,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "White" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Select a font size between %d and %d points." IDS_SAVE_BUTTON "&Save" @@ -491,7 +491,7 @@ STRINGTABLE DISCARDABLE LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Font" FONT 8, "MS Shell Dlg" @@ -523,7 +523,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Colour" FONT 8, "MS Shell Dlg" @@ -556,7 +556,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&i",713,300,200,4,14 /* just a dummy: 'i' is like &i in "sol&id" */ } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "Black" IDS_COLOR_MAROON "Maroon" diff --git a/reactos/dll/win32/comdlg32/cdlg_Es.rc b/reactos/dll/win32/comdlg32/cdlg_Es.rc index 8327e6ab015..4934441e4ca 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Es.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Es.rc @@ -26,7 +26,7 @@ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Abrir" FONT 8, "MS Shell Dlg" @@ -48,7 +48,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Guardar como..." FONT 8, "MS Shell Dlg" @@ -70,7 +70,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Imprimir" FONT 8, "MS Shell Dlg" @@ -93,7 +93,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Configuración de impresión" FONT 8, "MS Shell Dlg" @@ -119,7 +119,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Fuente" FONT 8, "MS Shell Dlg" @@ -151,7 +151,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Color" FONT 8, "MS Shell Dlg" @@ -185,7 +185,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Buscar" FONT 8, "MS Shell Dlg" @@ -204,7 +204,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Reemplazar" FONT 8, "MS Shell Dlg" @@ -224,7 +224,7 @@ FONT 8, "MS Shell Dlg" } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Imprimir" @@ -264,7 +264,7 @@ FONT 8, "MS Shell Dlg" RTEXT "&hasta:", stc3, 100,124, 16,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Configuración de impresión" @@ -299,7 +299,7 @@ BEGIN CONTROL "A&paisado", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Configuración de página" FONT 8, "MS Shell Dlg" @@ -329,7 +329,7 @@ BEGIN PUSHBUTTON "&Impresora...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Abrir" FONT 8, "MS Shell Dlg" @@ -353,7 +353,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Ayuda", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&Acerca del test FolderPicker" IDS_DOCUMENTFOLDERS "Carpetas de documentos" @@ -365,7 +365,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "Mi PC" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "Carpetas del sistema" IDS_LOCALHARDRIVES "Discos duros locales" @@ -379,7 +379,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "El archivo no existe" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "Subir un nivel" IDS_NEWFOLDER "Crear nueva carpeta" @@ -388,7 +388,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Explorar el escritorio" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Imprimir" @@ -449,7 +449,7 @@ Por favor, instale una y vuelva a intentarlo." PD32_PRINTER_STATUS_POWER_SAVE "Modo de ahorro de energía; " } -STRINGTABLE DISCARDABLE /* Font styles */ +STRINGTABLE /* Font styles */ { IDS_FONT_REGULAR "Normal" IDS_FONT_BOLD "Negrita" @@ -457,7 +457,7 @@ STRINGTABLE DISCARDABLE /* Font styles */ IDS_FONT_BOLD_ITALIC "Cursiva negrita" } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "Negro" IDS_COLOR_MAROON "Granate" @@ -477,7 +477,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "Blanco" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Elija un tamaño de fuente entre %d y %d puntos." IDS_SAVE_BUTTON "&Guardar" diff --git a/reactos/dll/win32/comdlg32/cdlg_Fi.rc b/reactos/dll/win32/comdlg32/cdlg_Fi.rc index dbe273f9fb6..19f61a94325 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Fi.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Fi.rc @@ -26,7 +26,7 @@ LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Avaa" FONT 8, "MS Shell Dlg" @@ -48,7 +48,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Tallenna nimellä" FONT 8, "MS Shell Dlg" @@ -70,7 +70,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Tulosta" FONT 8, "MS Shell Dlg" @@ -93,7 +93,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Kirjoittimen asetukset" FONT 8, "MS Shell Dlg" @@ -119,7 +119,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Fontit" FONT 8, "MS Shell Dlg" @@ -151,7 +151,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Väri" FONT 8, "MS Shell Dlg" @@ -185,7 +185,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Etsi" FONT 8, "MS Shell Dlg" @@ -204,7 +204,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Korvaa" FONT 8, "MS Shell Dlg" @@ -223,7 +223,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "O&hje", pshHelp , 174, 75, 50, 14, WS_GROUP | WS_TABSTOP } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Tulosta" @@ -263,7 +263,7 @@ FONT 8, "MS Shell Dlg" RTEXT "Mi&hin:", stc3, 98,124, 20,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Tulostuksen Asetukset" @@ -298,7 +298,7 @@ BEGIN CONTROL "V&aaka", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Sivun Asetukset" FONT 8, "MS Shell Dlg" @@ -328,7 +328,7 @@ BEGIN PUSHBUTTON "T&ulostin...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Avaa" FONT 8, "MS Shell Dlg" @@ -352,7 +352,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Ohje", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&Tietoja FolderPicker Test:stä" IDS_DOCUMENTFOLDERS "Dokumenttikansiot" @@ -364,7 +364,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "Oma Tietokone" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "Järjestemäkansiot" IDS_LOCALHARDRIVES "Paikalliset kiintolevyt" @@ -378,7 +378,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "Tiedostoa ei ole" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "Kansio Ylöspäin" IDS_NEWFOLDER "Luo Uusi Kansio" @@ -387,7 +387,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Selaa Työpöytää" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Tulosta" @@ -441,7 +441,7 @@ Please install one and retry." PD32_PRINTER_STATUS_POWER_SAVE "Virransäästötila; " } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "Musta" IDS_COLOR_MAROON "Kastanjanruskea" @@ -461,7 +461,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "Valkoinen" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Valitse fontin koko väliltä %d ja %d pistettä." IDS_SAVE_BUTTON "&Tallenna" diff --git a/reactos/dll/win32/comdlg32/cdlg_Fr.rc b/reactos/dll/win32/comdlg32/cdlg_Fr.rc index 881cbab6f9c..9a3233a7505 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Fr.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Fr.rc @@ -33,7 +33,7 @@ LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Ouvrir" FONT 8, "MS Shell Dlg" @@ -55,7 +55,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Enregistrer sous..." FONT 8, "MS Shell Dlg" @@ -77,7 +77,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Imprimer" FONT 8, "MS Shell Dlg" @@ -100,7 +100,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Configuration de l'impression" FONT 8, "MS Shell Dlg" @@ -126,7 +126,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Police" FONT 8, "MS Shell Dlg" @@ -158,7 +158,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Couleurs" FONT 8, "MS Shell Dlg" @@ -192,7 +192,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Rechercher" FONT 8, "MS Shell Dlg" @@ -211,7 +211,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Remplacer" FONT 8, "MS Shell Dlg" @@ -231,7 +231,7 @@ FONT 8, "MS Shell Dlg" } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Impression" @@ -271,7 +271,7 @@ FONT 8, "MS Shell Dlg" RTEXT "&à :", stc3, 100,127, 16,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Configuration de l'imprimante" @@ -306,7 +306,7 @@ BEGIN CONTROL "Pa&ysage", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Mise en page" FONT 8, "MS Shell Dlg" @@ -336,7 +336,7 @@ BEGIN PUSHBUTTON "&Imprimante...", psh3, 184, 220, 51, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Ouvrir" FONT 8, "MS Shell Dlg" @@ -360,7 +360,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "Aid&e", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "À propos du sélecteur de répertoires" IDS_DOCUMENTFOLDERS "Répertoires des documents" @@ -372,7 +372,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "Poste de travail" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "Répertoires système" IDS_LOCALHARDRIVES "Disques locaux" @@ -386,7 +386,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "Le fichier n'existe pas" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "Remonter d'un niveau" IDS_NEWFOLDER "Créer un nouveau dossier" @@ -395,7 +395,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Voir le bureau" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Imprimer" @@ -454,7 +454,7 @@ Veuillez en installer une et réessayez." PD32_PRINTER_STATUS_POWER_SAVE "Mode économie d'énergie ; " } -STRINGTABLE DISCARDABLE /* Font styles */ +STRINGTABLE /* Font styles */ { IDS_FONT_REGULAR "Normal" IDS_FONT_BOLD "Gras" @@ -463,7 +463,7 @@ STRINGTABLE DISCARDABLE /* Font styles */ } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "Noir" IDS_COLOR_MAROON "Marron" @@ -483,7 +483,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "Blanc" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Sélectionnez une taille de police entre %d et %d points." IDS_SAVE_BUTTON "&Enregistrer" diff --git a/reactos/dll/win32/comdlg32/cdlg_Hu.rc b/reactos/dll/win32/comdlg32/cdlg_Hu.rc index f207bc90454..53af1675b06 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Hu.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Hu.rc @@ -49,7 +49,7 @@ FONT 8, "MS Shell Dlg" CONTROL "&Csak olvasható", 1040, "BUTTON", BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP, 208, 68, 63, 12 } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Mentés másként..." FONT 8, "MS Shell Dlg" @@ -71,7 +71,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Nyomtatás" FONT 8, "MS Shell Dlg" @@ -93,7 +93,7 @@ FONT 8, "MS Shell Dlg" CHECKBOX "Sűrű", 1041, 160, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP } -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Oldalbeállítás" FONT 8, "MS Shell Dlg" @@ -123,7 +123,7 @@ BEGIN PUSHBUTTON "Ny&omtató...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Megnyitás" FONT 8, "MS Shell Dlg" @@ -149,7 +149,7 @@ FONT 8, "MS Shell Dlg" -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Nyomtató beállítása" FONT 8, "MS Shell Dlg" @@ -175,7 +175,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Betûtípus" FONT 8, "MS Shell Dlg" @@ -207,7 +207,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Szín" FONT 8, "MS Shell Dlg" @@ -240,7 +240,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&t",713,300,200,4,14 /* just a dummy: 'i' is like &i in "sol&id" */ } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Keresés" FONT 8, "MS Shell Dlg" @@ -275,7 +275,7 @@ BEGIN CONTROL "&Súgó", 1038, "BUTTON", WS_GROUP | WS_TABSTOP, 174, 75, 53, 14 END -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Nyomtatás" @@ -315,7 +315,7 @@ FONT 8, "MS Shell Dlg" RTEXT "Ed&dig:", stc3, 100,124, 16,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Nyomtatás beállítás" @@ -350,7 +350,7 @@ BEGIN CONTROL "Fe&kvõ", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "M&appaválasztó teszt névjegye" IDS_DOCUMENTFOLDERS "Dokumentum mappák" @@ -362,7 +362,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "Számítógép" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "Rendszermappák" IDS_LOCALHARDRIVES "Helyi merevlemezek" @@ -376,7 +376,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "Fájl nem létezik" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "Feljebb egy szintet" IDS_NEWFOLDER "Új mappa léterehozása" @@ -385,7 +385,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Navigálás az asztalra" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Nyomtatás" @@ -443,7 +443,7 @@ Please install one and retry." PD32_PRINTER_STATUS_POWER_SAVE "energiatakarékos mód; " } -STRINGTABLE DISCARDABLE /* Font styles */ +STRINGTABLE /* Font styles */ { IDS_FONT_REGULAR "Szokásos" IDS_FONT_BOLD "Félkövér" @@ -451,7 +451,7 @@ STRINGTABLE DISCARDABLE /* Font styles */ IDS_FONT_BOLD_ITALIC "Félkövér dõlt" } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "Fekete" IDS_COLOR_MAROON "Gesztenyebarna" @@ -471,7 +471,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "Fehér" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Válasszon betûméretet %d és %d pont között." IDS_SAVE_BUTTON "&Mentés" diff --git a/reactos/dll/win32/comdlg32/cdlg_It.rc b/reactos/dll/win32/comdlg32/cdlg_It.rc index 1e3c6075271..e8bb6d4cd4b 100644 --- a/reactos/dll/win32/comdlg32/cdlg_It.rc +++ b/reactos/dll/win32/comdlg32/cdlg_It.rc @@ -31,7 +31,7 @@ LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Apri" FONT 8, "MS Shell Dlg" @@ -53,7 +53,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Salva con nome..." FONT 8, "MS Shell Dlg" @@ -75,7 +75,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Stampa" FONT 8, "MS Shell Dlg" @@ -98,7 +98,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 274, 154 +PRINT_SETUP DIALOG 36, 24, 274, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Configurazione Stampante" FONT 8, "MS Shell Dlg" @@ -124,7 +124,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Carattere" FONT 8, "MS Shell Dlg" @@ -156,7 +156,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Colore" FONT 8, "MS Shell Dlg" @@ -190,7 +190,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Trova" FONT 8, "MS Shell Dlg" @@ -209,7 +209,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Sostituisci" FONT 8, "MS Shell Dlg" @@ -228,7 +228,7 @@ FONT 8, "MS Shell Dlg" } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Stampa" @@ -268,7 +268,7 @@ FONT 8, "MS Shell Dlg" RTEXT "&a:", stc3, 100,124, 16,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Configurazione Stampante" @@ -303,7 +303,7 @@ BEGIN CONTROL "V&erticale", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Setup di Pagina" FONT 8, "MS Shell Dlg" @@ -333,7 +333,7 @@ BEGIN PUSHBUTTON "S&tampante...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Apri" FONT 8, "MS Shell Dlg" @@ -357,7 +357,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Aiuto", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&Informazioni sul Test FolderPicker" IDS_DOCUMENTFOLDERS "Cartelle Documenti" @@ -369,7 +369,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "Risorse del Computer" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "Cartelle di Sistema" IDS_LOCALHARDRIVES "Dischi Rigidi Locali" @@ -383,7 +383,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "Il file non esiste" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "Su di un livello" IDS_NEWFOLDER "Crea nuova directory" @@ -392,7 +392,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Vai al Desktop" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Stampa" @@ -444,7 +444,7 @@ STRINGTABLE DISCARDABLE PD32_PRINTER_STATUS_POWER_SAVE "Modalitè risparmio energetico; " } -STRINGTABLE DISCARDABLE /* Font styles */ +STRINGTABLE /* Font styles */ { IDS_FONT_REGULAR "Regolare" IDS_FONT_BOLD "Grassetto" @@ -452,7 +452,7 @@ STRINGTABLE DISCARDABLE /* Font styles */ IDS_FONT_BOLD_ITALIC "Grassetto Corsivo" } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "Nero" IDS_COLOR_MAROON "Marrone rossiccio" @@ -472,7 +472,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "Bianco" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Scegli la dimesione del carattere tra %d e %d punti." IDS_SAVE_BUTTON "Salva" diff --git a/reactos/dll/win32/comdlg32/cdlg_Ja.rc b/reactos/dll/win32/comdlg32/cdlg_Ja.rc index 6e1687719b8..c4fc84f67bd 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Ja.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Ja.rc @@ -28,7 +28,7 @@ LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "ファイルを開く" FONT 9, "MS Shell Dlg" @@ -50,7 +50,7 @@ FONT 9, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "名前をつけて保存" FONT 9, "MS Shell Dlg" @@ -72,7 +72,7 @@ FONT 9, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "印刷" FONT 9, "MS Shell Dlg" @@ -95,7 +95,7 @@ FONT 9, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "プリンタの設定" FONT 9, "MS Shell Dlg" @@ -121,7 +121,7 @@ FONT 9, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "フォントの指定" FONT 9, "MS Shell Dlg" @@ -153,7 +153,7 @@ FONT 9, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "色の設定" FONT 9, "MS Shell Dlg" @@ -187,7 +187,7 @@ FONT 9, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "文字列の検索" FONT 9, "MS Shell Dlg" @@ -206,7 +206,7 @@ FONT 9, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "文字列の置換" FONT 9, "MS Shell Dlg" @@ -226,7 +226,7 @@ FONT 9, "MS Shell Dlg" } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "印刷" @@ -266,7 +266,7 @@ FONT 9, "MS Shell Dlg" RTEXT "ページまで(&T):", stc3, 100,124, 16,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "印刷の設定" @@ -301,7 +301,7 @@ BEGIN CONTROL "横(&A)", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ページ設定" FONT 9, "MS Shell Dlg" @@ -331,7 +331,7 @@ BEGIN PUSHBUTTON "プリンタ(&R)...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "ファイルを開く" FONT 9, "MS Shell Dlg" @@ -355,7 +355,7 @@ FONT 9, "MS Shell Dlg" PUSHBUTTON "ヘルプ(&H)", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&About FolderPicker Test" IDS_DOCUMENTFOLDERS "ドキュメント フォルダ" @@ -367,7 +367,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "マイ コンピュータ" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "システム フォルダ" IDS_LOCALHARDRIVES "ローカル ハード ドライブ" @@ -381,7 +381,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "ファイルが見つかりません" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "一つ上のフォルダへ" IDS_NEWFOLDER "新しいフォルダの作成" @@ -390,7 +390,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "デスクトップを参照" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "印刷" @@ -448,7 +448,7 @@ STRINGTABLE DISCARDABLE PD32_PRINTER_STATUS_POWER_SAVE "省電力モード -" } -STRINGTABLE DISCARDABLE /* Font styles */ +STRINGTABLE /* Font styles */ { IDS_FONT_REGULAR "標準" IDS_FONT_BOLD "太字" @@ -456,7 +456,7 @@ STRINGTABLE DISCARDABLE /* Font styles */ IDS_FONT_BOLD_ITALIC "太字 斜体" } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "黒" IDS_COLOR_MAROON "茶色" @@ -476,7 +476,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "白" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "フォントサイズを %d ポイントから %d ポイントの間で選択してください。" IDS_SAVE_BUTTON "保存(&S)" diff --git a/reactos/dll/win32/comdlg32/cdlg_Ko.rc b/reactos/dll/win32/comdlg32/cdlg_Ko.rc index 1fc97981b71..ef19acbaf26 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Ko.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Ko.rc @@ -27,7 +27,7 @@ LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "¿­±â" FONT 9, "MS Shell Dlg" @@ -49,7 +49,7 @@ FONT 9, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "´Ù¸¥ À̸§À¸·Î ÀúÀå..." FONT 9, "MS Shell Dlg" @@ -71,7 +71,7 @@ FONT 9, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Àμâ" FONT 9, "MS Shell Dlg" @@ -94,7 +94,7 @@ FONT 9, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Àμ⠼³Á¤" FONT 9, "MS Shell Dlg" @@ -120,7 +120,7 @@ FONT 9, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "±Û²Ã" FONT 9, "MS Shell Dlg" @@ -152,7 +152,7 @@ FONT 9, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "»ö»ó" FONT 9, "MS Shell Dlg" @@ -186,7 +186,7 @@ FONT 9, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "ã±â" FONT 9, "MS Shell Dlg" @@ -205,7 +205,7 @@ FONT 9, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "¹Ù²Ù±â" FONT 9, "MS Shell Dlg" @@ -225,7 +225,7 @@ FONT 9, "MS Shell Dlg" } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Àμâ" @@ -265,7 +265,7 @@ FONT 9, "MS Shell Dlg" RTEXT "³¡(&T):", stc3, 120,113, 22,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "ÇÁ¸°ÅÍ ¼³Á¤" @@ -300,7 +300,7 @@ BEGIN CONTROL "°¡·Î(&A)", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ÆäÀÌÁö ¼³Á¤" FONT 9, "MS Shell Dlg" @@ -330,7 +330,7 @@ BEGIN PUSHBUTTON "ÇÁ¸°ÅÍ(&R)...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "¿­±â" FONT 9, "MS Shell Dlg" @@ -354,7 +354,7 @@ FONT 9, "MS Shell Dlg" PUSHBUTTON "µµ¿ò¸»(&H)", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "Æú´õ-¼±Åñâ-Å×½ºÆ® Á¤º¸(&A)" IDS_DOCUMENTFOLDERS "¹®¼­ Æú´õ" @@ -366,7 +366,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "³» ÄÄÇ»ÅÍ" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "½Ã½ºÅÛ Æú´õ" IDS_LOCALHARDRIVES "·ÎÄà ÇÏµå µå¶óÀ̺ê" @@ -380,7 +380,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "ÇÑ ´Ü°è À§·Î" IDS_NEWFOLDER "»õ Æú´õ ¸¸µé±â" @@ -389,7 +389,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "µ¥½ºÅ©Å¾ ¿­±â" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Àμâ" @@ -448,7 +448,7 @@ STRINGTABLE DISCARDABLE PD32_PRINTER_STATUS_POWER_SAVE "Àü¿ø Àý¾à ¸ðµå; " } -STRINGTABLE DISCARDABLE /* Font styles */ +STRINGTABLE /* Font styles */ { IDS_FONT_REGULAR "º¸Åë" IDS_FONT_BOLD "±½°Ô" @@ -456,7 +456,7 @@ STRINGTABLE DISCARDABLE /* Font styles */ IDS_FONT_BOLD_ITALIC "±½Àº ±â¿òÀÓ²Ã" } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "°ËÁ¤" IDS_COLOR_MAROON "¹ã»ö" @@ -476,7 +476,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "ÇϾç" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "%d ¿Í %d Æ÷ÀÎÆ® »çÀÌ¿¡¼­ ±Û²Ã Å©±â ¼±ÅÃ." IDS_SAVE_BUTTON "ÀúÀå(&S)" diff --git a/reactos/dll/win32/comdlg32/cdlg_Lt.rc b/reactos/dll/win32/comdlg32/cdlg_Lt.rc index c4bbf982d6d..d580c80ebef 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Lt.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Lt.rc @@ -28,7 +28,7 @@ LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Atverti" FONT 8, "MS Shell Dlg" @@ -50,7 +50,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "IÅ¡saugoti kaip..." FONT 8, "MS Shell Dlg" @@ -72,7 +72,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Spausdinti" FONT 8, "MS Shell Dlg" @@ -95,7 +95,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Spausdintuvo nuostatos" FONT 8, "MS Shell Dlg" @@ -121,7 +121,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Å riftas" FONT 8, "MS Shell Dlg" @@ -153,7 +153,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Spalva" FONT 8, "MS Shell Dlg" @@ -187,7 +187,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "IeÅ¡koti" FONT 8, "MS Shell Dlg" @@ -206,7 +206,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Pakeisti" FONT 8, "MS Shell Dlg" @@ -226,7 +226,7 @@ FONT 8, "MS Shell Dlg" } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Spausdinti" @@ -266,7 +266,7 @@ FONT 8, "MS Shell Dlg" RTEXT "iki:", stc3, 100,124, 16,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Spausdintuvo nuostatos" @@ -301,7 +301,7 @@ BEGIN CONTROL "&Gulsčias", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Puslapio nuostatos" FONT 8, "MS Shell Dlg" @@ -331,7 +331,7 @@ BEGIN PUSHBUTTON "S&pausdintuvas...", psh3, 171, 220, 61, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Atverti" FONT 8, "MS Shell Dlg" @@ -355,7 +355,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Žinynas", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&Apie FolderPicker testą" IDS_DOCUMENTFOLDERS "Dokumentų aplankai" @@ -367,7 +367,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "Kompiuteris" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "Sistemos aplankai" IDS_LOCALHARDRIVES "Vietiniai standieji diskai" @@ -381,7 +381,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "Failas neegzistuoja" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "AukÅ¡tyn vienu lygiu" IDS_NEWFOLDER "Sukurti naują aplanką" @@ -390,7 +390,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Pereiti į darbalaukį" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Spausdinti" @@ -447,7 +447,7 @@ PraÅ¡ome įdiegti spausdintuvą ir pakartoti." PD32_PRINTER_STATUS_POWER_SAVE "Energijos taupymo režimas; " } -STRINGTABLE DISCARDABLE /* Font styles */ +STRINGTABLE /* Font styles */ { IDS_FONT_REGULAR "Normalus" IDS_FONT_BOLD "Pusjuodis" @@ -455,7 +455,7 @@ STRINGTABLE DISCARDABLE /* Font styles */ IDS_FONT_BOLD_ITALIC "Pusjuodis kursyvas" } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "Juoda" IDS_COLOR_MAROON "KaÅ¡toninė" @@ -475,7 +475,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "Balta" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Pasirinkite Å¡rifto dydį tarp %d ir %d taÅ¡kų." IDS_SAVE_BUTTON "&IÅ¡saugoti" diff --git a/reactos/dll/win32/comdlg32/cdlg_Nl.rc b/reactos/dll/win32/comdlg32/cdlg_Nl.rc index d17ca9296c2..fe3b09d06c3 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Nl.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Nl.rc @@ -28,7 +28,7 @@ LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL #pragma code_page(65001) -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Bestand openen" FONT 8, "MS Shell Dlg" @@ -50,7 +50,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Opslaan als..." FONT 8, "MS Shell Dlg" @@ -72,7 +72,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Afdrukken" FONT 8, "MS Shell Dlg" @@ -95,7 +95,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Afdrukeigenschappen" FONT 8, "MS Shell Dlg" @@ -121,7 +121,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Lettertype" FONT 8, "MS Shell Dlg" @@ -153,7 +153,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Kleur" FONT 8, "MS Shell Dlg" @@ -187,7 +187,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 246, 72 +FINDDLGORD DIALOG 36, 24, 246, 72 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Tekst zoeken" FONT 8, "MS Shell Dlg" @@ -206,7 +206,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 240, 94 +REPLACEDLGORD DIALOG 36, 24, 240, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Tekst vervangen" FONT 8, "MS Shell Dlg" @@ -225,7 +225,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Help", pshHelp , 174, 75, 60, 14, WS_GROUP | WS_TABSTOP } -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Openen" FONT 8, "MS Shell Dlg" @@ -249,7 +249,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Help", pshHelp,222,145,50,14 } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Afdrukken" @@ -289,7 +289,7 @@ FONT 8, "MS Shell Dlg" RTEXT "&t/m:", stc3, 100,124, 16,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Afdrukeigenschappen" @@ -323,7 +323,7 @@ BEGIN CONTROL "L&iggend", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Pagina-instellingen" FONT 8, "MS Shell Dlg" @@ -354,7 +354,7 @@ BEGIN END -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&Info over FolderPicker" IDS_DOCUMENTFOLDERS "Documenten Mappen" @@ -366,7 +366,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "Deze Computer" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "Systeemmappen" IDS_LOCALHARDRIVES "Lokale vaste schijven" @@ -380,7 +380,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "Kan het bestand niet vinden" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "Bovenliggende map" IDS_NEWFOLDER "Nieuwe map aanmaken" @@ -389,7 +389,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Ga naar Bureaublad" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Afdrukken" @@ -451,7 +451,7 @@ wachtrij" PD32_PRINTER_STATUS_POWER_SAVE "Power save modus; " } -STRINGTABLE DISCARDABLE /* Font styles */ +STRINGTABLE /* Font styles */ { IDS_FONT_REGULAR "Normaal" IDS_FONT_BOLD "Vet" @@ -459,7 +459,7 @@ STRINGTABLE DISCARDABLE /* Font styles */ IDS_FONT_BOLD_ITALIC "Vet-Cursief" } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "Zwart" IDS_COLOR_MAROON "Kastanjebruin" @@ -479,7 +479,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "Wit" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Selecteer een lettertype tussen %d en %d punten." IDS_SAVE_BUTTON "&Opslaan" diff --git a/reactos/dll/win32/comdlg32/cdlg_No.rc b/reactos/dll/win32/comdlg32/cdlg_No.rc index 75e8f792405..d18a2a73e7b 100644 --- a/reactos/dll/win32/comdlg32/cdlg_No.rc +++ b/reactos/dll/win32/comdlg32/cdlg_No.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Åpne" FONT 8, "MS Shell Dlg" @@ -47,7 +47,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Lagre som..." FONT 8, "MS Shell Dlg" @@ -69,7 +69,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Skriv ut" FONT 8, "MS Shell Dlg" @@ -92,7 +92,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Utskriftsinnstillinger" FONT 8, "MS Shell Dlg" @@ -118,7 +118,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Skrift" FONT 8, "MS Shell Dlg" @@ -150,7 +150,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Farge" FONT 8, "MS Shell Dlg" @@ -184,7 +184,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Finn" FONT 8, "MS Shell Dlg" @@ -203,7 +203,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Erstatt" FONT 8, "MS Shell Dlg" @@ -223,7 +223,7 @@ FONT 8, "MS Shell Dlg" } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Skriv ut" @@ -263,7 +263,7 @@ FONT 8, "MS Shell Dlg" RTEXT "&Til:", stc3, 100,124, 16,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Utskriftoppsett" @@ -298,7 +298,7 @@ BEGIN CONTROL "&Liggende", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Sideoppsett" FONT 8, "MS Shell Dlg" @@ -328,7 +328,7 @@ BEGIN PUSHBUTTON "Sk&river...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Åpne" FONT 8, "MS Shell Dlg" @@ -352,7 +352,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Hjelp", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "Om k&atalogvelger-test" IDS_DOCUMENTFOLDERS "Dokumentmapper" @@ -364,7 +364,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "Min datamaskin" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "Systemkataloger" IDS_LOCALHARDRIVES "Lokale harddisker" @@ -378,7 +378,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "Filen finnes ikke" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "Opp ett nivå" IDS_NEWFOLDER "Lag ny katalog" @@ -387,7 +387,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Bla til skrivebordet" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Skriv ut" @@ -442,7 +442,7 @@ Oppgi en verdi mellom %d og %d." PD32_PRINTER_STATUS_POWER_SAVE "Strømsparingsmodus; " } -STRINGTABLE DISCARDABLE /* Font styles */ +STRINGTABLE /* Font styles */ { IDS_FONT_REGULAR "Normal" IDS_FONT_BOLD "Fet" @@ -450,7 +450,7 @@ STRINGTABLE DISCARDABLE /* Font styles */ IDS_FONT_BOLD_ITALIC "Fet kursiv" } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "Svart" IDS_COLOR_MAROON "Rødbrun" @@ -470,7 +470,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "Hvit" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Velg en skriftstørrelse mellom %d og %d punkter." IDS_SAVE_BUTTON "&Lagre" diff --git a/reactos/dll/win32/comdlg32/cdlg_Pl.rc b/reactos/dll/win32/comdlg32/cdlg_Pl.rc index 71c1afebe5f..9682715c8ff 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Pl.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Pl.rc @@ -27,7 +27,7 @@ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 285, 134 +OPEN_FILE DIALOG 36, 24, 285, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Otwórz" FONT 8, "MS Shell Dlg" @@ -49,7 +49,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 285, 134 +SAVE_FILE DIALOG 36, 24, 285, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Zapisz jako..." FONT 8, "MS Shell Dlg" @@ -71,7 +71,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Drukuj" FONT 8, "MS Shell Dlg" @@ -94,7 +94,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Ustawienia wydruku" FONT 8, "MS Shell Dlg" @@ -120,7 +120,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Czcionka" FONT 8, "MS Shell Dlg" @@ -152,7 +152,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Kolor" FONT 8, "MS Shell Dlg" @@ -186,7 +186,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 285, 62 +FINDDLGORD DIALOG 36, 24, 285, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "ZnajdŸ" FONT 8, "MS Shell Dlg" @@ -205,7 +205,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 94 +REPLACEDLGORD DIALOG 36, 24, 250, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Zamieñ" FONT 8, "MS Shell Dlg" @@ -225,7 +225,7 @@ FONT 8, "MS Shell Dlg" } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Drukuj" @@ -265,7 +265,7 @@ FONT 8, "MS Shell Dlg" RTEXT "&do:", stc3, 100,124, 16,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Ustawiania wydruku" @@ -300,7 +300,7 @@ BEGIN CONTROL "P&ozioma", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Ustawienia Strony" FONT 8, "MS Shell Dlg" @@ -330,7 +330,7 @@ BEGIN PUSHBUTTON "Dr&ukarka...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Otwieranie" FONT 8, "MS Shell Dlg" @@ -354,7 +354,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Pomoc", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&O FolderPicker Test" IDS_DOCUMENTFOLDERS "Katalog Dokumentów" @@ -366,7 +366,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "Mój komputer" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "Katalogi systemowe" IDS_LOCALHARDRIVES "Lokalne dyski twarde" @@ -380,7 +380,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "Plik nie istnieje" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "Poziom w górê" IDS_NEWFOLDER "Utwórz nowy folder" @@ -389,7 +389,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Przegl¹daj pulpit" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Drukuj" @@ -442,7 +442,7 @@ Po zainstalowaniu spr PD32_PRINTER_STATUS_POWER_SAVE "Tryb oszczêdzania energii; " } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Wybierz czcionkê o rozmiarze pomiêdzy %d a %d punktami." IDS_SAVE_BUTTON "&Zapisz" @@ -452,7 +452,7 @@ STRINGTABLE DISCARDABLE IDS_OPEN_FILE "Otwórz plik" } -STRINGTABLE DISCARDABLE /* Font styles */ +STRINGTABLE /* Font styles */ { IDS_FONT_REGULAR "Regularny" IDS_FONT_BOLD "Pogrubiony" @@ -460,7 +460,7 @@ STRINGTABLE DISCARDABLE /* Font styles */ IDS_FONT_BOLD_ITALIC "Pogrubiona kursywa" } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "Czarny" IDS_COLOR_MAROON "Kasztanowy" diff --git a/reactos/dll/win32/comdlg32/cdlg_Pt.rc b/reactos/dll/win32/comdlg32/cdlg_Pt.rc index b061f613146..b7a0d3b01b4 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Pt.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Pt.rc @@ -30,7 +30,7 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Abrir" FONT 8, "MS Shell Dlg" @@ -53,7 +53,7 @@ FONT 8, "MS Shell Dlg" LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Abrir" FONT 8, "MS Shell Dlg" @@ -77,7 +77,7 @@ FONT 8, "MS Shell Dlg" LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Salvar Como..." FONT 8, "MS Shell Dlg" @@ -100,7 +100,7 @@ FONT 8, "MS Shell Dlg" LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Gravar Como..." FONT 8, "MS Shell Dlg" @@ -124,7 +124,7 @@ FONT 8, "MS Shell Dlg" LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Imprimir" FONT 8, "MS Shell Dlg" @@ -139,7 +139,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "Cancelar", IDCANCEL, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "&Configurar", 1024, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP LTEXT "&De:", 1090, 60, 80, 30, 9 - LTEXT "&Ate:", 1091, 120, 80, 30, 9 + LTEXT "&Até:", 1091, 120, 80, 30, 9 LTEXT "&Qualidade de Impressão:", 1092, 6, 100, 76, 9 COMBOBOX 1136, 80, 100, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP CHECKBOX "Imprimir para Arquivo", 1040, 20, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP @@ -148,7 +148,7 @@ FONT 8, "MS Shell Dlg" LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Imprimir" FONT 8, "MS Shell Dlg" @@ -173,7 +173,7 @@ FONT 8, "MS Shell Dlg" LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Configurações de Impressão" FONT 8, "MS Shell Dlg" @@ -200,7 +200,7 @@ FONT 8, "MS Shell Dlg" LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Configurações de Impressão" FONT 8, "MS Shell Dlg" @@ -228,7 +228,7 @@ FONT 8, "MS Shell Dlg" LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Fonte" FONT 8, "MS Shell Dlg" @@ -262,7 +262,7 @@ FONT 8, "MS Shell Dlg" LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Tipo de Letra" FONT 8, "MS Shell Dlg" @@ -296,7 +296,7 @@ FONT 8, "MS Shell Dlg" LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Cor" FONT 8, "MS Shell Dlg" @@ -331,7 +331,7 @@ FONT 8, "MS Shell Dlg" LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Cor" FONT 8, "MS Shell Dlg" @@ -364,29 +364,9 @@ PUSHBUTTON "&Definir Cores Personalizadas >>", 719/*1025*/, 4, 150, 142, 14, W PUSHBUTTON "&o",713,300,200,4,14 /* just a dummy: 'o' is like &o in "solid&o" */ } -LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN - -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Procurar" -FONT 8, "MS Shell Dlg" -{ - LTEXT "&Procurar:", -1, 4, 8, 42, 8 - EDITTEXT 1152, 47, 7, 128, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP - CHECKBOX "Palavra &Inteira", 1040, 4, 26, 100, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP - CHECKBOX "&Maiúsculas/minusculas", 1041, 4, 42, 64, 12, BS_AUTOCHECKBOX | WS_TABSTOP - GROUPBOX "Direção", 1072, 107, 26, 68, 28 - CONTROL "A&cima", 1056, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 111, 38, 20, 12 - CONTROL "A&baixo", 1057, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 138, 38, 30, 12 - - DEFPUSHBUTTON "Procurar a Pró&xima", IDOK, 182, 5, 50, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON "Cancelar", IDCANCEL, 182, 23, 50, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON "A&juda", 1038, 182, 45, 50, 14, WS_GROUP | WS_TABSTOP -} - -LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE +LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Procurar" FONT 8, "MS Shell Dlg" @@ -394,55 +374,34 @@ FONT 8, "MS Shell Dlg" LTEXT "&Procurar:", -1, 4, 8, 42, 8 EDITTEXT 1152, 47, 7, 128, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP CHECKBOX "Palavra &Inteira", 1040, 4, 26, 100, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP - CHECKBOX "&Maiúsculas/minúsculas", 1041, 4, 42, 64, 12, BS_AUTOCHECKBOX | WS_TABSTOP - GROUPBOX "Direcção", 1072, 107, 26, 68, 28 - CONTROL "A&cima", 1056, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 111, 38, 20, 12 - CONTROL "A&baixo", 1057, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 138, 38, 30, 12 + CHECKBOX "&Maiúsculas/minúsculas", 1041, 4, 42, 84, 12, BS_AUTOCHECKBOX | WS_TABSTOP + GROUPBOX "Direção", 1072, 97, 26, 78, 28 + CONTROL "A&cima", 1056, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 101, 38, 33, 12 + CONTROL "A&baixo", 1057, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 135, 38, 36, 12 - DEFPUSHBUTTON "&Procurar Próximo", IDOK, 182, 5, 50, 14, WS_GROUP | WS_TABSTOP + DEFPUSHBUTTON "&Procurar", IDOK, 182, 5, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "Cancelar", IDCANCEL, 182, 23, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "A&juda", 1038, 182, 45, 50, 14, WS_GROUP | WS_TABSTOP } -LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN +LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Substituir" FONT 8, "MS Shell Dlg" { LTEXT "&Procurar:", -1, 4, 9, 48, 8 EDITTEXT 1152, 54, 7, 114, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP - LTEXT "Substituir Pa&ra:", -1, 4, 26, 48, 8 + LTEXT "Substituir Po&r:", -1, 4, 26, 48, 8 EDITTEXT 1153, 54, 24, 114, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP CHECKBOX "Palavra &inteira", 1040, 5, 46, 104, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP - CHECKBOX "&Maiúsculas/minúsculas", 1041, 5, 62, 59, 12, BS_AUTOCHECKBOX | WS_TABSTOP + CHECKBOX "&Maiúsculas/minúsculas", 1041, 5, 62, 84, 12, BS_AUTOCHECKBOX | WS_TABSTOP - DEFPUSHBUTTON "Procurar a Pró&xima", IDOK, 174, 4, 50, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON + DEFPUSHBUTTON "&Procurar", IDOK, 174, 4, 50, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON PUSHBUTTON "&Substituir", psh1, 174, 21, 50, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON "Substituir &Todas", psh2, 174, 38, 50, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON "Cancelar", IDCANCEL, 174, 55, 50, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON "A&juda", pshHelp, 174, 75, 50, 14, WS_GROUP | WS_TABSTOP -} - -LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE - -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Substituir" -FONT 8, "MS Shell Dlg" -{ - LTEXT "&Procurar:", -1, 4, 9, 48, 8 - EDITTEXT 1152, 54, 7, 114, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP - LTEXT "Substituir Pa&ra:", -1, 4, 26, 48, 8 - EDITTEXT 1153, 54, 24, 114, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP - CHECKBOX "Palavra &inteira", 1040, 5, 46, 104, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP - CHECKBOX "&Maiúsculas/minúsculas", 1041, 5, 62, 59, 12, BS_AUTOCHECKBOX | WS_TABSTOP - - DEFPUSHBUTTON "Procurar Próxima", IDOK, 174, 4, 50, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON - PUSHBUTTON "&Substituir", psh1, 174, 21, 50, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON "Substituir &Todas", psh2, 174, 38, 50, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "Substituir &Tudo", psh2, 174, 38, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "Cancelar", IDCANCEL, 174, 55, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "A&juda", pshHelp, 174, 75, 50, 14, WS_GROUP | WS_TABSTOP } @@ -450,7 +409,7 @@ FONT 8, "MS Shell Dlg" LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Imprimir" @@ -461,7 +420,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Ajuda", pshHelp, 50, 161, 50,14, WS_GROUP GROUPBOX "Impressora", grp4, 8, 4, 272,84, WS_GROUP - CONTROL "Imprimir em arqui&vo", chx1, "Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,212,70,64,12 + CONTROL "Para arqui&vo", chx1, "Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,212,70,64,12 PUSHBUTTON "Propri&edades", psh2, 212, 17, 60,14, WS_GROUP LTEXT "&Nome:", stc6, 16, 20, 36,8 COMBOBOX cmb4, 52, 18, 152,152,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP @@ -469,30 +428,30 @@ FONT 8, "MS Shell Dlg" LTEXT "Dummy State", stc12, 52, 36, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP LTEXT "Tipo:", stc7, 16, 48, 36,10, SS_NOPREFIX LTEXT "Dummy Type", stc11, 52, 48, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP - LTEXT "Onde:", stc10, 16, 60, 36,10, SS_NOPREFIX + LTEXT "Local:", stc10, 16, 60, 36,10, SS_NOPREFIX LTEXT "Dummy Location", stc14, 52, 60, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP - LTEXT "Comentário:", stc9, 16, 72, 36,10, SS_NOPREFIX + LTEXT "Nota:", stc9, 16, 72, 36,10, SS_NOPREFIX LTEXT "Dummy Remark", stc13, 52, 72, 152,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP GROUPBOX "Cópias", grp2, 160, 92, 120,64, WS_GROUP LTEXT "Número de &cópias:", stc5, 168,108, 68, 8 ICON "", ico3, 162,124, 76,24, WS_GROUP | SS_CENTERIMAGE - CONTROL "&Agrupar", chx2,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,240,130,36,12 + CONTROL "&Agrupar", chx2,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,237,130,39,12 EDITTEXT edt3, 240,106, 32,12, WS_GROUP | ES_NUMBER GROUPBOX "Faixa de impressão", grp1, 8,92, 144,64, WS_GROUP CONTROL "&Todos", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,106,64,12 - CONTROL "Pá&ginas", rad3,"Button",BS_AUTORADIOBUTTON,16,122,36,12 + CONTROL "Pá&ginas", rad3,"Button",BS_AUTORADIOBUTTON,16,122,38,12 CONTROL "Seleção", rad2,"Button",BS_AUTORADIOBUTTON,16,138,64,12 EDITTEXT edt1, 74,122, 26,12, WS_GROUP | ES_NUMBER EDITTEXT edt2, 118,122, 26,12, WS_GROUP | ES_NUMBER - RTEXT "&de:", stc2, 52,124, 20,8 + RTEXT "&de:", stc2, 53,124, 20,8 RTEXT "&até:", stc3, 100,124, 16,8 } LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Imprimir" @@ -503,7 +462,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Ajuda", pshHelp, 50, 161, 50,14, WS_GROUP GROUPBOX "Impressora", grp4, 8, 4, 272,84, WS_GROUP - CONTROL "Imprimir para &ficheiro", chx1, "Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,212,70,64,12 + CONTROL "Para &ficheiro", chx1, "Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,212,70,64,12 PUSHBUTTON "Propri&edades", psh2, 212, 17, 60,14, WS_GROUP LTEXT "&Nome:", stc6, 16, 20, 36,8 COMBOBOX cmb4, 52, 18, 152,152,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP @@ -511,31 +470,31 @@ FONT 8, "MS Shell Dlg" LTEXT "Estado 'Dummy'", stc12, 52, 36, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP LTEXT "Tipo:", stc7, 16, 48, 36,10, SS_NOPREFIX LTEXT "Tipo 'Dummy'", stc11, 52, 48, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP - LTEXT "Localizaça:", stc10, 16, 60, 36,10, SS_NOPREFIX - LTEXT "Localizaçao 'Dummy'", stc14, 52, 60, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP - LTEXT "Comentário:", stc9, 16, 72, 36,10, SS_NOPREFIX + LTEXT "Local:", stc10, 16, 60, 36,10, SS_NOPREFIX + LTEXT "Local 'Dummy'", stc14, 52, 60, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP + LTEXT "Nota:", stc9, 16, 72, 36,10, SS_NOPREFIX LTEXT "Comentário 'Dummy'", stc13, 52, 72, 152,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP GROUPBOX "Cópias", grp2, 160, 92, 120,64, WS_GROUP LTEXT "Número de &cópias:", stc5, 168,108, 68, 8 ICON "", ico3, 162,124, 76,24, WS_GROUP | SS_CENTERIMAGE - CONTROL "&Agrupar", chx2,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,240,130,36,12 + CONTROL "&Agrupar", chx2,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,237,130,39,12 EDITTEXT edt3, 240,106, 32,12, WS_GROUP | ES_NUMBER GROUPBOX "Faixa de impressão", grp1, 8,92, 144,64, WS_GROUP CONTROL "&Todos", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,106,64,12 - CONTROL "Páginas", rad3,"Button",BS_AUTORADIOBUTTON,16,122,36,12 + CONTROL "Páginas", rad3,"Button",BS_AUTORADIOBUTTON,16,122,38,12 CONTROL "Selecção", rad2,"Button",BS_AUTORADIOBUTTON,16,138,64,12 EDITTEXT edt1, 74,122, 26,12, WS_GROUP | ES_NUMBER EDITTEXT edt2, 118,122, 26,12, WS_GROUP | ES_NUMBER - RTEXT "&de:", stc2, 52,124, 20,8 + RTEXT "&de:", stc2, 53,124, 20,8 RTEXT "&até", stc3, 100,124, 16,8 } -LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN +LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Configurações de Impressão" @@ -553,9 +512,9 @@ BEGIN LTEXT "Dummy State", stc12, 52, 36, 224, 10, SS_NOPREFIX | SS_LEFTNOWORDWRAP LTEXT "Tipo:", stc7, 16, 48, 36, 10, SS_NOPREFIX LTEXT "Dummy Type", stc11, 52, 48, 224, 10, SS_NOPREFIX | SS_LEFTNOWORDWRAP - LTEXT "Onde:", stc10, 16, 60, 36, 10, SS_NOPREFIX + LTEXT "Local:", stc10, 16, 60, 36, 10, SS_NOPREFIX LTEXT "Dummy Location", stc14, 52, 60, 224, 10, SS_NOPREFIX | SS_LEFTNOWORDWRAP - LTEXT "Comentário", stc9, 16, 72, 36, 10, SS_NOPREFIX + LTEXT "Nota:", stc9, 16, 72, 36, 10, SS_NOPREFIX LTEXT "Dummy Remark", stc13, 52, 72, 224, 10, SS_NOPREFIX | SS_LEFTNOWORDWRAP GROUPBOX "Papel", grp2, 8, 92, 164, 56, WS_GROUP @@ -570,79 +529,10 @@ BEGIN CONTROL "&Paisagem", rad2, "Button", BS_AUTORADIOBUTTON, 224, 126, 52, 12 END -LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | - DS_CONTEXTHELP | DS_3DLOOK -CAPTION "Configuração de Impressão" -FONT 8, "MS Shell Dlg" -BEGIN - DEFPUSHBUTTON "OK", IDOK,180,156,50,14,WS_GROUP - PUSHBUTTON "Cancelar", IDCANCEL,232,156,50,14 -/* PUSHBUTTON "Rede...", psh5, 284,156,50,14 */ +LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL - GROUPBOX "Impressora", grp4, 8, 4, 272, 84, WS_GROUP - PUSHBUTTON "&Propriedades", psh2, 212, 17, 60, 14, WS_GROUP - LTEXT "&Nome:", stc6, 16, 20, 36, 8 - COMBOBOX cmb1, 52, 18, 152, 152, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP - LTEXT "Estado:", stc8, 16, 36, 36, 10, SS_NOPREFIX - LTEXT "EStado 'Dummy'", stc12, 52, 36, 224, 10, SS_NOPREFIX | SS_LEFTNOWORDWRAP - LTEXT "Tipo:", stc7, 16, 48, 36, 10, SS_NOPREFIX - LTEXT "Tipo 'Dummy'", stc11, 52, 48, 224, 10, SS_NOPREFIX | SS_LEFTNOWORDWRAP - LTEXT "Localização:", stc10, 16, 60, 36, 10, SS_NOPREFIX - LTEXT "Localização 'Dummy'", stc14, 52, 60, 224, 10, SS_NOPREFIX | SS_LEFTNOWORDWRAP - LTEXT "Comentário", stc9, 16, 72, 36, 10, SS_NOPREFIX - LTEXT "Comentário 'Dummy'", stc13, 52, 72, 224, 10, SS_NOPREFIX | SS_LEFTNOWORDWRAP - - GROUPBOX "Papel", grp2, 8, 92, 164, 56, WS_GROUP - LTEXT "&Tamanho:", stc2, 16, 108, 36, 8 - COMBOBOX cmb2, 52, 106, 112, 112, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP - LTEXT "&Origem:", stc3, 16, 128, 36, 8 - COMBOBOX cmb3, 52, 126, 112, 112, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP - - GROUPBOX "Orientação", grp1, 180, 92, 100, 56, WS_GROUP - ICON "", ico1, 195, 112, 18, 20, WS_GROUP - CONTROL "&Retrato", rad1, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 224, 106, 52, 12 - CONTROL "&Paisagem", rad2, "Button", BS_AUTORADIOBUTTON, 224, 126, 52, 12 -END - - -LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN - -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Configurações de Página" -FONT 8, "MS Shell Dlg" -BEGIN - CONTROL "", rct1, "Static", SS_WHITERECT, 80, 8, 80, 80 - CONTROL "", rct2, "Static", SS_GRAYRECT, 160, 12, 4, 80 - CONTROL "", rct3, "Static", SS_GRAYRECT, 84, 88, 80, 4 - GROUPBOX "Papel", grp2, 8, 96, 224, 56, BS_GROUPBOX - LTEXT "&Tamanho:", stc2, 16, 112, 36, 8 - COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL - LTEXT "&Bandeja:", stc3, 16, 132, 36, 8 - COMBOBOX cmb3, 64, 130, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL - GROUPBOX "Orientação", grp1, 8, 156, 64, 56, BS_GROUPBOX - AUTORADIOBUTTON "&Retrato", rad1, 16, 170, 52, 12, BS_AUTORADIOBUTTON - AUTORADIOBUTTON "&Paisagem", rad2, 16, 190, 52, 12, BS_AUTORADIOBUTTON - GROUPBOX "Bordas", grp4, 80, 156, 152, 56, BS_GROUPBOX - LTEXT "&Esquerda:", stc15, 88, 172, 21, 8 - EDITTEXT edt4, 111, 170, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER - LTEXT "&Direita:", stc16, 159, 172, 27, 8 - EDITTEXT edt6, 187, 170, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER - LTEXT "&Superior:", stc17, 88, 192, 21, 8 - EDITTEXT edt5, 111, 190, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER - LTEXT "&Inferior:", stc18, 159, 192, 23, 8 - EDITTEXT edt7, 187, 190, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER - DEFPUSHBUTTON "OK", IDOK, 71, 220, 50, 14, BS_PUSHBUTTON - PUSHBUTTON "Cancelar", IDCANCEL, 126, 220, 50, 14 - PUSHBUTTON "Im&pressora...", psh3, 184, 220, 50, 14 -END - -LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE - -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Configurações de Página" FONT 8, "MS Shell Dlg" @@ -659,14 +549,14 @@ BEGIN AUTORADIOBUTTON "&Retrato", rad1, 16, 170, 52, 12, BS_AUTORADIOBUTTON AUTORADIOBUTTON "&Paisagem", rad2, 16, 190, 52, 12, BS_AUTORADIOBUTTON GROUPBOX "Bordas", grp4, 80, 156, 152, 56, BS_GROUPBOX - LTEXT "&Esquerda:", stc15, 88, 172, 21, 8 - EDITTEXT edt4, 111, 170, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER - LTEXT "&Direita:", stc16, 159, 172, 27, 8 - EDITTEXT edt6, 187, 170, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER - LTEXT "&Superior:", stc17, 88, 192, 21, 8 - EDITTEXT edt5, 111, 190, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER - LTEXT "&Inferior:", stc18, 159, 192, 23, 8 - EDITTEXT edt7, 187, 190, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER + LTEXT "&Esquerda:", stc15, 88, 172, 31, 8 + EDITTEXT edt4, 121, 170, 37, 12, WS_TABSTOP|WS_GROUP|WS_BORDER + LTEXT "&Direita:", stc16, 161, 172, 27, 8 + EDITTEXT edt6, 189, 170, 37, 12, WS_TABSTOP|WS_GROUP|WS_BORDER + LTEXT "&Superior:", stc17, 88, 192, 31, 8 + EDITTEXT edt5, 121, 190, 37, 12, WS_TABSTOP|WS_GROUP|WS_BORDER + LTEXT "&Inferior:", stc18, 161, 192, 26, 8 + EDITTEXT edt7, 189, 190, 37, 12, WS_TABSTOP|WS_GROUP|WS_BORDER DEFPUSHBUTTON "OK", IDOK, 71, 220, 50, 14, BS_PUSHBUTTON PUSHBUTTON "Cancelar", IDCANCEL, 126, 220, 50, 14 PUSHBUTTON "Im&pressora...", psh3, 184, 220, 50, 14 @@ -675,7 +565,7 @@ END LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Abrir" FONT 8, "MS Shell Dlg" @@ -686,13 +576,13 @@ FONT 8, "MS Shell Dlg" LTEXT "" , IDC_TOOLBARSTATIC, 172, 2, 102, 17, NOT WS_GROUP | NOT WS_VISIBLE LISTBOX IDC_SHELLSTATIC,4,20,272,85, LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_MULTICOLUMN | WS_HSCROLL | NOT WS_VISIBLE - LTEXT "&Nome do arquivo:",IDC_FILENAMESTATIC,5,112,48,16, SS_NOTIFY + LTEXT "&Nome do arquivo:",IDC_FILENAMESTATIC,5,108,48,16, SS_NOTIFY EDITTEXT IDC_FILENAME,54,111,155,12,ES_AUTOHSCROLL - LTEXT "Arquivos do &tipo:",IDC_FILETYPESTATIC,5,131,48,16, SS_NOTIFY + LTEXT "Arquivos do &tipo:",IDC_FILETYPESTATIC,5,127,48,16, SS_NOTIFY COMBOBOX IDC_FILETYPE,54,129,155,100,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - CONTROL "Abrir como &somente-leitura",IDC_OPENREADONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,54,148,74,10 + CONTROL "Abrir como &somente-leitura",IDC_OPENREADONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,54,148,98,10 DEFPUSHBUTTON "&Abrir", IDOK,222,110,50,14 PUSHBUTTON "Cancelar", IDCANCEL,222,128,50,14 @@ -701,7 +591,7 @@ FONT 8, "MS Shell Dlg" LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Abrir" FONT 8, "MS Shell Dlg" @@ -712,13 +602,13 @@ FONT 8, "MS Shell Dlg" LTEXT "" , IDC_TOOLBARSTATIC, 172, 2, 102, 17, NOT WS_GROUP | NOT WS_VISIBLE LISTBOX IDC_SHELLSTATIC,4,20,272,85, LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_MULTICOLUMN | WS_HSCROLL | NOT WS_VISIBLE - LTEXT "&Nome do ficheiro:",IDC_FILENAMESTATIC,5,112,48,16, SS_NOTIFY + LTEXT "&Nome do ficheiro:",IDC_FILENAMESTATIC,5,108,48,16, SS_NOTIFY EDITTEXT IDC_FILENAME,54,111,155,12,ES_AUTOHSCROLL - LTEXT "Ficheiros do &tipo:",IDC_FILETYPESTATIC,5,131,48,16, SS_NOTIFY + LTEXT "Ficheiros do &tipo:",IDC_FILETYPESTATIC,5,127,48,16, SS_NOTIFY COMBOBOX IDC_FILETYPE,54,129,155,100,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - CONTROL "Abrir como &apenas-leitura",IDC_OPENREADONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,54,148,74,10 + CONTROL "Abrir como &apenas-leitura",IDC_OPENREADONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,54,148,98,10 DEFPUSHBUTTON "&Abrir", IDOK,222,110,50,14 PUSHBUTTON "Cancelar", IDCANCEL,222,128,50,14 @@ -728,7 +618,7 @@ FONT 8, "MS Shell Dlg" LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&Sobre FolderPicker Test" IDS_DOCUMENTFOLDERS "Pastas de Documentos" @@ -742,7 +632,7 @@ STRINGTABLE DISCARDABLE LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&Acerca do Teste FolderPicker" IDS_DOCUMENTFOLDERS "Pastas de Documentos" @@ -757,7 +647,7 @@ STRINGTABLE DISCARDABLE LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "Pastas do Sistema" IDS_LOCALHARDRIVES "Discos Rígidos Locais" @@ -767,13 +657,13 @@ STRINGTABLE DISCARDABLE IDS_OVERWRITEFILE "Arquivo já existe.\nGostaria de substituí-lo?" IDS_INVALID_FILENAME_TITLE "Caracter(es) inválidos no caminho" IDS_INVALID_FILENAME "Um nome de arquivo não pode conter quaisquer dos seguintes caracteres:\n / : < > |" - IDS_PATHNOTEXISTING "Caminho não existe" - IDS_FILENOTEXISTING "Arquivo não existe" + IDS_PATHNOTEXISTING "O caminho não existe" + IDS_FILENOTEXISTING "O arquivo não existe" } LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "Pastas do Sistema" IDS_LOCALHARDRIVES "Discos Rígidos Locais" @@ -790,7 +680,7 @@ STRINGTABLE DISCARDABLE LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "Um Nível Acima" IDS_NEWFOLDER "Criar Nova Pasta" @@ -801,7 +691,7 @@ STRINGTABLE DISCARDABLE LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "Um Nível Acima" IDS_NEWFOLDER "Criar Nova Pasta" @@ -813,28 +703,28 @@ STRINGTABLE DISCARDABLE LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Imprimir" PD32_VALUE_UREADABLE "Entrada Ilegível" - PD32_INVALID_PAGE_RANGE "Este valor não se encaixa na faixa de páginas\n\ -Por favor entre um valor entre %d e %d." - PD32_FROM_NOT_ABOVE_TO "A entrada DE não pode exceder ATÉ." + PD32_INVALID_PAGE_RANGE "Este valor não se encaixa na faixa de páginas.\n\ +Por favor insira um valor entre %d e %d." + PD32_FROM_NOT_ABOVE_TO "A entrada 'de' não pode exceder 'até'." PD32_MARGINS_OVERLAP "As margens estão fora das medidas \ -do papel.\nPor favor reentre as margens." +do papel.\nPor favor reinsira as margens." PD32_NR_OF_COPIES_EMPTY "O número de cópias não pode ter valor vazio." - PD32_TOO_LARGE_COPIES "Esta grande quantidade de cópias não é suportada \ -pela sua impressora.\nPor favor entre um valor entre 1 e %d." + PD32_TOO_LARGE_COPIES "Esta quantidade de cópias é muito grande \ +para a sua impressora.\nPor favor insira um valor entre 1 e %d." PD32_PRINT_ERROR "Ocorreu um erro de impressão." PD32_NO_DEFAULT_PRINTER "Não existe uma impressora padrão." PD32_CANT_FIND_PRINTER "Não é possível encontrar uma impressora." PD32_OUT_OF_MEMORY "Memória insuficiente." PD32_GENERIC_ERROR "Ocorreu algum erro." PD32_DRIVER_UNKNOWN "Driver de impressora desconhecido." - PD32_NO_DEVICES "Before you can perform printer-related tasks \ -such as page setup or printing a document, you need to install a printer. \ -Please install one and retry." + PD32_NO_DEVICES "Antes de realizar tarefas relacionadas com a impressora \ +tais como configuração de páginas ou imprimir um documento, é necessário instalar uma impressora. \ +Por favor instale uma e tente novamente." PD32_DEFAULT_PRINTER "Impressora Padrão; " PD32_NR_OF_DOCUMENTS_IN_QUEUE "Existem %d documentos na fila" @@ -854,7 +744,7 @@ Please install one and retry." PD32_PRINTER_STATUS_IO_ACTIVE "E/S Ativa; " PD32_PRINTER_STATUS_BUSY "Ocupada; " PD32_PRINTER_STATUS_PRINTING "Imprimindo; " - PD32_PRINTER_STATUS_OUTPUT_BIN_FULL "Bandeja de saída está cheia; " + PD32_PRINTER_STATUS_OUTPUT_BIN_FULL "A bandeja de saída está cheia; " PD32_PRINTER_STATUS_NOT_AVAILABLE "Não disponível; " PD32_PRINTER_STATUS_WAITING "Esperando; " PD32_PRINTER_STATUS_PROCESSING "Processando; " @@ -872,14 +762,14 @@ Please install one and retry." LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Imprimir" PD32_VALUE_UREADABLE "Entrada Ilegível" - PD32_INVALID_PAGE_RANGE "Este valor não se encaixa na faixa de páginas\n\ + PD32_INVALID_PAGE_RANGE "Este valor não se encaixa na faixa de páginas.\n\ Por favor indique um valor entre %d e %d." - PD32_FROM_NOT_ABOVE_TO "A entrada DE não pode exceder ATÉ" + PD32_FROM_NOT_ABOVE_TO "A entrada 'de' não pode exceder 'até'." PD32_MARGINS_OVERLAP "As margens estão fora das medidas \ do papel.\nPor favor indique as margens." PD32_NR_OF_COPIES_EMPTY "O número de cópias não pode ter valor vazio." @@ -929,9 +819,9 @@ Por favor instale uma e tente novamente." PD32_PRINTER_STATUS_POWER_SAVE "Modo económico; " } -LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE +LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE /* Estilos de tipos de letra */ +STRINGTABLE /* Estilos de tipos de letra */ { IDS_FONT_REGULAR "Normal" IDS_FONT_BOLD "Negrito" @@ -939,9 +829,9 @@ STRINGTABLE DISCARDABLE /* Estilos de tipos de letra */ IDS_FONT_BOLD_ITALIC "Negrito Itálico" } -LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN +LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE /* Nomes de cores */ +STRINGTABLE /* Nomes de cores */ { IDS_COLOR_BLACK "Preto" IDS_COLOR_MAROON "Castanho" @@ -961,32 +851,10 @@ STRINGTABLE DISCARDABLE /* Nomes de cores */ IDS_COLOR_WHITE "Branco" } -LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE - -STRINGTABLE DISCARDABLE /* Nomes de cores */ -{ - IDS_COLOR_BLACK "Preto" - IDS_COLOR_MAROON "Castanho" - IDS_COLOR_GREEN "Verde" - IDS_COLOR_OLIVE "Verde-oliveira" - IDS_COLOR_NAVY "Azul-marinho" - IDS_COLOR_PURPLE "Roxo" - IDS_COLOR_TEAL "Azul-petróleo" - IDS_COLOR_GRAY "Cinza" - IDS_COLOR_SILVER "Prateado" - IDS_COLOR_RED "Vermelho" - IDS_COLOR_LIME "Verde-lima" - IDS_COLOR_YELLOW "Amarelo" - IDS_COLOR_BLUE "Azul" - IDS_COLOR_FUCHSIA "Fcsia" - IDS_COLOR_AQUA "Azul-piscina" - IDS_COLOR_WHITE "Branco" -} - LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Selecione o tamanho da fonte entre %d e %d pontos." IDS_SAVE_BUTTON "&Salvar" @@ -998,7 +866,7 @@ STRINGTABLE DISCARDABLE LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Seleccione o tamanho do tipo de letra entre %d e %d pontos." IDS_SAVE_BUTTON "&Gravar" diff --git a/reactos/dll/win32/comdlg32/cdlg_Ro.rc b/reactos/dll/win32/comdlg32/cdlg_Ro.rc index 0c1b304c29e..a5b975253a6 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Ro.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Ro.rc @@ -28,7 +28,7 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL #pragma code_page(65001) -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Deschide" FONT 8, "MS Shell Dlg" @@ -50,7 +50,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Salvare ca..." FONT 8, "MS Shell Dlg" @@ -72,7 +72,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Tipărire" FONT 8, "MS Shell Dlg" @@ -95,7 +95,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Setări tipărire" FONT 8, "MS Shell Dlg" @@ -121,7 +121,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Font" FONT 8, "MS Shell Dlg" @@ -153,7 +153,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Culoare" FONT 8, "MS Shell Dlg" @@ -187,7 +187,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Caută" FONT 8, "MS Shell Dlg" @@ -206,7 +206,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Înlocuire" FONT 8, "MS Shell Dlg" @@ -226,7 +226,7 @@ FONT 8, "MS Shell Dlg" } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Tipărire" @@ -266,7 +266,7 @@ FONT 8, "MS Shell Dlg" RTEXT "&la:", stc3, 100,124, 16,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Setări tipărire" @@ -301,7 +301,7 @@ BEGIN CONTROL "&Peisaj", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Setare Pagină" FONT 8, "MS Shell Dlg" @@ -331,7 +331,7 @@ BEGIN PUSHBUTTON "&Imprimantă...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Deschide" FONT 8, "MS Shell Dlg" @@ -355,7 +355,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Ajutor", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&Despre testul FolderPicker" IDS_DOCUMENTFOLDERS "Dosarele de documente" @@ -367,7 +367,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "Computerul meu" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "Dosarele de sistem" IDS_LOCALHARDRIVES "Discurile locale" @@ -381,7 +381,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "Fişierul nu există" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "Un nivel de dosare mai sus" IDS_NEWFOLDER "Creează un dosar nou" @@ -390,7 +390,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Navigează la birou" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Tipărire" @@ -442,7 +442,7 @@ STRINGTABLE DISCARDABLE PD32_PRINTER_STATUS_POWER_SAVE "Economisire de energie; " } -STRINGTABLE DISCARDABLE /* Font styles */ +STRINGTABLE /* Font styles */ { IDS_FONT_REGULAR "Normal" IDS_FONT_BOLD "Aldin" @@ -450,7 +450,7 @@ STRINGTABLE DISCARDABLE /* Font styles */ IDS_FONT_BOLD_ITALIC "Aldin cursiv" } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "Negru" IDS_COLOR_MAROON "Maro" @@ -470,7 +470,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "Alb" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Alegeți o mărime de font între %d și %d puncte." IDS_SAVE_BUTTON "&Salvează" diff --git a/reactos/dll/win32/comdlg32/cdlg_Ru.rc b/reactos/dll/win32/comdlg32/cdlg_Ru.rc index 8ba3bdc7b35..61a1ecf43c2 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Ru.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Ru.rc @@ -28,7 +28,7 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Открыть" FONT 8, "MS Shell Dlg" @@ -50,7 +50,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Сохранить как..." FONT 8, "MS Shell Dlg" @@ -72,7 +72,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Печать" FONT 8, "MS Shell Dlg" @@ -95,7 +95,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Настройка принтера" FONT 8, "MS Shell Dlg" @@ -121,7 +121,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Шрифт" FONT 8, "MS Shell Dlg" @@ -153,7 +153,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 310, 185 +CHOOSE_COLOR DIALOG 36, 24, 310, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Изменение палитры" FONT 8, "MS Shell Dlg" @@ -187,7 +187,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 245, 62 +FINDDLGORD DIALOG 36, 24, 245, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Поиск" FONT 8, "MS Shell Dlg" @@ -206,7 +206,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Замена" FONT 8, "MS Shell Dlg" @@ -225,7 +225,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Справка", pshHelp , 174, 75, 50, 14, WS_GROUP | WS_TABSTOP } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Печать" @@ -265,7 +265,7 @@ FONT 8, "MS Shell Dlg" RTEXT "&до:", stc3, 108,124, 12,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Установки принтера" @@ -300,7 +300,7 @@ BEGIN CONTROL "Л&андшафт", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Параметры страницы" FONT 8, "MS Shell Dlg" @@ -331,7 +331,7 @@ BEGIN END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Открыть" FONT 8, "MS Shell Dlg" @@ -355,7 +355,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Справка", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&О тесте ВыборПапки" IDS_DOCUMENTFOLDERS "Папки документов" @@ -367,7 +367,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "Мой компьютер" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "Системные папки" IDS_LOCALHARDRIVES "Локальные жесткие диски" @@ -381,7 +381,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "Файл не существует" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "Вверх на один уровень" IDS_NEWFOLDER "Создать новую папку" @@ -390,7 +390,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Переход на рабочий стол" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Печать" @@ -448,7 +448,7 @@ STRINGTABLE DISCARDABLE PD32_PRINTER_STATUS_POWER_SAVE "Питание в безопасном режиме; " } -STRINGTABLE DISCARDABLE /* Font styles */ +STRINGTABLE /* Font styles */ { IDS_FONT_REGULAR "Нормальный" IDS_FONT_BOLD "Жирный" @@ -456,7 +456,7 @@ STRINGTABLE DISCARDABLE /* Font styles */ IDS_FONT_BOLD_ITALIC "Жирный курсив" } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "Чёрный" IDS_COLOR_MAROON "Тёмно-бордовый" @@ -476,7 +476,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "Белый" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Выберите шрифт размером %d - %d пунктов." IDS_SAVE_BUTTON "&Сохранить" diff --git a/reactos/dll/win32/comdlg32/cdlg_Si.rc b/reactos/dll/win32/comdlg32/cdlg_Si.rc index e3d37e93055..c98c6697444 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Si.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Si.rc @@ -27,7 +27,7 @@ LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Odpri" FONT 8, "MS Shell Dlg" @@ -49,7 +49,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Shrani kot ..." FONT 8, "MS Shell Dlg" @@ -71,7 +71,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Tiskanje" FONT 8, "MS Shell Dlg" @@ -94,7 +94,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Nastavitve tiskanja" FONT 8, "MS Shell Dlg" @@ -120,7 +120,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Pisava" FONT 8, "MS Shell Dlg" @@ -152,7 +152,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Barva" FONT 8, "MS Shell Dlg" @@ -186,7 +186,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Iskanje" FONT 8, "MS Shell Dlg" @@ -205,7 +205,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Zamenjava" FONT 8, "MS Shell Dlg" @@ -225,7 +225,7 @@ FONT 8, "MS Shell Dlg" } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Tiskanje" @@ -265,7 +265,7 @@ FONT 8, "MS Shell Dlg" RTEXT "&do:", stc3, 94,124, 12,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Nastavitev tiskanja" @@ -300,7 +300,7 @@ BEGIN CONTROL "L&ežeče", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Nastavitev strani" FONT 8, "MS Shell Dlg" @@ -330,7 +330,7 @@ BEGIN PUSHBUTTON "&Tiskalnik ...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Odpri" FONT 8, "MS Shell Dlg" @@ -354,7 +354,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Pomoč", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&O FolderPicker Test" IDS_DOCUMENTFOLDERS "Mape z dokumenti" @@ -366,7 +366,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "Moj računalnik" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "Sistemske mape" IDS_LOCALHARDRIVES "Lokalni trdi diski" @@ -380,7 +380,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "Datoteka ne obstaja" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "V nadrejeno mapo" IDS_NEWFOLDER "Ustvari novo mapo" @@ -389,7 +389,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Pogled namizja" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Tiskanje" @@ -447,7 +447,7 @@ poskusite znova." PD32_PRINTER_STATUS_POWER_SAVE "V pripravljenosti; " } -STRINGTABLE DISCARDABLE /* Font styles */ +STRINGTABLE /* Font styles */ { IDS_FONT_REGULAR "Navadno" IDS_FONT_BOLD "Krepko" @@ -455,7 +455,7 @@ STRINGTABLE DISCARDABLE /* Font styles */ IDS_FONT_BOLD_ITALIC "Krepko ležeče" } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "Črna" IDS_COLOR_MAROON "Kostanjeva" @@ -475,7 +475,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "Bela" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Izberite velikost pisave med %d in %d točk." IDS_SAVE_BUTTON "&Shrani" diff --git a/reactos/dll/win32/comdlg32/cdlg_Sk.rc b/reactos/dll/win32/comdlg32/cdlg_Sk.rc index 4a2ef2745aa..6069bbc4e0a 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Sk.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Sk.rc @@ -28,7 +28,7 @@ LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT /* Slovak strings in CP1250 */ -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Otvori" FONT 8, "MS Shell Dlg" @@ -50,7 +50,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Uloži ako..." FONT 8, "MS Shell Dlg" @@ -72,7 +72,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Tlaè" FONT 8, "MS Shell Dlg" @@ -95,7 +95,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Nastavenie spôsobu tlaèe" FONT 8, "MS Shell Dlg" @@ -121,7 +121,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Písmo" FONT 8, "MS Shell Dlg" @@ -153,7 +153,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Farby" FONT 8, "MS Shell Dlg" @@ -187,7 +187,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "H¾adanie" FONT 8, "MS Shell Dlg" @@ -206,7 +206,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Zámena" FONT 8, "MS Shell Dlg" @@ -226,7 +226,7 @@ FONT 8, "MS Shell Dlg" } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Tlaè" @@ -266,7 +266,7 @@ FONT 8, "MS Shell Dlg" RTEXT "&do:", stc3, 100,124, 16,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Nastavenie tlaèe" @@ -301,7 +301,7 @@ BEGIN CONTROL "Na ší&rku", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Setup Page" FONT 8, "MS Shell Dlg" @@ -331,7 +331,7 @@ BEGIN PUSHBUTTON "P&rinter...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Otvori" FONT 8, "MS Shell Dlg" @@ -355,7 +355,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Pomoc", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&O teste uchopovania adresárov" IDS_DOCUMENTFOLDERS "Adresár dokumentov" @@ -367,7 +367,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "Tento poèítaè" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "Systémové adresáre" IDS_LOCALHARDRIVES "Lokálne pevné disky" @@ -381,7 +381,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "Súbor neexistuje" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "O úroveò vyššie" IDS_NEWFOLDER "Vytvori nový adresár" @@ -390,7 +390,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Listova pracovnú plochu" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Tlaè" @@ -449,7 +449,7 @@ Please install one and retry." PD32_PRINTER_STATUS_POWER_SAVE "Úsporný režim; " } -STRINGTABLE DISCARDABLE /* Font styles */ +STRINGTABLE /* Font styles */ { IDS_FONT_REGULAR "Regular" IDS_FONT_BOLD "Tuèné" @@ -457,7 +457,7 @@ STRINGTABLE DISCARDABLE /* Font styles */ IDS_FONT_BOLD_ITALIC "Tuèné kurzíva" } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "Èierna" IDS_COLOR_MAROON "Maroon" @@ -477,7 +477,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "Biela" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Select a font size between %d and %d points." IDS_SAVE_BUTTON "&Save" diff --git a/reactos/dll/win32/comdlg32/cdlg_Sr.rc b/reactos/dll/win32/comdlg32/cdlg_Sr.rc new file mode 100644 index 00000000000..9ee0a39da8f --- /dev/null +++ b/reactos/dll/win32/comdlg32/cdlg_Sr.rc @@ -0,0 +1,481 @@ +/* + * Copyright 2010 Nenad Vujic + * Paul Vriens + * + * 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 "cdlg.h" +#include "filedlgbrowser.h" + +#pragma code_page(65001) + +/* + * WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES. + */ + +LANGUAGE LANG_SERBIAN, SUBLANG_SERBIAN_LATIN + +OPEN_FILE DIALOG 36, 24, 275, 134 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Otvori" +FONT 8, "MS Shell Dlg" +{ + LTEXT "Ime &Fajla:", 1090, 6, 6, 76, 9 + EDITTEXT edt1, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP + LISTBOX 1120, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP + LTEXT "&Folderi:", -1, 110, 6, 92, 9 + LTEXT "", 1088, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP + LISTBOX 1121, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP + LTEXT "Lista fajlova &tipa:", 1089, 6, 104, 90, 9 + COMBOBOX cmb1, 6, 114, 90, 36, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP + LTEXT "Dis&kovi:", 1091, 110, 104, 92, 9 + COMBOBOX cmb2, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "Otvori", 1, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP + PUSHBUTTON "Otkaži", 2, 208, 24, 56, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "&Pomoć", pshHelp, 208, 46, 56, 14, WS_GROUP | WS_TABSTOP + CHECKBOX "&Samo Čitanje", chx1, 208, 68, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP +} + + +SAVE_FILE DIALOG 36, 24, 275, 134 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Sačuvaj kao..." +FONT 8, "MS Shell Dlg" +{ + LTEXT "Ime &Fajla:", 1090, 6, 6, 76, 9 + EDITTEXT edt1, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP + LISTBOX 1120, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP + LTEXT "&Folderi:", -1, 110, 6, 92, 9 + LTEXT "", 1088, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP + LISTBOX 1121, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP + LTEXT "Lista fajlova &tipa:", 1089, 6, 104, 90, 9 + COMBOBOX cmb1, 6, 114, 90, 36, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP + LTEXT "Dis&kovi:", 1091, 110, 104, 92, 9 + COMBOBOX cmb2, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "Sačuvaj kao", 1, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP + PUSHBUTTON "Otkaži", 2, 208, 24, 56, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "&Pomoć", pshHelp, 208, 46, 56, 14, WS_GROUP | WS_TABSTOP + CHECKBOX "&Samo Čitanje", chx1, 208, 68, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP +} + + +PRINT DIALOG 36, 24, 264, 134 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Å tampaj" +FONT 8, "MS Shell Dlg" +{ + LTEXT "Å tampač:", 1088, 6, 6, 40, 9 + LTEXT "", 1089, 60, 6, 150, 9 + GROUPBOX "Opseg Å¡tampanja", grp1, 6, 30, 160, 65, BS_GROUPBOX + RADIOBUTTON "&Svi", rad1, 16, 45, 60, 12 + RADIOBUTTON "O&dabir", rad2, 16, 60, 60, 12 + RADIOBUTTON "&Strane", rad3, 16, 75, 60, 12 + DEFPUSHBUTTON "Å tampaj", 1, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP + PUSHBUTTON "Otkaži", 2, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "&Podesi", psh1, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP + LTEXT "&Od:", 1090, 60, 80, 30, 9 + LTEXT "&Do:", 1091, 120, 80, 30, 9 + LTEXT "Kvalitet &Å tampe:", 1092, 6, 100, 76, 9 + COMBOBOX cmb1, 80, 100, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP + CHECKBOX "Å tampaj u Fa&jl", chx1, 20, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + CHECKBOX "Kondenzovan", chx2, 160, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP +} + + +PRINT_SETUP DIALOG 36, 24, 264, 134 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Podesi Å¡tampanje" +FONT 8, "MS Shell Dlg" +{ + GROUPBOX "Å tampač", grp1, 6, 10, 180, 65, BS_GROUPBOX + RADIOBUTTON "&Osnovni Å¡tampač", rad1, 16, 20, 80, 12 + LTEXT "[niÅ¡ta]", 1088, 35, 35, 120, 9 + RADIOBUTTON "Određeni &Å tampač", rad2, 16, 50, 80, 12 + COMBOBOX cmb1, 35, 65, 149, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP + PUSHBUTTON "Otkaži", IDCANCEL, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "&Podesi", psh1, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP + GROUPBOX "Orientacija", grp2, 6, 85, 100, 50, BS_GROUPBOX + RADIOBUTTON "Po&rtret", rad3, 50, 100, 50, 12 + RADIOBUTTON "&PejzaÅ¡", rad4, 50, 115, 50, 12 + ICON "LANDSCAP", stc10, 10, 95, 32, 32 + ICON "PORTRAIT", stc11, 10, 95, 32, 32 + GROUPBOX "Papir", grp3, 120, 85, 180, 50, BS_GROUPBOX + LTEXT "Vel&ičina", 1089, 130, 95, 30, 9 + LTEXT "&Izvor", 1090, 130, 110, 30, 9 + COMBOBOX cmb2, 155, 95, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP + COMBOBOX cmb3, 155, 110, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP +} + + +CHOOSE_FONT DIALOG 13, 54, 264, 147 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Font" +FONT 8, "MS Shell Dlg" +{ + LTEXT "&Font:",stc1 ,6,3,40,9 + COMBOBOX cmb1, 6,13,94,54, CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_DISABLENOSCROLL | + CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP | CBS_SIMPLE + LTEXT "Font St&il:",stc2 ,108,3,44,9 + COMBOBOX cmb2,108,13,64,54, CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_DISABLENOSCROLL | + WS_VSCROLL | WS_TABSTOP | CBS_SIMPLE + LTEXT "&Veličina:",stc3,179,3,30,9 + COMBOBOX cmb3,179,13,32,54, CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_DISABLENOSCROLL | + WS_VSCROLL | WS_TABSTOP | CBS_SIMPLE | CBS_SORT + DEFPUSHBUTTON "OK",IDOK,218,6,40,14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON + PUSHBUTTON "Otkaži",IDCANCEL,218,23,40,14,WS_GROUP | WS_TABSTOP + PUSHBUTTON "&Primeni", psh3,218,40,40,14,WS_GROUP | WS_TABSTOP + PUSHBUTTON "&Pomoć" , pshHelp,218,57,40,14,WS_GROUP | WS_TABSTOP + GROUPBOX "Efekti",grp1,6,72,84,34,WS_GROUP + CHECKBOX "Isti&canje", chx1, 10,82,50,10, BS_AUTOCHECKBOX | WS_TABSTOP + CHECKBOX "&Podvučeno", chx2, 10,94,50,10, BS_AUTOCHECKBOX + LTEXT "&Boja:", stc4 ,6,110,30,9 + COMBOBOX cmb4,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Uzorak",grp2,98,72,120,36,WS_GROUP + CTEXT "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Skr&ipta:",stc7 ,98,114,40,9 + COMBOBOX cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP +} + + +CHOOSE_COLOR DIALOG 36, 24, 300, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Boja" +FONT 8, "MS Shell Dlg" +{ + LTEXT "&Osnovne boje:", 1088, 4, 4, 140, 10 + LTEXT "&Podesi boje:", 1089, 4, 106, 140, 10 + LTEXT "Boja | Ja&ka", 1090, 150, 151, 48, 10 + LTEXT "&Crvena:", 726 /*1094*/,249,126,24,10 + EDITTEXT 706, 275,124,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP + LTEXT "&Zelena:",727/*1095*/,249,140,24,10 + EDITTEXT 707, 275,138,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP + LTEXT "&Plava:",728 /*1096*/,249,154,24,10 + EDITTEXT 708, 275,152,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP + LTEXT "&Sivo:" ,723 /*1091*/,202,126,22,10 + EDITTEXT 703, 226,124,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP + LTEXT "&Zasićenje:" ,724 /*1092*/,202,140,22,10 + EDITTEXT 704, 226,138,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP + LTEXT "&Lum:" ,725 /*1093*/,202,154,22,10 + EDITTEXT 705, 226,152,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP + CONTROL "" ,720,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP,4,14,140,86 + CONTROL "" ,721,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP,4,116,140,28 + CONTROL "" ,710,"STATIC",WS_BORDER|SS_SIMPLE|WS_TABSTOP|WS_GROUP, 152,4,118,116 + CONTROL "" ,702,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP, 278,4,8,116 + CONTROL "" ,709,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP, 152,124,40,26 + DEFPUSHBUTTON "OK", 1, 4, 166, 44, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP + PUSHBUTTON "Otkaži", 2, 52, 166, 44, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "Pomoć", pshHelp,100,166, 44, 14 + PUSHBUTTON "&Dodaj boju", 712/*1024*/, 152, 166, 142, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "&Odredi boju >>", 719/*1025*/, 4, 150, 142, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "&i",713,300,200,4,14 /* just a dummy: 'i' is like &i in "sol&id" */ +} + + +FINDDLGORD DIALOG 36, 24, 236, 62 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Nađi" +FONT 8, "MS Shell Dlg" +{ + LTEXT "Na&đi sta:", -1, 4, 8, 42, 8 + EDITTEXT edt1, 47, 7, 128, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP + CHECKBOX "Nađi &samo celu reč", chx1, 4, 26, 100, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + CHECKBOX "Nađi &Sa istom veličinom", chx2, 4, 42, 64, 12, BS_AUTOCHECKBOX | WS_TABSTOP + GROUPBOX "Smer", grp1, 107, 26, 68, 28 + CONTROL "&Gore", rad1, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 111, 38, 30, 12 + CONTROL "&Dole", rad2, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 138, 38, 30, 12 + + DEFPUSHBUTTON "&Nađi sledeće", IDOK, 182, 5, 50, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON + PUSHBUTTON "Otkaži", IDCANCEL , 182, 23, 50, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "&Pomoć", pshHelp , 182, 45, 50, 14, WS_GROUP | WS_TABSTOP +} + + +REPLACEDLGORD DIALOG 36, 24, 230, 94 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Zameni" +FONT 8, "MS Shell Dlg" +{ + LTEXT "Na&đi sta:", -1, 4, 9, 48, 8 + EDITTEXT edt1, 54, 7, 114, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP + LTEXT "Za&meni sa:", -1, 4, 26, 48, 8 + EDITTEXT edt2, 54, 24, 114, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP + CHECKBOX "Nađi &samo celu reč", chx1, 5, 46, 104, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + CHECKBOX "Nađi &Sa istom veličinom", chx2, 5, 62, 59, 12, BS_AUTOCHECKBOX | WS_TABSTOP + + DEFPUSHBUTTON "&Nađi sledeće", IDOK, 174, 4, 50, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON + PUSHBUTTON "&Zameni", psh1 , 174, 21, 50, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "Zameni &Sve", psh2 , 174, 38, 50, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "Otkaži", IDCANCEL , 174, 55, 50, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "&Pomoć", pshHelp , 174, 75, 50, 14, WS_GROUP | WS_TABSTOP +} + + +PRINT32 DIALOG 32, 32, 288, 186 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | + DS_CONTEXTHELP | DS_3DLOOK +CAPTION "Å tampaj" +FONT 8, "MS Shell Dlg" +{ + DEFPUSHBUTTON "OK", IDOK, 180,164, 48,14, WS_GROUP | BS_DEFPUSHBUTTON + PUSHBUTTON "Otkaži", IDCANCEL, 232,164, 48,14, WS_GROUP + PUSHBUTTON "&Pomoć", pshHelp, 50, 161, 48,14, WS_GROUP + + GROUPBOX "Å tampač", grp4, 8, 4, 272,84, WS_GROUP + CONTROL "Å tampaj u fa&jl", chx1, "Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,212,70,64,12 + PUSHBUTTON "&Detalji", psh2, 212, 17, 60,14, WS_GROUP + LTEXT "&Ime:", stc6, 16, 20, 36,8 + COMBOBOX cmb4, 52, 18, 152,152,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP + LTEXT "Status:", stc8, 16, 36, 36,10, SS_NOPREFIX + LTEXT "Glup status", stc12, 52, 36, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP + LTEXT "Kucaj:", stc7, 16, 48, 36,10, SS_NOPREFIX + LTEXT "Glupo kucanje", stc11, 52, 48, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP + LTEXT "Gde:", stc10, 16, 60, 36,10, SS_NOPREFIX + LTEXT "Glupa lokacija", stc14, 52, 60, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP + LTEXT "Komentar:", stc9, 16, 72, 36,10, SS_NOPREFIX + LTEXT "Glupo označavanje", stc13, 52, 72, 152,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP + + GROUPBOX "Kopije", grp2, 160, 92, 120,64, WS_GROUP + LTEXT "Broj &kopija:",stc5,168,108,68,8 + ICON "", ico3, 162,124, 76,24, WS_GROUP | SS_CENTERIMAGE + CONTROL "S&redi", chx2,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,240,130,36,12 + EDITTEXT edt3, 240,106, 32,12, WS_GROUP | ES_NUMBER + + GROUPBOX "Domet Å¡tampe", grp1, 8,92, 144,64, WS_GROUP + CONTROL "&Svi", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,106,64,12 + CONTROL "St&rane", rad3,"Button",BS_AUTORADIOBUTTON,16,122,36,12 + CONTROL "&Odabir", rad2,"Button",BS_AUTORADIOBUTTON,16,138,64,12 + EDITTEXT edt1, 74,122, 26,12, WS_GROUP | ES_NUMBER + EDITTEXT edt2, 118,122, 26,12, WS_GROUP | ES_NUMBER + RTEXT "&od:", stc2, 52,124, 20,8 + RTEXT "&do:", stc3, 100,124, 16,8 +} + +PRINT32_SETUP DIALOG 32, 32, 288, 178 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | + DS_CONTEXTHELP | DS_3DLOOK +CAPTION "Podesi Å¡tampanje" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "OK",IDOK,180,156,48,14,WS_GROUP + PUSHBUTTON "Otkaži",IDCANCEL,232,156,48,14 +/* PUSHBUTTON "Mreža...", psh5, 284,156,48,14 */ + + GROUPBOX "Å tampač", grp4, 8, 4, 272,84, WS_GROUP + PUSHBUTTON "&Detalji", psh2, 212, 17, 60,14, WS_GROUP + LTEXT "&Ime:", stc6, 16, 20, 36,8 + COMBOBOX cmb1, 52, 18, 152,152,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP + LTEXT "Status:", stc8, 16, 36, 36,10, SS_NOPREFIX + LTEXT "Glup status", stc12, 52, 36, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP + LTEXT "Kucaj:", stc7, 16, 48, 36,10, SS_NOPREFIX + LTEXT "Glupo kucanje", stc11, 52, 48, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP + LTEXT "Gde:", stc10, 16, 60, 36,10, SS_NOPREFIX + LTEXT "Glupa lokacija", stc14, 52, 60, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP + LTEXT "Komentar:", stc9, 16, 72, 36,10, SS_NOPREFIX + LTEXT "Glupo označavanje", stc13, 52, 72, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP + + GROUPBOX "Papir", grp2, 8, 92, 164,56, WS_GROUP + LTEXT "Vel&ičina:", stc2, 16,108, 36, 8 + COMBOBOX cmb2, 52,106, 112,112,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP + LTEXT "&Izvor:", stc3, 16,128, 36, 8 + COMBOBOX cmb3, 52,126, 112,112,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP + + GROUPBOX "Orijentacija", grp1, 180, 92, 100,56, WS_GROUP + ICON "", ico1, 195,112, 18,20, WS_GROUP + CONTROL "P&ortet", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP |WS_TABSTOP,224,106,52,12 + CONTROL "P&ejzaÅ¡", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 +END + +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Podesi stranu" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "", rct1, "Static", SS_WHITERECT, 80, 8, 80, 80 + CONTROL "", rct2, "Static", SS_GRAYRECT, 160, 12, 4, 80 + CONTROL "", rct3, "Static", SS_GRAYRECT, 84, 88, 80, 4 + GROUPBOX "Papir", grp2, 8, 96, 224, 56, BS_GROUPBOX + LTEXT "&Veličina:", stc2, 16, 112, 36, 8 + COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL + LTEXT "&Tray:", stc3, 16, 132, 36, 8 + COMBOBOX cmb3, 64, 130, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL + GROUPBOX "Orientacija", grp1, 8, 156, 64, 56, BS_GROUPBOX + AUTORADIOBUTTON "&Portret", rad1, 16, 170, 52, 12, BS_AUTORADIOBUTTON + AUTORADIOBUTTON "&PejzaÅ¡", rad2, 16, 190, 52, 12, BS_AUTORADIOBUTTON + GROUPBOX "Granice", grp4, 80, 156, 152, 56, BS_GROUPBOX + LTEXT "L&evo:", stc15, 88, 172, 21, 8 + EDITTEXT edt4, 111, 170, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER + LTEXT "&Desno:", stc16, 159, 172, 27, 8 + EDITTEXT edt6, 187, 170, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER + LTEXT "G&ore:", stc17, 88, 192, 21, 8 + EDITTEXT edt5, 111, 190, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER + LTEXT "&Dole:", stc18, 159, 192, 23, 8 + EDITTEXT edt7, 187, 190, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER + DEFPUSHBUTTON "OK", IDOK, 71, 220, 50, 14, BS_PUSHBUTTON + PUSHBUTTON "Otkaži", IDCANCEL, 126, 220, 50, 14 + PUSHBUTTON "Å &tampac...", psh3, 184, 220, 48, 14 +END + +NEWFILEOPENORD DIALOG 0, 0, 280, 164 +STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN +CAPTION "Otvori" +FONT 8, "MS Shell Dlg" +{ + LTEXT "Traži &u:",IDC_LOOKINSTATIC,4,6,43,8, SS_NOTIFY + COMBOBOX IDC_LOOKIN,49,3,132,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP + + LTEXT "" , IDC_TOOLBARSTATIC, 181, 2, 102, 17, NOT WS_GROUP | NOT WS_VISIBLE + LISTBOX IDC_SHELLSTATIC,4,20,272,85, LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_MULTICOLUMN | WS_HSCROLL | NOT WS_VISIBLE + + LTEXT "Ime &fajla:",IDC_FILENAMESTATIC,5,112,46,8, SS_NOTIFY + EDITTEXT IDC_FILENAME,54,110,155,12,ES_AUTOHSCROLL + + LTEXT "Fajlovi &tipa:",IDC_FILETYPESTATIC,5,128,42,8, SS_NOTIFY + COMBOBOX IDC_FILETYPE,54,126,155,53,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + CONTROL "Otvori &samo za čitanje",IDC_OPENREADONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,54,145,100,10 + + DEFPUSHBUTTON "&Otvori", IDOK,222,110,50,14 + PUSHBUTTON "Otkaži", IDCANCEL,222,128,50,14 + PUSHBUTTON "&Pomoć", pshHelp,222,145,50,14 +} + +STRINGTABLE +{ + IDS_ABOUTBOX "&O FolderPicker Test-u" + IDS_DOCUMENTFOLDERS "Folder Dokumenta" + IDS_PERSONAL "Moja Dokumenta" + IDS_FAVORITES "Moji Favoriti" + IDS_PATH "Sistemska putanja" + IDS_DESKTOP "Desktop" + IDS_FONTS "Font" + IDS_MYCOMPUTER "Moj Kompjuter" +} + +STRINGTABLE +{ + IDS_SYSTEMFOLDERS "Sistemski folderi" + IDS_LOCALHARDRIVES "Lokalni hard disk" + IDS_FILENOTFOUND "Fajl nije nadjen" + IDS_VERIFYFILE "Molim proverite ime fajla" + IDS_CREATEFILE "Fajl ne postoji.\nDa li želite da kreirate fajl?" + IDS_OVERWRITEFILE "Fajl postoji.\nŽelite li da ga zamenite?" + IDS_INVALID_FILENAME_TITLE "Los karakter(i) u putanji" + IDS_INVALID_FILENAME "Ime fajla ne može imati znakove:\n / : < > |" + IDS_PATHNOTEXISTING "Putanja ne postoji" + IDS_FILENOTEXISTING "Fajl ne postoji" +} + +STRINGTABLE +{ + IDS_UPFOLDER "Gore jedan folder" + IDS_NEWFOLDER "Napravi novi folder" + IDS_LISTVIEW "Listing" + IDS_REPORTVIEW "Detalji" + IDS_TODESKTOP "Nađi na Desktopu" +} + +STRINGTABLE +{ + PD32_PRINT_TITLE "Å tampaj" + + PD32_VALUE_UREADABLE "Ulaz nečitljiv" + PD32_INVALID_PAGE_RANGE "Ova vrednost ne postoji na strani.\nUnesite vrednosti između %d i %d." + PD32_FROM_NOT_ABOVE_TO "'Od' unos ne može biti posle 'do' unosa." + PD32_MARGINS_OVERLAP "Margine prelaze granice papira.\nMolim ponovo unesite margine" + PD32_NR_OF_COPIES_EMPTY "Broj 'broj kopija' ne moze biti prazan." + PD32_TOO_LARGE_COPIES "Ovoliki broj kopija nije podržan od Å¡tampača.\nMolim unesite vrednosti izmedju 1 i %d." + PD32_PRINT_ERROR "GreÅ¡ka Å¡tampača." + PD32_NO_DEFAULT_PRINTER "Glavni Å¡tampač nije određen." + PD32_CANT_FIND_PRINTER "Ne mogu naći stampač." + PD32_OUT_OF_MEMORY "Malo memorije." + PD32_GENERIC_ERROR "GreÅ¡ka se desila." + PD32_DRIVER_UNKNOWN "Nepoznat driver." + PD32_NO_DEVICES "Pre podeÅ¡avanja strane i Å¡tampanja fajla, morate da instalirate Å¡tampač. Molim instalirajte jedan i pokusajte ponovo." + + PD32_DEFAULT_PRINTER "Glavni Å¡tampač; " + PD32_NR_OF_DOCUMENTS_IN_QUEUE "Nema dokumenta %d na čekanju." + PD32_MARGINS_IN_INCHES "Margine [inč]" + PD32_MARGINS_IN_MILLIMETERS "Margine [mm]" + PD32_MILLIMETERS "mm" + + PD32_PRINTER_STATUS_READY "Spreman" + PD32_PRINTER_STATUS_PAUSED "Pauza; " + PD32_PRINTER_STATUS_ERROR "GreÅ¡ka; " + PD32_PRINTER_STATUS_PENDING_DELETION "Brisanje u toku; " + PD32_PRINTER_STATUS_PAPER_JAM "Papir zaglavljen; " + PD32_PRINTER_STATUS_PAPER_OUT "Nema papira; " + PD32_PRINTER_STATUS_MANUAL_FEED "Dodajte papir; " + PD32_PRINTER_STATUS_PAPER_PROBLEM "Problem sa papirom; " + PD32_PRINTER_STATUS_OFFLINE "Å tampač neaktivan; " + PD32_PRINTER_STATUS_IO_ACTIVE "I/O Aktivan; " + PD32_PRINTER_STATUS_BUSY "Zauzet; " + PD32_PRINTER_STATUS_PRINTING "Å tampa; " + PD32_PRINTER_STATUS_OUTPUT_BIN_FULL "Izlazni deo je pun; " + PD32_PRINTER_STATUS_NOT_AVAILABLE "Nije dostupan; " + PD32_PRINTER_STATUS_WAITING "Čekanje; " + PD32_PRINTER_STATUS_PROCESSING "Obrađujem; " + PD32_PRINTER_STATUS_INITIALIZING "Pokretanje; " + PD32_PRINTER_STATUS_WARMING_UP "Zagrevanje; " + PD32_PRINTER_STATUS_TONER_LOW "Toner pri kraju; " + PD32_PRINTER_STATUS_NO_TONER "Nema tonera; " + PD32_PRINTER_STATUS_PAGE_PUNT "Papir punt; " + PD32_PRINTER_STATUS_USER_INTERVENTION "Prekinuto od korisnika; " + PD32_PRINTER_STATUS_OUT_OF_MEMORY "Malo memorije; " + PD32_PRINTER_STATUS_DOOR_OPEN "Vrata Å¡tampača su otvorena; " + PD32_PRINTER_STATUS_SERVER_UNKNOWN "Server za Å¡tampanje nepoznat; " + PD32_PRINTER_STATUS_POWER_SAVE "Mod uÅ¡tede struje; " +} + +STRINGTABLE /* Font styles */ +{ + IDS_FONT_REGULAR "Obična" + IDS_FONT_BOLD "Debela" + IDS_FONT_ITALIC "Kosa" + IDS_FONT_BOLD_ITALIC "Debela Kosa" +} + +STRINGTABLE /* Color names */ +{ + IDS_COLOR_BLACK "Crna" + IDS_COLOR_MAROON "Maroon" + IDS_COLOR_GREEN "Zelena" + IDS_COLOR_OLIVE "Sivkasta" + IDS_COLOR_NAVY "Tamno plava" + IDS_COLOR_PURPLE "Ljubičasta" + IDS_COLOR_TEAL "Zelenkasta" + IDS_COLOR_GRAY "Siva" + IDS_COLOR_SILVER "Srebrna" + IDS_COLOR_RED "Crvena" + IDS_COLOR_LIME "Lime" + IDS_COLOR_YELLOW "Žuta" + IDS_COLOR_BLUE "Plava" + IDS_COLOR_FUCHSIA "Fuchsia" + IDS_COLOR_AQUA "Aqua" + IDS_COLOR_WHITE "Bela" +} + +STRINGTABLE +{ + IDS_FONT_SIZE "Izaberite veličinu fonta između %d i %d ." + IDS_SAVE_BUTTON "&Sačuvaj" + IDS_SAVE_IN "Sačuvaj &u:" + IDS_SAVE "Sačuvaj" + IDS_SAVE_AS "Sačuvaj kao" + IDS_OPEN_FILE "Otvori fajl" +} diff --git a/reactos/dll/win32/comdlg32/cdlg_Sv.rc b/reactos/dll/win32/comdlg32/cdlg_Sv.rc index 21d2ac2c1fe..9c5b6b356ed 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Sv.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Sv.rc @@ -26,7 +26,7 @@ LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Öppna" FONT 8, "MS Shell Dlg" @@ -48,7 +48,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Spara som..." FONT 8, "MS Shell Dlg" @@ -70,7 +70,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Skriv ut" FONT 8, "MS Shell Dlg" @@ -93,7 +93,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Skrivarinställningar" FONT 8, "MS Shell Dlg" @@ -119,7 +119,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Typsnitt" FONT 8, "MS Shell Dlg" @@ -149,7 +149,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Färg" FONT 8, "MS Shell Dlg" @@ -183,7 +183,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Sök" FONT 8, "MS Shell Dlg" @@ -201,7 +201,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Sök/ersätt" FONT 8, "MS Shell Dlg" @@ -219,7 +219,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Hjälp", 1038, 174, 75, 50, 14, WS_GROUP | WS_TABSTOP } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Skriv ut" @@ -260,7 +260,7 @@ FONT 8, "MS Shell Dlg" } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Utskriftsformat" @@ -292,7 +292,7 @@ BEGIN CONTROL "L&iggande", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Utskriftsformat" FONT 8, "MS Shell Dlg" @@ -322,7 +322,7 @@ BEGIN PUSHBUTTON "&Skrivare...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Öppna" FONT 8, "MS Shell Dlg" @@ -346,7 +346,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Hjälp", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&Om FolderPicker-test" IDS_DOCUMENTFOLDERS "Dokumentmappar" @@ -358,7 +358,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "Den här datorn" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "Systemmappar" IDS_LOCALHARDRIVES "Lokala hårddiskar" @@ -372,7 +372,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "Filen finns inte" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "Upp en nivå" IDS_NEWFOLDER "Skapa ny mapp" @@ -381,7 +381,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Visa Skrivbordet" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Skriv ut" @@ -437,7 +437,7 @@ Installera en skrivare och f PD32_PRINTER_STATUS_POWER_SAVE "Felsäkert läge; " } -STRINGTABLE DISCARDABLE /* Font styles */ +STRINGTABLE /* Font styles */ { IDS_FONT_REGULAR "Standard" IDS_FONT_BOLD "Fet" @@ -445,7 +445,7 @@ STRINGTABLE DISCARDABLE /* Font styles */ IDS_FONT_BOLD_ITALIC "Fet kursiv" } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "Svart" IDS_COLOR_MAROON "Rödbrun" @@ -465,7 +465,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "Vit" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Välj en teckenstorlek mellan %d och %d punkter." IDS_SAVE_BUTTON "&Spara" diff --git a/reactos/dll/win32/comdlg32/cdlg_Th.rc b/reactos/dll/win32/comdlg32/cdlg_Th.rc index 34ef5200ece..90297a0683d 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Th.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Th.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_THAI, SUBLANG_DEFAULT -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "à»Ô´" FONT 8, "MS Shell Dlg" @@ -47,7 +47,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "ºÑ¹·×¡à»ç¹..." FONT 8, "MS Shell Dlg" @@ -69,7 +69,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "¾ÔÁ¾ì" FONT 8, "MS Shell Dlg" @@ -92,7 +92,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "»ÃѺá¤è§à¤Ã×èͧ¾ÔÁ¾ì" FONT 8, "MS Shell Dlg" @@ -118,7 +118,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "µéÇÍÑ¡ÉÃ" FONT 8, "MS Shell Dlg" @@ -150,7 +150,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "ÊÕ" FONT 8, "MS Shell Dlg" @@ -184,7 +184,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "¤é¹ËÒ" FONT 8, "MS Shell Dlg" @@ -203,7 +203,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "á·¹·Õ" FONT 8, "MS Shell Dlg" @@ -223,7 +223,7 @@ FONT 8, "MS Shell Dlg" } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "¾ÔÁ¾ì" @@ -263,7 +263,7 @@ FONT 8, "MS Shell Dlg" RTEXT "Ê觶֧:", stc3, 100,124, 16,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "»ÃѺáµè§à¤Ã×èͧ¾ÔÁ¾ì" @@ -298,7 +298,7 @@ BEGIN CONTROL "á¹Ç¹Í¹", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "»ÃѺáµè§" FONT 8, "MS Shell Dlg" @@ -328,7 +328,7 @@ BEGIN PUSHBUTTON "à¤Ã×èͧ¾ÔÁ¾ì...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "à»Ô´" FONT 8, "MS Shell Dlg" @@ -352,7 +352,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "ªèÇÂàËÅÕÍ", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "à¡ÕèÂǡѺ FolderPicker Test" IDS_DOCUMENTFOLDERS "Document Folders" @@ -364,7 +364,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "à¤Ã×èͧÊèǹµÑÇ" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "System Folders" IDS_LOCALHARDRIVES "ÎÒÃì´´ÔÊ¡ìà¤Ã×èͧÊèǹµÑÇ" @@ -378,7 +378,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "äÁ辺á¿éÁ" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "¢Öé¹Ë¹Öè§ÃдѺ" IDS_NEWFOLDER "ÊÃéÒ§ä´àá·ÍÃÕãËÁè" @@ -387,7 +387,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "¤é¹ËÒÃÒ¡Òþ×é¹·Õè·Ó§Ò¹" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "¾ÔÁ¾ì" @@ -443,7 +443,7 @@ Please install one and retry." PD32_PRINTER_STATUS_POWER_SAVE "ãªéä¿é¹éÍÂ; " } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "ÊÕ´íÒ" IDS_COLOR_MAROON "ÊÕàÅ×´ËÁÙ" diff --git a/reactos/dll/win32/comdlg32/cdlg_Tr.rc b/reactos/dll/win32/comdlg32/cdlg_Tr.rc index 52e71ba52b8..049f51eb04c 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Tr.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Tr.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Aç" FONT 8, "MS Shell Dlg" @@ -47,7 +47,7 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Farklý Kaydet..." FONT 8, "MS Shell Dlg" @@ -69,7 +69,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Yazdýr" FONT 8, "MS Shell Dlg" @@ -92,7 +92,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Yazdýrma Ayarlarý" FONT 8, "MS Shell Dlg" @@ -118,7 +118,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Yazý Tipi" FONT 8, "MS Shell Dlg" @@ -150,7 +150,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Renk" FONT 8, "MS Shell Dlg" @@ -184,7 +184,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Bul" FONT 8, "MS Shell Dlg" @@ -203,7 +203,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 238, 94 +REPLACEDLGORD DIALOG 36, 24, 238, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Deðiþtir" FONT 8, "MS Shell Dlg" @@ -223,7 +223,7 @@ FONT 8, "MS Shell Dlg" } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Yazdýr" @@ -264,7 +264,7 @@ FONT 8, "MS Shell Dlg" RTEXT "Biti&þ:", stc3, 100,124, 16,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Yazdýrma Ayarlarý" @@ -299,7 +299,7 @@ BEGIN CONTROL "M&anzara", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Sayfa Ayarlarý" FONT 8, "MS Shell Dlg" @@ -329,7 +329,7 @@ BEGIN PUSHBUTTON "Ya&zýcý...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "Aç" FONT 8, "MS Shell Dlg" @@ -353,7 +353,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Yardým", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&Dizin Seçme Denemesi Hakkýnda" IDS_DOCUMENTFOLDERS "Belge Dizinleri" @@ -365,7 +365,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "Bilgisayarým" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "Sistem Dizinleri" IDS_LOCALHARDRIVES "Yerel Diskler" @@ -379,7 +379,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "Dosya mevcut deðil" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "Bir Düzey Yukarý" IDS_NEWFOLDER "Yeni Dizin Oluþtur" @@ -388,7 +388,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Masaüstüne Git" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Yazdýr" @@ -445,7 +445,7 @@ L PD32_PRINTER_STATUS_POWER_SAVE "Güç koruma modu; " } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "Siyah" IDS_COLOR_MAROON "Koyu Kýrmýzý" @@ -465,7 +465,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "Beyaz" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "%d ile %d arasýnda bir yazý tipi boyutu seçin." IDS_SAVE_BUTTON "&Kaydet" diff --git a/reactos/dll/win32/comdlg32/cdlg_Uk.rc b/reactos/dll/win32/comdlg32/cdlg_Uk.rc index 14a8f1d2104..a4b4ff5dc55 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Uk.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Uk.rc @@ -27,7 +27,7 @@ LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "³äêðèòè" FONT 8, "MS Shell Dlg" @@ -49,12 +49,12 @@ FONT 8, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Çáåðåãòè ÿê..." FONT 8, "MS Shell Dlg" { - LTEXT "&&²ì'ÿ ôàéëó:", 1090, 6, 6, 76, 9 + LTEXT "&²ì'ÿ ôàéëó:", 1090, 6, 6, 76, 9 EDITTEXT 1152, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP LISTBOX 1120, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP LTEXT "&Òåêè:", -1, 110, 6, 92, 9 @@ -71,7 +71,7 @@ FONT 8, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Äðóê" FONT 8, "MS Shell Dlg" @@ -94,7 +94,7 @@ FONT 8, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Íàñòðîéêà ïðèíòåðà" FONT 8, "MS Shell Dlg" @@ -120,7 +120,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Øðèôò" FONT 8, "MS Shell Dlg" @@ -152,7 +152,7 @@ FONT 8, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 310, 185 +CHOOSE_COLOR DIALOG 36, 24, 310, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Çì³íà ïàë³òðè" FONT 8, "MS Shell Dlg" @@ -186,7 +186,7 @@ FONT 8, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 245, 62 +FINDDLGORD DIALOG 36, 24, 245, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Ïîøóê" FONT 8, "MS Shell Dlg" @@ -205,7 +205,7 @@ FONT 8, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Çàì³íà" FONT 8, "MS Shell Dlg" @@ -224,7 +224,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Äîâ³äêà", pshHelp , 174, 75, 50, 14, WS_GROUP | WS_TABSTOP } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Äðóê" @@ -264,7 +264,7 @@ FONT 8, "MS Shell Dlg" RTEXT "&äî:", stc3, 106,124, 10,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "Óñòàíîâêè ïðèíòåðà" @@ -299,7 +299,7 @@ BEGIN CONTROL "Ë&àíäøàôò", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Ïàðàìåòðè ñòîð³íêè" FONT 8, "MS Shell Dlg" @@ -313,7 +313,7 @@ BEGIN LTEXT "Ïîäà&÷à:", stc3, 16, 132, 36, 8 COMBOBOX cmb3, 64, 130, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL GROUPBOX "Îð³ºíòàö³ÿ", grp1, 8, 156, 64, 56, BS_GROUPBOX - AUTORADIOBUTTON "Ê&íèæíà", rad1, 16, 170, 52, 12, BS_AUTORADIOBUTTON + AUTORADIOBUTTON "Ê&íèæêîâà", rad1, 16, 170, 52, 12, BS_AUTORADIOBUTTON AUTORADIOBUTTON "Àëü&áîìíà", rad2, 16, 190, 52, 12, BS_AUTORADIOBUTTON GROUPBOX "Ïîëÿ", grp4, 80, 156, 152, 56, BS_GROUPBOX LTEXT "Ç&ë³âà:", stc15, 88, 172, 21, 8 @@ -329,7 +329,7 @@ BEGIN PUSHBUTTON "Ï&ðèíòåð...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "³äêðèòè" FONT 8, "MS Shell Dlg" @@ -353,7 +353,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Äîâ³äêà", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "&Ïðî òåñò Âèá³ðÒåêè" IDS_DOCUMENTFOLDERS "Òåêè äîêóìåíò³â" @@ -365,7 +365,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "̳é êîìï'þòåð" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "Ñèñòåìí³ òåêè" IDS_LOCALHARDRIVES "Ëîêàëüí³ æîðñòê³ äèñêè" @@ -379,7 +379,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "Ôàéë íå ³ñíóº" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "Âãîðó íà îäèí ð³âåíü" IDS_NEWFOLDER "Ñòâîðèòè íîâó òåêó" @@ -388,7 +388,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "Ïåðåõ³ä íà ñò³ëüíèöþ" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "Äðóê" @@ -446,7 +446,7 @@ STRINGTABLE DISCARDABLE PD32_PRINTER_STATUS_POWER_SAVE "Æèâëåííÿ â áåçïå÷íîìó ðåæèì³; " } -STRINGTABLE DISCARDABLE /* Font styles */ +STRINGTABLE /* Font styles */ { IDS_FONT_REGULAR "Íîðìàëüíèé" IDS_FONT_BOLD "Æèðíèé" @@ -454,13 +454,13 @@ STRINGTABLE DISCARDABLE /* Font styles */ IDS_FONT_BOLD_ITALIC "Æèðíèé êóðñèâ" } -STRINGTABLE DISCARDABLE /* Color names */ +STRINGTABLE /* Color names */ { IDS_COLOR_BLACK "×îðíèé" IDS_COLOR_MAROON "Êîðè÷íåâèé" IDS_COLOR_GREEN "Çåëåíèé" IDS_COLOR_OLIVE "Îëèâêîâèé" - IDS_COLOR_NAVY "Ñèí³é" + IDS_COLOR_NAVY "Òåìíî-ñèí³é" IDS_COLOR_PURPLE "Ïóðïóðîâèé" IDS_COLOR_TEAL "Ñèíüî-çåëåíèé" IDS_COLOR_GRAY "ѳðèé" @@ -474,7 +474,7 @@ STRINGTABLE DISCARDABLE /* Color names */ IDS_COLOR_WHITE "Á³ëèé" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FONT_SIZE "Áèáåð³òü øðèôò ðîçì³ðîì %d - %d ïóíêò³â." IDS_SAVE_BUTTON "&Çáåðåãòè" diff --git a/reactos/dll/win32/comdlg32/cdlg_Zh.rc b/reactos/dll/win32/comdlg32/cdlg_Zh.rc index fee8bda01d5..a9c096b6597 100644 --- a/reactos/dll/win32/comdlg32/cdlg_Zh.rc +++ b/reactos/dll/win32/comdlg32/cdlg_Zh.rc @@ -4,6 +4,7 @@ * Copyright 2000 Aric Stewart * Copyright 2002 Tisheng Chen * Copyright 2008 Hongbo Ni + * Copyright 2010 Cheer Xiao * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -25,6 +26,7 @@ /* * WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES. + * 不要修改标准对话框的大小。 */ /* Chinese text is encoded in UTF-8 */ @@ -32,7 +34,7 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "打开" FONT 9, "MS Shell Dlg" @@ -54,7 +56,7 @@ FONT 9, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "另存为..." FONT 9, "MS Shell Dlg" @@ -76,7 +78,7 @@ FONT 9, "MS Shell Dlg" } -PRINT DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "打印" FONT 9, "MS Shell Dlg" @@ -99,7 +101,7 @@ FONT 9, "MS Shell Dlg" } -PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 +PRINT_SETUP DIALOG 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "打印设置" FONT 9, "MS Shell Dlg" @@ -125,7 +127,7 @@ FONT 9, "MS Shell Dlg" } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 264, 147 +CHOOSE_FONT DIALOG 13, 54, 264, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "字体" FONT 9, "MS Shell Dlg" @@ -157,7 +159,7 @@ FONT 9, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "颜色" FONT 9, "MS Shell Dlg" @@ -191,7 +193,7 @@ FONT 9, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 236, 62 +FINDDLGORD DIALOG 36, 24, 236, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "查找" FONT 9, "MS Shell Dlg" @@ -210,7 +212,7 @@ FONT 9, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 +REPLACEDLGORD DIALOG 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "替换" FONT 9, "MS Shell Dlg" @@ -230,7 +232,7 @@ FONT 9, "MS Shell Dlg" } -PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +PRINT32 DIALOG 32, 32, 288, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "打印" @@ -270,7 +272,7 @@ FONT 9, "MS Shell Dlg" RTEXT "到(&t):", stc3, 100,124, 16,8 } -PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +PRINT32_SETUP DIALOG 32, 32, 288, 178 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK CAPTION "打印设置" @@ -305,7 +307,7 @@ BEGIN CONTROL "横向(&L)", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 END -PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +PAGESETUPDLGORD DIALOG 32, 32, 240, 240 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "页面设置" FONT 9, "MS Shell Dlg" @@ -335,7 +337,7 @@ BEGIN PUSHBUTTON "打印机(&P)...", psh3, 184, 220, 48, 14 END -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "打开" FONT 9, "MS Shell Dlg" @@ -359,7 +361,7 @@ FONT 9, "MS Shell Dlg" PUSHBUTTON "帮助(&H)", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "关于文件夹选择器(&A)" IDS_DOCUMENTFOLDERS "文档目录" @@ -371,7 +373,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "我的电脑" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "系统文件夹" IDS_LOCALHARDRIVES "本地硬盘驱动器" @@ -385,7 +387,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "文件不存在" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "向上移一层" IDS_NEWFOLDER "新建文件夹" @@ -394,7 +396,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "查看桌面" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "打印" @@ -449,10 +451,47 @@ STRINGTABLE DISCARDABLE PD32_PRINTER_STATUS_POWER_SAVE "省电状态; " } +STRINGTABLE /* Font styles */ +{ + IDS_FONT_REGULAR "常规" + IDS_FONT_BOLD "粗体" + IDS_FONT_ITALIC "斜体" + IDS_FONT_BOLD_ITALIC "粗斜体" +} + +STRINGTABLE /* Color names */ +{ + IDS_COLOR_BLACK "黑" + IDS_COLOR_MAROON "Maroon" + IDS_COLOR_GREEN "绿" + IDS_COLOR_OLIVE "Olive" + IDS_COLOR_NAVY "Navy" + IDS_COLOR_PURPLE "ç´«" + IDS_COLOR_TEAL "Teal" + IDS_COLOR_GRAY "灰" + IDS_COLOR_SILVER "Silver" + IDS_COLOR_RED "红" + IDS_COLOR_LIME "Lime" + IDS_COLOR_YELLOW "黄" + IDS_COLOR_BLUE "蓝" + IDS_COLOR_FUCHSIA "Fuchsia" + IDS_COLOR_AQUA "Aqua" + IDS_COLOR_WHITE "白" +} + +STRINGTABLE +{ + IDS_FONT_SIZE "选择 %d 到 %d 的字号。" + IDS_SAVE_BUTTON "保存 (&S)" + IDS_SAVE_IN "保存在 (&I):" + IDS_SAVE "保存" + IDS_SAVE_AS "另存为" + IDS_OPEN_FILE "打开文件" +} LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL -OPEN_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +OPEN_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "開啟" FONT 9, "MS Shell Dlg" @@ -474,7 +513,7 @@ FONT 9, "MS Shell Dlg" } -SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 +SAVE_FILE DIALOG 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "另存新檔..." FONT 9, "MS Shell Dlg" @@ -495,7 +534,7 @@ FONT 9, "MS Shell Dlg" CHECKBOX "唯讀(&R)", 1040, 208, 68, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP } -CHOOSE_FONT DIALOG DISCARDABLE 13, 54, 294, 147 +CHOOSE_FONT DIALOG 13, 54, 294, 147 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "字型" FONT 9, "MS Shell Dlg" @@ -527,7 +566,7 @@ FONT 9, "MS Shell Dlg" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +CHOOSE_COLOR DIALOG 36, 24, 300, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "色彩" FONT 9, "MS Shell Dlg" @@ -561,7 +600,7 @@ FONT 9, "MS Shell Dlg" } -FINDDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 263, 62 +FINDDLGORD DIALOG 36, 24, 263, 62 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "搜尋" FONT 9, "MS Shell Dlg" @@ -580,7 +619,7 @@ FONT 9, "MS Shell Dlg" } -REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 263, 94 +REPLACEDLGORD DIALOG 36, 24, 263, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "取代" FONT 9, "MS Shell Dlg" @@ -599,7 +638,7 @@ FONT 9, "MS Shell Dlg" PUSHBUTTON "求助(&H)", pshHelp , 174, 75, 50, 14, WS_GROUP | WS_TABSTOP } -NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +NEWFILEOPENORD DIALOG 0, 0, 280, 164 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN CAPTION "開啟舊檔" FONT 9, "MS Shell Dlg" @@ -623,7 +662,7 @@ FONT 9, "MS Shell Dlg" PUSHBUTTON "求助(&H)", pshHelp,222,145,50,14 } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ABOUTBOX "关于資料夹选择器(&A)" IDS_DOCUMENTFOLDERS "資料夾" @@ -635,7 +674,7 @@ STRINGTABLE DISCARDABLE IDS_MYCOMPUTER "我的電腦" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_SYSTEMFOLDERS "系統資料夾" IDS_LOCALHARDRIVES "本地硬盤驅動器" @@ -649,7 +688,7 @@ STRINGTABLE DISCARDABLE IDS_FILENOTEXISTING "檔案不存在" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_UPFOLDER "向上一層" IDS_NEWFOLDER "建立新資料夾" @@ -658,7 +697,7 @@ STRINGTABLE DISCARDABLE IDS_TODESKTOP "顯示桌面" } -STRINGTABLE DISCARDABLE +STRINGTABLE { PD32_PRINT_TITLE "列印" diff --git a/reactos/dll/win32/comdlg32/cdlg_xx.rc b/reactos/dll/win32/comdlg32/cdlg_xx.rc index 24139d2e206..a002ef677d8 100644 --- a/reactos/dll/win32/comdlg32/cdlg_xx.rc +++ b/reactos/dll/win32/comdlg32/cdlg_xx.rc @@ -34,7 +34,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL * different character set or if the distribution of characters looks wrong. * It is rendered illegibly small and is used to make a mock-up of a document. */ -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_FAKEDOCTEXT "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. \ @@ -60,7 +60,7 @@ STRINGTABLE DISCARDABLE /* @makedep: pd32_collate.ico */ -PD32_COLLATE ICON DISCARDABLE LOADONCALL pd32_collate.ico +PD32_COLLATE ICON pd32_collate.ico /* @makedep: pd32_nocollate.ico */ PD32_NOCOLLATE ICON pd32_nocollate.ico @@ -90,4 +90,4 @@ HDISK ICON hdisk.ico NETWORK ICON network.ico /* @makedep: fontpics.bmp */ -38 BITMAP DISCARDABLE LOADONCALL fontpics.bmp +38 BITMAP fontpics.bmp diff --git a/reactos/dll/win32/comdlg32/finddlg.c b/reactos/dll/win32/comdlg32/finddlg.c index f6c780e0496..e3a2c1a3f94 100644 --- a/reactos/dll/win32/comdlg32/finddlg.c +++ b/reactos/dll/win32/comdlg32/finddlg.c @@ -304,7 +304,7 @@ static BOOL COMDLG32_FR_CheckPartial( ) { if(!pfr) { - COMDLG32_SetCommDlgExtendedError(CDERR_GENERALCODES); + COMDLG32_SetCommDlgExtendedError(CDERR_INITIALIZATION); return FALSE; } @@ -321,7 +321,7 @@ static BOOL COMDLG32_FR_CheckPartial( } if((pfr->wFindWhatLen < 1 || !pfr->lpstrFindWhat) - ||(Replace && (pfr->wReplaceWithLen < 1 || !pfr->lpstrReplaceWith))) + ||(Replace && !pfr->lpstrReplaceWith)) { COMDLG32_SetCommDlgExtendedError(FRERR_BUFFERLENGTHZERO); return FALSE; @@ -344,18 +344,12 @@ static BOOL COMDLG32_FR_CheckPartial( return FALSE; } - if((pfr->Flags & (FR_ENABLETEMPLATE | FR_ENABLETEMPLATEHANDLE)) && !pfr->hInstance) + if((pfr->Flags & FR_ENABLETEMPLATEHANDLE) && !pfr->hInstance) { COMDLG32_SetCommDlgExtendedError(CDERR_NOHINSTANCE); return FALSE; } - if((pfr->Flags & FR_ENABLETEMPLATE) && !pfr->lpTemplateName) - { - COMDLG32_SetCommDlgExtendedError(CDERR_NOTEMPLATE); - return FALSE; - } - return TRUE; } @@ -536,7 +530,7 @@ HWND WINAPI ReplaceTextW( TRACE("LPFINDREPLACE=%p\n", pfr); - if(!COMDLG32_FR_CheckPartial((LPFINDREPLACEA)pfr, FALSE)) + if(!COMDLG32_FR_CheckPartial((LPFINDREPLACEA)pfr, TRUE)) return 0; len1 = WideCharToMultiByte( CP_ACP, 0, pfr->lpstrFindWhat, pfr->wFindWhatLen, diff --git a/reactos/dll/win32/comdlg32/fontdlg.c b/reactos/dll/win32/comdlg32/fontdlg.c index ad580d5c863..6d3ee73da60 100644 --- a/reactos/dll/win32/comdlg32/fontdlg.c +++ b/reactos/dll/win32/comdlg32/fontdlg.c @@ -903,7 +903,6 @@ static LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam, LPCHOOSEFO int i; long l; HDC hdc; - LPLOGFONTW lpxx=lpcf->lpLogFont; if (!lpcf) return FALSE; @@ -965,6 +964,7 @@ static LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam, LPCHOOSEFO { WCHAR str[256]; WINDOWINFO wininfo; + LPLOGFONTW lpxx=lpcf->lpLogFont; TRACE("WM_COMMAND/cmb2,3 =%08lX\n", lParam); i=SendDlgItemMessageW(hDlg,cmb1,CB_GETCURSEL,0,0); diff --git a/reactos/dll/win32/comdlg32/pd32_collate.ico b/reactos/dll/win32/comdlg32/pd32_collate.ico index cccfc1cf9de..55756e7f7a0 100644 Binary files a/reactos/dll/win32/comdlg32/pd32_collate.ico and b/reactos/dll/win32/comdlg32/pd32_collate.ico differ diff --git a/reactos/dll/win32/comdlg32/pd32_landscape.ico b/reactos/dll/win32/comdlg32/pd32_landscape.ico index f06cfa51a30..1a31e6a8d15 100644 Binary files a/reactos/dll/win32/comdlg32/pd32_landscape.ico and b/reactos/dll/win32/comdlg32/pd32_landscape.ico differ diff --git a/reactos/dll/win32/comdlg32/pd32_nocollate.ico b/reactos/dll/win32/comdlg32/pd32_nocollate.ico index bf84a231bd5..b71013a9ac2 100644 Binary files a/reactos/dll/win32/comdlg32/pd32_nocollate.ico and b/reactos/dll/win32/comdlg32/pd32_nocollate.ico differ diff --git a/reactos/dll/win32/comdlg32/pd32_portrait.ico b/reactos/dll/win32/comdlg32/pd32_portrait.ico index 4001f9c74cb..432f73877a1 100644 Binary files a/reactos/dll/win32/comdlg32/pd32_portrait.ico and b/reactos/dll/win32/comdlg32/pd32_portrait.ico differ diff --git a/reactos/dll/win32/comdlg32/rsrc.rc b/reactos/dll/win32/comdlg32/rsrc.rc index 02d3d5f93a9..0389e7ddb97 100644 --- a/reactos/dll/win32/comdlg32/rsrc.rc +++ b/reactos/dll/win32/comdlg32/rsrc.rc @@ -70,4 +70,5 @@ #include "cdlg_Ro.rc" #include "cdlg_Ru.rc" #include "cdlg_Si.rc" +#include "cdlg_Sr.rc" #include "cdlg_Zh.rc" diff --git a/reactos/dll/win32/dwmapi/dwmapi.spec b/reactos/dll/win32/dwmapi/dwmapi.spec index 7c613d0ad46..ea41e0cfeb8 100644 --- a/reactos/dll/win32/dwmapi/dwmapi.spec +++ b/reactos/dll/win32/dwmapi/dwmapi.spec @@ -23,7 +23,7 @@ @ stub DwmAttachMilContent @ stub DwmDefWindowProc @ stub DwmDetachMilContent -@ stub DwmEnableBlurBehindWindow +@ stdcall DwmEnableBlurBehindWindow(ptr ptr) @ stdcall DwmEnableMMCSS(long) @ stdcall DwmExtendFrameIntoClientArea(long ptr) @ stdcall DwmFlush() diff --git a/reactos/dll/win32/dwmapi/dwmapi_main.c b/reactos/dll/win32/dwmapi/dwmapi_main.c index ee866912a35..fcc52c38264 100644 --- a/reactos/dll/win32/dwmapi/dwmapi_main.c +++ b/reactos/dll/win32/dwmapi/dwmapi_main.c @@ -166,3 +166,13 @@ HRESULT WINAPI DwmGetGraphicsStreamTransformHint(UINT uIndex, MilMatrix3x2D *pTr return E_NOTIMPL; } + +/********************************************************************** + * DwmEnableBlurBehindWindow (DWMAPI.@) + */ +HRESULT WINAPI DwmEnableBlurBehindWindow(HWND hWnd, const DWM_BLURBEHIND *pBlurBuf) +{ + FIXME("%p %p\n", hWnd, pBlurBuf); + + return E_NOTIMPL; +} diff --git a/reactos/dll/win32/fusion/asmcache.c b/reactos/dll/win32/fusion/asmcache.c index f35de7f142a..7334e5d793e 100644 --- a/reactos/dll/win32/fusion/asmcache.c +++ b/reactos/dll/win32/fusion/asmcache.c @@ -91,15 +91,32 @@ static BOOL create_full_path(LPCWSTR path) return ret; } -static BOOL get_assembly_directory(LPWSTR dir, DWORD size) +static BOOL get_assembly_directory(LPWSTR dir, DWORD size, BYTE architecture) { - static const WCHAR gac[] = - {'\\','a','s','s','e','m','b','l','y','\\','G','A','C','_','M','S','I','L',0}; + static const WCHAR gac[] = {'\\','a','s','s','e','m','b','l','y','\\','G','A','C',0}; - FIXME("Ignoring assembly architecture\n"); + static const WCHAR msil[] = {'_','M','S','I','L',0}; + static const WCHAR x86[] = {'_','3','2',0}; + static const WCHAR amd64[] = {'_','6','4',0}; GetWindowsDirectoryW(dir, size); strcatW(dir, gac); + + switch (architecture) + { + case peMSIL: + strcatW(dir, msil); + break; + + case peI386: + strcatW(dir, x86); + break; + + case peAMD64: + strcatW(dir, amd64); + break; + } + return TRUE; } @@ -291,7 +308,7 @@ static HRESULT WINAPI IAssemblyCacheImpl_InstallAssembly(IAssemblyCache *iface, if (FAILED(hr)) goto done; - get_assembly_directory(asmdir, MAX_PATH); + get_assembly_directory(asmdir, MAX_PATH, assembly_get_architecture(assembly)); sprintfW(path, format, asmdir, name, version, token); diff --git a/reactos/dll/win32/fusion/asmname.c b/reactos/dll/win32/fusion/asmname.c index 3c014ea3244..bcf49a7f214 100644 --- a/reactos/dll/win32/fusion/asmname.c +++ b/reactos/dll/win32/fusion/asmname.c @@ -43,6 +43,7 @@ typedef struct { LPWSTR displayname; LPWSTR name; LPWSTR culture; + LPWSTR procarch; WORD version[4]; DWORD versize; @@ -53,6 +54,16 @@ typedef struct { LONG ref; } IAssemblyNameImpl; +static const WCHAR separator[] = {',',' ',0}; +static const WCHAR version[] = {'V','e','r','s','i','o','n',0}; +static const WCHAR culture[] = {'C','u','l','t','u','r','e',0}; +static const WCHAR pubkey[] = + {'P','u','b','l','i','c','K','e','y','T','o','k','e','n',0}; +static const WCHAR procarch[] = {'p','r','o','c','e','s','s','o','r', + 'A','r','c','h','i','t','e','c','t','u','r','e',0}; + +#define CHARS_PER_PUBKEY 16 + static HRESULT WINAPI IAssemblyNameImpl_QueryInterface(IAssemblyName *iface, REFIID riid, LPVOID *ppobj) { @@ -208,16 +219,120 @@ static HRESULT WINAPI IAssemblyNameImpl_GetDisplayName(IAssemblyName *iface, DWORD dwDisplayFlags) { IAssemblyNameImpl *name = (IAssemblyNameImpl *)iface; + WCHAR verstr[30]; + DWORD size; + LPWSTR cultureval = 0; + + static const WCHAR equals[] = {'=',0}; TRACE("(%p, %p, %p, %d)\n", iface, szDisplayName, pccDisplayName, dwDisplayFlags); - if (!name->displayname || !*name->displayname) + if (dwDisplayFlags == 0) + { + if (!name->displayname || !*name->displayname) + return FUSION_E_INVALID_NAME; + + size = min(*pccDisplayName, lstrlenW(name->displayname) + 1); + + lstrcpynW(szDisplayName, name->displayname, size); + *pccDisplayName = size; + + return S_OK; + } + + if (!name->name || !*name->name) return FUSION_E_INVALID_NAME; - lstrcpyW(szDisplayName, name->displayname); - *pccDisplayName = lstrlenW(szDisplayName) + 1; + /* Verify buffer size is sufficient */ + size = lstrlenW(name->name) + 1; + + if ((dwDisplayFlags & ASM_DISPLAYF_VERSION) && (name->versize > 0)) + { + static const WCHAR spec[] = {'%','d',0}; + static const WCHAR period[] = {'.',0}; + int i; + + wsprintfW(verstr, spec, name->version[0]); + + for (i = 1; i < name->versize; i++) + { + WCHAR value[6]; + wsprintfW(value, spec, name->version[i]); + + lstrcatW(verstr, period); + lstrcatW(verstr, value); + } + + size += lstrlenW(separator) + lstrlenW(version) + lstrlenW(equals) + lstrlenW(verstr); + } + + if ((dwDisplayFlags & ASM_DISPLAYF_CULTURE) && (name->culture)) + { + static const WCHAR neutral[] = {'n','e','u','t','r','a','l', 0}; + + cultureval = (lstrlenW(name->culture) == 2) ? name->culture : (LPWSTR) neutral; + size += lstrlenW(separator) + lstrlenW(culture) + lstrlenW(equals) + lstrlenW(cultureval); + } + + if ((dwDisplayFlags & ASM_DISPLAYF_PUBLIC_KEY_TOKEN) && (name->haspubkey)) + size += lstrlenW(separator) + lstrlenW(pubkey) + lstrlenW(equals) + CHARS_PER_PUBKEY; + + if ((dwDisplayFlags & ASM_DISPLAYF_PROCESSORARCHITECTURE) && (name->procarch)) + size += lstrlenW(separator) + lstrlenW(procarch) + lstrlenW(equals) + lstrlenW(name->procarch); + if (size > *pccDisplayName) + return S_FALSE; + + /* Construct the string */ + lstrcpyW(szDisplayName, name->name); + + if ((dwDisplayFlags & ASM_DISPLAYF_VERSION) && (name->versize > 0)) + { + lstrcatW(szDisplayName, separator); + + lstrcatW(szDisplayName, version); + lstrcatW(szDisplayName, equals); + lstrcatW(szDisplayName, verstr); + } + + if ((dwDisplayFlags & ASM_DISPLAYF_CULTURE) && (name->culture)) + { + lstrcatW(szDisplayName, separator); + + lstrcatW(szDisplayName, culture); + lstrcatW(szDisplayName, equals); + lstrcatW(szDisplayName, cultureval); + } + + if ((dwDisplayFlags & ASM_DISPLAYF_PUBLIC_KEY_TOKEN) && (name->haspubkey)) + { + WCHAR pkt[CHARS_PER_PUBKEY + 1]; + static const WCHAR spec[] = {'%','0','x','%','0','x','%','0','x', + '%','0','x','%','0','x','%','0','x','%','0','x','%','0','x',0}; + + lstrcatW(szDisplayName, separator); + + lstrcatW(szDisplayName, pubkey); + lstrcatW(szDisplayName, equals); + + wsprintfW(pkt, spec, name->pubkey[0], name->pubkey[1], name->pubkey[2], + name->pubkey[3], name->pubkey[4], name->pubkey[5], name->pubkey[6], + name->pubkey[7]); + + lstrcatW(szDisplayName, pkt); + } + + if ((dwDisplayFlags & ASM_DISPLAYF_PROCESSORARCHITECTURE) && (name->procarch)) + { + lstrcatW(szDisplayName, separator); + + lstrcatW(szDisplayName, procarch); + lstrcatW(szDisplayName, equals); + lstrcatW(szDisplayName, name->procarch); + } + + *pccDisplayName = size; return S_OK; } @@ -347,8 +462,6 @@ static HRESULT parse_culture(IAssemblyNameImpl *name, LPWSTR culture) return S_OK; } -#define CHARS_PER_PUBKEY 16 - static BOOL is_hex(WCHAR c) { return ((c >= 'a' && c <= 'f') || @@ -397,12 +510,6 @@ static HRESULT parse_display_name(IAssemblyNameImpl *name, LPCWSTR szAssemblyNam HRESULT hr = S_OK; BOOL done = FALSE; - static const WCHAR separator[] = {',',' ',0}; - static const WCHAR version[] = {'V','e','r','s','i','o','n',0}; - static const WCHAR culture[] = {'C','u','l','t','u','r','e',0}; - static const WCHAR pubkey[] = - {'P','u','b','l','i','c','K','e','y','T','o','k','e','n',0}; - if (!szAssemblyName) return S_OK; @@ -462,6 +569,11 @@ static HRESULT parse_display_name(IAssemblyNameImpl *name, LPCWSTR szAssemblyNam hr = parse_culture(name, ptr); else if (!lstrcmpW(str, pubkey)) hr = parse_pubkey(name, ptr); + else if (!lstrcmpW(str, procarch)) + { + name->procarch = strdupW(ptr); + hr = S_OK; + } if (FAILED(hr)) goto done; diff --git a/reactos/dll/win32/fusion/assembly.c b/reactos/dll/win32/fusion/assembly.c index bc187ac91cd..328b2792c9c 100644 --- a/reactos/dll/win32/fusion/assembly.c +++ b/reactos/dll/win32/fusion/assembly.c @@ -811,6 +811,20 @@ HRESULT assembly_get_version(ASSEMBLY *assembly, LPWSTR *version) return S_OK; } +BYTE assembly_get_architecture(ASSEMBLY *assembly) +{ + if ((assembly->corhdr->MajorRuntimeVersion == 2) && (assembly->corhdr->MinorRuntimeVersion == 0)) + return 0; /* .NET 1.x assembly */ + + if (assembly->nthdr->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC) + return peAMD64; /* AMD64/IA64 assembly */ + + if ((assembly->corhdr->Flags & COMIMAGE_FLAGS_ILONLY) && !(assembly->corhdr->Flags & COMIMAGE_FLAGS_32BITREQUIRED)) + return peMSIL; /* MSIL assembly */ + + return peI386; /* x86 assembly */ +} + static BYTE *assembly_get_blob(ASSEMBLY *assembly, WORD index, ULONG *size) { return GetData(&assembly->blobs[index], size); diff --git a/reactos/dll/win32/fusion/fusion.rbuild b/reactos/dll/win32/fusion/fusion.rbuild index 0850e55b20d..f95cee92880 100644 --- a/reactos/dll/win32/fusion/fusion.rbuild +++ b/reactos/dll/win32/fusion/fusion.rbuild @@ -8,6 +8,7 @@ shlwapi advapi32 dbghelp + user32 asmcache.c asmenum.c asmname.c diff --git a/reactos/dll/win32/fusion/fusionpriv.h b/reactos/dll/win32/fusion/fusionpriv.h index 4b9bd576d5b..6f4b28dc793 100644 --- a/reactos/dll/win32/fusion/fusionpriv.h +++ b/reactos/dll/win32/fusion/fusionpriv.h @@ -433,6 +433,7 @@ HRESULT assembly_release(ASSEMBLY *assembly); HRESULT assembly_get_name(ASSEMBLY *assembly, LPWSTR *name); HRESULT assembly_get_path(ASSEMBLY *assembly, LPWSTR *path); HRESULT assembly_get_version(ASSEMBLY *assembly, LPWSTR *version); +BYTE assembly_get_architecture(ASSEMBLY *assembly); HRESULT assembly_get_pubkey_token(ASSEMBLY *assembly, LPWSTR *token); static inline LPWSTR strdupW(LPCWSTR src) diff --git a/reactos/dll/win32/gdiplus/brush.c b/reactos/dll/win32/gdiplus/brush.c index 9dad679e622..b46bdc559b8 100644 --- a/reactos/dll/win32/gdiplus/brush.c +++ b/reactos/dll/win32/gdiplus/brush.c @@ -606,6 +606,7 @@ GpStatus WINGDIPAPI GdipCreatePathGradient(GDIPCONST GpPointF* points, GdipFree((*grad)->blendfac); GdipFree((*grad)->blendpos); GdipFree(*grad); + *grad = NULL; return OutOfMemory; } (*grad)->blendfac[0] = 1.0; @@ -699,6 +700,7 @@ GpStatus WINGDIPAPI GdipCreatePathGradientFromPath(GDIPCONST GpPath* path, GdipFree((*grad)->blendfac); GdipFree((*grad)->blendpos); GdipFree(*grad); + *grad = NULL; return OutOfMemory; } (*grad)->blendfac[0] = 1.0; diff --git a/reactos/dll/win32/gdiplus/font.c b/reactos/dll/win32/gdiplus/font.c index f198863da99..2670e8175dc 100644 --- a/reactos/dll/win32/gdiplus/font.c +++ b/reactos/dll/win32/gdiplus/font.c @@ -963,18 +963,33 @@ GpStatus WINGDIPAPI GdipGetFontCollectionFamilyList( GpFontFamily* gpfamilies[], INT* numFound) { INT i; + GpStatus stat=Ok; TRACE("%p, %d, %p, %p\n", fontCollection, numSought, gpfamilies, numFound); if (!(fontCollection && gpfamilies && numFound)) return InvalidParameter; - for (i = 0; i < numSought && i < fontCollection->count; i++) + memset(gpfamilies, 0, sizeof(*gpfamilies) * numSought); + + for (i = 0; i < numSought && i < fontCollection->count && stat == Ok; i++) { - gpfamilies[i] = fontCollection->FontFamilies[i]; + stat = GdipCloneFontFamily(fontCollection->FontFamilies[i], &gpfamilies[i]); } - *numFound = i; - return Ok; + + if (stat == Ok) + *numFound = i; + else + { + int numToFree=i; + for (i=0; ibrush), argb); } +GpStatus WINGDIPAPI GdipGetPenCompoundCount(GpPen *pen, INT *count) +{ + FIXME("(%p, %p): stub\n", pen, count); + + if (!pen || !count) + return InvalidParameter; + + return NotImplemented; +} + GpStatus WINGDIPAPI GdipSetPenCompoundArray(GpPen *pen, GDIPCONST REAL *dash, INT count) { diff --git a/reactos/dll/win32/jscript/array.c b/reactos/dll/win32/jscript/array.c index 1268d59638b..5c1bf120899 100644 --- a/reactos/dll/win32/jscript/array.c +++ b/reactos/dll/win32/jscript/array.c @@ -677,29 +677,31 @@ static HRESULT sort_cmp(script_ctx_t *ctx, DispatchEx *cmp_func, VARIANT *v1, VA *cmp = V_I4(&tmp); else *cmp = V_R8(&tmp) > 0.0 ? 1 : -1; - }else if(is_num_vt(V_VT(v1))) { - if(is_num_vt(V_VT(v2))) { - DOUBLE d = num_val(v1)-num_val(v2); - if(d > 0.0) - *cmp = 1; - else if(d < -0.0) - *cmp = -1; - else - *cmp = 0; - }else { - *cmp = -1; - } - }else if(is_num_vt(V_VT(v2))) { - *cmp = 1; - }else if(V_VT(v1) == VT_BSTR) { - if(V_VT(v2) == VT_BSTR) - *cmp = strcmpW(V_BSTR(v1), V_BSTR(v2)); + }else if(V_VT(v1) == VT_EMPTY) { + *cmp = V_VT(v2) == VT_EMPTY ? 0 : 1; + }else if(V_VT(v2) == VT_EMPTY) { + *cmp = -1; + }else if(is_num_vt(V_VT(v1)) && is_num_vt(V_VT(v2))) { + DOUBLE d = num_val(v1)-num_val(v2); + if(d > 0.0) + *cmp = 1; else - *cmp = -1; - }else if(V_VT(v2) == VT_BSTR) { - *cmp = 1; + *cmp = d < -0.0 ? -1 : 0; }else { - *cmp = 0; + BSTR x, y; + + hres = to_string(ctx, v1, ei, &x); + if(FAILED(hres)) + return hres; + + hres = to_string(ctx, v2, ei, &y); + if(SUCCEEDED(hres)) { + *cmp = strcmpW(x, y); + SysFreeString(y); + } + SysFreeString(x); + if(FAILED(hres)) + return hres; } return S_OK; diff --git a/reactos/dll/win32/jscript/jscript_Da.rc b/reactos/dll/win32/jscript/jscript_Da.rc index 07e2292ee1a..133c09527b4 100644 --- a/reactos/dll/win32/jscript/jscript_Da.rc +++ b/reactos/dll/win32/jscript/jscript_Da.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_DANISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TO_PRIMITIVE "Fejl ved konvertering af objekt til primitiv type" IDS_INVALID_CALL_ARG "Ugyldig procedure kald eller argument" diff --git a/reactos/dll/win32/jscript/jscript_De.rc b/reactos/dll/win32/jscript/jscript_De.rc index 7e4e9a13050..82628c9b7c3 100644 --- a/reactos/dll/win32/jscript/jscript_De.rc +++ b/reactos/dll/win32/jscript/jscript_De.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TO_PRIMITIVE "Fehler beim umwandeln des Objektes in einen Grundtyp" IDS_INVALID_CALL_ARG "Ungültiger Funktionsaufruf oder Argument" diff --git a/reactos/dll/win32/jscript/jscript_En.rc b/reactos/dll/win32/jscript/jscript_En.rc index bd3c09d2a5d..d98b0b691d0 100644 --- a/reactos/dll/win32/jscript/jscript_En.rc +++ b/reactos/dll/win32/jscript/jscript_En.rc @@ -20,7 +20,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TO_PRIMITIVE "Error converting object to primitive type" IDS_INVALID_CALL_ARG "Invalid procedure call or argument" diff --git a/reactos/dll/win32/jscript/jscript_Es.rc b/reactos/dll/win32/jscript/jscript_Es.rc index 48081090455..a953d61f170 100644 --- a/reactos/dll/win32/jscript/jscript_Es.rc +++ b/reactos/dll/win32/jscript/jscript_Es.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TO_PRIMITIVE "Error al convertir objeto a tipo primitivo" IDS_INVALID_CALL_ARG "Llamada a procedimiento no válido o argumento" diff --git a/reactos/dll/win32/jscript/jscript_Fr.rc b/reactos/dll/win32/jscript/jscript_Fr.rc index f70029db13f..a5247a80dd1 100644 --- a/reactos/dll/win32/jscript/jscript_Fr.rc +++ b/reactos/dll/win32/jscript/jscript_Fr.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TO_PRIMITIVE "Erreur lors de la conversion de l'objet vers un type primitif" IDS_INVALID_CALL_ARG "Appel de procédure ou argument invalide" diff --git a/reactos/dll/win32/jscript/jscript_Hu.rc b/reactos/dll/win32/jscript/jscript_Hu.rc index 133119e318b..b6ee1a3a77b 100644 --- a/reactos/dll/win32/jscript/jscript_Hu.rc +++ b/reactos/dll/win32/jscript/jscript_Hu.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TO_PRIMITIVE "Hiba az objektum primitív típusra való konvertálásánál" IDS_INVALID_CALL_ARG "Érvénytelen eljáráshívás vagy argmentum" diff --git a/reactos/dll/win32/jscript/jscript_It.rc b/reactos/dll/win32/jscript/jscript_It.rc index 1d843bebf18..3bfea6395cc 100644 --- a/reactos/dll/win32/jscript/jscript_It.rc +++ b/reactos/dll/win32/jscript/jscript_It.rc @@ -24,7 +24,7 @@ LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TO_PRIMITIVE "Errore nel convertire un oggetto ad un tipo primitivo" IDS_INVALID_CALL_ARG "Chiamata o argomento di procedura non valido" diff --git a/reactos/dll/win32/jscript/jscript_Ja.rc b/reactos/dll/win32/jscript/jscript_Ja.rc index 97517518c74..b95e4aab190 100644 --- a/reactos/dll/win32/jscript/jscript_Ja.rc +++ b/reactos/dll/win32/jscript/jscript_Ja.rc @@ -24,7 +24,7 @@ LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TO_PRIMITIVE "オブジェクトを基本型に変換できません" IDS_INVALID_CALL_ARG "手続き呼び出しまたは引数が無効です" diff --git a/reactos/dll/win32/jscript/jscript_Ko.rc b/reactos/dll/win32/jscript/jscript_Ko.rc index 164d6beb128..d45094e6bd8 100644 --- a/reactos/dll/win32/jscript/jscript_Ko.rc +++ b/reactos/dll/win32/jscript/jscript_Ko.rc @@ -24,7 +24,7 @@ LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TO_PRIMITIVE "객페를 기본 형식으로 변환하는 중에 에러 발생" IDS_INVALID_CALL_ARG "올바르지 않은 프로시져 호출이나 인수" diff --git a/reactos/dll/win32/jscript/jscript_Lt.rc b/reactos/dll/win32/jscript/jscript_Lt.rc index a7b451eb8c9..70e0d9670a8 100644 --- a/reactos/dll/win32/jscript/jscript_Lt.rc +++ b/reactos/dll/win32/jscript/jscript_Lt.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TO_PRIMITIVE "Klaida keičiant objektą į primityvų tipą" IDS_INVALID_CALL_ARG "Netinkamas kreipinys į procedÅ«rą ar argumentas" diff --git a/reactos/dll/win32/jscript/jscript_Nl.rc b/reactos/dll/win32/jscript/jscript_Nl.rc index fec11a08000..e140b319a07 100644 --- a/reactos/dll/win32/jscript/jscript_Nl.rc +++ b/reactos/dll/win32/jscript/jscript_Nl.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL #pragma code_page(65001) -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TO_PRIMITIVE "Fout bij het omzetten van het object naar een primitief type" IDS_INVALID_CALL_ARG "Ongeldige procedure-aanroep of argument" diff --git a/reactos/dll/win32/jscript/jscript_No.rc b/reactos/dll/win32/jscript/jscript_No.rc index 8fa790ff6ca..9b9d9bbec82 100644 --- a/reactos/dll/win32/jscript/jscript_No.rc +++ b/reactos/dll/win32/jscript/jscript_No.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TO_PRIMITIVE "Klarte ikke konvertere objekt til primitiv type" IDS_INVALID_CALL_ARG "Ugyldig funksjonskall eller argument" diff --git a/reactos/dll/win32/jscript/jscript_Pl.rc b/reactos/dll/win32/jscript/jscript_Pl.rc index 8bbbe7332a4..ff924a3f924 100644 --- a/reactos/dll/win32/jscript/jscript_Pl.rc +++ b/reactos/dll/win32/jscript/jscript_Pl.rc @@ -20,7 +20,7 @@ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TO_PRIMITIVE "B³¹d przy przekszta³caniu obiektu do typu podstawowego" IDS_INVALID_CALL_ARG "Niew³aœciwe wywo³anie procedury lub argument" diff --git a/reactos/dll/win32/jscript/jscript_Pt.rc b/reactos/dll/win32/jscript/jscript_Pt.rc index a907b1063be..1ead171548b 100644 --- a/reactos/dll/win32/jscript/jscript_Pt.rc +++ b/reactos/dll/win32/jscript/jscript_Pt.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TO_PRIMITIVE "Erro ao converter objeto em tipo primitivo" IDS_INVALID_CALL_ARG "Argumento ou chamada de procedimento inválida" @@ -51,7 +51,7 @@ STRINGTABLE DISCARDABLE LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TO_PRIMITIVE "Erro ao converter objecto em tipo primitivo" IDS_INVALID_CALL_ARG "Argumento ou chamada de procedimento inválida" diff --git a/reactos/dll/win32/jscript/jscript_Ro.rc b/reactos/dll/win32/jscript/jscript_Ro.rc index 481e62975d6..ec35c37b539 100644 --- a/reactos/dll/win32/jscript/jscript_Ro.rc +++ b/reactos/dll/win32/jscript/jscript_Ro.rc @@ -24,7 +24,7 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL #pragma code_page(65001) -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TO_PRIMITIVE "Eroare la convertirea obiectului la un tip primitiv" IDS_INVALID_CALL_ARG "Apel de procedură sau argument nevalid" diff --git a/reactos/dll/win32/jscript/jscript_Ru.rc b/reactos/dll/win32/jscript/jscript_Ru.rc index 9632d3f3693..ce58b44261c 100644 --- a/reactos/dll/win32/jscript/jscript_Ru.rc +++ b/reactos/dll/win32/jscript/jscript_Ru.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TO_PRIMITIVE "Ошибка конвертирования объекта в примитивный тип" IDS_INVALID_CALL_ARG "Неверный вызов процедуры или аргумент" diff --git a/reactos/dll/win32/jscript/jscript_Si.rc b/reactos/dll/win32/jscript/jscript_Si.rc index 0ddeab117e6..1f282dd26b4 100644 --- a/reactos/dll/win32/jscript/jscript_Si.rc +++ b/reactos/dll/win32/jscript/jscript_Si.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TO_PRIMITIVE "Napaka med spreminjanjem v primitivni tip" IDS_INVALID_CALL_ARG "Napačen klic postopka ali argument" diff --git a/reactos/dll/win32/jscript/jscript_Uk.rc b/reactos/dll/win32/jscript/jscript_Uk.rc new file mode 100644 index 00000000000..6f0913ac677 --- /dev/null +++ b/reactos/dll/win32/jscript/jscript_Uk.rc @@ -0,0 +1,51 @@ +/* + * Copyright 2009 Piotr Caban + * Copyright 2010 Igor Paliychuk + * + * 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 "resource.h" + +/* UTF-8 */ +#pragma code_page(65001) + +LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT + +STRINGTABLE +{ + IDS_TO_PRIMITIVE "Помилка конвертування об'єкту в примітивний тип" + IDS_INVALID_CALL_ARG "Невірний виклик процедури або аргумент" + IDS_CREATE_OBJ_ERROR "Сервер автоматизації не може створити об'єкт" + IDS_NO_PROPERTY "Об'єкт не підтримує цю властивість чи метод" + IDS_ARG_NOT_OPT "Відсутній обов'язковий аргумент" + IDS_SYNTAX_ERROR "Синтаксична помилка" + IDS_SEMICOLON "Очікується ';'" + IDS_LBRACKET "Очікується '('" + IDS_RBRACKET "Очікується ')'" + IDS_UNTERMINATED_STR "Незавершена рядкова константа" + IDS_NOT_FUNC "Очікується функція" + IDS_NOT_DATE "'[object]' не об'єкт типу date" + IDS_NOT_NUM "Очікується число" + IDS_OBJECT_EXPECTED "Очікується об'єкт" + IDS_ILLEGAL_ASSIGN "Невірне присвоєння" + IDS_UNDEFINED "'|' не визначено" + IDS_NOT_BOOL "Очікується об'єкт Boolean" + IDS_JSCRIPT_EXPECTED "Очікується об'єкт JScript" + IDS_REGEXP_SYNTAX_ERROR "Синтаксична помилка в регулярному виразі" + IDS_URI_INVALID_CHAR "URI, що буде закодований, містить неприпустимі символи" + IDS_INVALID_LENGTH "Довжиною масиву повинне бути скінченне додатнє ціле число" + IDS_ARRAY_EXPECTED "Очікується об'єкт Array" +} diff --git a/reactos/dll/win32/jscript/rsrc.rc b/reactos/dll/win32/jscript/rsrc.rc index b13edcc4ddf..0e3b2e7002a 100644 --- a/reactos/dll/win32/jscript/rsrc.rc +++ b/reactos/dll/win32/jscript/rsrc.rc @@ -20,7 +20,7 @@ REGINST REGINST jscript.inf /* @makedep: jsglobal.tlb */ -1 TYPELIB LOADONCALL DISCARDABLE jsglobal.tlb +1 TYPELIB jsglobal.tlb #include "jscript_En.rc" #include "jscript_Pl.rc" @@ -41,3 +41,5 @@ REGINST REGINST jscript.inf #include "jscript_Ro.rc" #include "jscript_Ru.rc" #include "jscript_Si.rc" +#include "jscript_Uk.rc" + diff --git a/reactos/dll/win32/mpr/mpr_Bg.rc b/reactos/dll/win32/mpr/mpr_Bg.rc index 52353d2a066..7b0597a1695 100644 --- a/reactos/dll/win32/mpr/mpr_Bg.rc +++ b/reactos/dll/win32/mpr/mpr_Bg.rc @@ -22,12 +22,12 @@ LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Öÿëàòà ìðåæà" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Âúâåäåòå ìðåæîâà ïàðîëà" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_Cs.rc b/reactos/dll/win32/mpr/mpr_Cs.rc index 8e32de4747e..aa86f93b71a 100644 --- a/reactos/dll/win32/mpr/mpr_Cs.rc +++ b/reactos/dll/win32/mpr/mpr_Cs.rc @@ -25,12 +25,12 @@ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT /* Czech strings in CP1250 */ -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Celá sí" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Zadání síového hesla" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_Da.rc b/reactos/dll/win32/mpr/mpr_Da.rc index 52dc635d19a..8a8ea2cc5a1 100644 --- a/reactos/dll/win32/mpr/mpr_Da.rc +++ b/reactos/dll/win32/mpr/mpr_Da.rc @@ -22,12 +22,12 @@ LANGUAGE LANG_DANISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Hele netværket" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Skriv netværkskodeord" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_De.rc b/reactos/dll/win32/mpr/mpr_De.rc index d8b1298ac41..483d6890b37 100644 --- a/reactos/dll/win32/mpr/mpr_De.rc +++ b/reactos/dll/win32/mpr/mpr_De.rc @@ -24,12 +24,12 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Gesamtes Netzwerk" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Netzwerkkennung eingeben" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_En.rc b/reactos/dll/win32/mpr/mpr_En.rc index c6fdf727785..8853e0c0960 100644 --- a/reactos/dll/win32/mpr/mpr_En.rc +++ b/reactos/dll/win32/mpr/mpr_En.rc @@ -22,12 +22,12 @@ LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Entire Network" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Enter Network Password" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_Es.rc b/reactos/dll/win32/mpr/mpr_Es.rc index 630a9fe9141..5506621093b 100644 --- a/reactos/dll/win32/mpr/mpr_Es.rc +++ b/reactos/dll/win32/mpr/mpr_Es.rc @@ -22,12 +22,12 @@ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Toda la red" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Introduzca contraseña de red" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_Fr.rc b/reactos/dll/win32/mpr/mpr_Fr.rc index 4481639ad35..be77a2e6b6b 100644 --- a/reactos/dll/win32/mpr/mpr_Fr.rc +++ b/reactos/dll/win32/mpr/mpr_Fr.rc @@ -26,12 +26,12 @@ LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Le réseau entier" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 210, 146 +IDD_PROXYDLG DIALOG 36, 24, 210, 146 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Entrez le mot de passe réseau" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_Hu.rc b/reactos/dll/win32/mpr/mpr_Hu.rc index 32c32dd6da6..a6a4cc4aecf 100644 --- a/reactos/dll/win32/mpr/mpr_Hu.rc +++ b/reactos/dll/win32/mpr/mpr_Hu.rc @@ -22,12 +22,12 @@ LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Teljes hálózat" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Hálózati jelszó megadása" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_It.rc b/reactos/dll/win32/mpr/mpr_It.rc index 7067ee37d96..a174b84d4b2 100644 --- a/reactos/dll/win32/mpr/mpr_It.rc +++ b/reactos/dll/win32/mpr/mpr_It.rc @@ -23,12 +23,12 @@ LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Tutta la rete" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Inserisci la Password di Rete" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_Ja.rc b/reactos/dll/win32/mpr/mpr_Ja.rc index a662ce7223d..f806a2fa42b 100644 --- a/reactos/dll/win32/mpr/mpr_Ja.rc +++ b/reactos/dll/win32/mpr/mpr_Ja.rc @@ -25,12 +25,12 @@ LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "ネットワーク全体" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "ネットワーク用パスワードを入力" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_Ko.rc b/reactos/dll/win32/mpr/mpr_Ko.rc index 4ebbd8f3575..d708fbf5978 100644 --- a/reactos/dll/win32/mpr/mpr_Ko.rc +++ b/reactos/dll/win32/mpr/mpr_Ko.rc @@ -23,12 +23,12 @@ LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Àüü ³×Æ®¿öÅ©" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "³×Æ®¿öÅ© ¾ÏÈ£ ÀÔ·Â" FONT 9, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_Lt.rc b/reactos/dll/win32/mpr/mpr_Lt.rc index d086d94c3b7..5164d261d17 100644 --- a/reactos/dll/win32/mpr/mpr_Lt.rc +++ b/reactos/dll/win32/mpr/mpr_Lt.rc @@ -25,12 +25,12 @@ LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Visas tinklas" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Ä®veskite tinklo slaptažodį" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_Nl.rc b/reactos/dll/win32/mpr/mpr_Nl.rc index b1c67819799..f28107a3587 100644 --- a/reactos/dll/win32/mpr/mpr_Nl.rc +++ b/reactos/dll/win32/mpr/mpr_Nl.rc @@ -23,12 +23,12 @@ LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Gehele netwerk" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Voer het Netwerk Wachtwoord in" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_No.rc b/reactos/dll/win32/mpr/mpr_No.rc index 150ee509edb..181c8589166 100644 --- a/reactos/dll/win32/mpr/mpr_No.rc +++ b/reactos/dll/win32/mpr/mpr_No.rc @@ -22,12 +22,12 @@ LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Hele nettverket" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Skriv inn nettverkspassord" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_Pl.rc b/reactos/dll/win32/mpr/mpr_Pl.rc index afdd3ba6343..c47ef92fbe2 100644 --- a/reactos/dll/win32/mpr/mpr_Pl.rc +++ b/reactos/dll/win32/mpr/mpr_Pl.rc @@ -23,12 +23,12 @@ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Ca³a sieæ" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Wpisz has³o sieci" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_Pt.rc b/reactos/dll/win32/mpr/mpr_Pt.rc index b0191939094..08509687231 100644 --- a/reactos/dll/win32/mpr/mpr_Pt.rc +++ b/reactos/dll/win32/mpr/mpr_Pt.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Toda a rede" } @@ -33,7 +33,7 @@ STRINGTABLE DISCARDABLE LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Entre a senha da rede" FONT 8, "MS Shell Dlg" @@ -55,7 +55,7 @@ FONT 8, "MS Shell Dlg" LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Indique a senha da rede" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_Ro.rc b/reactos/dll/win32/mpr/mpr_Ro.rc index ab7d137e2b2..6a97a965e45 100644 --- a/reactos/dll/win32/mpr/mpr_Ro.rc +++ b/reactos/dll/win32/mpr/mpr_Ro.rc @@ -23,12 +23,12 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL #pragma code_page(65001) -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Toată rețeaua" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Introducere parolă de rețea" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_Ru.rc b/reactos/dll/win32/mpr/mpr_Ru.rc index 3d17a0a93a5..2949120f29a 100644 --- a/reactos/dll/win32/mpr/mpr_Ru.rc +++ b/reactos/dll/win32/mpr/mpr_Ru.rc @@ -25,12 +25,12 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Вся сеть" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Введите сетевой пароль" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_Si.rc b/reactos/dll/win32/mpr/mpr_Si.rc index 8f4022e402f..bec79d3fa69 100644 --- a/reactos/dll/win32/mpr/mpr_Si.rc +++ b/reactos/dll/win32/mpr/mpr_Si.rc @@ -24,12 +24,12 @@ LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Celotno omrežje" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Vnesite omrežno geslo" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_Sv.rc b/reactos/dll/win32/mpr/mpr_Sv.rc index 86d0db6602a..e069a19401d 100644 --- a/reactos/dll/win32/mpr/mpr_Sv.rc +++ b/reactos/dll/win32/mpr/mpr_Sv.rc @@ -22,12 +22,12 @@ LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Hela nätverket" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Ange nätverkslösenord" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_Tr.rc b/reactos/dll/win32/mpr/mpr_Tr.rc index 0f48a156a31..6cb99c2d86d 100644 --- a/reactos/dll/win32/mpr/mpr_Tr.rc +++ b/reactos/dll/win32/mpr/mpr_Tr.rc @@ -22,12 +22,12 @@ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Tüm Að" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Að Parolanýzý Girin" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_Uk.rc b/reactos/dll/win32/mpr/mpr_Uk.rc index 67b781d82ad..e4ffc2e8fde 100644 --- a/reactos/dll/win32/mpr/mpr_Uk.rc +++ b/reactos/dll/win32/mpr/mpr_Uk.rc @@ -26,12 +26,12 @@ LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "Вся Мережа" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Введіть Мережний Пароль" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/mpr_Zh.rc b/reactos/dll/win32/mpr/mpr_Zh.rc index 661e6b4afcd..0f11e7727d1 100644 --- a/reactos/dll/win32/mpr/mpr_Zh.rc +++ b/reactos/dll/win32/mpr/mpr_Zh.rc @@ -25,12 +25,12 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "整个网络" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "输入网络密码" FONT 9, "MS Shell Dlg" @@ -52,12 +52,12 @@ FONT 9, "MS Shell Dlg" LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_ENTIRENETWORK "整個網路" } -IDD_PROXYDLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 250, 154 +IDD_PROXYDLG DIALOG 36, 24, 250, 154 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "輸入網路密碼" FONT 9, "MS Shell Dlg" diff --git a/reactos/dll/win32/mpr/wnet.c b/reactos/dll/win32/mpr/wnet.c index f5b0bc940c8..66d165f8b8c 100644 --- a/reactos/dll/win32/mpr/wnet.c +++ b/reactos/dll/win32/mpr/wnet.c @@ -29,6 +29,8 @@ #include "npapi.h" #include "winreg.h" #include "winuser.h" +#define WINE_MOUNTMGR_EXTENSIONS +#include "ddk/mountmgr.h" #include "wine/debug.h" #include "wine/unicode.h" #include "mprres.h" @@ -1754,6 +1756,52 @@ DWORD WINAPI WNetGetConnectionA( LPCSTR lpLocalName, return ret; } +/* find the network connection for a given drive; helper for WNetGetConnection */ +static DWORD get_drive_connection( WCHAR letter, LPWSTR remote, LPDWORD size ) +{ + char buffer[1024]; + struct mountmgr_unix_drive *data = (struct mountmgr_unix_drive *)buffer; + HANDLE mgr; + DWORD ret = WN_NOT_CONNECTED; + + if ((mgr = CreateFileW( MOUNTMGR_DOS_DEVICE_NAME, GENERIC_READ|GENERIC_WRITE, + FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, + 0, 0 )) == INVALID_HANDLE_VALUE) + { + ERR( "failed to open mount manager err %u\n", GetLastError() ); + return ret; + } + memset( data, 0, sizeof(*data) ); + data->letter = letter; + if (DeviceIoControl( mgr, IOCTL_MOUNTMGR_QUERY_UNIX_DRIVE, data, sizeof(*data), + data, sizeof(buffer), NULL, NULL )) + { + char *p, *mount_point = buffer + data->mount_point_offset; + DWORD len; + + if (data->mount_point_offset && !strncmp( mount_point, "unc/", 4 )) + { + mount_point += 2; + mount_point[0] = '\\'; + for (p = mount_point; *p; p++) if (*p == '/') *p = '\\'; + + len = MultiByteToWideChar( CP_UNIXCP, 0, mount_point, -1, NULL, 0 ); + if (len > *size) + { + *size = len; + ret = WN_MORE_DATA; + } + else + { + *size = MultiByteToWideChar( CP_UNIXCP, 0, mount_point, -1, remote, *size); + ret = WN_SUCCESS; + } + } + } + CloseHandle( mgr ); + return ret; +} + /************************************************************************** * WNetGetConnectionW [MPR.@] * @@ -1782,31 +1830,8 @@ DWORD WINAPI WNetGetConnectionW( LPCWSTR lpLocalName, switch(GetDriveTypeW(lpLocalName)) { case DRIVE_REMOTE: - { - static const WCHAR unc[] = { 'u','n','c','\\' }; - WCHAR rremote[MAX_PATH], *remote = rremote; - if (!QueryDosDeviceW( lpLocalName, remote, MAX_PATH )) remote[0] = 0; - else if (!strncmpW(remote, unc, 4)) - { - remote += 2; - remote[0] = '\\'; - } - else if (remote[0] != '\\' || remote[1] != '\\') - FIXME("Don't know how to convert %s to an unc\n", debugstr_w(remote)); - - if (strlenW(remote) + 1 > *lpBufferSize) - { - *lpBufferSize = strlenW(remote) + 1; - ret = WN_MORE_DATA; - } - else - { - strcpyW( lpRemoteName, remote ); - *lpBufferSize = strlenW(lpRemoteName) + 1; - ret = WN_SUCCESS; - } + ret = get_drive_connection( lpLocalName[0], lpRemoteName, lpBufferSize ); break; - } case DRIVE_REMOVABLE: case DRIVE_FIXED: case DRIVE_CDROM: diff --git a/reactos/dll/win32/mshtml/Bg.rc b/reactos/dll/win32/mshtml/Bg.rc index 84d7e9ae235..03a466e1298 100644 --- a/reactos/dll/win32/mshtml/Bg.rc +++ b/reactos/dll/win32/mshtml/Bg.rc @@ -20,7 +20,7 @@ LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "HTML èçîáðàçÿâàíåòî å èçêëþ÷åíî." IDS_HTMLDOCUMENT "HTML äîêóìåíò" @@ -28,7 +28,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "Èíñòàëèðàíå..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 +ID_DWL_DIALOG DIALOG 0, 0, 260, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Wine Gecko Installer" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/Da.rc b/reactos/dll/win32/mshtml/Da.rc index c211ff0dc36..13a0aa96f43 100644 --- a/reactos/dll/win32/mshtml/Da.rc +++ b/reactos/dll/win32/mshtml/Da.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_DANISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "HTML optegning er i øjeblikket deaktiveret." IDS_HTMLDOCUMENT "HTML dokument" @@ -33,7 +33,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "Installerer..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 +ID_DWL_DIALOG DIALOG 0, 0, 260, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Installere Wine Gecko" FONT 8, "MS Shell Dlg" @@ -47,7 +47,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Annuller", IDCANCEL, 140, 70, 50, 15, WS_GROUP | WS_TABSTOP } -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Hyperlink" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/De.rc b/reactos/dll/win32/mshtml/De.rc index 50d519d70a7..3929b953a6d 100644 --- a/reactos/dll/win32/mshtml/De.rc +++ b/reactos/dll/win32/mshtml/De.rc @@ -24,7 +24,7 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL #pragma code_page(65001) -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "Die HTML-Darstellung ist zur Zeit ausgeschaltet." IDS_HTMLDOCUMENT "HTML-Dokument" @@ -32,7 +32,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "Installiere..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 +ID_DWL_DIALOG DIALOG 0, 0, 260, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Wine-Gecko-Installation" FONT 8, "MS Shell Dlg" @@ -48,7 +48,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Abbrechen", IDCANCEL, 140, 70, 50, 15, WS_GROUP | WS_TABSTOP } -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Hyperlink" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/En.rc b/reactos/dll/win32/mshtml/En.rc index de9e99c1b54..e44b3731472 100644 --- a/reactos/dll/win32/mshtml/En.rc +++ b/reactos/dll/win32/mshtml/En.rc @@ -20,7 +20,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "HTML rendering is currently disabled." IDS_HTMLDOCUMENT "HTML Document" @@ -28,7 +28,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "Installing..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 +ID_DWL_DIALOG DIALOG 0, 0, 260, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Wine Gecko Installer" FONT 8, "MS Shell Dlg" @@ -42,7 +42,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Cancel", IDCANCEL, 140, 70, 50, 15, WS_GROUP | WS_TABSTOP } -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Hyperlink" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/Es.rc b/reactos/dll/win32/mshtml/Es.rc index 590cf6a3182..4dc560f6e5a 100644 --- a/reactos/dll/win32/mshtml/Es.rc +++ b/reactos/dll/win32/mshtml/Es.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "El renderizado HTML está actualmente deshabilitado." IDS_HTMLDOCUMENT "Documento HTML" @@ -30,7 +30,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "Instalando..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 +ID_DWL_DIALOG DIALOG 0, 0, 260, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalador de Gecko de Wine" FONT 8, "MS Shell Dlg" @@ -44,7 +44,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Cancelar", IDCANCEL, 140, 70, 50, 15, WS_GROUP | WS_TABSTOP } -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Enlace" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/Fi.rc b/reactos/dll/win32/mshtml/Fi.rc index 564345d6960..c329cfdaad7 100644 --- a/reactos/dll/win32/mshtml/Fi.rc +++ b/reactos/dll/win32/mshtml/Fi.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "HTML:n näyttäminen on tällähetkellä poistettu käytöstä." IDS_HTMLDOCUMENT "HTML Dokumentti" diff --git a/reactos/dll/win32/mshtml/Fr.rc b/reactos/dll/win32/mshtml/Fr.rc index 2575c7e6a6e..924e4b0bc78 100644 --- a/reactos/dll/win32/mshtml/Fr.rc +++ b/reactos/dll/win32/mshtml/Fr.rc @@ -27,7 +27,7 @@ LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "Le rendu HTML est actuellement désactivé." IDS_HTMLDOCUMENT "Document HTML" @@ -35,7 +35,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "Installation..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 110 +ID_DWL_DIALOG DIALOG 0, 0, 260, 110 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Programme d'installation de Gecko pour Wine" FONT 8, "MS Shell Dlg" @@ -51,7 +51,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Annuler", IDCANCEL, 140, 85, 50, 15, WS_GROUP | WS_TABSTOP } -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Hyperlien" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/Hu.rc b/reactos/dll/win32/mshtml/Hu.rc index c402c208802..31f54d1f274 100644 --- a/reactos/dll/win32/mshtml/Hu.rc +++ b/reactos/dll/win32/mshtml/Hu.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "A HTML renderelés jelenleg le van tiltva." IDS_HTMLDOCUMENT "HTML dokumentum" @@ -31,7 +31,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "Telepítés..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 +ID_DWL_DIALOG DIALOG 0, 0, 260, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Wine Gecko Installer" FONT 8, "MS Shell Dlg" @@ -45,7 +45,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Mégse", IDCANCEL, 140, 70, 50, 15, WS_GROUP | WS_TABSTOP } -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Hiperhivatkozás" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/It.rc b/reactos/dll/win32/mshtml/It.rc index 36660cca6bf..c8c00c2c84e 100644 --- a/reactos/dll/win32/mshtml/It.rc +++ b/reactos/dll/win32/mshtml/It.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "Il rendering HTML è correntemente disattivato." IDS_HTMLDOCUMENT "Documento HTML" @@ -31,7 +31,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "Installando..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 +ID_DWL_DIALOG DIALOG 0, 0, 260, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Installer di Wine Gecko" FONT 8, "MS Shell Dlg" @@ -45,7 +45,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Annulla", IDCANCEL, 140, 70, 50, 15, WS_GROUP | WS_TABSTOP } -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Hyperlink" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/Ja.rc b/reactos/dll/win32/mshtml/Ja.rc index 04fc32e785b..f8c0e44040c 100644 --- a/reactos/dll/win32/mshtml/Ja.rc +++ b/reactos/dll/win32/mshtml/Ja.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "HTML レンダリングは現在、無効です。" IDS_HTMLDOCUMENT "HTML 文書" @@ -31,7 +31,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "インストールしています..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 +ID_DWL_DIALOG DIALOG 0, 0, 260, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Wine Gecko インストーラ" FONT 9, "MS Shell Dlg" @@ -45,7 +45,7 @@ FONT 9, "MS Shell Dlg" PUSHBUTTON "キャンセル(&C)", IDCANCEL, 140, 70, 50, 15, WS_GROUP | WS_TABSTOP } -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ハイパーリンク" FONT 9, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/Ko.rc b/reactos/dll/win32/mshtml/Ko.rc index 8a980609def..f54152632d3 100644 --- a/reactos/dll/win32/mshtml/Ko.rc +++ b/reactos/dll/win32/mshtml/Ko.rc @@ -21,7 +21,7 @@ LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "HTML ·»´õ¸µÀº ÇöÀç °¡´ÉÇÏÁö ¾ÊÀ½." IDS_HTMLDOCUMENT "HTML ¹®¼­" @@ -29,7 +29,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "¼³Ä¡ Áß..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 +ID_DWL_DIALOG DIALOG 0, 0, 260, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Wine Gecko ¼³Ä¡ Ç®±×¸²" FONT 9, "MS Shell Dlg" @@ -43,7 +43,7 @@ FONT 9, "MS Shell Dlg" PUSHBUTTON "Ãë¼Ò(&C)", IDCANCEL, 140, 70, 50, 15, WS_GROUP | WS_TABSTOP } -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ÇÏÀÌÆÛ¸µÅ©" FONT 9, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/Lt.rc b/reactos/dll/win32/mshtml/Lt.rc index 8f7e772a3a7..5bfa31d574e 100644 --- a/reactos/dll/win32/mshtml/Lt.rc +++ b/reactos/dll/win32/mshtml/Lt.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "HTML atvaizdavimas yra iÅ¡jungtas." IDS_HTMLDOCUMENT "HTML dokumentas" @@ -31,7 +31,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "Ä®diegiama..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 105 +ID_DWL_DIALOG DIALOG 0, 0, 260, 105 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Wine Gecko diegimo programa" FONT 8, "MS Shell Dlg" @@ -45,7 +45,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Atsisakyti", IDCANCEL, 140, 80, 50, 15, WS_GROUP | WS_TABSTOP } -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Saitas" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/Nl.rc b/reactos/dll/win32/mshtml/Nl.rc index d32980ba9fb..34019870029 100644 --- a/reactos/dll/win32/mshtml/Nl.rc +++ b/reactos/dll/win32/mshtml/Nl.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "De HTML weergave is op dit moment uitgeschakeld." IDS_HTMLDOCUMENT "HTML document" @@ -30,7 +30,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "Bezig met installeren..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 +ID_DWL_DIALOG DIALOG 0, 0, 260, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Wine-Gecko-Installatie" FONT 8, "MS Shell Dlg" @@ -44,7 +44,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Afbreken", IDCANCEL, 140, 70, 50, 15, WS_GROUP | WS_TABSTOP } -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Webverwijzing" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/No.rc b/reactos/dll/win32/mshtml/No.rc index 4592599edf3..89f87b9c47a 100644 --- a/reactos/dll/win32/mshtml/No.rc +++ b/reactos/dll/win32/mshtml/No.rc @@ -24,7 +24,7 @@ LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "HTML-tegning er for øyeblikket deaktivert." IDS_HTMLDOCUMENT "HTML-dokument" @@ -32,7 +32,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "Installerer..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 +ID_DWL_DIALOG DIALOG 0, 0, 260, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Installere Wine Gecko" FONT 8, "MS Shell Dlg" @@ -46,7 +46,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Avbryt", IDCANCEL, 140, 70, 50, 15, WS_GROUP | WS_TABSTOP } -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Hyperkobling" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/Pl.rc b/reactos/dll/win32/mshtml/Pl.rc index ed9cd80984a..9e0a63556eb 100644 --- a/reactos/dll/win32/mshtml/Pl.rc +++ b/reactos/dll/win32/mshtml/Pl.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "Wyœwietlanie HTML jest aktualnie wy³¹czone." IDS_HTMLDOCUMENT "Dokument HTML" @@ -30,7 +30,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "Instalacja..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 +ID_DWL_DIALOG DIALOG 0, 0, 260, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalator Wine Gecko" FONT 8, "MS Shell Dlg" @@ -44,7 +44,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Anuluj", IDCANCEL, 140, 70, 50, 15, WS_GROUP | WS_TABSTOP } -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Hiper³¹cze" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/Pt.rc b/reactos/dll/win32/mshtml/Pt.rc index 3c19ca50aad..49874523b17 100644 --- a/reactos/dll/win32/mshtml/Pt.rc +++ b/reactos/dll/win32/mshtml/Pt.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "A interpretação de HTML está desativada." IDS_HTMLDOCUMENT "Documento HTML" @@ -33,7 +33,7 @@ STRINGTABLE DISCARDABLE LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "A interpretação de HTML está desactivada." IDS_HTMLDOCUMENT "Documento HTML" @@ -44,7 +44,7 @@ STRINGTABLE DISCARDABLE LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 +ID_DWL_DIALOG DIALOG 0, 0, 260, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalador Wine Gecko" FONT 8, "MS Shell Dlg" @@ -61,7 +61,7 @@ Veja http://wiki.winehq.org/Gecko para mais detalhes.", LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 +ID_DWL_DIALOG DIALOG 0, 0, 260, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalador Wine Gecko" FONT 8, "MS Shell Dlg" @@ -79,7 +79,7 @@ Veja http://wiki.winehq.org/Gecko para mais detalhes.", LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Hiperlink" FONT 8, "MS Shell Dlg" @@ -95,7 +95,7 @@ FONT 8, "MS Shell Dlg" LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Hiperligação" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/Ro.rc b/reactos/dll/win32/mshtml/Ro.rc index 38cd580b94a..1c7a55851d9 100644 --- a/reactos/dll/win32/mshtml/Ro.rc +++ b/reactos/dll/win32/mshtml/Ro.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL #pragma code_page(65001) -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "Afișarea de pagini HTML este în prezent dezactivată." IDS_HTMLDOCUMENT "Document HTML" @@ -31,7 +31,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "Instalez..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 +ID_DWL_DIALOG DIALOG 0, 0, 260, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalator Wine Gecko" FONT 8, "MS Shell Dlg" @@ -45,7 +45,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Renunță", IDCANCEL, 140, 70, 50, 15, WS_GROUP | WS_TABSTOP } -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Hiperlegătură" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/Ru.rc b/reactos/dll/win32/mshtml/Ru.rc index cb3b168a8be..bd042725c67 100644 --- a/reactos/dll/win32/mshtml/Ru.rc +++ b/reactos/dll/win32/mshtml/Ru.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "В настоящее время отображение HTML выключено." IDS_HTMLDOCUMENT "Документ HTML" @@ -31,7 +31,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "Установка..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 261, 110 +ID_DWL_DIALOG DIALOG 0, 0, 261, 110 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Установка Wine Gecko" FONT 8, "MS Shell Dlg" @@ -47,7 +47,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Отмена", IDCANCEL, 100, 85, 70, 15, WS_GROUP | WS_TABSTOP } -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Ссылка" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/Si.rc b/reactos/dll/win32/mshtml/Si.rc index 6881addcd5b..0d6ee5f19ae 100644 --- a/reactos/dll/win32/mshtml/Si.rc +++ b/reactos/dll/win32/mshtml/Si.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "Prikazovanje HTML dokumentov je trenutno onemogočeno." IDS_HTMLDOCUMENT "HTML dokument" @@ -30,7 +30,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "Nameščam ..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 +ID_DWL_DIALOG DIALOG 0, 0, 260, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Namestitev Wine Gecko" FONT 8, "MS Shell Dlg" @@ -44,7 +44,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Prekliči", IDCANCEL, 140, 70, 50, 15, WS_GROUP | WS_TABSTOP } -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Hiperpovezava" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/Sv.rc b/reactos/dll/win32/mshtml/Sv.rc index c5a2cc8c383..290fa75e247 100644 --- a/reactos/dll/win32/mshtml/Sv.rc +++ b/reactos/dll/win32/mshtml/Sv.rc @@ -20,7 +20,7 @@ LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "HTML-visning är inte aktiverad." IDS_HTMLDOCUMENT "HTML-dokument" @@ -28,7 +28,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "Installerar..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 +ID_DWL_DIALOG DIALOG 0, 0, 260, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Wine Gecko Installationsprogram" FONT 8, "MS Shell Dlg" @@ -43,7 +43,7 @@ FONT 8, "MS Shell Dlg" } -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Hyperlänk" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/Tr.rc b/reactos/dll/win32/mshtml/Tr.rc index 01a7931e8d4..efdc9d2e107 100644 --- a/reactos/dll/win32/mshtml/Tr.rc +++ b/reactos/dll/win32/mshtml/Tr.rc @@ -20,7 +20,7 @@ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "HTML motoru þu an devre dýþý." IDS_HTMLDOCUMENT "HTML Belgesi" @@ -28,7 +28,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "Kuruluyor..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 +ID_DWL_DIALOG DIALOG 0, 0, 260, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Wine Gecko Kurucusu" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/Uk.rc b/reactos/dll/win32/mshtml/Uk.rc index ef3a8fb02cf..5d57e8ffc38 100644 --- a/reactos/dll/win32/mshtml/Uk.rc +++ b/reactos/dll/win32/mshtml/Uk.rc @@ -24,7 +24,7 @@ LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "В даний момент відображення HTML вимкнено." IDS_HTMLDOCUMENT "Документ HTML" @@ -32,7 +32,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "Встановлення..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 +ID_DWL_DIALOG DIALOG 0, 0, 260, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Встановлювач Wine Gecko" FONT 8, "MS Shell Dlg" @@ -46,7 +46,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Скасувати", IDCANCEL, 140, 70, 50, 15, WS_GROUP | WS_TABSTOP } -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Гіперпосилання" FONT 8, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/Zh.rc b/reactos/dll/win32/mshtml/Zh.rc index c904dbc06b3..9a1b24bbf37 100644 --- a/reactos/dll/win32/mshtml/Zh.rc +++ b/reactos/dll/win32/mshtml/Zh.rc @@ -2,6 +2,7 @@ * mshtml (Simplified and Traditional Chinese Resources) * * Copyright 2008 Hongbo Ni + * Copyright 2010 Cheer Xiao * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -25,7 +26,7 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "HTML 功能目前已被停用." IDS_HTMLDOCUMENT "HTML 文件" @@ -33,21 +34,20 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "正在安装..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 95 +ID_DWL_DIALOG DIALOG 0, 0, 260, 95 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Wine Gecko 安装" FONT 9, "MS Shell Dlg" { - LTEXT "Wine could not find a Gecko package which is needed for applications embedding HTML " \ - "to work correctly. Wine can automatically download and install it for you.\n\n" \ - "Note: it's recommended to use distro packages instead. See http://wiki.winehq.org/Gecko for details.", + LTEXT "Wine 未找到到用于支持嵌入 HTML 的 Gecko 引擎。Wine 可以自动并下载安装它。\n\n" \ + "注意: 推荐您安装为发行版定制的软件包。具体参看 http://wiki.winehq.org/Gecko。", ID_DWL_STATUS, 10, 10, 240, 50, SS_LEFT - CONTROL "Progress", ID_DWL_PROGRESS, PROGRESS_CLASSA, WS_BORDER|PBS_SMOOTH, 10, 40, 240, 12 + CONTROL "进度", ID_DWL_PROGRESS, PROGRESS_CLASSA, WS_BORDER|PBS_SMOOTH, 10, 40, 240, 12 DEFPUSHBUTTON "安装(&I)", ID_DWL_INSTALL, 200, 70, 50, 15, WS_GROUP | WS_TABSTOP PUSHBUTTON "取消(&C)", IDCANCEL, 140, 70, 50, 15, WS_GROUP | WS_TABSTOP } -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "超链接" FONT 9, "MS Shell Dlg" @@ -61,9 +61,20 @@ FONT 9, "MS Shell Dlg" PUSHBUTTON "取消", 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 "确定", IDOK, 40, 65, 45, 15, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP + PUSHBUTTON "取消", IDCANCEL, 115, 65, 45, 15, WS_GROUP | WS_TABSTOP +} + LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_HTMLDISABLED "HTML 功能目前已被停用." IDS_HTMLDOCUMENT "HTML 檔案" @@ -71,7 +82,7 @@ STRINGTABLE DISCARDABLE IDS_INSTALLING "正在安裝..." } -ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 85 +ID_DWL_DIALOG DIALOG 0, 0, 260, 85 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Wine Gecko 安裝" FONT 9, "MS Shell Dlg" @@ -84,7 +95,7 @@ FONT 9, "MS Shell Dlg" PUSHBUTTON "取消(&C)", IDCANCEL, 140, 60, 50, 15, WS_GROUP | WS_TABSTOP } -IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +IDD_HYPERLINK DIALOG 0, 0, 250, 65 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "超鏈接" FONT 9, "MS Shell Dlg" diff --git a/reactos/dll/win32/mshtml/dispex.c b/reactos/dll/win32/mshtml/dispex.c index de0c94871f6..64356f5fde0 100644 --- a/reactos/dll/win32/mshtml/dispex.c +++ b/reactos/dll/win32/mshtml/dispex.c @@ -146,6 +146,7 @@ static REFIID tid_ids[] = { &IID_IHTMLInputElement, &IID_IHTMLLocation, &IID_IHTMLOptionElement, + &IID_IHTMLRect, &IID_IHTMLScreen, &IID_IHTMLScriptElement, &IID_IHTMLSelectElement, diff --git a/reactos/dll/win32/mshtml/htmldoc3.c b/reactos/dll/win32/mshtml/htmldoc3.c index f4ea0962cee..8d135ff37d2 100644 --- a/reactos/dll/win32/mshtml/htmldoc3.c +++ b/reactos/dll/win32/mshtml/htmldoc3.c @@ -189,8 +189,10 @@ static HRESULT WINAPI HTMLDocument3_detachEvent(IHTMLDocument3 *iface, BSTR even IDispatch *pDisp) { HTMLDocument *This = HTMLDOC3_THIS(iface); - FIXME("(%p)->(%s %p)\n", This, debugstr_w(event), pDisp); - return E_NOTIMPL; + + TRACE("(%p)->(%s %p)\n", This, debugstr_w(event), pDisp); + + return detach_event(This->doc_node->node.event_target, This, event, pDisp); } static HRESULT WINAPI HTMLDocument3_put_onrowsdelete(IHTMLDocument3 *iface, VARIANT v) diff --git a/reactos/dll/win32/mshtml/htmlelem2.c b/reactos/dll/win32/mshtml/htmlelem2.c index 548bab8b2f5..0c2072361b0 100644 --- a/reactos/dll/win32/mshtml/htmlelem2.c +++ b/reactos/dll/win32/mshtml/htmlelem2.c @@ -1,5 +1,5 @@ /* - * Copyright 2006 Jacek Caban for CodeWeavers + * Copyright 2006-2010 Jacek Caban for CodeWeavers * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -17,6 +17,7 @@ */ #include +#include #define COBJMACROS @@ -33,6 +34,251 @@ WINE_DEFAULT_DEBUG_CHANNEL(mshtml); +typedef struct { + DispatchEx dispex; + const IHTMLRectVtbl *lpIHTMLRectVtbl; + + LONG ref; + + nsIDOMClientRect *nsrect; +} HTMLRect; + +#define HTMLRECT(x) ((IHTMLRect*) &(x)->lpIHTMLRectVtbl) + +#define HTMLRECT_THIS(iface) DEFINE_THIS(HTMLRect, IHTMLRect, iface) + +static HRESULT WINAPI HTMLRect_QueryInterface(IHTMLRect *iface, REFIID riid, void **ppv) +{ + HTMLRect *This = HTMLRECT_THIS(iface); + + if(IsEqualGUID(&IID_IUnknown, riid)) { + TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); + *ppv = HTMLRECT(This); + }else if(IsEqualGUID(&IID_IHTMLRect, riid)) { + TRACE("(%p)->(IID_IHTMLRect %p)\n", This, ppv); + *ppv = HTMLRECT(This); + }else if(dispex_query_interface(&This->dispex, riid, ppv)) { + return *ppv ? S_OK : E_NOINTERFACE; + }else { + FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); + *ppv = NULL; + return E_NOINTERFACE; + } + + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; +} + +static ULONG WINAPI HTMLRect_AddRef(IHTMLRect *iface) +{ + HTMLRect *This = HTMLRECT_THIS(iface); + LONG ref = InterlockedIncrement(&This->ref); + + TRACE("(%p) ref=%d\n", This, ref); + + return ref; +} + +static ULONG WINAPI HTMLRect_Release(IHTMLRect *iface) +{ + HTMLRect *This = HTMLRECT_THIS(iface); + LONG ref = InterlockedDecrement(&This->ref); + + TRACE("(%p) ref=%d\n", This, ref); + + if(!ref) { + if(This->nsrect) + nsIDOMClientRect_Release(This->nsrect); + heap_free(This); + } + + return ref; +} + +static HRESULT WINAPI HTMLRect_GetTypeInfoCount(IHTMLRect *iface, UINT *pctinfo) +{ + HTMLRect *This = HTMLRECT_THIS(iface); + FIXME("(%p)->(%p)\n", This, pctinfo); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLRect_GetTypeInfo(IHTMLRect *iface, UINT iTInfo, + LCID lcid, ITypeInfo **ppTInfo) +{ + HTMLRect *This = HTMLRECT_THIS(iface); + + return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->dispex), iTInfo, lcid, ppTInfo); +} + +static HRESULT WINAPI HTMLRect_GetIDsOfNames(IHTMLRect *iface, REFIID riid, + LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) +{ + HTMLRect *This = HTMLRECT_THIS(iface); + + return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->dispex), riid, rgszNames, cNames, lcid, rgDispId); +} + +static HRESULT WINAPI HTMLRect_Invoke(IHTMLRect *iface, DISPID dispIdMember, + REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, + VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) +{ + HTMLRect *This = HTMLRECT_THIS(iface); + + return IDispatchEx_Invoke(DISPATCHEX(&This->dispex), dispIdMember, riid, lcid, wFlags, pDispParams, + pVarResult, pExcepInfo, puArgErr); +} + +static HRESULT WINAPI HTMLRect_put_left(IHTMLRect *iface, LONG v) +{ + HTMLRect *This = HTMLRECT_THIS(iface); + FIXME("(%p)->(%d)\n", This, v); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLRect_get_left(IHTMLRect *iface, LONG *p) +{ + HTMLRect *This = HTMLRECT_THIS(iface); + float left; + nsresult nsres; + + TRACE("(%p)->(%p)\n", This, p); + + nsres = nsIDOMClientRect_GetLeft(This->nsrect, &left); + if(NS_FAILED(nsres)) { + ERR("GetLeft failed: %08x\n", nsres); + return E_FAIL; + } + + *p = floor(left+0.5); + return S_OK; +} + +static HRESULT WINAPI HTMLRect_put_top(IHTMLRect *iface, LONG v) +{ + HTMLRect *This = HTMLRECT_THIS(iface); + FIXME("(%p)->(%d)\n", This, v); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLRect_get_top(IHTMLRect *iface, LONG *p) +{ + HTMLRect *This = HTMLRECT_THIS(iface); + float top; + nsresult nsres; + + TRACE("(%p)->(%p)\n", This, p); + + nsres = nsIDOMClientRect_GetTop(This->nsrect, &top); + if(NS_FAILED(nsres)) { + ERR("GetTop failed: %08x\n", nsres); + return E_FAIL; + } + + *p = floor(top+0.5); + return S_OK; +} + +static HRESULT WINAPI HTMLRect_put_right(IHTMLRect *iface, LONG v) +{ + HTMLRect *This = HTMLRECT_THIS(iface); + FIXME("(%p)->(%d)\n", This, v); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLRect_get_right(IHTMLRect *iface, LONG *p) +{ + HTMLRect *This = HTMLRECT_THIS(iface); + float right; + nsresult nsres; + + TRACE("(%p)->(%p)\n", This, p); + + nsres = nsIDOMClientRect_GetRight(This->nsrect, &right); + if(NS_FAILED(nsres)) { + ERR("GetRight failed: %08x\n", nsres); + return E_FAIL; + } + + *p = floor(right+0.5); + return S_OK; +} + +static HRESULT WINAPI HTMLRect_put_bottom(IHTMLRect *iface, LONG v) +{ + HTMLRect *This = HTMLRECT_THIS(iface); + FIXME("(%p)->(%d)\n", This, v); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLRect_get_bottom(IHTMLRect *iface, LONG *p) +{ + HTMLRect *This = HTMLRECT_THIS(iface); + float bottom; + nsresult nsres; + + TRACE("(%p)->(%p)\n", This, p); + + nsres = nsIDOMClientRect_GetBottom(This->nsrect, &bottom); + if(NS_FAILED(nsres)) { + ERR("GetBottom failed: %08x\n", nsres); + return E_FAIL; + } + + *p = floor(bottom+0.5); + return S_OK; +} + +#undef HTMLRECT_THIS + +static const IHTMLRectVtbl HTMLRectVtbl = { + HTMLRect_QueryInterface, + HTMLRect_AddRef, + HTMLRect_Release, + HTMLRect_GetTypeInfoCount, + HTMLRect_GetTypeInfo, + HTMLRect_GetIDsOfNames, + HTMLRect_Invoke, + HTMLRect_put_left, + HTMLRect_get_left, + HTMLRect_put_top, + HTMLRect_get_top, + HTMLRect_put_right, + HTMLRect_get_right, + HTMLRect_put_bottom, + HTMLRect_get_bottom +}; + +static const tid_t HTMLRect_iface_tids[] = { + IHTMLRect_tid, + 0 +}; +static dispex_static_data_t HTMLRect_dispex = { + NULL, + IHTMLRect_tid, + NULL, + HTMLRect_iface_tids +}; + +static HRESULT create_html_rect(nsIDOMClientRect *nsrect, IHTMLRect **ret) +{ + HTMLRect *rect; + + rect = heap_alloc_zero(sizeof(HTMLRect)); + if(!rect) + return E_OUTOFMEMORY; + + rect->lpIHTMLRectVtbl = &HTMLRectVtbl; + rect->ref = 1; + + init_dispex(&rect->dispex, (IUnknown*)HTMLRECT(rect), &HTMLRect_dispex); + + nsIDOMClientRect_AddRef(nsrect); + rect->nsrect = nsrect; + + *ret = HTMLRECT(rect); + return S_OK; +} + #define HTMLELEM2_THIS(iface) DEFINE_THIS(HTMLElement, HTMLElement2, iface) static HRESULT WINAPI HTMLElement2_QueryInterface(IHTMLElement2 *iface, @@ -364,8 +610,31 @@ static HRESULT WINAPI HTMLElement2_getClientRects(IHTMLElement2 *iface, IHTMLRec static HRESULT WINAPI HTMLElement2_getBoundingClientRect(IHTMLElement2 *iface, IHTMLRect **pRect) { HTMLElement *This = HTMLELEM2_THIS(iface); - FIXME("(%p)->(%p)\n", This, pRect); - return E_NOTIMPL; + nsIDOMNSElement *nselem; + nsIDOMClientRect *nsrect; + nsresult nsres; + HRESULT hres; + + TRACE("(%p)->(%p)\n", This, pRect); + + nsres = nsIDOMHTMLElement_QueryInterface(This->node.nsnode, &IID_nsIDOMNSElement, + (void**)&nselem); + if(NS_FAILED(nsres)) { + ERR("Could not get nsIDOMNSElement iface: %08x\n", nsres); + return E_FAIL; + } + + nsres = nsIDOMNSElement_GetBoundingClientRect(nselem, &nsrect); + nsIDOMNSElement_Release(nselem); + if(NS_FAILED(nsres) || !nsrect) { + ERR("GetBoindingClientRect failed: %08x\n", nsres); + return E_FAIL; + } + + hres = create_html_rect(nsrect, pRect); + + nsIDOMClientRect_Release(nsrect); + return hres; } static HRESULT WINAPI HTMLElement2_setExpression(IHTMLElement2 *iface, BSTR propname, diff --git a/reactos/dll/win32/mshtml/mshtml_private.h b/reactos/dll/win32/mshtml/mshtml_private.h index 4deb4d6357d..46886d8b3b1 100644 --- a/reactos/dll/win32/mshtml/mshtml_private.h +++ b/reactos/dll/win32/mshtml/mshtml_private.h @@ -120,6 +120,7 @@ typedef enum { IHTMLInputElement_tid, IHTMLLocation_tid, IHTMLOptionElement_tid, + IHTMLRect_tid, IHTMLScreen_tid, IHTMLScriptElement_tid, IHTMLSelectElement_tid, diff --git a/reactos/dll/win32/mshtml/nsiface.idl b/reactos/dll/win32/mshtml/nsiface.idl index 4ccc64a7c02..b62c7b2d2e1 100644 --- a/reactos/dll/win32/mshtml/nsiface.idl +++ b/reactos/dll/win32/mshtml/nsiface.idl @@ -131,7 +131,6 @@ typedef nsISupports nsIDOMMediaList; typedef nsISupports nsIDOMHTMLTableCaptionElement; typedef nsISupports nsIDOMHTMLTableSectionElement; typedef nsISupports nsIDOMClientRectList; -typedef nsISupports nsIDOMClientRect; typedef nsISupports nsIDOMLocation; typedef nsISupports nsIDocument; typedef nsISupports nsIContent; @@ -732,6 +731,22 @@ interface nsIDOMElementCSSInlineStyle : nsISupports nsresult GetStyle(nsIDOMCSSStyleDeclaration **aStyle); } +[ + object, + uuid(b2f824c4-d9d3-499b-8d3b-45c8245497c6), + local + /* NOT_FROZEN */ +] +interface nsIDOMClientRect : nsISupports +{ + nsresult GetLeft(float *aLeft); + nsresult GetTop(float *aTop); + nsresult GetRight(float *aRight); + nsresult GetBottom(float *aBottom); + nsresult GetWidth(float *aWidth); + nsresult GetHeight(float *aHeight); +} + [ object, uuid(f0aef489-18c5-4de6-99d5-58b3758b098c), diff --git a/reactos/dll/win32/msi/action.c b/reactos/dll/win32/msi/action.c index b40c840f142..bb559c016af 100644 --- a/reactos/dll/win32/msi/action.c +++ b/reactos/dll/win32/msi/action.c @@ -567,6 +567,7 @@ UINT msi_apply_patch_db( MSIPACKAGE *package, MSIDATABASE *patch_db, MSIPATCHINF */ append_storage_to_db( package->db, patch_db->storage ); + patch->state = MSIPATCHSTATE_APPLIED; list_add_tail( &package->patches, &patch->entry ); return ERROR_SUCCESS; } @@ -711,7 +712,7 @@ static BOOL ui_sequence_exists( MSIPACKAGE *package ) return FALSE; } -static UINT msi_set_sourcedir_props(MSIPACKAGE *package, BOOL replace) +UINT msi_set_sourcedir_props(MSIPACKAGE *package, BOOL replace) { LPWSTR source, check; @@ -813,7 +814,7 @@ static UINT ITERATE_Actions(MSIRECORD *row, LPVOID param) if (needs_ui_sequence(package)) rc = ACTION_PerformUIAction(package, action, -1); else - rc = ACTION_PerformAction(package, action, -1, FALSE); + rc = ACTION_PerformAction(package, action, -1); msi_dialog_check_messages( NULL ); @@ -896,6 +897,8 @@ static UINT ACTION_ProcessExecSequence(MSIPACKAGE *package, BOOL UIran) { TRACE("Running the actions\n"); + msi_set_property(package->db, cszSourceDir, NULL); + rc = MSI_IterateRecords(view, NULL, ITERATE_Actions, package); msiobj_release(&view->hdr); } @@ -965,6 +968,12 @@ static UINT ITERATE_CreateFolders(MSIRECORD *row, LPVOID param) if (!comp) return ERROR_SUCCESS; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (comp->ActionRequest != INSTALLSTATE_LOCAL) { TRACE("Component not scheduled for installation: %s\n", debugstr_w(component)); @@ -1038,6 +1047,12 @@ static UINT ITERATE_RemoveFolders( MSIRECORD *row, LPVOID param ) if (!comp) return ERROR_SUCCESS; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (comp->ActionRequest != INSTALLSTATE_ABSENT) { TRACE("Component not scheduled for removal: %s\n", debugstr_w(component)); @@ -1605,7 +1620,7 @@ static UINT execute_script(MSIPACKAGE *package, UINT script ) action = package->script->Actions[script][i]; ui_actionstart(package, action); TRACE("Executing Action (%s)\n",debugstr_w(action)); - rc = ACTION_PerformAction(package, action, script, TRUE); + rc = ACTION_PerformAction(package, action, script); if (rc != ERROR_SUCCESS) break; } @@ -1793,17 +1808,29 @@ UINT MSI_SetFeatureStates(MSIPACKAGE *package) msi_feature_set_state(package, fl->feature, INSTALLSTATE_UNKNOWN); } } + else + { + LIST_FOR_EACH_ENTRY( feature, &package->features, MSIFEATURE, entry ) + { + BOOL selected = feature->Level > 0 && feature->Level <= level; + + if (selected && feature->Action == INSTALLSTATE_UNKNOWN) + { + msi_feature_set_state(package, feature, feature->Installed); + } + } + } /* - * now we want to enable or disable components base on feature + * now we want to enable or disable components based on feature */ - LIST_FOR_EACH_ENTRY( feature, &package->features, MSIFEATURE, entry ) { ComponentList *cl; - TRACE("Examining Feature %s (Level %i, Installed %i, Action %i)\n", - debugstr_w(feature->Feature), feature->Level, feature->Installed, feature->Action); + TRACE("Examining Feature %s (Level %d Installed %d Request %d Action %d)\n", + debugstr_w(feature->Feature), feature->Level, feature->Installed, + feature->ActionRequest, feature->Action); if (!feature->Level) continue; @@ -1811,8 +1838,7 @@ UINT MSI_SetFeatureStates(MSIPACKAGE *package) /* features with components that have compressed files are made local */ LIST_FOR_EACH_ENTRY( cl, &feature->Components, ComponentList, entry ) { - if (cl->component->Enabled && - cl->component->ForceLocalState && + if (cl->component->ForceLocalState && feature->Action == INSTALLSTATE_SOURCE) { msi_feature_set_state(package, feature, INSTALLSTATE_LOCAL); @@ -1824,9 +1850,6 @@ UINT MSI_SetFeatureStates(MSIPACKAGE *package) { component = cl->component; - if (!component->Enabled) - continue; - switch (feature->Action) { case INSTALLSTATE_ABSENT: @@ -1857,10 +1880,6 @@ UINT MSI_SetFeatureStates(MSIPACKAGE *package) LIST_FOR_EACH_ENTRY( component, &package->components, MSICOMPONENT, entry ) { - /* if the component isn't enabled, leave it alone */ - if (!component->Enabled) - continue; - /* check if it's local or source */ if (!(component->Attributes & msidbComponentAttributesOptional) && (component->hasLocalFeature || component->hasSourceFeature)) @@ -1899,17 +1918,16 @@ UINT MSI_SetFeatureStates(MSIPACKAGE *package) LIST_FOR_EACH_ENTRY( component, &package->components, MSICOMPONENT, entry ) { - if (component->Action == INSTALLSTATE_DEFAULT) + if (component->ActionRequest == INSTALLSTATE_DEFAULT) { TRACE("%s was default, setting to local\n", debugstr_w(component->Component)); msi_component_set_state(package, component, INSTALLSTATE_LOCAL); } - TRACE("Result: Component %s (Installed %i, Action %i)\n", - debugstr_w(component->Component), component->Installed, component->Action); + TRACE("Result: Component %s (Installed %d Request %d Action %d)\n", + debugstr_w(component->Component), component->Installed, component->ActionRequest, component->Action); } - return ERROR_SUCCESS; } @@ -2370,16 +2388,17 @@ static UINT ITERATE_WriteRegistryValues(MSIRECORD *row, LPVOID param) ui_progress(package,2,0,0,0); - value = NULL; - key = NULL; - uikey = NULL; - name = NULL; - component = MSI_RecordGetString(row, 6); comp = get_loaded_component(package,component); if (!comp) return ERROR_SUCCESS; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (comp->ActionRequest != INSTALLSTATE_LOCAL) { TRACE("Component not scheduled for installation: %s\n", debugstr_w(component)); @@ -2550,6 +2569,12 @@ static UINT ITERATE_RemoveRegistryValuesOnUninstall( MSIRECORD *row, LPVOID para if (!comp) return ERROR_SUCCESS; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (comp->ActionRequest != INSTALLSTATE_ABSENT) { TRACE("Component not scheduled for removal: %s\n", debugstr_w(component)); @@ -2619,6 +2644,12 @@ static UINT ITERATE_RemoveRegistryValuesOnInstall( MSIRECORD *row, LPVOID param if (!comp) return ERROR_SUCCESS; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (comp->ActionRequest != INSTALLSTATE_LOCAL) { TRACE("Component not scheduled for installation: %s\n", debugstr_w(component)); @@ -2742,9 +2773,9 @@ static UINT ACTION_InstallValidate(MSIPACKAGE *package) LIST_FOR_EACH_ENTRY( feature, &package->features, MSIFEATURE, entry ) { - TRACE("Feature: %s; Installed: %i; Action %i; Request %i\n", - debugstr_w(feature->Feature), feature->Installed, feature->Action, - feature->ActionRequest); + TRACE("Feature: %s Installed %d Request %d Action %d\n", + debugstr_w(feature->Feature), feature->Installed, + feature->ActionRequest, feature->Action); } return ERROR_SUCCESS; @@ -2994,6 +3025,8 @@ static UINT ACTION_ProcessComponents(MSIPACKAGE *package) squash_guid(package->ProductCode,squished_pc); ui_progress(package,1,COMPONENT_PROGRESS_VALUE,1,0); + msi_set_sourcedir_props(package, FALSE); + LIST_FOR_EACH_ENTRY( comp, &package->components, MSICOMPONENT, entry ) { MSIRECORD * uirow; @@ -3009,11 +3042,12 @@ static UINT ACTION_ProcessComponents(MSIPACKAGE *package) ACTION_RefCountComponent( package, comp ); - TRACE("Component %s (%s), Keypath=%s, RefCount=%i\n", + TRACE("Component %s (%s), Keypath=%s, RefCount=%i Request=%u\n", debugstr_w(comp->Component), debugstr_w(squished_cc), debugstr_w(comp->FullKeypath), - comp->RefCount); + comp->RefCount, + comp->ActionRequest); if (comp->ActionRequest == INSTALLSTATE_LOCAL || comp->ActionRequest == INSTALLSTATE_SOURCE) @@ -3041,7 +3075,7 @@ static UINT ACTION_ProcessComponents(MSIPACKAGE *package) msi_reg_set_val_str(hkey, szPermKey, comp->FullKeypath); } - if (comp->Action == INSTALLSTATE_LOCAL) + if (comp->ActionRequest == INSTALLSTATE_LOCAL) msi_reg_set_val_str(hkey, squished_pc, comp->FullKeypath); else { @@ -3179,6 +3213,12 @@ static UINT ITERATE_RegisterTypeLibraries(MSIRECORD *row, LPVOID param) if (!comp) return ERROR_SUCCESS; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (comp->ActionRequest != INSTALLSTATE_LOCAL) { TRACE("Component not scheduled for installation: %s\n", debugstr_w(component)); @@ -3288,6 +3328,12 @@ static UINT ITERATE_UnregisterTypeLibraries( MSIRECORD *row, LPVOID param ) if (!comp) return ERROR_SUCCESS; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (comp->ActionRequest != INSTALLSTATE_ABSENT) { TRACE("Component not scheduled for removal %s\n", debugstr_w(component)); @@ -3379,6 +3425,12 @@ static UINT ITERATE_CreateShortcuts(MSIRECORD *row, LPVOID param) if (!comp) return ERROR_SUCCESS; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (comp->ActionRequest != INSTALLSTATE_LOCAL) { TRACE("Component not scheduled for installation %s\n", debugstr_w(component)); @@ -3515,6 +3567,12 @@ static UINT ITERATE_RemoveShortcuts( MSIRECORD *row, LPVOID param ) if (!comp) return ERROR_SUCCESS; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (comp->ActionRequest != INSTALLSTATE_ABSENT) { TRACE("Component not scheduled for removal %s\n", debugstr_w(component)); @@ -3769,9 +3827,6 @@ static UINT msi_publish_upgrade_code(MSIPACKAGE *package) LPWSTR upgrade; WCHAR squashed_pc[SQUISH_GUID_SIZE]; - static const WCHAR szUpgradeCode[] = - {'U','p','g','r','a','d','e','C','o','d','e',0}; - upgrade = msi_dup_property(package->db, szUpgradeCode); if (!upgrade) return ERROR_SUCCESS; @@ -3825,21 +3880,28 @@ static BOOL msi_check_unpublish(MSIPACKAGE *package) return TRUE; } -static UINT msi_publish_patches( MSIPACKAGE *package, HKEY prodkey ) +static UINT msi_publish_patches( MSIPACKAGE *package ) { static const WCHAR szAllPatches[] = {'A','l','l','P','a','t','c','h','e','s',0}; WCHAR patch_squashed[GUID_SIZE]; - HKEY patches_key = NULL, product_patches_key; + HKEY patches_key = NULL, product_patches_key = NULL, product_key; LONG res; MSIPATCHINFO *patch; UINT r; WCHAR *p, *all_patches = NULL; DWORD len = 0; - res = RegCreateKeyExW( prodkey, szPatches, 0, NULL, 0, KEY_ALL_ACCESS, NULL, &patches_key, NULL ); - if (res != ERROR_SUCCESS) + r = MSIREG_OpenProductKey( package->ProductCode, NULL, package->Context, &product_key, FALSE ); + if (r != ERROR_SUCCESS) return ERROR_FUNCTION_FAILED; + res = RegCreateKeyExW( product_key, szPatches, 0, NULL, 0, KEY_ALL_ACCESS, NULL, &patches_key, NULL ); + if (res != ERROR_SUCCESS) + { + r = ERROR_FUNCTION_FAILED; + goto done; + } + r = MSIREG_OpenUserDataProductPatchesKey( package->ProductCode, package->Context, &product_patches_key, TRUE ); if (r != ERROR_SUCCESS) goto done; @@ -3879,6 +3941,10 @@ static UINT msi_publish_patches( MSIPACKAGE *package, HKEY prodkey ) goto done; res = RegCreateKeyExW( product_patches_key, patch_squashed, 0, NULL, 0, KEY_ALL_ACCESS, NULL, &patch_key, NULL ); + if (res != ERROR_SUCCESS) + goto done; + + res = RegSetValueExW( patch_key, szState, 0, REG_DWORD, (const BYTE *)&patch->state, sizeof(patch->state) ); RegCloseKey( patch_key ); if (res != ERROR_SUCCESS) goto done; @@ -3898,6 +3964,7 @@ static UINT msi_publish_patches( MSIPACKAGE *package, HKEY prodkey ) done: RegCloseKey( product_patches_key ); RegCloseKey( patches_key ); + RegCloseKey( product_key ); msi_free( all_patches ); return r; } @@ -3914,6 +3981,13 @@ static UINT ACTION_PublishProduct(MSIPACKAGE *package) HKEY hukey = NULL, hudkey = NULL; MSIRECORD *uirow; + if (!list_empty(&package->patches)) + { + rc = msi_publish_patches(package); + if (rc != ERROR_SUCCESS) + goto end; + } + /* FIXME: also need to publish if the product is in advertise mode */ if (!msi_check_publish(package)) return ERROR_SUCCESS; @@ -3932,13 +4006,6 @@ static UINT ACTION_PublishProduct(MSIPACKAGE *package) if (rc != ERROR_SUCCESS) goto end; - if (!list_empty(&package->patches)) - { - rc = msi_publish_patches(package, hukey); - if (rc != ERROR_SUCCESS) - goto end; - } - rc = msi_publish_product_properties(package, hukey); if (rc != ERROR_SUCCESS) goto end; @@ -4010,6 +4077,12 @@ static UINT ITERATE_WriteIniValues(MSIRECORD *row, LPVOID param) if (!comp) return ERROR_SUCCESS; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (comp->ActionRequest != INSTALLSTATE_LOCAL) { TRACE("Component not scheduled for installation %s\n", debugstr_w(component)); @@ -4105,6 +4178,12 @@ static UINT ITERATE_RemoveIniValuesOnUninstall( MSIRECORD *row, LPVOID param ) if (!comp) return ERROR_SUCCESS; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (comp->ActionRequest != INSTALLSTATE_ABSENT) { TRACE("Component not scheduled for removal %s\n", debugstr_w(component)); @@ -4168,6 +4247,12 @@ static UINT ITERATE_RemoveIniValuesOnInstall( MSIRECORD *row, LPVOID param ) if (!comp) return ERROR_SUCCESS; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (comp->ActionRequest != INSTALLSTATE_LOCAL) { TRACE("Component not scheduled for installation %s\n", debugstr_w(component)); @@ -4248,23 +4333,38 @@ static UINT ACTION_RemoveIniValues( MSIPACKAGE *package ) return ERROR_SUCCESS; } +static void register_dll( const WCHAR *dll, BOOL unregister ) +{ + HMODULE hmod; + + hmod = LoadLibraryExW( dll, 0, LOAD_WITH_ALTERED_SEARCH_PATH ); + if (hmod) + { + HRESULT (WINAPI *func_ptr)( void ); + const char *func = unregister ? "DllUnregisterServer" : "DllRegisterServer"; + + func_ptr = (void *)GetProcAddress( hmod, func ); + if (func_ptr) + { + HRESULT hr = func_ptr(); + if (FAILED( hr )) + WARN("failed to register dll 0x%08x\n", hr); + } + else + WARN("entry point %s not found\n", func); + FreeLibrary( hmod ); + return; + } + WARN("failed to load library %u\n", GetLastError()); +} + static UINT ITERATE_SelfRegModules(MSIRECORD *row, LPVOID param) { MSIPACKAGE *package = param; LPCWSTR filename; - LPWSTR FullName; MSIFILE *file; - DWORD len; - static const WCHAR ExeStr[] = - {'r','e','g','s','v','r','3','2','.','e','x','e',' ','/','s', ' ','\"',0}; - static const WCHAR close[] = {'\"',0}; - STARTUPINFOW si; - PROCESS_INFORMATION info; - BOOL brc; MSIRECORD *uirow; - memset(&si,0,sizeof(STARTUPINFOW)); - filename = MSI_RecordGetString(row,1); file = get_loaded_file( package, filename ); @@ -4274,23 +4374,9 @@ static UINT ITERATE_SelfRegModules(MSIRECORD *row, LPVOID param) return ERROR_SUCCESS; } - len = strlenW(ExeStr) + strlenW( file->TargetPath ) + 2; + TRACE("Registering %s\n", debugstr_w( file->TargetPath )); - FullName = msi_alloc(len*sizeof(WCHAR)); - strcpyW(FullName,ExeStr); - strcatW( FullName, file->TargetPath ); - strcatW(FullName,close); - - TRACE("Registering %s\n",debugstr_w(FullName)); - brc = CreateProcessW(NULL, FullName, NULL, NULL, FALSE, 0, NULL, c_colon, - &si, &info); - - if (brc) - { - CloseHandle(info.hThread); - msi_dialog_check_messages(info.hProcess); - CloseHandle(info.hProcess); - } + register_dll( file->TargetPath, FALSE ); uirow = MSI_CreateRecord( 2 ); MSI_RecordSetStringW( uirow, 1, filename ); @@ -4298,7 +4384,6 @@ static UINT ITERATE_SelfRegModules(MSIRECORD *row, LPVOID param) ui_actiondata( package, szSelfRegModules, uirow ); msiobj_release( &uirow->hdr ); - msi_free( FullName ); return ERROR_SUCCESS; } @@ -4325,21 +4410,11 @@ static UINT ACTION_SelfRegModules(MSIPACKAGE *package) static UINT ITERATE_SelfUnregModules( MSIRECORD *row, LPVOID param ) { - static const WCHAR regsvr32[] = - {'r','e','g','s','v','r','3','2','.','e','x','e',' ','/','u',' ','/','s',' ','\"',0}; - static const WCHAR close[] = {'\"',0}; MSIPACKAGE *package = param; LPCWSTR filename; - LPWSTR cmdline; MSIFILE *file; - DWORD len; - STARTUPINFOW si; - PROCESS_INFORMATION pi; - BOOL ret; MSIRECORD *uirow; - memset( &si, 0, sizeof(STARTUPINFOW) ); - filename = MSI_RecordGetString( row, 1 ); file = get_loaded_file( package, filename ); @@ -4349,22 +4424,9 @@ static UINT ITERATE_SelfUnregModules( MSIRECORD *row, LPVOID param ) return ERROR_SUCCESS; } - len = strlenW( regsvr32 ) + strlenW( file->TargetPath ) + 2; + TRACE("Unregistering %s\n", debugstr_w( file->TargetPath )); - cmdline = msi_alloc( len * sizeof(WCHAR) ); - strcpyW( cmdline, regsvr32 ); - strcatW( cmdline, file->TargetPath ); - strcatW( cmdline, close ); - - TRACE("Unregistering %s\n", debugstr_w(cmdline)); - - ret = CreateProcessW( NULL, cmdline, NULL, NULL, FALSE, 0, NULL, c_colon, &si, &pi ); - if (ret) - { - CloseHandle( pi.hThread ); - msi_dialog_check_messages( pi.hProcess ); - CloseHandle( pi.hProcess ); - } + register_dll( file->TargetPath, TRUE ); uirow = MSI_CreateRecord( 2 ); MSI_RecordSetStringW( uirow, 1, filename ); @@ -4372,7 +4434,6 @@ static UINT ITERATE_SelfUnregModules( MSIRECORD *row, LPVOID param ) ui_actiondata( package, szSelfUnregModules, uirow ); msiobj_release( &uirow->hdr ); - msi_free( cmdline ); return ERROR_SUCCESS; } @@ -4694,9 +4755,6 @@ static UINT ACTION_RegisterProduct(MSIPACKAGE *package) HKEY upgrade; UINT rc; - static const WCHAR szUpgradeCode[] = { - 'U','p','g','r','a','d','e','C','o','d','e',0}; - /* FIXME: also need to publish if the product is in advertise mode */ if (!msi_check_publish(package)) return ERROR_SUCCESS; @@ -4747,11 +4805,9 @@ static UINT ACTION_InstallExecute(MSIPACKAGE *package) return execute_script(package,INSTALL_SCRIPT); } -static UINT msi_unpublish_product(MSIPACKAGE *package) +static UINT msi_unpublish_product(MSIPACKAGE *package, WCHAR *remove) { - LPWSTR upgrade; - LPWSTR remove = NULL; - LPWSTR *features = NULL; + WCHAR *upgrade, **features; BOOL full_uninstall = TRUE; MSIFEATURE *feature; MSIPATCHINFO *patch; @@ -4759,14 +4815,9 @@ static UINT msi_unpublish_product(MSIPACKAGE *package) static const WCHAR szUpgradeCode[] = {'U','p','g','r','a','d','e','C','o','d','e',0}; - remove = msi_dup_property(package->db, szRemove); - if (!remove) - return ERROR_SUCCESS; - features = msi_split_string(remove, ','); if (!features) { - msi_free(remove); ERR("REMOVE feature list is empty!\n"); return ERROR_FUNCTION_FAILED; } @@ -4781,9 +4832,10 @@ static UINT msi_unpublish_product(MSIPACKAGE *package) full_uninstall = FALSE; } } + msi_free(features); if (!full_uninstall) - goto done; + return ERROR_SUCCESS; MSIREG_DeleteProductKey(package->ProductCode); MSIREG_DeleteUserDataProductKey(package->ProductCode); @@ -4812,19 +4864,13 @@ static UINT msi_unpublish_product(MSIPACKAGE *package) MSIREG_DeleteUserDataPatchKey(patch->patchcode, package->Context); } -done: - msi_free(remove); - msi_free(features); return ERROR_SUCCESS; } static UINT ACTION_InstallFinalize(MSIPACKAGE *package) { UINT rc; - - rc = msi_unpublish_product(package); - if (rc != ERROR_SUCCESS) - return rc; + WCHAR *remove; /* turn off scheduling */ package->script->CurrentlyScripting= FALSE; @@ -4836,7 +4882,14 @@ static UINT ACTION_InstallFinalize(MSIPACKAGE *package) /* then handle Commit Actions */ rc = execute_script(package,COMMIT_SCRIPT); + if (rc != ERROR_SUCCESS) + return rc; + remove = msi_dup_property(package->db, szRemove); + if (remove) + rc = msi_unpublish_product(package, remove); + + msi_free(remove); return rc; } @@ -5337,6 +5390,12 @@ static UINT ITERATE_StartService(MSIRECORD *rec, LPVOID param) if (!comp) return ERROR_SUCCESS; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (comp->ActionRequest != INSTALLSTATE_LOCAL) { TRACE("Component not scheduled for installation: %s\n", debugstr_w(component)); @@ -5529,6 +5588,12 @@ static UINT ITERATE_StopService( MSIRECORD *rec, LPVOID param ) if (!comp) return ERROR_SUCCESS; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (comp->ActionRequest != INSTALLSTATE_ABSENT) { TRACE("Component not scheduled for removal: %s\n", debugstr_w(component)); @@ -5606,6 +5671,12 @@ static UINT ITERATE_DeleteService( MSIRECORD *rec, LPVOID param ) if (!comp) return ERROR_SUCCESS; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (comp->ActionRequest != INSTALLSTATE_ABSENT) { TRACE("Component not scheduled for removal: %s\n", debugstr_w(component)); @@ -6213,6 +6284,12 @@ static UINT ITERATE_WriteEnvironmentString( MSIRECORD *rec, LPVOID param ) if (!comp) return ERROR_SUCCESS; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (comp->ActionRequest != INSTALLSTATE_LOCAL) { TRACE("Component not scheduled for installation: %s\n", debugstr_w(component)); @@ -6396,6 +6473,12 @@ static UINT ITERATE_RemoveEnvironmentString( MSIRECORD *rec, LPVOID param ) if (!comp) return ERROR_SUCCESS; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (comp->ActionRequest != INSTALLSTATE_ABSENT) { TRACE("Component not scheduled for removal: %s\n", debugstr_w(component)); @@ -7216,47 +7299,27 @@ StandardActions[] = { NULL, NULL }, }; -static BOOL ACTION_HandleStandardAction(MSIPACKAGE *package, LPCWSTR action, - UINT* rc, BOOL force ) +static BOOL ACTION_HandleStandardAction( MSIPACKAGE *package, LPCWSTR action, UINT *rc ) { BOOL ret = FALSE; - BOOL run = force; - int i; - - if (!run && !package->script->CurrentlyScripting) - run = TRUE; - - if (!run) - { - if (strcmpW(action,szInstallFinalize) == 0 || - strcmpW(action,szInstallExecute) == 0 || - strcmpW(action,szInstallExecuteAgain) == 0) - run = TRUE; - } + UINT i; i = 0; while (StandardActions[i].action != NULL) { - if (strcmpW(StandardActions[i].action, action)==0) + if (!strcmpW( StandardActions[i].action, action )) { - if (!run) + ui_actionstart( package, action ); + if (StandardActions[i].handler) { - ui_actioninfo(package, action, TRUE, 0); - *rc = schedule_action(package,INSTALL_SCRIPT,action); - ui_actioninfo(package, action, FALSE, *rc); + ui_actioninfo( package, action, TRUE, 0 ); + *rc = StandardActions[i].handler( package ); + ui_actioninfo( package, action, FALSE, *rc ); } else { - ui_actionstart(package, action); - if (StandardActions[i].handler) - { - *rc = StandardActions[i].handler(package); - } - else - { - FIXME("unhandled standard action %s\n",debugstr_w(action)); - *rc = ERROR_SUCCESS; - } + FIXME("unhandled standard action %s\n", debugstr_w(action)); + *rc = ERROR_SUCCESS; } ret = TRUE; break; @@ -7266,17 +7329,17 @@ static BOOL ACTION_HandleStandardAction(MSIPACKAGE *package, LPCWSTR action, return ret; } -UINT ACTION_PerformAction(MSIPACKAGE *package, const WCHAR *action, UINT script, BOOL force) +UINT ACTION_PerformAction(MSIPACKAGE *package, const WCHAR *action, UINT script) { UINT rc = ERROR_SUCCESS; BOOL handled; TRACE("Performing action (%s)\n", debugstr_w(action)); - handled = ACTION_HandleStandardAction(package, action, &rc, force); + handled = ACTION_HandleStandardAction(package, action, &rc); if (!handled) - handled = ACTION_HandleCustomAction(package, action, &rc, script, force); + handled = ACTION_HandleCustomAction(package, action, &rc, script, TRUE); if (!handled) { @@ -7294,7 +7357,7 @@ UINT ACTION_PerformUIAction(MSIPACKAGE *package, const WCHAR *action, UINT scrip TRACE("Performing action (%s)\n", debugstr_w(action)); - handled = ACTION_HandleStandardAction(package, action, &rc,TRUE); + handled = ACTION_HandleStandardAction(package, action, &rc); if (!handled) handled = ACTION_HandleCustomAction(package, action, &rc, script, FALSE); @@ -7359,7 +7422,7 @@ static UINT ACTION_PerformActionSequence(MSIPACKAGE *package, UINT seq) if (needs_ui_sequence(package)) rc = ACTION_PerformUIAction(package, action, -1); else - rc = ACTION_PerformAction(package, action, -1, FALSE); + rc = ACTION_PerformAction(package, action, -1); msiobj_release(&row->hdr); } @@ -7433,6 +7496,9 @@ UINT MSI_InstallPackage( MSIPACKAGE *package, LPCWSTR szPackagePath, /* properties may have been added by a transform */ msi_clone_properties( package ); + + msi_parse_command_line( package, szCommandLine, FALSE ); + msi_adjust_allusers_property( package ); msi_set_context( package ); if (needs_ui_sequence( package)) diff --git a/reactos/dll/win32/msi/appsearch.c b/reactos/dll/win32/msi/appsearch.c index 34130b62a74..a516bdad1c8 100644 --- a/reactos/dll/win32/msi/appsearch.c +++ b/reactos/dll/win32/msi/appsearch.c @@ -958,7 +958,10 @@ static UINT ACTION_AppSearchDr(MSIPACKAGE *package, LPWSTR *appValue, MSISIGNATU rc = ACTION_AppSearchSigName(package, parentName, &parentSig, &parent); ACTION_FreeSignature(&parentSig); if (!parent) + { + msiobj_release(&row->hdr); return ERROR_SUCCESS; + } } sz = MAX_PATH; diff --git a/reactos/dll/win32/msi/classes.c b/reactos/dll/win32/msi/classes.c index 22d11c1441c..30ee36b4bfd 100644 --- a/reactos/dll/win32/msi/classes.c +++ b/reactos/dll/win32/msi/classes.c @@ -824,6 +824,12 @@ UINT ACTION_RegisterClassInfo(MSIPACKAGE *package) if ( !comp ) continue; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + continue; + } + feature = cls->Feature; if (!feature) continue; @@ -976,6 +982,12 @@ UINT ACTION_UnregisterClassInfo( MSIPACKAGE *package ) if (!comp) continue; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + continue; + } + feature = cls->Feature; if (!feature) continue; @@ -1137,7 +1149,7 @@ UINT ACTION_UnregisterProgIdInfo( MSIPACKAGE *package ) res = RegDeleteTreeW( HKEY_CLASSES_ROOT, progid->ProgID ); if (res != ERROR_SUCCESS) - WARN("Failed to delete progid key %d\n", res); + TRACE("Failed to delete progid key %d\n", res); uirow = MSI_CreateRecord( 1 ); MSI_RecordSetStringW( uirow, 1, progid->ProgID ); @@ -1250,6 +1262,12 @@ UINT ACTION_RegisterExtensionInfo(MSIPACKAGE *package) if (!ext->Component) continue; + if (!ext->Component->Enabled) + { + TRACE("component is disabled\n"); + continue; + } + feature = ext->Feature; if (!feature) continue; @@ -1354,6 +1372,12 @@ UINT ACTION_UnregisterExtensionInfo( MSIPACKAGE *package ) if (!ext->Component) continue; + if (!ext->Component->Enabled) + { + TRACE("component is disabled\n"); + continue; + } + feature = ext->Feature; if (!feature) continue; diff --git a/reactos/dll/win32/msi/database.c b/reactos/dll/win32/msi/database.c index 3e577926340..01c32497a37 100644 --- a/reactos/dll/win32/msi/database.c +++ b/reactos/dll/win32/msi/database.c @@ -126,8 +126,10 @@ static UINT clone_open_stream( MSIDATABASE *db, LPCWSTR name, IStream **stm ) UINT db_get_raw_stream( MSIDATABASE *db, LPCWSTR stname, IStream **stm ) { HRESULT r; + WCHAR decoded[MAX_STREAM_NAME_LEN]; - TRACE("%s\n", debugstr_w(stname)); + decode_streamname( stname, decoded ); + TRACE("%s -> %s\n", debugstr_w(stname), debugstr_w(decoded)); if (clone_open_stream( db, stname, stm ) == ERROR_SUCCESS) return ERROR_SUCCESS; @@ -140,7 +142,6 @@ UINT db_get_raw_stream( MSIDATABASE *db, LPCWSTR stname, IStream **stm ) LIST_FOR_EACH_ENTRY( transform, &db->transforms, MSITRANSFORM, entry ) { - TRACE("looking for %s in transform storage\n", debugstr_w(stname) ); r = IStorage_OpenStream( transform->stg, stname, NULL, STGM_READ | STGM_SHARE_EXCLUSIVE, 0, stm ); if (SUCCEEDED(r)) @@ -226,7 +227,7 @@ void append_storage_to_db( MSIDATABASE *db, IStorage *stg ) t = msi_alloc( sizeof *t ); t->stg = stg; IStorage_AddRef( stg ); - list_add_tail( &db->transforms, &t->entry ); + list_add_head( &db->transforms, &t->entry ); /* the transform may add or replace streams */ free_streams( db ); diff --git a/reactos/dll/win32/msi/events.c b/reactos/dll/win32/msi/events.c index 4ed395bbc59..157d18575f4 100644 --- a/reactos/dll/win32/msi/events.c +++ b/reactos/dll/win32/msi/events.c @@ -163,7 +163,7 @@ static UINT ControlEvent_SpawnWaitDialog(MSIPACKAGE* package, LPCWSTR argument, static UINT ControlEvent_DoAction(MSIPACKAGE* package, LPCWSTR argument, msi_dialog* dialog) { - ACTION_PerformAction(package,argument,-1,TRUE); + ACTION_PerformAction(package, argument, -1); return ERROR_SUCCESS; } diff --git a/reactos/dll/win32/msi/files.c b/reactos/dll/win32/msi/files.c index 79d78143bb4..0ed9582c179 100644 --- a/reactos/dll/win32/msi/files.c +++ b/reactos/dll/win32/msi/files.c @@ -66,7 +66,7 @@ static void schedule_install_files(MSIPACKAGE *package) LIST_FOR_EACH_ENTRY(file, &package->files, MSIFILE, entry) { - if (file->Component->ActionRequest != INSTALLSTATE_LOCAL) + if (file->Component->ActionRequest != INSTALLSTATE_LOCAL || !file->Component->Enabled) { TRACE("File %s is not scheduled for install\n", debugstr_w(file->File)); @@ -501,6 +501,12 @@ static UINT ITERATE_MoveFiles( MSIRECORD *rec, LPVOID param ) if (!comp) return ERROR_SUCCESS; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (comp->ActionRequest != INSTALLSTATE_LOCAL && comp->ActionRequest != INSTALLSTATE_SOURCE) { TRACE("Component not scheduled for installation: %s\n", debugstr_w(component)); @@ -693,6 +699,12 @@ static UINT ITERATE_DuplicateFiles(MSIRECORD *row, LPVOID param) if (!comp) return ERROR_SUCCESS; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (comp->ActionRequest != INSTALLSTATE_LOCAL) { TRACE("Component not scheduled for installation %s\n", debugstr_w(component)); @@ -775,6 +787,12 @@ static UINT ITERATE_RemoveDuplicateFiles( MSIRECORD *row, LPVOID param ) if (!comp) return ERROR_SUCCESS; + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (comp->ActionRequest != INSTALLSTATE_ABSENT) { TRACE("Component not scheduled for removal %s\n", debugstr_w(component)); @@ -888,6 +906,12 @@ static UINT ITERATE_RemoveFiles(MSIRECORD *row, LPVOID param) return ERROR_FUNCTION_FAILED; } + if (!comp->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (!verify_comp_for_removal(comp, install_mode)) { TRACE("Skipping removal due to missing conditions\n"); @@ -972,6 +996,12 @@ UINT ACTION_RemoveFiles( MSIPACKAGE *package ) file->Component->Installed == INSTALLSTATE_SOURCE ) continue; + if (!file->Component->Enabled) + { + TRACE("component is disabled\n"); + continue; + } + if (file->Version) { ver = msi_get_disk_file_version( file->TargetPath ); diff --git a/reactos/dll/win32/msi/font.c b/reactos/dll/win32/msi/font.c index 1d99a4c0d3a..2128e922a56 100644 --- a/reactos/dll/win32/msi/font.c +++ b/reactos/dll/win32/msi/font.c @@ -196,6 +196,12 @@ static UINT ITERATE_RegisterFonts(MSIRECORD *row, LPVOID param) return ERROR_SUCCESS; } + if (!file->Component->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (file->Component->ActionRequest != INSTALLSTATE_LOCAL) { TRACE("Component not scheduled for installation\n"); @@ -274,6 +280,12 @@ static UINT ITERATE_UnregisterFonts( MSIRECORD *row, LPVOID param ) return ERROR_SUCCESS; } + if (!file->Component->Enabled) + { + TRACE("component is disabled\n"); + return ERROR_SUCCESS; + } + if (file->Component->ActionRequest != INSTALLSTATE_ABSENT) { TRACE("Component not scheduled for removal\n"); diff --git a/reactos/dll/win32/msi/media.c b/reactos/dll/win32/msi/media.c index 6dc262c8d3b..a2a90654186 100644 --- a/reactos/dll/win32/msi/media.c +++ b/reactos/dll/win32/msi/media.c @@ -653,6 +653,7 @@ static UINT msi_load_media_info(MSIPACKAGE *package, MSIFILE *file, MSIMEDIAINFO if (!mi->first_volume) mi->first_volume = strdupW(mi->volume_label); + msi_set_sourcedir_props(package, FALSE); source_dir = msi_dup_property(package->db, cszSourceDir); lstrcpyW(mi->sourcedir, source_dir); mi->type = get_drive_type(source_dir); diff --git a/reactos/dll/win32/msi/msi.rc b/reactos/dll/win32/msi/msi.rc index 47dc1d61ca9..d81484f66bb 100644 --- a/reactos/dll/win32/msi/msi.rc +++ b/reactos/dll/win32/msi/msi.rc @@ -51,12 +51,12 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #include "msi_Ro.rc" #include "msi_Ru.rc" #include "msi_Si.rc" - +#include "msi_Sr.rc" LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL /* @makedep: msiserver.tlb */ -1 TYPELIB LOADONCALL DISCARDABLE msiserver.tlb +1 TYPELIB msiserver.tlb /* @makedep: instadvert.bmp */ 0x1001 BITMAP instadvert.bmp diff --git a/reactos/dll/win32/msi/msi.spec b/reactos/dll/win32/msi/msi.spec index 94e3ed3cb23..6fdebd86f10 100644 --- a/reactos/dll/win32/msi/msi.spec +++ b/reactos/dll/win32/msi/msi.spec @@ -275,6 +275,20 @@ 279 stdcall MsiMessageBoxExA(long str str long long long long) 280 stdcall MsiMessageBoxExW(long wstr wstr long long long long) 281 stdcall MsiSetExternalUIRecord(ptr long ptr ptr) +282 stub MsiGetPatchFileListA +283 stub MsiGetPatchFileListW +284 stub MsiBeginTransactionA +285 stub MsiBeginTransactionW +286 stub MsiEndTransaction +287 stub MsiJoinTransaction +288 stub MsiSetOfflineContextW +289 stub MsiEnumComponentsExA +290 stub MsiEnumComponentsExW +291 stub MsiEnumClientsExA +292 stub MsiEnumClientsExW +293 stub MsiGetComponentPathExA +294 stub MsiGetComponentPathExW +295 stub QueryInstanceCount @ stdcall -private DllCanUnloadNow() @ stdcall -private DllGetClassObject(ptr ptr ptr) diff --git a/reactos/dll/win32/msi/msi_Bg.rc b/reactos/dll/win32/msi/msi_Bg.rc index 8aea16940f3..63b02553a37 100644 --- a/reactos/dll/win32/msi/msi_Bg.rc +++ b/reactos/dll/win32/msi/msi_Bg.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "The specified installation package could not be opened. Please check the file path and try again." 5 "ïúòÿò %s íå å íàìåðåí" diff --git a/reactos/dll/win32/msi/msi_Da.rc b/reactos/dll/win32/msi/msi_Da.rc index fa7e1c43c39..88aa3bd472f 100644 --- a/reactos/dll/win32/msi/msi_Da.rc +++ b/reactos/dll/win32/msi/msi_Da.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_DANISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "Kunne ikke åbne den specificerede installationspakke. Kontroller stien og prøv igen." 5 "kunne ikke finden stien '%s'." diff --git a/reactos/dll/win32/msi/msi_De.rc b/reactos/dll/win32/msi/msi_De.rc index e07b5efd127..8c113f9b802 100644 --- a/reactos/dll/win32/msi/msi_De.rc +++ b/reactos/dll/win32/msi/msi_De.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL #pragma code_page(65001) -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "Das angegebene Installationspaket konnte nicht geöffnet werden. Bitte überprüfen Sie den Pfadnamen und versuchen Sie es noch einmal." 5 "Der Pfad %s wurde nicht gefunden." diff --git a/reactos/dll/win32/msi/msi_En.rc b/reactos/dll/win32/msi/msi_En.rc index c506e003445..2bfc165d8a9 100644 --- a/reactos/dll/win32/msi/msi_En.rc +++ b/reactos/dll/win32/msi/msi_En.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "The specified installation package could not be opened. Please check the file path and try again." 5 "path %s not found" diff --git a/reactos/dll/win32/msi/msi_Es.rc b/reactos/dll/win32/msi/msi_Es.rc index f5425dbb654..b27d7c109ae 100644 --- a/reactos/dll/win32/msi/msi_Es.rc +++ b/reactos/dll/win32/msi/msi_Es.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "No se ha podido abrir el paquete de instalación especificado. Por favor, compruebe la ruta del archivo y vuelva a intentarlo." 5 "ruta %s no encontrada" diff --git a/reactos/dll/win32/msi/msi_Fi.rc b/reactos/dll/win32/msi/msi_Fi.rc index f3d58bff2bc..7769a8afe76 100644 --- a/reactos/dll/win32/msi/msi_Fi.rc +++ b/reactos/dll/win32/msi/msi_Fi.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "The specified installation package could not be opened. Please check the file path and try again." 5 "Polkua %s ei löydy." diff --git a/reactos/dll/win32/msi/msi_Fr.rc b/reactos/dll/win32/msi/msi_Fr.rc index 6cd1fc5ca21..62fd941bba7 100644 --- a/reactos/dll/win32/msi/msi_Fr.rc +++ b/reactos/dll/win32/msi/msi_Fr.rc @@ -26,7 +26,7 @@ LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "Le paquet d'installation spécifié n'a pu être ouvert. Veuillez vérifier le chemin du fichier et réessayer." 5 "Le chemin %s est introuvable" diff --git a/reactos/dll/win32/msi/msi_Hu.rc b/reactos/dll/win32/msi/msi_Hu.rc index 846de4ccada..2c21e7ca55d 100644 --- a/reactos/dll/win32/msi/msi_Hu.rc +++ b/reactos/dll/win32/msi/msi_Hu.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "The specified installation package could not be opened. Please check the file path and try again." 5 "%s útvonal nem található" diff --git a/reactos/dll/win32/msi/msi_It.rc b/reactos/dll/win32/msi/msi_It.rc index 0586bb4bab5..0c47280c102 100644 --- a/reactos/dll/win32/msi/msi_It.rc +++ b/reactos/dll/win32/msi/msi_It.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "Impossibile aprire il pacchetto di installazione specificato. Per favore controlla l'indirizzo del file e riprova." 5 "percorso %s non trovato" diff --git a/reactos/dll/win32/msi/msi_Ko.rc b/reactos/dll/win32/msi/msi_Ko.rc index 04efd83f9df..346e9be6105 100644 --- a/reactos/dll/win32/msi/msi_Ko.rc +++ b/reactos/dll/win32/msi/msi_Ko.rc @@ -24,7 +24,7 @@ LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 " ÁöÁ¤ÇÑ ¼³Ä¡ ÆÐÅ°Áö¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù. ÆÄÀÏ °æ·Î¸¦ È®ÀÎÇÏ°í ´Ù½Ã ½ÃµµÇϽʽÿÀ." 5 "%s °æ·Î¸¦ ãÀ»¼ö ¾ø½À´Ï´Ù" diff --git a/reactos/dll/win32/msi/msi_Lt.rc b/reactos/dll/win32/msi/msi_Lt.rc index c88592c49bc..6c2a6414df4 100644 --- a/reactos/dll/win32/msi/msi_Lt.rc +++ b/reactos/dll/win32/msi/msi_Lt.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "Nepavyko atverti nurodyto diegimo paketo. Patikrinkite failo kelią ir mėginkite dar kartą." 5 "kelias %s nerastas" diff --git a/reactos/dll/win32/msi/msi_Nl.rc b/reactos/dll/win32/msi/msi_Nl.rc index 306cfd7e30a..29cb8a32e63 100644 --- a/reactos/dll/win32/msi/msi_Nl.rc +++ b/reactos/dll/win32/msi/msi_Nl.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "Het opgegeven installatie pakket kon niet worden geopend. Verifieer het bestandspad en probeer opnieuw." 5 "Pad %s niet gevonden" diff --git a/reactos/dll/win32/msi/msi_No.rc b/reactos/dll/win32/msi/msi_No.rc index 93e26c67211..d9e5938ccf7 100644 --- a/reactos/dll/win32/msi/msi_No.rc +++ b/reactos/dll/win32/msi/msi_No.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "Klarte ikke åpne den oppgitte installasjonspakken. Kontroller filbanen og prøv igjen." 5 "Fant ikke stien '%s'." diff --git a/reactos/dll/win32/msi/msi_Pl.rc b/reactos/dll/win32/msi/msi_Pl.rc index ceb64dd9c8c..e3f8bd4f139 100644 --- a/reactos/dll/win32/msi/msi_Pl.rc +++ b/reactos/dll/win32/msi/msi_Pl.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "Nie uda³o siê otworzyæ wybranego pakietu instalacyjnego. SprawdŸ czy œcie¿ka jest poprawna i spróbuj ponownie." 5 "œcie¿ka '%s' nie zosta³a odnaleziona" diff --git a/reactos/dll/win32/msi/msi_Pt.rc b/reactos/dll/win32/msi/msi_Pt.rc index 4a1045c2ebd..d8b75d9d8ff 100644 --- a/reactos/dll/win32/msi/msi_Pt.rc +++ b/reactos/dll/win32/msi/msi_Pt.rc @@ -26,7 +26,7 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "O pacote de instalação especificado não pôde ser aberto. Por favor, verifique o arquivo e tente novamente." 5 "caminho %s não encontrado" @@ -67,7 +67,7 @@ STRINGTABLE DISCARDABLE LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "The specified installation package could not be opened. Please check the file path and try again." 5 "localização %s não encontrada" diff --git a/reactos/dll/win32/msi/msi_Ro.rc b/reactos/dll/win32/msi/msi_Ro.rc index ffd9c5e08d7..989e8483053 100644 --- a/reactos/dll/win32/msi/msi_Ro.rc +++ b/reactos/dll/win32/msi/msi_Ro.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL #pragma code_page(65001) -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "Pachetul de instalare menționat nu a putut fi deschis. Verificați calea și încercați din nou." 5 "calea %s nu a fost găsită" diff --git a/reactos/dll/win32/msi/msi_Ru.rc b/reactos/dll/win32/msi/msi_Ru.rc index 7cd4a2b0737..6e635f52947 100644 --- a/reactos/dll/win32/msi/msi_Ru.rc +++ b/reactos/dll/win32/msi/msi_Ru.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "Указанный пакет не может быть открыт. Проверьте файл и повторите попытку." 5 "путь %s не найден" diff --git a/reactos/dll/win32/msi/msi_Si.rc b/reactos/dll/win32/msi/msi_Si.rc index 3477f1ba6e5..1c689c297b6 100644 --- a/reactos/dll/win32/msi/msi_Si.rc +++ b/reactos/dll/win32/msi/msi_Si.rc @@ -24,7 +24,7 @@ LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "Navedenega namestitvenega paketa ni mogoče odpreti. Preverite ime datoteke in poskusite znova." 5 "pot %s ne obstaja" diff --git a/reactos/dll/win32/msi/msi_Sr.rc b/reactos/dll/win32/msi/msi_Sr.rc new file mode 100644 index 00000000000..ed481ea4668 --- /dev/null +++ b/reactos/dll/win32/msi/msi_Sr.rc @@ -0,0 +1,106 @@ +/* + * Serbian resources for MSI + * + * Copyright 2010 Nenad Vujic + * Paul Vriens + * + * 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 "windef.h" + +#pragma code_page(65001) + +LANGUAGE LANG_SERBIAN, SUBLANG_SERBIAN_LATIN + +STRINGTABLE +{ + 4 "Instalacija ne može biti otvorena. Molimo proverite destinaciju fajla i pokuÅ¡ajte ponovo." + 5 "putanja %s nije nađena" + 9 "Ubacite disk %s" + 10 "Windows Instalacija programa %s\n\n" \ + "Svrha:\n" \ + "msiexec komanda {traženi parametar} [opcioni parametar]\n\n" \ + "Instalacija proizvoda:\n" \ + "\t/i {paket|kod} [svojina]\n" \ + "\t/package {paket|kod} [svojina]\n" \ + "\t/a paket [svojina]\n" \ + "Popravak instalacije:\n" \ + "\t/f[p|o|e|d|c|a|u|m|s|v] {paket|kod}\n" \ + "Uninstal programa:\n" \ + "\t/uninstall {paket|kod} [svojina]\n" \ + "\t/x {paket|kod} [svojina]\n" \ + "Reklama programa:\n" \ + "\t/j[u|m] paket [/t pretvori] [/g id jezika]\n" \ + "Primeni peč:\n" \ + "\t/p pečpaket [svojina]\n" \ + "\t/p pečpaket /a paket [svojina]\n" \ + "IzveÅ¡talj i Izgled Modifikatori za komande iznad:\n" \ + "\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] izvestaj\n" \ + "\t/q{|n|b|r|f|n+|b+|b-}\n" \ + "Registracija MSI Servisa:\n" \ + "\t/y\n " \ + "Uklanjanje MSI Servisa:\n" \ + "\t/z\n" \ + "Prikaži ovu Pomoć:\n" \ + "\t/help\n" \ + "\t/?\n" + 11 "unesite koji folder sadrži %s" + 12 "instalacija nedostaje" + 13 "mrežni drajv nedostaje" + 14 "dodatak sa:" + 15 "izaberite koji folder sadrži %s" +} + +LANGUAGE LANG_SERBIAN, SUBLANG_SERBIAN_CYRILLIC + +STRINGTABLE +{ + 4 "Инсталација не може бити отворена. Молимо проверите дестинацију фајла и покушајте поново." + 5 "путања %s није нађена" + 9 "Убаците диск %s" + 10 "Виндовс Инсталација програма %s\n\n" \ + "Сврха:\n" \ + "msiexec команда {тражени параметар} [опциони параметар]\n\n" \ + "Инсталација производа:\n" \ + "\t/i {пакет|код} [својина]\n" \ + "\t/package {пакет|код} [својина]\n" \ + "\t/a пакет [svojina]\n" \ + "Поправак инсталације:\n" \ + "\t/f[p|o|e|d|c|a|u|m|s|v] {пакет|код}\n" \ + "Брисање програма:\n" \ + "\t/uninstall {пакет|код} [svojina]\n" \ + "\t/x {пакет|код} [својина]\n" \ + "Реклама програма:\n" \ + "\t/j[u|m] пакет [/t transform] [/g languageid]\n" \ + "Примени печ:\n" \ + "\t/p печпакет [својина]\n" \ + "\t/p печпакет /a пакет [својина]\n" \ + "Известај и Изглед Модификатора за команде изнад:\n" \ + "\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] извештај\n" \ + "\t/q{|n|b|r|f|n+|b+|b-}\n" \ + "Регистрација МСИ Сервиса:\n" \ + "\t/y\n" \ + "Уклањање МСИ Сервиса:\n" \ + "\t/z\n" \ + "Прикажи ову Помоћ:\n" \ + "\t/help\n" \ + "\t/?\n" + 11 "Унесите који фолдер садржи %s" + 12 "Инсталација недостаје" + 13 "Мрежни драјв недостаје" + 14 "Додатак са:" + 15 "Изаберите који фолдер садржи %s" +} diff --git a/reactos/dll/win32/msi/msi_Sv.rc b/reactos/dll/win32/msi/msi_Sv.rc index 4c37cfc475b..ed61893aba5 100644 --- a/reactos/dll/win32/msi/msi_Sv.rc +++ b/reactos/dll/win32/msi/msi_Sv.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "Det angivna installationspaketet kunde inte öppnas. Kontrollera filsökvägen och försök igen." 5 "sökvägen %s hittades inte" diff --git a/reactos/dll/win32/msi/msi_Tr.rc b/reactos/dll/win32/msi/msi_Tr.rc index c6a12c1ae07..ad4c14e7a21 100644 --- a/reactos/dll/win32/msi/msi_Tr.rc +++ b/reactos/dll/win32/msi/msi_Tr.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "The specified installation package could not be opened. Please check the file path and try again." 5 "%s yolu bulunamadý" diff --git a/reactos/dll/win32/msi/msi_Uk.rc b/reactos/dll/win32/msi/msi_Uk.rc index 2407bbe6e6d..60e2a3f053b 100644 --- a/reactos/dll/win32/msi/msi_Uk.rc +++ b/reactos/dll/win32/msi/msi_Uk.rc @@ -27,7 +27,7 @@ LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "Не вдалося відкрити вказаний пакет інсталяції. Перевірте шлях до файлу та спробуйте знов." 5 "шлях %s не знайдено" diff --git a/reactos/dll/win32/msi/msi_Zh.rc b/reactos/dll/win32/msi/msi_Zh.rc index 91fd5400258..0eb376de28e 100644 --- a/reactos/dll/win32/msi/msi_Zh.rc +++ b/reactos/dll/win32/msi/msi_Zh.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "不能打开所指定的安装软件包. 请检查文件路径后再试." 5 "路径 %s 没找到" @@ -66,7 +66,7 @@ STRINGTABLE DISCARDABLE LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL -STRINGTABLE DISCARDABLE +STRINGTABLE { 4 "不能開啟所指定的安裝軟件包. 請檢查檔案路徑後再試." 5 "路徑 %s 沒找到" diff --git a/reactos/dll/win32/msi/msipriv.h b/reactos/dll/win32/msi/msipriv.h index d1e8113423f..344b1450e3a 100644 --- a/reactos/dll/win32/msi/msipriv.h +++ b/reactos/dll/win32/msi/msipriv.h @@ -44,6 +44,7 @@ #define MSITYPE_KEY 0x2000 #define MSITYPE_TEMPORARY 0x4000 +#define MAX_STREAM_NAME_LEN 62 /* Install UI level mask for AND operation to exclude flags */ #define INSTALLUILEVEL_MASK 0x0007 @@ -153,6 +154,7 @@ typedef struct tagMSIPATCHINFO LPWSTR patchcode; LPWSTR transforms; LPWSTR localfile; + MSIPATCHSTATE state; } MSIPATCHINFO; typedef struct _column_info @@ -763,6 +765,7 @@ extern UINT msi_package_add_info(MSIPACKAGE *, DWORD, DWORD, LPCWSTR, LPWSTR); extern UINT msi_package_add_media_disk(MSIPACKAGE *, DWORD, DWORD, DWORD, LPWSTR, LPWSTR); extern UINT msi_clone_properties(MSIPACKAGE *); extern UINT msi_set_context(MSIPACKAGE *); +extern void msi_adjust_allusers_property(MSIPACKAGE *); extern UINT MSI_GetFeatureCost(MSIPACKAGE *, MSIFEATURE *, MSICOSTTREE, INSTALLSTATE, LPINT); /* for deformating */ @@ -862,7 +865,7 @@ extern WCHAR gszLogFile[MAX_PATH]; extern HINSTANCE msi_hInstance; /* action related functions */ -extern UINT ACTION_PerformAction(MSIPACKAGE *package, const WCHAR *action, UINT script, BOOL force); +extern UINT ACTION_PerformAction(MSIPACKAGE *package, const WCHAR *action, UINT script); extern UINT ACTION_PerformUIAction(MSIPACKAGE *package, const WCHAR *action, UINT script); extern void ACTION_FinishCustomActions( const MSIPACKAGE* package); extern UINT ACTION_CustomAction(MSIPACKAGE *package,const WCHAR *action, UINT script, BOOL execute); @@ -1009,6 +1012,7 @@ extern WCHAR* generate_error_string(MSIPACKAGE *, UINT, DWORD, ... ); extern UINT msi_set_last_used_source(LPCWSTR product, LPCWSTR usersid, MSIINSTALLCONTEXT context, DWORD options, LPCWSTR value); extern UINT msi_get_local_package_name(LPWSTR path, LPCWSTR suffix); +extern UINT msi_set_sourcedir_props(MSIPACKAGE *package, BOOL replace); /* media */ @@ -1118,6 +1122,7 @@ static const WCHAR szInprocHandler32[] = {'I','n','p','r','o','c','H','a','n','d static const WCHAR szMIMEDatabase[] = {'M','I','M','E','\\','D','a','t','a','b','a','s','e','\\','C','o','n','t','e','n','t',' ','T','y','p','e','\\',0}; static const WCHAR szLocalPackage[] = {'L','o','c','a','l','P','a','c','k','a','g','e',0}; static const WCHAR szOriginalDatabase[] = {'O','r','i','g','i','n','a','l','D','a','t','a','b','a','s','e',0}; +static const WCHAR szUpgradeCode[] = {'U','p','g','r','a','d','e','C','o','d','e',0}; /* memory allocation macro functions */ static void *msi_alloc( size_t len ) __WINE_ALLOC_SIZE(1); diff --git a/reactos/dll/win32/msi/msiquery.c b/reactos/dll/win32/msi/msiquery.c index f2723affca9..df81a748223 100644 --- a/reactos/dll/win32/msi/msiquery.c +++ b/reactos/dll/win32/msi/msiquery.c @@ -733,7 +733,10 @@ UINT MSI_DatabaseApplyTransformW( MSIDATABASE *db, r = StgOpenStorage( szTransformFile, NULL, STGM_DIRECT|STGM_READ|STGM_SHARE_DENY_WRITE, NULL, 0, &stg); if ( FAILED(r) ) + { + WARN("failed to open transform 0x%08x\n", r); return ret; + } r = IStorage_Stat( stg, &stat, STATFLAG_NONAME ); if ( FAILED( r ) ) diff --git a/reactos/dll/win32/msi/package.c b/reactos/dll/win32/msi/package.c index fba722fe55c..d3321686964 100644 --- a/reactos/dll/win32/msi/package.c +++ b/reactos/dll/win32/msi/package.c @@ -324,57 +324,85 @@ static UINT create_temp_property_table(MSIPACKAGE *package) UINT msi_clone_properties(MSIPACKAGE *package) { - MSIQUERY *view = NULL; + MSIQUERY *view_select = NULL; UINT rc; - static const WCHAR Query[] = { + static const WCHAR query_select[] = { 'S','E','L','E','C','T',' ','*',' ', 'F','R','O','M',' ','`','P','r','o','p','e','r','t','y','`',0}; - static const WCHAR Insert[] = { + static const WCHAR query_insert[] = { 'I','N','S','E','R','T',' ','i','n','t','o',' ', '`','_','P','r','o','p','e','r','t','y','`',' ', '(','`','_','P','r','o','p','e','r','t','y','`',',', '`','V','a','l','u','e','`',')',' ', 'V','A','L','U','E','S',' ','(','?',',','?',')',0}; + static const WCHAR query_update[] = { + 'U','P','D','A','T','E',' ','`','_','P','r','o','p','e','r','t','y','`',' ', + 'S','E','T',' ','`','V','a','l','u','e','`',' ','=',' ','?',' ', + 'W','H','E','R','E',' ','`','_','P','r','o','p','e','r','t','y','`',' ','=',' ','?',0}; - /* clone the existing properties */ - rc = MSI_DatabaseOpenViewW(package->db, Query, &view); + rc = MSI_DatabaseOpenViewW( package->db, query_select, &view_select ); if (rc != ERROR_SUCCESS) return rc; - rc = MSI_ViewExecute(view, 0); + rc = MSI_ViewExecute( view_select, 0 ); if (rc != ERROR_SUCCESS) { - MSI_ViewClose(view); - msiobj_release(&view->hdr); + MSI_ViewClose( view_select ); + msiobj_release( &view_select->hdr ); return rc; } while (1) { - MSIRECORD *row; - MSIQUERY *view2; + MSIQUERY *view_insert, *view_update; + MSIRECORD *rec_select; - rc = MSI_ViewFetch(view, &row); + rc = MSI_ViewFetch( view_select, &rec_select ); if (rc != ERROR_SUCCESS) break; - rc = MSI_DatabaseOpenViewW(package->db, Insert, &view2); + rc = MSI_DatabaseOpenViewW( package->db, query_insert, &view_insert ); if (rc != ERROR_SUCCESS) { - msiobj_release(&row->hdr); + msiobj_release( &rec_select->hdr ); continue; } - MSI_ViewExecute(view2, row); - MSI_ViewClose(view2); - msiobj_release(&view2->hdr); - msiobj_release(&row->hdr); - } + rc = MSI_ViewExecute( view_insert, rec_select ); + MSI_ViewClose( view_insert ); + msiobj_release( &view_insert->hdr ); + if (rc != ERROR_SUCCESS) + { + MSIRECORD *rec_update; - MSI_ViewClose(view); - msiobj_release(&view->hdr); + TRACE("insert failed, trying update\n"); + + rc = MSI_DatabaseOpenViewW( package->db, query_update, &view_update ); + if (rc != ERROR_SUCCESS) + { + WARN("open view failed %u\n", rc); + msiobj_release( &rec_select->hdr ); + continue; + } + + rec_update = MSI_CreateRecord( 2 ); + MSI_RecordCopyField( rec_select, 1, rec_update, 2 ); + MSI_RecordCopyField( rec_select, 2, rec_update, 1 ); + rc = MSI_ViewExecute( view_update, rec_update ); + if (rc != ERROR_SUCCESS) + WARN("update failed %u\n", rc); + MSI_ViewClose( view_update ); + msiobj_release( &view_update->hdr ); + msiobj_release( &rec_update->hdr ); + } + + msiobj_release( &rec_select->hdr ); + } + + MSI_ViewClose( view_select ); + msiobj_release( &view_select->hdr ); return rc; } @@ -1014,7 +1042,7 @@ static UINT msi_load_admin_properties(MSIPACKAGE *package) return r; } -static void adjust_allusers_property( MSIPACKAGE *package ) +void msi_adjust_allusers_property( MSIPACKAGE *package ) { /* FIXME: this should depend on the user's privileges */ if (msi_get_property_int( package->db, szAllUsers, 0 ) == 2) @@ -1046,6 +1074,7 @@ MSIPACKAGE *MSI_CreatePackage( MSIDATABASE *db, LPCWSTR base_url ) create_temp_property_table( package ); msi_clone_properties( package ); + msi_adjust_allusers_property( package ); package->ProductCode = msi_dup_property( package->db, szProductCode ); package->script = msi_alloc_zero( sizeof(MSISCRIPT) ); @@ -1065,8 +1094,6 @@ MSIPACKAGE *MSI_CreatePackage( MSIDATABASE *db, LPCWSTR base_url ) if (package->WordCount & msidbSumInfoSourceTypeAdminImage) msi_load_admin_properties( package ); - - adjust_allusers_property( package ); } return package; @@ -1210,6 +1237,13 @@ static UINT apply_registered_patch( MSIPACKAGE *package, LPCWSTR patch_code ) return r; } + patch_info->localfile = strdupW( patch_file ); + if (!patch_info->localfile) + { + msiobj_release( &patch_db->hdr ); + return ERROR_OUTOFMEMORY; + } + r = msi_apply_patch_db( package, patch_db, patch_info ); msiobj_release( &patch_db->hdr ); if (r != ERROR_SUCCESS) @@ -1371,6 +1405,12 @@ UINT MSI_OpenPackageW(LPCWSTR szPackage, MSIPACKAGE **pPackage) index++; } + if (index) + { + msi_clone_properties( package ); + msi_adjust_allusers_property( package ); + } + *pPackage = package; return ERROR_SUCCESS; } diff --git a/reactos/dll/win32/msi/registry.c b/reactos/dll/win32/msi/registry.c index 518303f5da0..2a84e11be61 100644 --- a/reactos/dll/win32/msi/registry.c +++ b/reactos/dll/win32/msi/registry.c @@ -1918,7 +1918,7 @@ static UINT msi_check_product_patches(LPCWSTR prodcode, LPCWSTR usersid, goto done; ptr = patches; - for (ptr = patches; *ptr && r == ERROR_NO_MORE_ITEMS; ptr += lstrlenW(ptr)) + for (ptr = patches; *ptr && r == ERROR_NO_MORE_ITEMS; ptr += lstrlenW(ptr) + 1) { if (!unsquash_guid(ptr, patch)) { diff --git a/reactos/dll/win32/msi/source.c b/reactos/dll/win32/msi/source.c index 0e752f50ffb..8e4323a4711 100644 --- a/reactos/dll/win32/msi/source.c +++ b/reactos/dll/win32/msi/source.c @@ -588,9 +588,6 @@ UINT WINAPI MsiSourceListGetInfoW( LPCWSTR szProduct, LPCWSTR szUserSid, if (szUserSid) FIXME("Unhandled UserSid %s\n",debugstr_w(szUserSid)); - if (dwContext != MSIINSTALLCONTEXT_USERUNMANAGED) - FIXME("Unhandled context %d\n", dwContext); - rc = OpenSourceKey(szProduct, &sourcekey, dwOptions, dwContext, FALSE); if (rc != ERROR_SUCCESS) return rc; diff --git a/reactos/dll/win32/msi/streams.c b/reactos/dll/win32/msi/streams.c index 59e845df82d..44c4e67718b 100644 --- a/reactos/dll/win32/msi/streams.c +++ b/reactos/dll/win32/msi/streams.c @@ -37,7 +37,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(msidb); #define NUM_STREAMS_COLS 2 -#define MAX_STREAM_NAME_LEN 62 typedef struct tabSTREAM { diff --git a/reactos/dll/win32/msimtf/activeimmapp.c b/reactos/dll/win32/msimtf/activeimmapp.c index d8446267893..73ce0758c70 100644 --- a/reactos/dll/win32/msimtf/activeimmapp.c +++ b/reactos/dll/win32/msimtf/activeimmapp.c @@ -655,7 +655,7 @@ static HRESULT WINAPI ActiveIMMApp_Deactivate(IActiveIMMApp* This) static HRESULT WINAPI ActiveIMMApp_OnDefWindowProc(IActiveIMMApp* This, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, LRESULT *plResult) { - //FIXME("Stub (%p %x %lx %lx)\n",hWnd,Msg,wParam,lParam); + FIXME("Stub (%p %x %lx %lx)\n",hWnd,Msg,wParam,lParam); return E_FAIL; } diff --git a/reactos/dll/win32/msxml3/domdoc.c b/reactos/dll/win32/msxml3/domdoc.c index 0007503a2d7..f9f02e029d5 100644 --- a/reactos/dll/win32/msxml3/domdoc.c +++ b/reactos/dll/win32/msxml3/domdoc.c @@ -415,22 +415,20 @@ static HRESULT WINAPI domdoc_IPersistStreamInit_Load( } static HRESULT WINAPI domdoc_IPersistStreamInit_Save( - IPersistStreamInit *iface, LPSTREAM pStm, BOOL fClearDirty) + IPersistStreamInit *iface, IStream *stream, BOOL clr_dirty) { domdoc *This = impl_from_IPersistStreamInit(iface); - HRESULT hr; BSTR xmlString; + HRESULT hr; - TRACE("(%p)->(%p %d)\n", This, pStm, fClearDirty); + TRACE("(%p)->(%p %d)\n", This, stream, clr_dirty); hr = IXMLDOMNode_get_xml( IXMLDOMNode_from_impl(&This->node), &xmlString ); if(hr == S_OK) { - DWORD count; - DWORD len = strlenW(xmlString) * sizeof(WCHAR); - - hr = IStream_Write( pStm, xmlString, len, &count ); + DWORD len = SysStringLen(xmlString) * sizeof(WCHAR); + hr = IStream_Write( stream, xmlString, len, NULL ); SysFreeString(xmlString); } diff --git a/reactos/dll/win32/msxml3/saxreader.c b/reactos/dll/win32/msxml3/saxreader.c index eca9f1d76ed..5381d954ab9 100644 --- a/reactos/dll/win32/msxml3/saxreader.c +++ b/reactos/dll/win32/msxml3/saxreader.c @@ -139,7 +139,7 @@ static HRESULT namespacePush(saxlocator *locator, int ns) int *new_stack; new_stack = HeapReAlloc(GetProcessHeap(), 0, - locator->nsStack, locator->nsStackSize*2); + locator->nsStack, sizeof(int)*locator->nsStackSize*2); if(!new_stack) return E_OUTOFMEMORY; locator->nsStack = new_stack; locator->nsStackSize *= 2; @@ -158,7 +158,6 @@ static int namespacePop(saxlocator *locator) static BSTR bstr_from_xmlCharN(const xmlChar *buf, int len) { DWORD dLen; - LPWSTR str; BSTR bstr; if (!buf) @@ -166,13 +165,11 @@ static BSTR bstr_from_xmlCharN(const xmlChar *buf, int len) dLen = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)buf, len, NULL, 0); if(len != -1) dLen++; - str = heap_alloc(dLen * sizeof (WCHAR)); - if (!str) + bstr = SysAllocStringLen(NULL, dLen-1); + if (!bstr) return NULL; - MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)buf, len, str, dLen); - if(len != -1) str[dLen-1] = '\0'; - bstr = SysAllocString(str); - heap_free(str); + MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)buf, len, bstr, dLen); + if(len != -1) bstr[dLen-1] = '\0'; return bstr; } @@ -180,7 +177,6 @@ static BSTR bstr_from_xmlCharN(const xmlChar *buf, int len) static BSTR QName_from_xmlChar(const xmlChar *prefix, const xmlChar *name) { DWORD dLen, dLast; - LPWSTR str; BSTR bstr; if(!name) return NULL; @@ -190,16 +186,13 @@ static BSTR QName_from_xmlChar(const xmlChar *prefix, const xmlChar *name) dLen = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)prefix, -1, NULL, 0) + MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)name, -1, NULL, 0); - str = heap_alloc(dLen * sizeof(WCHAR)); - if(!str) + bstr = SysAllocStringLen(NULL, dLen-1); + if(!bstr) return NULL; - dLast = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)prefix, -1, str, dLen); - str[dLast-1] = ':'; - MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)name, -1, &str[dLast], dLen-dLast); - bstr = SysAllocString(str); - - heap_free(str); + dLast = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)prefix, -1, bstr, dLen); + bstr[dLast-1] = ':'; + MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)name, -1, &bstr[dLast], dLen-dLast); return bstr; } @@ -1752,7 +1745,7 @@ static HRESULT SAXLocator_create(saxreader *reader, saxlocator **ppsaxlocator, B locator->ret = S_OK; locator->nsStackSize = 8; locator->nsStackLast = 0; - locator->nsStack = heap_alloc(locator->nsStackSize); + locator->nsStack = heap_alloc(sizeof(int)*locator->nsStackSize); if(!locator->nsStack) { ISAXXMLReader_Release((ISAXXMLReader*)&reader->lpSAXXMLReaderVtbl); diff --git a/reactos/dll/win32/msxml3/version.rc b/reactos/dll/win32/msxml3/version.rc index 232f5ead78d..2564bcfcd1e 100644 --- a/reactos/dll/win32/msxml3/version.rc +++ b/reactos/dll/win32/msxml3/version.rc @@ -15,7 +15,7 @@ */ /* @makedep: msxml3_v1.tlb */ -1 TYPELIB LOADONCALL DISCARDABLE msxml3_v1.tlb +1 TYPELIB msxml3_v1.tlb #define WINE_OLESELFREGISTER #define WINE_FILEDESCRIPTION_STR "Wine MSXML 3.0" diff --git a/reactos/dll/win32/ole32/antimoniker.c b/reactos/dll/win32/ole32/antimoniker.c index 69e0a902f78..7f040363499 100644 --- a/reactos/dll/win32/ole32/antimoniker.c +++ b/reactos/dll/win32/ole32/antimoniker.c @@ -67,7 +67,7 @@ AntiMonikerImpl_QueryInterface(IMoniker* iface,REFIID riid,void** ppvObject) TRACE("(%p,%p,%p)\n",This,riid,ppvObject); /* Perform a sanity check on the parameters.*/ - if ( (This==0) || (ppvObject==0) ) + if ( ppvObject==0 ) return E_INVALIDARG; /* Initialize the return parameter */ @@ -192,13 +192,9 @@ AntiMonikerImpl_Load(IMoniker* iface,IStream* pStm) static HRESULT WINAPI AntiMonikerImpl_Save(IMoniker* iface,IStream* pStm,BOOL fClearDirty) { - DWORD constant=1; - HRESULT res; - + static const DWORD constant = 1; /* data written by this function is only a DWORD constant set to 1 ! */ - res=IStream_Write(pStm,&constant,sizeof(constant),NULL); - - return res; + return IStream_Write(pStm,&constant,sizeof(constant),NULL); } /****************************************************************************** @@ -614,9 +610,8 @@ static HRESULT AntiMonikerImpl_Construct(AntiMonikerImpl* This) ******************************************************************************/ HRESULT WINAPI CreateAntiMoniker(LPMONIKER * ppmk) { - AntiMonikerImpl* newAntiMoniker = 0; - HRESULT hr = S_OK; - IID riid=IID_IMoniker; + AntiMonikerImpl* newAntiMoniker; + HRESULT hr; TRACE("(%p)\n",ppmk); @@ -632,9 +627,7 @@ HRESULT WINAPI CreateAntiMoniker(LPMONIKER * ppmk) return hr; } - hr = AntiMonikerImpl_QueryInterface((IMoniker*)newAntiMoniker,&riid,(void**)ppmk); - - return hr; + return AntiMonikerImpl_QueryInterface((IMoniker*)newAntiMoniker,&IID_IMoniker,(void**)ppmk); } static HRESULT WINAPI AntiMonikerCF_QueryInterface(LPCLASSFACTORY iface, @@ -677,7 +670,7 @@ static HRESULT WINAPI AntiMonikerCF_CreateInstance(LPCLASSFACTORY iface, if (FAILED(hr)) return hr; - hr = IMoniker_QueryInterface(pMoniker, riid, ppv); + hr = IMoniker_QueryInterface(pMoniker, riid, ppv); if (FAILED(hr)) IMoniker_Release(pMoniker); diff --git a/reactos/dll/win32/ole32/bindctx.c b/reactos/dll/win32/ole32/bindctx.c index f7561bdd3ca..1492393b57f 100644 --- a/reactos/dll/win32/ole32/bindctx.c +++ b/reactos/dll/win32/ole32/bindctx.c @@ -285,8 +285,6 @@ BindCtxImpl_GetBindOptions(IBindCtx* iface,BIND_OPTS *pbindopts) static HRESULT WINAPI BindCtxImpl_GetRunningObjectTable(IBindCtx* iface,IRunningObjectTable** pprot) { - HRESULT res; - BindCtxImpl *This = (BindCtxImpl *)iface; TRACE("(%p,%p)\n",This,pprot); @@ -294,9 +292,7 @@ BindCtxImpl_GetRunningObjectTable(IBindCtx* iface,IRunningObjectTable** pprot) if (pprot==NULL) return E_POINTER; - res=GetRunningObjectTable(0, pprot); - - return res; + return GetRunningObjectTable(0, pprot); } /****************************************************************************** @@ -555,9 +551,8 @@ static HRESULT BindCtxImpl_Construct(BindCtxImpl* This) */ HRESULT WINAPI CreateBindCtx(DWORD reserved, LPBC * ppbc) { - BindCtxImpl* newBindCtx = 0; + BindCtxImpl* newBindCtx; HRESULT hr; - IID riid=IID_IBindCtx; TRACE("(%d,%p)\n",reserved,ppbc); @@ -582,9 +577,7 @@ HRESULT WINAPI CreateBindCtx(DWORD reserved, LPBC * ppbc) return hr; } - hr = BindCtxImpl_QueryInterface((IBindCtx*)newBindCtx,&riid,(void**)ppbc); - - return hr; + return BindCtxImpl_QueryInterface((IBindCtx*)newBindCtx,&IID_IBindCtx,(void**)ppbc); } /****************************************************************************** diff --git a/reactos/dll/win32/ole32/classmoniker.c b/reactos/dll/win32/ole32/classmoniker.c index f67ae00d9cf..8b927f85db6 100644 --- a/reactos/dll/win32/ole32/classmoniker.c +++ b/reactos/dll/win32/ole32/classmoniker.c @@ -210,9 +210,7 @@ static HRESULT WINAPI ClassMoniker_Save(IMoniker* iface, hr = IStream_Write(pStm, &This->clsid, sizeof(This->clsid), NULL); if (FAILED(hr)) return hr; - hr = IStream_Write(pStm, &zero, sizeof(zero), NULL); - - return hr; + return IStream_Write(pStm, &zero, sizeof(zero), NULL); } /****************************************************************************** diff --git a/reactos/dll/win32/ole32/compositemoniker.c b/reactos/dll/win32/ole32/compositemoniker.c index 275d875362b..f7d6ee6cdda 100644 --- a/reactos/dll/win32/ole32/compositemoniker.c +++ b/reactos/dll/win32/ole32/compositemoniker.c @@ -101,7 +101,7 @@ CompositeMonikerImpl_QueryInterface(IMoniker* iface,REFIID riid,void** ppvObject TRACE("(%p,%p,%p)\n",This,riid,ppvObject); /* Perform a sanity check on the parameters.*/ - if ( (This==0) || (ppvObject==0) ) + if ( ppvObject==0 ) return E_INVALIDARG; /* Initialize the return parameter */ @@ -1504,7 +1504,7 @@ EnumMonikerImpl_QueryInterface(IEnumMoniker* iface,REFIID riid,void** ppvObject) TRACE("(%p,%p,%p)\n",This,riid,ppvObject); /* Perform a sanity check on the parameters.*/ - if ( (This==0) || (ppvObject==0) ) + if ( ppvObject==0 ) return E_INVALIDARG; /* Initialize the return parameter */ diff --git a/reactos/dll/win32/ole32/datacache.c b/reactos/dll/win32/ole32/datacache.c index ead53fe83c3..2f263630f3a 100644 --- a/reactos/dll/win32/ole32/datacache.c +++ b/reactos/dll/win32/ole32/datacache.c @@ -655,17 +655,15 @@ static HRESULT DataCacheEntry_LoadData(DataCacheEntry *This) static HRESULT DataCacheEntry_CreateStream(DataCacheEntry *This, IStorage *storage, IStream **stream) { - HRESULT hr; WCHAR wszName[] = {2,'O','l','e','P','r','e','s', '0' + (This->stream_number / 100) % 10, '0' + (This->stream_number / 10) % 10, '0' + This->stream_number % 10, 0}; /* FIXME: cache the created stream in This? */ - hr = IStorage_CreateStream(storage, wszName, - STGM_READWRITE | STGM_SHARE_EXCLUSIVE | STGM_CREATE, - 0, 0, stream); - return hr; + return IStorage_CreateStream(storage, wszName, + STGM_READWRITE | STGM_SHARE_EXCLUSIVE | STGM_CREATE, + 0, 0, stream); } static HRESULT DataCacheEntry_Save(DataCacheEntry *This, IStorage *storage, @@ -881,7 +879,7 @@ static HRESULT WINAPI DataCache_NDIUnknown_QueryInterface( /* * Perform a sanity check on the parameters. */ - if ( (this==0) || (ppvObject==0) ) + if ( ppvObject==0 ) return E_INVALIDARG; /* @@ -892,30 +890,30 @@ static HRESULT WINAPI DataCache_NDIUnknown_QueryInterface( /* * Compare the riid with the interface IDs implemented by this object. */ - if (memcmp(&IID_IUnknown, riid, sizeof(IID_IUnknown)) == 0) + if (IsEqualIID(&IID_IUnknown, riid)) { *ppvObject = iface; } - else if (memcmp(&IID_IDataObject, riid, sizeof(IID_IDataObject)) == 0) + else if (IsEqualIID(&IID_IDataObject, riid)) { *ppvObject = &this->lpVtbl; } - else if ( (memcmp(&IID_IPersistStorage, riid, sizeof(IID_IPersistStorage)) == 0) || - (memcmp(&IID_IPersist, riid, sizeof(IID_IPersist)) == 0) ) + else if ( IsEqualIID(&IID_IPersistStorage, riid) || + IsEqualIID(&IID_IPersist, riid) ) { *ppvObject = &this->lpvtblIPersistStorage; } - else if ( (memcmp(&IID_IViewObject, riid, sizeof(IID_IViewObject)) == 0) || - (memcmp(&IID_IViewObject2, riid, sizeof(IID_IViewObject2)) == 0) ) + else if ( IsEqualIID(&IID_IViewObject, riid) || + IsEqualIID(&IID_IViewObject2, riid) ) { *ppvObject = &this->lpvtblIViewObject; } - else if ( (memcmp(&IID_IOleCache, riid, sizeof(IID_IOleCache)) == 0) || - (memcmp(&IID_IOleCache2, riid, sizeof(IID_IOleCache2)) == 0) ) + else if ( IsEqualIID(&IID_IOleCache, riid) || + IsEqualIID(&IID_IOleCache2, riid) ) { *ppvObject = &this->lpvtblIOleCache2; } - else if (memcmp(&IID_IOleCacheControl, riid, sizeof(IID_IOleCacheControl)) == 0) + else if ( IsEqualIID(&IID_IOleCacheControl, riid) ) { *ppvObject = &this->lpvtblIOleCacheControl; } @@ -2286,8 +2284,7 @@ HRESULT WINAPI CreateDataCache( * This is necessary because it's the only time the non-delegating * IUnknown pointer can be returned to the outside. */ - if ( (pUnkOuter!=NULL) && - (memcmp(&IID_IUnknown, riid, sizeof(IID_IUnknown)) != 0) ) + if ( pUnkOuter && !IsEqualIID(&IID_IUnknown, riid) ) return CLASS_E_NOAGGREGATION; /* diff --git a/reactos/dll/win32/ole32/defaulthandler.c b/reactos/dll/win32/ole32/defaulthandler.c index d0a871f17c0..b509beef61f 100644 --- a/reactos/dll/win32/ole32/defaulthandler.c +++ b/reactos/dll/win32/ole32/defaulthandler.c @@ -1146,14 +1146,11 @@ static HRESULT WINAPI DefaultHandler_EnumFormatEtc( DWORD dwDirection, IEnumFORMATETC** ppenumFormatEtc) { - HRESULT hres; DefaultHandler *This = impl_from_IDataObject(iface); TRACE("(%p, %x, %p)\n", iface, dwDirection, ppenumFormatEtc); - hres = OleRegEnumFormatEtc(&This->clsid, dwDirection, ppenumFormatEtc); - - return hres; + return OleRegEnumFormatEtc(&This->clsid, dwDirection, ppenumFormatEtc); } /************************************************************************ diff --git a/reactos/dll/win32/ole32/enumx.c b/reactos/dll/win32/ole32/enumx.c index 26653014984..4279ca81fa9 100644 --- a/reactos/dll/win32/ole32/enumx.c +++ b/reactos/dll/win32/ole32/enumx.c @@ -51,7 +51,7 @@ HRESULT WINAPI enumx_QueryInterface( REFIID riid, void** ppvObject) { - if ( (This==0) || (ppvObject==0) ) + if ( ppvObject==0 ) return E_INVALIDARG; *ppvObject = 0; diff --git a/reactos/dll/win32/ole32/filelockbytes.c b/reactos/dll/win32/ole32/filelockbytes.c new file mode 100644 index 00000000000..29bd1b1f261 --- /dev/null +++ b/reactos/dll/win32/ole32/filelockbytes.c @@ -0,0 +1,376 @@ +/****************************************************************************** + * + * File-based ILockBytes implementation + * + * Copyright 1999 Thuy Nguyen + * Copyright 2010 Vincent Povirk for CodeWeavers + * + * 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 +#include +#include +#include +#include +#include + +#define COBJMACROS +#define NONAMELESSUNION +#define NONAMELESSSTRUCT + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "winerror.h" +#include "objbase.h" +#include "ole2.h" + +#include "storage32.h" + +#include "wine/debug.h" +#include "wine/unicode.h" + +WINE_DEFAULT_DEBUG_CHANNEL(storage); + +typedef struct FileLockBytesImpl +{ + const ILockBytesVtbl *lpVtbl; + LONG ref; + ULARGE_INTEGER filesize; + HANDLE hfile; + DWORD flProtect; + LPWSTR pwcsName; +} FileLockBytesImpl; + +static const ILockBytesVtbl FileLockBytesImpl_Vtbl; + +/*********************************************************** + * Prototypes for private methods + */ + +/* Note that this evaluates a and b multiple times, so don't + * pass expressions with side effects. */ +#define ROUND_UP(a, b) ((((a) + (b) - 1)/(b))*(b)) + +/**************************************************************************** + * GetProtectMode + * + * This function will return a protection mode flag for a file-mapping object + * from the open flags of a file. + */ +static DWORD GetProtectMode(DWORD openFlags) +{ + switch(STGM_ACCESS_MODE(openFlags)) + { + case STGM_WRITE: + case STGM_READWRITE: + return PAGE_READWRITE; + } + return PAGE_READONLY; +} + +/****************************************************************************** + * FileLockBytesImpl_Construct + * + * Initialize a big block object supported by a file. + */ +HRESULT FileLockBytesImpl_Construct(HANDLE hFile, DWORD openFlags, LPCWSTR pwcsName, ILockBytes **pLockBytes) +{ + FileLockBytesImpl *This; + WCHAR fullpath[MAX_PATH]; + + if (hFile == INVALID_HANDLE_VALUE) + return E_FAIL; + + This = HeapAlloc(GetProcessHeap(), 0, sizeof(FileLockBytesImpl)); + + if (!This) + return E_OUTOFMEMORY; + + This->lpVtbl = &FileLockBytesImpl_Vtbl; + This->ref = 1; + This->hfile = hFile; + This->filesize.u.LowPart = GetFileSize(This->hfile, + &This->filesize.u.HighPart); + This->flProtect = GetProtectMode(openFlags); + + if(pwcsName) { + if (!GetFullPathNameW(pwcsName, MAX_PATH, fullpath, NULL)) + { + lstrcpynW(fullpath, pwcsName, MAX_PATH); + } + This->pwcsName = HeapAlloc(GetProcessHeap(), 0, + (lstrlenW(fullpath)+1)*sizeof(WCHAR)); + if (!This->pwcsName) + { + HeapFree(GetProcessHeap(), 0, This); + return E_OUTOFMEMORY; + } + strcpyW(This->pwcsName, fullpath); + } + else + This->pwcsName = NULL; + + TRACE("file len %u\n", This->filesize.u.LowPart); + + *pLockBytes = (ILockBytes*)This; + + return S_OK; +} + +/* ILockByte Interfaces */ + +static HRESULT WINAPI FileLockBytesImpl_QueryInterface(ILockBytes *iface, REFIID riid, + void **ppvObject) +{ + if (IsEqualIID(riid, &IID_ILockBytes) || IsEqualIID(riid, &IID_ILockBytes)) + *ppvObject = iface; + else + { + *ppvObject = NULL; + return E_NOINTERFACE; + } + + IUnknown_AddRef((IUnknown*)*ppvObject); + + return S_OK; +} + +static ULONG WINAPI FileLockBytesImpl_AddRef(ILockBytes *iface) +{ + FileLockBytesImpl* This = (FileLockBytesImpl*)iface; + return InterlockedIncrement(&This->ref); +} + +static ULONG WINAPI FileLockBytesImpl_Release(ILockBytes *iface) +{ + FileLockBytesImpl* This = (FileLockBytesImpl*)iface; + ULONG ref; + + ref = InterlockedDecrement(&This->ref); + + if (ref == 0) + { + CloseHandle(This->hfile); + HeapFree(GetProcessHeap(), 0, This->pwcsName); + HeapFree(GetProcessHeap(), 0, This); + } + + return ref; +} + +/****************************************************************************** + * This method is part of the ILockBytes interface. + * + * It reads a block of information from the byte array at the specified + * offset. + * + * See the documentation of ILockBytes for more info. + */ +static HRESULT WINAPI FileLockBytesImpl_ReadAt( + ILockBytes* iface, + ULARGE_INTEGER ulOffset, /* [in] */ + void* pv, /* [length_is][size_is][out] */ + ULONG cb, /* [in] */ + ULONG* pcbRead) /* [out] */ +{ + FileLockBytesImpl* This = (FileLockBytesImpl*)iface; + ULONG bytes_left = cb; + LPBYTE readPtr = pv; + BOOL ret; + LARGE_INTEGER offset; + ULONG cbRead; + + TRACE("(%p)-> %i %p %i %p\n",This, ulOffset.u.LowPart, pv, cb, pcbRead); + + /* verify a sane environment */ + if (!This) return E_FAIL; + + if (pcbRead) + *pcbRead = 0; + + offset.QuadPart = ulOffset.QuadPart; + + ret = SetFilePointerEx(This->hfile, offset, NULL, FILE_BEGIN); + + if (!ret) + return STG_E_READFAULT; + + while (bytes_left) + { + ret = ReadFile(This->hfile, readPtr, bytes_left, &cbRead, NULL); + + if (!ret || cbRead == 0) + return STG_E_READFAULT; + + if (pcbRead) + *pcbRead += cbRead; + + bytes_left -= cbRead; + readPtr += cbRead; + } + + TRACE("finished\n"); + return S_OK; +} + +/****************************************************************************** + * This method is part of the ILockBytes interface. + * + * It writes the specified bytes at the specified offset. + * position. If the file is too small, it will be resized. + * + * See the documentation of ILockBytes for more info. + */ +static HRESULT WINAPI FileLockBytesImpl_WriteAt( + ILockBytes* iface, + ULARGE_INTEGER ulOffset, /* [in] */ + const void* pv, /* [size_is][in] */ + ULONG cb, /* [in] */ + ULONG* pcbWritten) /* [out] */ +{ + FileLockBytesImpl* This = (FileLockBytesImpl*)iface; + ULONG size_needed = ulOffset.u.LowPart + cb; + ULONG bytes_left = cb; + const BYTE *writePtr = pv; + BOOL ret; + LARGE_INTEGER offset; + ULONG cbWritten; + + TRACE("(%p)-> %i %p %i %p\n",This, ulOffset.u.LowPart, pv, cb, pcbWritten); + + /* verify a sane environment */ + if (!This) return E_FAIL; + + if (This->flProtect != PAGE_READWRITE) + return STG_E_ACCESSDENIED; + + if (pcbWritten) + *pcbWritten = 0; + + if (size_needed > This->filesize.u.LowPart) + { + ULARGE_INTEGER newSize; + newSize.u.HighPart = 0; + newSize.u.LowPart = size_needed; + ILockBytes_SetSize(iface, newSize); + } + + offset.QuadPart = ulOffset.QuadPart; + + ret = SetFilePointerEx(This->hfile, offset, NULL, FILE_BEGIN); + + if (!ret) + return STG_E_READFAULT; + + while (bytes_left) + { + ret = WriteFile(This->hfile, writePtr, bytes_left, &cbWritten, NULL); + + if (!ret) + return STG_E_READFAULT; + + if (pcbWritten) + *pcbWritten += cbWritten; + + bytes_left -= cbWritten; + writePtr += cbWritten; + } + + TRACE("finished\n"); + return S_OK; +} + +static HRESULT WINAPI FileLockBytesImpl_Flush(ILockBytes* iface) +{ + return S_OK; +} + +/****************************************************************************** + * ILockBytes_SetSize + * + * Sets the size of the file. + * + */ +static HRESULT WINAPI FileLockBytesImpl_SetSize(ILockBytes* iface, ULARGE_INTEGER newSize) +{ + FileLockBytesImpl* This = (FileLockBytesImpl*)iface; + HRESULT hr = S_OK; + LARGE_INTEGER newpos; + + if (This->filesize.u.LowPart == newSize.u.LowPart) + return hr; + + TRACE("from %u to %u\n", This->filesize.u.LowPart, newSize.u.LowPart); + + newpos.QuadPart = newSize.QuadPart; + if (SetFilePointerEx(This->hfile, newpos, NULL, FILE_BEGIN)) + { + SetEndOfFile(This->hfile); + } + + This->filesize = newSize; + return hr; +} + +static HRESULT WINAPI FileLockBytesImpl_LockRegion(ILockBytes* iface, + ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) +{ + FIXME("stub\n"); + return E_NOTIMPL; +} + +static HRESULT WINAPI FileLockBytesImpl_UnlockRegion(ILockBytes* iface, + ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) +{ + FIXME("stub\n"); + return E_NOTIMPL; +} + +static HRESULT WINAPI FileLockBytesImpl_Stat(ILockBytes* iface, + STATSTG *pstatstg, DWORD grfStatFlag) +{ + FileLockBytesImpl* This = (FileLockBytesImpl*)iface; + + if (!(STATFLAG_NONAME & grfStatFlag) && This->pwcsName) + { + pstatstg->pwcsName = + CoTaskMemAlloc((lstrlenW(This->pwcsName)+1)*sizeof(WCHAR)); + + strcpyW(pstatstg->pwcsName, This->pwcsName); + } + else + pstatstg->pwcsName = NULL; + + pstatstg->type = STGTY_LOCKBYTES; + pstatstg->cbSize = This->filesize; + /* FIXME: If the implementation is exported, we'll need to set other fields. */ + + return S_OK; +} + +static const ILockBytesVtbl FileLockBytesImpl_Vtbl = { + FileLockBytesImpl_QueryInterface, + FileLockBytesImpl_AddRef, + FileLockBytesImpl_Release, + FileLockBytesImpl_ReadAt, + FileLockBytesImpl_WriteAt, + FileLockBytesImpl_Flush, + FileLockBytesImpl_SetSize, + FileLockBytesImpl_LockRegion, + FileLockBytesImpl_UnlockRegion, + FileLockBytesImpl_Stat +}; diff --git a/reactos/dll/win32/ole32/filemoniker.c b/reactos/dll/win32/ole32/filemoniker.c index 72f59136f78..0cbfc3aee91 100644 --- a/reactos/dll/win32/ole32/filemoniker.c +++ b/reactos/dll/win32/ole32/filemoniker.c @@ -77,7 +77,7 @@ FileMonikerImpl_QueryInterface(IMoniker* iface,REFIID riid,void** ppvObject) TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppvObject); /* Perform a sanity check on the parameters.*/ - if ( (This==0) || (ppvObject==0) ) + if ( ppvObject==0 ) return E_INVALIDARG; /* Initialize the return parameter */ @@ -421,10 +421,7 @@ FileMonikerImpl_Save(IMoniker* iface, IStream* pStm, BOOL fClearDirty) } if (!bWriteWide) - { - res=IStream_Write(pStm,&ZERO,sizeof(DWORD),NULL); - return res; - } + return IStream_Write(pStm,&ZERO,sizeof(DWORD),NULL); /* write bytes needed for the filepathW (without 0) + 6 */ bytesW = len*sizeof(WCHAR) + 6; @@ -441,9 +438,7 @@ FileMonikerImpl_Save(IMoniker* iface, IStream* pStm, BOOL fClearDirty) if (FAILED(res)) return res; /* write W string (no 0) */ - res=IStream_Write(pStm,filePathW,bytesW,NULL); - - return res; + return IStream_Write(pStm,filePathW,bytesW,NULL); } /****************************************************************************** @@ -1455,7 +1450,7 @@ HRESULT WINAPI CreateFileMoniker(LPCOLESTR lpszPathName, LPMONIKER * ppmk) hr = FileMonikerImpl_Construct(newFileMoniker,lpszPathName); if (SUCCEEDED(hr)) - hr = FileMonikerImpl_QueryInterface((IMoniker*)newFileMoniker,&IID_IMoniker,(void**)ppmk); + hr = IMoniker_QueryInterface((IMoniker*)newFileMoniker,&IID_IMoniker,(void**)ppmk); else HeapFree(GetProcessHeap(),0,newFileMoniker); @@ -1605,7 +1600,7 @@ static HRESULT WINAPI FileMonikerCF_CreateInstance(LPCLASSFACTORY iface, hr = FileMonikerImpl_Construct(newFileMoniker, wszEmpty); if (SUCCEEDED(hr)) - hr = FileMonikerImpl_QueryInterface((IMoniker*)newFileMoniker, riid, ppv); + hr = IMoniker_QueryInterface((IMoniker*)newFileMoniker, riid, ppv); if (FAILED(hr)) HeapFree(GetProcessHeap(),0,newFileMoniker); diff --git a/reactos/dll/win32/ole32/git.c b/reactos/dll/win32/ole32/git.c index e961f904136..3800de0072f 100644 --- a/reactos/dll/win32/ole32/git.c +++ b/reactos/dll/win32/ole32/git.c @@ -187,9 +187,9 @@ StdGlobalInterfaceTable_RegisterInterfaceInGlobal( TRACE("About to marshal the interface\n"); hres = CreateStreamOnHGlobal(0, TRUE, &stream); - if (hres) return hres; + if (hres != S_OK) return hres; hres = CoMarshalInterface(stream, riid, pUnk, MSHCTX_INPROC, NULL, MSHLFLAGS_TABLESTRONG); - if (hres) + if (hres != S_OK) { IStream_Release(stream); return hres; @@ -281,7 +281,7 @@ StdGlobalInterfaceTable_GetInterfaceFromGlobal( LeaveCriticalSection(&git_section); - if (hres) { + if (hres != S_OK) { WARN("Failed to clone stream with error 0x%08x\n", hres); return hres; } diff --git a/reactos/dll/win32/ole32/ole2.c b/reactos/dll/win32/ole32/ole2.c index 41989f3331b..f570167bcf2 100644 --- a/reactos/dll/win32/ole32/ole2.c +++ b/reactos/dll/win32/ole32/ole2.c @@ -116,6 +116,10 @@ static const WCHAR prop_olemenuW[] = static const WCHAR prop_oledroptarget[] = {'O','l','e','D','r','o','p','T','a','r','g','e','t','I','n','t','e','r','f','a','c','e',0}; +/* property to store Marshalled IDropTarget pointer */ +static const WCHAR prop_marshalleddroptarget[] = + {'W','i','n','e','M','a','r','s','h','a','l','l','e','d','D','r','o','p','T','a','r','g','e','t',0}; + static const WCHAR clsidfmtW[] = {'C','L','S','I','D','\\','{','%','0','8','x','-','%','0','4','x','-','%','0','4','x','-', '%','0','2','x','%','0','2','x','-','%','0','2','x','%','0','2','x','%','0','2','x','%','0','2','x', @@ -266,14 +270,134 @@ HRESULT WINAPI OleInitializeWOW(DWORD x, DWORD y) { return 0; } -/*** - * OLEDD_FindDropTarget() +/************************************************************* + * get_droptarget_handle + * + * Retrieve a handle to the map containing the marshalled IDropTarget. + * This handle belongs to the process that called RegisterDragDrop. + * See get_droptarget_local_handle(). + */ +static inline HANDLE get_droptarget_handle(HWND hwnd) +{ + return GetPropW(hwnd, prop_marshalleddroptarget); +} + +/************************************************************* + * is_droptarget + * + * Is the window a droptarget. + */ +static inline BOOL is_droptarget(HWND hwnd) +{ + return get_droptarget_handle(hwnd) ? TRUE : FALSE; +} + +/************************************************************* + * get_droptarget_local_handle + * + * Retrieve a handle to the map containing the marshalled IDropTarget. + * The handle should be closed when finished with. + */ +static HANDLE get_droptarget_local_handle(HWND hwnd) +{ + HANDLE handle, local_handle = 0; + + handle = get_droptarget_handle(hwnd); + + if(handle) + { + DWORD pid; + HANDLE process; + + GetWindowThreadProcessId(hwnd, &pid); + process = OpenProcess(PROCESS_DUP_HANDLE, FALSE, pid); + if(process) + { + DuplicateHandle(process, handle, GetCurrentProcess(), &local_handle, 0, FALSE, DUPLICATE_SAME_ACCESS); + CloseHandle(process); + } + } + return local_handle; +} + +/*********************************************************************** + * create_map_from_stream + * + * Helper for RegisterDragDrop. Creates a file mapping object + * with the contents of the provided stream. The stream must + * be a global memory backed stream. + */ +static HRESULT create_map_from_stream(IStream *stream, HANDLE *map) +{ + HGLOBAL hmem; + DWORD size; + HRESULT hr; + void *data; + + hr = GetHGlobalFromStream(stream, &hmem); + if(FAILED(hr)) return hr; + + size = GlobalSize(hmem); + *map = CreateFileMappingW(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, size, NULL); + if(!*map) return E_OUTOFMEMORY; + + data = MapViewOfFile(*map, FILE_MAP_WRITE, 0, 0, size); + memcpy(data, GlobalLock(hmem), size); + GlobalUnlock(hmem); + UnmapViewOfFile(data); + return S_OK; +} + +/*********************************************************************** + * create_stream_from_map + * + * Creates a stream from the provided map. + */ +static HRESULT create_stream_from_map(HANDLE map, IStream **stream) +{ + HRESULT hr = E_OUTOFMEMORY; + HGLOBAL hmem; + void *data; + MEMORY_BASIC_INFORMATION info; + + data = MapViewOfFile(map, FILE_MAP_READ, 0, 0, 0); + if(!data) return hr; + + VirtualQuery(data, &info, sizeof(info)); + TRACE("size %d\n", (int)info.RegionSize); + + hmem = GlobalAlloc(GMEM_MOVEABLE, info.RegionSize); + if(hmem) + { + memcpy(GlobalLock(hmem), data, info.RegionSize); + GlobalUnlock(hmem); + hr = CreateStreamOnHGlobal(hmem, TRUE, stream); + } + UnmapViewOfFile(data); + return hr; +} + +/*********************************************************************** + * get_droptarget_pointer * - * Returns IDropTarget pointer registered for this window. + * Retrieves the marshalled IDropTarget from the window. */ -static inline IDropTarget* OLEDD_FindDropTarget(HWND hwnd) +static IDropTarget* get_droptarget_pointer(HWND hwnd) { - return GetPropW(hwnd, prop_oledroptarget); + IDropTarget *droptarget = NULL; + HANDLE map; + IStream *stream; + + map = get_droptarget_local_handle(hwnd); + if(!map) return NULL; + + if(SUCCEEDED(create_stream_from_map(map, &stream))) + { + CoUnmarshalInterface(stream, &IID_IDropTarget, (void**)&droptarget); + IStream_Release(stream); + } + CloseHandle(map); + return droptarget; } /*********************************************************************** @@ -282,6 +406,9 @@ static inline IDropTarget* OLEDD_FindDropTarget(HWND hwnd) HRESULT WINAPI RegisterDragDrop(HWND hwnd, LPDROPTARGET pDropTarget) { DWORD pid = 0; + HRESULT hr; + IStream *stream; + HANDLE map; TRACE("(%p,%p)\n", hwnd, pDropTarget); @@ -309,13 +436,40 @@ HRESULT WINAPI RegisterDragDrop(HWND hwnd, LPDROPTARGET pDropTarget) } /* check if the window is already registered */ - if (OLEDD_FindDropTarget(hwnd)) + if (is_droptarget(hwnd)) return DRAGDROP_E_ALREADYREGISTERED; - IDropTarget_AddRef(pDropTarget); - SetPropW(hwnd, prop_oledroptarget, pDropTarget); + /* + * Marshal the drop target pointer into a shared memory map and + * store the map's handle in a Wine specific window prop. We also + * store the drop target pointer itself in the + * "OleDropTargetInterface" prop for compatibility with Windows. + */ + + hr = CreateStreamOnHGlobal(NULL, TRUE, &stream); + if(FAILED(hr)) return hr; - return S_OK; + hr = CoMarshalInterface(stream, &IID_IDropTarget, (IUnknown*)pDropTarget, MSHCTX_LOCAL, NULL, MSHLFLAGS_TABLESTRONG); + if(SUCCEEDED(hr)) + { + hr = create_map_from_stream(stream, &map); + if(SUCCEEDED(hr)) + { + IDropTarget_AddRef(pDropTarget); + SetPropW(hwnd, prop_oledroptarget, pDropTarget); + SetPropW(hwnd, prop_marshalleddroptarget, map); + } + else + { + LARGE_INTEGER zero; + zero.QuadPart = 0; + IStream_Seek(stream, zero, STREAM_SEEK_SET, NULL); + CoReleaseMarshalData(stream); + } + } + IStream_Release(stream); + + return hr; } /*********************************************************************** @@ -323,7 +477,10 @@ HRESULT WINAPI RegisterDragDrop(HWND hwnd, LPDROPTARGET pDropTarget) */ HRESULT WINAPI RevokeDragDrop(HWND hwnd) { - IDropTarget* droptarget; + HANDLE map; + IStream *stream; + IDropTarget *drop_target; + HRESULT hr; TRACE("(%p)\n", hwnd); @@ -334,13 +491,24 @@ HRESULT WINAPI RevokeDragDrop(HWND hwnd) } /* no registration data */ - if (!(droptarget = OLEDD_FindDropTarget(hwnd))) + if (!(map = get_droptarget_handle(hwnd))) return DRAGDROP_E_NOTREGISTERED; - IDropTarget_Release(droptarget); + drop_target = GetPropW(hwnd, prop_oledroptarget); + if(drop_target) IDropTarget_Release(drop_target); + RemovePropW(hwnd, prop_oledroptarget); + RemovePropW(hwnd, prop_marshalleddroptarget); - return S_OK; + hr = create_stream_from_map(map, &stream); + if(SUCCEEDED(hr)) + { + CoReleaseMarshalData(stream); + IStream_Release(stream); + } + CloseHandle(map); + + return hr; } /*********************************************************************** @@ -1975,30 +2143,17 @@ static void OLEDD_TrackMouseMove(TrackerWindowInfo* trackerInfo) * Find-out if there is a drag target under the mouse */ HWND next_target_wnd = hwndNewTarget; - IDropTarget *new_target; - DWORD pid; trackerInfo->curTargetHWND = hwndNewTarget; - do { - new_target = OLEDD_FindDropTarget(next_target_wnd); - } while (!new_target && (next_target_wnd = GetParent(next_target_wnd))); + while (next_target_wnd && !is_droptarget(next_target_wnd)) + next_target_wnd = GetParent(next_target_wnd); if (next_target_wnd) hwndNewTarget = next_target_wnd; - GetWindowThreadProcessId(hwndNewTarget, &pid); - if (pid != GetCurrentProcessId()) - { - FIXME("drop to another process window is unsupported\n"); - trackerInfo->curDragTargetHWND = 0; - trackerInfo->curTargetHWND = 0; - trackerInfo->curDragTarget = 0; - } - else - { - trackerInfo->curDragTargetHWND = hwndNewTarget; - trackerInfo->curDragTarget = new_target; - } + trackerInfo->curDragTargetHWND = hwndNewTarget; + if(trackerInfo->curDragTarget) IDropTarget_Release(trackerInfo->curDragTarget); + trackerInfo->curDragTarget = get_droptarget_pointer(hwndNewTarget); /* * If there is, notify it that we just dragged-in @@ -2016,6 +2171,7 @@ static void OLEDD_TrackMouseMove(TrackerWindowInfo* trackerInfo) { trackerInfo->curDragTargetHWND = 0; trackerInfo->curTargetHWND = 0; + IDropTarget_Release(trackerInfo->curDragTarget); trackerInfo->curDragTarget = 0; } } @@ -2027,6 +2183,7 @@ static void OLEDD_TrackMouseMove(TrackerWindowInfo* trackerInfo) */ trackerInfo->curDragTargetHWND = 0; trackerInfo->curTargetHWND = 0; + if(trackerInfo->curDragTarget) IDropTarget_Release(trackerInfo->curDragTarget); trackerInfo->curDragTarget = 0; } } diff --git a/reactos/dll/win32/ole32/ole2thk.spec b/reactos/dll/win32/ole32/ole2thk.spec deleted file mode 100644 index 7e64f55ae4f..00000000000 --- a/reactos/dll/win32/ole32/ole2thk.spec +++ /dev/null @@ -1,7 +0,0 @@ -#1 stub WEP -2 stub ROT16_ISRUNNING16 -3 stub ISWIN32SHANDLE -4 stub ___EXPORTEDSTUB -5 stub COTHKCOMMON -6 stub ROT16_GETTIMEOFLASTCHANGE16 -7 stub ROT16_GETOBJECT16 diff --git a/reactos/dll/win32/ole32/ole32.rbuild b/reactos/dll/win32/ole32/ole32.rbuild index 02d91d71a01..b7ad1906e1a 100644 --- a/reactos/dll/win32/ole32/ole32.rbuild +++ b/reactos/dll/win32/ole32/ole32.rbuild @@ -35,6 +35,7 @@ dictionary.c enumx.c errorinfo.c + filelockbytes.c filemoniker.c ftmarshal.c git.c @@ -53,7 +54,6 @@ pointermoniker.c regsvr.c rpc.c - stg_bigblockfile.c stg_prop.c stg_stream.c storage32.c diff --git a/reactos/dll/win32/ole32/oleobj.c b/reactos/dll/win32/ole32/oleobj.c index 584e796bf45..7e131ae3391 100644 --- a/reactos/dll/win32/ole32/oleobj.c +++ b/reactos/dll/win32/ole32/oleobj.c @@ -615,8 +615,8 @@ static HRESULT WINAPI DataAdviseHolder_QueryInterface( /* * Compare the riid with the interface IDs implemented by this object. */ - if ( (memcmp(&IID_IUnknown, riid, sizeof(IID_IUnknown)) == 0) || - (memcmp(&IID_IDataAdviseHolder, riid, sizeof(IID_IDataAdviseHolder)) == 0) ) + if ( IsEqualIID(&IID_IUnknown, riid) || + IsEqualIID(&IID_IDataAdviseHolder, riid) ) { *ppvObject = iface; } diff --git a/reactos/dll/win32/ole32/stg_bigblockfile.c b/reactos/dll/win32/ole32/stg_bigblockfile.c deleted file mode 100644 index 77abbf6286b..00000000000 --- a/reactos/dll/win32/ole32/stg_bigblockfile.c +++ /dev/null @@ -1,828 +0,0 @@ -/****************************************************************************** - * - * BigBlockFile - * - * This is the implementation of a file that consists of blocks of - * a predetermined size. - * This class is used in the Compound File implementation of the - * IStorage and IStream interfaces. It provides the functionality - * to read and write any blocks in the file as well as setting and - * obtaining the size of the file. - * The blocks are indexed sequentially from the start of the file - * starting with -1. - * - * TODO: - * - Support for a transacted mode - * - * Copyright 1999 Thuy Nguyen - * - * 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 -#include -#include -#include -#include -#include - -#define COBJMACROS -#define NONAMELESSUNION -#define NONAMELESSSTRUCT - -#include "windef.h" -#include "winbase.h" -#include "winuser.h" -#include "winerror.h" -#include "objbase.h" -#include "ole2.h" - -#include "storage32.h" - -#include "wine/debug.h" - -WINE_DEFAULT_DEBUG_CHANNEL(storage); - -/*********************************************************** - * Data structures used internally by the BigBlockFile - * class. - */ - -/* We map in PAGE_SIZE-sized chunks. Must be a multiple of 4096. */ -#define PAGE_SIZE 131072 - -/* We keep a list of recently-discarded pages. This controls the - * size of that list. */ -#define MAX_VICTIM_PAGES 16 - -/*** - * This structure identifies the paged that are mapped - * from the file and their position in memory. It is - * also used to hold a reference count to those pages. - * - * page_index identifies which PAGE_SIZE chunk from the - * file this mapping represents. (The mappings are always - * PAGE_SIZE-aligned.) - */ - -typedef struct MappedPage MappedPage; -struct MappedPage -{ - MappedPage *next; - MappedPage *prev; - - DWORD page_index; - DWORD mapped_bytes; - LPVOID lpBytes; - LONG refcnt; -}; - -struct BigBlockFile -{ - BOOL fileBased; - ULARGE_INTEGER filesize; - HANDLE hfile; - HANDLE hfilemap; - DWORD flProtect; - MappedPage *maplist; - MappedPage *victimhead, *victimtail; - ULONG num_victim_pages; - ILockBytes *pLkbyt; -}; - -/*********************************************************** - * Prototypes for private methods - */ - -/* Note that this evaluates a and b multiple times, so don't - * pass expressions with side effects. */ -#define ROUND_UP(a, b) ((((a) + (b) - 1)/(b))*(b)) - -/****************************************************************************** - * BIGBLOCKFILE_FileInit - * - * Initialize a big block object supported by a file. - */ -static BOOL BIGBLOCKFILE_FileInit(LPBIGBLOCKFILE This, HANDLE hFile) -{ - This->pLkbyt = NULL; - This->hfile = hFile; - - if (This->hfile == INVALID_HANDLE_VALUE) - return FALSE; - - This->filesize.u.LowPart = GetFileSize(This->hfile, - &This->filesize.u.HighPart); - - if( This->filesize.u.LowPart || This->filesize.u.HighPart ) - { - /* create the file mapping object - */ - This->hfilemap = CreateFileMappingA(This->hfile, - NULL, - This->flProtect, - 0, 0, - NULL); - - if (!This->hfilemap) - { - CloseHandle(This->hfile); - return FALSE; - } - } - else - This->hfilemap = NULL; - - This->maplist = NULL; - - TRACE("file len %u\n", This->filesize.u.LowPart); - - return TRUE; -} - -/****************************************************************************** - * BIGBLOCKFILE_LockBytesInit - * - * Initialize a big block object supported by an ILockBytes. - */ -static BOOL BIGBLOCKFILE_LockBytesInit(LPBIGBLOCKFILE This, ILockBytes* plkbyt) -{ - This->hfile = 0; - This->hfilemap = 0; - This->pLkbyt = plkbyt; - ILockBytes_AddRef(This->pLkbyt); - - /* We'll get the size directly with ILockBytes_Stat */ - This->filesize.QuadPart = 0; - - TRACE("ILockBytes %p\n", This->pLkbyt); - return TRUE; -} - -/****************************************************************************** - * BIGBLOCKFILE_FindPageInList [PRIVATE] - * - */ -static MappedPage *BIGBLOCKFILE_FindPageInList(MappedPage *head, - ULONG page_index) -{ - for (; head != NULL; head = head->next) - { - if (head->page_index == page_index) - { - InterlockedIncrement(&head->refcnt); - break; - } - } - - return head; - -} - -static void BIGBLOCKFILE_UnlinkPage(MappedPage *page) -{ - if (page->next) page->next->prev = page->prev; - if (page->prev) page->prev->next = page->next; -} - -static void BIGBLOCKFILE_LinkHeadPage(MappedPage **head, MappedPage *page) -{ - if (*head) (*head)->prev = page; - page->next = *head; - page->prev = NULL; - *head = page; -} - -static BOOL BIGBLOCKFILE_MapPage(BigBlockFile *This, MappedPage *page) -{ - DWORD lowoffset = PAGE_SIZE * page->page_index; - DWORD numBytesToMap; - DWORD desired_access; - - assert(This->fileBased); - - if( !This->hfilemap ) - return FALSE; - - if (lowoffset + PAGE_SIZE > This->filesize.u.LowPart) - numBytesToMap = This->filesize.u.LowPart - lowoffset; - else - numBytesToMap = PAGE_SIZE; - - if (This->flProtect == PAGE_READONLY) - desired_access = FILE_MAP_READ; - else - desired_access = FILE_MAP_WRITE; - - page->lpBytes = MapViewOfFile(This->hfilemap, desired_access, 0, - lowoffset, numBytesToMap); - page->mapped_bytes = numBytesToMap; - - TRACE("mapped page %u to %p\n", page->page_index, page->lpBytes); - - return page->lpBytes != NULL; -} - - -static MappedPage *BIGBLOCKFILE_CreatePage(BigBlockFile *This, ULONG page_index) -{ - MappedPage *page; - - page = HeapAlloc(GetProcessHeap(), 0, sizeof(MappedPage)); - if (page == NULL) - return NULL; - - page->page_index = page_index; - page->refcnt = 1; - - page->next = NULL; - page->prev = NULL; - - if (!BIGBLOCKFILE_MapPage(This, page)) - { - HeapFree(GetProcessHeap(),0,page); - return NULL; - } - - return page; -} - - -/****************************************************************************** - * BIGBLOCKFILE_GetMappedView [PRIVATE] - * - * Gets the page requested if it is already mapped. - * If it's not already mapped, this method will map it - */ -static void * BIGBLOCKFILE_GetMappedView( - LPBIGBLOCKFILE This, - DWORD page_index) -{ - MappedPage *page; - - page = BIGBLOCKFILE_FindPageInList(This->maplist, page_index); - if (!page) - { - page = BIGBLOCKFILE_FindPageInList(This->victimhead, page_index); - if (page) - { - This->num_victim_pages--; - } - } - - if (page) - { - /* If the page is not already at the head of the list, move - * it there. (Also moves pages from victim to main list.) */ - if (This->maplist != page) - { - if (This->victimhead == page) This->victimhead = page->next; - if (This->victimtail == page) This->victimtail = page->prev; - - BIGBLOCKFILE_UnlinkPage(page); - - BIGBLOCKFILE_LinkHeadPage(&This->maplist, page); - } - - return page; - } - - page = BIGBLOCKFILE_CreatePage(This, page_index); - if (!page) return NULL; - - BIGBLOCKFILE_LinkHeadPage(&This->maplist, page); - - return page; -} - -static void BIGBLOCKFILE_UnmapPage(LPBIGBLOCKFILE This, MappedPage *page) -{ - TRACE("%d at %p\n", page->page_index, page->lpBytes); - - assert(This->fileBased); - - if (page->refcnt > 0) - ERR("unmapping inuse page %p\n", page->lpBytes); - - if (page->lpBytes) - UnmapViewOfFile(page->lpBytes); - - page->lpBytes = NULL; -} - -static void BIGBLOCKFILE_DeletePage(LPBIGBLOCKFILE This, MappedPage *page) -{ - BIGBLOCKFILE_UnmapPage(This, page); - - HeapFree(GetProcessHeap(), 0, page); -} - -/****************************************************************************** - * BIGBLOCKFILE_ReleaseMappedPage [PRIVATE] - * - * Decrements the reference count of the mapped page. - */ -static void BIGBLOCKFILE_ReleaseMappedPage( - LPBIGBLOCKFILE This, - MappedPage *page) -{ - assert(This != NULL); - assert(page != NULL); - - /* If the page is no longer refenced, move it to the victim list. - * If the victim list is too long, kick somebody off. */ - if (!InterlockedDecrement(&page->refcnt)) - { - if (This->maplist == page) This->maplist = page->next; - - BIGBLOCKFILE_UnlinkPage(page); - - if (MAX_VICTIM_PAGES > 0) - { - if (This->num_victim_pages >= MAX_VICTIM_PAGES) - { - MappedPage *victim = This->victimtail; - if (victim) - { - This->victimtail = victim->prev; - if (This->victimhead == victim) - This->victimhead = victim->next; - - BIGBLOCKFILE_UnlinkPage(victim); - BIGBLOCKFILE_DeletePage(This, victim); - } - } - else This->num_victim_pages++; - - BIGBLOCKFILE_LinkHeadPage(&This->victimhead, page); - if (This->victimtail == NULL) This->victimtail = page; - } - else - BIGBLOCKFILE_DeletePage(This, page); - } -} - -static void BIGBLOCKFILE_DeleteList(LPBIGBLOCKFILE This, MappedPage *list) -{ - while (list != NULL) - { - MappedPage *next = list->next; - - BIGBLOCKFILE_DeletePage(This, list); - - list = next; - } -} - -/****************************************************************************** - * BIGBLOCKFILE_FreeAllMappedPages [PRIVATE] - * - * Unmap all currently mapped pages. - * Empty mapped pages list. - */ -static void BIGBLOCKFILE_FreeAllMappedPages( - LPBIGBLOCKFILE This) -{ - BIGBLOCKFILE_DeleteList(This, This->maplist); - BIGBLOCKFILE_DeleteList(This, This->victimhead); - - This->maplist = NULL; - This->victimhead = NULL; - This->victimtail = NULL; - This->num_victim_pages = 0; -} - -static void BIGBLOCKFILE_UnmapList(LPBIGBLOCKFILE This, MappedPage *list) -{ - for (; list != NULL; list = list->next) - { - BIGBLOCKFILE_UnmapPage(This, list); - } -} - -static void BIGBLOCKFILE_UnmapAllMappedPages(LPBIGBLOCKFILE This) -{ - BIGBLOCKFILE_UnmapList(This, This->maplist); - BIGBLOCKFILE_UnmapList(This, This->victimhead); -} - -static void BIGBLOCKFILE_RemapList(LPBIGBLOCKFILE This, MappedPage *list) -{ - while (list != NULL) - { - MappedPage *next = list->next; - - if (list->page_index * PAGE_SIZE > This->filesize.u.LowPart) - { - TRACE("discarding %u\n", list->page_index); - - /* page is entirely outside of the file, delete it */ - BIGBLOCKFILE_UnlinkPage(list); - BIGBLOCKFILE_DeletePage(This, list); - } - else - { - /* otherwise, remap it */ - BIGBLOCKFILE_MapPage(This, list); - } - - list = next; - } -} - -static void BIGBLOCKFILE_RemapAllMappedPages(LPBIGBLOCKFILE This) -{ - BIGBLOCKFILE_RemapList(This, This->maplist); - BIGBLOCKFILE_RemapList(This, This->victimhead); -} - -/**************************************************************************** - * BIGBLOCKFILE_GetProtectMode - * - * This function will return a protection mode flag for a file-mapping object - * from the open flags of a file. - */ -static DWORD BIGBLOCKFILE_GetProtectMode(DWORD openFlags) -{ - switch(STGM_ACCESS_MODE(openFlags)) - { - case STGM_WRITE: - case STGM_READWRITE: - return PAGE_READWRITE; - } - return PAGE_READONLY; -} - - -/* ILockByte Interfaces */ - -/****************************************************************************** - * This method is part of the ILockBytes interface. - * - * It reads a block of information from the byte array at the specified - * offset. - * - * See the documentation of ILockBytes for more info. - */ -static HRESULT ImplBIGBLOCKFILE_ReadAt( - BigBlockFile* const This, - ULARGE_INTEGER ulOffset, /* [in] */ - void* pv, /* [length_is][size_is][out] */ - ULONG cb, /* [in] */ - ULONG* pcbRead) /* [out] */ -{ - ULONG first_page = ulOffset.u.LowPart / PAGE_SIZE; - ULONG offset_in_page = ulOffset.u.LowPart % PAGE_SIZE; - ULONG bytes_left = cb; - ULONG page_index = first_page; - ULONG bytes_from_page; - LPVOID writePtr = pv; - - HRESULT rc = S_OK; - - TRACE("(%p)-> %i %p %i %p\n",This, ulOffset.u.LowPart, pv, cb, pcbRead); - - /* verify a sane environment */ - if (!This) return E_FAIL; - - if (offset_in_page + bytes_left > PAGE_SIZE) - bytes_from_page = PAGE_SIZE - offset_in_page; - else - bytes_from_page = bytes_left; - - if (pcbRead) - *pcbRead = 0; - - while (bytes_left) - { - LPBYTE readPtr; - BOOL eof = FALSE; - MappedPage *page = BIGBLOCKFILE_GetMappedView(This, page_index); - - if (!page || !page->lpBytes) - { - rc = STG_E_READFAULT; - break; - } - - TRACE("page %i, offset %u, bytes_from_page %u, bytes_left %u\n", - page->page_index, offset_in_page, bytes_from_page, bytes_left); - - if (page->mapped_bytes < bytes_from_page) - { - eof = TRUE; - bytes_from_page = page->mapped_bytes; - } - - readPtr = (BYTE*)page->lpBytes + offset_in_page; - memcpy(writePtr,readPtr,bytes_from_page); - BIGBLOCKFILE_ReleaseMappedPage(This, page); - - if (pcbRead) - *pcbRead += bytes_from_page; - bytes_left -= bytes_from_page; - - if (bytes_left && !eof) - { - writePtr = (LPBYTE)writePtr + bytes_from_page; - page_index ++; - offset_in_page = 0; - if (bytes_left > PAGE_SIZE) - bytes_from_page = PAGE_SIZE; - else - bytes_from_page = bytes_left; - } - if (eof) - { - rc = STG_E_READFAULT; - break; - } - } - - TRACE("finished\n"); - return rc; -} - -/****************************************************************************** - * This method is part of the ILockBytes interface. - * - * It writes the specified bytes at the specified offset. - * position. If the file is too small, it will be resized. - * - * See the documentation of ILockBytes for more info. - */ -static HRESULT ImplBIGBLOCKFILE_WriteAt( - BigBlockFile* const This, - ULARGE_INTEGER ulOffset, /* [in] */ - const void* pv, /* [size_is][in] */ - ULONG cb, /* [in] */ - ULONG* pcbWritten) /* [out] */ -{ - ULONG size_needed = ulOffset.u.LowPart + cb; - ULONG first_page = ulOffset.u.LowPart / PAGE_SIZE; - ULONG offset_in_page = ulOffset.u.LowPart % PAGE_SIZE; - ULONG bytes_left = cb; - ULONG page_index = first_page; - ULONG bytes_to_page; - LPCVOID readPtr = pv; - - HRESULT rc = S_OK; - - TRACE("(%p)-> %i %p %i %p\n",This, ulOffset.u.LowPart, pv, cb, pcbWritten); - - /* verify a sane environment */ - if (!This) return E_FAIL; - - if (This->flProtect != PAGE_READWRITE) - return STG_E_ACCESSDENIED; - - if (size_needed > This->filesize.u.LowPart) - { - ULARGE_INTEGER newSize; - newSize.u.HighPart = 0; - newSize.u.LowPart = size_needed; - BIGBLOCKFILE_SetSize(This, newSize); - } - - if (offset_in_page + bytes_left > PAGE_SIZE) - bytes_to_page = PAGE_SIZE - offset_in_page; - else - bytes_to_page = bytes_left; - - if (pcbWritten) - *pcbWritten = 0; - - while (bytes_left) - { - LPBYTE writePtr; - MappedPage *page = BIGBLOCKFILE_GetMappedView(This, page_index); - - TRACE("page %i, offset %u, bytes_to_page %u, bytes_left %u\n", - page ? page->page_index : 0, offset_in_page, bytes_to_page, bytes_left); - - if (!page) - { - ERR("Unable to get a page to write. This should never happen\n"); - rc = E_FAIL; - break; - } - - if (page->mapped_bytes < bytes_to_page) - { - ERR("Not enough bytes mapped to the page. This should never happen\n"); - rc = E_FAIL; - break; - } - - writePtr = (BYTE*)page->lpBytes + offset_in_page; - memcpy(writePtr,readPtr,bytes_to_page); - BIGBLOCKFILE_ReleaseMappedPage(This, page); - - if (pcbWritten) - *pcbWritten += bytes_to_page; - bytes_left -= bytes_to_page; - - if (bytes_left) - { - readPtr = (const BYTE *)readPtr + bytes_to_page; - page_index ++; - offset_in_page = 0; - if (bytes_left > PAGE_SIZE) - bytes_to_page = PAGE_SIZE; - else - bytes_to_page = bytes_left; - } - } - - return rc; -} - -/****************************************************************************** - * BIGBLOCKFILE_Construct - * - * Construct a big block file. Create the file mapping object. - * Create the read only mapped pages list, the writable mapped page list - * and the blocks in use list. - */ -BigBlockFile *BIGBLOCKFILE_Construct(HANDLE hFile, ILockBytes* pLkByt, DWORD openFlags, - BOOL fileBased) -{ - BigBlockFile *This; - - This = HeapAlloc(GetProcessHeap(), 0, sizeof(BigBlockFile)); - - if (This == NULL) - return NULL; - - This->fileBased = fileBased; - This->flProtect = BIGBLOCKFILE_GetProtectMode(openFlags); - - This->maplist = NULL; - This->victimhead = NULL; - This->victimtail = NULL; - This->num_victim_pages = 0; - - if (This->fileBased) - { - if (!BIGBLOCKFILE_FileInit(This, hFile)) - { - HeapFree(GetProcessHeap(), 0, This); - return NULL; - } - } - else - { - if (!BIGBLOCKFILE_LockBytesInit(This, pLkByt)) - { - HeapFree(GetProcessHeap(), 0, This); - return NULL; - } - } - - return This; -} - -/****************************************************************************** - * BIGBLOCKFILE_Destructor - * - * Destructor. Clean up, free memory. - */ -void BIGBLOCKFILE_Destructor(BigBlockFile *This) -{ - BIGBLOCKFILE_FreeAllMappedPages(This); - - if (This->fileBased) - { - CloseHandle(This->hfilemap); - CloseHandle(This->hfile); - } - else - { - ILockBytes_Release(This->pLkbyt); - } - - HeapFree(GetProcessHeap(), 0, This); -} - -/****************************************************************************** - * BIGBLOCKFILE_ReadAt - */ -HRESULT BIGBLOCKFILE_ReadAt(BigBlockFile *This, ULARGE_INTEGER offset, - void* buffer, ULONG size, ULONG* bytesRead) -{ - if (This->fileBased) - return ImplBIGBLOCKFILE_ReadAt(This,offset,buffer,size,bytesRead); - else - return ILockBytes_ReadAt(This->pLkbyt,offset,buffer,size,bytesRead); -} - -/****************************************************************************** - * BIGBLOCKFILE_WriteAt - */ -HRESULT BIGBLOCKFILE_WriteAt(BigBlockFile *This, ULARGE_INTEGER offset, - const void* buffer, ULONG size, ULONG* bytesRead) -{ - if (This->fileBased) - return ImplBIGBLOCKFILE_WriteAt(This,offset,buffer,size,bytesRead); - else - return ILockBytes_WriteAt(This->pLkbyt,offset,buffer,size,bytesRead); -} - -/****************************************************************************** - * BIGBLOCKFILE_SetSize - * - * Sets the size of the file. - * - */ -HRESULT BIGBLOCKFILE_SetSize(BigBlockFile *This, ULARGE_INTEGER newSize) -{ - HRESULT hr = S_OK; - LARGE_INTEGER newpos; - - if (!This->fileBased) - return ILockBytes_SetSize(This->pLkbyt, newSize); - - if (This->filesize.u.LowPart == newSize.u.LowPart) - return hr; - - TRACE("from %u to %u\n", This->filesize.u.LowPart, newSize.u.LowPart); - - /* - * Unmap all views, must be done before call to SetEndFile. - * - * Just ditch the victim list because there is no guarantee we will need them - * and it is not worth the performance hit to unmap and remap them all. - */ - BIGBLOCKFILE_DeleteList(This, This->victimhead); - This->victimhead = NULL; - This->victimtail = NULL; - This->num_victim_pages = 0; - - BIGBLOCKFILE_UnmapAllMappedPages(This); - - newpos.QuadPart = newSize.QuadPart; - if (SetFilePointerEx(This->hfile, newpos, NULL, FILE_BEGIN)) - { - if( This->hfilemap ) CloseHandle(This->hfilemap); - - SetEndOfFile(This->hfile); - - /* re-create the file mapping object */ - This->hfilemap = CreateFileMappingA(This->hfile, NULL, This->flProtect, - 0, 0, NULL); - } - - This->filesize = newSize; - BIGBLOCKFILE_RemapAllMappedPages(This); - return hr; -} - -/****************************************************************************** - * BIGBLOCKFILE_GetSize - * - * Gets the size of the file. - * - */ -static HRESULT BIGBLOCKFILE_GetSize(BigBlockFile *This, ULARGE_INTEGER *size) -{ - HRESULT hr = S_OK; - if(This->fileBased) - *size = This->filesize; - else - { - STATSTG stat; - hr = ILockBytes_Stat(This->pLkbyt, &stat, STATFLAG_NONAME); - if(SUCCEEDED(hr)) *size = stat.cbSize; - } - return hr; -} - -/****************************************************************************** - * BIGBLOCKFILE_Expand - * - * Grows the file to the specified size if necessary. - */ -HRESULT BIGBLOCKFILE_Expand(BigBlockFile *This, ULARGE_INTEGER newSize) -{ - ULARGE_INTEGER size; - HRESULT hr; - - hr = BIGBLOCKFILE_GetSize(This, &size); - if(FAILED(hr)) return hr; - - if (newSize.QuadPart > size.QuadPart) - hr = BIGBLOCKFILE_SetSize(This, newSize); - return hr; -} diff --git a/reactos/dll/win32/ole32/stg_stream.c b/reactos/dll/win32/ole32/stg_stream.c index bfecbc72bd1..1fdb963f56b 100644 --- a/reactos/dll/win32/ole32/stg_stream.c +++ b/reactos/dll/win32/ole32/stg_stream.c @@ -517,7 +517,7 @@ static HRESULT WINAPI StgStreamImpl_Commit( return STG_E_REVERTED; } - return S_OK; + return StorageBaseImpl_Flush(This->parentStorage); } /*** diff --git a/reactos/dll/win32/ole32/storage32.c b/reactos/dll/win32/ole32/storage32.c index 98df144976c..185b8b0d764 100644 --- a/reactos/dll/win32/ole32/storage32.c +++ b/reactos/dll/win32/ole32/storage32.c @@ -92,6 +92,7 @@ static StorageInternalImpl* StorageInternalImpl_Construct(StorageBaseImpl* paren DWORD openFlags, DirRef storageDirEntry); static void StorageImpl_Destroy(StorageBaseImpl* iface); static void StorageImpl_Invalidate(StorageBaseImpl* iface); +static HRESULT StorageImpl_Flush(StorageBaseImpl* iface); static BOOL StorageImpl_ReadBigBlock(StorageImpl* This, ULONG blockIndex, void* buffer); static BOOL StorageImpl_WriteBigBlock(StorageImpl* This, ULONG blockIndex, const void* buffer); static void StorageImpl_SetNextBlockInChain(StorageImpl* This, ULONG blockIndex, ULONG nextBlock); @@ -327,7 +328,7 @@ static HRESULT StorageImpl_ReadAt(StorageImpl* This, ULONG size, ULONG* bytesRead) { - return BIGBLOCKFILE_ReadAt(This->bigBlockFile,offset,buffer,size,bytesRead); + return ILockBytes_ReadAt(This->lockBytes,offset,buffer,size,bytesRead); } static HRESULT StorageImpl_WriteAt(StorageImpl* This, @@ -336,7 +337,7 @@ static HRESULT StorageImpl_WriteAt(StorageImpl* This, const ULONG size, ULONG* bytesWritten) { - return BIGBLOCKFILE_WriteAt(This->bigBlockFile,offset,buffer,size,bytesWritten); + return ILockBytes_WriteAt(This->lockBytes,offset,buffer,size,bytesWritten); } /************************************************************************ @@ -1306,6 +1307,8 @@ static HRESULT StorageImpl_CreateDirEntry( entryIndex, emptyData); } + + StorageImpl_SaveFileHeader(storage); } UpdateRawDirEntry(currentData, newData); @@ -1813,16 +1816,15 @@ static HRESULT WINAPI StorageBaseImpl_MoveElementTo( * Ensures that any changes made to a storage object open in transacted mode * are reflected in the parent storage * - * NOTES - * Wine doesn't implement transacted mode, which seems to be a basic - * optimization, so we can ignore this stub for now. + * In a non-transacted mode, this ensures all cached writes are completed. */ static HRESULT WINAPI StorageImpl_Commit( IStorage* iface, DWORD grfCommitFlags)/* [in] */ { - FIXME("(%p %d): stub\n", iface, grfCommitFlags); - return S_OK; + StorageBaseImpl* const base=(StorageBaseImpl*)iface; + TRACE("(%p %d)\n", iface, grfCommitFlags); + return StorageBaseImpl_Flush(base); } /************************************************************************* @@ -2581,6 +2583,19 @@ static HRESULT StorageImpl_StreamLink(StorageBaseImpl *base, DirRef dst, return hr; } +static HRESULT StorageImpl_GetFilename(StorageBaseImpl* iface, LPWSTR *result) +{ + StorageImpl *This = (StorageImpl*) iface; + STATSTG statstg; + HRESULT hr; + + hr = ILockBytes_Stat(This->lockBytes, &statstg, 0); + + *result = statstg.pwcsName; + + return hr; +} + /* * Virtual function table for the IStorage32Impl class. */ @@ -2610,6 +2625,8 @@ static const StorageBaseImplVtbl StorageImpl_BaseVtbl = { StorageImpl_Destroy, StorageImpl_Invalidate, + StorageImpl_Flush, + StorageImpl_GetFilename, StorageImpl_CreateDirEntry, StorageImpl_BaseWriteDirEntry, StorageImpl_BaseReadDirEntry, @@ -2634,7 +2651,6 @@ static HRESULT StorageImpl_Construct( HRESULT hr = S_OK; DirEntry currentEntry; DirRef currentEntryRef; - WCHAR fullpath[MAX_PATH]; if ( FAILED( validateSTGM(openFlags) )) return STG_E_INVALIDFLAG; @@ -2658,40 +2674,22 @@ static HRESULT StorageImpl_Construct( This->base.reverted = 0; - This->hFile = hFile; - - if(pwcsName) { - if (!GetFullPathNameW(pwcsName, MAX_PATH, fullpath, NULL)) - { - lstrcpynW(fullpath, pwcsName, MAX_PATH); - } - This->pwcsName = HeapAlloc(GetProcessHeap(), 0, - (lstrlenW(fullpath)+1)*sizeof(WCHAR)); - if (!This->pwcsName) - { - hr = STG_E_INSUFFICIENTMEMORY; - goto end; - } - strcpyW(This->pwcsName, fullpath); - This->base.filename = This->pwcsName; - } - /* * Initialize the big block cache. */ This->bigBlockSize = sector_size; This->smallBlockSize = DEF_SMALL_BLOCK_SIZE; - This->bigBlockFile = BIGBLOCKFILE_Construct(hFile, - pLkbyt, - openFlags, - fileBased); - - if (This->bigBlockFile == 0) + if (hFile) + hr = FileLockBytesImpl_Construct(hFile, openFlags, pwcsName, &This->lockBytes); + else { - hr = E_FAIL; - goto end; + This->lockBytes = pLkbyt; + ILockBytes_AddRef(pLkbyt); } + if (FAILED(hr)) + goto end; + if (create) { ULARGE_INTEGER size; @@ -2727,7 +2725,7 @@ static HRESULT StorageImpl_Construct( */ size.u.HighPart = 0; size.u.LowPart = This->bigBlockSize * 3; - BIGBLOCKFILE_SetSize(This->bigBlockFile, size); + ILockBytes_SetSize(This->lockBytes, size); /* * Initialize the big block depot @@ -2871,9 +2869,9 @@ static void StorageImpl_Destroy(StorageBaseImpl* iface) int i; TRACE("(%p)\n", This); - StorageImpl_Invalidate(iface); + StorageImpl_Flush(iface); - HeapFree(GetProcessHeap(), 0, This->pwcsName); + StorageImpl_Invalidate(iface); BlockChainStream_Destroy(This->smallBlockRootChain); BlockChainStream_Destroy(This->rootBlockChain); @@ -2882,11 +2880,18 @@ static void StorageImpl_Destroy(StorageBaseImpl* iface) for (i=0; iblockChainCache[i]); - if (This->bigBlockFile) - BIGBLOCKFILE_Destructor(This->bigBlockFile); + if (This->lockBytes) + ILockBytes_Release(This->lockBytes); HeapFree(GetProcessHeap(), 0, This); } +static HRESULT StorageImpl_Flush(StorageBaseImpl* iface) +{ + StorageImpl *This = (StorageImpl*) iface; + + return ILockBytes_Flush(This->lockBytes); +} + /****************************************************************************** * Storage32Impl_GetNextFreeBigBlock * @@ -2906,6 +2911,7 @@ static ULONG StorageImpl_GetNextFreeBigBlock( int depotIndex = 0; ULONG freeBlock = BLOCK_UNUSED; ULARGE_INTEGER neededSize; + STATSTG statstg; depotIndex = This->prevFreeBlock / blocksPerDepot; depotBlockOffset = (This->prevFreeBlock % blocksPerDepot) * sizeof(ULONG); @@ -3020,7 +3026,11 @@ static ULONG StorageImpl_GetNextFreeBigBlock( * make sure that the block physically exists before using it */ neededSize.QuadPart = StorageImpl_GetBigBlockOffset(This, freeBlock)+This->bigBlockSize; - BIGBLOCKFILE_Expand(This->bigBlockFile, neededSize); + + ILockBytes_Stat(This->lockBytes, &statstg, STATFLAG_NONAME); + + if (neededSize.QuadPart > statstg.cbSize.QuadPart) + ILockBytes_SetSize(This->lockBytes, neededSize); This->prevFreeBlock = freeBlock; @@ -3465,6 +3475,7 @@ static void StorageImpl_SaveFileHeader( HRESULT hr; ULARGE_INTEGER offset; DWORD bytes_read, bytes_written; + DWORD major_version, dirsectorcount; /* * Get a pointer to the big block of data containing the header. @@ -3475,6 +3486,16 @@ static void StorageImpl_SaveFileHeader( if (SUCCEEDED(hr) && bytes_read != HEADER_SIZE) hr = STG_E_FILENOTFOUND; + if (This->bigBlockSizeBits == 0x9) + major_version = 3; + else if (This->bigBlockSizeBits == 0xc) + major_version = 4; + else + { + ERR("invalid big block shift 0x%x\n", This->bigBlockSizeBits); + major_version = 4; + } + /* * If the block read failed, the file is probably new. */ @@ -3489,18 +3510,26 @@ static void StorageImpl_SaveFileHeader( * Initialize the magic number. */ memcpy(headerBigBlock, STORAGE_magic, sizeof(STORAGE_magic)); - - /* - * And a bunch of things we don't know what they mean - */ - StorageUtl_WriteWord(headerBigBlock, 0x18, 0x3b); - StorageUtl_WriteWord(headerBigBlock, 0x1a, 0x3); - StorageUtl_WriteWord(headerBigBlock, 0x1c, (WORD)-2); } /* * Write the information to the header. */ + StorageUtl_WriteWord( + headerBigBlock, + OFFSET_MINORVERSION, + 0x3e); + + StorageUtl_WriteWord( + headerBigBlock, + OFFSET_MAJORVERSION, + major_version); + + StorageUtl_WriteWord( + headerBigBlock, + OFFSET_BYTEORDERMARKER, + (WORD)-2); + StorageUtl_WriteWord( headerBigBlock, OFFSET_BIGBLOCKSIZEBITS, @@ -3511,6 +3540,23 @@ static void StorageImpl_SaveFileHeader( OFFSET_SMALLBLOCKSIZEBITS, This->smallBlockSizeBits); + if (major_version >= 4) + { + if (This->rootBlockChain) + dirsectorcount = BlockChainStream_GetCount(This->rootBlockChain); + else + /* This file is being created, and it will start out with one block. */ + dirsectorcount = 1; + } + else + /* This field must be 0 in versions older than 4 */ + dirsectorcount = 0; + + StorageUtl_WriteDWord( + headerBigBlock, + OFFSET_DIRSECTORCOUNT, + dirsectorcount); + StorageUtl_WriteDWord( headerBigBlock, OFFSET_BBDEPOTCOUNT, @@ -4489,9 +4535,12 @@ static HRESULT WINAPI TransactedSnapshotImpl_Commit( else dir_root_ref = This->entries[root_entry->data.dirRootEntry].newTransactedParentEntry; + hr = StorageBaseImpl_Flush(This->transactedParent); + /* Update the storage to use the new data in one step. */ - hr = StorageBaseImpl_ReadDirEntry(This->transactedParent, - root_entry->transactedParentEntry, &data); + if (SUCCEEDED(hr)) + hr = StorageBaseImpl_ReadDirEntry(This->transactedParent, + root_entry->transactedParentEntry, &data); if (SUCCEEDED(hr)) { @@ -4504,6 +4553,11 @@ static HRESULT WINAPI TransactedSnapshotImpl_Commit( root_entry->transactedParentEntry, &data); } + /* Try to flush after updating the root storage, but if the flush fails, keep + * going, on the theory that it'll either succeed later or the subsequent + * writes will fail. */ + StorageBaseImpl_Flush(This->transactedParent); + if (SUCCEEDED(hr)) { /* Destroy the old now-orphaned data. */ @@ -4543,6 +4597,9 @@ static HRESULT WINAPI TransactedSnapshotImpl_Commit( TransactedSnapshotImpl_DestroyTemporaryCopy(This, DIRENTRY_NULL); } + if (SUCCEEDED(hr)) + hr = StorageBaseImpl_Flush(This->transactedParent); + return hr; } @@ -4606,6 +4663,19 @@ static void TransactedSnapshotImpl_Destroy( StorageBaseImpl *iface) HeapFree(GetProcessHeap(), 0, This); } +static HRESULT TransactedSnapshotImpl_Flush(StorageBaseImpl* iface) +{ + /* We only need to flush when committing. */ + return S_OK; +} + +static HRESULT TransactedSnapshotImpl_GetFilename(StorageBaseImpl* iface, LPWSTR *result) +{ + TransactedSnapshotImpl* This = (TransactedSnapshotImpl*) iface; + + return StorageBaseImpl_GetFilename(This->transactedParent, result); +} + static HRESULT TransactedSnapshotImpl_CreateDirEntry(StorageBaseImpl *base, const DirEntry *newData, DirRef *index) { @@ -4853,6 +4923,8 @@ static const StorageBaseImplVtbl TransactedSnapshotImpl_BaseVtbl = { TransactedSnapshotImpl_Destroy, TransactedSnapshotImpl_Invalidate, + TransactedSnapshotImpl_Flush, + TransactedSnapshotImpl_GetFilename, TransactedSnapshotImpl_CreateDirEntry, TransactedSnapshotImpl_WriteDirEntry, TransactedSnapshotImpl_ReadDirEntry, @@ -4886,8 +4958,6 @@ static HRESULT TransactedSnapshotImpl_Construct(StorageBaseImpl *parentStorage, (*result)->base.openFlags = parentStorage->openFlags; - (*result)->base.filename = parentStorage->filename; - /* Create a new temporary storage to act as the scratch file. */ hr = StgCreateDocfile(NULL, STGM_READWRITE|STGM_SHARE_EXCLUSIVE|STGM_CREATE, 0, (IStorage**)&(*result)->scratch); @@ -5000,6 +5070,20 @@ static void StorageInternalImpl_Destroy( StorageBaseImpl *iface) HeapFree(GetProcessHeap(), 0, This); } +static HRESULT StorageInternalImpl_Flush(StorageBaseImpl* iface) +{ + StorageInternalImpl* This = (StorageInternalImpl*) iface; + + return StorageBaseImpl_Flush(This->parentStorage); +} + +static HRESULT StorageInternalImpl_GetFilename(StorageBaseImpl* iface, LPWSTR *result) +{ + StorageInternalImpl* This = (StorageInternalImpl*) iface; + + return StorageBaseImpl_GetFilename(This->parentStorage, result); +} + static HRESULT StorageInternalImpl_CreateDirEntry(StorageBaseImpl *base, const DirEntry *newData, DirRef *index) { @@ -5081,8 +5165,9 @@ static HRESULT WINAPI StorageInternalImpl_Commit( IStorage* iface, DWORD grfCommitFlags) /* [in] */ { - FIXME("(%p,%x): stub\n", iface, grfCommitFlags); - return S_OK; + StorageBaseImpl* base = (StorageBaseImpl*) iface; + TRACE("(%p,%x)\n", iface, grfCommitFlags); + return StorageBaseImpl_Flush(base); } /****************************************************************************** @@ -5425,6 +5510,8 @@ static const StorageBaseImplVtbl StorageInternalImpl_BaseVtbl = { StorageInternalImpl_Destroy, StorageInternalImpl_Invalidate, + StorageInternalImpl_Flush, + StorageInternalImpl_GetFilename, StorageInternalImpl_CreateDirEntry, StorageInternalImpl_WriteDirEntry, StorageInternalImpl_ReadDirEntry, @@ -5565,33 +5652,26 @@ void StorageUtl_CopyDirEntryToSTATSTG( const DirEntry* source, int statFlags) { - LPCWSTR entryName; - - if (source->stgType == STGTY_ROOT) - { - /* replace the name of root entry (often "Root Entry") by the file name */ - entryName = storage->filename; - } - else - { - entryName = source->name; - } - /* * The copy of the string occurs only when the flag is not set */ - if( ((statFlags & STATFLAG_NONAME) != 0) || - (entryName == NULL) || - (entryName[0] == 0) ) + if (!(statFlags & STATFLAG_NONAME) && source->stgType == STGTY_ROOT) + { + /* Use the filename for the root storage. */ + destination->pwcsName = 0; + StorageBaseImpl_GetFilename(storage, &destination->pwcsName); + } + else if( ((statFlags & STATFLAG_NONAME) != 0) || + (source->name[0] == 0) ) { destination->pwcsName = 0; } else { destination->pwcsName = - CoTaskMemAlloc((lstrlenW(entryName)+1)*sizeof(WCHAR)); + CoTaskMemAlloc((lstrlenW(source->name)+1)*sizeof(WCHAR)); - strcpyW(destination->pwcsName, entryName); + strcpyW(destination->pwcsName, source->name); } switch (source->stgType) diff --git a/reactos/dll/win32/ole32/storage32.h b/reactos/dll/win32/ole32/storage32.h index 19f3f2d682c..9e7fe103fe9 100644 --- a/reactos/dll/win32/ole32/storage32.h +++ b/reactos/dll/win32/ole32/storage32.h @@ -11,6 +11,7 @@ * * Copyright 1998,1999 Francis Beaudet * Copyright 1998,1999 Thuy Nguyen + * Copyright 2010 Vincent Povirk for CodeWeavers * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -42,8 +43,12 @@ /* * Definitions for the file format offsets. */ +static const ULONG OFFSET_MINORVERSION = 0x00000018; +static const ULONG OFFSET_MAJORVERSION = 0x0000001a; +static const ULONG OFFSET_BYTEORDERMARKER = 0x0000001c; static const ULONG OFFSET_BIGBLOCKSIZEBITS = 0x0000001e; static const ULONG OFFSET_SMALLBLOCKSIZEBITS = 0x00000020; +static const ULONG OFFSET_DIRSECTORCOUNT = 0x00000028; static const ULONG OFFSET_BBDEPOTCOUNT = 0x0000002C; static const ULONG OFFSET_ROOTSTARTBLOCK = 0x00000030; static const ULONG OFFSET_SMALLBLOCKLIMIT = 0x00000038; @@ -149,31 +154,7 @@ struct DirEntry ULARGE_INTEGER size; }; -/************************************************************************* - * Big Block File support - * - * The big block file is an abstraction of a flat file separated in - * same sized blocks. The implementation for the methods described in - * this section appear in stg_bigblockfile.c - */ - -typedef struct BigBlockFile BigBlockFile,*LPBIGBLOCKFILE; - -/* - * Declaration of the functions used to manipulate the BigBlockFile - * data structure. - */ -BigBlockFile* BIGBLOCKFILE_Construct(HANDLE hFile, - ILockBytes* pLkByt, - DWORD openFlags, - BOOL fileBased); -void BIGBLOCKFILE_Destructor(LPBIGBLOCKFILE This); -HRESULT BIGBLOCKFILE_Expand(LPBIGBLOCKFILE This, ULARGE_INTEGER newSize); -HRESULT BIGBLOCKFILE_SetSize(LPBIGBLOCKFILE This, ULARGE_INTEGER newSize); -HRESULT BIGBLOCKFILE_ReadAt(LPBIGBLOCKFILE This, ULARGE_INTEGER offset, - void* buffer, ULONG size, ULONG* bytesRead); -HRESULT BIGBLOCKFILE_WriteAt(LPBIGBLOCKFILE This, ULARGE_INTEGER offset, - const void* buffer, ULONG size, ULONG* bytesRead); +HRESULT FileLockBytesImpl_Construct(HANDLE hFile, DWORD openFlags, LPCWSTR pwcsName, ILockBytes **pLockBytes); /************************************************************************* * Ole Convert support @@ -240,9 +221,6 @@ struct StorageBaseImpl */ DWORD stateBits; - /* If set, this overrides the root storage name returned by IStorage_Stat */ - LPCWSTR filename; - BOOL create; /* Was the storage created or opened. The behaviour of STGM_SIMPLE depends on this */ /* @@ -256,6 +234,8 @@ struct StorageBaseImpl struct StorageBaseImplVtbl { void (*Destroy)(StorageBaseImpl*); void (*Invalidate)(StorageBaseImpl*); + HRESULT (*Flush)(StorageBaseImpl*); + HRESULT (*GetFilename)(StorageBaseImpl*,LPWSTR*); HRESULT (*CreateDirEntry)(StorageBaseImpl*,const DirEntry*,DirRef*); HRESULT (*WriteDirEntry)(StorageBaseImpl*,DirRef,const DirEntry*); HRESULT (*ReadDirEntry)(StorageBaseImpl*,DirRef,DirEntry*); @@ -276,6 +256,16 @@ static inline void StorageBaseImpl_Invalidate(StorageBaseImpl *This) This->baseVtbl->Invalidate(This); } +static inline HRESULT StorageBaseImpl_Flush(StorageBaseImpl *This) +{ + return This->baseVtbl->Flush(This); +} + +static inline HRESULT StorageBaseImpl_GetFilename(StorageBaseImpl *This, LPWSTR *result) +{ + return This->baseVtbl->GetFilename(This, result); +} + static inline HRESULT StorageBaseImpl_CreateDirEntry(StorageBaseImpl *This, const DirEntry *newData, DirRef *index) { @@ -351,13 +341,6 @@ struct StorageImpl { struct StorageBaseImpl base; - /* - * The following data members are specific to the Storage32Impl - * class - */ - HANDLE hFile; /* Physical support for the Docfile */ - LPOLESTR pwcsName; /* Full path of the document file */ - /* * File header */ @@ -391,10 +374,7 @@ struct StorageImpl BlockChainStream* blockChainCache[BLOCKCHAIN_CACHE_SIZE]; UINT blockChainToEvict; - /* - * Pointer to the big block file abstraction - */ - BigBlockFile* bigBlockFile; + ILockBytes* lockBytes; }; HRESULT StorageImpl_ReadRawDirEntry( diff --git a/reactos/dll/win32/oleaut32/oleaut32_Bg.rc b/reactos/dll/win32/oleaut32/oleaut32_Bg.rc index 7f0180b2b09..70b8debe73c 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_Bg.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_Bg.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "Èñòèíà" IDS_FALSE "Ëúæà" diff --git a/reactos/dll/win32/ole32/version.rc b/reactos/dll/win32/oleaut32/oleaut32_Cy.rc similarity index 73% rename from reactos/dll/win32/ole32/version.rc rename to reactos/dll/win32/oleaut32/oleaut32_Cy.rc index fb85adeba05..af9428059e0 100644 --- a/reactos/dll/win32/ole32/version.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_Cy.rc @@ -1,7 +1,8 @@ /* - * version information for ole32.dll + * Cefnogaeth iaith Cymraeg + * Welsh language support * - * Copyright (C) 2003 John K. Hohm + * Copyright 2010 Ken Sharp * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -18,7 +19,16 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#define WINE_OLESELFREGISTER -#define WINE_FILENAME_STR "ole32.dll" +#include "resource.h" -#include +LANGUAGE LANG_WELSH, SUBLANG_DEFAULT + +STRINGTABLE +{ + IDS_TRUE "Gwir" + IDS_FALSE "Ffug" + IDS_YES "Ydw" + IDS_NO "Dim" + IDS_ON "Ar" + IDS_OFF "Off" +} diff --git a/reactos/dll/win32/oleaut32/oleaut32_Cz.rc b/reactos/dll/win32/oleaut32/oleaut32_Cz.rc index 48be0b70a82..680143b3127 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_Cz.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_Cz.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "Pravda" IDS_FALSE "Nepravda" diff --git a/reactos/dll/win32/oleaut32/oleaut32_Da.rc b/reactos/dll/win32/oleaut32/oleaut32_Da.rc index e28922fa1bf..1f54db37f0a 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_Da.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_Da.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_DANISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "Sand" IDS_FALSE "Falsk" diff --git a/reactos/dll/win32/oleaut32/oleaut32_De.rc b/reactos/dll/win32/oleaut32/oleaut32_De.rc index 1dbee3ee8c7..61a3c260e41 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_De.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_De.rc @@ -24,7 +24,7 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "Wahr" IDS_FALSE "Falsch" diff --git a/reactos/dll/win32/oleaut32/oleaut32_El.rc b/reactos/dll/win32/oleaut32/oleaut32_El.rc index a0337950262..73745041fac 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_El.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_El.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_GREEK, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "ÁëçèÝò" IDS_FALSE "ØåõäÝò" diff --git a/reactos/dll/win32/oleaut32/oleaut32_En.rc b/reactos/dll/win32/oleaut32/oleaut32_En.rc index 6a98642e7ca..f35200465ce 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_En.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_En.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "True" IDS_FALSE "False" diff --git a/reactos/dll/win32/oleaut32/oleaut32_Es.rc b/reactos/dll/win32/oleaut32/oleaut32_Es.rc index 5c187db364f..eeb3d9080a6 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_Es.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_Es.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "Verdadero" IDS_FALSE "Falso" diff --git a/reactos/dll/win32/oleaut32/oleaut32_Fr.rc b/reactos/dll/win32/oleaut32/oleaut32_Fr.rc index d6136ef8cda..1583bd1d3c2 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_Fr.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_Fr.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "Vrai" IDS_FALSE "Faux" diff --git a/reactos/dll/win32/oleaut32/oleaut32_Hu.rc b/reactos/dll/win32/oleaut32/oleaut32_Hu.rc index ec3b9827e3f..5705441b74a 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_Hu.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_Hu.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "Igaz" IDS_FALSE "Hamis" diff --git a/reactos/dll/win32/oleaut32/oleaut32_It.rc b/reactos/dll/win32/oleaut32/oleaut32_It.rc index 69fa31a34a7..561675c43af 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_It.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_It.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "Vero" IDS_FALSE "Falso" diff --git a/reactos/dll/win32/oleaut32/oleaut32_Ko.rc b/reactos/dll/win32/oleaut32/oleaut32_Ko.rc index 541380543a5..a91be617321 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_Ko.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_Ko.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "Áø½Ç" IDS_FALSE "°ÅÁþ" diff --git a/reactos/dll/win32/oleaut32/oleaut32_Lt.rc b/reactos/dll/win32/oleaut32/oleaut32_Lt.rc index c568d93cb78..1eca35f3734 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_Lt.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_Lt.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "Tiesa" IDS_FALSE "Netiesa" diff --git a/reactos/dll/win32/oleaut32/oleaut32_Nl.rc b/reactos/dll/win32/oleaut32/oleaut32_Nl.rc index e2ae3dea380..513ba61cb6c 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_Nl.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_Nl.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "Waar" IDS_FALSE "Onwaar" diff --git a/reactos/dll/win32/oleaut32/oleaut32_No.rc b/reactos/dll/win32/oleaut32/oleaut32_No.rc index 1f99f7bbe56..f1b6d636506 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_No.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_No.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "Sann" IDS_FALSE "Usann" diff --git a/reactos/dll/win32/oleaut32/oleaut32_Pl.rc b/reactos/dll/win32/oleaut32/oleaut32_Pl.rc index 7d34796fd0b..f80bc80a1fb 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_Pl.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_Pl.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "Prawda" IDS_FALSE "Fa³sz" diff --git a/reactos/dll/win32/oleaut32/oleaut32_Pt.rc b/reactos/dll/win32/oleaut32/oleaut32_Pt.rc index de008bbd0f9..484990de8ad 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_Pt.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_Pt.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "Verdadeiro" IDS_FALSE "Falso" diff --git a/reactos/dll/win32/oleaut32/oleaut32_Ro.rc b/reactos/dll/win32/oleaut32/oleaut32_Ro.rc index 3a37a69ddef..1b80fa2fe2e 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_Ro.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_Ro.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL #pragma code_page(65001) -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "Adevărat" IDS_FALSE "Fals" diff --git a/reactos/dll/win32/oleaut32/oleaut32_Ru.rc b/reactos/dll/win32/oleaut32/oleaut32_Ru.rc index e7c31073e33..1545bffd07b 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_Ru.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_Ru.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "Правда" IDS_FALSE "Ложь" diff --git a/reactos/dll/win32/oleaut32/oleaut32_Si.rc b/reactos/dll/win32/oleaut32/oleaut32_Si.rc index 32a80adefb6..bf4e9953920 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_Si.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_Si.rc @@ -24,7 +24,7 @@ LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "Da" IDS_FALSE "Ne" diff --git a/reactos/dll/win32/oleaut32/oleaut32_Sv.rc b/reactos/dll/win32/oleaut32/oleaut32_Sv.rc index 4362a068bab..08bee95caaf 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_Sv.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_Sv.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "Sant" IDS_FALSE "Falskt" diff --git a/reactos/dll/win32/oleaut32/oleaut32_Th.rc b/reactos/dll/win32/oleaut32/oleaut32_Th.rc index 8fcf212a969..0cc3831f132 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_Th.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_Th.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_THAI, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "¨ÃÔ§" IDS_FALSE "äÁè¨ÃÔ§" diff --git a/reactos/dll/win32/oleaut32/oleaut32_Tr.rc b/reactos/dll/win32/oleaut32/oleaut32_Tr.rc index 08d841a92a4..a2dd130e30a 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_Tr.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_Tr.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "Doðru" IDS_FALSE "Yanlýþ" diff --git a/reactos/dll/win32/oleaut32/oleaut32_Uk.rc b/reactos/dll/win32/oleaut32/oleaut32_Uk.rc index d51b06eb72c..56bf3520fe0 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_Uk.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_Uk.rc @@ -27,7 +27,7 @@ LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "Істина" IDS_FALSE "Неправда" diff --git a/reactos/dll/win32/oleaut32/oleaut32_Zh.rc b/reactos/dll/win32/oleaut32/oleaut32_Zh.rc index bbb9e06433e..7257f836ed2 100644 --- a/reactos/dll/win32/oleaut32/oleaut32_Zh.rc +++ b/reactos/dll/win32/oleaut32/oleaut32_Zh.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "真" IDS_FALSE "假" @@ -37,7 +37,7 @@ STRINGTABLE DISCARDABLE LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_TRUE "真" IDS_FALSE "假" diff --git a/reactos/dll/win32/oleaut32/typelib.c b/reactos/dll/win32/oleaut32/typelib.c index 7a56e934229..7fac0398955 100644 --- a/reactos/dll/win32/oleaut32/typelib.c +++ b/reactos/dll/win32/oleaut32/typelib.c @@ -6017,12 +6017,15 @@ static HRESULT WINAPI ITypeInfo_fnInvoke( unsigned int var_index; TYPEKIND type_kind; HRESULT hres; - const TLBFuncDesc *pFuncInfo; + const TLBFuncDesc *pFuncInfo = This->funclist; TRACE("(%p)(%p,id=%d,flags=0x%08x,%p,%p,%p,%p)\n", This,pIUnk,memid,wFlags,pDispParams,pVarResult,pExcepInfo,pArgErr ); + if( pFuncInfo->funcdesc.wFuncFlags == FUNCFLAG_FRESTRICTED ) + return DISP_E_MEMBERNOTFOUND; + if (!pDispParams) { ERR("NULL pDispParams not allowed\n"); @@ -6491,7 +6494,7 @@ func_fail: WARN("Could not search inherited interface!\n"); } } - ERR("did not find member id %d, flags 0x%x!\n", memid, wFlags); + WARN("did not find member id %d, flags 0x%x!\n", memid, wFlags); return DISP_E_MEMBERNOTFOUND; } @@ -7654,9 +7657,9 @@ static HRESULT WINAPI ITypeComp_fnBind( ITypeInfoImpl *This = info_impl_from_ITypeComp(iface); const TLBFuncDesc *pFDesc; const TLBVarDesc *pVDesc; - HRESULT hr = DISP_E_MEMBERNOTFOUND; + HRESULT hr = S_OK; - TRACE("(%s, %x, 0x%x, %p, %p, %p)\n", debugstr_w(szName), lHash, wFlags, ppTInfo, pDescKind, pBindPtr); + TRACE("(%p)->(%s, %x, 0x%x, %p, %p, %p)\n", This, debugstr_w(szName), lHash, wFlags, ppTInfo, pDescKind, pBindPtr); *pDescKind = DESCKIND_NONE; pBindPtr->lpfuncdesc = NULL; @@ -7716,7 +7719,7 @@ static HRESULT WINAPI ITypeComp_fnBind( } WARN("Could not search inherited interface!\n"); } - WARN("did not find member with name %s, flags 0x%x!\n", debugstr_w(szName), wFlags); + TRACE("did not find member with name %s, flags 0x%x\n", debugstr_w(szName), wFlags); return hr; } diff --git a/reactos/dll/win32/oleaut32/typelib2.c b/reactos/dll/win32/oleaut32/typelib2.c index aa14d225798..1096ea8ada6 100644 --- a/reactos/dll/win32/oleaut32/typelib2.c +++ b/reactos/dll/win32/oleaut32/typelib2.c @@ -797,71 +797,128 @@ static int ctl2_alloc_importfile( } /**************************************************************************** - * ctl2_alloc_custdata + * ctl2_encode_variant * - * Allocates and initializes a "custom data" value in a type library. + * Encodes a variant, inline if possible or in custom data segment * * RETURNS * - * Success: The offset of the new custdata. - * Failure: - * - * -1: Out of memory. - * -2: Unable to encode VARIANT data (typically a bug). + * Success: S_OK + * Failure: Error code from winerror.h */ -static int ctl2_alloc_custdata( - ICreateTypeLib2Impl *This, /* [I] The type library in which to encode the value. */ - VARIANT *pVarVal) /* [I] The value to encode. */ +static HRESULT ctl2_encode_variant( + ICreateTypeLib2Impl *This, /* [I] The typelib to allocate data in */ + int *encoded_value, /* [O] The encoded default value or data offset */ + VARIANT *value, /* [I] Default value to be encoded */ + VARTYPE arg_type) /* [I] Argument type */ { - int offset; + VARIANT v; + HRESULT hres; + int mask = 0; + + TRACE("%p %d %d\n", This, V_VT(value), arg_type); + + if(arg_type == VT_INT) + arg_type = VT_I4; + if(arg_type == VT_UINT) + arg_type = VT_UI4; - TRACE("(%p,%p(%d))\n",This,pVarVal,V_VT(pVarVal)); + v = *value; + if(V_VT(value) != arg_type) { + hres = VariantChangeType(&v, value, 0, arg_type); + if(FAILED(hres)) + return hres; + } - switch (V_VT(pVarVal)) { + /* Check if default value can be stored in encoded_value */ + switch(arg_type) { + case VT_I4: case VT_UI4: + mask = 0x3ffffff; + if(V_UI4(&v)>0x3ffffff) + break; + case VT_I1: + case VT_UI1: + case VT_BOOL: + if(!mask) + mask = 0xff; + case VT_I2: + case VT_UI2: + if(!mask) + mask = 0xffff; + *encoded_value = (V_UI4(&v)&mask) | ((0x80+0x4*arg_type)<<24); + return S_OK; + } + + switch(arg_type) { case VT_I4: case VT_R4: + case VT_UI4: case VT_INT: case VT_UINT: case VT_HRESULT: - offset = ctl2_alloc_segment(This, MSFT_SEG_CUSTDATA, 8, 0); - if (offset == -1) return offset; + case VT_PTR: { + /* Construct the data to be allocated */ + int data[2]; + data[0] = arg_type + (V_UI4(&v)<<16); + data[1] = (V_UI4(&v)>>16) + 0x57570000; - *((unsigned short *)&This->typelib_segment_data[MSFT_SEG_CUSTDATA][offset]) = V_VT(pVarVal); - *((DWORD *)&This->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+2]) = V_UI4(pVarVal); - break; + /* Check if the data was already allocated */ + /* Currently the structures doesn't allow to do it in a nice way */ + for(*encoded_value=0; *encoded_value<=This->typelib_segdir[MSFT_SEG_CUSTDATA].length-8; *encoded_value+=4) + if(!memcmp(&This->typelib_segment_data[MSFT_SEG_CUSTDATA][*encoded_value], data, 8)) + return S_OK; + /* Allocate the data */ + *encoded_value = ctl2_alloc_segment(This, MSFT_SEG_CUSTDATA, 8, 0); + if(*encoded_value == -1) + return E_OUTOFMEMORY; + + memcpy(&This->typelib_segment_data[MSFT_SEG_CUSTDATA][*encoded_value], data, 8); + return S_OK; + } case VT_BSTR: { - /* Construct the data */ - UINT cp = CP_ACP; - int stringlen = SysStringLen(V_BSTR(pVarVal)); - int len = 0; - if (stringlen > 0) { - GetLocaleInfoA(This->typelib_header.lcid, LOCALE_IDEFAULTANSICODEPAGE | LOCALE_RETURN_NUMBER, - (LPSTR)&cp, sizeof(cp)); - len = WideCharToMultiByte(cp, 0, V_BSTR(pVarVal), SysStringLen(V_BSTR(pVarVal)), NULL, 0, NULL, NULL); - if (!len) - return -1; - } + /* Construct the data */ + int i, len = (6+SysStringLen(V_BSTR(&v))+3) & ~0x3; + char *data = HeapAlloc(GetProcessHeap(), 0, len); - offset = ctl2_alloc_segment(This, MSFT_SEG_CUSTDATA, (6 + len + 3) & ~0x3, 0); - if (offset == -1) return offset; + if(!data) + return E_OUTOFMEMORY; - *((unsigned short *)&This->typelib_segment_data[MSFT_SEG_CUSTDATA][offset]) = V_VT(pVarVal); - *((DWORD *)&This->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+2]) = (DWORD)len; - if (stringlen > 0) { - WideCharToMultiByte(cp, 0, V_BSTR(pVarVal), SysStringLen(V_BSTR(pVarVal)), - &This->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+6], len, NULL, NULL); - } - } - break; + *((unsigned short*)data) = arg_type; + *((unsigned*)(data+2)) = SysStringLen(V_BSTR(&v)); + for(i=0; itypelib_segdir[MSFT_SEG_CUSTDATA].length-len; *encoded_value+=4) + if(!memcmp(&This->typelib_segment_data[MSFT_SEG_CUSTDATA][*encoded_value], data, len)) { + HeapFree(GetProcessHeap(), 0, data); + return S_OK; + } + /* Allocate the data */ + *encoded_value = ctl2_alloc_segment(This, MSFT_SEG_CUSTDATA, len, 0); + if(*encoded_value == -1) { + HeapFree(GetProcessHeap(), 0, data); + return E_OUTOFMEMORY; + } + + memcpy(&This->typelib_segment_data[MSFT_SEG_CUSTDATA][*encoded_value], data, len); + HeapFree(GetProcessHeap(), 0, data); + return S_OK; + } default: - FIXME("Unknown variable encoding vt %d.\n", V_VT(pVarVal)); - return -2; + FIXME("Argument type not yet handled\n"); + return E_NOTIMPL; } - - return offset; } /**************************************************************************** @@ -881,11 +938,27 @@ static HRESULT ctl2_set_custdata( int *offset) /* [I/O] The list of custom data to prepend to. */ { MSFT_GuidEntry guidentry; + HRESULT status; int dataoffset; int guidoffset; int custoffset; int *custdata; + switch(V_VT(pVarVal)) + { + case VT_I4: + case VT_R4: + case VT_UI4: + case VT_INT: + case VT_UINT: + case VT_HRESULT: + case VT_BSTR: + /* empty */ + break; + default: + return DISP_E_BADVARTYPE; + } + guidentry.guid = *guid; guidentry.hreftype = -1; @@ -893,9 +966,10 @@ static HRESULT ctl2_set_custdata( guidoffset = ctl2_alloc_guid(This, &guidentry); if (guidoffset == -1) return E_OUTOFMEMORY; - dataoffset = ctl2_alloc_custdata(This, pVarVal); - if (dataoffset == -1) return E_OUTOFMEMORY; - if (dataoffset == -2) return DISP_E_BADVARTYPE; + + status = ctl2_encode_variant(This, &dataoffset, pVarVal, V_VT(pVarVal)); + if (status) + return status; custoffset = ctl2_alloc_segment(This, MSFT_SEG_CUSTDATAGUID, 12, 0); if (custoffset == -1) return E_OUTOFMEMORY; @@ -1006,65 +1080,49 @@ static int ctl2_encode_typedesc( break; case VT_PTR: - /* FIXME: Make with the error checking. */ - FIXME("PTR vartype, may not work correctly.\n"); - - ctl2_encode_typedesc(This, tdesc->u.lptdesc, &target_type, NULL, NULL, &child_size); - - for (typeoffset = 0; typeoffset < This->typelib_segdir[MSFT_SEG_TYPEDESC].length; typeoffset += 8) { - typedata = (void *)&This->typelib_segment_data[MSFT_SEG_TYPEDESC][typeoffset]; - if (((typedata[0] & 0xffff) == VT_PTR) && (typedata[1] == target_type)) break; - } - - if (typeoffset == This->typelib_segdir[MSFT_SEG_TYPEDESC].length) { - int mix_field; - - if (target_type & 0x80000000) { - mix_field = ((target_type >> 16) & 0x3fff) | VT_BYREF; - } else { - typedata = (void *)&This->typelib_segment_data[MSFT_SEG_TYPEDESC][target_type]; - mix_field = ((typedata[0] >> 16) == 0x7fff)? 0x7fff: 0x7ffe; - } - - typeoffset = ctl2_alloc_segment(This, MSFT_SEG_TYPEDESC, 8, 0); - typedata = (void *)&This->typelib_segment_data[MSFT_SEG_TYPEDESC][typeoffset]; - - typedata[0] = (mix_field << 16) | VT_PTR; - typedata[1] = target_type; - } - - *encoded_tdesc = typeoffset; - - *width = 4; - *alignment = 4; - *decoded_size = sizeof(TYPEDESC) + child_size; - break; - case VT_SAFEARRAY: /* FIXME: Make with the error checking. */ - FIXME("SAFEARRAY vartype, may not work correctly.\n"); + FIXME("PTR or SAFEARRAY vartype, may not work correctly.\n"); ctl2_encode_typedesc(This, tdesc->u.lptdesc, &target_type, NULL, NULL, &child_size); for (typeoffset = 0; typeoffset < This->typelib_segdir[MSFT_SEG_TYPEDESC].length; typeoffset += 8) { typedata = (void *)&This->typelib_segment_data[MSFT_SEG_TYPEDESC][typeoffset]; - if (((typedata[0] & 0xffff) == VT_SAFEARRAY) && (typedata[1] == target_type)) break; + if (((typedata[0] & 0xffff) == tdesc->vt) && (typedata[1] == target_type)) break; } if (typeoffset == This->typelib_segdir[MSFT_SEG_TYPEDESC].length) { int mix_field; if (target_type & 0x80000000) { - mix_field = ((target_type >> 16) & VT_TYPEMASK) | VT_ARRAY; + mix_field = (target_type >> 16) & VT_TYPEMASK; } else { typedata = (void *)&This->typelib_segment_data[MSFT_SEG_TYPEDESC][target_type]; - mix_field = ((typedata[0] >> 16) == 0x7fff)? 0x7fff: 0x7ffe; + switch((typedata[0]>>16) & ~VT_ARRAY) + { + case VT_UI1: + case VT_I1: + case VT_UI2: + case VT_I2: + case VT_I4: + case VT_UI4: + mix_field = typedata[0]>>16; + break; + default: + mix_field = 0x7fff; + break; + } } + if (tdesc->vt == VT_PTR) + mix_field |= VT_BYREF; + else if (tdesc->vt == VT_SAFEARRAY) + mix_field |= VT_ARRAY; + typeoffset = ctl2_alloc_segment(This, MSFT_SEG_TYPEDESC, 8, 0); typedata = (void *)&This->typelib_segment_data[MSFT_SEG_TYPEDESC][typeoffset]; - typedata[0] = (mix_field << 16) | VT_SAFEARRAY; + typedata[0] = (mix_field << 16) | tdesc->vt; typedata[1] = target_type; } @@ -1108,17 +1166,34 @@ static int ctl2_encode_typedesc( break; } case VT_USERDEFINED: + { + const MSFT_TypeInfoBase *basetype; + INT basevt = 0x7fff; + TRACE("USERDEFINED.\n"); + if (tdesc->u.hreftype % sizeof(*basetype) == 0 && tdesc->u.hreftype < This->typelib_segdir[MSFT_SEG_TYPEINFO].length) + { + basetype = (MSFT_TypeInfoBase*)&(This->typelib_segment_data[MSFT_SEG_TYPEINFO][tdesc->u.hreftype]); + switch(basetype->typekind & 0xf) + { + case TKIND_ENUM: + basevt = VT_I4; + break; + default: + FIXME("USERDEFINED basetype %d not handled\n", basetype->typekind & 0xf); + break; + } + } for (typeoffset = 0; typeoffset < This->typelib_segdir[MSFT_SEG_TYPEDESC].length; typeoffset += 8) { typedata = (void *)&This->typelib_segment_data[MSFT_SEG_TYPEDESC][typeoffset]; - if ((typedata[0] == ((0x7fff << 16) | VT_USERDEFINED)) && (typedata[1] == tdesc->u.hreftype)) break; + if ((typedata[0] == ((basevt << 16) | VT_USERDEFINED)) && (typedata[1] == tdesc->u.hreftype)) break; } if (typeoffset == This->typelib_segdir[MSFT_SEG_TYPEDESC].length) { typeoffset = ctl2_alloc_segment(This, MSFT_SEG_TYPEDESC, 8, 0); typedata = (void *)&This->typelib_segment_data[MSFT_SEG_TYPEDESC][typeoffset]; - typedata[0] = (0x7fff << 16) | VT_USERDEFINED; + typedata[0] = (basevt << 16) | VT_USERDEFINED; typedata[1] = tdesc->u.hreftype; } @@ -1126,6 +1201,7 @@ static int ctl2_encode_typedesc( *width = 0; *alignment = 1; break; + } default: FIXME("Unrecognized type %d.\n", tdesc->vt); @@ -1196,131 +1272,6 @@ static HRESULT ctl2_find_typeinfo_from_offset( return TYPE_E_ELEMENTNOTFOUND; } -/**************************************************************************** - * ctl2_add_default_value - * - * Adds default value of an argument - * - * RETURNS - * - * Success: S_OK - * Failure: Error code from winerror.h - */ -static HRESULT ctl2_add_default_value( - ICreateTypeLib2Impl *This, /* [I] The typelib to allocate data in */ - int *encoded_value, /* [O] The encoded default value or data offset */ - VARIANT *value, /* [I] Default value to be encoded */ - VARTYPE arg_type) /* [I] Argument type */ -{ - VARIANT v; - HRESULT hres; - int mask = 0; - - TRACE("%p %d %d\n", This, V_VT(value), arg_type); - - if(arg_type == VT_INT) - arg_type = VT_I4; - if(arg_type == VT_UINT) - arg_type = VT_UI4; - - v = *value; - if(V_VT(value) != arg_type) { - hres = VariantChangeType(&v, value, 0, arg_type); - if(FAILED(hres)) - return hres; - } - - /* Check if default value can be stored in encoded_value */ - switch(arg_type) { - case VT_I4: - case VT_UI4: - mask = 0x3ffffff; - if(V_UI4(&v)>0x3ffffff) - break; - case VT_I1: - case VT_UI1: - case VT_BOOL: - if(!mask) - mask = 0xff; - case VT_I2: - case VT_UI2: - if(!mask) - mask = 0xffff; - *encoded_value = (V_UI4(&v)&mask) | ((0x80+0x4*arg_type)<<24); - return S_OK; - } - - switch(arg_type) { - case VT_I4: - case VT_R4: - case VT_UI4: - case VT_INT: - case VT_UINT: - case VT_HRESULT: - case VT_PTR: { - /* Construct the data to be allocated */ - int data[2]; - data[0] = arg_type + (V_UI4(&v)<<16); - data[1] = (V_UI4(&v)>>16) + 0x57570000; - - /* Check if the data was already allocated */ - /* Currently the structures doesn't allow to do it in a nice way */ - for(*encoded_value=0; *encoded_value<=This->typelib_segdir[MSFT_SEG_CUSTDATA].length-8; *encoded_value+=4) - if(!memcmp(&This->typelib_segment_data[MSFT_SEG_CUSTDATA][*encoded_value], data, 8)) - return S_OK; - - /* Allocate the data */ - *encoded_value = ctl2_alloc_segment(This, MSFT_SEG_CUSTDATA, 8, 0); - if(*encoded_value == -1) - return E_OUTOFMEMORY; - - memcpy(&This->typelib_segment_data[MSFT_SEG_CUSTDATA][*encoded_value], data, 8); - return S_OK; - } - case VT_BSTR: { - /* Construct the data */ - int i, len = (6+SysStringLen(V_BSTR(&v))+3) & ~0x3; - char *data = HeapAlloc(GetProcessHeap(), 0, len); - - if(!data) - return E_OUTOFMEMORY; - - *((unsigned short*)data) = arg_type; - *((unsigned*)(data+2)) = SysStringLen(V_BSTR(&v)); - for(i=0; itypelib_segdir[MSFT_SEG_CUSTDATA].length-len; *encoded_value+=4) - if(!memcmp(&This->typelib_segment_data[MSFT_SEG_CUSTDATA][*encoded_value], data, len)) { - HeapFree(GetProcessHeap(), 0, data); - return S_OK; - } - - /* Allocate the data */ - *encoded_value = ctl2_alloc_segment(This, MSFT_SEG_CUSTDATA, len, 0); - if(*encoded_value == -1) { - HeapFree(GetProcessHeap(), 0, data); - return E_OUTOFMEMORY; - } - - memcpy(&This->typelib_segment_data[MSFT_SEG_CUSTDATA][*encoded_value], data, len); - HeapFree(GetProcessHeap(), 0, data); - return S_OK; - } - default: - FIXME("Argument type not yet handled\n"); - return E_NOTIMPL; - } -} - /**************************************************************************** * funcrecord_reallochdr * @@ -1855,7 +1806,7 @@ static HRESULT WINAPI ICreateTypeInfo2_fnAddFuncDesc( if(num_defaults) { for (i = 0; i < pFuncDesc->cParams; i++) if(pFuncDesc->lprgelemdescParam[i].u.paramdesc.wParamFlags & PARAMFLAG_FHASDEFAULT) { - hres = ctl2_add_default_value(This->typelib, typedata+6+i, + hres = ctl2_encode_variant(This->typelib, typedata+6+i, &pFuncDesc->lprgelemdescParam[i].u.paramdesc.pparamdescex->varDefaultValue, pFuncDesc->lprgelemdescParam[i].tdesc.vt); @@ -2077,6 +2028,7 @@ static HRESULT WINAPI ICreateTypeInfo2_fnAddVarDesc( { ICreateTypeInfo2Impl *This = (ICreateTypeInfo2Impl *)iface; + HRESULT status = S_OK; CyclicList *insert; INT *typedata; int var_datawidth; @@ -2130,7 +2082,7 @@ static HRESULT WINAPI ICreateTypeInfo2_fnAddVarDesc( /* fill out the basic type information */ typedata[0] = 0x14 | (index << 16); typedata[2] = pVarDesc->wVarFlags; - typedata[3] = (sizeof(VARDESC) << 16) | 0; + typedata[3] = (sizeof(VARDESC) << 16) | pVarDesc->varkind; /* update the index data */ insert->indice = 0x40000000 + index; @@ -2142,44 +2094,52 @@ static HRESULT WINAPI ICreateTypeInfo2_fnAddVarDesc( &typedata[1], &var_datawidth, &var_alignment, &var_type_size); - /* pad out starting position to data width */ - This->datawidth += var_alignment - 1; - This->datawidth &= ~(var_alignment - 1); - typedata[4] = This->datawidth; - - /* add the new variable to the total data width */ - This->datawidth += var_datawidth; - if(This->dual) - This->dual->datawidth = This->datawidth; + if (pVarDesc->varkind != VAR_CONST) + { + /* pad out starting position to data width */ + This->datawidth += var_alignment - 1; + This->datawidth &= ~(var_alignment - 1); + typedata[4] = This->datawidth; + + /* add the new variable to the total data width */ + This->datawidth += var_datawidth; + if(This->dual) + This->dual->datawidth = This->datawidth; + + /* add type description size to total required allocation */ + typedata[3] += var_type_size << 16; + + /* fix type alignment */ + alignment = (This->typeinfo->typekind >> 11) & 0x1f; + if (alignment < var_alignment) { + alignment = var_alignment; + This->typeinfo->typekind &= ~0xf800; + This->typeinfo->typekind |= alignment << 11; + } - /* add type description size to total required allocation */ - typedata[3] += var_type_size << 16; + /* ??? */ + if (!This->typeinfo->res2) This->typeinfo->res2 = 0x1a; + if ((index == 0) || (index == 1) || (index == 2) || (index == 4) || (index == 9)) { + This->typeinfo->res2 <<= 1; + } - /* fix type alignment */ - alignment = (This->typeinfo->typekind >> 11) & 0x1f; - if (alignment < var_alignment) { - alignment = var_alignment; - This->typeinfo->typekind &= ~0xf800; - This->typeinfo->typekind |= alignment << 11; - } + /* ??? */ + if (This->typeinfo->res3 == -1) This->typeinfo->res3 = 0; + This->typeinfo->res3 += 0x2c; - /* ??? */ - if (!This->typeinfo->res2) This->typeinfo->res2 = 0x1a; - if ((index == 0) || (index == 1) || (index == 2) || (index == 4) || (index == 9)) { - This->typeinfo->res2 <<= 1; + /* pad data width to alignment */ + This->typeinfo->size = (This->datawidth + (alignment - 1)) & ~(alignment - 1); + } else { + VARIANT *value = pVarDesc->DUMMYUNIONNAME.lpvarValue; + status = ctl2_encode_variant(This->typelib, typedata+4, value, V_VT(value)); + /* ??? native sets size 0x34 */ + typedata[3] += 0x10 << 16; } - /* ??? */ - if (This->typeinfo->res3 == -1) This->typeinfo->res3 = 0; - This->typeinfo->res3 += 0x2c; - /* increment the number of variable elements */ This->typeinfo->cElement += 0x10000; - /* pad data width to alignment */ - This->typeinfo->size = (This->datawidth + (alignment - 1)) & ~(alignment - 1); - - return S_OK; + return status; } /****************************************************************************** diff --git a/reactos/dll/win32/riched20/editor.c b/reactos/dll/win32/riched20/editor.c index b4bff4f07d9..14ae16b88b9 100644 --- a/reactos/dll/win32/riched20/editor.c +++ b/reactos/dll/win32/riched20/editor.c @@ -4406,10 +4406,9 @@ static LRESULT RichEditWndProc_common(HWND hWnd, UINT msg, WPARAM wParam, texthost = ME_CreateTextHost(hWnd, pcs, FALSE); return texthost != NULL; } - else if (msg != WM_NCDESTROY) + else { - ERR("called with invalid hWnd %p - application bug?\n", hWnd); - return 0; + return DefWindowProcW(hWnd, msg, wParam, lParam); } } diff --git a/reactos/dll/win32/riched20/writer.c b/reactos/dll/win32/riched20/writer.c index 107fadfc70f..8c8714504b8 100644 --- a/reactos/dll/win32/riched20/writer.c +++ b/reactos/dll/win32/riched20/writer.c @@ -406,12 +406,44 @@ ME_StreamOutRTFTableProps(ME_TextEditor *editor, ME_OutStream *pStream, static BOOL ME_StreamOutRTFParaProps(ME_TextEditor *editor, ME_OutStream *pStream, - const ME_DisplayItem *para) + ME_DisplayItem *para) { PARAFORMAT2 *fmt = para->member.para.pFmt; char props[STREAMOUT_BUFFER_SIZE] = ""; int i; - + + if (!editor->bEmulateVersion10) { /* v4.1 */ + if (para->member.para.nFlags & MEPF_ROWSTART) { + pStream->nNestingLevel++; + if (pStream->nNestingLevel == 1) { + if (!ME_StreamOutRTFTableProps(editor, pStream, para)) + return FALSE; + } + return TRUE; + } else if (para->member.para.nFlags & MEPF_ROWEND) { + pStream->nNestingLevel--; + if (pStream->nNestingLevel >= 1) { + if (!ME_StreamOutPrint(pStream, "{\\*\\nesttableprops")) + return FALSE; + if (!ME_StreamOutRTFTableProps(editor, pStream, para)) + return FALSE; + if (!ME_StreamOutPrint(pStream, "\\nestrow}{\\nonesttables\\par}\r\n")) + return FALSE; + } else { + if (!ME_StreamOutPrint(pStream, "\\row \r\n")) + return FALSE; + } + return TRUE; + } + } else { /* v1.0 - 3.0 */ + if (para->member.para.pFmt->dwMask & PFM_TABLE && + para->member.para.pFmt->wEffects & PFE_TABLE) + { + if (!ME_StreamOutRTFTableProps(editor, pStream, para)) + return FALSE; + } + } + /* TODO: Don't emit anything if the last PARAFORMAT2 is inherited */ if (!ME_StreamOutPrint(pStream, "\\pard")) return FALSE; @@ -798,39 +830,8 @@ static BOOL ME_StreamOutRTF(ME_TextEditor *editor, ME_OutStream *pStream, if (cursor.pPara != prev_para) { prev_para = cursor.pPara; - if (!editor->bEmulateVersion10) { /* v4.1 */ - if (cursor.pPara->member.para.nFlags & MEPF_ROWSTART) { - pStream->nNestingLevel++; - if (pStream->nNestingLevel == 1) { - if (!ME_StreamOutRTFTableProps(editor, pStream, cursor.pPara)) - return FALSE; - } - } else if (cursor.pPara->member.para.nFlags & MEPF_ROWEND) { - pStream->nNestingLevel--; - if (pStream->nNestingLevel >= 1) { - if (!ME_StreamOutPrint(pStream, "{\\*\\nesttableprops")) - return FALSE; - if (!ME_StreamOutRTFTableProps(editor, pStream, cursor.pPara)) - return FALSE; - if (!ME_StreamOutPrint(pStream, "\\nestrow}{\\nonesttables\\par}\r\n")) - return FALSE; - } else { - if (!ME_StreamOutPrint(pStream, "\\row \r\n")) - return FALSE; - } - } else if (!ME_StreamOutRTFParaProps(editor, pStream, cursor.pPara)) { - return FALSE; - } - } else { /* v1.0 - 3.0 */ - if (cursor.pPara->member.para.pFmt->dwMask & PFM_TABLE && - cursor.pPara->member.para.pFmt->wEffects & PFE_TABLE) - { - if (!ME_StreamOutRTFTableProps(editor, pStream, cursor.pPara)) - return FALSE; - } - if (!ME_StreamOutRTFParaProps(editor, pStream, cursor.pPara)) - return FALSE; - } + if (!ME_StreamOutRTFParaProps(editor, pStream, cursor.pPara)) + return FALSE; } if (cursor.pRun == endCur.pRun && !endCur.nOffset) @@ -838,7 +839,7 @@ static BOOL ME_StreamOutRTF(ME_TextEditor *editor, ME_OutStream *pStream, TRACE("flags %xh\n", cursor.pRun->member.run.nFlags); /* TODO: emit embedded objects */ if (cursor.pPara->member.para.nFlags & (MEPF_ROWSTART|MEPF_ROWEND)) - break; + continue; if (cursor.pRun->member.run.nFlags & MERF_GRAPHICS) { FIXME("embedded objects are not handled\n"); } else if (cursor.pRun->member.run.nFlags & MERF_TAB) { diff --git a/reactos/dll/win32/shdocvw/En.rc b/reactos/dll/win32/shdocvw/En.rc new file mode 100644 index 00000000000..749c849aa3c --- /dev/null +++ b/reactos/dll/win32/shdocvw/En.rc @@ -0,0 +1,57 @@ +/* + * Copyright 2010 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 + * 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 "resource.h" + +LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT + +IDD_BROWSE_OPEN DIALOG 10, 10, 200, 70 +STYLE DS_MODALFRAME | WS_CAPTION +CAPTION "Open URL" +FONT 8, "MS Shell Dlg" +{ + LTEXT "Specify the URL you wish to open in Internet Explorer",-1,25, 5, 150,15 + LTEXT "Open:", -1, 2, 32, 20, 15 + EDITTEXT IDC_BROWSE_OPEN_URL, 25, 30, 160, 13 + DEFPUSHBUTTON "&OK", IDOK, 25, 50, 50, 15 + PUSHBUTTON "&Cancel", IDCANCEL, 85, 50, 50, 15 +} + +IDR_BROWSE_MAIN_MENU MENU +{ + POPUP "&File" + { + POPUP "&New" + { + MENUITEM "&Window" ID_BROWSE_NEW_WINDOW + } + MENUITEM "&Open...", ID_BROWSE_OPEN + MENUITEM "&Save", ID_BROWSE_SAVE + MENUITEM "Save &as...", ID_BROWSE_SAVE_AS + MENUITEM SEPARATOR + MENUITEM "Print &format...", ID_BROWSE_PRINT_FORMAT + MENUITEM "Pr&int...", ID_BROWSE_PRINT + MENUITEM "Print previe&w...", ID_BROWSE_PRINT_PREVIEW + MENUITEM SEPARATOR + MENUITEM "&Properties...", ID_BROWSE_PROPERTIES + } + POPUP "&Help" + { + MENUITEM "&About Internet Explorer...", ID_BROWSE_ABOUT + } +} diff --git a/reactos/dll/win32/shdocvw/dochost.c b/reactos/dll/win32/shdocvw/dochost.c index 2196eb9c02e..b3db0125700 100644 --- a/reactos/dll/win32/shdocvw/dochost.c +++ b/reactos/dll/win32/shdocvw/dochost.c @@ -820,5 +820,5 @@ void DocHost_Release(DocHost *This) ConnectionPointContainer_Destroy(&This->cps); - CoTaskMemFree(This->url); + heap_free(This->url); } diff --git a/reactos/dll/win32/shdocvw/ie.c b/reactos/dll/win32/shdocvw/ie.c index 7b07de6a8a3..9d661ca7071 100644 --- a/reactos/dll/win32/shdocvw/ie.c +++ b/reactos/dll/win32/shdocvw/ie.c @@ -422,8 +422,25 @@ static HRESULT WINAPI InternetExplorer_get_MenuBar(IWebBrowser2 *iface, VARIANT_ static HRESULT WINAPI InternetExplorer_put_MenuBar(IWebBrowser2 *iface, VARIANT_BOOL Value) { InternetExplorer *This = WEBBROWSER_THIS(iface); - FIXME("(%p)->(%x)\n", This, Value); - return E_NOTIMPL; + HMENU menu = NULL; + + TRACE("(%p)->(%x)\n", This, Value); + + if((menu = GetMenu(This->frame_hwnd))) + DestroyMenu(menu); + + menu = NULL; + + if(Value) + menu = LoadMenuW(shdocvw_hinstance, MAKEINTRESOURCEW(IDR_BROWSE_MAIN_MENU)); + + if(!SetMenu(This->frame_hwnd, menu)) + { + DestroyMenu(menu); + return HRESULT_FROM_WIN32(GetLastError()); + } + + return S_OK; } static HRESULT WINAPI InternetExplorer_get_FullScreen(IWebBrowser2 *iface, VARIANT_BOOL *pbFullScreen) diff --git a/reactos/dll/win32/shdocvw/iexplore.c b/reactos/dll/win32/shdocvw/iexplore.c index e4e7618eba0..fa643feecfa 100644 --- a/reactos/dll/win32/shdocvw/iexplore.c +++ b/reactos/dll/win32/shdocvw/iexplore.c @@ -32,6 +32,8 @@ #include "oleidl.h" #include "shdocvw.h" +#include "mshtmcid.h" +#include "shellapi.h" #include "wine/debug.h" @@ -41,6 +43,68 @@ WINE_DEFAULT_DEBUG_CHANNEL(shdocvw); static const WCHAR szIEWinFrame[] = { 'I','E','F','r','a','m','e',0 }; +/* Windows uses "Microsoft Internet Explorer" */ +static const WCHAR wszWineInternetExplorer[] = + {'W','i','n','e',' ','I','n','t','e','r','n','e','t',' ','E','x','p','l','o','r','e','r',0}; + +static INT_PTR CALLBACK ie_dialog_open_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) +{ + static InternetExplorer* This; + + switch(msg) + { + case WM_INITDIALOG: + This = (InternetExplorer*)lparam; + EnableWindow(GetDlgItem(hwnd, IDOK), FALSE); + return TRUE; + + case WM_COMMAND: + switch(LOWORD(wparam)) + { + case IDC_BROWSE_OPEN_URL: + { + HWND hwndurl = GetDlgItem(hwnd, IDC_BROWSE_OPEN_URL); + int len = GetWindowTextLengthW(hwndurl); + + EnableWindow(GetDlgItem(hwnd, IDOK), len ? TRUE : FALSE); + break; + } + case IDOK: + { + HWND hwndurl = GetDlgItem(hwnd, IDC_BROWSE_OPEN_URL); + int len = GetWindowTextLengthW(hwndurl); + + if(len) + { + VARIANT url; + + V_VT(&url) = VT_BSTR; + V_BSTR(&url) = SysAllocStringLen(NULL, len); + + GetWindowTextW(hwndurl, V_BSTR(&url), len); + IWebBrowser2_Navigate2(WEBBROWSER2(This), &url, NULL, NULL, NULL, NULL); + + SysFreeString(V_BSTR(&url)); + } + } + /* fall through */ + case IDCANCEL: + EndDialog(hwnd, wparam); + return TRUE; + } + } + return FALSE; +} + +static void ie_dialog_about(HWND hwnd) +{ + HICON icon = LoadImageW(GetModuleHandleW(0), MAKEINTRESOURCEW(IDI_APPICON), IMAGE_ICON, 48, 48, LR_SHARED); + + ShellAboutW(hwnd, wszWineInternetExplorer, NULL, icon); + + DestroyIcon(icon); +} + static LRESULT iewnd_OnCreate(HWND hwnd, LPCREATESTRUCTW lpcs) { SetWindowLongPtrW(hwnd, 0, (LONG_PTR) lpcs->lpCreateParams); @@ -66,6 +130,38 @@ static LRESULT iewnd_OnDestroy(InternetExplorer *This) return 0; } +static LRESULT CALLBACK iewnd_OnCommand(InternetExplorer *This, HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) +{ + switch(LOWORD(wparam)) + { + case ID_BROWSE_OPEN: + DialogBoxParamW(shdocvw_hinstance, MAKEINTRESOURCEW(IDD_BROWSE_OPEN), hwnd, ie_dialog_open_proc, (LPARAM)This); + break; + + case ID_BROWSE_PRINT: + if(This->doc_host.document) + { + IOleCommandTarget* target; + + if(FAILED(IUnknown_QueryInterface(This->doc_host.document, &IID_IOleCommandTarget, (LPVOID*)&target))) + break; + + IOleCommandTarget_Exec(target, &CGID_MSHTML, IDM_PRINT, OLECMDEXECOPT_DODEFAULT, NULL, NULL); + + IOleCommandTarget_Release(target); + } + break; + + case ID_BROWSE_ABOUT: + ie_dialog_about(hwnd); + break; + + default: + return DefWindowProcW(hwnd, msg, wparam, lparam); + } + return 0; +} + static LRESULT CALLBACK ie_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { @@ -79,6 +175,8 @@ ie_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) return iewnd_OnDestroy(This); case WM_SIZE: return iewnd_OnSize(This, LOWORD(lparam), HIWORD(lparam)); + case WM_COMMAND: + return iewnd_OnCommand(This, hwnd, msg, wparam, lparam); case WM_DOCHOSTTASK: return process_dochost_task(&This->doc_host, lparam); } @@ -114,10 +212,6 @@ void unregister_iewindow_class(void) static void create_frame_hwnd(InternetExplorer *This) { - /* Windows uses "Microsoft Internet Explorer" */ - static const WCHAR wszWineInternetExplorer[] = - {'W','i','n','e',' ','I','n','t','e','r','n','e','t',' ','E','x','p','l','o','r','e','r',0}; - This->frame_hwnd = CreateWindowExW( WS_EX_WINDOWEDGE, szIEWinFrame, wszWineInternetExplorer, @@ -136,21 +230,30 @@ static IWebBrowser2 *create_ie_window(LPCSTR cmdline) return NULL; IWebBrowser2_put_Visible(wb, VARIANT_TRUE); + IWebBrowser2_put_MenuBar(wb, VARIANT_TRUE); if(!*cmdline) { IWebBrowser2_GoHome(wb); }else { VARIANT var_url; DWORD len; + int cmdlen; if(!strncasecmp(cmdline, "-nohome", 7)) cmdline += 7; + while(*cmdline == ' ' || *cmdline == '\t') + cmdline++; + cmdlen = lstrlenA(cmdline); + if(cmdlen > 2 && cmdline[0] == '"' && cmdline[cmdlen-1] == '"') { + cmdline++; + cmdlen -= 2; + } V_VT(&var_url) = VT_BSTR; - len = MultiByteToWideChar(CP_ACP, 0, cmdline, -1, NULL, 0); + len = MultiByteToWideChar(CP_ACP, 0, cmdline, cmdlen, NULL, 0); V_BSTR(&var_url) = SysAllocStringLen(NULL, len); - MultiByteToWideChar(CP_ACP, 0, cmdline, -1, V_BSTR(&var_url), len); + MultiByteToWideChar(CP_ACP, 0, cmdline, cmdlen, V_BSTR(&var_url), len); /* navigate to the first page */ IWebBrowser2_Navigate2(wb, &var_url, NULL, NULL, NULL, NULL); diff --git a/reactos/dll/win32/shdocvw/intshcut.c b/reactos/dll/win32/shdocvw/intshcut.c index 32dab6dd519..8c17873453a 100644 --- a/reactos/dll/win32/shdocvw/intshcut.c +++ b/reactos/dll/win32/shdocvw/intshcut.c @@ -361,7 +361,7 @@ static HRESULT WINAPI PersistFile_Load(IPersistFile *pFile, LPCOLESTR pszFileNam { CoTaskMemFree(url); len *= 2; - url = CoTaskMemAlloc(len); + url = CoTaskMemAlloc(len*sizeof(WCHAR)); if (url == NULL) break; r = GetPrivateProfileStringW(str_header, str_URL, NULL, url, len, pszFileName); diff --git a/reactos/dll/win32/shdocvw/navigate.c b/reactos/dll/win32/shdocvw/navigate.c index 3310cbadf98..6d73fd98b29 100644 --- a/reactos/dll/win32/shdocvw/navigate.c +++ b/reactos/dll/win32/shdocvw/navigate.c @@ -111,6 +111,23 @@ static void set_status_text(BindStatusCallback *This, LPCWSTR str) IOleInPlaceFrame_SetStatusText(This->doc_host->frame, str); } +static HRESULT set_dochost_url(DocHost *This, const WCHAR *url) +{ + WCHAR *new_url; + + if(url) { + new_url = heap_strdupW(url); + if(!new_url) + return E_OUTOFMEMORY; + }else { + new_url = NULL; + } + + heap_free(This->url); + This->url = new_url; + return S_OK; +} + #define BINDSC_THIS(iface) DEFINE_THIS(BindStatusCallback, BindStatusCallback, iface) static HRESULT WINAPI BindStatusCallback_QueryInterface(IBindStatusCallback *iface, @@ -205,6 +222,8 @@ static HRESULT WINAPI BindStatusCallback_OnProgress(IBindStatusCallback *iface, debugstr_w(szStatusText)); switch(ulStatusCode) { + case BINDSTATUS_REDIRECTING: + return set_dochost_url(This->doc_host, szStatusText); case BINDSTATUS_BEGINDOWNLOADDATA: set_status_text(This, szStatusText); /* FIXME: "Start downloading from site: %s" */ return S_OK; @@ -502,6 +521,7 @@ static HRESULT bind_to_object(DocHost *This, IMoniker *mon, LPCWSTR url, IBindCt IBindStatusCallback *callback) { IUnknown *unk = NULL; + WCHAR *display_name; HRESULT hres; if(mon) { @@ -512,10 +532,16 @@ static HRESULT bind_to_object(DocHost *This, IMoniker *mon, LPCWSTR url, IBindCt return hres; } - CoTaskMemFree(This->url); - hres = IMoniker_GetDisplayName(mon, 0, NULL, &This->url); - if(FAILED(hres)) + hres = IMoniker_GetDisplayName(mon, 0, NULL, &display_name); + if(FAILED(hres)) { FIXME("GetDisplayName failed: %08x\n", hres); + return hres; + } + + hres = set_dochost_url(This, display_name); + CoTaskMemFree(display_name); + if(FAILED(hres)) + return hres; IBindCtx_RegisterObjectParam(bindctx, (LPOLESTR)SZ_HTML_CLIENTSITE_OBJECTPARAM, (IUnknown*)CLIENTSITE(This)); @@ -538,18 +564,12 @@ static HRESULT bind_to_object(DocHost *This, IMoniker *mon, LPCWSTR url, IBindCt static void html_window_navigate(DocHost *This, IHTMLPrivateWindow *window, BSTR url, BSTR headers, SAFEARRAY *post_data) { VARIANT headers_var, post_data_var; - WCHAR *new_url; BSTR empty_str; - DWORD size; HRESULT hres; - size = (strlenW(url)+1)*sizeof(WCHAR); - new_url = CoTaskMemAlloc(size); - if(!new_url) + hres = set_dochost_url(This, url); + if(FAILED(hres)) return; - memcpy(new_url, url, size); - CoTaskMemFree(This->url); - This->url = new_url; empty_str = SysAllocStringLen(NULL, 0); @@ -739,19 +759,12 @@ HRESULT navigate_url(DocHost *This, LPCWSTR url, const VARIANT *Flags, Flags, Flags ? V_VT(Flags) : -1, TargetFrameName, TargetFrameName ? V_VT(TargetFrameName) : -1); - if(PostData) { - TRACE("PostData vt=%d\n", V_VT(PostData)); - - if(V_VT(PostData) == (VT_ARRAY | VT_UI1)) { - SafeArrayAccessData(V_ARRAY(PostData), (void**)&post_data); - post_data_len = V_ARRAY(PostData)->rgsabound[0].cElements; - } + if(PostData && V_VT(PostData) == (VT_ARRAY | VT_UI1)) { + SafeArrayAccessData(V_ARRAY(PostData), (void**)&post_data); + post_data_len = V_ARRAY(PostData)->rgsabound[0].cElements; } - if(Headers && V_VT(Headers) != VT_EMPTY && V_VT(Headers) != VT_ERROR) { - if(V_VT(Headers) != VT_BSTR) - return E_INVALIDARG; - + if(Headers && V_VT(Headers) == VT_BSTR) { headers = V_BSTR(Headers); TRACE("Headers: %s\n", debugstr_w(headers)); } diff --git a/reactos/dll/win32/shdocvw/resource.h b/reactos/dll/win32/shdocvw/resource.h new file mode 100644 index 00000000000..31a700566fb --- /dev/null +++ b/reactos/dll/win32/shdocvw/resource.h @@ -0,0 +1,36 @@ +/* + * Resource identifiers for shdocvw.dll + * + * Copyright 2010 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 + * 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 +#include + +#define IDR_BROWSE_MAIN_MENU 1000 +#define IDD_BROWSE_OPEN 1001 +#define IDC_BROWSE_OPEN_URL 1002 + +#define ID_BROWSE_NEW_WINDOW 275 +#define ID_BROWSE_OPEN 256 +#define ID_BROWSE_SAVE 257 +#define ID_BROWSE_SAVE_AS 258 +#define ID_BROWSE_PRINT_FORMAT 259 +#define ID_BROWSE_PRINT 260 +#define ID_BROWSE_PRINT_PREVIEW 277 +#define ID_BROWSE_PROPERTIES 262 +#define ID_BROWSE_ABOUT 336 diff --git a/reactos/dll/win32/shdocvw/shdocvw.h b/reactos/dll/win32/shdocvw/shdocvw.h index 1af0365d25d..d1787cb85c4 100644 --- a/reactos/dll/win32/shdocvw/shdocvw.h +++ b/reactos/dll/win32/shdocvw/shdocvw.h @@ -40,6 +40,8 @@ #include "htiframe.h" #include "wine/unicode.h" +#include "resource.h" + /********************************************************************** * Shell Instance Objects diff --git a/reactos/dll/win32/shdocvw/shdocvw.rc b/reactos/dll/win32/shdocvw/shdocvw.rc index bb4809b6e08..e7276fff6c4 100644 --- a/reactos/dll/win32/shdocvw/shdocvw.rc +++ b/reactos/dll/win32/shdocvw/shdocvw.rc @@ -29,7 +29,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL /* @makedep: shdocvw_v1.tlb */ -1 TYPELIB LOADONCALL DISCARDABLE shdocvw_v1.tlb +1 TYPELIB shdocvw_v1.tlb /* @makedep: shdocvw.inf */ REGINST REGINST shdocvw.inf + +#include "En.rc" diff --git a/reactos/dll/win32/shlwapi/ordinal.c b/reactos/dll/win32/shlwapi/ordinal.c index 5f332f38cf7..2bf0e79f1ac 100644 --- a/reactos/dll/win32/shlwapi/ordinal.c +++ b/reactos/dll/win32/shlwapi/ordinal.c @@ -3246,29 +3246,72 @@ BOOL WINAPI PlaySoundWrapW(LPCWSTR pszSound, HMODULE hmod, DWORD fdwSound) /************************************************************************* * @ [SHLWAPI.294] + * + * Retrieve a key value from an INI file. See GetPrivateProfileString for + * more information. + * + * PARAMS + * appName [I] The section in the INI file that contains the key + * keyName [I] The key to be retrieved + * out [O] The buffer into which the key's value will be copied + * outLen [I] The length of the `out' buffer + * filename [I] The location of the INI file + * + * RETURNS + * Length of string copied into `out'. */ -BOOL WINAPI SHGetIniStringW(LPCWSTR str1, LPCWSTR str2, LPWSTR pStr, DWORD some_len, LPCWSTR lpStr2) +DWORD WINAPI SHGetIniStringW(LPCWSTR appName, LPCWSTR keyName, LPWSTR out, + DWORD outLen, LPCWSTR filename) { - FIXME("(%s,%s,%p,%08x,%s): stub!\n", debugstr_w(str1), debugstr_w(str2), - pStr, some_len, debugstr_w(lpStr2)); - return TRUE; + INT ret; + WCHAR *buf; + + TRACE("(%s,%s,%p,%08x,%s)\n", debugstr_w(appName), debugstr_w(keyName), + out, outLen, debugstr_w(filename)); + + if(outLen == 0) + return 0; + + buf = HeapAlloc(GetProcessHeap(), 0, outLen * sizeof(WCHAR)); + if(!buf){ + *out = 0; + return 0; + } + + ret = GetPrivateProfileStringW(appName, keyName, NULL, buf, outLen, filename); + if(ret) + strcpyW(out, buf); + else + *out = 0; + + HeapFree(GetProcessHeap(), 0, buf); + + return strlenW(out); } /************************************************************************* * @ [SHLWAPI.295] * - * Called by ICQ2000b install via SHDOCVW: - * str1: "InternetShortcut" - * x: some unknown pointer - * str2: "http://free.aol.com/tryaolfree/index.adp?139269" - * str3: "C:\\WINDOWS\\Desktop.new2\\Free AOL & Unlimited Internet.url" + * Set a key value in an INI file. See WritePrivateProfileString for + * more information. + * + * PARAMS + * appName [I] The section in the INI file that contains the key + * keyName [I] The key to be set + * str [O] The value of the key + * filename [I] The location of the INI file * - * In short: this one maybe creates a desktop link :-) + * RETURNS + * Success: TRUE + * Failure: FALSE */ -BOOL WINAPI SHSetIniStringW(LPWSTR str1, LPVOID x, LPWSTR str2, LPWSTR str3) +BOOL WINAPI SHSetIniStringW(LPCWSTR appName, LPCWSTR keyName, LPCWSTR str, + LPCWSTR filename) { - FIXME("(%s, %p, %s, %s), stub.\n", debugstr_w(str1), x, debugstr_w(str2), debugstr_w(str3)); - return TRUE; + TRACE("(%s, %p, %s, %s)\n", debugstr_w(appName), keyName, debugstr_w(str), + debugstr_w(filename)); + + return WritePrivateProfileStringW(appName, keyName, str, filename); } /************************************************************************* @@ -3694,24 +3737,19 @@ BOOL WINAPI GetOpenFileNameWrapW(LPOPENFILENAMEW ofn) */ HRESULT WINAPI SHIShellFolder_EnumObjects(LPSHELLFOLDER lpFolder, HWND hwnd, SHCONTF flags, IEnumIDList **ppenum) { - IPersist *persist; - HRESULT hr; + /* Windows attempts to get an IPersist interface and, if that fails, an + * IPersistFolder interface on the folder passed-in here. If one of those + * interfaces is available, it then calls GetClassID on the folder... and + * then calls IShellFolder_EnumObjects no matter what, even crashing if + * lpFolder isn't actually an IShellFolder object. The purpose of getting + * the ClassID is unknown, so we don't do it here. + * + * For discussion and detailed tests, see: + * "shlwapi: Be less strict on which type of IShellFolder can be enumerated" + * wine-devel mailing list, 3 Jun 2010 + */ - hr = IShellFolder_QueryInterface(lpFolder, &IID_IPersist, (LPVOID)&persist); - if(SUCCEEDED(hr)) - { - CLSID clsid; - hr = IPersist_GetClassID(persist, &clsid); - if(SUCCEEDED(hr)) - { - if(IsEqualCLSID(&clsid, &CLSID_ShellFSFolder)) - hr = IShellFolder_EnumObjects(lpFolder, hwnd, flags, ppenum); - else - hr = E_FAIL; - } - IPersist_Release(persist); - } - return hr; + return IShellFolder_EnumObjects(lpFolder, hwnd, flags, ppenum); } /* INTERNAL: Map from HLS color space to RGB */ diff --git a/reactos/dll/win32/shlwapi/shlwapi.rc b/reactos/dll/win32/shlwapi/shlwapi.rc index c80099e3cd6..0dd60f80528 100644 --- a/reactos/dll/win32/shlwapi/shlwapi.rc +++ b/reactos/dll/win32/shlwapi/shlwapi.rc @@ -29,25 +29,25 @@ #include "shlwapi_En.rc" #include "shlwapi_Es.rc" #include "shlwapi_Fi.rc" -#include "shlwapi_Hu.rc" #include "shlwapi_It.rc" #include "shlwapi_Ko.rc" #include "shlwapi_Nl.rc" +#include "shlwapi_No.rc" #include "shlwapi_Pl.rc" -#include "shlwapi_Pt.rc" #include "shlwapi_Sk.rc" #include "shlwapi_Sv.rc" #include "shlwapi_Tr.rc" #include "shlwapi_Uk.rc" -#include "shlwapi_Zh.rc" /* UTF-8 */ #include "shlwapi_De.rc" #include "shlwapi_Fr.rc" +#include "shlwapi_Hu.rc" #include "shlwapi_Ja.rc" #include "shlwapi_Lt.rc" -#include "shlwapi_No.rc" +#include "shlwapi_Pt.rc" #include "shlwapi_Ro.rc" #include "shlwapi_Ru.rc" #include "shlwapi_Si.rc" +#include "shlwapi_Zh.rc" diff --git a/reactos/dll/win32/shlwapi/shlwapi.spec b/reactos/dll/win32/shlwapi/shlwapi.spec index 268a2e20145..a277f50736a 100644 --- a/reactos/dll/win32/shlwapi/shlwapi.spec +++ b/reactos/dll/win32/shlwapi/shlwapi.spec @@ -550,10 +550,10 @@ @ stdcall AssocIsDangerous(long) @ stdcall AssocQueryKeyA(long long str ptr ptr) @ stdcall AssocQueryKeyW(long long wstr ptr ptr) -@ stdcall AssocQueryStringA(long long ptr ptr str ptr) -@ stdcall AssocQueryStringByKeyA(long long ptr ptr str ptr) -@ stdcall AssocQueryStringByKeyW(long long ptr ptr wstr ptr) -@ stdcall AssocQueryStringW(long long ptr ptr wstr ptr) +@ stdcall AssocQueryStringA(long long ptr ptr ptr ptr) +@ stdcall AssocQueryStringByKeyA(long long ptr ptr ptr ptr) +@ stdcall AssocQueryStringByKeyW(long long ptr ptr ptr ptr) +@ stdcall AssocQueryStringW(long long ptr ptr ptr ptr) @ stdcall ChrCmpIA(long long) @ stdcall ChrCmpIW(long long) @ stdcall ColorAdjustLuma(long long long) @@ -801,6 +801,8 @@ @ stdcall StrStrA(str str) @ stdcall StrStrIA(str str) @ stdcall StrStrIW(wstr wstr) +@ stdcall StrStrNW(wstr wstr long) +@ stdcall StrStrNIW(wstr wstr long) @ stdcall StrStrW(wstr wstr) @ stdcall StrToIntA(str) @ stdcall StrToIntExA(str long ptr) diff --git a/reactos/dll/win32/shlwapi/shlwapi_Da.rc b/reactos/dll/win32/shlwapi/shlwapi_Da.rc index 3bb418da2b8..57859b2a157 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_Da.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_Da.rc @@ -1,5 +1,5 @@ /* - * English resources for shlwapi + * Danish resources for shlwapi * * Copyright 2008 Jens Albretsen * @@ -22,7 +22,7 @@ LANGUAGE LANG_DANISH, SUBLANG_DEFAULT -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Fejl!" FONT 8, "MS Shell Dlg" @@ -36,7 +36,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Nej" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld bytes" IDS_TIME_INTERVAL_HOURS " hr" diff --git a/reactos/dll/win32/shlwapi/shlwapi_De.rc b/reactos/dll/win32/shlwapi/shlwapi_De.rc index 8980769933f..1f5063da872 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_De.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_De.rc @@ -24,7 +24,7 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Fehler!" FONT 8, "MS Shell Dlg" @@ -38,7 +38,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Nein" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld Bytes" IDS_TIME_INTERVAL_HOURS " Std" diff --git a/reactos/dll/win32/shlwapi/shlwapi_En.rc b/reactos/dll/win32/shlwapi/shlwapi_En.rc index 4e1d935cfca..6aa91e5e056 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_En.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_En.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Error!" FONT 8, "MS Shell Dlg" @@ -36,7 +36,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&No" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld bytes" IDS_TIME_INTERVAL_HOURS " hr" diff --git a/reactos/dll/win32/shlwapi/shlwapi_Es.rc b/reactos/dll/win32/shlwapi/shlwapi_Es.rc index 8d351f680fd..b4e0c084757 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_Es.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_Es.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "¡Error!" FONT 8, "MS Shell Dlg" @@ -36,7 +36,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&No" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld bytes" IDS_TIME_INTERVAL_HOURS " hr" diff --git a/reactos/dll/win32/shlwapi/shlwapi_Fi.rc b/reactos/dll/win32/shlwapi/shlwapi_Fi.rc index 877228f3393..f58e218212d 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_Fi.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_Fi.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Virhe!" FONT 8, "MS Shell Dlg" @@ -36,7 +36,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Ei" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld bytes" IDS_TIME_INTERVAL_HOURS " hr" diff --git a/reactos/dll/win32/shlwapi/shlwapi_Fr.rc b/reactos/dll/win32/shlwapi/shlwapi_Fr.rc index 745b4fd0ee0..fe850b5146e 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_Fr.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_Fr.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Erreur !" FONT 8, "MS Shell Dlg" @@ -39,10 +39,10 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Non" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld bytes" - IDS_TIME_INTERVAL_HOURS " hr" + IDS_TIME_INTERVAL_HOURS " h" IDS_TIME_INTERVAL_MINUTES " min" - IDS_TIME_INTERVAL_SECONDS " sec" + IDS_TIME_INTERVAL_SECONDS " s" } diff --git a/reactos/dll/win32/shlwapi/shlwapi_Hu.rc b/reactos/dll/win32/shlwapi/shlwapi_Hu.rc index 56535e8927b..676b1d4c87d 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_Hu.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_Hu.rc @@ -1,7 +1,7 @@ /* * Hungarian resources for shlwapi * - * Copyright 2006 Andras Kovacs + * Copyright 2006-2010 Andras Kovacs * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,26 +20,29 @@ #include "resource.h" +/* UTF-8 */ +#pragma code_page(65001) + LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Hiba!" FONT 8, "MS Shell Dlg" { LTEXT "", IDS_ERR_USER_MSG2, 15, 5, 28, 20 LTEXT "", IDS_ERR_USER_MSG, 15, 5, 210, 8 - CHECKBOX "Ne jelení&tse meg ezt az üzenetet ismét", IDC_ERR_DONT_SHOW, 5, 20, 210, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + CHECKBOX "Ne jelení&tse meg ezt az üzenetet mégegyszer", IDC_ERR_DONT_SHOW, 5, 20, 210, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP PUSHBUTTON L"&OK" IDOK, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON L"&Mégse" IDCANCEL, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON L"&Mégse" IDCANCEL, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON L"&Igen" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON L"&Nem" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { - IDS_BYTES_FORMAT "%ld bytes" - IDS_TIME_INTERVAL_HOURS " hr" - IDS_TIME_INTERVAL_MINUTES " min" - IDS_TIME_INTERVAL_SECONDS " sec" + IDS_BYTES_FORMAT "%ld bájt" + IDS_TIME_INTERVAL_HOURS " óra" + IDS_TIME_INTERVAL_MINUTES " perc" + IDS_TIME_INTERVAL_SECONDS " mp" } diff --git a/reactos/dll/win32/shlwapi/shlwapi_It.rc b/reactos/dll/win32/shlwapi/shlwapi_It.rc index e7a984eaa9a..c02f2922e06 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_It.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_It.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Errore!" FONT 8, "MS Shell Dlg" @@ -36,7 +36,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&No" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld bytes" IDS_TIME_INTERVAL_HOURS " hr" diff --git a/reactos/dll/win32/shlwapi/shlwapi_Ja.rc b/reactos/dll/win32/shlwapi/shlwapi_Ja.rc index 4b9c6ae5255..c7554a9d89e 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_Ja.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_Ja.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "エラー!" FONT 9, "MS Shell Dlg" @@ -39,7 +39,7 @@ FONT 9, "MS Shell Dlg" PUSHBUTTON L"いいえ(&N)" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld bytes" IDS_TIME_INTERVAL_HOURS " hr" diff --git a/reactos/dll/win32/shlwapi/shlwapi_Ko.rc b/reactos/dll/win32/shlwapi/shlwapi_Ko.rc index 3526cac6a04..3f6b7c2fb1f 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_Ko.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_Ko.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "¿¡·¯!" FONT 9, "MS Shell Dlg" @@ -37,7 +37,7 @@ FONT 9, "MS Shell Dlg" } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld ¹ÙÀÌÆ®" IDS_TIME_INTERVAL_HOURS "½Ã" diff --git a/reactos/dll/win32/shlwapi/shlwapi_Lt.rc b/reactos/dll/win32/shlwapi/shlwapi_Lt.rc index 264f6f64eb4..2ccd5c8cd9c 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_Lt.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_Lt.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Klaida!" FONT 8, "MS Shell Dlg" @@ -39,7 +39,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Ne" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld baitai" IDS_TIME_INTERVAL_HOURS " val" diff --git a/reactos/dll/win32/shlwapi/shlwapi_Nl.rc b/reactos/dll/win32/shlwapi/shlwapi_Nl.rc index 0c9e3cb6df0..e6bb91fa10f 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_Nl.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_Nl.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Fout!" FONT 8, "MS Shell Dlg" @@ -36,7 +36,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Nee" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld bytes" IDS_TIME_INTERVAL_HOURS " hr" diff --git a/reactos/dll/win32/shlwapi/shlwapi_No.rc b/reactos/dll/win32/shlwapi/shlwapi_No.rc index 9a99ac3feea..3f7a99812a6 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_No.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_No.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Feil" FONT 8, "MS Shell Dlg" @@ -36,7 +36,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Nei" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld byte" IDS_TIME_INTERVAL_HOURS " hr" diff --git a/reactos/dll/win32/shlwapi/shlwapi_Pl.rc b/reactos/dll/win32/shlwapi/shlwapi_Pl.rc index 8a0032c58cf..9f429d1cef6 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_Pl.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_Pl.rc @@ -1,5 +1,5 @@ /* - * English resources for shlwapi + * Polish resources for shlwapi * * Copyright 2004 Jon Griffiths * Copyright 2006 Mikolaj Zalewski @@ -23,7 +23,7 @@ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "B³¹d!" FONT 8, "MS Shell Dlg" @@ -37,7 +37,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Nie" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld bajtów" IDS_TIME_INTERVAL_HOURS " godz." diff --git a/reactos/dll/win32/shlwapi/shlwapi_Pt.rc b/reactos/dll/win32/shlwapi/shlwapi_Pt.rc index 9974fd673bc..2080fc5bcdc 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_Pt.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_Pt.rc @@ -2,7 +2,8 @@ * Portuguese resources for shlwapi * * Copyright 2004 Marcelo Duarte - * Copyright 2006 Américo José Melo + * Copyright 2006 Américo José Melo + * Copyright 2010 Gustavo Henrique Milaré * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -21,52 +22,25 @@ #include "resource.h" -LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN +#pragma code_page(65001) -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 -STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Erro!" -FONT 8, "MS Shell Dlg" -{ - LTEXT "", IDS_ERR_USER_MSG2, 15, 5, 28, 20 - LTEXT "", IDS_ERR_USER_MSG, 15, 5, 210, 8 - CHECKBOX "Não &me mostre essa mensagem novamente", IDC_ERR_DONT_SHOW, 5, 20, 210, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP - PUSHBUTTON L"&OK" IDOK, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON L"&Cancelar" IDCANCEL, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON L"&Sim" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON L"&Não" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP -} +LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL -LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE - -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Erro!" FONT 8, "MS Shell Dlg" { LTEXT "", IDS_ERR_USER_MSG2, 15, 5, 28, 20 LTEXT "", IDS_ERR_USER_MSG, 15, 5, 210, 8 - CHECKBOX "Não &mostrar esta mensagem novamente", IDC_ERR_DONT_SHOW, 5, 20, 210, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + CHECKBOX "Não &mostrar esta mensagem novamente", IDC_ERR_DONT_SHOW, 5, 20, 210, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP PUSHBUTTON L"&OK" IDOK, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON L"&Cancelar" IDCANCEL, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON L"&Sim" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON L"&Não" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP -} - - -LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN - -STRINGTABLE DISCARDABLE -{ - IDS_BYTES_FORMAT "%ld bytes" - IDS_TIME_INTERVAL_HOURS " hr" - IDS_TIME_INTERVAL_MINUTES " min" - IDS_TIME_INTERVAL_SECONDS " sec" + PUSHBUTTON L"&Não" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE - -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld bytes" IDS_TIME_INTERVAL_HOURS " hr" diff --git a/reactos/dll/win32/shlwapi/shlwapi_Ro.rc b/reactos/dll/win32/shlwapi/shlwapi_Ro.rc index 800f25971e9..85c6a7d5f6f 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_Ro.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_Ro.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL #pragma code_page(65001) -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Eroare!" FONT 8, "MS Shell Dlg" @@ -37,7 +37,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Nu" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld octeți" IDS_TIME_INTERVAL_HOURS " ore" diff --git a/reactos/dll/win32/shlwapi/shlwapi_Ru.rc b/reactos/dll/win32/shlwapi/shlwapi_Ru.rc index 42a5c38dd73..e6cce3ffb3a 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_Ru.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_Ru.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Ошибка!" FONT 8, "MS Shell Dlg" @@ -39,7 +39,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Нет" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld байт" IDS_TIME_INTERVAL_HOURS " час" diff --git a/reactos/dll/win32/shlwapi/shlwapi_Si.rc b/reactos/dll/win32/shlwapi/shlwapi_Si.rc index 820b6ce5ed1..5e6bb347483 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_Si.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_Si.rc @@ -24,7 +24,7 @@ LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Napak!" FONT 8, "MS Shell Dlg" @@ -38,7 +38,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Ne" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld bajtov" IDS_TIME_INTERVAL_HOURS " ur" diff --git a/reactos/dll/win32/shlwapi/shlwapi_Sk.rc b/reactos/dll/win32/shlwapi/shlwapi_Sk.rc index c44ca3f39fa..da5d215847a 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_Sk.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_Sk.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Chyba!" FONT 8, "MS Shell Dlg" @@ -36,7 +36,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Nie" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld bajtov" IDS_TIME_INTERVAL_HOURS " hod." diff --git a/reactos/dll/win32/shlwapi/shlwapi_Sv.rc b/reactos/dll/win32/shlwapi/shlwapi_Sv.rc index 6a0d52bc996..29711e4c3c2 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_Sv.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_Sv.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Fel!" FONT 8, "MS Shell Dlg" @@ -36,7 +36,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Nej" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld byte" IDS_TIME_INTERVAL_HOURS " h" diff --git a/reactos/dll/win32/shlwapi/shlwapi_Tr.rc b/reactos/dll/win32/shlwapi/shlwapi_Tr.rc index 58515962719..2492e276fc9 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_Tr.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_Tr.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Hata!" FONT 8, "MS Shell Dlg" @@ -36,7 +36,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Hayýr" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld bytes" IDS_TIME_INTERVAL_HOURS " hr" diff --git a/reactos/dll/win32/shlwapi/shlwapi_Uk.rc b/reactos/dll/win32/shlwapi/shlwapi_Uk.rc index c14a7ce13dc..a3c42b496d1 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_Uk.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_Uk.rc @@ -22,7 +22,7 @@ LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Ïîìèëêà!" FONT 8, "MS Shell Dlg" @@ -36,7 +36,7 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&ͳ" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld áàéò" IDS_TIME_INTERVAL_HOURS " ãîä" diff --git a/reactos/dll/win32/shlwapi/shlwapi_Zh.rc b/reactos/dll/win32/shlwapi/shlwapi_Zh.rc index 0a1d9a62bf2..302a7adfadc 100644 --- a/reactos/dll/win32/shlwapi/shlwapi_Zh.rc +++ b/reactos/dll/win32/shlwapi/shlwapi_Zh.rc @@ -25,7 +25,7 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "错误!" FONT 9, "MS Shell Dlg" @@ -39,7 +39,7 @@ FONT 9, "MS Shell Dlg" PUSHBUTTON L"否(&N)" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld 字节" IDS_TIME_INTERVAL_HOURS " 小时" @@ -49,7 +49,7 @@ STRINGTABLE DISCARDABLE LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL -IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +IDD_ERR_DIALOG DIALOG 0, 0, 220, 60 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "錯誤!" FONT 9, "MS Shell Dlg" @@ -63,7 +63,7 @@ FONT 9, "MS Shell Dlg" PUSHBUTTON L"否(&N)" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } -STRINGTABLE DISCARDABLE +STRINGTABLE { IDS_BYTES_FORMAT "%ld 字節" IDS_TIME_INTERVAL_HOURS " 小時" diff --git a/reactos/dll/win32/shlwapi/string.c b/reactos/dll/win32/shlwapi/string.c index a0269b6cb37..6102f3c928c 100644 --- a/reactos/dll/win32/shlwapi/string.c +++ b/reactos/dll/win32/shlwapi/string.c @@ -584,7 +584,9 @@ LPSTR WINAPI StrStrA(LPCSTR lpszStr, LPCSTR lpszSearch) */ LPWSTR WINAPI StrStrW(LPCWSTR lpszStr, LPCWSTR lpszSearch) { - if (!lpszStr || !lpszSearch) return NULL; + TRACE("(%s, %s)\n", debugstr_w(lpszStr), debugstr_w(lpszSearch)); + + if (!lpszStr || !lpszSearch || !*lpszSearch) return NULL; return strstrW( lpszStr, lpszSearch ); } @@ -707,6 +709,75 @@ LPWSTR WINAPI StrStrIW(LPCWSTR lpszStr, LPCWSTR lpszSearch) return NULL; } +/************************************************************************* + * StrStrNW [SHLWAPI.@] + * + * Find a substring within a string up to a given number of initial characters. + * + * PARAMS + * lpFirst [I] String to search in + * lpSrch [I] String to look for + * cchMax [I] Maximum number of initial search characters + * + * RETURNS + * The start of lpFirst within lpSrch, or NULL if not found. + */ +LPWSTR WINAPI StrStrNW(LPCWSTR lpFirst, LPCWSTR lpSrch, UINT cchMax) +{ + UINT i; + int len; + + TRACE("(%s, %s, %u)\n", debugstr_w(lpFirst), debugstr_w(lpSrch), cchMax); + + if (!lpFirst || !lpSrch || !*lpSrch || !cchMax) + return NULL; + + len = strlenW(lpSrch); + + for (i = cchMax; *lpFirst && (i > 0); i--, lpFirst++) + { + if (!strncmpW(lpFirst, lpSrch, len)) + return (LPWSTR)lpFirst; + } + + return NULL; +} + +/************************************************************************* + * StrStrNIW [SHLWAPI.@] + * + * Find a substring within a string up to a given number of initial characters, + * ignoring case. + * + * PARAMS + * lpFirst [I] String to search in + * lpSrch [I] String to look for + * cchMax [I] Maximum number of initial search characters + * + * RETURNS + * The start of lpFirst within lpSrch, or NULL if not found. + */ +LPWSTR WINAPI StrStrNIW(LPCWSTR lpFirst, LPCWSTR lpSrch, UINT cchMax) +{ + UINT i; + int len; + + TRACE("(%s, %s, %u)\n", debugstr_w(lpFirst), debugstr_w(lpSrch), cchMax); + + if (!lpFirst || !lpSrch || !*lpSrch || !cchMax) + return NULL; + + len = strlenW(lpSrch); + + for (i = cchMax; *lpFirst && (i > 0); i--, lpFirst++) + { + if (!strncmpiW(lpFirst, lpSrch, len)) + return (LPWSTR)lpFirst; + } + + return NULL; +} + /************************************************************************* * StrToIntA [SHLWAPI.@] * diff --git a/reactos/dll/win32/shlwapi/url.c b/reactos/dll/win32/shlwapi/url.c index d7a36dbec46..2f09bc7836d 100644 --- a/reactos/dll/win32/shlwapi/url.c +++ b/reactos/dll/win32/shlwapi/url.c @@ -276,10 +276,11 @@ HRESULT WINAPI UrlCanonicalizeW(LPCWSTR pszUrl, LPWSTR pszCanonicalized, LPWSTR lpszUrlCpy, wk2, mp, mp2; INT state; DWORD nByteLen, nLen, nWkLen; - WCHAR slash = '/'; + WCHAR slash = '\0'; static const WCHAR wszFile[] = {'f','i','l','e',':'}; static const WCHAR wszRes[] = {'r','e','s',':'}; + static const WCHAR wszHttp[] = {'h','t','t','p',':'}; static const WCHAR wszLocalhost[] = {'l','o','c','a','l','h','o','s','t'}; static const WCHAR wszFilePrefix[] = {'f','i','l','e',':','/','/','/'}; @@ -299,6 +300,12 @@ HRESULT WINAPI UrlCanonicalizeW(LPCWSTR pszUrl, LPWSTR pszCanonicalized, lpszUrlCpy = HeapAlloc(GetProcessHeap(), 0, nByteLen+sizeof(wszFilePrefix)+sizeof(WCHAR)); + if ((nByteLen >= sizeof(wszHttp) && + !memcmp(wszHttp, pszUrl, sizeof(wszHttp))) || + (nByteLen >= sizeof(wszFile) && + !memcmp(wszFile, pszUrl, sizeof(wszFile)))) + slash = '/'; + if((dwFlags & URL_FILE_USE_PATHURL) && nByteLen >= sizeof(wszFile) && !memcmp(wszFile, pszUrl, sizeof(wszFile))) slash = '\\'; @@ -437,38 +444,38 @@ HRESULT WINAPI UrlCanonicalizeW(LPCWSTR pszUrl, LPWSTR pszCanonicalized, *wk2++ = *wk1; wk1++; - if (*wk1 == '.') { + while (*wk1 == '.') { TRACE("found '/.'\n"); if (wk1[1] == '/' || wk1[1] == '\\') { /* case of /./ -> skip the ./ */ wk1 += 2; } - else if (wk1[1] == '.') { - /* found /.. look for next / */ - TRACE("found '/..'\n"); - if (wk1[2] == '/' || wk1[2] == '\\' ||wk1[2] == '?' - || wk1[2] == '#' || !wk1[2]) { - /* case /../ -> need to backup wk2 */ - TRACE("found '/../'\n"); - *(wk2-1) = '\0'; /* set end of string */ - mp = strrchrW(root, '/'); - mp2 = strrchrW(root, '\\'); - if(mp2 && (!mp || mp2 < mp)) - mp = mp2; - if (mp && (mp >= root)) { - /* found valid backup point */ - wk2 = mp + 1; - if(wk1[2] != '/' && wk1[2] != '\\') - wk1 += 2; - else - wk1 += 3; - } - else { - /* did not find point, restore '/' */ - *(wk2-1) = slash; - } + else if (wk1[1] == '.' && (wk1[2] == '/' + || wk1[2] == '\\' || wk1[2] == '?' + || wk1[2] == '#' || !wk1[2])) { + /* case /../ -> need to backup wk2 */ + TRACE("found '/../'\n"); + *(wk2-1) = '\0'; /* set end of string */ + mp = strrchrW(root, '/'); + mp2 = strrchrW(root, '\\'); + if(mp2 && (!mp || mp2 < mp)) + mp = mp2; + if (mp && (mp >= root)) { + /* found valid backup point */ + wk2 = mp + 1; + if(wk1[2] != '/' && wk1[2] != '\\') + wk1 += 2; + else + wk1 += 3; + } + else { + /* did not find point, restore '/' */ + *(wk2-1) = slash; + break; } } + else + break; } } *wk2 = '\0'; diff --git a/reactos/dll/win32/urlmon/umon.c b/reactos/dll/win32/urlmon/umon.c index 9a54e11ea21..fea7b21c471 100644 --- a/reactos/dll/win32/urlmon/umon.c +++ b/reactos/dll/win32/urlmon/umon.c @@ -733,8 +733,18 @@ HRESULT WINAPI HlinkSimpleNavigateToMoniker(IMoniker *pmkTarget, LPCWSTR szLocation, LPCWSTR szTargetFrameName, IUnknown *pUnk, IBindCtx *pbc, IBindStatusCallback *pbsc, DWORD grfHLNF, DWORD dwReserved) { - FIXME("stub\n"); - return E_NOTIMPL; + LPWSTR target; + HRESULT hres; + + TRACE("\n"); + + hres = IMoniker_GetDisplayName(pmkTarget, pbc, 0, &target); + if(hres == S_OK) + hres = HlinkSimpleNavigateToString( target, szLocation, szTargetFrameName, + pUnk, pbc, pbsc, grfHLNF, dwReserved ); + CoTaskMemFree(target); + + return hres; } /*********************************************************************** diff --git a/reactos/dll/win32/urlmon/uri.c b/reactos/dll/win32/urlmon/uri.c index df5ca8b1974..82f48a0cae5 100644 --- a/reactos/dll/win32/urlmon/uri.c +++ b/reactos/dll/win32/urlmon/uri.c @@ -20,11 +20,35 @@ #include "urlmon_main.h" #include "wine/debug.h" +#define NO_SHLWAPI_REG +#include "shlwapi.h" + +#define UINT_MAX 0xffffffff + WINE_DEFAULT_DEBUG_CHANNEL(urlmon); typedef struct { const IUriVtbl *lpIUriVtbl; LONG ref; + + BSTR raw_uri; + + /* Information about the canonicalized URI's buffer. */ + WCHAR *canon_uri; + DWORD canon_size; + DWORD canon_len; + + INT scheme_start; + DWORD scheme_len; + URL_SCHEME scheme_type; + + INT userinfo_start; + DWORD userinfo_len; + INT userinfo_split; + + INT host_start; + DWORD host_len; + Uri_HOST_TYPE host_type; } Uri; typedef struct { @@ -32,6 +56,1111 @@ typedef struct { LONG ref; } UriBuilder; +typedef struct { + BSTR uri; + + BOOL is_relative; + BOOL is_opaque; + BOOL has_implicit_scheme; + BOOL has_implicit_ip; + UINT implicit_ipv4; + + const WCHAR *scheme; + DWORD scheme_len; + URL_SCHEME scheme_type; + + const WCHAR *userinfo; + DWORD userinfo_len; + INT userinfo_split; + + const WCHAR *host; + DWORD host_len; + Uri_HOST_TYPE host_type; +} parse_data; + +static const CHAR hexDigits[] = "0123456789ABCDEF"; + +/* List of scheme types/scheme names that are recognized by the IUri interface as of IE 7. */ +static const struct { + URL_SCHEME scheme; + WCHAR scheme_name[16]; +} recognized_schemes[] = { + {URL_SCHEME_FTP, {'f','t','p',0}}, + {URL_SCHEME_HTTP, {'h','t','t','p',0}}, + {URL_SCHEME_GOPHER, {'g','o','p','h','e','r',0}}, + {URL_SCHEME_MAILTO, {'m','a','i','l','t','o',0}}, + {URL_SCHEME_NEWS, {'n','e','w','s',0}}, + {URL_SCHEME_NNTP, {'n','n','t','p',0}}, + {URL_SCHEME_TELNET, {'t','e','l','n','e','t',0}}, + {URL_SCHEME_WAIS, {'w','a','i','s',0}}, + {URL_SCHEME_FILE, {'f','i','l','e',0}}, + {URL_SCHEME_MK, {'m','k',0}}, + {URL_SCHEME_HTTPS, {'h','t','t','p','s',0}}, + {URL_SCHEME_SHELL, {'s','h','e','l','l',0}}, + {URL_SCHEME_SNEWS, {'s','n','e','w','s',0}}, + {URL_SCHEME_LOCAL, {'l','o','c','a','l',0}}, + {URL_SCHEME_JAVASCRIPT, {'j','a','v','a','s','c','r','i','p','t',0}}, + {URL_SCHEME_VBSCRIPT, {'v','b','s','c','r','i','p','t',0}}, + {URL_SCHEME_ABOUT, {'a','b','o','u','t',0}}, + {URL_SCHEME_RES, {'r','e','s',0}}, + {URL_SCHEME_MSSHELLROOTED, {'m','s','-','s','h','e','l','l','-','r','o','o','t','e','d',0}}, + {URL_SCHEME_MSSHELLIDLIST, {'m','s','-','s','h','e','l','l','-','i','d','l','i','s','t',0}}, + {URL_SCHEME_MSHELP, {'h','c','p',0}}, + {URL_SCHEME_WILDCARD, {'*',0}} +}; + +static inline BOOL is_alpha(WCHAR val) { + return ((val >= 'a' && val <= 'z') || (val >= 'A' && val <= 'Z')); +} + +static inline BOOL is_num(WCHAR val) { + return (val >= '0' && val <= '9'); +} + +/* A URI is implicitly a file path if it begins with + * a drive letter (eg X:) or starts with "\\" (UNC path). + */ +static inline BOOL is_implicit_file_path(const WCHAR *str) { + if(is_alpha(str[0]) && str[1] == ':') + return TRUE; + else if(str[0] == '\\' && str[1] == '\\') + return TRUE; + + return FALSE; +} + +/* Checks if the URI is a hierarchical URI. A hierarchical + * URI is one that has "//" after the scheme. + */ +static BOOL check_hierarchical(const WCHAR **ptr) { + const WCHAR *start = *ptr; + + if(**ptr != '/') + return FALSE; + + ++(*ptr); + if(**ptr != '/') { + *ptr = start; + return FALSE; + } + + ++(*ptr); + return TRUE; +} + +/* unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" */ +static inline BOOL is_unreserved(WCHAR val) { + return (is_alpha(val) || is_num(val) || val == '-' || val == '.' || + val == '_' || val == '~'); +} + +/* sub-delims = "!" / "$" / "&" / "'" / "(" / ")" + * / "*" / "+" / "," / ";" / "=" + */ +static inline BOOL is_subdelim(WCHAR val) { + return (val == '!' || val == '$' || val == '&' || + val == '\'' || val == '(' || val == ')' || + val == '*' || val == '+' || val == ',' || + val == ';' || val == '='); +} + +/* gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@" */ +static inline BOOL is_gendelim(WCHAR val) { + return (val == ':' || val == '/' || val == '?' || + val == '#' || val == '[' || val == ']' || + val == '@'); +} + +/* Characters that delimit the end of the authority + * section of a URI. Sometimes a '\\' is considered + * an authority delimeter. + */ +static inline BOOL is_auth_delim(WCHAR val, BOOL acceptSlash) { + return (val == '#' || val == '/' || val == '?' || + val == '\0' || (acceptSlash && val == '\\')); +} + +/* reserved = gen-delims / sub-delims */ +static inline BOOL is_reserved(WCHAR val) { + return (is_subdelim(val) || is_gendelim(val)); +} + +static inline BOOL is_hexdigit(WCHAR val) { + return ((val >= 'a' && val <= 'f') || + (val >= 'A' && val <= 'F') || + (val >= '0' && val <= '9')); +} + +/* Taken from dlls/jscript/lex.c */ +static int hex_to_int(WCHAR val) { + if(val >= '0' && val <= '9') + return val - '0'; + else if(val >= 'a' && val <= 'f') + return val - 'a' + 10; + else if(val >= 'A' && val <= 'F') + return val - 'A' + 10; + + return -1; +} + +/* Helper function for converting a percent encoded string + * representation of a WCHAR value into its actual WCHAR value. If + * the two characters following the '%' aren't valid hex values then + * this function returns the NULL character. + * + * Eg. + * "%2E" will result in '.' being returned by this function. + */ +static WCHAR decode_pct_val(const WCHAR *ptr) { + WCHAR ret = '\0'; + + if(*ptr == '%' && is_hexdigit(*(ptr + 1)) && is_hexdigit(*(ptr + 2))) { + INT a = hex_to_int(*(ptr + 1)); + INT b = hex_to_int(*(ptr + 2)); + + ret = a << 4; + ret += b; + } + + return ret; +} + +/* Helper function for percent encoding a given character + * and storing the encoded value into a given buffer (dest). + * + * It's up to the calling function to ensure that there is + * at least enough space in 'dest' for the percent encoded + * value to be stored (so dest + 3 spaces available). + */ +static inline void pct_encode_val(WCHAR val, WCHAR *dest) { + dest[0] = '%'; + dest[1] = hexDigits[(val >> 4) & 0xf]; + dest[2] = hexDigits[val & 0xf]; +} + +/* Converts an IPv4 address in numerical form into it's fully qualified + * string form. This function returns the number of characters written + * to 'dest'. If 'dest' is NULL this function will return the number of + * characters that would have been written. + * + * It's up to the caller to ensure there's enough space in 'dest' for the + * address. + */ +static DWORD ui2ipv4(WCHAR *dest, UINT address) { + static const WCHAR formatW[] = + {'%','u','.','%','u','.','%','u','.','%','u',0}; + DWORD ret = 0; + UCHAR digits[4]; + + digits[0] = (address >> 24) & 0xff; + digits[1] = (address >> 16) & 0xff; + digits[2] = (address >> 8) & 0xff; + digits[3] = address & 0xff; + + if(!dest) { + WCHAR tmp[16]; + ret = sprintfW(tmp, formatW, digits[0], digits[1], digits[2], digits[3]); + } else + ret = sprintfW(dest, formatW, digits[0], digits[1], digits[2], digits[3]); + + return ret; +} + +/* Checks if the characters pointed to by 'ptr' are + * a percent encoded data octet. + * + * pct-encoded = "%" HEXDIG HEXDIG + */ +static BOOL check_pct_encoded(const WCHAR **ptr) { + const WCHAR *start = *ptr; + + if(**ptr != '%') + return FALSE; + + ++(*ptr); + if(!is_hexdigit(**ptr)) { + *ptr = start; + return FALSE; + } + + ++(*ptr); + if(!is_hexdigit(**ptr)) { + *ptr = start; + return FALSE; + } + + ++(*ptr); + return TRUE; +} + +/* dec-octet = DIGIT ; 0-9 + * / %x31-39 DIGIT ; 10-99 + * / "1" 2DIGIT ; 100-199 + * / "2" %x30-34 DIGIT ; 200-249 + * / "25" %x30-35 ; 250-255 + */ +static BOOL check_dec_octet(const WCHAR **ptr) { + const WCHAR *c1, *c2, *c3; + + c1 = *ptr; + /* A dec-octet must be at least 1 digit long. */ + if(*c1 < '0' || *c1 > '9') + return FALSE; + + ++(*ptr); + + c2 = *ptr; + /* Since the 1 digit requirment was meet, it doesn't + * matter if this is a DIGIT value, it's considered a + * dec-octet. + */ + if(*c2 < '0' || *c2 > '9') + return TRUE; + + ++(*ptr); + + c3 = *ptr; + /* Same explanation as above. */ + if(*c3 < '0' || *c3 > '9') + return TRUE; + + /* Anything > 255 isn't a valid IP dec-octet. */ + if(*c1 >= '2' && *c2 >= '5' && *c3 >= '5') { + *ptr = c1; + return FALSE; + } + + ++(*ptr); + return TRUE; +} + +/* Checks if there is an implicit IPv4 address in the host component of the URI. + * The max value of an implicit IPv4 address is UINT_MAX. + * + * Ex: + * "234567" would be considered an implicit IPv4 address. + */ +static BOOL check_implicit_ipv4(const WCHAR **ptr, UINT *val) { + const WCHAR *start = *ptr; + ULONGLONG ret = 0; + *val = 0; + + while(is_num(**ptr)) { + ret = ret*10 + (**ptr - '0'); + + if(ret > UINT_MAX) { + *ptr = start; + return FALSE; + } + ++(*ptr); + } + + if(*ptr == start) + return FALSE; + + *val = ret; + return TRUE; +} + +/* Checks if the string contains an IPv4 address. + * + * This function has a strict mode or a non-strict mode of operation + * When 'strict' is set to FALSE this function will return TRUE if + * the string contains at least 'dec-octet "." dec-octet' since partial + * IPv4 addresses will be normalized out into full IPv4 addresses. When + * 'strict' is set this function expects there to be a full IPv4 address. + * + * IPv4address = dec-octet "." dec-octet "." dec-octet "." dec-octet + */ +static BOOL check_ipv4address(const WCHAR **ptr, BOOL strict) { + const WCHAR *start = *ptr; + + if(!check_dec_octet(ptr)) { + *ptr = start; + return FALSE; + } + + if(**ptr != '.') { + *ptr = start; + return FALSE; + } + + ++(*ptr); + if(!check_dec_octet(ptr)) { + *ptr = start; + return FALSE; + } + + if(**ptr != '.') { + if(strict) { + *ptr = start; + return FALSE; + } else + return TRUE; + } + + ++(*ptr); + if(!check_dec_octet(ptr)) { + *ptr = start; + return FALSE; + } + + if(**ptr != '.') { + if(strict) { + *ptr = start; + return FALSE; + } else + return TRUE; + } + + ++(*ptr); + if(!check_dec_octet(ptr)) { + *ptr = start; + return FALSE; + } + + /* Found a four digit ip address. */ + return TRUE; +} +/* Tries to parse the scheme name of the URI. + * + * scheme = ALPHA *(ALPHA | NUM | '+' | '-' | '.') as defined by RFC 3896. + * NOTE: Windows accepts a number as the first character of a scheme. + */ +static BOOL parse_scheme_name(const WCHAR **ptr, parse_data *data) { + const WCHAR *start = *ptr; + + data->scheme = NULL; + data->scheme_len = 0; + + while(**ptr) { + if(**ptr == '*' && *ptr == start) { + /* Might have found a wildcard scheme. If it is the next + * char has to be a ':' for it to be a valid URI + */ + ++(*ptr); + break; + } else if(!is_num(**ptr) && !is_alpha(**ptr) && **ptr != '+' && + **ptr != '-' && **ptr != '.') + break; + + (*ptr)++; + } + + if(*ptr == start) + return FALSE; + + /* Schemes must end with a ':' */ + if(**ptr != ':') { + *ptr = start; + return FALSE; + } + + data->scheme = start; + data->scheme_len = *ptr - start; + + ++(*ptr); + return TRUE; +} + +/* Tries to deduce the corresponding URL_SCHEME for the given URI. Stores + * the deduced URL_SCHEME in data->scheme_type. + */ +static BOOL parse_scheme_type(parse_data *data) { + /* If there's scheme data then see if it's a recognized scheme. */ + if(data->scheme && data->scheme_len) { + DWORD i; + + for(i = 0; i < sizeof(recognized_schemes)/sizeof(recognized_schemes[0]); ++i) { + if(lstrlenW(recognized_schemes[i].scheme_name) == data->scheme_len) { + /* Has to be a case insensitive compare. */ + if(!StrCmpNIW(recognized_schemes[i].scheme_name, data->scheme, data->scheme_len)) { + data->scheme_type = recognized_schemes[i].scheme; + return TRUE; + } + } + } + + /* If we get here it means it's not a recognized scheme. */ + data->scheme_type = URL_SCHEME_UNKNOWN; + return TRUE; + } else if(data->is_relative) { + /* Relative URI's have no scheme. */ + data->scheme_type = URL_SCHEME_UNKNOWN; + return TRUE; + } else { + /* Should never reach here! what happened... */ + FIXME("(%p): Unable to determine scheme type for URI %s\n", data, debugstr_w(data->uri)); + return FALSE; + } +} + +/* Tries to parse (or deduce) the scheme_name of a URI. If it can't + * parse a scheme from the URI it will try to deduce the scheme_name and scheme_type + * using the flags specified in 'flags' (if any). Flags that affect how this function + * operates are the Uri_CREATE_ALLOW_* flags. + * + * All parsed/deduced information will be stored in 'data' when the function returns. + * + * Returns TRUE if it was able to successfully parse the information. + */ +static BOOL parse_scheme(const WCHAR **ptr, parse_data *data, DWORD flags) { + static const WCHAR fileW[] = {'f','i','l','e',0}; + static const WCHAR wildcardW[] = {'*',0}; + + /* First check to see if the uri could implicitly be a file path. */ + if(is_implicit_file_path(*ptr)) { + if(flags & Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME) { + data->scheme = fileW; + data->scheme_len = lstrlenW(fileW); + data->has_implicit_scheme = TRUE; + + TRACE("(%p %p %x): URI is an implicit file path.\n", ptr, data, flags); + } else { + /* Window's does not consider anything that can implicitly be a file + * path to be a valid URI if the ALLOW_IMPLICIT_FILE_SCHEME flag is not set... + */ + TRACE("(%p %p %x): URI is implicitly a file path, but, the ALLOW_IMPLICIT_FILE_SCHEME flag wasn't set.\n", + ptr, data, flags); + return FALSE; + } + } else if(!parse_scheme_name(ptr, data)) { + /* No Scheme was found, this means it could be: + * a) an implicit Wildcard scheme + * b) a relative URI + * c) a invalid URI. + */ + if(flags & Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME) { + data->scheme = wildcardW; + data->scheme_len = lstrlenW(wildcardW); + data->has_implicit_scheme = TRUE; + + TRACE("(%p %p %x): URI is an implicit wildcard scheme.\n", ptr, data, flags); + } else if (flags & Uri_CREATE_ALLOW_RELATIVE) { + data->is_relative = TRUE; + TRACE("(%p %p %x): URI is relative.\n", ptr, data, flags); + } else { + TRACE("(%p %p %x): Malformed URI found. Unable to deduce scheme name.\n", ptr, data, flags); + return FALSE; + } + } + + if(!data->is_relative) + TRACE("(%p %p %x): Found scheme=%s scheme_len=%d\n", ptr, data, flags, + debugstr_wn(data->scheme, data->scheme_len), data->scheme_len); + + if(!parse_scheme_type(data)) + return FALSE; + + TRACE("(%p %p %x): Assigned %d as the URL_SCHEME.\n", ptr, data, flags, data->scheme_type); + return TRUE; +} + +/* Parses the userinfo part of the URI (if it exists). The userinfo field of + * a URI can consist of "username:password@", or just "username@". + * + * RFC def: + * userinfo = *( unreserved / pct-encoded / sub-delims / ":" ) + * + * NOTES: + * 1) If there is more than one ':' in the userinfo part of the URI Windows + * uses the first occurence of ':' to delimit the username and password + * components. + * + * ex: + * ftp://user:pass:word@winehq.org + * + * Would yield, "user" as the username and "pass:word" as the password. + * + * 2) Windows allows any character to appear in the "userinfo" part of + * a URI, as long as it's not an authority delimeter character set. + */ +static void parse_userinfo(const WCHAR **ptr, parse_data *data, DWORD flags) { + data->userinfo = *ptr; + data->userinfo_split = -1; + + while(**ptr != '@') { + if(**ptr == ':' && data->userinfo_split == -1) + data->userinfo_split = *ptr - data->userinfo; + else if(**ptr == '%') { + /* If it's a known scheme type, it has to be a valid percent + * encoded value. + */ + if(!check_pct_encoded(ptr)) { + if(data->scheme_type != URL_SCHEME_UNKNOWN) { + *ptr = data->userinfo; + data->userinfo = NULL; + data->userinfo_split = -1; + + TRACE("(%p %p %x): URI contained no userinfo.\n", ptr, data, flags); + return; + } + } else + continue; + } else if(is_auth_delim(**ptr, data->scheme_type != URL_SCHEME_UNKNOWN)) + break; + + ++(*ptr); + } + + if(**ptr != '@') { + *ptr = data->userinfo; + data->userinfo = NULL; + data->userinfo_split = -1; + + TRACE("(%p %p %x): URI contained no userinfo.\n", ptr, data, flags); + return; + } + + data->userinfo_len = *ptr - data->userinfo; + TRACE("(%p %p %x): Found userinfo=%s userinfo_len=%d split=%d.\n", ptr, data, flags, + debugstr_wn(data->userinfo, data->userinfo_len), data->userinfo_len, data->userinfo_split); + ++(*ptr); +} + +/* Attempts to parse a IPv4 address from the URI. + * + * NOTES: + * Window's normalizes IPv4 addresses, This means there's three + * possibilities for the URI to contain an IPv4 address. + * 1) A well formed address (ex. 192.2.2.2). + * 2) A partially formed address. For example "192.0" would + * normalize to "192.0.0.0" during canonicalization. + * 3) An implicit IPv4 address. For example "256" would + * normalize to "0.0.1.0" during canonicalization. Also + * note that the maximum value for an implicit IP address + * is UINT_MAX, if the value in the URI exceeds this then + * it is not considered an IPv4 address. + */ +static BOOL parse_ipv4address(const WCHAR **ptr, parse_data *data, DWORD flags) { + const BOOL is_unknown = data->scheme_type == URL_SCHEME_UNKNOWN; + data->host = *ptr; + + if(!check_ipv4address(ptr, FALSE)) { + if(!check_implicit_ipv4(ptr, &data->implicit_ipv4)) { + TRACE("(%p %p %x): URI didn't contain anything looking like an IPv4 address.\n", + ptr, data, flags); + *ptr = data->host; + data->host = NULL; + return FALSE; + } else + data->has_implicit_ip = TRUE; + } + + /* Check if what we found is the only part of the host name (if it isn't + * we don't have an IPv4 address). + */ + if(!is_auth_delim(**ptr, !is_unknown) && **ptr != ':') { + *ptr = data->host; + data->host = NULL; + data->has_implicit_ip = FALSE; + return FALSE; + } + + data->host_len = *ptr - data->host; + data->host_type = Uri_HOST_IPV4; + TRACE("(%p %p %x): IPv4 address found. host=%s host_len=%d host_type=%d\n", + ptr, data, flags, debugstr_wn(data->host, data->host_len), + data->host_len, data->host_type); + return TRUE; +} + +/* Parses the host information from the URI. + * + * host = IP-literal / IPv4address / reg-name + */ +static BOOL parse_host(const WCHAR **ptr, parse_data *data, DWORD flags) { + if(!parse_ipv4address(ptr, data, flags)) { + WARN("(%p %p %x): Only IPv4 parsing is implemented so far.\n", ptr, data, flags); + data->host_type = Uri_HOST_UNKNOWN; + } + + /* TODO parse IP-Literal / reg-name. */ + + return TRUE; +} + +/* Parses the authority information from the URI. + * + * authority = [ userinfo "@" ] host [ ":" port ] + */ +static BOOL parse_authority(const WCHAR **ptr, parse_data *data, DWORD flags) { + parse_userinfo(ptr, data, flags); + + if(!parse_host(ptr, data, flags)) + return FALSE; + + return TRUE; +} + +/* Determines how the URI should be parsed after the scheme information. + * + * If the scheme is followed, by "//" then, it is treated as an hierarchical URI + * which then the authority and path information will be parsed out. Otherwise, the + * URI will be treated as an opaque URI which the authority information is not parsed + * out. + * + * RFC 3896 definition of hier-part: + * + * hier-part = "//" authority path-abempty + * / path-absolute + * / path-rootless + * / path-empty + * + * MSDN opaque URI definition: + * scheme ":" path [ "#" fragment ] + * + * NOTES: + * If the URI is of an unknown scheme type and has a "//" following the scheme then it + * is treated as a hierarchical URI, but, if the CREATE_NO_CRACK_UNKNOWN_SCHEMES flag is + * set then it is considered an opaque URI reguardless of what follows the scheme information + * (per MSDN documentation). + */ +static BOOL parse_hierpart(const WCHAR **ptr, parse_data *data, DWORD flags) { + /* Checks if the authority information needs to be parsed. + * + * Relative URI's aren't hierarchical URI's, but, they could trick + * "check_hierarchical" into thinking it is, so we need to explicitly + * make sure it's not relative. Also, if the URI is an implicit file + * scheme it might not contain a "//", but, it's considered hierarchical + * anyways. Wildcard Schemes are always considered hierarchical + */ + if(data->scheme_type == URL_SCHEME_WILDCARD || + data->scheme_type == URL_SCHEME_FILE || + (!data->is_relative && check_hierarchical(ptr))) { + /* Only treat it as a hierarchical URI if the scheme_type is known or + * the Uri_CREATE_NO_CRACK_UNKNOWN_SCHEMES flag is not set. + */ + if(data->scheme_type != URL_SCHEME_UNKNOWN || + !(flags & Uri_CREATE_NO_CRACK_UNKNOWN_SCHEMES)) { + TRACE("(%p %p %x): Treating URI as an hierarchical URI.\n", ptr, data, flags); + data->is_opaque = FALSE; + + /* TODO: Handle hierarchical URI's, parse authority then parse the path. */ + if(!parse_authority(ptr, data, flags)) + return FALSE; + + return TRUE; + } + } + + /* If it reaches here, then the URI will be treated as an opaque + * URI. + */ + + TRACE("(%p %p %x): Treating URI as an opaque URI.\n", ptr, data, flags); + + data->is_opaque = TRUE; + /* TODO: Handle opaque URI's, parse path. */ + return TRUE; +} + +/* Parses and validates the components of the specified by data->uri + * and stores the information it parses into 'data'. + * + * Returns TRUE if it successfully parsed the URI. False otherwise. + */ +static BOOL parse_uri(parse_data *data, DWORD flags) { + const WCHAR *ptr; + const WCHAR **pptr; + + ptr = data->uri; + pptr = &ptr; + + TRACE("(%p %x): BEGINNING TO PARSE URI %s.\n", data, flags, debugstr_w(data->uri)); + + if(!parse_scheme(pptr, data, flags)) + return FALSE; + + if(!parse_hierpart(pptr, data, flags)) + return FALSE; + + TRACE("(%p %x): FINISHED PARSING URI.\n", data, flags); + return TRUE; +} + +/* Canonicalizes the userinfo of the URI represented by the parse_data. + * + * Canonicalization of the userinfo is a simple process. If there are any percent + * encoded characters that fall in the "unreserved" character set, they are decoded + * to their actual value. If a character is not in the "unreserved" or "reserved" sets + * then it is percent encoded. Other than that the characters are copied over without + * change. + */ +static BOOL canonicalize_userinfo(const parse_data *data, Uri *uri, DWORD flags, BOOL computeOnly) { + DWORD i = 0; + + uri->userinfo_start = uri->userinfo_split = -1; + uri->userinfo_len = 0; + + if(!data->userinfo) + /* URI doesn't have userinfo, so nothing to do here. */ + return TRUE; + + uri->userinfo_start = uri->canon_len; + + while(i < data->userinfo_len) { + if(data->userinfo[i] == ':' && uri->userinfo_split == -1) + /* Windows only considers the first ':' as the delimiter. */ + uri->userinfo_split = uri->canon_len - uri->userinfo_start; + else if(data->userinfo[i] == '%') { + /* Only decode % encoded values for known scheme types. */ + if(data->scheme_type != URL_SCHEME_UNKNOWN) { + /* See if the value really needs decoded. */ + WCHAR val = decode_pct_val(data->userinfo + i); + if(is_unreserved(val)) { + if(!computeOnly) + uri->canon_uri[uri->canon_len] = val; + + ++uri->canon_len; + + /* Move pass the hex characters. */ + i += 3; + continue; + } + } + } else if(!is_reserved(data->userinfo[i]) && !is_unreserved(data->userinfo[i]) && + data->userinfo[i] != '\\') { + /* Only percent encode forbidden characters if the NO_ENCODE_FORBIDDEN_CHARACTERS flag + * is NOT set. + */ + if(!(flags & Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS)) { + if(!computeOnly) + pct_encode_val(data->userinfo[i], uri->canon_uri + uri->canon_len); + + uri->canon_len += 3; + ++i; + continue; + } + } + + if(!computeOnly) + /* Nothing special, so just copy the character over. */ + uri->canon_uri[uri->canon_len] = data->userinfo[i]; + + ++uri->canon_len; + ++i; + } + + uri->userinfo_len = uri->canon_len - uri->userinfo_start; + if(!computeOnly) + TRACE("(%p %p %x %d): Canonicalized userinfo, userinfo_start=%d, userinfo=%s, userinfo_split=%d userinfo_len=%d.\n", + data, uri, flags, computeOnly, uri->userinfo_start, debugstr_wn(uri->canon_uri + uri->userinfo_start, uri->userinfo_len), + uri->userinfo_split, uri->userinfo_len); + + /* Now insert the '@' after the userinfo. */ + if(!computeOnly) + uri->canon_uri[uri->canon_len] = '@'; + + ++uri->canon_len; + return TRUE; +} + +/* Attempts to canonicalize an implicit IPv4 address. */ +static BOOL canonicalize_implicit_ipv4address(const parse_data *data, Uri *uri, DWORD flags, BOOL computeOnly) { + uri->host_start = uri->canon_len; + + TRACE("%u\n", data->implicit_ipv4); + /* For unknown scheme types Window's doesn't convert + * the value into an IP address, but, it still considers + * it an IPv4 address. + */ + if(data->scheme_type == URL_SCHEME_UNKNOWN) { + if(!computeOnly) + memcpy(uri->canon_uri+uri->canon_len, data->host, data->host_len*sizeof(WCHAR)); + uri->canon_len += data->host_len; + } else { + if(!computeOnly) + uri->canon_len += ui2ipv4(uri->canon_uri+uri->canon_len, data->implicit_ipv4); + else + uri->canon_len += ui2ipv4(NULL, data->implicit_ipv4); + } + + uri->host_len = uri->canon_len - uri->host_start; + uri->host_type = Uri_HOST_IPV4; + + if(!computeOnly) + TRACE("%p %p %x %d): Canonicalized implicit IP address=%s len=%d\n", + data, uri, flags, computeOnly, + debugstr_wn(uri->canon_uri+uri->host_start, uri->host_len), + uri->host_len); + + return TRUE; +} + +/* Attempts to canonicalize an IPv4 address. + * + * If the parse_data represents a URI that has an implicit IPv4 address + * (ex. http://256/, this function will convert 256 into 0.0.1.0). If + * the implicit IP address exceeds the value of UINT_MAX (maximum value + * for an IPv4 address) it's canonicalized as if were a reg-name. + * + * If the parse_data contains a partial or full IPv4 address it normalizes it. + * A partial IPv4 address is something like "192.0" and would be normalized to + * "192.0.0.0". With a full (or partial) IPv4 address like "192.002.01.003" would + * be normalized to "192.2.1.3". + * + * NOTES: + * Window's ONLY normalizes IPv4 address for known scheme types (one that isn't + * URL_SCHEME_UNKNOWN). For unknown scheme types, it simply copies the data from + * the original URI into the canonicalized URI, but, it still recognizes URI's + * host type as HOST_IPV4. + */ +static BOOL canonicalize_ipv4address(const parse_data *data, Uri *uri, DWORD flags, BOOL computeOnly) { + if(data->has_implicit_ip) + return canonicalize_implicit_ipv4address(data, uri, flags, computeOnly); + else { + uri->host_start = uri->canon_len; + + /* Windows only normalizes for known scheme types. */ + if(data->scheme_type != URL_SCHEME_UNKNOWN) { + /* parse_data contains a partial or full IPv4 address, so normalize it. */ + DWORD i, octetDigitCount = 0, octetCount = 0; + BOOL octetHasDigit = FALSE; + + for(i = 0; i < data->host_len; ++i) { + if(data->host[i] == '0' && !octetHasDigit) { + /* Can ignore leading zeros if: + * 1) It isn't the last digit of the octet. + * 2) i+1 != data->host_len + * 3) i+1 != '.' + */ + if(octetDigitCount == 2 || + i+1 == data->host_len || + data->host[i+1] == '.') { + if(!computeOnly) + uri->canon_uri[uri->canon_len] = data->host[i]; + ++uri->canon_len; + TRACE("Adding zero\n"); + } + } else if(data->host[i] == '.') { + if(!computeOnly) + uri->canon_uri[uri->canon_len] = data->host[i]; + ++uri->canon_len; + + octetDigitCount = 0; + octetHasDigit = FALSE; + ++octetCount; + } else { + if(!computeOnly) + uri->canon_uri[uri->canon_len] = data->host[i]; + ++uri->canon_len; + + ++octetDigitCount; + octetHasDigit = TRUE; + } + } + + /* Make sure the canonicalized IP address has 4 dec-octets. + * If doesn't add "0" ones until there is 4; + */ + for( ; octetCount < 3; ++octetCount) { + if(!computeOnly) { + uri->canon_uri[uri->canon_len] = '.'; + uri->canon_uri[uri->canon_len+1] = '0'; + } + + uri->canon_len += 2; + } + } else { + /* Windows doesn't normalize addresses in unknown schemes. */ + if(!computeOnly) + memcpy(uri->canon_uri+uri->canon_len, data->host, data->host_len*sizeof(WCHAR)); + uri->canon_len += data->host_len; + } + + uri->host_len = uri->canon_len - uri->host_start; + if(!computeOnly) + TRACE("(%p %p %x %d): Canonicalized IPv4 address, ip=%s len=%d\n", + data, uri, flags, computeOnly, + debugstr_wn(uri->canon_uri+uri->host_start, uri->host_len), + uri->host_len); + } + + return TRUE; +} + +static BOOL canonicalize_host(const parse_data *data, Uri *uri, DWORD flags, BOOL computeOnly) { + uri->host_start = -1; + uri->host_len = 0; + + if(data->host) { + switch(data->host_type) { + case Uri_HOST_IPV4: + uri->host_type = Uri_HOST_IPV4; + if(!canonicalize_ipv4address(data, uri, flags, computeOnly)) + return FALSE; + + break; + default: + WARN("(%p %p %x %d): Canonicalization not supported yet\n", data, + uri, flags, computeOnly); + } + } + + return TRUE; +} + +/* Canonicalizes the authority of the URI represented by the parse_data. */ +static BOOL canonicalize_authority(const parse_data *data, Uri *uri, DWORD flags, BOOL computeOnly) { + if(!canonicalize_userinfo(data, uri, flags, computeOnly)) + return FALSE; + + if(!canonicalize_host(data, uri, flags, computeOnly)) + return FALSE; + + /* TODO Canonicalize port information. */ + + return TRUE; +} + +/* Determines how the URI represented by the parse_data should be canonicalized. + * + * Essentially, if the parse_data represents an hierarchical URI then it calls + * canonicalize_authority and the canonicalization functions for the path. If the + * URI is opaque it canonicalizes the path of the URI. + */ +static BOOL canonicalize_hierpart(const parse_data *data, Uri *uri, DWORD flags, BOOL computeOnly) { + if(!data->is_opaque) { + /* "//" is only added for non-wildcard scheme types. */ + if(data->scheme_type != URL_SCHEME_WILDCARD) { + if(!computeOnly) { + INT pos = uri->canon_len; + + uri->canon_uri[pos] = '/'; + uri->canon_uri[pos+1] = '/'; + } + uri->canon_len += 2; + } + + if(!canonicalize_authority(data, uri, flags, computeOnly)) + return FALSE; + + /* TODO: Canonicalize the path of the URI. */ + + } else { + /* Opaque URI's don't have userinfo. */ + uri->userinfo_start = uri->userinfo_split = -1; + uri->userinfo_len = 0; + } + + return TRUE; +} + +/* Canonicalizes the scheme information specified in the parse_data using the specified flags. */ +static BOOL canonicalize_scheme(const parse_data *data, Uri *uri, DWORD flags, BOOL computeOnly) { + uri->scheme_start = -1; + uri->scheme_len = 0; + + if(!data->scheme) { + /* The only type of URI that doesn't have to have a scheme is a relative + * URI. + */ + if(!data->is_relative) { + FIXME("(%p %p %x): Unable to determine the scheme type of %s.\n", data, + uri, flags, debugstr_w(data->uri)); + return FALSE; + } + } else { + if(!computeOnly) { + DWORD i; + INT pos = uri->canon_len; + + for(i = 0; i < data->scheme_len; ++i) { + /* Scheme name must be lower case after canonicalization. */ + uri->canon_uri[i + pos] = tolowerW(data->scheme[i]); + } + + uri->canon_uri[i + pos] = ':'; + uri->scheme_start = pos; + + TRACE("(%p %p %x): Canonicalized scheme=%s, len=%d.\n", data, uri, flags, + debugstr_wn(uri->canon_uri, uri->scheme_len), data->scheme_len); + } + + /* This happens in both computation modes. */ + uri->canon_len += data->scheme_len + 1; + uri->scheme_len = data->scheme_len; + } + return TRUE; +} + +/* Compute's what the length of the URI specified by the parse_data will be + * after canonicalization occurs using the specified flags. + * + * This function will return a non-zero value indicating the length of the canonicalized + * URI, or -1 on error. + */ +static int compute_canonicalized_length(const parse_data *data, DWORD flags) { + Uri uri; + + memset(&uri, 0, sizeof(Uri)); + + TRACE("(%p %x): Beginning to compute canonicalized length for URI %s\n", data, flags, + debugstr_w(data->uri)); + + if(!canonicalize_scheme(data, &uri, flags, TRUE)) { + ERR("(%p %x): Failed to compute URI scheme length.\n", data, flags); + return -1; + } + + if(!canonicalize_hierpart(data, &uri, flags, TRUE)) { + ERR("(%p %x): Failed to compute URI hierpart length.\n", data, flags); + return -1; + } + + TRACE("(%p %x): Finished computing canonicalized URI length. length=%d\n", data, flags, uri.canon_len); + + return uri.canon_len; +} + +/* Canonicalizes the URI data specified in the parse_data, using the given flags. If the + * canonicalization succeededs it will store all the canonicalization information + * in the pointer to the Uri. + * + * To canonicalize a URI this function first computes what the length of the URI + * specified by the parse_data will be. Once this is done it will then perfom the actual + * canonicalization of the URI. + */ +static HRESULT canonicalize_uri(const parse_data *data, Uri *uri, DWORD flags) { + INT len; + + uri->canon_uri = NULL; + len = uri->canon_size = uri->canon_len = 0; + + TRACE("(%p %p %x): beginning to canonicalize URI %s.\n", data, uri, flags, debugstr_w(data->uri)); + + /* First try to compute the length of the URI. */ + len = compute_canonicalized_length(data, flags); + if(len == -1) { + ERR("(%p %p %x): Could not compute the canonicalized length of %s.\n", data, uri, flags, + debugstr_w(data->uri)); + return E_INVALIDARG; + } + + uri->canon_uri = heap_alloc((len+1)*sizeof(WCHAR)); + if(!uri->canon_uri) + return E_OUTOFMEMORY; + + if(!canonicalize_scheme(data, uri, flags, FALSE)) { + ERR("(%p %p %x): Unable to canonicalize the scheme of the URI.\n", data, uri, flags); + heap_free(uri->canon_uri); + return E_INVALIDARG; + } + uri->scheme_type = data->scheme_type; + + if(!canonicalize_hierpart(data, uri, flags, FALSE)) { + ERR("(%p %p %x): Unable to canonicalize the heirpart of the URI\n", data, uri, flags); + heap_free(uri->canon_uri); + return E_INVALIDARG; + } + + uri->canon_uri[uri->canon_len] = '\0'; + TRACE("(%p %p %x): finished canonicalizing the URI.\n", data, uri, flags); + + return S_OK; +} + #define URI(x) ((IUri*) &(x)->lpIUriVtbl) #define URIBUILDER(x) ((IUriBuilder*) &(x)->lpIUriBuilderVtbl) @@ -74,8 +1203,11 @@ static ULONG WINAPI Uri_Release(IUri *iface) TRACE("(%p) ref=%d\n", This, ref); - if(!ref) + if(!ref) { + SysFreeString(This->raw_uri); + heap_free(This->canon_uri); heap_free(This); + } return ref; } @@ -83,7 +1215,8 @@ static ULONG WINAPI Uri_Release(IUri *iface) static HRESULT WINAPI Uri_GetPropertyBSTR(IUri *iface, Uri_PROPERTY uriProp, BSTR *pbstrProperty, DWORD dwFlags) { Uri *This = URI_THIS(iface); - FIXME("(%p)->(%d %p %x)\n", This, uriProp, pbstrProperty, dwFlags); + HRESULT hres; + TRACE("(%p)->(%d %p %x)\n", This, uriProp, pbstrProperty, dwFlags); if(!pbstrProperty) return E_POINTER; @@ -91,6 +1224,8 @@ static HRESULT WINAPI Uri_GetPropertyBSTR(IUri *iface, Uri_PROPERTY uriProp, BST if(uriProp > Uri_PROPERTY_STRING_LAST) { /* Windows allocates an empty BSTR for invalid Uri_PROPERTY's. */ *pbstrProperty = SysAllocStringLen(NULL, 0); + if(!(*pbstrProperty)) + return E_OUTOFMEMORY; /* It only returns S_FALSE for the ZONE property... */ if(uriProp == Uri_PROPERTY_ZONE) @@ -99,13 +1234,111 @@ static HRESULT WINAPI Uri_GetPropertyBSTR(IUri *iface, Uri_PROPERTY uriProp, BST return S_OK; } - return E_NOTIMPL; + /* Don't have support for flags yet. */ + if(dwFlags) { + FIXME("(%p)->(%d %p %x)\n", This, uriProp, pbstrProperty, dwFlags); + return E_NOTIMPL; + } + + switch(uriProp) { + case Uri_PROPERTY_HOST: + if(This->host_start > -1) { + *pbstrProperty = SysAllocStringLen(This->canon_uri+This->host_start, This->host_len); + hres = S_OK; + } else { + /* Canonicalizing/parsing the host of a URI is only partially + * implemented, so return E_NOTIMPL for now. + */ + FIXME("(%p)->(%d %p %x) Partially implemented\n", This, uriProp, pbstrProperty, dwFlags); + return E_NOTIMPL; + } + + if(!(*pbstrProperty)) + hres = E_OUTOFMEMORY; + + break; + case Uri_PROPERTY_PASSWORD: + if(This->userinfo_split > -1) { + *pbstrProperty = SysAllocStringLen( + This->canon_uri+This->userinfo_start+This->userinfo_split+1, + This->userinfo_len-This->userinfo_split-1); + hres = S_OK; + } else { + *pbstrProperty = SysAllocStringLen(NULL, 0); + hres = S_FALSE; + } + + if(!(*pbstrProperty)) + return E_OUTOFMEMORY; + + break; + case Uri_PROPERTY_RAW_URI: + *pbstrProperty = SysAllocString(This->raw_uri); + if(!(*pbstrProperty)) + hres = E_OUTOFMEMORY; + else + hres = S_OK; + break; + case Uri_PROPERTY_SCHEME_NAME: + if(This->scheme_start > -1) { + *pbstrProperty = SysAllocStringLen(This->canon_uri + This->scheme_start, This->scheme_len); + hres = S_OK; + } else { + *pbstrProperty = SysAllocStringLen(NULL, 0); + hres = S_FALSE; + } + + if(!(*pbstrProperty)) + hres = E_OUTOFMEMORY; + + break; + case Uri_PROPERTY_USER_INFO: + if(This->userinfo_start > -1) { + *pbstrProperty = SysAllocStringLen(This->canon_uri+This->userinfo_start, This->userinfo_len); + hres = S_OK; + } else { + *pbstrProperty = SysAllocStringLen(NULL, 0); + hres = S_FALSE; + } + + if(!(*pbstrProperty)) + hres = E_OUTOFMEMORY; + + break; + case Uri_PROPERTY_USER_NAME: + if(This->userinfo_start > -1) { + /* If userinfo_split is set, that means a password exists + * so the username is only from userinfo_start to userinfo_split. + */ + if(This->userinfo_split > -1) { + *pbstrProperty = SysAllocStringLen(This->canon_uri + This->userinfo_start, This->userinfo_split); + hres = S_OK; + } else { + *pbstrProperty = SysAllocStringLen(This->canon_uri + This->userinfo_start, This->userinfo_len); + hres = S_OK; + } + } else { + *pbstrProperty = SysAllocStringLen(NULL, 0); + hres = S_FALSE; + } + + if(!(*pbstrProperty)) + return E_OUTOFMEMORY; + + break; + default: + FIXME("(%p)->(%d %p %x)\n", This, uriProp, pbstrProperty, dwFlags); + hres = E_NOTIMPL; + } + + return hres; } static HRESULT WINAPI Uri_GetPropertyLength(IUri *iface, Uri_PROPERTY uriProp, DWORD *pcchProperty, DWORD dwFlags) { Uri *This = URI_THIS(iface); - FIXME("(%p)->(%d %p %x)\n", This, uriProp, pcchProperty, dwFlags); + HRESULT hres; + TRACE("(%p)->(%d %p %x)\n", This, uriProp, pcchProperty, dwFlags); if(!pcchProperty) return E_INVALIDARG; @@ -114,13 +1347,59 @@ static HRESULT WINAPI Uri_GetPropertyLength(IUri *iface, Uri_PROPERTY uriProp, D if(uriProp > Uri_PROPERTY_STRING_LAST) return E_INVALIDARG; - return E_NOTIMPL; + /* Don't have support for flags yet. */ + if(dwFlags) { + FIXME("(%p)->(%d %p %x)\n", This, uriProp, pcchProperty, dwFlags); + return E_NOTIMPL; + } + + switch(uriProp) { + case Uri_PROPERTY_HOST: + if(This->host_start == -1) { + /* Canonicalizing/parsing the host of a URI is only partially + * implemented, so return E_NOTIMPL for now. + */ + FIXME("(%p)->(%d %p %x) Partially implemented\n", This, uriProp, pcchProperty, dwFlags); + return E_NOTIMPL; + } + + *pcchProperty = This->host_len; + hres = (This->host_start > -1) ? S_OK : S_FALSE; + break; + case Uri_PROPERTY_PASSWORD: + *pcchProperty = (This->userinfo_split > -1) ? This->userinfo_len-This->userinfo_split-1 : 0; + hres = (This->userinfo_split > -1) ? S_OK : S_FALSE; + break; + case Uri_PROPERTY_RAW_URI: + *pcchProperty = SysStringLen(This->raw_uri); + hres = S_OK; + break; + case Uri_PROPERTY_SCHEME_NAME: + *pcchProperty = This->scheme_len; + hres = (This->scheme_start > -1) ? S_OK : S_FALSE; + break; + case Uri_PROPERTY_USER_INFO: + *pcchProperty = This->userinfo_len; + hres = (This->userinfo_start > -1) ? S_OK : S_FALSE; + break; + case Uri_PROPERTY_USER_NAME: + *pcchProperty = (This->userinfo_split > -1) ? This->userinfo_split : This->userinfo_len; + hres = (This->userinfo_start > -1) ? S_OK : S_FALSE; + break; + default: + FIXME("(%p)->(%d %p %x)\n", This, uriProp, pcchProperty, dwFlags); + hres = E_NOTIMPL; + } + + return hres; } static HRESULT WINAPI Uri_GetPropertyDWORD(IUri *iface, Uri_PROPERTY uriProp, DWORD *pcchProperty, DWORD dwFlags) { Uri *This = URI_THIS(iface); - FIXME("(%p)->(%d %p %x)\n", This, uriProp, pcchProperty, dwFlags); + HRESULT hres; + + TRACE("(%p)->(%d %p %x)\n", This, uriProp, pcchProperty, dwFlags); if(!pcchProperty) return E_INVALIDARG; @@ -140,7 +1419,17 @@ static HRESULT WINAPI Uri_GetPropertyDWORD(IUri *iface, Uri_PROPERTY uriProp, DW return E_INVALIDARG; } - return E_NOTIMPL; + switch(uriProp) { + case Uri_PROPERTY_SCHEME: + *pcchProperty = This->scheme_type; + hres = S_OK; + break; + default: + FIXME("(%p)->(%d %p %x)\n", This, uriProp, pcchProperty, dwFlags); + hres = E_NOTIMPL; + } + + return hres; } static HRESULT WINAPI Uri_HasProperty(IUri *iface, Uri_PROPERTY uriProp, BOOL *pfHasProperty) @@ -222,24 +1511,14 @@ static HRESULT WINAPI Uri_GetFragment(IUri *iface, BSTR *pstrFragment) static HRESULT WINAPI Uri_GetHost(IUri *iface, BSTR *pstrHost) { - Uri *This = URI_THIS(iface); - FIXME("(%p)->(%p)\n", This, pstrHost); - - if(!pstrHost) - return E_POINTER; - - return E_NOTIMPL; + TRACE("(%p)->(%p)\n", iface, pstrHost); + return Uri_GetPropertyBSTR(iface, Uri_PROPERTY_HOST, pstrHost, 0); } static HRESULT WINAPI Uri_GetPassword(IUri *iface, BSTR *pstrPassword) { - Uri *This = URI_THIS(iface); - FIXME("(%p)->(%p)\n", This, pstrPassword); - - if(!pstrPassword) - return E_POINTER; - - return E_NOTIMPL; + TRACE("(%p)->(%p)\n", iface, pstrPassword); + return Uri_GetPropertyBSTR(iface, Uri_PROPERTY_PASSWORD, pstrPassword, 0); } static HRESULT WINAPI Uri_GetPath(IUri *iface, BSTR *pstrPath) @@ -278,45 +1557,29 @@ static HRESULT WINAPI Uri_GetQuery(IUri *iface, BSTR *pstrQuery) static HRESULT WINAPI Uri_GetRawUri(IUri *iface, BSTR *pstrRawUri) { Uri *This = URI_THIS(iface); - FIXME("(%p)->(%p)\n", This, pstrRawUri); - - if(!pstrRawUri) - return E_POINTER; + TRACE("(%p)->(%p)\n", This, pstrRawUri); - return E_NOTIMPL; + /* Just forward the call to GetPropertyBSTR. */ + return Uri_GetPropertyBSTR(iface, Uri_PROPERTY_RAW_URI, pstrRawUri, 0); } static HRESULT WINAPI Uri_GetSchemeName(IUri *iface, BSTR *pstrSchemeName) { Uri *This = URI_THIS(iface); - FIXME("(%p)->(%p)\n", This, pstrSchemeName); - - if(!pstrSchemeName) - return E_POINTER; - - return E_NOTIMPL; + TRACE("(%p)->(%p)\n", This, pstrSchemeName); + return Uri_GetPropertyBSTR(iface, Uri_PROPERTY_SCHEME_NAME, pstrSchemeName, 0); } static HRESULT WINAPI Uri_GetUserInfo(IUri *iface, BSTR *pstrUserInfo) { - Uri *This = URI_THIS(iface); - FIXME("(%p)->(%p)\n", This, pstrUserInfo); - - if(!pstrUserInfo) - return E_POINTER; - - return E_NOTIMPL; + TRACE("(%p)->(%p)\n", iface, pstrUserInfo); + return Uri_GetPropertyBSTR(iface, Uri_PROPERTY_USER_INFO, pstrUserInfo, 0); } static HRESULT WINAPI Uri_GetUserName(IUri *iface, BSTR *pstrUserName) { - Uri *This = URI_THIS(iface); - FIXME("(%p)->(%p)\n", This, pstrUserName); - - if(!pstrUserName) - return E_POINTER; - - return E_NOTIMPL; + TRACE("(%p)->(%p)\n", iface, pstrUserName); + return Uri_GetPropertyBSTR(iface, Uri_PROPERTY_USER_NAME, pstrUserName, 0); } static HRESULT WINAPI Uri_GetHostType(IUri *iface, DWORD *pdwHostType) @@ -344,12 +1607,8 @@ static HRESULT WINAPI Uri_GetPort(IUri *iface, DWORD *pdwPort) static HRESULT WINAPI Uri_GetScheme(IUri *iface, DWORD *pdwScheme) { Uri *This = URI_THIS(iface); - FIXME("(%p)->(%p)\n", This, pdwScheme); - - if(!pdwScheme) - return E_INVALIDARG; - - return E_NOTIMPL; + TRACE("(%p)->(%p)\n", This, pdwScheme); + return Uri_GetPropertyDWORD(iface, Uri_PROPERTY_SCHEME, pdwScheme, 0); } static HRESULT WINAPI Uri_GetZone(IUri *iface, DWORD *pdwZone) @@ -436,6 +1695,8 @@ static const IUriVtbl UriVtbl = { HRESULT WINAPI CreateUri(LPCWSTR pwzURI, DWORD dwFlags, DWORD_PTR dwReserved, IUri **ppURI) { Uri *ret; + HRESULT hr; + parse_data data; TRACE("(%s %x %x %p)\n", debugstr_w(pwzURI), dwFlags, (DWORD)dwReserved, ppURI); @@ -454,6 +1715,34 @@ HRESULT WINAPI CreateUri(LPCWSTR pwzURI, DWORD dwFlags, DWORD_PTR dwReserved, IU ret->lpIUriVtbl = &UriVtbl; ret->ref = 1; + /* Create a copy of pwzURI and store it as the raw_uri. */ + ret->raw_uri = SysAllocString(pwzURI); + if(!ret->raw_uri) { + heap_free(ret); + return E_OUTOFMEMORY; + } + + memset(&data, 0, sizeof(parse_data)); + data.uri = ret->raw_uri; + + /* Validate and parse the URI into it's components. */ + if(!parse_uri(&data, dwFlags)) { + /* Encountered an unsupported or invalid URI */ + SysFreeString(ret->raw_uri); + heap_free(ret); + *ppURI = NULL; + return E_INVALIDARG; + } + + /* Canonicalize the URI. */ + hr = canonicalize_uri(&data, ret, dwFlags); + if(FAILED(hr)) { + SysFreeString(ret->raw_uri); + heap_free(ret); + *ppURI = NULL; + return hr; + } + *ppURI = URI(ret); return S_OK; } diff --git a/reactos/dll/win32/usp10/shape.c b/reactos/dll/win32/usp10/shape.c index 0a4f5b90771..0018ae5f691 100644 --- a/reactos/dll/win32/usp10/shape.c +++ b/reactos/dll/win32/usp10/shape.c @@ -185,6 +185,42 @@ typedef struct{ WORD Component[1]; }GSUB_Ligature; +typedef struct{ + WORD SequenceIndex; + WORD LookupListIndex; + +}GSUB_SubstLookupRecord; + +typedef struct{ + WORD SubstFormat; /* = 1 */ + WORD Coverage; + WORD ChainSubRuleSetCount; + WORD ChainSubRuleSet[1]; +}GSUB_ChainContextSubstFormat1; + +typedef struct { + WORD SubstFormat; /* = 3 */ + WORD BacktrackGlyphCount; + WORD Coverage[1]; +}GSUB_ChainContextSubstFormat3_1; + +typedef struct{ + WORD InputGlyphCount; + WORD Coverage[1]; +}GSUB_ChainContextSubstFormat3_2; + +typedef struct{ + WORD LookaheadGlyphCount; + WORD Coverage[1]; +}GSUB_ChainContextSubstFormat3_3; + +typedef struct{ + WORD SubstCount; + GSUB_SubstLookupRecord SubstLookupRecord[1]; +}GSUB_ChainContextSubstFormat3_4; + +static INT GSUB_apply_lookup(const GSUB_LookupList* lookup, INT lookup_index, WORD *glyphs, INT glyph_index, INT write_dir, INT *glyph_count); + /* the orders of joined_forms and contextual_features need to line up */ static const char* contextual_features[] = { @@ -429,6 +465,101 @@ static INT GSUB_apply_LigatureSubst(const GSUB_LookupTable *look, WORD *glyphs, return GSUB_E_NOGLYPH; } +static INT GSUB_apply_ChainContextSubst(const GSUB_LookupList* lookup, const GSUB_LookupTable *look, WORD *glyphs, INT glyph_index, INT write_dir, INT *glyph_count) +{ + int j; + BOOL done = FALSE; + + TRACE("Chaining Contextual Substitution Subtable\n"); + for (j = 0; j < GET_BE_WORD(look->SubTableCount) && !done; j++) + { + const GSUB_ChainContextSubstFormat1 *ccsf1; + int offset; + int dirLookahead = write_dir; + int dirBacktrack = -1 * write_dir; + + offset = GET_BE_WORD(look->SubTable[j]); + ccsf1 = (const GSUB_ChainContextSubstFormat1*)((const BYTE*)look+offset); + if (GET_BE_WORD(ccsf1->SubstFormat) == 1) + { + FIXME(" TODO: subtype 1 (Simple context glyph substitution)\n"); + return -1; + } + else if (GET_BE_WORD(ccsf1->SubstFormat) == 2) + { + FIXME(" TODO: subtype 2 (Class-based Chaining Context Glyph Substitution)\n"); + return -1; + } + else if (GET_BE_WORD(ccsf1->SubstFormat) == 3) + { + int k; + int indexGlyphs; + const GSUB_ChainContextSubstFormat3_1 *ccsf3_1; + const GSUB_ChainContextSubstFormat3_2 *ccsf3_2; + const GSUB_ChainContextSubstFormat3_3 *ccsf3_3; + const GSUB_ChainContextSubstFormat3_4 *ccsf3_4; + int newIndex = glyph_index; + + ccsf3_1 = (const GSUB_ChainContextSubstFormat3_1 *)ccsf1; + + TRACE(" subtype 3 (Coverage-based Chaining Context Glyph Substitution)\n"); + + for (k = 0; k < GET_BE_WORD(ccsf3_1->BacktrackGlyphCount); k++) + { + offset = GET_BE_WORD(ccsf3_1->Coverage[k]); + if (GSUB_is_glyph_covered((const BYTE*)ccsf3_1+offset, glyphs[glyph_index + (dirBacktrack * (k+1))]) == -1) + break; + } + if (k != GET_BE_WORD(ccsf3_1->BacktrackGlyphCount)) + return -1; + TRACE("Matched Backtrack\n"); + + ccsf3_2 = (const GSUB_ChainContextSubstFormat3_2 *)(((LPBYTE)ccsf1)+sizeof(GSUB_ChainContextSubstFormat3_1) + (sizeof(WORD) * (GET_BE_WORD(ccsf3_1->BacktrackGlyphCount)-1))); + + indexGlyphs = GET_BE_WORD(ccsf3_2->InputGlyphCount); + for (k = 0; k < indexGlyphs; k++) + { + offset = GET_BE_WORD(ccsf3_2->Coverage[k]); + if (GSUB_is_glyph_covered((const BYTE*)ccsf3_1+offset, glyphs[glyph_index + (write_dir * k)]) == -1) + break; + } + if (k != indexGlyphs) + return -1; + TRACE("Matched IndexGlyphs\n"); + + ccsf3_3 = (const GSUB_ChainContextSubstFormat3_3 *)(((LPBYTE)ccsf3_2)+sizeof(GSUB_ChainContextSubstFormat3_2) + (sizeof(WORD) * (GET_BE_WORD(ccsf3_2->InputGlyphCount)-1))); + + for (k = 0; k < GET_BE_WORD(ccsf3_3->LookaheadGlyphCount); k++) + { + offset = GET_BE_WORD(ccsf3_3->Coverage[k]); + if (GSUB_is_glyph_covered((const BYTE*)ccsf3_1+offset, glyphs[glyph_index + (dirLookahead * (indexGlyphs + k+1))]) == -1) + break; + } + if (k != GET_BE_WORD(ccsf3_3->LookaheadGlyphCount)) + return -1; + TRACE("Matched LookAhead\n"); + + ccsf3_4 = (const GSUB_ChainContextSubstFormat3_4 *)(((LPBYTE)ccsf3_3)+sizeof(GSUB_ChainContextSubstFormat3_3) + (sizeof(WORD) * (GET_BE_WORD(ccsf3_3->LookaheadGlyphCount)-1))); + + for (k = 0; k < GET_BE_WORD(ccsf3_4->SubstCount); k++) + { + int lookupIndex = GET_BE_WORD(ccsf3_4->SubstLookupRecord[k].LookupListIndex); + int SequenceIndex = GET_BE_WORD(ccsf3_4->SubstLookupRecord[k].SequenceIndex) * write_dir; + + TRACE("SUBST: %i -> %i %i\n",k, SequenceIndex, lookupIndex); + newIndex = GSUB_apply_lookup(lookup, lookupIndex, glyphs, glyph_index + SequenceIndex, write_dir, glyph_count); + if (newIndex == -1) + { + ERR("Chain failed to generate a glyph\n"); + return -1; + } + } + return newIndex + 1; + } + } + return -1; +} + static INT GSUB_apply_lookup(const GSUB_LookupList* lookup, INT lookup_index, WORD *glyphs, INT glyph_index, INT write_dir, INT *glyph_count) { int offset; @@ -443,6 +574,8 @@ static INT GSUB_apply_lookup(const GSUB_LookupList* lookup, INT lookup_index, WO return GSUB_apply_SingleSubst(look, glyphs, glyph_index, write_dir, glyph_count); case 4: return GSUB_apply_LigatureSubst(look, glyphs, glyph_index, write_dir, glyph_count); + case 6: + return GSUB_apply_ChainContextSubst(lookup, look, glyphs, glyph_index, write_dir, glyph_count); default: FIXME("We do not handle SubType %i\n",GET_BE_WORD(look->LookupType)); } diff --git a/reactos/dll/win32/usp10/usp10.c b/reactos/dll/win32/usp10/usp10.c index cb82f9179c4..51fbbc0c7d9 100644 --- a/reactos/dll/win32/usp10/usp10.c +++ b/reactos/dll/win32/usp10/usp10.c @@ -1989,9 +1989,3 @@ HRESULT WINAPI ScriptJustify(const SCRIPT_VISATTR *sva, const int *advance, for (i = 0; i < num_glyphs; i++) justify[i] = advance[i]; return S_OK; } - -BOOL gbLpkPresent = FALSE; -VOID WINAPI LpkPresent() -{ - gbLpkPresent = TRUE; /* Turn it on this way! Wine is out of control! */ -} diff --git a/reactos/dll/win32/usp10/usp10.spec b/reactos/dll/win32/usp10/usp10.spec index 0f7b0aa87c5..5e358707c41 100644 --- a/reactos/dll/win32/usp10/usp10.spec +++ b/reactos/dll/win32/usp10/usp10.spec @@ -1,4 +1,4 @@ -@ stdcall LpkPresent() +@ stub LpkPresent @ stdcall ScriptApplyDigitSubstitution(ptr ptr ptr) @ stdcall ScriptApplyLogicalWidth(ptr long long ptr ptr ptr ptr ptr ptr) @ stdcall ScriptBreak(ptr long ptr ptr) diff --git a/reactos/dll/win32/version/install.c b/reactos/dll/win32/version/install.c index 2ecfeb9157e..d5c12eb9fe4 100644 --- a/reactos/dll/win32/version/install.c +++ b/reactos/dll/win32/version/install.c @@ -182,7 +182,7 @@ DWORD WINAPI VerFindFileA( } } - /* Check to see if the file exists and is inuse by another application */ + /* Check to see if the file exists and is in use by another application */ if (lpszFilename && testFileExistenceA(curDir, lpszFilename, FALSE)) { if (lpszFilename && !testFileExistenceA(curDir, lpszFilename, TRUE)) retval |= VFF_FILEINUSE; diff --git a/reactos/dll/win32/version/resource.c b/reactos/dll/win32/version/resource.c index e793d0a2d99..df0df62f983 100644 --- a/reactos/dll/win32/version/resource.c +++ b/reactos/dll/win32/version/resource.c @@ -42,10 +42,26 @@ #define VS_FILE_INFO 16 #include "wine/unicode.h" -#include "wine/winbase16.h" #include "wine/debug.h" +typedef struct +{ + WORD offset; + WORD length; + WORD flags; + WORD id; + WORD handle; + WORD usage; +} NE_NAMEINFO; + +typedef struct +{ + WORD type_id; + WORD count; + DWORD resloader; +} NE_TYPEINFO; + WINE_DEFAULT_DEBUG_CHANNEL(ver); diff --git a/reactos/dll/win32/windowscodecs/bmpdecode.c b/reactos/dll/win32/windowscodecs/bmpdecode.c index 854b3374b02..9cdc8e58e85 100644 --- a/reactos/dll/win32/windowscodecs/bmpdecode.c +++ b/reactos/dll/win32/windowscodecs/bmpdecode.c @@ -395,32 +395,52 @@ fail: return hr; } +static HRESULT ReadByte(IStream *stream, BYTE *buffer, ULONG buffer_size, + ULONG *cursor, ULONG *bytesread, BYTE *result) +{ + HRESULT hr=S_OK; + + if (*bytesread == 0 || *cursor == *bytesread) + { + hr = IStream_Read(stream, buffer, buffer_size, bytesread); + *cursor = 0; + } + + if (SUCCEEDED(hr)) + { + if (*cursor < *bytesread) + *result = buffer[(*cursor)++]; + else + hr = E_FAIL; + } + + return hr; +} + static HRESULT BmpFrameDecode_ReadRLE8(BmpDecoder* This) { UINT bytesperrow; UINT width, height; - BYTE *rledata, *cursor, *rledataend; - UINT rlesize, datasize, palettesize; + BYTE rledata[4096]; + UINT datasize, palettesize; DWORD palette[256]; UINT x, y; DWORD *bgrdata; HRESULT hr; LARGE_INTEGER offbits; - ULONG bytesread; + ULONG cursor=0, bytesread=0; width = This->bih.bV5Width; height = abs(This->bih.bV5Height); bytesperrow = width * 4; datasize = bytesperrow * height; - rlesize = This->bih.bV5SizeImage; if (This->bih.bV5ClrUsed && This->bih.bV5ClrUsed < 256) palettesize = 4 * This->bih.bV5ClrUsed; else palettesize = 4 * 256; - rledata = HeapAlloc(GetProcessHeap(), 0, rlesize); This->imagedata = HeapAlloc(GetProcessHeap(), 0, datasize); - if (!This->imagedata || !rledata) + if (!This->imagedata) { hr = E_OUTOFMEMORY; goto fail; @@ -439,22 +459,26 @@ static HRESULT BmpFrameDecode_ReadRLE8(BmpDecoder* This) hr = IStream_Seek(This->stream, offbits, STREAM_SEEK_SET, NULL); if (FAILED(hr)) goto fail; - hr = IStream_Read(This->stream, rledata, rlesize, &bytesread); - if (FAILED(hr) || bytesread != rlesize) goto fail; - /* decode RLE */ bgrdata = (DWORD*)This->imagedata; x = 0; y = 0; - rledataend = rledata + rlesize; - cursor = rledata; - while (cursor < rledataend && y < height) + cursor = 0; + bytesread = 0; + while (y < height) { - BYTE length = *cursor++; - if (length == 0) + BYTE length; + hr = ReadByte(This->stream, rledata, 4096, &cursor, &bytesread, &length); + + if (FAILED(hr)) + goto fail; + else if (length == 0) { /* escape code */ - BYTE escape = *cursor++; + BYTE escape; + hr = ReadByte(This->stream, rledata, 4096, &cursor, &bytesread, &escape); + if (FAILED(hr)) + goto fail; switch(escape) { case 0: /* end of line */ @@ -464,37 +488,53 @@ static HRESULT BmpFrameDecode_ReadRLE8(BmpDecoder* This) case 1: /* end of bitmap */ goto end; case 2: /* delta */ - if (cursor < rledataend) - { - x += *cursor++; - y += *cursor++; - } + { + BYTE dx, dy; + hr = ReadByte(This->stream, rledata, 4096, &cursor, &bytesread, &dx); + if (SUCCEEDED(hr)) + hr = ReadByte(This->stream, rledata, 4096, &cursor, &bytesread, &dy); + if (FAILED(hr)) + goto fail; + x += dx; + y += dy; break; + } default: /* absolute mode */ length = escape; - while (cursor < rledataend && length-- && x < width) - bgrdata[y*width + x++] = palette[*cursor++]; - if (escape & 1) cursor++; /* skip pad byte */ + while (length-- && x < width) + { + BYTE index; + hr = ReadByte(This->stream, rledata, 4096, &cursor, &bytesread, &index); + if (FAILED(hr)) + goto fail; + bgrdata[y*width + x++] = palette[index]; + } + if (escape & 1) + hr = ReadByte(This->stream, rledata, 4096, &cursor, &bytesread, &length); /* skip pad byte */ + if (FAILED(hr)) + goto fail; } } else { - DWORD color = palette[*cursor++]; + BYTE index; + DWORD color; + hr = ReadByte(This->stream, rledata, 4096, &cursor, &bytesread, &index); + if (FAILED(hr)) + goto fail; + color = palette[index]; while (length-- && x < width) bgrdata[y*width + x++] = color; } } end: - HeapFree(GetProcessHeap(), 0, rledata); - This->imagedatastart = This->imagedata + (height-1) * bytesperrow; This->stride = -bytesperrow; return S_OK; fail: - HeapFree(GetProcessHeap(), 0, rledata); HeapFree(GetProcessHeap(), 0, This->imagedata); This->imagedata = NULL; if (SUCCEEDED(hr)) hr = E_FAIL; @@ -505,28 +545,26 @@ static HRESULT BmpFrameDecode_ReadRLE4(BmpDecoder* This) { UINT bytesperrow; UINT width, height; - BYTE *rledata, *cursor, *rledataend; - UINT rlesize, datasize, palettesize; + BYTE rledata[4096]; + UINT datasize, palettesize; DWORD palette[16]; UINT x, y; DWORD *bgrdata; HRESULT hr; LARGE_INTEGER offbits; - ULONG bytesread; + ULONG cursor=0, bytesread=0; width = This->bih.bV5Width; height = abs(This->bih.bV5Height); bytesperrow = width * 4; datasize = bytesperrow * height; - rlesize = This->bih.bV5SizeImage; if (This->bih.bV5ClrUsed && This->bih.bV5ClrUsed < 16) palettesize = 4 * This->bih.bV5ClrUsed; else palettesize = 4 * 16; - rledata = HeapAlloc(GetProcessHeap(), 0, rlesize); This->imagedata = HeapAlloc(GetProcessHeap(), 0, datasize); - if (!This->imagedata || !rledata) + if (!This->imagedata) { hr = E_OUTOFMEMORY; goto fail; @@ -545,22 +583,26 @@ static HRESULT BmpFrameDecode_ReadRLE4(BmpDecoder* This) hr = IStream_Seek(This->stream, offbits, STREAM_SEEK_SET, NULL); if (FAILED(hr)) goto fail; - hr = IStream_Read(This->stream, rledata, rlesize, &bytesread); - if (FAILED(hr) || bytesread != rlesize) goto fail; - /* decode RLE */ bgrdata = (DWORD*)This->imagedata; x = 0; y = 0; - rledataend = rledata + rlesize; - cursor = rledata; - while (cursor < rledataend && y < height) + cursor = 0; + bytesread = 0; + while (y < height) { - BYTE length = *cursor++; - if (length == 0) + BYTE length; + hr = ReadByte(This->stream, rledata, 4096, &cursor, &bytesread, &length); + + if (FAILED(hr)) + goto fail; + else if (length == 0) { /* escape code */ - BYTE escape = *cursor++; + BYTE escape; + hr = ReadByte(This->stream, rledata, 4096, &cursor, &bytesread, &escape); + if (FAILED(hr)) + goto fail; switch(escape) { case 0: /* end of line */ @@ -570,31 +612,51 @@ static HRESULT BmpFrameDecode_ReadRLE4(BmpDecoder* This) case 1: /* end of bitmap */ goto end; case 2: /* delta */ - if (cursor < rledataend) - { - x += *cursor++; - y += *cursor++; - } + { + BYTE dx, dy; + hr = ReadByte(This->stream, rledata, 4096, &cursor, &bytesread, &dx); + if (SUCCEEDED(hr)) + hr = ReadByte(This->stream, rledata, 4096, &cursor, &bytesread, &dy); + if (FAILED(hr)) + goto fail; + x += dx; + y += dy; break; + } default: /* absolute mode */ + { + BYTE realsize=0; length = escape; - while (cursor < rledataend && length-- && x < width) + while (length-- && x < width) { - BYTE colors = *cursor++; + BYTE colors; + hr = ReadByte(This->stream, rledata, 4096, &cursor, &bytesread, &colors); + realsize++; + if (FAILED(hr)) + goto fail; bgrdata[y*width + x++] = palette[colors>>4]; if (length-- && x < width) bgrdata[y*width + x++] = palette[colors&0xf]; else break; } - if ((cursor - rledata) & 1) cursor++; /* skip pad byte */ + if (realsize & 1) + hr = ReadByte(This->stream, rledata, 4096, &cursor, &bytesread, &length); /* skip pad byte */ + if (FAILED(hr)) + goto fail; + } } } else { - BYTE colors = *cursor++; - DWORD color1 = palette[colors>>4]; - DWORD color2 = palette[colors&0xf]; + BYTE colors; + DWORD color1; + DWORD color2; + hr = ReadByte(This->stream, rledata, 4096, &cursor, &bytesread, &colors); + if (FAILED(hr)) + goto fail; + color1 = palette[colors>>4]; + color2 = palette[colors&0xf]; while (length-- && x < width) { bgrdata[y*width + x++] = color1; @@ -607,15 +669,12 @@ static HRESULT BmpFrameDecode_ReadRLE4(BmpDecoder* This) } end: - HeapFree(GetProcessHeap(), 0, rledata); - This->imagedatastart = This->imagedata + (height-1) * bytesperrow; This->stride = -bytesperrow; return S_OK; fail: - HeapFree(GetProcessHeap(), 0, rledata); HeapFree(GetProcessHeap(), 0, This->imagedata); This->imagedata = NULL; if (SUCCEEDED(hr)) hr = E_FAIL; diff --git a/reactos/include/ddk/mountmgr.h b/reactos/include/ddk/mountmgr.h index 7c6739000da..d2a3a30092d 100644 --- a/reactos/include/ddk/mountmgr.h +++ b/reactos/include/ddk/mountmgr.h @@ -12,6 +12,18 @@ DEFINE_GUID(MOUNTDEV_MOUNTED_DEVICE_GUID, 0x53F5630D, 0xB6BF, 0x11D0, 0x94, 0xF2 #define MOUNTMGRCONTROLTYPE ((ULONG) 'm') #define MOUNTDEVCONTROLTYPE ((ULONG) 'M') +#define IOCTL_MOUNTMGR_DEFINE_UNIX_DRIVE CTL_CODE(MOUNTMGRCONTROLTYPE, 32, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_MOUNTMGR_QUERY_UNIX_DRIVE CTL_CODE(MOUNTMGRCONTROLTYPE, 33, METHOD_BUFFERED, FILE_READ_ACCESS) + +struct mountmgr_unix_drive +{ + ULONG size; + ULONG type; + WCHAR letter; + USHORT mount_point_offset; + USHORT device_offset; +}; + #define IOCTL_MOUNTMGR_CREATE_POINT \ CTL_CODE(MOUNTMGRCONTROLTYPE, 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) #define IOCTL_MOUNTMGR_DELETE_POINTS \ diff --git a/reactos/include/psdk/commctrl.h b/reactos/include/psdk/commctrl.h index a1d261faa80..0ed66f5355f 100644 --- a/reactos/include/psdk/commctrl.h +++ b/reactos/include/psdk/commctrl.h @@ -3305,6 +3305,9 @@ extern "C" { #define TVIF_SELECTEDIMAGE 0x20 #define TVIF_CHILDREN 0x40 #define TVIF_INTEGRAL 0x80 +#define TVIF_STATEEX 0x100 +#define TVIF_EXPANDEDIMAGE 0x200 +#define TVIF_DI_SETITEM 0x1000 #define TVIS_SELECTED 0x2 #define TVIS_CUT 0x4 #define TVIS_DROPHILITED 0x8 @@ -3365,19 +3368,22 @@ extern "C" { int iIntegral; } TVITEMEXA,*LPTVITEMEXA; - typedef struct tagTVITEMEXW { - UINT mask; - HTREEITEM hItem; - UINT state; - UINT stateMask; - LPWSTR pszText; - int cchTextMax; - int iImage; - int iSelectedImage; - int cChildren; - LPARAM lParam; - int iIntegral; - } TVITEMEXW,*LPTVITEMEXW; +typedef struct tagTVITEMEXW { + UINT mask; + HTREEITEM hItem; + UINT state; + UINT stateMask; + LPWSTR pszText; + INT cchTextMax; + INT iImage; + INT iSelectedImage; + INT cChildren; + LPARAM lParam; + INT iIntegral; + UINT uStateEx; /* _WIN32_IE >= 0x600 */ + HWND hwnd; /* _WIN32_IE >= 0x600 */ + INT iExpandedImage; /* _WIN32_IE >= 0x600 */ +} TVITEMEXW, *LPTVITEMEXW; #ifdef UNICODE typedef TVITEMEXW TVITEMEX; typedef LPTVITEMEXW LPTVITEMEX; diff --git a/reactos/include/psdk/cvconst.h b/reactos/include/psdk/cvconst.h index 22026e283a7..1599a269822 100644 --- a/reactos/include/psdk/cvconst.h +++ b/reactos/include/psdk/cvconst.h @@ -40,13 +40,13 @@ enum SymTagEnum SymTagPointerType, SymTagArrayType, SymTagBaseType, - SymTagTypedef, + SymTagTypedef, SymTagBaseClass, SymTagFriend, - SymTagFunctionArgType, - SymTagFuncDebugStart, + SymTagFunctionArgType, + SymTagFuncDebugStart, SymTagFuncDebugEnd, - SymTagUsingNamespace, + SymTagUsingNamespace, SymTagVTableShape, SymTagVTable, SymTagCustom, @@ -287,7 +287,7 @@ enum CV_HREG_e CV_M4_Psr = 51, CV_M4_FltF0 = 60, /* this includes FltF1 to Flt31 */ CV_M4_FltFsr = 92, - + /* Alpha AXP CPU */ CV_ALPHA_NOREG = CV_REG_NONE, CV_ALPHA_FltF0 = 10, /* this includes FltF1 to FltF31 */ @@ -311,7 +311,7 @@ enum CV_HREG_e CV_ALPHA_Psr = 76, CV_ALPHA_FltFsr = 77, CV_ALPHA_SoftFpcr = 78, - + /* Motorola & IBM PowerPC CPU */ CV_PPC_GPR0 = 1, /* this includes GPR1 to GPR31 */ CV_PPC_CR = 33, @@ -357,7 +357,7 @@ enum CV_HREG_e CV_ARM_LR = 24, CV_ARM_PC = 25, CV_ARM_CPSR = 26, - + /* Intel IA64 CPU */ CV_IA64_NOREG = CV_REG_NONE, CV_IA64_Br0 = 512, /* this includes Br1 to Br7 */ @@ -511,6 +511,8 @@ enum CV_HREG_e CV_AMD64_MM70 = CV_REG_MM70, CV_AMD64_MM71 = CV_REG_MM71, + CV_AMD64_XMM8 = 252, /* this includes XMM9 to XMM15 */ + CV_AMD64_RAX = 328, CV_AMD64_RBX = 329, CV_AMD64_RCX = 330, @@ -536,7 +538,7 @@ typedef enum THUNK_ORDINAL_ADJUSTOR, THUNK_ORDINAL_VCALL, THUNK_ORDINAL_PCODE, - THUNK_ORDINAL_LOAD + THUNK_ORDINAL_LOAD } THUNK_ORDINAL; typedef enum CV_call_e diff --git a/reactos/include/psdk/dwmapi.h b/reactos/include/psdk/dwmapi.h index 4fe51bcdbe3..2cf5d6df8f8 100644 --- a/reactos/include/psdk/dwmapi.h +++ b/reactos/include/psdk/dwmapi.h @@ -41,6 +41,19 @@ typedef struct _MilMatrix3x2D DOUBLE DY; } MilMatrix3x2D; +#define DWM_BB_ENABLE 0x00000001 +#define DWM_BB_BLURREGION 0x00000002 +#define DWM_BB_TRANSITIONONMAXIMIZED 0x00000004 + +typedef struct _DWM_BLURBEHIND +{ + DWORD dwFlags; + BOOL fEnable; + HRGN hRgnBlur; + BOOL fTransitionOnMaximized; +} DWM_BLURBEHIND, *PDWM_BLURBEHIND; + +DWMAPI DwmEnableBlurBehindWindow(HWND, const DWM_BLURBEHIND *); DWMAPI DwmEnableComposition(UINT); DWMAPI DwmEnableMMCSS(BOOL); DWMAPI DwmExtendFrameIntoClientArea(HWND,const MARGINS*); diff --git a/reactos/include/psdk/shlwapi.h b/reactos/include/psdk/shlwapi.h index 223bcdd3c05..bec8b3a4f2f 100644 --- a/reactos/include/psdk/shlwapi.h +++ b/reactos/include/psdk/shlwapi.h @@ -319,6 +319,12 @@ BOOL WINAPI AssocIsDangerous(LPCWSTR); #endif /* NO_SHLWAPI_REG */ +void WINAPI IUnknown_Set(IUnknown **ppunk, IUnknown *punk); +void WINAPI IUnknown_AtomicRelease(IUnknown **punk); +HRESULT WINAPI IUnknown_GetWindow(IUnknown *punk, HWND *phwnd); +HRESULT WINAPI IUnknown_SetSite(IUnknown *punk, IUnknown *punkSite); +HRESULT WINAPI IUnknown_GetSite(IUnknown *punk, REFIID riid, void **ppv); +HRESULT WINAPI IUnknown_QueryService(IUnknown *punk, REFGUID guidService, REFIID riid, void **ppvOut); /* Path functions */ #ifndef NO_SHLWAPI_PATH @@ -579,6 +585,11 @@ typedef enum { URL_SCHEME_MSSHELLROOTED, URL_SCHEME_MSSHELLIDLIST, URL_SCHEME_MSHELP, + URL_SCHEME_MSSHELLDEVICE, + URL_SCHEME_WILDCARD, + URL_SCHEME_SEARCH_MS, + URL_SCHEME_SEARCH, + URL_SCHEME_KNOWNFOLDER, URL_SCHEME_MAXVALUE } URL_SCHEME; @@ -643,7 +654,7 @@ HRESULT WINAPI UrlApplySchemeW(LPCWSTR,LPWSTR,LPDWORD,DWORD); HRESULT WINAPI UrlCanonicalizeA(LPCSTR,LPSTR,LPDWORD,DWORD); HRESULT WINAPI UrlCanonicalizeW(LPCWSTR,LPWSTR,LPDWORD,DWORD); -#define UrlCanonicalize WINELIB_NAME_AW(UrlCanoncalize) +#define UrlCanonicalize WINELIB_NAME_AW(UrlCanonicalize) HRESULT WINAPI UrlCombineA(LPCSTR,LPCSTR,LPSTR,LPDWORD,DWORD); HRESULT WINAPI UrlCombineW(LPCWSTR,LPCWSTR,LPWSTR,LPDWORD,DWORD); @@ -870,6 +881,9 @@ LPSTR WINAPI StrStrIA(LPCSTR,LPCSTR); LPWSTR WINAPI StrStrIW(LPCWSTR,LPCWSTR); #define StrStrI WINELIB_NAME_AW(StrStrI) +LPWSTR WINAPI StrStrNW(LPCWSTR,LPCWSTR,UINT); +LPWSTR WINAPI StrStrNIW(LPCWSTR,LPCWSTR,UINT); + int WINAPI StrToIntA(LPCSTR); int WINAPI StrToIntW(LPCWSTR); #define StrToInt WINELIB_NAME_AW(StrToInt) @@ -974,6 +988,7 @@ HRESULT WINAPI SHCreateStreamWrapper(LPBYTE,DWORD,DWORD,struct IStream**); HRESULT WINAPI SHAutoComplete(HWND,DWORD); /* Threads */ +HRESULT WINAPI SHCreateThreadRef(LONG*, IUnknown**); HRESULT WINAPI SHGetThreadRef(IUnknown**); HRESULT WINAPI SHSetThreadRef(IUnknown*); HRESULT WINAPI SHReleaseThreadRef(void);