Finish the Wine sync. These components are not just rc file changes
authorDaniel Reimer <reimer.daniel@freenet.de>
Mon, 26 Jul 2010 02:26:04 +0000 (02:26 +0000)
committerDaniel Reimer <reimer.daniel@freenet.de>
Mon, 26 Jul 2010 02:26:04 +0000 (02:26 +0000)
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

296 files changed:
reactos/dll/win32/atl/atl_main.c
reactos/dll/win32/comctl32/comctl_Bg.rc
reactos/dll/win32/comctl32/comctl_Cs.rc
reactos/dll/win32/comctl32/comctl_Da.rc
reactos/dll/win32/comctl32/comctl_De.rc
reactos/dll/win32/comctl32/comctl_El.rc
reactos/dll/win32/comctl32/comctl_En.rc
reactos/dll/win32/comctl32/comctl_Es.rc
reactos/dll/win32/comctl32/comctl_Fr.rc
reactos/dll/win32/comctl32/comctl_Hu.rc
reactos/dll/win32/comctl32/comctl_It.rc
reactos/dll/win32/comctl32/comctl_Ja.rc
reactos/dll/win32/comctl32/comctl_Ko.rc
reactos/dll/win32/comctl32/comctl_Lt.rc
reactos/dll/win32/comctl32/comctl_Nl.rc
reactos/dll/win32/comctl32/comctl_No.rc
reactos/dll/win32/comctl32/comctl_Pl.rc
reactos/dll/win32/comctl32/comctl_Pt.rc
reactos/dll/win32/comctl32/comctl_Ro.rc
reactos/dll/win32/comctl32/comctl_Ru.rc
reactos/dll/win32/comctl32/comctl_Si.rc
reactos/dll/win32/comctl32/comctl_Sk.rc
reactos/dll/win32/comctl32/comctl_Sr.rc [new file with mode: 0644]
reactos/dll/win32/comctl32/comctl_Sv.rc
reactos/dll/win32/comctl32/comctl_Th.rc
reactos/dll/win32/comctl32/comctl_Tr.rc
reactos/dll/win32/comctl32/comctl_Uk.rc
reactos/dll/win32/comctl32/comctl_Zh.rc
reactos/dll/win32/comctl32/monthcal.c
reactos/dll/win32/comctl32/propsheet.c
reactos/dll/win32/comctl32/rsrc.rc
reactos/dll/win32/comctl32/toolbar.c
reactos/dll/win32/comctl32/tooltips.c
reactos/dll/win32/comctl32/treeview.c
reactos/dll/win32/comdlg32/cdlg_Bg.rc
reactos/dll/win32/comdlg32/cdlg_Ca.rc
reactos/dll/win32/comdlg32/cdlg_Cs.rc
reactos/dll/win32/comdlg32/cdlg_Da.rc
reactos/dll/win32/comdlg32/cdlg_De.rc
reactos/dll/win32/comdlg32/cdlg_El.rc
reactos/dll/win32/comdlg32/cdlg_En.rc
reactos/dll/win32/comdlg32/cdlg_Es.rc
reactos/dll/win32/comdlg32/cdlg_Fi.rc
reactos/dll/win32/comdlg32/cdlg_Fr.rc
reactos/dll/win32/comdlg32/cdlg_Hu.rc
reactos/dll/win32/comdlg32/cdlg_It.rc
reactos/dll/win32/comdlg32/cdlg_Ja.rc
reactos/dll/win32/comdlg32/cdlg_Ko.rc
reactos/dll/win32/comdlg32/cdlg_Lt.rc
reactos/dll/win32/comdlg32/cdlg_Nl.rc
reactos/dll/win32/comdlg32/cdlg_No.rc
reactos/dll/win32/comdlg32/cdlg_Pl.rc
reactos/dll/win32/comdlg32/cdlg_Pt.rc
reactos/dll/win32/comdlg32/cdlg_Ro.rc
reactos/dll/win32/comdlg32/cdlg_Ru.rc
reactos/dll/win32/comdlg32/cdlg_Si.rc
reactos/dll/win32/comdlg32/cdlg_Sk.rc
reactos/dll/win32/comdlg32/cdlg_Sr.rc [new file with mode: 0644]
reactos/dll/win32/comdlg32/cdlg_Sv.rc
reactos/dll/win32/comdlg32/cdlg_Th.rc
reactos/dll/win32/comdlg32/cdlg_Tr.rc
reactos/dll/win32/comdlg32/cdlg_Uk.rc
reactos/dll/win32/comdlg32/cdlg_Zh.rc
reactos/dll/win32/comdlg32/cdlg_xx.rc
reactos/dll/win32/comdlg32/finddlg.c
reactos/dll/win32/comdlg32/fontdlg.c
reactos/dll/win32/comdlg32/pd32_collate.ico
reactos/dll/win32/comdlg32/pd32_landscape.ico
reactos/dll/win32/comdlg32/pd32_nocollate.ico
reactos/dll/win32/comdlg32/pd32_portrait.ico
reactos/dll/win32/comdlg32/rsrc.rc
reactos/dll/win32/dwmapi/dwmapi.spec
reactos/dll/win32/dwmapi/dwmapi_main.c
reactos/dll/win32/fusion/asmcache.c
reactos/dll/win32/fusion/asmname.c
reactos/dll/win32/fusion/assembly.c
reactos/dll/win32/fusion/fusion.rbuild
reactos/dll/win32/fusion/fusionpriv.h
reactos/dll/win32/gdiplus/brush.c
reactos/dll/win32/gdiplus/font.c
reactos/dll/win32/gdiplus/graphics.c
reactos/dll/win32/gdiplus/image.c
reactos/dll/win32/gdiplus/matrix.c
reactos/dll/win32/gdiplus/pen.c
reactos/dll/win32/jscript/array.c
reactos/dll/win32/jscript/jscript_Da.rc
reactos/dll/win32/jscript/jscript_De.rc
reactos/dll/win32/jscript/jscript_En.rc
reactos/dll/win32/jscript/jscript_Es.rc
reactos/dll/win32/jscript/jscript_Fr.rc
reactos/dll/win32/jscript/jscript_Hu.rc
reactos/dll/win32/jscript/jscript_It.rc
reactos/dll/win32/jscript/jscript_Ja.rc
reactos/dll/win32/jscript/jscript_Ko.rc
reactos/dll/win32/jscript/jscript_Lt.rc
reactos/dll/win32/jscript/jscript_Nl.rc
reactos/dll/win32/jscript/jscript_No.rc
reactos/dll/win32/jscript/jscript_Pl.rc
reactos/dll/win32/jscript/jscript_Pt.rc
reactos/dll/win32/jscript/jscript_Ro.rc
reactos/dll/win32/jscript/jscript_Ru.rc
reactos/dll/win32/jscript/jscript_Si.rc
reactos/dll/win32/jscript/jscript_Uk.rc [new file with mode: 0644]
reactos/dll/win32/jscript/rsrc.rc
reactos/dll/win32/mpr/mpr_Bg.rc
reactos/dll/win32/mpr/mpr_Cs.rc
reactos/dll/win32/mpr/mpr_Da.rc
reactos/dll/win32/mpr/mpr_De.rc
reactos/dll/win32/mpr/mpr_En.rc
reactos/dll/win32/mpr/mpr_Es.rc
reactos/dll/win32/mpr/mpr_Fr.rc
reactos/dll/win32/mpr/mpr_Hu.rc
reactos/dll/win32/mpr/mpr_It.rc
reactos/dll/win32/mpr/mpr_Ja.rc
reactos/dll/win32/mpr/mpr_Ko.rc
reactos/dll/win32/mpr/mpr_Lt.rc
reactos/dll/win32/mpr/mpr_Nl.rc
reactos/dll/win32/mpr/mpr_No.rc
reactos/dll/win32/mpr/mpr_Pl.rc
reactos/dll/win32/mpr/mpr_Pt.rc
reactos/dll/win32/mpr/mpr_Ro.rc
reactos/dll/win32/mpr/mpr_Ru.rc
reactos/dll/win32/mpr/mpr_Si.rc
reactos/dll/win32/mpr/mpr_Sv.rc
reactos/dll/win32/mpr/mpr_Tr.rc
reactos/dll/win32/mpr/mpr_Uk.rc
reactos/dll/win32/mpr/mpr_Zh.rc
reactos/dll/win32/mpr/wnet.c
reactos/dll/win32/mshtml/Bg.rc
reactos/dll/win32/mshtml/Da.rc
reactos/dll/win32/mshtml/De.rc
reactos/dll/win32/mshtml/En.rc
reactos/dll/win32/mshtml/Es.rc
reactos/dll/win32/mshtml/Fi.rc
reactos/dll/win32/mshtml/Fr.rc
reactos/dll/win32/mshtml/Hu.rc
reactos/dll/win32/mshtml/It.rc
reactos/dll/win32/mshtml/Ja.rc
reactos/dll/win32/mshtml/Ko.rc
reactos/dll/win32/mshtml/Lt.rc
reactos/dll/win32/mshtml/Nl.rc
reactos/dll/win32/mshtml/No.rc
reactos/dll/win32/mshtml/Pl.rc
reactos/dll/win32/mshtml/Pt.rc
reactos/dll/win32/mshtml/Ro.rc
reactos/dll/win32/mshtml/Ru.rc
reactos/dll/win32/mshtml/Si.rc
reactos/dll/win32/mshtml/Sv.rc
reactos/dll/win32/mshtml/Tr.rc
reactos/dll/win32/mshtml/Uk.rc
reactos/dll/win32/mshtml/Zh.rc
reactos/dll/win32/mshtml/dispex.c
reactos/dll/win32/mshtml/htmldoc3.c
reactos/dll/win32/mshtml/htmlelem2.c
reactos/dll/win32/mshtml/mshtml_private.h
reactos/dll/win32/mshtml/nsiface.idl
reactos/dll/win32/msi/action.c
reactos/dll/win32/msi/appsearch.c
reactos/dll/win32/msi/classes.c
reactos/dll/win32/msi/database.c
reactos/dll/win32/msi/events.c
reactos/dll/win32/msi/files.c
reactos/dll/win32/msi/font.c
reactos/dll/win32/msi/media.c
reactos/dll/win32/msi/msi.rc
reactos/dll/win32/msi/msi.spec
reactos/dll/win32/msi/msi_Bg.rc
reactos/dll/win32/msi/msi_Da.rc
reactos/dll/win32/msi/msi_De.rc
reactos/dll/win32/msi/msi_En.rc
reactos/dll/win32/msi/msi_Es.rc
reactos/dll/win32/msi/msi_Fi.rc
reactos/dll/win32/msi/msi_Fr.rc
reactos/dll/win32/msi/msi_Hu.rc
reactos/dll/win32/msi/msi_It.rc
reactos/dll/win32/msi/msi_Ko.rc
reactos/dll/win32/msi/msi_Lt.rc
reactos/dll/win32/msi/msi_Nl.rc
reactos/dll/win32/msi/msi_No.rc
reactos/dll/win32/msi/msi_Pl.rc
reactos/dll/win32/msi/msi_Pt.rc
reactos/dll/win32/msi/msi_Ro.rc
reactos/dll/win32/msi/msi_Ru.rc
reactos/dll/win32/msi/msi_Si.rc
reactos/dll/win32/msi/msi_Sr.rc [new file with mode: 0644]
reactos/dll/win32/msi/msi_Sv.rc
reactos/dll/win32/msi/msi_Tr.rc
reactos/dll/win32/msi/msi_Uk.rc
reactos/dll/win32/msi/msi_Zh.rc
reactos/dll/win32/msi/msipriv.h
reactos/dll/win32/msi/msiquery.c
reactos/dll/win32/msi/package.c
reactos/dll/win32/msi/registry.c
reactos/dll/win32/msi/source.c
reactos/dll/win32/msi/streams.c
reactos/dll/win32/msimtf/activeimmapp.c
reactos/dll/win32/msxml3/domdoc.c
reactos/dll/win32/msxml3/saxreader.c
reactos/dll/win32/msxml3/version.rc
reactos/dll/win32/ole32/antimoniker.c
reactos/dll/win32/ole32/bindctx.c
reactos/dll/win32/ole32/classmoniker.c
reactos/dll/win32/ole32/compositemoniker.c
reactos/dll/win32/ole32/datacache.c
reactos/dll/win32/ole32/defaulthandler.c
reactos/dll/win32/ole32/enumx.c
reactos/dll/win32/ole32/filelockbytes.c [new file with mode: 0644]
reactos/dll/win32/ole32/filemoniker.c
reactos/dll/win32/ole32/git.c
reactos/dll/win32/ole32/ole2.c
reactos/dll/win32/ole32/ole2thk.spec [deleted file]
reactos/dll/win32/ole32/ole32.rbuild
reactos/dll/win32/ole32/oleobj.c
reactos/dll/win32/ole32/stg_bigblockfile.c [deleted file]
reactos/dll/win32/ole32/stg_stream.c
reactos/dll/win32/ole32/storage32.c
reactos/dll/win32/ole32/storage32.h
reactos/dll/win32/oleaut32/oleaut32_Bg.rc
reactos/dll/win32/oleaut32/oleaut32_Cy.rc [moved from reactos/dll/win32/ole32/version.rc with 73% similarity]
reactos/dll/win32/oleaut32/oleaut32_Cz.rc
reactos/dll/win32/oleaut32/oleaut32_Da.rc
reactos/dll/win32/oleaut32/oleaut32_De.rc
reactos/dll/win32/oleaut32/oleaut32_El.rc
reactos/dll/win32/oleaut32/oleaut32_En.rc
reactos/dll/win32/oleaut32/oleaut32_Es.rc
reactos/dll/win32/oleaut32/oleaut32_Fr.rc
reactos/dll/win32/oleaut32/oleaut32_Hu.rc
reactos/dll/win32/oleaut32/oleaut32_It.rc
reactos/dll/win32/oleaut32/oleaut32_Ko.rc
reactos/dll/win32/oleaut32/oleaut32_Lt.rc
reactos/dll/win32/oleaut32/oleaut32_Nl.rc
reactos/dll/win32/oleaut32/oleaut32_No.rc
reactos/dll/win32/oleaut32/oleaut32_Pl.rc
reactos/dll/win32/oleaut32/oleaut32_Pt.rc
reactos/dll/win32/oleaut32/oleaut32_Ro.rc
reactos/dll/win32/oleaut32/oleaut32_Ru.rc
reactos/dll/win32/oleaut32/oleaut32_Si.rc
reactos/dll/win32/oleaut32/oleaut32_Sv.rc
reactos/dll/win32/oleaut32/oleaut32_Th.rc
reactos/dll/win32/oleaut32/oleaut32_Tr.rc
reactos/dll/win32/oleaut32/oleaut32_Uk.rc
reactos/dll/win32/oleaut32/oleaut32_Zh.rc
reactos/dll/win32/oleaut32/typelib.c
reactos/dll/win32/oleaut32/typelib2.c
reactos/dll/win32/riched20/editor.c
reactos/dll/win32/riched20/writer.c
reactos/dll/win32/shdocvw/En.rc [new file with mode: 0644]
reactos/dll/win32/shdocvw/dochost.c
reactos/dll/win32/shdocvw/ie.c
reactos/dll/win32/shdocvw/iexplore.c
reactos/dll/win32/shdocvw/intshcut.c
reactos/dll/win32/shdocvw/navigate.c
reactos/dll/win32/shdocvw/resource.h [new file with mode: 0644]
reactos/dll/win32/shdocvw/shdocvw.h
reactos/dll/win32/shdocvw/shdocvw.rc
reactos/dll/win32/shlwapi/ordinal.c
reactos/dll/win32/shlwapi/shlwapi.rc
reactos/dll/win32/shlwapi/shlwapi.spec
reactos/dll/win32/shlwapi/shlwapi_Da.rc
reactos/dll/win32/shlwapi/shlwapi_De.rc
reactos/dll/win32/shlwapi/shlwapi_En.rc
reactos/dll/win32/shlwapi/shlwapi_Es.rc
reactos/dll/win32/shlwapi/shlwapi_Fi.rc
reactos/dll/win32/shlwapi/shlwapi_Fr.rc
reactos/dll/win32/shlwapi/shlwapi_Hu.rc
reactos/dll/win32/shlwapi/shlwapi_It.rc
reactos/dll/win32/shlwapi/shlwapi_Ja.rc
reactos/dll/win32/shlwapi/shlwapi_Ko.rc
reactos/dll/win32/shlwapi/shlwapi_Lt.rc
reactos/dll/win32/shlwapi/shlwapi_Nl.rc
reactos/dll/win32/shlwapi/shlwapi_No.rc
reactos/dll/win32/shlwapi/shlwapi_Pl.rc
reactos/dll/win32/shlwapi/shlwapi_Pt.rc
reactos/dll/win32/shlwapi/shlwapi_Ro.rc
reactos/dll/win32/shlwapi/shlwapi_Ru.rc
reactos/dll/win32/shlwapi/shlwapi_Si.rc
reactos/dll/win32/shlwapi/shlwapi_Sk.rc
reactos/dll/win32/shlwapi/shlwapi_Sv.rc
reactos/dll/win32/shlwapi/shlwapi_Tr.rc
reactos/dll/win32/shlwapi/shlwapi_Uk.rc
reactos/dll/win32/shlwapi/shlwapi_Zh.rc
reactos/dll/win32/shlwapi/string.c
reactos/dll/win32/shlwapi/url.c
reactos/dll/win32/urlmon/umon.c
reactos/dll/win32/urlmon/uri.c
reactos/dll/win32/usp10/shape.c
reactos/dll/win32/usp10/usp10.c
reactos/dll/win32/usp10/usp10.spec
reactos/dll/win32/version/install.c
reactos/dll/win32/version/resource.c
reactos/dll/win32/windowscodecs/bmpdecode.c
reactos/include/ddk/mountmgr.h
reactos/include/psdk/commctrl.h
reactos/include/psdk/cvconst.h
reactos/include/psdk/dwmapi.h
reactos/include/psdk/shlwapi.h

index 696f7ef..88795c9 100644 (file)
@@ -60,7 +60,7 @@ HRESULT WINAPI AtlModuleInit(_ATL_MODULEW* pM, _ATL_OBJMAP_ENTRYW* p, HINSTANCE
     INT i;
     UINT size;
 
     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)
 
     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);
 
         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)
         {
             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);
                 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);
             }
             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++;
     }
         }
         i++;
     }
index 6c64f9a..a45bcd1 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
 
 
 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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "Wizard"
 FONT 8, "MS Shell Dlg"
@@ -51,7 +51,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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    "Çàòâîðè"
 }
 
 {
     IDS_CLOSE    "Çàòâîðè"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Äíåñ:"
     IDM_GOTODAY  "Èäè íà äíåñ"
 }
 
 {
     IDM_TODAY    "Äíåñ:"
     IDM_GOTODAY  "Èäè íà äíåñ"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Ðàçäåëèòåë"
 }
 
 {
     IDS_SEPARATOR "Ðàçäåëèòåë"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "Íèùî"
 }
 {
     HKY_NONE "Íèùî"
 }
index e770e33..d993c71 100644 (file)
@@ -26,7 +26,7 @@ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
 
 /* Czech strings in CP1250 */
 
 
 /* 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"
 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
 
 
 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"
 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
 
 
 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"
 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
 
   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"
 }
 
 {
     IDS_CLOSE    "Zavøít"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Dnes:"
     IDM_GOTODAY  "Jdi na dne\9aek"
 }
 
 {
     IDM_TODAY    "Dnes:"
     IDM_GOTODAY  "Jdi na dne\9aek"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Oddìlovaè"
 }
 
 {
     IDS_SEPARATOR "Oddìlovaè"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "\8eádný"
 }
 {
     HKY_NONE "\8eádný"
 }
index 07c177c..0dc1068 100644 (file)
@@ -23,7 +23,7 @@
 
 LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
 
 
 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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "Guide"
 FONT 8, "MS Shell Dlg"
@@ -52,7 +52,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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"
 }
 
 {
     IDS_CLOSE    "Luk"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Idag:"
     IDM_GOTODAY  "Gå til i dag"
 }
 
 {
     IDM_TODAY    "Idag:"
     IDM_GOTODAY  "Gå til i dag"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Separator"
 }
 
 {
     IDS_SEPARATOR "Separator"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "Ingen"
 }
 {
     HKY_NONE "Ingen"
 }
index 87730c8..afb2a84 100644 (file)
 
 LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
      IDS_CLOSE    "Schließen"
 }
 
 {
      IDS_CLOSE    "Schließen"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
      IDM_TODAY    "Heute:"
      IDM_GOTODAY  "Gehe zu Heute"
 }
 
 {
      IDM_TODAY    "Heute:"
      IDM_GOTODAY  "Gehe zu Heute"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Trennzeichen"
 }
 
 {
     IDS_SEPARATOR "Trennzeichen"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "Keiner"
 }
 
 {
     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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "Wizard"
 FONT 8, "MS Shell Dlg"
@@ -72,7 +72,7 @@ BEGIN
 END
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Toolbar einrichten"
 FONT 8, "MS Shell Dlg"
index de08357..284b3a2 100644 (file)
@@ -20,7 +20,7 @@
 
 LANGUAGE LANG_GREEK, SUBLANG_DEFAULT
 
 
 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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "Âïçèüò"
 FONT 8, "MS Shell Dlg"
@@ -49,7 +49,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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    "Êëåßóéìï"
 }
 
 {
     IDS_CLOSE    "Êëåßóéìï"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "ÓÞìåñá:"
     IDM_GOTODAY  "ÌåôÜâáóç óôá óçìåñéíÜ"
 }
 
 {
     IDM_TODAY    "ÓÞìåñá:"
     IDM_GOTODAY  "ÌåôÜâáóç óôá óçìåñéíÜ"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Äéá÷ùñéóôÞò"
 }
 
 {
     IDS_SEPARATOR "Äéá÷ùñéóôÞò"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "ÊáíÝíá"
 }
 {
     HKY_NONE "ÊáíÝíá"
 }
index d8055e9..c7ddc7a 100644 (file)
@@ -20,7 +20,7 @@
 
 LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
 
 
 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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "Wizard"
 FONT 8, "MS Shell Dlg"
@@ -49,7 +49,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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"
 }
 
 {
     IDS_CLOSE    "Close"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Today:"
     IDM_GOTODAY  "Go to today"
 }
 
 {
     IDM_TODAY    "Today:"
     IDM_GOTODAY  "Go to today"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Separator"
 }
 
 {
     IDS_SEPARATOR "Separator"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "None"
 }
 {
     HKY_NONE "None"
 }
index ce46217..34e6f6c 100644 (file)
@@ -20,7 +20,7 @@
 
 LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
 
 
 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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "Ayudante"
 FONT 8, "MS Shell Dlg"
@@ -49,7 +49,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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"
 }
 
 {
     IDS_CLOSE    "Cerrar"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Hoy:"
     IDM_GOTODAY  "Ir a hoy"
 }
 
 {
     IDM_TODAY    "Hoy:"
     IDM_GOTODAY  "Ir a hoy"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Separador"
 }
 
 {
     IDS_SEPARATOR "Separador"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "Ninguno"
 }
 {
     HKY_NONE "Ninguno"
 }
index 6c766cf..fd8aa10 100644 (file)
@@ -27,7 +27,7 @@
 
 LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
 
 
 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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "Assistant"
 FONT 8, "MS Shell Dlg"
@@ -56,7 +56,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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"
 }
 
 {
     IDS_CLOSE    "Fermer"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Aujourd'hui :"
     IDM_GOTODAY  "Aller à aujourd'hui"
 }
 
 {
     IDM_TODAY    "Aujourd'hui :"
     IDM_GOTODAY  "Aller à aujourd'hui"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Séparateur"
 }
 
 {
     IDS_SEPARATOR "Séparateur"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "Aucun"
 }
 {
     HKY_NONE "Aucun"
 }
index 2ba1160..87183c4 100644 (file)
@@ -20,7 +20,7 @@
 
 LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
 
 
 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"
 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
 
 
 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"
 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
 
 
 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"
 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
 
   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"
 }
 
 {
     IDS_CLOSE    "Bezárás"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Ma:"
     IDM_GOTODAY  "Ugrás mára"
 }
 
 {
     IDM_TODAY    "Ma:"
     IDM_GOTODAY  "Ugrás mára"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Elválasztó"
 }
 
 {
     IDS_SEPARATOR "Elválasztó"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "Nincs"
 }
 {
     HKY_NONE "Nincs"
 }
index 75bd9c1..8253dab 100644 (file)
@@ -21,7 +21,7 @@
 
 LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
 
 
 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"
 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
 
 
 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"
 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
 
 
 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"
 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
 
   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"
 }
 
 {
     IDS_CLOSE    "Chiudi"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Oggi:"
     IDM_GOTODAY  "Vai a oggi"
 }
 
 {
     IDM_TODAY    "Oggi:"
     IDM_GOTODAY  "Vai a oggi"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Separatore"
 }
 
 {
     IDS_SEPARATOR "Separatore"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "Nessuno"
 }
 {
     HKY_NONE "Nessuno"
 }
index ce16f5a..156a00f 100644 (file)
@@ -23,7 +23,7 @@
 
 LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
 
 
 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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "ウィザード"
 FONT 9, "MS Shell Dlg"
@@ -52,7 +52,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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    "閉じる"
 }
 
 {
     IDS_CLOSE    "閉じる"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "今日:"
     IDM_GOTODAY  "今日へ移動"
 }
 
 {
     IDM_TODAY    "今日:"
     IDM_GOTODAY  "今日へ移動"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "区切り"
 }
 
 {
     IDS_SEPARATOR "区切り"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "なし"
 }
 {
     HKY_NONE "なし"
 }
index 4f9ec0a..31c6252 100644 (file)
@@ -21,7 +21,7 @@
 
 LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
 
 
 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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "¸¶¹ý»ç"
 FONT 9, "MS Shell Dlg"
@@ -50,7 +50,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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    "´Ý±â"
 }
 
 {
     IDS_CLOSE    "´Ý±â"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "¿À´Ã:"
     IDM_GOTODAY  "¿À´Ã·Î °¡±â"
 }
 
 {
     IDM_TODAY    "¿À´Ã:"
     IDM_GOTODAY  "¿À´Ã·Î °¡±â"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "ºÐ¸®ÀÚ"
 }
 
 {
     IDS_SEPARATOR "ºÐ¸®ÀÚ"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
    HKY_NONE "¾øÀ½"
 }
 {
    HKY_NONE "¾øÀ½"
 }
index f5f3294..b723d22 100644 (file)
@@ -23,7 +23,7 @@
 
 LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL
 
 
 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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "Vediklis"
 FONT 8, "MS Shell Dlg"
@@ -52,7 +52,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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"
 }
 
 {
     IDS_CLOSE    "Užverti"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Šiandien:"
     IDM_GOTODAY  "Eiti į šiandien"
 }
 
 {
     IDM_TODAY    "Šiandien:"
     IDM_GOTODAY  "Eiti į šiandien"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Skirtukas"
 }
 
 {
     IDS_SEPARATOR "Skirtukas"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "Joks"
 }
 {
     HKY_NONE "Joks"
 }
index fe2bf7a..5e94680 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
 
 
 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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "Assistent"
 FONT 8, "MS Shell Dlg"
@@ -51,7 +51,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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"
 }
 
 {
     IDS_CLOSE    "Sluiten"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Vandaag:"
     IDM_GOTODAY  "Ga naar vandaag"
 }
 
 {
     IDM_TODAY    "Vandaag:"
     IDM_GOTODAY  "Ga naar vandaag"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Scheidingsteken"
 }
 
 {
     IDS_SEPARATOR "Scheidingsteken"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "Geen"
 }
 {
     HKY_NONE "Geen"
 }
index 6361f04..ada1a47 100644 (file)
@@ -20,7 +20,7 @@
 
 LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL
 
 
 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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "Veiviser"
 FONT 8, "MS Shell Dlg"
@@ -49,7 +49,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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"
 }
 
 {
     IDS_CLOSE    "Lukk"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Idag:"
     IDM_GOTODAY  "Gå til idag"
 }
 
 {
     IDM_TODAY    "Idag:"
     IDM_GOTODAY  "Gå til idag"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Adskiller"
 }
 
 {
     IDS_SEPARATOR "Adskiller"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "Ingen"
 }
 {
     HKY_NONE "Ingen"
 }
index 12f13a6..f3317e0 100644 (file)
@@ -21,7 +21,7 @@
 
 LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
 
 
 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\9cciwo\9cci %s"
 FONT 8, "MS Shell Dlg"
 STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "W³a\9cciwo\9cci %s"
 FONT 8, "MS Shell Dlg"
@@ -34,7 +34,7 @@ BEGIN
 END
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "Kreator"
 FONT 8, "MS Shell Dlg"
@@ -50,7 +50,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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"
 }
 
 {
     IDS_CLOSE    "Zamknij"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Dzi\9c:"
     IDM_GOTODAY  "Id\9f do dzi\9c"
 }
 
 {
     IDM_TODAY    "Dzi\9c:"
     IDM_GOTODAY  "Id\9f do dzi\9c"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Odstêp"
 }
 
 {
     IDS_SEPARATOR "Odstêp"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "Brak"
 }
 {
     HKY_NONE "Brak"
 }
index 914c4c2..ca60a59 100644 (file)
@@ -24,7 +24,7 @@
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
 
 
 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"
 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
 
   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"
 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
 
   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"
 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
 
   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"
 }
 
 {
     IDS_CLOSE    "Fechar"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Hoje:"
     IDM_GOTODAY  "Ir para hoje"
 }
 
 {
     IDM_TODAY    "Hoje:"
     IDM_GOTODAY  "Ir para hoje"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Separador"
 }
 
 {
     IDS_SEPARATOR "Separador"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "Nenhum"
 }
 {
     HKY_NONE "Nenhum"
 }
index 497f626..fd6b116 100644 (file)
@@ -23,7 +23,7 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
 
 #pragma code_page(65001)
 
 
 #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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "Expert"
 FONT 8, "MS Shell Dlg"
@@ -52,7 +52,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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"
 }
 
 {
     IDS_CLOSE    "Închide"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Azi:"
     IDM_GOTODAY  "Mergi la Azi"
 }
 
 {
     IDM_TODAY    "Azi:"
     IDM_GOTODAY  "Mergi la Azi"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Separator"
 }
 
 {
     IDS_SEPARATOR "Separator"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "Nimic"
 }
 {
     HKY_NONE "Nimic"
 }
index e09817c..ce33060 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
 
 
 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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "Мастер"
 FONT 8, "MS Shell Dlg"
@@ -54,7 +54,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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    "Закрыть"
 }
 
 {
     IDS_CLOSE    "Закрыть"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Сегодня:"
     IDM_GOTODAY  "Текущая дата"
 }
 
 {
     IDM_TODAY    "Сегодня:"
     IDM_GOTODAY  "Текущая дата"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Разделитель"
 }
 
 {
     IDS_SEPARATOR "Разделитель"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "Нет"
 }
 {
     HKY_NONE "Нет"
 }
index cc1053f..9d1b1f2 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT
 
 
 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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "Čarovnik"
 FONT 8, "MS Shell Dlg"
@@ -51,7 +51,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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"
 }
 
 {
     IDS_CLOSE    "Zapri"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Danes:"
     IDM_GOTODAY  "Pojdi na danes"
 }
 
 {
     IDM_TODAY    "Danes:"
     IDM_GOTODAY  "Pojdi na danes"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Ločilo"
 }
 
 {
     IDS_SEPARATOR "Ločilo"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "Brez"
 }
 {
     HKY_NONE "Brez"
 }
index c543e37..4acd84c 100644 (file)
@@ -23,7 +23,7 @@
 
 LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
 
 
 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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "Sprievodca"
 FONT 8, "MS Shell Dlg"
@@ -52,7 +52,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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\9d"
 }
 
 {
     IDS_CLOSE    "Zavrie\9d"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Dnes:"
     IDM_GOTODAY  "Choï na dne\9aok"
 }
 
 {
     IDM_TODAY    "Dnes:"
     IDM_GOTODAY  "Choï na dne\9aok"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Odde¾ovaè"
 }
 
 {
     IDS_SEPARATOR "Odde¾ovaè"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "\8eiadne"
 }
 {
     HKY_NONE "\8eiadne"
 }
diff --git a/reactos/dll/win32/comctl32/comctl_Sr.rc b/reactos/dll/win32/comctl32/comctl_Sr.rc
new file mode 100644 (file)
index 0000000..8681ecb
--- /dev/null
@@ -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 "Ништа"
+}
index 18bfefc..e66b379 100644 (file)
@@ -20,7 +20,7 @@
 
 LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
 
 
 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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "Guide"
 FONT 8, "MS Shell Dlg"
@@ -49,7 +49,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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"
 }
 
 {
     IDS_CLOSE    "Stäng"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Idag:"
     IDM_GOTODAY  "Gå till idag"
 }
 
 {
     IDM_TODAY    "Idag:"
     IDM_GOTODAY  "Gå till idag"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Separator"
 }
 
 {
     IDS_SEPARATOR "Separator"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "Ingen"
 }
 {
     HKY_NONE "Ingen"
 }
index ff1e1fa..915ecf4 100644 (file)
@@ -20,7 +20,7 @@
 
 LANGUAGE LANG_THAI, SUBLANG_DEFAULT
 
 
 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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "Wizard"
 FONT 8, "MS Shell Dlg"
@@ -49,7 +49,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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    "»Õ´"
 }
 
 {
     IDS_CLOSE    "»Õ´"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Çѹ¹Õé:"
     IDM_GOTODAY  "件֧Çѹ¹Õé"
 }
 
 {
     IDM_TODAY    "Çѹ¹Õé:"
     IDM_GOTODAY  "件֧Çѹ¹Õé"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Separator"
 }
 
 {
     IDS_SEPARATOR "Separator"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "äÁèÁÕàÅÂ"
 }
 {
     HKY_NONE "äÁèÁÕàÅÂ"
 }
index cdc89ca..cda2193 100644 (file)
@@ -20,7 +20,7 @@
 
 LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
 
 
 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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "Sihirbaz"
 FONT 8, "MS Shell Dlg"
@@ -49,7 +49,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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"
 }
 
 {
     IDS_CLOSE    "Kapat"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Bugün:"
     IDM_GOTODAY  "Bugüne git"
 }
 
 {
     IDM_TODAY    "Bugün:"
     IDM_GOTODAY  "Bugüne git"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Ayraç"
 }
 
 {
     IDS_SEPARATOR "Ayraç"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "Hiçbiri"
 }
 {
     HKY_NONE "Hiçbiri"
 }
index 333eb77..3aa29f0 100644 (file)
@@ -24,7 +24,7 @@
 
 LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
 
 
 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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "Ìàéñòåð"
 FONT 8, "MS Shell Dlg"
@@ -53,7 +53,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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    "Çàêðèòè"
 }
 
 {
     IDS_CLOSE    "Çàêðèòè"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "Ñüîãîäí³:"
     IDM_GOTODAY  "Ïîòî÷íà äàòà"
 }
 
 {
     IDM_TODAY    "Ñüîãîäí³:"
     IDM_GOTODAY  "Ïîòî÷íà äàòà"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "Ðîçä³ëüíèê"
 }
 
 {
     IDS_SEPARATOR "Ðîçä³ëüíèê"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "Íåìà"
 }
 {
     HKY_NONE "Íåìà"
 }
index 8919119..63f22e7 100644 (file)
@@ -26,7 +26,7 @@
 
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
 
 
 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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "向导"
 FONT 9, "MS Shell Dlg"
@@ -55,7 +55,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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    "关闭"
 }
 
 {
     IDS_CLOSE    "关闭"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "今天:"
     IDM_GOTODAY  "转到今天"
 }
 
 {
     IDM_TODAY    "今天:"
     IDM_GOTODAY  "转到今天"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "分隔符"
 }
 
 {
     IDS_SEPARATOR "分隔符"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "无"
 }
 
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
 
 {
     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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
 CAPTION "向導"
 FONT 9, "MS Shell Dlg"
@@ -125,7 +125,7 @@ BEGIN
 END
 
 
 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"
 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
 
   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    "關閉"
 }
 
 {
     IDS_CLOSE    "關閉"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDM_TODAY    "今天:"
     IDM_GOTODAY  "轉到今天"
 }
 
 {
     IDM_TODAY    "今天:"
     IDM_GOTODAY  "轉到今天"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SEPARATOR "分隔符"
 }
 
 {
     IDS_SEPARATOR "分隔符"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     HKY_NONE "無"
 }
 {
     HKY_NONE "無"
 }
index a9795e0..ded407e 100644 (file)
@@ -6,7 +6,7 @@
  * Copyright 1999 Chris Morgan <cmorgan@wpi.edu> and
  *               James Abbatiello <abbeyj@wpi.edu>
  * Copyright 2000 Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
  * Copyright 1999 Chris Morgan <cmorgan@wpi.edu> and
  *               James Abbatiello <abbeyj@wpi.edu>
  * Copyright 2000 Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
- * 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
  *
  * 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
 #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) */
 
                                           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)
 
 /* 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;
 typedef struct
 {
     HWND       hwndSelf;
@@ -117,19 +130,16 @@ typedef struct
     SYSTEMTIME minDate;
     SYSTEMTIME maxDate;
 
     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 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 */
     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 };
 } 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)
 {
 /* 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);
 
 
   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) +
   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)
 {
 /* 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_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);
 
   /* 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,
    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;
 {
   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;
 
   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;
 
   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)
 {
 /* 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->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;
 }
 
   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 */
     }
 }
 /* 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 };
 {
   static const WCHAR fmt_monthW[] = { '%','s',' ','%','l','d',0 };
+  RECT *title = &infoPtr->calendars[calIdx].title;
   WCHAR buf_month[80], buf_fmt[80];
   HBRUSH hbr;
   WCHAR buf_month[80], buf_fmt[80];
   HBRUSH hbr;
-  RECT *title = &infoPtr->title;
   SIZE sz;
 
   /* fill header box */
   SIZE sz;
 
   /* fill header box */
-  hbr =  CreateSolidBrush(infoPtr->titlebk);
+  hbr = CreateSolidBrush(infoPtr->titlebk);
   FillRect(hdc, title, hbr);
   DeleteObject(hbr);
 
   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);
   /* 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);
 
   /* 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);
 
   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;
 {
   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++;
   }
 
     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++) {
   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 */
   }
 
   /* 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 */
 }
 
 /* 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;
 {
   INT prev_month, i, j;
   WCHAR buf[80];
   HBRUSH hbr;
-  RECT r;
+  RECT r, fill_bk_rect;
   int mask;
   SYSTEMTIME st;
 
   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 */
   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;
 
   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 */
 
   /* 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;
   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 */
   }
 
   /* 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);
 
   {
     SYSTEMTIME st_max;
 
     SetTextColor(hdc, infoPtr->trailingtxt);
 
-    MONTHCAL_GetMinDate(infoPtr, &st);
-
     /* draw prev month */
     /* 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 */
     }
 
     /* 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)) {
   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++;
   }
     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)
 {
 }
 
 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;
   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);
 
 
   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);
 
   /* restore context */
   SetBkColor(hdc, old_bk_clr);
@@ -1041,9 +1082,9 @@ MONTHCAL_GetMinReqRect(const MONTHCAL_INFO *infoPtr, LPRECT lpRect)
 
   if(!lpRect) return FALSE;
 
 
   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);
   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
   {
     /* 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);
 
     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)
 {
 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:
     {
 
   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;
         }
         {
             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);
 
         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:
     {
     }
     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)
 {
 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;
 
   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;
 }
 
   return 1;
 }
@@ -1401,6 +1439,7 @@ MONTHCAL_SetCurSel(MONTHCAL_INFO *infoPtr, SYSTEMTIME *curSel)
     InvalidateRect(infoPtr->hwndSelf, NULL, FALSE);
 
   infoPtr->curSel = *curSel;
     InvalidateRect(infoPtr->hwndSelf, NULL, FALSE);
 
   infoPtr->curSel = *curSel;
+  infoPtr->calendars[0].month = *curSel;
 
   return TRUE;
 }
 
   return TRUE;
 }
@@ -1481,6 +1520,7 @@ MONTHCAL_SetSelRange(MONTHCAL_INFO *infoPtr, SYSTEMTIME *range)
       infoPtr->maxSel = range[0];
     }
     infoPtr->curSel = infoPtr->minSel;
       infoPtr->maxSel = range[0];
     }
     infoPtr->curSel = infoPtr->minSel;
+    infoPtr->calendars[0].month = infoPtr->minSel;
 
     /* update day of week */
     MONTHCAL_CalculateDayOfWeek(&infoPtr->minSel, TRUE);
 
     /* update day of week */
     MONTHCAL_CalculateDayOfWeek(&infoPtr->minSel, TRUE);
@@ -1552,19 +1592,39 @@ MONTHCAL_SetToday(MONTHCAL_INFO *infoPtr, const SYSTEMTIME *today)
   return TRUE;
 }
 
   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)
 {
 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;
 
 
   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,
 
   /* 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);
   */
 
        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)
       {
       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;
       }
          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);
          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 {
       }
       else {
-       retval = MCHT_CALENDARDATE;
+       lpht->uHit = MCHT_CALENDARDATE;
        lpht->st.wDay = day;
       }
        lpht->st.wDay = day;
       }
+
       /* always update day of week */
       MONTHCAL_CalculateDayOfWeek(&lpht->st, TRUE);
       /* 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 */
 }
 
 /* MCN_GETDAYSTATE notification helper */
@@ -1666,7 +1745,6 @@ static void MONTHCAL_NotifyDayState(MONTHCAL_INFO *infoPtr)
 {
   if(infoPtr->dwStyle & MCS_DAYSTATE) {
     NMDAYSTATE nmds;
 {
   if(infoPtr->dwStyle & MCS_DAYSTATE) {
     NMDAYSTATE nmds;
-    INT i;
 
     nmds.nmhdr.hwndFrom = infoPtr->hwndSelf;
     nmds.nmhdr.idFrom   = GetWindowLongPtrW(infoPtr->hwndSelf, GWLP_ID);
 
     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);
     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);
   }
 
     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;
                     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);
       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->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);
 
                        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->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);
 
                        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;
   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);
     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);
 {
   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 *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;
   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);
 
   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);
     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);
 
 
   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->maxSelCount   = (infoPtr->dwStyle & MCS_MULTISELECT) ? 7 : 1;
   infoPtr->monthRange    = 3;
+
   infoPtr->monthdayState = Alloc(infoPtr->monthRange * sizeof(MONTHDAYSTATE));
   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;
   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->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 */
   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;
   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);
 
 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));
   SetWindowLongPtrW(infoPtr->hwndSelf, 0, 0);
 
   CloseThemeData (GetWindowTheme (infoPtr->hwndSelf));
index 2b4729a..3e313ba 100644 (file)
@@ -2421,28 +2421,6 @@ static BOOL PROPSHEET_RemovePage(HWND hwndDlg,
   return FALSE;
 }
 
   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
  *
 /******************************************************************************
  *            PROPSHEET_SetWizButtons
  *
@@ -2464,6 +2442,17 @@ static void PROPSHEET_SetWizButtons(HWND hwndDlg, DWORD dwFlags)
   EnableWindow(hwndNext, FALSE);
   EnableWindow(hwndFinish, FALSE);
 
   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);
 
   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);
   }
   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);
 
       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);
 
       /* Set up fonts */
       SystemParametersInfoW (SPI_GETICONTITLELOGFONT, 0, &logFont, 0);
index f906a7f..a95d0fb 100644 (file)
@@ -37,49 +37,49 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
 #include "wine/wine_common_ver.rc"
 
 /* @makedep: idt_check.bmp */
 #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 */
 
 /* @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 */
 
 /* @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 */
 
 /* @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 */
 
 /* @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 */
 
 /* @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 */
 
 /* @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 */
 
 /* @makedep: idc_copy.cur */
-IDC_COPY CURSOR LOADONCALL DISCARDABLE idc_copy.cur
+IDC_COPY CURSOR idc_copy.cur
 
 /* @makedep: idc_divider.cur */
 
 /* @makedep: idc_divider.cur */
-IDC_DIVIDER CURSOR LOADONCALL DISCARDABLE idc_divider.cur
+IDC_DIVIDER CURSOR idc_divider.cur
 
 /* @makedep: idc_divideropen.cur */
 
 /* @makedep: idc_divideropen.cur */
-IDC_DIVIDEROPEN CURSOR LOADONCALL DISCARDABLE idc_divideropen.cur
+IDC_DIVIDEROPEN CURSOR idc_divideropen.cur
 
 /* @makedep: idc_movebutton.cur */
 
 /* @makedep: idc_movebutton.cur */
-IDC_MOVEBUTTON CURSOR LOADONCALL DISCARDABLE idc_movebutton.cur
+IDC_MOVEBUTTON CURSOR idc_movebutton.cur
 
 /* @makedep: idi_dragarrow.ico */
 
 /* @makedep: idi_dragarrow.ico */
-IDI_DRAGARROW ICON LOADONCALL DISCARDABLE idi_dragarrow.ico
+IDI_DRAGARROW ICON idi_dragarrow.ico
 
 /* @makedep: idi_tt_info_sm.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 */
 
 /* @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 */
 
 /* @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_Ro.rc"
 #include "comctl_Ru.rc"
 #include "comctl_Si.rc"
+#include "comctl_Sr.rc"
 #include "comctl_Zh.rc"
 #include "comctl_Zh.rc"
index fe782c3..9b41732 100644 (file)
@@ -3028,7 +3028,7 @@ TOOLBAR_AutoSize (TOOLBAR_INFO *infoPtr)
     if (!(infoPtr->dwStyle & CCS_NORESIZE))
     {
         RECT window_rect;
     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)
         {
 
         if ((infoPtr->dwStyle & CCS_BOTTOM) == CCS_NOMOVEY)
         {
@@ -3050,9 +3050,8 @@ TOOLBAR_AutoSize (TOOLBAR_INFO *infoPtr)
 
         if (infoPtr->dwStyle & WS_BORDER)
         {
 
         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);
         }
 
         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,
             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 */
         }
 
         /* 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 )
        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);
     }
 
        DrawEdge (hdc, &rcWindow, EDGE_ETCHED, BF_TOP);
     }
 
index 8f49c43..688d3b5 100644 (file)
@@ -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)
 {
 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;
 }
 
     return 0;
 }
 
index 6dbee0f..c3b43c4 100644 (file)
@@ -76,6 +76,7 @@ typedef struct _TREEITEM    /* HTREEITEM is a _TREEINFO *. */
   int       cchTextMax;
   int       iImage;
   int       iSelectedImage;
   int       cchTextMax;
   int       iImage;
   int       iSelectedImage;
+  int       iExpandedImage;
   int       cChildren;
   LPARAM    lParam;
   int       iIntegral;      /* item height multiplier (1 is normal) */
   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;
 
        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)
     /* 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_SELECTEDIMAGE)
        wineItem->iSelectedImage = callback.item.iSelectedImage;
 
+    if (mask & TVIF_EXPANDEDIMAGE)
+       wineItem->iExpandedImage = callback.item.iExpandedImage;
+
     if (mask & TVIF_CHILDREN)
        wineItem->cChildren = callback.item.cChildren;
 
     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;
      * inc/dec to toggle the images. */
     newItem->iImage = 0;
     newItem->iSelectedImage = 0;
+    newItem->iExpandedImage = 0;
 
     if (DPA_InsertPtr(infoPtr->items, INT_MAX, newItem) == -1)
     {
 
     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;
     }
 
            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;
 
     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);
     }
 
        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;
 
     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_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
     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);
        }
 
                           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))
         */
 
        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;
        }
            /* 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
        {
        else
        {
-           /* The item is not selected */
+           /* The item is not selected and not expanded */
            imageIndex = wineItem->iImage;
        }
 
            imageIndex = wineItem->iImage;
        }
 
@@ -3283,6 +3315,7 @@ TREEVIEW_Expand(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem,
     LONG orgNextTop = 0;
     RECT scrollRect;
     TREEVIEW_ITEM *nextItem, *tmpItem;
     LONG orgNextTop = 0;
     RECT scrollRect;
     TREEVIEW_ITEM *nextItem, *tmpItem;
+    BOOL sendsNotifications;
 
     TRACE("(%p, %p, partial=%d, %d\n", infoPtr, wineItem, bExpandPartial, bUser);
 
 
     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));
 
 
     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 (!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");
 
     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;
 }
 
     return TRUE;
 }
 
index 5b0865a..b0db421 100644 (file)
@@ -26,7 +26,7 @@
 
 LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
 
 
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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 "Ïå÷àò"
 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
 }
 
     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 "Íàñòðîéêè íà ïå÷àòàíåòî"
 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
 
     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"
 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
 
   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"
 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
 }
 
     PUSHBUTTON         "&Ïîìîù",                pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "&Îòíîñíî FolderPicker òåñòà"
     IDS_DOCUMENTFOLDERS     "Ïàïêè ñ äîêóìåíòè"
 {
     IDS_ABOUTBOX            "&Îòíîñíî FolderPicker òåñòà"
     IDS_DOCUMENTFOLDERS     "Ïàïêè ñ äîêóìåíòè"
@@ -365,7 +365,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "Ìîÿ êîìïþòúð"
 }
 
     IDS_MYCOMPUTER          "Ìîÿ êîìïþòúð"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "Ñèñòåìíè ïàïêè"
     IDS_LOCALHARDRIVES      "Ëîêàëíè óñòðîéñòâà"
 {
     IDS_SYSTEMFOLDERS       "Ñèñòåìíè ïàïêè"
     IDS_LOCALHARDRIVES      "Ëîêàëíè óñòðîéñòâà"
@@ -379,7 +379,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "Ôàéëúò íå ñúùåñòâóâà"
 }
 
     IDS_FILENOTEXISTING     "Ôàéëúò íå ñúùåñòâóâà"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "Åäíî íèâî íàãîðå"
     IDS_NEWFOLDER        "Ñúçäàé íîâà ïàïêà"
 {
     IDS_UPFOLDER         "Åäíî íèâî íàãîðå"
     IDS_NEWFOLDER        "Ñúçäàé íîâà ïàïêà"
@@ -388,7 +388,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "Ïðåìèíè êúì ðàáîòíèÿ ïëîò"
 }
 
     IDS_TODESKTOP        "Ïðåìèíè êúì ðàáîòíèÿ ïëîò"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Ïå÷àò"
 
 {
     PD32_PRINT_TITLE       "Ïå÷àò"
 
@@ -447,7 +447,7 @@ STRINGTABLE DISCARDABLE
     PD32_PRINTER_STATUS_POWER_SAVE        "Ðåæèì íà ïåñòåíå íà åíåðãèÿ; "
 }
 
     PD32_PRINTER_STATUS_POWER_SAVE        "Ðåæèì íà ïåñòåíå íà åíåðãèÿ; "
 }
 
-STRINGTABLE DISCARDABLE /* Color names */
+STRINGTABLE /* Color names */
 {
     IDS_COLOR_BLACK     "×åðíî"
     IDS_COLOR_MAROON    "Øàòåí" /* Maroon? ×åðâåíèêàâî êàôÿâ? */
 {
     IDS_COLOR_BLACK     "×åðíî"
     IDS_COLOR_MAROON    "Øàòåí" /* Maroon? ×åðâåíèêàâî êàôÿâ? */
@@ -467,7 +467,7 @@ STRINGTABLE DISCARDABLE /* Color names */
     IDS_COLOR_WHITE     "Áÿëî"
 }
 
     IDS_COLOR_WHITE     "Áÿëî"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_FONT_SIZE   "Èçáåðåòå ðàçìåð íà øðèôòà ìåæäó %d è %d ïóíêòà."
     IDS_SAVE_BUTTON "&Ñúõðàíè"
 {
     IDS_FONT_SIZE   "Èçáåðåòå ðàçìåð íà øðèôòà ìåæäó %d è %d ïóíêòà."
     IDS_SAVE_BUTTON "&Ñúõðàíè"
index 59cffb1..87d45a2 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_CATALAN, SUBLANG_DEFAULT
 
 
 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"
 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"
 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
 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
  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"
 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"
 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"
 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"
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Substitució"
 FONT 8, "MS Shell Dlg"
index e3acb80..5b8acf9 100644 (file)
@@ -29,7 +29,7 @@ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
 
 /* Czech strings in CP1250 */
 
 
 /* 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"
 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\9e pod jménem..."
 FONT 8, "MS Shell Dlg"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Ulo\9e 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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
 }
 
     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"
 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 \9aíøku",     rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12
 END
 
     CONTROL         "N&a \9aíø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"
 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
 
   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"
 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
 }
 
     PUSHBUTTON         "&Nápovìda",             pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "&O FolderPicker testu"
     IDS_DOCUMENTFOLDERS     "Slo\9eky dokumentù"
 {
     IDS_ABOUTBOX            "&O FolderPicker testu"
     IDS_DOCUMENTFOLDERS     "Slo\9eky dokumentù"
@@ -367,7 +367,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "Mùj poèítaè"
 }
 
     IDS_MYCOMPUTER          "Mùj poèítaè"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "Systémové slo\9eky"
     IDS_LOCALHARDRIVES      "Místní jednotky pevných diskù"
 {
     IDS_SYSTEMFOLDERS       "Systémové slo\9eky"
     IDS_LOCALHARDRIVES      "Místní jednotky pevných diskù"
@@ -381,7 +381,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "Soubor neexistuje"
 }
 
     IDS_FILENOTEXISTING     "Soubor neexistuje"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "O jednu úroveò vý\9ae"
     IDS_NEWFOLDER        "Vytvoøit novou slo\9eku"
 {
     IDS_UPFOLDER         "O jednu úroveò vý\9ae"
     IDS_NEWFOLDER        "Vytvoøit novou slo\9eku"
@@ -390,7 +390,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "Prohlí\9eet plochu"
 }
 
     IDS_TODESKTOP        "Prohlí\9eet plochu"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Tisk"
 
 {
     PD32_PRINT_TITLE       "Tisk"
 
@@ -446,7 +446,7 @@ podporov
     PD32_PRINTER_STATUS_POWER_SAVE        "Úsporný re\9eim; "
 }
 
     PD32_PRINTER_STATUS_POWER_SAVE        "Úsporný re\9eim; "
 }
 
-STRINGTABLE DISCARDABLE /* Color names */
+STRINGTABLE /* Color names */
 {
     IDS_COLOR_BLACK     "èerná"
     IDS_COLOR_MAROON    "hnìdá"
 {
     IDS_COLOR_BLACK     "èerná"
     IDS_COLOR_MAROON    "hnìdá"
@@ -466,7 +466,7 @@ STRINGTABLE DISCARDABLE /* Color names */
     IDS_COLOR_WHITE     "bílá"
 }
 
     IDS_COLOR_WHITE     "bílá"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_FONT_SIZE   "Urèete velikost fontu mezi %d a %d body."
     IDS_SAVE_BUTTON "&Ulo\9eit"
 {
     IDS_FONT_SIZE   "Urèete velikost fontu mezi %d a %d body."
     IDS_SAVE_BUTTON "&Ulo\9eit"
index 4502c93..2d92bef 100644 (file)
@@ -29,7 +29,7 @@
 
 LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
 
 
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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
 }
 
     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"
 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
 
     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"
 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
 
   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"
 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
 }
 
     PUSHBUTTON         "&Hjælp",               pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "&Om FolderPicker Test"
     IDS_DOCUMENTFOLDERS     "Dokument foldere"
 {
     IDS_ABOUTBOX            "&Om FolderPicker Test"
     IDS_DOCUMENTFOLDERS     "Dokument foldere"
@@ -368,7 +368,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "Min computer"
 }
 
     IDS_MYCOMPUTER          "Min computer"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "System mapper"
     IDS_LOCALHARDRIVES      "Lokale harddiske"
 {
     IDS_SYSTEMFOLDERS       "System mapper"
     IDS_LOCALHARDRIVES      "Lokale harddiske"
@@ -382,7 +382,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "Filen eksisterer ikke."
 }
 
     IDS_FILENOTEXISTING     "Filen eksisterer ikke."
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "Et niveau op"
     IDS_NEWFOLDER        "Opret ny mappe"
 {
     IDS_UPFOLDER         "Et niveau op"
     IDS_NEWFOLDER        "Opret ny mappe"
@@ -391,7 +391,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "Gennemse skrivebordet"
 }
 
     IDS_TODESKTOP        "Gennemse skrivebordet"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Udskriv"
 
 {
     PD32_PRINT_TITLE       "Udskriv"
 
@@ -448,7 +448,7 @@ Installer venligst en og prøv igen."
     PD32_PRINTER_STATUS_POWER_SAVE        "Energispare mode; "
 }
 
     PD32_PRINTER_STATUS_POWER_SAVE        "Energispare mode; "
 }
 
-STRINGTABLE DISCARDABLE /* Font styles */
+STRINGTABLE /* Font styles */
 {
     IDS_FONT_REGULAR       "Normal"
     IDS_FONT_BOLD          "Fed"
 {
     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"
 {
     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"
 {
     IDS_FONT_SIZE   "Vælg en skrift størrelse mellem %d og %d punkter."
     IDS_SAVE_BUTTON "&Gem"
index 787a85e..a471584 100644 (file)
@@ -28,7 +28,7 @@
 
 LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
 
 
 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"
 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"
 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"
 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"
 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
 }
 
  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"
 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
 
 
 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"
 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"
 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"
 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"
 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
 }
 
  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"
 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
 }
 
     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"
 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
 }
 
     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"
 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
 
     CONTROL         "&Querformat",    rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12
 END
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "Ü&ber den Folderpicker"
     IDS_DOCUMENTFOLDERS     "Dokumenten Ordner"
 {
     IDS_ABOUTBOX            "Ü&ber den Folderpicker"
     IDS_DOCUMENTFOLDERS     "Dokumenten Ordner"
@@ -364,7 +364,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "Arbeitsplatz"
 }
 
     IDS_MYCOMPUTER          "Arbeitsplatz"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "System Ordner"
     IDS_LOCALHARDRIVES      "Lokale Festplatten"
 {
     IDS_SYSTEMFOLDERS       "System Ordner"
     IDS_LOCALHARDRIVES      "Lokale Festplatten"
@@ -378,7 +378,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "Die Datei existiert nicht"
 }
 
     IDS_FILENOTEXISTING     "Die Datei existiert nicht"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "Eine Verzeichnisebene höher"
     IDS_NEWFOLDER        "Neuen Ordner anlegen"
 {
     IDS_UPFOLDER         "Eine Verzeichnisebene höher"
     IDS_NEWFOLDER        "Neuen Ordner anlegen"
@@ -387,7 +387,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "Desktopordner anzeigen"
 }
 
     IDS_TODESKTOP        "Desktopordner anzeigen"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Drucken"
 
 {
     PD32_PRINT_TITLE       "Drucken"
 
@@ -442,7 +442,7 @@ Bitte geben sie einen Wert zwischen %d und %d an."
     PD32_PRINTER_STATUS_POWER_SAVE        "Stromsparmodus; "
 }
 
     PD32_PRINTER_STATUS_POWER_SAVE        "Stromsparmodus; "
 }
 
-STRINGTABLE DISCARDABLE /* Font styles */
+STRINGTABLE /* Font styles */
 {
     IDS_FONT_REGULAR       "Normal"
     IDS_FONT_BOLD          "Fett"
 {
     IDS_FONT_REGULAR       "Normal"
     IDS_FONT_BOLD          "Fett"
@@ -450,7 +450,7 @@ STRINGTABLE DISCARDABLE /* Font styles */
     IDS_FONT_BOLD_ITALIC   "Fett Kursiv"
 }
 
     IDS_FONT_BOLD_ITALIC   "Fett Kursiv"
 }
 
-STRINGTABLE DISCARDABLE /* Color names */
+STRINGTABLE /* Color names */
 {
    IDS_COLOR_BLACK     "Schwarz"
    IDS_COLOR_MAROON    "Kastanienbraun"
 {
    IDS_COLOR_BLACK     "Schwarz"
    IDS_COLOR_MAROON    "Kastanienbraun"
@@ -470,7 +470,7 @@ STRINGTABLE DISCARDABLE /* Color names */
    IDS_COLOR_WHITE     "Weiß"
 }
 
    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"
 {
    IDS_FONT_SIZE       "Wählen Sie eine Schriftgröße zwischen %d und %d Punkten aus."
    IDS_SAVE_BUTTON     "&Speichern"
index 309cda9..505a889 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_GREEK, SUBLANG_DEFAULT
 
 
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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 "Åêôýðùóç"
 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
 }
 
     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 "Ñýèìéóç åêôýðùóçò"
 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
 
     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"
 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
 
   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"
 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
 }
 
     PUSHBUTTON         "&ÂïÞèåéá",              pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "&About FolderPicker Test"
     IDS_DOCUMENTFOLDERS     "Document Folders"
 {
     IDS_ABOUTBOX            "&About FolderPicker Test"
     IDS_DOCUMENTFOLDERS     "Document Folders"
@@ -364,7 +364,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "Ï ÕðïëïãéóôÞò ìïõ"
 }
 
     IDS_MYCOMPUTER          "Ï ÕðïëïãéóôÞò ìïõ"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "ÊáôÜëïãïé ÓõóôÞìáôïò"
     IDS_LOCALHARDRIVES      "Ôïðéêïß Óêëçñïß Äßóêïé"
 {
     IDS_SYSTEMFOLDERS       "ÊáôÜëïãïé ÓõóôÞìáôïò"
     IDS_LOCALHARDRIVES      "Ôïðéêïß Óêëçñïß Äßóêïé"
@@ -378,7 +378,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "Ôï áñ÷åßï äåí õðÜñ÷åé"
 }
 
     IDS_FILENOTEXISTING     "Ôï áñ÷åßï äåí õðÜñ÷åé"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "¸íá åðßðåäï ðÜíù"
     IDS_NEWFOLDER        "Äçìéïõñãßá íÝïõ êáôáëüãïõ"
 {
     IDS_UPFOLDER         "¸íá åðßðåäï ðÜíù"
     IDS_NEWFOLDER        "Äçìéïõñãßá íÝïõ êáôáëüãïõ"
@@ -387,7 +387,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "Browse to Desktop"
 }
 
     IDS_TODESKTOP        "Browse to Desktop"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Åêôýðùóç"
 
 {
     PD32_PRINT_TITLE       "Åêôýðùóç"
 
@@ -446,7 +446,7 @@ Please install one and retry."
     PD32_PRINTER_STATUS_POWER_SAVE        "Power save mode; "
 }
 
     PD32_PRINTER_STATUS_POWER_SAVE        "Power save mode; "
 }
 
-STRINGTABLE DISCARDABLE /* Font styles */
+STRINGTABLE /* Font styles */
 {
     IDS_FONT_REGULAR       "ÊáíïíéêÜ"
     IDS_FONT_BOLD          "¸íôïíá"
 {
     IDS_FONT_REGULAR       "ÊáíïíéêÜ"
     IDS_FONT_BOLD          "¸íôïíá"
@@ -454,7 +454,7 @@ STRINGTABLE DISCARDABLE /* Font styles */
     IDS_FONT_BOLD_ITALIC   "¸íôïíá ÐëÜãéá"
 }
 
     IDS_FONT_BOLD_ITALIC   "¸íôïíá ÐëÜãéá"
 }
 
-STRINGTABLE DISCARDABLE /* Color names */
+STRINGTABLE /* Color names */
 {
     IDS_COLOR_BLACK     "Ìáýñï"
     IDS_COLOR_MAROON    "Maroon"
 {
     IDS_COLOR_BLACK     "Ìáýñï"
     IDS_COLOR_MAROON    "Maroon"
@@ -474,7 +474,7 @@ STRINGTABLE DISCARDABLE /* Color names */
     IDS_COLOR_WHITE     "¢óðñï"
 }
 
     IDS_COLOR_WHITE     "¢óðñï"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_FONT_SIZE   "ÅðéëÝîôå ìÝãåèïò ãñáììáôïóåéñÜò ìåôáîý %d êáé %d ðüíôïõò."
     IDS_SAVE_BUTTON "&ÁðïèÞêåõóç"
 {
     IDS_FONT_SIZE   "ÅðéëÝîôå ìÝãåèïò ãñáììáôïóåéñÜò ìåôáîý %d êáé %d ðüíôïõò."
     IDS_SAVE_BUTTON "&ÁðïèÞêåõóç"
index c6889b4..15b985e 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
 
 
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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
 }
 
     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"
 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
 
     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"
 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
 
   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"
 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
 }
 
     PUSHBUTTON         "&Help",                 pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "&About FolderPicker Test"
     IDS_DOCUMENTFOLDERS     "Document Folders"
 {
     IDS_ABOUTBOX            "&About FolderPicker Test"
     IDS_DOCUMENTFOLDERS     "Document Folders"
@@ -364,7 +364,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "My Computer"
 }
 
     IDS_MYCOMPUTER          "My Computer"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "System Folders"
     IDS_LOCALHARDRIVES      "Local Hard Drives"
 {
     IDS_SYSTEMFOLDERS       "System Folders"
     IDS_LOCALHARDRIVES      "Local Hard Drives"
@@ -378,7 +378,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "File does not exist"
 }
 
     IDS_FILENOTEXISTING     "File does not exist"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "Up One Level"
     IDS_NEWFOLDER        "Create New Folder"
 {
     IDS_UPFOLDER         "Up One Level"
     IDS_NEWFOLDER        "Create New Folder"
@@ -387,7 +387,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "Browse to Desktop"
 }
 
     IDS_TODESKTOP        "Browse to Desktop"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Print"
 
 {
     PD32_PRINT_TITLE       "Print"
 
@@ -446,7 +446,7 @@ Please install one and retry."
     PD32_PRINTER_STATUS_POWER_SAVE        "Power save mode; "
 }
 
     PD32_PRINTER_STATUS_POWER_SAVE        "Power save mode; "
 }
 
-STRINGTABLE DISCARDABLE /* Font styles */
+STRINGTABLE /* Font styles */
 {
     IDS_FONT_REGULAR       "Regular"
     IDS_FONT_BOLD          "Bold"
 {
     IDS_FONT_REGULAR       "Regular"
     IDS_FONT_BOLD          "Bold"
@@ -454,7 +454,7 @@ STRINGTABLE DISCARDABLE /* Font styles */
     IDS_FONT_BOLD_ITALIC   "Bold Italic"
 }
 
     IDS_FONT_BOLD_ITALIC   "Bold Italic"
 }
 
-STRINGTABLE DISCARDABLE /* Color names */
+STRINGTABLE /* Color names */
 {
     IDS_COLOR_BLACK     "Black"
     IDS_COLOR_MAROON    "Maroon"
 {
     IDS_COLOR_BLACK     "Black"
     IDS_COLOR_MAROON    "Maroon"
@@ -474,7 +474,7 @@ STRINGTABLE DISCARDABLE /* Color names */
     IDS_COLOR_WHITE     "White"
 }
 
     IDS_COLOR_WHITE     "White"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_FONT_SIZE   "Select a font size between %d and %d points."
     IDS_SAVE_BUTTON "&Save"
 {
     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
 
 
 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"
 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"
 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"  */
 }
 
  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"
 {
     IDS_COLOR_BLACK     "Black"
     IDS_COLOR_MAROON    "Maroon"
index 8327e6a..4934441 100644 (file)
@@ -26,7 +26,7 @@
 
 LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
 
 
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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
 }
 
     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"
 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
 
     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"
 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
 
   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"
 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
 }
 
     PUSHBUTTON         "&Ayuda",                pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "&Acerca del test FolderPicker"
     IDS_DOCUMENTFOLDERS     "Carpetas de documentos"
 {
     IDS_ABOUTBOX            "&Acerca del test FolderPicker"
     IDS_DOCUMENTFOLDERS     "Carpetas de documentos"
@@ -365,7 +365,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "Mi PC"
 }
 
     IDS_MYCOMPUTER          "Mi PC"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "Carpetas del sistema"
     IDS_LOCALHARDRIVES      "Discos duros locales"
 {
     IDS_SYSTEMFOLDERS       "Carpetas del sistema"
     IDS_LOCALHARDRIVES      "Discos duros locales"
@@ -379,7 +379,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "El archivo no existe"
 }
 
     IDS_FILENOTEXISTING     "El archivo no existe"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "Subir un nivel"
     IDS_NEWFOLDER        "Crear nueva carpeta"
 {
     IDS_UPFOLDER         "Subir un nivel"
     IDS_NEWFOLDER        "Crear nueva carpeta"
@@ -388,7 +388,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "Explorar el escritorio"
 }
 
     IDS_TODESKTOP        "Explorar el escritorio"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Imprimir"
 
 {
     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; "
 }
 
     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"
 {
     IDS_FONT_REGULAR       "Normal"
     IDS_FONT_BOLD          "Negrita"
@@ -457,7 +457,7 @@ STRINGTABLE DISCARDABLE /* Font styles */
     IDS_FONT_BOLD_ITALIC   "Cursiva negrita"
 }
 
     IDS_FONT_BOLD_ITALIC   "Cursiva negrita"
 }
 
-STRINGTABLE DISCARDABLE /* Color names */
+STRINGTABLE /* Color names */
 {
     IDS_COLOR_BLACK     "Negro"
     IDS_COLOR_MAROON    "Granate"
 {
     IDS_COLOR_BLACK     "Negro"
     IDS_COLOR_MAROON    "Granate"
@@ -477,7 +477,7 @@ STRINGTABLE DISCARDABLE /* Color names */
     IDS_COLOR_WHITE     "Blanco"
 }
 
     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"
 {
     IDS_FONT_SIZE   "Elija un tamaño de fuente entre %d y %d puntos."
     IDS_SAVE_BUTTON "&Guardar"
index dbe273f..19f61a9 100644 (file)
@@ -26,7 +26,7 @@
 
 LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
 
 
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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
 }
 
  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"
 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
 }
 
     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"
 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
 
     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"
 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
 
   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"
 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
 }
 
     PUSHBUTTON         "&Ohje",                 pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "&Tietoja FolderPicker Test:stä"
     IDS_DOCUMENTFOLDERS     "Dokumenttikansiot"
 {
     IDS_ABOUTBOX            "&Tietoja FolderPicker Test:stä"
     IDS_DOCUMENTFOLDERS     "Dokumenttikansiot"
@@ -364,7 +364,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "Oma Tietokone"
 }
 
     IDS_MYCOMPUTER          "Oma Tietokone"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "Järjestemäkansiot"
     IDS_LOCALHARDRIVES      "Paikalliset kiintolevyt"
 {
     IDS_SYSTEMFOLDERS       "Järjestemäkansiot"
     IDS_LOCALHARDRIVES      "Paikalliset kiintolevyt"
@@ -378,7 +378,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "Tiedostoa ei ole"
 }
 
     IDS_FILENOTEXISTING     "Tiedostoa ei ole"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "Kansio Ylöspäin"
     IDS_NEWFOLDER        "Luo Uusi Kansio"
 {
     IDS_UPFOLDER         "Kansio Ylöspäin"
     IDS_NEWFOLDER        "Luo Uusi Kansio"
@@ -387,7 +387,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "Selaa Työpöytää"
 }
 
     IDS_TODESKTOP        "Selaa Työpöytää"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Tulosta"
 
 {
     PD32_PRINT_TITLE       "Tulosta"
 
@@ -441,7 +441,7 @@ Please install one and retry."
     PD32_PRINTER_STATUS_POWER_SAVE        "Virransäästötila; "
 }
 
     PD32_PRINTER_STATUS_POWER_SAVE        "Virransäästötila; "
 }
 
-STRINGTABLE DISCARDABLE /* Color names */
+STRINGTABLE /* Color names */
 {
     IDS_COLOR_BLACK     "Musta"
     IDS_COLOR_MAROON    "Kastanjanruskea"
 {
     IDS_COLOR_BLACK     "Musta"
     IDS_COLOR_MAROON    "Kastanjanruskea"
@@ -461,7 +461,7 @@ STRINGTABLE DISCARDABLE /* Color names */
     IDS_COLOR_WHITE     "Valkoinen"
 }
 
     IDS_COLOR_WHITE     "Valkoinen"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_FONT_SIZE   "Valitse fontin koko väliltä %d ja %d pistettä."
     IDS_SAVE_BUTTON "&Tallenna"
 {
     IDS_FONT_SIZE   "Valitse fontin koko väliltä %d ja %d pistettä."
     IDS_SAVE_BUTTON "&Tallenna"
index 881cbab..9a3233a 100644 (file)
@@ -33,7 +33,7 @@
 
 LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
 
 
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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
 }
 
     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"
 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
 
     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"
 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
 
   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"
 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
 }
 
     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"
 {
     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"
 }
 
     IDS_MYCOMPUTER          "Poste de travail"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "Répertoires système"
     IDS_LOCALHARDRIVES      "Disques locaux"
 {
     IDS_SYSTEMFOLDERS       "Répertoires système"
     IDS_LOCALHARDRIVES      "Disques locaux"
@@ -386,7 +386,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "Le fichier n'existe pas"
 }
 
     IDS_FILENOTEXISTING     "Le fichier n'existe pas"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "Remonter d'un niveau"
     IDS_NEWFOLDER        "Créer un nouveau dossier"
 {
     IDS_UPFOLDER         "Remonter d'un niveau"
     IDS_NEWFOLDER        "Créer un nouveau dossier"
@@ -395,7 +395,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "Voir le bureau"
 }
 
     IDS_TODESKTOP        "Voir le bureau"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Imprimer"
 
 {
     PD32_PRINT_TITLE       "Imprimer"
 
@@ -454,7 +454,7 @@ Veuillez en installer une et réessayez."
     PD32_PRINTER_STATUS_POWER_SAVE        "Mode économie d'énergie ; "
 }
 
     PD32_PRINTER_STATUS_POWER_SAVE        "Mode économie d'énergie ; "
 }
 
-STRINGTABLE DISCARDABLE /* Font styles */
+STRINGTABLE /* Font styles */
 {
     IDS_FONT_REGULAR       "Normal"
     IDS_FONT_BOLD          "Gras"
 {
     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"
 {
     IDS_COLOR_BLACK     "Noir"
     IDS_COLOR_MAROON    "Marron"
@@ -483,7 +483,7 @@ STRINGTABLE DISCARDABLE /* Color names */
     IDS_COLOR_WHITE     "Blanc"
 }
 
     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"
 {
     IDS_FONT_SIZE   "Sélectionnez une taille de police entre %d et %d points."
     IDS_SAVE_BUTTON "&Enregistrer"
index f207bc9..53af167 100644 (file)
@@ -49,7 +49,7 @@ FONT 8, "MS Shell Dlg"
         CONTROL "&Csak olvasható", 1040, "BUTTON", BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP, 208, 68, 63, 12
 }
 
         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"
 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"
 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
 }
 
  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"
 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
 
   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"
 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"
 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"
 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"
 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"  */
 }
 
  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"
 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
 
         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"
 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
 }
 
     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"
 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
 
     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"
 {
     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"
 }
 
     IDS_MYCOMPUTER          "Számítógép"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "Rendszermappák"
     IDS_LOCALHARDRIVES      "Helyi merevlemezek"
 {
     IDS_SYSTEMFOLDERS       "Rendszermappák"
     IDS_LOCALHARDRIVES      "Helyi merevlemezek"
@@ -376,7 +376,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "Fájl nem létezik"
 }
 
     IDS_FILENOTEXISTING     "Fájl nem létezik"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "Feljebb egy szintet"
     IDS_NEWFOLDER        "Új mappa léterehozása"
 {
     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"
 }
 
     IDS_TODESKTOP        "Navigálás az asztalra"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Nyomtatás"
 
 {
     PD32_PRINT_TITLE       "Nyomtatás"
 
@@ -443,7 +443,7 @@ Please install one and retry."
     PD32_PRINTER_STATUS_POWER_SAVE        "energiatakarékos mód; "
 }
 
     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"
 {
     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"
 }
 
     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"
 {
     IDS_COLOR_BLACK     "Fekete"
     IDS_COLOR_MAROON    "Gesztenyebarna"
@@ -471,7 +471,7 @@ STRINGTABLE DISCARDABLE /* Color names */
     IDS_COLOR_WHITE     "Fehér"
 }
 
     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"
 {
     IDS_FONT_SIZE   "Válasszon betûméretet %d és %d pont között."
     IDS_SAVE_BUTTON "&Mentés"
index 1e3c607..e8bb6d4 100644 (file)
@@ -31,7 +31,7 @@
 
 LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
 
 
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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
 }
 
     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"
 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
 
     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"
 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
 
   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"
 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
 }
 
     PUSHBUTTON         "&Aiuto",                pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "&Informazioni sul Test FolderPicker"
     IDS_DOCUMENTFOLDERS     "Cartelle Documenti"
 {
     IDS_ABOUTBOX            "&Informazioni sul Test FolderPicker"
     IDS_DOCUMENTFOLDERS     "Cartelle Documenti"
@@ -369,7 +369,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "Risorse del Computer"
 }
 
     IDS_MYCOMPUTER          "Risorse del Computer"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "Cartelle di Sistema"
     IDS_LOCALHARDRIVES      "Dischi Rigidi Locali"
 {
     IDS_SYSTEMFOLDERS       "Cartelle di Sistema"
     IDS_LOCALHARDRIVES      "Dischi Rigidi Locali"
@@ -383,7 +383,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "Il file non esiste"
 }
 
     IDS_FILENOTEXISTING     "Il file non esiste"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "Su di un livello"
     IDS_NEWFOLDER        "Crea nuova directory"
 {
     IDS_UPFOLDER         "Su di un livello"
     IDS_NEWFOLDER        "Crea nuova directory"
@@ -392,7 +392,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "Vai al Desktop"
 }
 
     IDS_TODESKTOP        "Vai al Desktop"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Stampa"
 
 {
     PD32_PRINT_TITLE       "Stampa"
 
@@ -444,7 +444,7 @@ STRINGTABLE DISCARDABLE
     PD32_PRINTER_STATUS_POWER_SAVE        "Modalitè risparmio energetico; "
 }
 
     PD32_PRINTER_STATUS_POWER_SAVE        "Modalitè risparmio energetico; "
 }
 
-STRINGTABLE DISCARDABLE /* Font styles */
+STRINGTABLE /* Font styles */
 {
     IDS_FONT_REGULAR       "Regolare"
     IDS_FONT_BOLD          "Grassetto"
 {
     IDS_FONT_REGULAR       "Regolare"
     IDS_FONT_BOLD          "Grassetto"
@@ -452,7 +452,7 @@ STRINGTABLE DISCARDABLE /* Font styles */
     IDS_FONT_BOLD_ITALIC   "Grassetto Corsivo"
 }
 
     IDS_FONT_BOLD_ITALIC   "Grassetto Corsivo"
 }
 
-STRINGTABLE DISCARDABLE /* Color names */
+STRINGTABLE /* Color names */
 {
     IDS_COLOR_BLACK     "Nero"
     IDS_COLOR_MAROON    "Marrone rossiccio"
 {
     IDS_COLOR_BLACK     "Nero"
     IDS_COLOR_MAROON    "Marrone rossiccio"
@@ -472,7 +472,7 @@ STRINGTABLE DISCARDABLE /* Color names */
     IDS_COLOR_WHITE     "Bianco"
 }
 
     IDS_COLOR_WHITE     "Bianco"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
 IDS_FONT_SIZE   "Scegli la dimesione del carattere tra %d e %d punti."
 IDS_SAVE_BUTTON "Salva"
 {
 IDS_FONT_SIZE   "Scegli la dimesione del carattere tra %d e %d punti."
 IDS_SAVE_BUTTON "Salva"
index 6e16877..c4fc84f 100644 (file)
@@ -28,7 +28,7 @@
 
 LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
 
 
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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 "印刷"
 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
 }
 
     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 "印刷の設定"
 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
 
     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"
 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
 
   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"
 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
 }
 
     PUSHBUTTON         "ヘルプ(&H)",                 pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "&About FolderPicker Test"
     IDS_DOCUMENTFOLDERS     "ドキュメント フォルダ"
 {
     IDS_ABOUTBOX            "&About FolderPicker Test"
     IDS_DOCUMENTFOLDERS     "ドキュメント フォルダ"
@@ -367,7 +367,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "マイ コンピュータ"
 }
 
     IDS_MYCOMPUTER          "マイ コンピュータ"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "システム フォルダ"
     IDS_LOCALHARDRIVES      "ローカル ハード ドライブ"
 {
     IDS_SYSTEMFOLDERS       "システム フォルダ"
     IDS_LOCALHARDRIVES      "ローカル ハード ドライブ"
@@ -381,7 +381,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "ファイルが見つかりません"
 }
 
     IDS_FILENOTEXISTING     "ファイルが見つかりません"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "一つ上のフォルダへ"
     IDS_NEWFOLDER        "新しいフォルダの作成"
 {
     IDS_UPFOLDER         "一つ上のフォルダへ"
     IDS_NEWFOLDER        "新しいフォルダの作成"
@@ -390,7 +390,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "デスクトップを参照"
 }
 
     IDS_TODESKTOP        "デスクトップを参照"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "印刷"
 
 {
     PD32_PRINT_TITLE       "印刷"
 
@@ -448,7 +448,7 @@ STRINGTABLE DISCARDABLE
     PD32_PRINTER_STATUS_POWER_SAVE        "省電力モード -"
 }
 
     PD32_PRINTER_STATUS_POWER_SAVE        "省電力モード -"
 }
 
-STRINGTABLE DISCARDABLE /* Font styles */
+STRINGTABLE /* Font styles */
 {
     IDS_FONT_REGULAR       "標準"
     IDS_FONT_BOLD          "太字"
 {
     IDS_FONT_REGULAR       "標準"
     IDS_FONT_BOLD          "太字"
@@ -456,7 +456,7 @@ STRINGTABLE DISCARDABLE /* Font styles */
     IDS_FONT_BOLD_ITALIC   "太字 斜体"
 }
 
     IDS_FONT_BOLD_ITALIC   "太字 斜体"
 }
 
-STRINGTABLE DISCARDABLE /* Color names */
+STRINGTABLE /* Color names */
 {
     IDS_COLOR_BLACK     "黒"
     IDS_COLOR_MAROON    "茶色"
 {
     IDS_COLOR_BLACK     "黒"
     IDS_COLOR_MAROON    "茶色"
@@ -476,7 +476,7 @@ STRINGTABLE DISCARDABLE /* Color names */
     IDS_COLOR_WHITE     "白"
 }
 
     IDS_COLOR_WHITE     "白"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_FONT_SIZE   "フォントサイズを %d ポイントから %d ポイントの間で選択してください。"
     IDS_SAVE_BUTTON "保存(&S)"
 {
     IDS_FONT_SIZE   "フォントサイズを %d ポイントから %d ポイントの間で選択してください。"
     IDS_SAVE_BUTTON "保存(&S)"
index 1fc9798..ef19acb 100644 (file)
@@ -27,7 +27,7 @@
 
 LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
 
 
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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 "Àμâ"
 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
 }
 
     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 "ÇÁ¸°ÅÍ ¼³Á¤"
 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
 
     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"
 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
 
   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"
 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
 }
 
     PUSHBUTTON         "µµ¿ò¸»(&H)",            pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "Æú´õ-¼±Åñâ-Å×½ºÆ® Á¤º¸(&A)"
     IDS_DOCUMENTFOLDERS     "¹®¼­ Æú´õ"
 {
     IDS_ABOUTBOX            "Æú´õ-¼±Åñâ-Å×½ºÆ® Á¤º¸(&A)"
     IDS_DOCUMENTFOLDERS     "¹®¼­ Æú´õ"
@@ -366,7 +366,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "³» ÄÄÇ»ÅÍ"
 }
 
     IDS_MYCOMPUTER          "³» ÄÄÇ»ÅÍ"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "½Ã½ºÅÛ Æú´õ"
     IDS_LOCALHARDRIVES      "·ÎÄàÇϵ堵å¶óÀ̺ê"
 {
     IDS_SYSTEMFOLDERS       "½Ã½ºÅÛ Æú´õ"
     IDS_LOCALHARDRIVES      "·ÎÄàÇϵ堵å¶óÀ̺ê"
@@ -380,7 +380,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù"
 }
 
     IDS_FILENOTEXISTING     "ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "ÇÑ ´Ü°è À§·Î"
     IDS_NEWFOLDER        "»õ Æú´õ ¸¸µé±â"
 {
     IDS_UPFOLDER         "ÇÑ ´Ü°è À§·Î"
     IDS_NEWFOLDER        "»õ Æú´õ ¸¸µé±â"
@@ -389,7 +389,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "µ¥½ºÅ©Å¾ ¿­±â"
 }
 
     IDS_TODESKTOP        "µ¥½ºÅ©Å¾ ¿­±â"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Àμâ"
 
 {
     PD32_PRINT_TITLE       "Àμâ"
 
@@ -448,7 +448,7 @@ STRINGTABLE DISCARDABLE
     PD32_PRINTER_STATUS_POWER_SAVE        "Àü¿ø Àý¾à ¸ðµå; "
 }
 
     PD32_PRINTER_STATUS_POWER_SAVE        "Àü¿ø Àý¾à ¸ðµå; "
 }
 
-STRINGTABLE DISCARDABLE /* Font styles */
+STRINGTABLE /* Font styles */
 {
     IDS_FONT_REGULAR       "º¸Åë"
     IDS_FONT_BOLD          "±½°Ô"
 {
     IDS_FONT_REGULAR       "º¸Åë"
     IDS_FONT_BOLD          "±½°Ô"
@@ -456,7 +456,7 @@ STRINGTABLE DISCARDABLE /* Font styles */
     IDS_FONT_BOLD_ITALIC   "±½Àº ±â¿òÀÓ²Ã"
 }
 
     IDS_FONT_BOLD_ITALIC   "±½Àº ±â¿òÀÓ²Ã"
 }
 
-STRINGTABLE DISCARDABLE /* Color names */
+STRINGTABLE /* Color names */
 {
     IDS_COLOR_BLACK     "°ËÁ¤"
     IDS_COLOR_MAROON    "¹ã»ö"
 {
     IDS_COLOR_BLACK     "°ËÁ¤"
     IDS_COLOR_MAROON    "¹ã»ö"
@@ -476,7 +476,7 @@ STRINGTABLE DISCARDABLE /* Color names */
     IDS_COLOR_WHITE     "ÇϾç"
 }
 
     IDS_COLOR_WHITE     "ÇϾç"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_FONT_SIZE   "%d ¿Í %d Æ÷ÀÎÆ® »çÀÌ¿¡¼­ ±Û²Ã Å©±â ¼±ÅÃ."
     IDS_SAVE_BUTTON "ÀúÀå(&S)"
 {
     IDS_FONT_SIZE   "%d ¿Í %d Æ÷ÀÎÆ® »çÀÌ¿¡¼­ ±Û²Ã Å©±â ¼±ÅÃ."
     IDS_SAVE_BUTTON "ÀúÀå(&S)"
index c4bbf98..d580c80 100644 (file)
@@ -28,7 +28,7 @@
 
 LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL
 
 
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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
 }
 
     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"
 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
 
     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"
 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
 
   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"
 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
 }
 
     PUSHBUTTON         "&Žinynas",             pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "&Apie FolderPicker testą"
     IDS_DOCUMENTFOLDERS     "Dokumentų aplankai"
 {
     IDS_ABOUTBOX            "&Apie FolderPicker testą"
     IDS_DOCUMENTFOLDERS     "Dokumentų aplankai"
@@ -367,7 +367,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "Kompiuteris"
 }
 
     IDS_MYCOMPUTER          "Kompiuteris"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "Sistemos aplankai"
     IDS_LOCALHARDRIVES      "Vietiniai standieji diskai"
 {
     IDS_SYSTEMFOLDERS       "Sistemos aplankai"
     IDS_LOCALHARDRIVES      "Vietiniai standieji diskai"
@@ -381,7 +381,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "Failas neegzistuoja"
 }
 
     IDS_FILENOTEXISTING     "Failas neegzistuoja"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "Aukštyn vienu lygiu"
     IDS_NEWFOLDER        "Sukurti naują aplanką"
 {
     IDS_UPFOLDER         "Aukštyn vienu lygiu"
     IDS_NEWFOLDER        "Sukurti naują aplanką"
@@ -390,7 +390,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "Pereiti į darbalaukį"
 }
 
     IDS_TODESKTOP        "Pereiti į darbalaukį"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Spausdinti"
 
 {
     PD32_PRINT_TITLE       "Spausdinti"
 
@@ -447,7 +447,7 @@ Prašome įdiegti spausdintuvą ir pakartoti."
     PD32_PRINTER_STATUS_POWER_SAVE        "Energijos taupymo režimas; "
 }
 
     PD32_PRINTER_STATUS_POWER_SAVE        "Energijos taupymo režimas; "
 }
 
-STRINGTABLE DISCARDABLE /* Font styles */
+STRINGTABLE /* Font styles */
 {
     IDS_FONT_REGULAR       "Normalus"
     IDS_FONT_BOLD          "Pusjuodis"
 {
     IDS_FONT_REGULAR       "Normalus"
     IDS_FONT_BOLD          "Pusjuodis"
@@ -455,7 +455,7 @@ STRINGTABLE DISCARDABLE /* Font styles */
     IDS_FONT_BOLD_ITALIC   "Pusjuodis kursyvas"
 }
 
     IDS_FONT_BOLD_ITALIC   "Pusjuodis kursyvas"
 }
 
-STRINGTABLE DISCARDABLE /* Color names */
+STRINGTABLE /* Color names */
 {
     IDS_COLOR_BLACK     "Juoda"
     IDS_COLOR_MAROON    "Kaštoninė"
 {
     IDS_COLOR_BLACK     "Juoda"
     IDS_COLOR_MAROON    "Kaštoninė"
@@ -475,7 +475,7 @@ STRINGTABLE DISCARDABLE /* Color names */
     IDS_COLOR_WHITE     "Balta"
 }
 
     IDS_COLOR_WHITE     "Balta"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_FONT_SIZE   "Pasirinkite šrifto dydį tarp %d ir %d taškų."
     IDS_SAVE_BUTTON "&Išsaugoti"
 {
     IDS_FONT_SIZE   "Pasirinkite šrifto dydį tarp %d ir %d taškų."
     IDS_SAVE_BUTTON "&Išsaugoti"
index d17ca92..fe3b09d 100644 (file)
@@ -28,7 +28,7 @@ LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
 
 #pragma code_page(65001)
 
 
 #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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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
 }
 
  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"
 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
 }
 
     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"
 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
 }
 
     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"
 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
 
     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"
 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
 
 
 END
 
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "&Info over FolderPicker"
     IDS_DOCUMENTFOLDERS     "Documenten Mappen"
 {
     IDS_ABOUTBOX            "&Info over FolderPicker"
     IDS_DOCUMENTFOLDERS     "Documenten Mappen"
@@ -366,7 +366,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "Deze Computer"
 }
 
     IDS_MYCOMPUTER          "Deze Computer"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "Systeemmappen"
     IDS_LOCALHARDRIVES      "Lokale vaste schijven"
 {
     IDS_SYSTEMFOLDERS       "Systeemmappen"
     IDS_LOCALHARDRIVES      "Lokale vaste schijven"
@@ -380,7 +380,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "Kan het bestand niet vinden"
 }
 
     IDS_FILENOTEXISTING     "Kan het bestand niet vinden"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "Bovenliggende map"
     IDS_NEWFOLDER        "Nieuwe map aanmaken"
 {
     IDS_UPFOLDER         "Bovenliggende map"
     IDS_NEWFOLDER        "Nieuwe map aanmaken"
@@ -389,7 +389,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "Ga naar Bureaublad"
 }
 
     IDS_TODESKTOP        "Ga naar Bureaublad"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Afdrukken"
 
 {
     PD32_PRINT_TITLE       "Afdrukken"
 
@@ -451,7 +451,7 @@ wachtrij"
     PD32_PRINTER_STATUS_POWER_SAVE        "Power save modus; "
 }
 
     PD32_PRINTER_STATUS_POWER_SAVE        "Power save modus; "
 }
 
-STRINGTABLE DISCARDABLE /* Font styles */
+STRINGTABLE /* Font styles */
 {
     IDS_FONT_REGULAR       "Normaal"
     IDS_FONT_BOLD          "Vet"
 {
     IDS_FONT_REGULAR       "Normaal"
     IDS_FONT_BOLD          "Vet"
@@ -459,7 +459,7 @@ STRINGTABLE DISCARDABLE /* Font styles */
     IDS_FONT_BOLD_ITALIC   "Vet-Cursief"
 }
 
     IDS_FONT_BOLD_ITALIC   "Vet-Cursief"
 }
 
-STRINGTABLE DISCARDABLE /* Color names */
+STRINGTABLE /* Color names */
 {
    IDS_COLOR_BLACK      "Zwart"
    IDS_COLOR_MAROON     "Kastanjebruin"
 {
    IDS_COLOR_BLACK      "Zwart"
    IDS_COLOR_MAROON     "Kastanjebruin"
@@ -479,7 +479,7 @@ STRINGTABLE DISCARDABLE /* Color names */
    IDS_COLOR_WHITE      "Wit"
 }
 
    IDS_COLOR_WHITE      "Wit"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
    IDS_FONT_SIZE        "Selecteer een lettertype tussen %d en %d punten."
    IDS_SAVE_BUTTON      "&Opslaan"
 {
    IDS_FONT_SIZE        "Selecteer een lettertype tussen %d en %d punten."
    IDS_SAVE_BUTTON      "&Opslaan"
index 75e8f79..d18a2a7 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL
 
 
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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
 }
 
     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"
 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
 
     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"
 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
 
   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"
 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
 }
 
     PUSHBUTTON         "&Hjelp",                pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "Om k&atalogvelger-test"
     IDS_DOCUMENTFOLDERS     "Dokumentmapper"
 {
     IDS_ABOUTBOX            "Om k&atalogvelger-test"
     IDS_DOCUMENTFOLDERS     "Dokumentmapper"
@@ -364,7 +364,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "Min datamaskin"
 }
 
     IDS_MYCOMPUTER          "Min datamaskin"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "Systemkataloger"
     IDS_LOCALHARDRIVES      "Lokale harddisker"
 {
     IDS_SYSTEMFOLDERS       "Systemkataloger"
     IDS_LOCALHARDRIVES      "Lokale harddisker"
@@ -378,7 +378,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "Filen finnes ikke"
 }
 
     IDS_FILENOTEXISTING     "Filen finnes ikke"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "Opp ett nivå"
     IDS_NEWFOLDER        "Lag ny katalog"
 {
     IDS_UPFOLDER         "Opp ett nivå"
     IDS_NEWFOLDER        "Lag ny katalog"
@@ -387,7 +387,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "Bla til skrivebordet"
 }
 
     IDS_TODESKTOP        "Bla til skrivebordet"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Skriv ut"
 
 {
     PD32_PRINT_TITLE       "Skriv ut"
 
@@ -442,7 +442,7 @@ Oppgi en verdi mellom %d og %d."
     PD32_PRINTER_STATUS_POWER_SAVE        "Strømsparingsmodus; "
 }
 
     PD32_PRINTER_STATUS_POWER_SAVE        "Strømsparingsmodus; "
 }
 
-STRINGTABLE DISCARDABLE /* Font styles */
+STRINGTABLE /* Font styles */
 {
     IDS_FONT_REGULAR       "Normal"
     IDS_FONT_BOLD          "Fet"
 {
     IDS_FONT_REGULAR       "Normal"
     IDS_FONT_BOLD          "Fet"
@@ -450,7 +450,7 @@ STRINGTABLE DISCARDABLE /* Font styles */
     IDS_FONT_BOLD_ITALIC   "Fet kursiv"
 }
 
     IDS_FONT_BOLD_ITALIC   "Fet kursiv"
 }
 
-STRINGTABLE DISCARDABLE /* Color names */
+STRINGTABLE /* Color names */
 {
     IDS_COLOR_BLACK     "Svart"
     IDS_COLOR_MAROON    "Rødbrun"
 {
     IDS_COLOR_BLACK     "Svart"
     IDS_COLOR_MAROON    "Rødbrun"
@@ -470,7 +470,7 @@ STRINGTABLE DISCARDABLE /* Color names */
     IDS_COLOR_WHITE     "Hvit"
 }
 
     IDS_COLOR_WHITE     "Hvit"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_FONT_SIZE   "Velg en skriftstørrelse mellom %d og %d punkter."
     IDS_SAVE_BUTTON "&Lagre"
 {
     IDS_FONT_SIZE   "Velg en skriftstørrelse mellom %d og %d punkter."
     IDS_SAVE_BUTTON "&Lagre"
index 71c1afe..9682715 100644 (file)
@@ -27,7 +27,7 @@
 
 LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
 
 
 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"
 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"
 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"
 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"
 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"
 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"
 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\9f"
 FONT 8, "MS Shell Dlg"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Znajd\9f"
 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"
 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"
 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
 }
 
     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"
 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
 
     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"
 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
 
   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"
 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
 }
 
     PUSHBUTTON         "&Pomoc",                pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "&O FolderPicker Test"
     IDS_DOCUMENTFOLDERS     "Katalog Dokumentów"
 {
     IDS_ABOUTBOX            "&O FolderPicker Test"
     IDS_DOCUMENTFOLDERS     "Katalog Dokumentów"
@@ -366,7 +366,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "Mój komputer"
 }
 
     IDS_MYCOMPUTER          "Mój komputer"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "Katalogi systemowe"
     IDS_LOCALHARDRIVES      "Lokalne dyski twarde"
 {
     IDS_SYSTEMFOLDERS       "Katalogi systemowe"
     IDS_LOCALHARDRIVES      "Lokalne dyski twarde"
@@ -380,7 +380,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "Plik nie istnieje"
 }
 
     IDS_FILENOTEXISTING     "Plik nie istnieje"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "Poziom w górê"
     IDS_NEWFOLDER        "Utwórz nowy folder"
 {
     IDS_UPFOLDER         "Poziom w górê"
     IDS_NEWFOLDER        "Utwórz nowy folder"
@@ -389,7 +389,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "Przegl¹daj pulpit"
 }
 
     IDS_TODESKTOP        "Przegl¹daj pulpit"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Drukuj"
 
 {
     PD32_PRINT_TITLE       "Drukuj"
 
@@ -442,7 +442,7 @@ Po zainstalowaniu spr
     PD32_PRINTER_STATUS_POWER_SAVE        "Tryb oszczêdzania energii; "
 }
 
     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"
 {
     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"
 }
 
     IDS_OPEN_FILE   "Otwórz plik"
 }
 
-STRINGTABLE DISCARDABLE /* Font styles */
+STRINGTABLE /* Font styles */
 {
     IDS_FONT_REGULAR       "Regularny"
     IDS_FONT_BOLD          "Pogrubiony"
 {
     IDS_FONT_REGULAR       "Regularny"
     IDS_FONT_BOLD          "Pogrubiony"
@@ -460,7 +460,7 @@ STRINGTABLE DISCARDABLE /* Font styles */
     IDS_FONT_BOLD_ITALIC   "Pogrubiona kursywa"
 }
 
     IDS_FONT_BOLD_ITALIC   "Pogrubiona kursywa"
 }
 
-STRINGTABLE DISCARDABLE /* Color names */
+STRINGTABLE /* Color names */
 {
     IDS_COLOR_BLACK     "Czarny"
     IDS_COLOR_MAROON    "Kasztanowy"
 {
     IDS_COLOR_BLACK     "Czarny"
     IDS_COLOR_MAROON    "Kasztanowy"
index b061f61..b7a0d3b 100644 (file)
@@ -30,7 +30,7 @@
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
 
 
 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"
 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
 
 
 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"
 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
 
 
 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"
 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
 
 
 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"
 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
 
 
 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"
 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
  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
  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
 
 
 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"
 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
 
 
 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"
 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
 
 
 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"
 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
 
 
 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"
 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
 
 
 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"
 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
 
 
 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"
 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
 
 
 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"
 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"  */
 }
 
 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"
 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
  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
 }
 
 
  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
 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
  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", 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
 }
  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
 
 
 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"
 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
     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
     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           "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           "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
     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
     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
     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
 
     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"
 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
     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
     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           "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
     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
     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
     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
 }
 
 
     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"
 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      "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      "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
     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
 
     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"
 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
   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
   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
 
 
 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"
 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      "" , 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
 
     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
 
     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
 
     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
 
 
 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"
 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      "" , 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
 
     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
 
     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
 
     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
 
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX       "&Sobre FolderPicker Test"
     IDS_DOCUMENTFOLDERS        "Pastas de Documentos"
 {
     IDS_ABOUTBOX       "&Sobre FolderPicker Test"
     IDS_DOCUMENTFOLDERS        "Pastas de Documentos"
@@ -742,7 +632,7 @@ STRINGTABLE DISCARDABLE
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
 
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX       "&Acerca do Teste FolderPicker"
     IDS_DOCUMENTFOLDERS        "Pastas de Documentos"
 {
     IDS_ABOUTBOX       "&Acerca do Teste FolderPicker"
     IDS_DOCUMENTFOLDERS        "Pastas de Documentos"
@@ -757,7 +647,7 @@ STRINGTABLE DISCARDABLE
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
 
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS  "Pastas do Sistema"
     IDS_LOCALHARDRIVES "Discos Rígidos Locais"
 {
     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_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
 
 }
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS  "Pastas do Sistema"
     IDS_LOCALHARDRIVES "Discos Rígidos Locais"
 {
     IDS_SYSTEMFOLDERS  "Pastas do Sistema"
     IDS_LOCALHARDRIVES "Discos Rígidos Locais"
@@ -790,7 +680,7 @@ STRINGTABLE DISCARDABLE
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
 
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "Um Nível Acima"
     IDS_NEWFOLDER        "Criar Nova Pasta"
 {
     IDS_UPFOLDER         "Um Nível Acima"
     IDS_NEWFOLDER        "Criar Nova Pasta"
@@ -801,7 +691,7 @@ STRINGTABLE DISCARDABLE
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
 
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "Um Nível Acima"
     IDS_NEWFOLDER        "Criar Nova Pasta"
 {
     IDS_UPFOLDER         "Um Nível Acima"
     IDS_NEWFOLDER        "Criar Nova Pasta"
@@ -813,28 +703,28 @@ STRINGTABLE DISCARDABLE
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
 
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE                           "Imprimir"
 
     PD32_VALUE_UREADABLE                       "Entrada Ilegível"
 {
     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 \
     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_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_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"
 
     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_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; "
     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
 
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE                           "Imprimir"
 
     PD32_VALUE_UREADABLE                       "Entrada Ilegível"
 {
     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."
 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."
     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; "
 }
 
     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"
 {
     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"
 }
 
     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"
 {
     IDS_COLOR_BLACK     "Preto"
     IDS_COLOR_MAROON    "Castanho"
@@ -961,32 +851,10 @@ STRINGTABLE DISCARDABLE /* Nomes de cores */
     IDS_COLOR_WHITE     "Branco"
 }
 
     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
 
 
 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"
 {
     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
 
 
 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"
 {
     IDS_FONT_SIZE   "Seleccione o tamanho do tipo de letra entre %d e %d pontos."
     IDS_SAVE_BUTTON "&Gravar"
index 0c1b304..a5b9752 100644 (file)
@@ -28,7 +28,7 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
 
 #pragma code_page(65001)
 
 
 #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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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
 }
 
     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"
 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
 
     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"
 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
 
   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"
 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
 }
 
     PUSHBUTTON    "&Ajutor", pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "&Despre testul FolderPicker"
     IDS_DOCUMENTFOLDERS     "Dosarele de documente"
 {
     IDS_ABOUTBOX            "&Despre testul FolderPicker"
     IDS_DOCUMENTFOLDERS     "Dosarele de documente"
@@ -367,7 +367,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "Computerul meu"
 }
 
     IDS_MYCOMPUTER          "Computerul meu"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "Dosarele de sistem"
     IDS_LOCALHARDRIVES      "Discurile locale"
 {
     IDS_SYSTEMFOLDERS       "Dosarele de sistem"
     IDS_LOCALHARDRIVES      "Discurile locale"
@@ -381,7 +381,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "Fişierul nu există"
 }
 
     IDS_FILENOTEXISTING     "Fişierul nu există"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "Un nivel de dosare mai sus"
     IDS_NEWFOLDER        "Creează un dosar nou"
 {
     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"
 }
 
     IDS_TODESKTOP        "Navigează la birou"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE        "Tipărire"
 
 {
     PD32_PRINT_TITLE        "Tipărire"
 
@@ -442,7 +442,7 @@ STRINGTABLE DISCARDABLE
     PD32_PRINTER_STATUS_POWER_SAVE        "Economisire de energie; "
 }
 
     PD32_PRINTER_STATUS_POWER_SAVE        "Economisire de energie; "
 }
 
-STRINGTABLE DISCARDABLE /* Font styles */
+STRINGTABLE /* Font styles */
 {
     IDS_FONT_REGULAR       "Normal"
     IDS_FONT_BOLD          "Aldin"
 {
     IDS_FONT_REGULAR       "Normal"
     IDS_FONT_BOLD          "Aldin"
@@ -450,7 +450,7 @@ STRINGTABLE DISCARDABLE /* Font styles */
     IDS_FONT_BOLD_ITALIC   "Aldin cursiv"
 }
 
     IDS_FONT_BOLD_ITALIC   "Aldin cursiv"
 }
 
-STRINGTABLE DISCARDABLE /* Color names */
+STRINGTABLE /* Color names */
 {
     IDS_COLOR_BLACK     "Negru"
     IDS_COLOR_MAROON    "Maro"
 {
     IDS_COLOR_BLACK     "Negru"
     IDS_COLOR_MAROON    "Maro"
@@ -470,7 +470,7 @@ STRINGTABLE DISCARDABLE /* Color names */
     IDS_COLOR_WHITE     "Alb"
 }
 
     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ă"
 {
     IDS_FONT_SIZE   "Alegeți o mărime de font între %d și %d puncte."
     IDS_SAVE_BUTTON "&Salvează"
index 8ba3bdc..61a1ecf 100644 (file)
@@ -28,7 +28,7 @@
 
 LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
 
 
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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
 }
 
  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 "Печать"
 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
 }
 
     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 "Установки принтера"
 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
 
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Параметры страницы"
 FONT 8, "MS Shell Dlg"
@@ -331,7 +331,7 @@ BEGIN
 END
 
 
 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"
 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
 }
 
     PUSHBUTTON         "&Справка",               pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "&О тесте ВыборПапки"
     IDS_DOCUMENTFOLDERS     "Папки документов"
 {
     IDS_ABOUTBOX            "&О тесте ВыборПапки"
     IDS_DOCUMENTFOLDERS     "Папки документов"
@@ -367,7 +367,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "Мой компьютер"
 }
 
     IDS_MYCOMPUTER          "Мой компьютер"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "Системные папки"
     IDS_LOCALHARDRIVES      "Локальные жесткие диски"
 {
     IDS_SYSTEMFOLDERS       "Системные папки"
     IDS_LOCALHARDRIVES      "Локальные жесткие диски"
@@ -381,7 +381,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "Файл не существует"
 }
 
     IDS_FILENOTEXISTING     "Файл не существует"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "Вверх на один уровень"
     IDS_NEWFOLDER        "Создать новую папку"
 {
     IDS_UPFOLDER         "Вверх на один уровень"
     IDS_NEWFOLDER        "Создать новую папку"
@@ -390,7 +390,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "Переход на рабочий стол"
 }
 
     IDS_TODESKTOP        "Переход на рабочий стол"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Печать"
 
 {
     PD32_PRINT_TITLE       "Печать"
 
@@ -448,7 +448,7 @@ STRINGTABLE DISCARDABLE
     PD32_PRINTER_STATUS_POWER_SAVE        "Питание в безопасном режиме; "
 }
 
     PD32_PRINTER_STATUS_POWER_SAVE        "Питание в безопасном режиме; "
 }
 
-STRINGTABLE DISCARDABLE /* Font styles */
+STRINGTABLE /* Font styles */
 {
     IDS_FONT_REGULAR       "Нормальный"
     IDS_FONT_BOLD          "Жирный"
 {
     IDS_FONT_REGULAR       "Нормальный"
     IDS_FONT_BOLD          "Жирный"
@@ -456,7 +456,7 @@ STRINGTABLE DISCARDABLE /* Font styles */
     IDS_FONT_BOLD_ITALIC   "Жирный курсив"
 }
 
     IDS_FONT_BOLD_ITALIC   "Жирный курсив"
 }
 
-STRINGTABLE DISCARDABLE /* Color names */
+STRINGTABLE /* Color names */
 {
     IDS_COLOR_BLACK     "Чёрный"
     IDS_COLOR_MAROON    "Тёмно-бордовый"
 {
     IDS_COLOR_BLACK     "Чёрный"
     IDS_COLOR_MAROON    "Тёмно-бордовый"
@@ -476,7 +476,7 @@ STRINGTABLE DISCARDABLE /* Color names */
     IDS_COLOR_WHITE     "Белый"
 }
 
     IDS_COLOR_WHITE     "Белый"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_FONT_SIZE   "Выберите шрифт размером %d - %d пунктов."
     IDS_SAVE_BUTTON "&Сохранить"
 {
     IDS_FONT_SIZE   "Выберите шрифт размером %d - %d пунктов."
     IDS_SAVE_BUTTON "&Сохранить"
index e3d37e9..c98c669 100644 (file)
@@ -27,7 +27,7 @@
 
 LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT
 
 
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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
 }
 
     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"
 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
 
     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"
 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
 
   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"
 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
 }
 
     PUSHBUTTON         "&Pomoč",               pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "&O FolderPicker Test"
     IDS_DOCUMENTFOLDERS     "Mape z dokumenti"
 {
     IDS_ABOUTBOX            "&O FolderPicker Test"
     IDS_DOCUMENTFOLDERS     "Mape z dokumenti"
@@ -366,7 +366,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "Moj računalnik"
 }
 
     IDS_MYCOMPUTER          "Moj računalnik"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "Sistemske mape"
     IDS_LOCALHARDRIVES      "Lokalni trdi diski"
 {
     IDS_SYSTEMFOLDERS       "Sistemske mape"
     IDS_LOCALHARDRIVES      "Lokalni trdi diski"
@@ -380,7 +380,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "Datoteka ne obstaja"
 }
 
     IDS_FILENOTEXISTING     "Datoteka ne obstaja"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "V nadrejeno mapo"
     IDS_NEWFOLDER        "Ustvari novo mapo"
 {
     IDS_UPFOLDER         "V nadrejeno mapo"
     IDS_NEWFOLDER        "Ustvari novo mapo"
@@ -389,7 +389,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "Pogled namizja"
 }
 
     IDS_TODESKTOP        "Pogled namizja"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Tiskanje"
 
 {
     PD32_PRINT_TITLE       "Tiskanje"
 
@@ -447,7 +447,7 @@ poskusite znova."
     PD32_PRINTER_STATUS_POWER_SAVE        "V pripravljenosti; "
 }
 
     PD32_PRINTER_STATUS_POWER_SAVE        "V pripravljenosti; "
 }
 
-STRINGTABLE DISCARDABLE /* Font styles */
+STRINGTABLE /* Font styles */
 {
     IDS_FONT_REGULAR       "Navadno"
     IDS_FONT_BOLD          "Krepko"
 {
     IDS_FONT_REGULAR       "Navadno"
     IDS_FONT_BOLD          "Krepko"
@@ -455,7 +455,7 @@ STRINGTABLE DISCARDABLE /* Font styles */
     IDS_FONT_BOLD_ITALIC   "Krepko ležeče"
 }
 
     IDS_FONT_BOLD_ITALIC   "Krepko ležeče"
 }
 
-STRINGTABLE DISCARDABLE /* Color names */
+STRINGTABLE /* Color names */
 {
     IDS_COLOR_BLACK     "Črna"
     IDS_COLOR_MAROON    "Kostanjeva"
 {
     IDS_COLOR_BLACK     "Črna"
     IDS_COLOR_MAROON    "Kostanjeva"
@@ -475,7 +475,7 @@ STRINGTABLE DISCARDABLE /* Color names */
     IDS_COLOR_WHITE     "Bela"
 }
 
     IDS_COLOR_WHITE     "Bela"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_FONT_SIZE   "Izberite velikost pisave med %d in %d točk."
     IDS_SAVE_BUTTON "&Shrani"
 {
     IDS_FONT_SIZE   "Izberite velikost pisave med %d in %d točk."
     IDS_SAVE_BUTTON "&Shrani"
index 4a2ef27..6069bbc 100644 (file)
@@ -28,7 +28,7 @@ LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
 
 /* Slovak strings in CP1250 */
 
 
 /* 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\9d"
 FONT 8, "MS Shell Dlg"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Otvori\9d"
 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\9ei\9d ako..."
 FONT 8, "MS Shell Dlg"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Ulo\9ei\9d 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"
 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"
 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"
 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"
 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"
 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"
 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è"
 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
 }
 
     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"
 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 \9aí&rku",     rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12
 END
 
     CONTROL         "Na \9aí&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"
 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
 
   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\9d"
 FONT 8, "MS Shell Dlg"
 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN
 CAPTION "Otvori\9d"
 FONT 8, "MS Shell Dlg"
@@ -355,7 +355,7 @@ FONT 8, "MS Shell Dlg"
     PUSHBUTTON         "&Pomoc",                pshHelp,222,145,50,14
 }
 
     PUSHBUTTON         "&Pomoc",                pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "&O teste uchopovania adresárov"
     IDS_DOCUMENTFOLDERS     "Adresár dokumentov"
 {
     IDS_ABOUTBOX            "&O teste uchopovania adresárov"
     IDS_DOCUMENTFOLDERS     "Adresár dokumentov"
@@ -367,7 +367,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "Tento poèítaè"
 }
 
     IDS_MYCOMPUTER          "Tento poèítaè"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "Systémové adresáre"
     IDS_LOCALHARDRIVES      "Lokálne pevné disky"
 {
     IDS_SYSTEMFOLDERS       "Systémové adresáre"
     IDS_LOCALHARDRIVES      "Lokálne pevné disky"
@@ -381,7 +381,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "Súbor neexistuje"
 }
 
     IDS_FILENOTEXISTING     "Súbor neexistuje"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "O úroveò vy\9a\9aie"
     IDS_NEWFOLDER        "Vytvori\9d nový adresár"
 {
     IDS_UPFOLDER         "O úroveò vy\9a\9aie"
     IDS_NEWFOLDER        "Vytvori\9d nový adresár"
@@ -390,7 +390,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "Listova\9d pracovnú plochu"
 }
 
     IDS_TODESKTOP        "Listova\9d pracovnú plochu"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Tlaè"
 
 {
     PD32_PRINT_TITLE       "Tlaè"
 
@@ -449,7 +449,7 @@ Please install one and retry."
     PD32_PRINTER_STATUS_POWER_SAVE        "Úsporný re\9eim; "
 }
 
     PD32_PRINTER_STATUS_POWER_SAVE        "Úsporný re\9eim; "
 }
 
-STRINGTABLE DISCARDABLE /* Font styles */
+STRINGTABLE /* Font styles */
 {
     IDS_FONT_REGULAR       "Regular"
     IDS_FONT_BOLD          "Tuèné"
 {
     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"
 }
 
     IDS_FONT_BOLD_ITALIC   "Tuèné kurzíva"
 }
 
-STRINGTABLE DISCARDABLE /* Color names */
+STRINGTABLE /* Color names */
 {
     IDS_COLOR_BLACK     "Èierna"
     IDS_COLOR_MAROON    "Maroon"
 {
     IDS_COLOR_BLACK     "Èierna"
     IDS_COLOR_MAROON    "Maroon"
@@ -477,7 +477,7 @@ STRINGTABLE DISCARDABLE /* Color names */
     IDS_COLOR_WHITE     "Biela"
 }
 
     IDS_COLOR_WHITE     "Biela"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_FONT_SIZE   "Select a font size between %d and %d points."
     IDS_SAVE_BUTTON "&Save"
 {
     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 (file)
index 0000000..9ee0a39
--- /dev/null
@@ -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"
+}
index 21d2ac2..9c5b6b3 100644 (file)
@@ -26,7 +26,7 @@
 
 LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
 
 
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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
 }
 
  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"
 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"
 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
 
  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"
 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
 
   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"
 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
 }
 
  PUSHBUTTON          "&Hjälp",                 pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
  IDS_ABOUTBOX            "&Om FolderPicker-test"
  IDS_DOCUMENTFOLDERS     "Dokumentmappar"
 {
  IDS_ABOUTBOX            "&Om FolderPicker-test"
  IDS_DOCUMENTFOLDERS     "Dokumentmappar"
@@ -358,7 +358,7 @@ STRINGTABLE DISCARDABLE
  IDS_MYCOMPUTER          "Den här datorn"
 }
 
  IDS_MYCOMPUTER          "Den här datorn"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
  IDS_SYSTEMFOLDERS       "Systemmappar"
  IDS_LOCALHARDRIVES      "Lokala hårddiskar"
 {
  IDS_SYSTEMFOLDERS       "Systemmappar"
  IDS_LOCALHARDRIVES      "Lokala hårddiskar"
@@ -372,7 +372,7 @@ STRINGTABLE DISCARDABLE
  IDS_FILENOTEXISTING     "Filen finns inte"
 }
 
  IDS_FILENOTEXISTING     "Filen finns inte"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
  IDS_UPFOLDER         "Upp en nivå"
  IDS_NEWFOLDER        "Skapa ny mapp"
 {
  IDS_UPFOLDER         "Upp en nivå"
  IDS_NEWFOLDER        "Skapa ny mapp"
@@ -381,7 +381,7 @@ STRINGTABLE DISCARDABLE
  IDS_TODESKTOP        "Visa Skrivbordet"
 }
 
  IDS_TODESKTOP        "Visa Skrivbordet"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
  PD32_PRINT_TITLE       "Skriv ut"
 
 {
  PD32_PRINT_TITLE       "Skriv ut"
 
@@ -437,7 +437,7 @@ Installera en skrivare och f
  PD32_PRINTER_STATUS_POWER_SAVE        "Felsäkert läge; "
 }
 
  PD32_PRINTER_STATUS_POWER_SAVE        "Felsäkert läge; "
 }
 
-STRINGTABLE DISCARDABLE /* Font styles */
+STRINGTABLE /* Font styles */
 {
     IDS_FONT_REGULAR       "Standard"
     IDS_FONT_BOLD          "Fet"
 {
     IDS_FONT_REGULAR       "Standard"
     IDS_FONT_BOLD          "Fet"
@@ -445,7 +445,7 @@ STRINGTABLE DISCARDABLE /* Font styles */
     IDS_FONT_BOLD_ITALIC   "Fet kursiv"
 }
 
     IDS_FONT_BOLD_ITALIC   "Fet kursiv"
 }
 
-STRINGTABLE DISCARDABLE /* Color names */
+STRINGTABLE /* Color names */
 {
     IDS_COLOR_BLACK     "Svart"
     IDS_COLOR_MAROON    "Rödbrun"
 {
     IDS_COLOR_BLACK     "Svart"
     IDS_COLOR_MAROON    "Rödbrun"
@@ -465,7 +465,7 @@ STRINGTABLE DISCARDABLE /* Color names */
     IDS_COLOR_WHITE     "Vit"
 }
 
     IDS_COLOR_WHITE     "Vit"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_FONT_SIZE   "Välj en teckenstorlek mellan %d och %d punkter."
     IDS_SAVE_BUTTON "&Spara"
 {
     IDS_FONT_SIZE   "Välj en teckenstorlek mellan %d och %d punkter."
     IDS_SAVE_BUTTON "&Spara"
index 34ef520..90297a0 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_THAI, SUBLANG_DEFAULT
 
 
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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 "¾ÔÁ¾ì"
 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
 }
 
     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 "»ÃѺáµè§à¤Ã×èͧ¾ÔÁ¾ì"
 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
 
     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"
 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
 
   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"
 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
 }
 
     PUSHBUTTON         "ªèÇÂàËÅÕÍ",             pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "à¡ÕèÂǡѺ FolderPicker Test"
     IDS_DOCUMENTFOLDERS     "Document Folders"
 {
     IDS_ABOUTBOX            "à¡ÕèÂǡѺ FolderPicker Test"
     IDS_DOCUMENTFOLDERS     "Document Folders"
@@ -364,7 +364,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "à¤Ã×èͧÊèǹµÑÇ"
 }
 
     IDS_MYCOMPUTER          "à¤Ã×èͧÊèǹµÑÇ"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "System Folders"
     IDS_LOCALHARDRIVES      "ÎÒÃì´´ÔÊ¡ìà¤Ã×èͧÊèǹµÑÇ"
 {
     IDS_SYSTEMFOLDERS       "System Folders"
     IDS_LOCALHARDRIVES      "ÎÒÃì´´ÔÊ¡ìà¤Ã×èͧÊèǹµÑÇ"
@@ -378,7 +378,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "äÁ辺á¿éÁ"
 }
 
     IDS_FILENOTEXISTING     "äÁ辺á¿éÁ"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "¢Öé¹Ë¹Öè§ÃдѺ"
     IDS_NEWFOLDER        "ÊÃéÒ§ä´àá·ÍÃÕãËÁè"
 {
     IDS_UPFOLDER         "¢Öé¹Ë¹Öè§ÃдѺ"
     IDS_NEWFOLDER        "ÊÃéÒ§ä´àá·ÍÃÕãËÁè"
@@ -387,7 +387,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "¤é¹ËÒÃÒ¡Òþ×é¹·Õè·Ó§Ò¹"
 }
 
     IDS_TODESKTOP        "¤é¹ËÒÃÒ¡Òþ×é¹·Õè·Ó§Ò¹"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "¾ÔÁ¾ì"
 
 {
     PD32_PRINT_TITLE       "¾ÔÁ¾ì"
 
@@ -443,7 +443,7 @@ Please install one and retry."
     PD32_PRINTER_STATUS_POWER_SAVE        "ãªéä¿é¹éÍÂ; "
 }
 
     PD32_PRINTER_STATUS_POWER_SAVE        "ãªéä¿é¹éÍÂ; "
 }
 
-STRINGTABLE DISCARDABLE /* Color names */
+STRINGTABLE /* Color names */
 {
     IDS_COLOR_BLACK     "ÊÕ´íÒ"
     IDS_COLOR_MAROON    "ÊÕàÅ×´ËÁÙ"
 {
     IDS_COLOR_BLACK     "ÊÕ´íÒ"
     IDS_COLOR_MAROON    "ÊÕàÅ×´ËÁÙ"
index 52e71ba..049f51e 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
 
 
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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
 }
 
     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ý"
 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
 
     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"
 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
 
   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"
 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
 }
 
     PUSHBUTTON         "&Yardým",               pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "&Dizin Seçme Denemesi Hakkýnda"
     IDS_DOCUMENTFOLDERS     "Belge Dizinleri"
 {
     IDS_ABOUTBOX            "&Dizin Seçme Denemesi Hakkýnda"
     IDS_DOCUMENTFOLDERS     "Belge Dizinleri"
@@ -365,7 +365,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "Bilgisayarým"
 }
 
     IDS_MYCOMPUTER          "Bilgisayarým"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "Sistem Dizinleri"
     IDS_LOCALHARDRIVES      "Yerel Diskler"
 {
     IDS_SYSTEMFOLDERS       "Sistem Dizinleri"
     IDS_LOCALHARDRIVES      "Yerel Diskler"
@@ -379,7 +379,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "Dosya mevcut deðil"
 }
 
     IDS_FILENOTEXISTING     "Dosya mevcut deðil"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "Bir Düzey Yukarý"
     IDS_NEWFOLDER        "Yeni Dizin Oluþtur"
 {
     IDS_UPFOLDER         "Bir Düzey Yukarý"
     IDS_NEWFOLDER        "Yeni Dizin Oluþtur"
@@ -388,7 +388,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "Masaüstüne Git"
 }
 
     IDS_TODESKTOP        "Masaüstüne Git"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Yazdýr"
 
 {
     PD32_PRINT_TITLE       "Yazdýr"
 
@@ -445,7 +445,7 @@ L
     PD32_PRINTER_STATUS_POWER_SAVE        "Güç koruma modu; "
 }
 
     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ý"
 {
     IDS_COLOR_BLACK     "Siyah"
     IDS_COLOR_MAROON    "Koyu Kýrmýzý"
@@ -465,7 +465,7 @@ STRINGTABLE DISCARDABLE /* Color names */
     IDS_COLOR_WHITE     "Beyaz"
 }
 
     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"
 {
     IDS_FONT_SIZE   "%d ile %d arasýnda bir yazý tipi boyutu seçin."
     IDS_SAVE_BUTTON "&Kaydet"
index 14a8f1d..a4b4ff5 100644 (file)
@@ -27,7 +27,7 @@
 
 LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
 
 
 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"
 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"
 {
 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
  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"
 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"
 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"
 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"
 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"
 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"
 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
 }
 
  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 "Äðóê"
 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
 }
 
     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 "Óñòàíîâêè ïðèíòåðà"
 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
 
     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"
 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
   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
   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
 
   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"
 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
 }
 
     PUSHBUTTON         "&Äîâ³äêà",              pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "&Ïðî òåñò Âèá³ðÒåêè"
     IDS_DOCUMENTFOLDERS     "Òåêè äîêóìåíò³â"
 {
     IDS_ABOUTBOX            "&Ïðî òåñò Âèá³ðÒåêè"
     IDS_DOCUMENTFOLDERS     "Òåêè äîêóìåíò³â"
@@ -365,7 +365,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "̳é êîìï'þòåð"
 }
 
     IDS_MYCOMPUTER          "̳é êîìï'þòåð"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "Ñèñòåìí³ òåêè"
     IDS_LOCALHARDRIVES      "Ëîêàëüí³ æîðñòê³ äèñêè"
 {
     IDS_SYSTEMFOLDERS       "Ñèñòåìí³ òåêè"
     IDS_LOCALHARDRIVES      "Ëîêàëüí³ æîðñòê³ äèñêè"
@@ -379,7 +379,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "Ôàéë íå ³ñíóº"
 }
 
     IDS_FILENOTEXISTING     "Ôàéë íå ³ñíóº"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "Âãîðó íà îäèí ð³âåíü"
     IDS_NEWFOLDER        "Ñòâîðèòè íîâó òåêó"
 {
     IDS_UPFOLDER         "Âãîðó íà îäèí ð³âåíü"
     IDS_NEWFOLDER        "Ñòâîðèòè íîâó òåêó"
@@ -388,7 +388,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "Ïåðåõ³ä íà ñò³ëüíèöþ"
 }
 
     IDS_TODESKTOP        "Ïåðåõ³ä íà ñò³ëüíèöþ"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "Äðóê"
 
 {
     PD32_PRINT_TITLE       "Äðóê"
 
@@ -446,7 +446,7 @@ STRINGTABLE DISCARDABLE
     PD32_PRINTER_STATUS_POWER_SAVE        "Æèâëåííÿ â áåçïå÷íîìó ðåæèì³; "
 }
 
     PD32_PRINTER_STATUS_POWER_SAVE        "Æèâëåííÿ â áåçïå÷íîìó ðåæèì³; "
 }
 
-STRINGTABLE DISCARDABLE /* Font styles */
+STRINGTABLE /* Font styles */
 {
     IDS_FONT_REGULAR       "Íîðìàëüíèé"
     IDS_FONT_BOLD          "Æèðíèé"
 {
     IDS_FONT_REGULAR       "Íîðìàëüíèé"
     IDS_FONT_BOLD          "Æèðíèé"
@@ -454,13 +454,13 @@ STRINGTABLE DISCARDABLE /* Font styles */
     IDS_FONT_BOLD_ITALIC   "Æèðíèé êóðñèâ"
 }
 
     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_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      "ѳðèé"
     IDS_COLOR_PURPLE    "Ïóðïóðîâèé"
     IDS_COLOR_TEAL      "Ñèíüî-çåëåíèé"
     IDS_COLOR_GRAY      "ѳðèé"
@@ -474,7 +474,7 @@ STRINGTABLE DISCARDABLE /* Color names */
     IDS_COLOR_WHITE     "Á³ëèé"
 }
 
     IDS_COLOR_WHITE     "Á³ëèé"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_FONT_SIZE   "Áèáåð³òü øðèôò ðîçì³ðîì %d - %d ïóíêò³â."
     IDS_SAVE_BUTTON "&Çáåðåãòè"
 {
     IDS_FONT_SIZE   "Áèáåð³òü øðèôò ðîçì³ðîì %d - %d ïóíêò³â."
     IDS_SAVE_BUTTON "&Çáåðåãòè"
index fee8bda..a9c096b 100644 (file)
@@ -4,6 +4,7 @@
  * Copyright 2000 Aric Stewart
  * Copyright 2002 Tisheng Chen
  * Copyright 2008 Hongbo Ni <hongbo.at.njstar.com>
  * Copyright 2000 Aric Stewart
  * Copyright 2002 Tisheng Chen
  * Copyright 2008 Hongbo Ni <hongbo.at.njstar.com>
+ * Copyright 2010 Cheer Xiao <xiaqqaix.at.gmail.com>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  *
  * 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.
 
 /*
  * WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
+ * 不要修改标准对话框的大小。
  */
 
 /* Chinese text is encoded in UTF-8 */
  */
 
 /* Chinese text is encoded in UTF-8 */
@@ -32,7 +34,7 @@
 
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
 
 
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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"
 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 "打印"
 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
 }
 
     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 "打印设置"
 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
 
     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"
 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
 
   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"
 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
 }
 
     PUSHBUTTON         "帮助(&H)",            pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "关于文件夹选择器(&A)"
     IDS_DOCUMENTFOLDERS     "文档目录"
 {
     IDS_ABOUTBOX            "关于文件夹选择器(&A)"
     IDS_DOCUMENTFOLDERS     "文档目录"
@@ -371,7 +373,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "我的电脑"
 }
 
     IDS_MYCOMPUTER          "我的电脑"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "系统文件夹"
     IDS_LOCALHARDRIVES      "本地硬盘驱动器"
 {
     IDS_SYSTEMFOLDERS       "系统文件夹"
     IDS_LOCALHARDRIVES      "本地硬盘驱动器"
@@ -385,7 +387,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "文件不存在"
 }
 
     IDS_FILENOTEXISTING     "文件不存在"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "向上移一层"
     IDS_NEWFOLDER        "新建文件夹"
 {
     IDS_UPFOLDER         "向上移一层"
     IDS_NEWFOLDER        "新建文件夹"
@@ -394,7 +396,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "查看桌面"
 }
 
     IDS_TODESKTOP        "查看桌面"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "打印"
 
 {
     PD32_PRINT_TITLE       "打印"
 
@@ -449,10 +451,47 @@ STRINGTABLE DISCARDABLE
     PD32_PRINTER_STATUS_POWER_SAVE        "省电状态; "
 }
 
     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
 
 
 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"
 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"
 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
 }
 
  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"
 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"
 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"
 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"
 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
 }
 
  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"
 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
 }
 
     PUSHBUTTON         "求助(&H)",            pshHelp,222,145,50,14
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ABOUTBOX            "关于資料夹选择器(&A)"
     IDS_DOCUMENTFOLDERS     "資料夾"
 {
     IDS_ABOUTBOX            "关于資料夹选择器(&A)"
     IDS_DOCUMENTFOLDERS     "資料夾"
@@ -635,7 +674,7 @@ STRINGTABLE DISCARDABLE
     IDS_MYCOMPUTER          "我的電腦"
 }
 
     IDS_MYCOMPUTER          "我的電腦"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_SYSTEMFOLDERS       "系統資料夾"
     IDS_LOCALHARDRIVES      "本地硬盤驅動器"
 {
     IDS_SYSTEMFOLDERS       "系統資料夾"
     IDS_LOCALHARDRIVES      "本地硬盤驅動器"
@@ -649,7 +688,7 @@ STRINGTABLE DISCARDABLE
     IDS_FILENOTEXISTING     "檔案不存在"
 }
 
     IDS_FILENOTEXISTING     "檔案不存在"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_UPFOLDER         "向上一層"
     IDS_NEWFOLDER        "建立新資料夾"
 {
     IDS_UPFOLDER         "向上一層"
     IDS_NEWFOLDER        "建立新資料夾"
@@ -658,7 +697,7 @@ STRINGTABLE DISCARDABLE
     IDS_TODESKTOP        "顯示桌面"
 }
 
     IDS_TODESKTOP        "顯示桌面"
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     PD32_PRINT_TITLE       "列印"
 
 {
     PD32_PRINT_TITLE       "列印"
 
index 24139d2..a002ef6 100644 (file)
@@ -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.
  */
  * 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. \
 {
     IDS_FAKEDOCTEXT
         "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. \
@@ -60,7 +60,7 @@ STRINGTABLE DISCARDABLE
 
 
 /* @makedep: pd32_collate.ico */
 
 
 /* @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
 
 /* @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 */
 NETWORK ICON network.ico
 
 /* @makedep: fontpics.bmp */
-38 BITMAP DISCARDABLE LOADONCALL fontpics.bmp
+38 BITMAP fontpics.bmp
index f6c780e..e3a2c1a 100644 (file)
@@ -304,7 +304,7 @@ static BOOL COMDLG32_FR_CheckPartial(
 ) {
        if(!pfr)
         {
 ) {
        if(!pfr)
         {
-               COMDLG32_SetCommDlgExtendedError(CDERR_GENERALCODES);
+               COMDLG32_SetCommDlgExtendedError(CDERR_INITIALIZATION);
                 return FALSE;
        }
 
                 return FALSE;
        }
 
@@ -321,7 +321,7 @@ static BOOL COMDLG32_FR_CheckPartial(
         }
 
        if((pfr->wFindWhatLen < 1 || !pfr->lpstrFindWhat)
         }
 
        if((pfr->wFindWhatLen < 1 || !pfr->lpstrFindWhat)
-        ||(Replace && (pfr->wReplaceWithLen < 1 || !pfr->lpstrReplaceWith)))
+        ||(Replace && !pfr->lpstrReplaceWith))
         {
                COMDLG32_SetCommDlgExtendedError(FRERR_BUFFERLENGTHZERO);
                 return FALSE;
         {
                COMDLG32_SetCommDlgExtendedError(FRERR_BUFFERLENGTHZERO);
                 return FALSE;
@@ -344,18 +344,12 @@ static BOOL COMDLG32_FR_CheckPartial(
                 return FALSE;
         }
 
                 return FALSE;
         }
 
-        if((pfr->Flags & (FR_ENABLETEMPLATE | FR_ENABLETEMPLATEHANDLE)) && !pfr->hInstance)
+        if((pfr->Flags & FR_ENABLETEMPLATEHANDLE) && !pfr->hInstance)
         {
                COMDLG32_SetCommDlgExtendedError(CDERR_NOHINSTANCE);
                 return FALSE;
         }
 
         {
                COMDLG32_SetCommDlgExtendedError(CDERR_NOHINSTANCE);
                 return FALSE;
         }
 
-        if((pfr->Flags & FR_ENABLETEMPLATE) && !pfr->lpTemplateName)
-        {
-               COMDLG32_SetCommDlgExtendedError(CDERR_NOTEMPLATE);
-                return FALSE;
-        }
-
        return TRUE;
 }
 
        return TRUE;
 }
 
@@ -536,7 +530,7 @@ HWND WINAPI ReplaceTextW(
 
         TRACE("LPFINDREPLACE=%p\n", pfr);
 
 
         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,
                return 0;
 
         len1 = WideCharToMultiByte( CP_ACP, 0, pfr->lpstrFindWhat, pfr->wFindWhatLen,
index ad580d5..6d3ee73 100644 (file)
@@ -903,7 +903,6 @@ static LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam, LPCHOOSEFO
     int i;
     long l;
     HDC hdc;
     int i;
     long l;
     HDC hdc;
-    LPLOGFONTW lpxx=lpcf->lpLogFont;
 
     if (!lpcf) return FALSE;
 
 
     if (!lpcf) return FALSE;
 
@@ -965,6 +964,7 @@ static LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam, LPCHOOSEFO
         {
             WCHAR str[256];
             WINDOWINFO wininfo;
         {
             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);
 
             TRACE("WM_COMMAND/cmb2,3 =%08lX\n", lParam);
             i=SendDlgItemMessageW(hDlg,cmb1,CB_GETCURSEL,0,0);
index cccfc1c..55756e7 100644 (file)
Binary files a/reactos/dll/win32/comdlg32/pd32_collate.ico and b/reactos/dll/win32/comdlg32/pd32_collate.ico differ
index f06cfa5..1a31e6a 100644 (file)
Binary files a/reactos/dll/win32/comdlg32/pd32_landscape.ico and b/reactos/dll/win32/comdlg32/pd32_landscape.ico differ
index bf84a23..b71013a 100644 (file)
Binary files a/reactos/dll/win32/comdlg32/pd32_nocollate.ico and b/reactos/dll/win32/comdlg32/pd32_nocollate.ico differ
index 4001f9c..432f738 100644 (file)
Binary files a/reactos/dll/win32/comdlg32/pd32_portrait.ico and b/reactos/dll/win32/comdlg32/pd32_portrait.ico differ
index 02d3d5f..0389e7d 100644 (file)
@@ -70,4 +70,5 @@
 #include "cdlg_Ro.rc"
 #include "cdlg_Ru.rc"
 #include "cdlg_Si.rc"
 #include "cdlg_Ro.rc"
 #include "cdlg_Ru.rc"
 #include "cdlg_Si.rc"
+#include "cdlg_Sr.rc"
 #include "cdlg_Zh.rc"
 #include "cdlg_Zh.rc"
index 7c613d0..ea41e0c 100644 (file)
@@ -23,7 +23,7 @@
 @ stub DwmAttachMilContent
 @ stub DwmDefWindowProc
 @ stub DwmDetachMilContent
 @ stub DwmAttachMilContent
 @ stub DwmDefWindowProc
 @ stub DwmDetachMilContent
-@ stub DwmEnableBlurBehindWindow
+@ stdcall DwmEnableBlurBehindWindow(ptr ptr)
 @ stdcall DwmEnableMMCSS(long)
 @ stdcall DwmExtendFrameIntoClientArea(long ptr)
 @ stdcall DwmFlush()
 @ stdcall DwmEnableMMCSS(long)
 @ stdcall DwmExtendFrameIntoClientArea(long ptr)
 @ stdcall DwmFlush()
index ee86691..fcc52c3 100644 (file)
@@ -166,3 +166,13 @@ HRESULT WINAPI DwmGetGraphicsStreamTransformHint(UINT uIndex, MilMatrix3x2D *pTr
 
     return E_NOTIMPL;
 }
 
     return E_NOTIMPL;
 }
+
+/**********************************************************************
+ *           DwmEnableBlurBehindWindow         (DWMAPI.@)
+ */
+HRESULT WINAPI DwmEnableBlurBehindWindow(HWND hWnd, const DWM_BLURBEHIND *pBlurBuf)
+{
+    FIXME("%p %p\n", hWnd, pBlurBuf);
+
+    return E_NOTIMPL;
+}
index f35de7f..7334e5d 100644 (file)
@@ -91,15 +91,32 @@ static BOOL create_full_path(LPCWSTR path)
     return ret;
 }
 
     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);
 
     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;
 }
 
     return TRUE;
 }
 
@@ -291,7 +308,7 @@ static HRESULT WINAPI IAssemblyCacheImpl_InstallAssembly(IAssemblyCache *iface,
     if (FAILED(hr))
         goto done;
 
     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);
 
 
     sprintfW(path, format, asmdir, name, version, token);
 
index 3c014ea..bcf49a7 100644 (file)
@@ -43,6 +43,7 @@ typedef struct {
     LPWSTR displayname;
     LPWSTR name;
     LPWSTR culture;
     LPWSTR displayname;
     LPWSTR name;
     LPWSTR culture;
+    LPWSTR procarch;
 
     WORD version[4];
     DWORD versize;
 
     WORD version[4];
     DWORD versize;
@@ -53,6 +54,16 @@ typedef struct {
     LONG ref;
 } IAssemblyNameImpl;
 
     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)
 {
 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;
                                                        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);
 
 
     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;
 
         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;
 }
 
     return S_OK;
 }
 
@@ -347,8 +462,6 @@ static HRESULT parse_culture(IAssemblyNameImpl *name, LPWSTR culture)
     return S_OK;
 }
 
     return S_OK;
 }
 
-#define CHARS_PER_PUBKEY 16
-
 static BOOL is_hex(WCHAR c)
 {
     return ((c >= 'a' && c <= 'f') ||
 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;
 
     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;
 
     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);
             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;
 
         if (FAILED(hr))
             goto done;
index bc187ac..328b279 100644 (file)
@@ -811,6 +811,20 @@ HRESULT assembly_get_version(ASSEMBLY *assembly, LPWSTR *version)
     return S_OK;
 }
 
     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);
 static BYTE *assembly_get_blob(ASSEMBLY *assembly, WORD index, ULONG *size)
 {
     return GetData(&assembly->blobs[index], size);
index 0850e55..f95cee9 100644 (file)
@@ -8,6 +8,7 @@
        <library>shlwapi</library>
        <library>advapi32</library>
        <library>dbghelp</library>
        <library>shlwapi</library>
        <library>advapi32</library>
        <library>dbghelp</library>
+       <library>user32</library>
        <file>asmcache.c</file>
        <file>asmenum.c</file>
        <file>asmname.c</file>
        <file>asmcache.c</file>
        <file>asmenum.c</file>
        <file>asmname.c</file>
index 4b9bd57..6f4b28d 100644 (file)
@@ -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);
 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)
 HRESULT assembly_get_pubkey_token(ASSEMBLY *assembly, LPWSTR *token);
 
 static inline LPWSTR strdupW(LPCWSTR src)
index 9dad679..b46bdc5 100644 (file)
@@ -606,6 +606,7 @@ GpStatus WINGDIPAPI GdipCreatePathGradient(GDIPCONST GpPointF* points,
         GdipFree((*grad)->blendfac);
         GdipFree((*grad)->blendpos);
         GdipFree(*grad);
         GdipFree((*grad)->blendfac);
         GdipFree((*grad)->blendpos);
         GdipFree(*grad);
+        *grad = NULL;
         return OutOfMemory;
     }
     (*grad)->blendfac[0] = 1.0;
         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);
         GdipFree((*grad)->blendfac);
         GdipFree((*grad)->blendpos);
         GdipFree(*grad);
+        *grad = NULL;
         return OutOfMemory;
     }
     (*grad)->blendfac[0] = 1.0;
         return OutOfMemory;
     }
     (*grad)->blendfac[0] = 1.0;
index f198863..2670e81 100644 (file)
@@ -963,18 +963,33 @@ GpStatus WINGDIPAPI GdipGetFontCollectionFamilyList(
         GpFontFamily* gpfamilies[], INT* numFound)
 {
     INT i;
         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;
 
 
     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; i<numToFree; i++)
+        {
+            GdipDeleteFontFamily(gpfamilies[i]);
+            gpfamilies[i] = NULL;
+        }
+    }
+
+    return stat;
 }
 
 void free_installed_fonts(void)
 }
 
 void free_installed_fonts(void)
index 5fed017..2d512ab 100644 (file)
@@ -4731,6 +4731,13 @@ GpStatus WINGDIPAPI GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UINT16
     return NotImplemented;
 }
 
     return NotImplemented;
 }
 
+GpStatus WINGDIPAPI GdipRecordMetafile(HDC hdc, EmfType type, GDIPCONST GpRectF *frameRect,
+                                       MetafileFrameUnit frameUnit, GDIPCONST WCHAR *desc, GpMetafile **metafile)
+{
+    FIXME("(%p %d %p %d %p %p): stub\n", hdc, type, frameRect, frameUnit, desc, metafile);
+    return NotImplemented;
+}
+
 /*****************************************************************************
  * GdipRecordMetafileI [GDIPLUS.@]
  */
 /*****************************************************************************
  * GdipRecordMetafileI [GDIPLUS.@]
  */
@@ -4741,6 +4748,13 @@ GpStatus WINGDIPAPI GdipRecordMetafileI(HDC hdc, EmfType type, GDIPCONST GpRect
     return NotImplemented;
 }
 
     return NotImplemented;
 }
 
+GpStatus WINGDIPAPI GdipRecordMetafileStream(IStream *stream, HDC hdc, EmfType type, GDIPCONST GpRect *frameRect,
+                                        MetafileFrameUnit frameUnit, GDIPCONST WCHAR *desc, GpMetafile **metafile)
+{
+    FIXME("(%p %p %d %p %d %p %p): stub\n", stream, hdc, type, frameRect, frameUnit, desc, metafile);
+    return NotImplemented;
+}
+
 /*****************************************************************************
  * GdipIsVisibleClipEmpty [GDIPLUS.@]
  */
 /*****************************************************************************
  * GdipIsVisibleClipEmpty [GDIPLUS.@]
  */
index 252e19a..d72ae8d 100644 (file)
@@ -2212,6 +2212,58 @@ GpStatus WINGDIPAPI GdipGetMetafileHeaderFromMetafile(GpMetafile * metafile,
     return Ok;
 }
 
     return Ok;
 }
 
+GpStatus WINGDIPAPI GdipGetMetafileHeaderFromEmf(HENHMETAFILE hEmf,
+    MetafileHeader *header)
+{
+    static int calls;
+
+    if(!hEmf || !header)
+        return InvalidParameter;
+
+    if(!(calls++))
+        FIXME("not implemented\n");
+
+    memset(header, 0, sizeof(MetafileHeader));
+
+    return Ok;
+}
+
+GpStatus WINGDIPAPI GdipGetMetafileHeaderFromFile(GDIPCONST WCHAR *filename,
+    MetafileHeader *header)
+{
+    static int calls;
+
+    TRACE("(%s,%p)\n", debugstr_w(filename), header);
+
+    if(!filename || !header)
+        return InvalidParameter;
+
+    if(!(calls++))
+        FIXME("not implemented\n");
+
+    memset(header, 0, sizeof(MetafileHeader));
+
+    return Ok;
+}
+
+GpStatus WINGDIPAPI GdipGetMetafileHeaderFromStream(IStream *stream,
+    MetafileHeader *header)
+{
+    static int calls;
+
+    TRACE("(%p,%p)\n", stream, header);
+
+    if(!stream || !header)
+        return InvalidParameter;
+
+    if(!(calls++))
+        FIXME("not implemented\n");
+
+    memset(header, 0, sizeof(MetafileHeader));
+
+    return Ok;
+}
+
 GpStatus WINGDIPAPI GdipGetAllPropertyItems(GpImage *image, UINT size,
     UINT num, PropertyItem* items)
 {
 GpStatus WINGDIPAPI GdipGetAllPropertyItems(GpImage *image, UINT size,
     UINT num, PropertyItem* items)
 {
index 2176da6..a6724d3 100644 (file)
@@ -87,7 +87,7 @@ GpStatus WINGDIPAPI GdipCreateMatrix3(GDIPCONST GpRectF *rect,
 {
     TRACE("(%p, %p, %p)\n", rect, pt, matrix);
 
 {
     TRACE("(%p, %p, %p)\n", rect, pt, matrix);
 
-    if(!matrix)
+    if(!matrix || !pt)
         return InvalidParameter;
 
     *matrix = GdipAlloc(sizeof(GpMatrix));
         return InvalidParameter;
 
     *matrix = GdipAlloc(sizeof(GpMatrix));
index 930317c..53e47f0 100644 (file)
@@ -419,6 +419,22 @@ GpStatus WINGDIPAPI GdipScalePenTransform(GpPen *pen, REAL sx, REAL sy, GpMatrix
     return NotImplemented;
 }
 
     return NotImplemented;
 }
 
+GpStatus WINGDIPAPI GdipMultiplyPenTransform(GpPen *pen, GDIPCONST GpMatrix *matrix,
+    GpMatrixOrder order)
+{
+    static int calls;
+
+    TRACE("(%p,%p,%u)\n", pen, matrix, order);
+
+    if(!pen)
+        return InvalidParameter;
+
+    if(!(calls++))
+        FIXME("not implemented\n");
+
+    return NotImplemented;
+}
+
 GpStatus WINGDIPAPI GdipSetPenBrushFill(GpPen *pen, GpBrush *brush)
 {
     TRACE("(%p, %p)\n", pen, brush);
 GpStatus WINGDIPAPI GdipSetPenBrushFill(GpPen *pen, GpBrush *brush)
 {
     TRACE("(%p, %p)\n", pen, brush);
@@ -443,6 +459,16 @@ GpStatus WINGDIPAPI GdipSetPenColor(GpPen *pen, ARGB argb)
     return GdipSetSolidFillColor(((GpSolidFill*)pen->brush), argb);
 }
 
     return GdipSetSolidFillColor(((GpSolidFill*)pen->brush), 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)
 {
 GpStatus WINGDIPAPI GdipSetPenCompoundArray(GpPen *pen, GDIPCONST REAL *dash,
     INT count)
 {
index 1268d59..5c1bf12 100644 (file)
@@ -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;
             *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
         else
-            *cmp = -1;
-    }else if(V_VT(v2) == VT_BSTR) {
-        *cmp = 1;
+            *cmp = d < -0.0 ? -1 : 0;
     }else {
     }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;
     }
 
     return S_OK;
index 07e2292..133c095 100644 (file)
@@ -23,7 +23,7 @@
 
 LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
 
 
 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"
 {
     IDS_TO_PRIMITIVE        "Fejl ved konvertering af objekt til primitiv type"
     IDS_INVALID_CALL_ARG    "Ugyldig procedure kald eller argument"
index 7e4e9a1..82628c9 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
 
 
 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"
 {
     IDS_TO_PRIMITIVE        "Fehler beim umwandeln des Objektes in einen Grundtyp"
     IDS_INVALID_CALL_ARG    "Ungültiger Funktionsaufruf oder Argument"
index bd3c09d..d98b0b6 100644 (file)
@@ -20,7 +20,7 @@
 
 LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
 
 
 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"
 {
     IDS_TO_PRIMITIVE        "Error converting object to primitive type"
     IDS_INVALID_CALL_ARG    "Invalid procedure call or argument"
index 4808109..a953d61 100644 (file)
@@ -23,7 +23,7 @@
 
 LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
 
 
 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"
 {
     IDS_TO_PRIMITIVE        "Error al convertir objeto a tipo primitivo"
     IDS_INVALID_CALL_ARG    "Llamada a procedimiento no válido o argumento"
index f70029d..a5247a8 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
 
 
 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"
 {
     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"
index 133119e..b6ee1a3 100644 (file)
@@ -23,7 +23,7 @@
 
 LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
 
 
 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"
 {
     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"
index 1d843be..3bfea63 100644 (file)
@@ -24,7 +24,7 @@
 
 LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
 
 
 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"
 {
     IDS_TO_PRIMITIVE        "Errore nel convertire un oggetto ad un tipo primitivo"
     IDS_INVALID_CALL_ARG    "Chiamata o argomento di procedura non valido"
index 9751751..b95e4aa 100644 (file)
@@ -24,7 +24,7 @@
 
 LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_TO_PRIMITIVE        "オブジェクトを基本型に変換できません"
     IDS_INVALID_CALL_ARG    "手続き呼び出しまたは引数が無効です"
 {
     IDS_TO_PRIMITIVE        "オブジェクトを基本型に変換できません"
     IDS_INVALID_CALL_ARG    "手続き呼び出しまたは引数が無効です"
index 164d6be..d45094e 100644 (file)
@@ -24,7 +24,7 @@
 
 LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_TO_PRIMITIVE        "객페를 기본 형식으로 변환하는 중에 에러 발생"
     IDS_INVALID_CALL_ARG    "올바르지 않은 프로시져 호출이나 인수"
 {
     IDS_TO_PRIMITIVE        "객페를 기본 형식으로 변환하는 중에 에러 발생"
     IDS_INVALID_CALL_ARG    "올바르지 않은 프로시져 호출이나 인수"
index a7b451e..70e0d96 100644 (file)
@@ -23,7 +23,7 @@
 
 LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL
 
 
 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"
 {
     IDS_TO_PRIMITIVE        "Klaida keičiant objektą į primityvų tipą"
     IDS_INVALID_CALL_ARG    "Netinkamas kreipinys į procedūrą ar argumentas"
index fec11a0..e140b31 100644 (file)
@@ -22,7 +22,7 @@ LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
 
 #pragma code_page(65001)
 
 
 #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"
 {
     IDS_TO_PRIMITIVE        "Fout bij het omzetten van het object naar een primitief type"
     IDS_INVALID_CALL_ARG    "Ongeldige procedure-aanroep of argument"
index 8fa790f..9b9d9bb 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL
 
 
 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"
 {
     IDS_TO_PRIMITIVE        "Klarte ikke konvertere objekt til primitiv type"
     IDS_INVALID_CALL_ARG    "Ugyldig funksjonskall eller argument"
index 8bbbe73..ff924a3 100644 (file)
@@ -20,7 +20,7 @@
 
 LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
 
 
 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\9cciwe wywo³anie procedury lub argument"
 {
     IDS_TO_PRIMITIVE        "B³¹d przy przekszta³caniu obiektu do typu podstawowego"
     IDS_INVALID_CALL_ARG    "Niew³a\9cciwe wywo³anie procedury lub argument"
index a907b10..1ead171 100644 (file)
@@ -23,7 +23,7 @@
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
 
 
 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"
 {
     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
 
 
 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"
 {
     IDS_TO_PRIMITIVE        "Erro ao converter objecto em tipo primitivo"
     IDS_INVALID_CALL_ARG    "Argumento ou chamada de procedimento inválida"
index 481e629..ec35c37 100644 (file)
@@ -24,7 +24,7 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
 
 #pragma code_page(65001)
 
 
 #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"
 {
     IDS_TO_PRIMITIVE        "Eroare la convertirea obiectului la un tip primitiv"
     IDS_INVALID_CALL_ARG    "Apel de procedură sau argument nevalid"
index 9632d3f..ce58b44 100644 (file)
@@ -23,7 +23,7 @@
 
 LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_TO_PRIMITIVE        "Ошибка конвертирования объекта в примитивный тип"
     IDS_INVALID_CALL_ARG    "Неверный вызов процедуры или аргумент"
 {
     IDS_TO_PRIMITIVE        "Ошибка конвертирования объекта в примитивный тип"
     IDS_INVALID_CALL_ARG    "Неверный вызов процедуры или аргумент"
index 0ddeab1..1f282dd 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT
 
 
 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"
 {
     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 (file)
index 0000000..6f0913a
--- /dev/null
@@ -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"
+}
index b13edcc..0e3b2e7 100644 (file)
@@ -20,7 +20,7 @@
 REGINST REGINST jscript.inf
 
 /* @makedep: jsglobal.tlb */
 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"
 
 #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_Ro.rc"
 #include "jscript_Ru.rc"
 #include "jscript_Si.rc"
+#include "jscript_Uk.rc"
+
index 52353d2..7b0597a 100644 (file)
 
 LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Öÿëàòà ìðåæà"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Âúâåäåòå ìðåæîâà ïàðîëà"
 FONT 8, "MS Shell Dlg"
index 8e32de4..aa86f93 100644 (file)
@@ -25,12 +25,12 @@ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
 
 /* Czech strings in CP1250 */
 
 
 /* Czech strings in CP1250 */
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Celá sí\9d"
 }
 
 {
     IDS_ENTIRENETWORK "Celá sí\9d"
 }
 
-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í\9dového hesla"
 FONT 8, "MS Shell Dlg"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Zadání sí\9dového hesla"
 FONT 8, "MS Shell Dlg"
index 52dc635..8a8ea2c 100644 (file)
 
 LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Hele netværket"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Skriv netværkskodeord"
 FONT 8, "MS Shell Dlg"
index d8b1298..483d689 100644 (file)
 
 LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Gesamtes Netzwerk"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Netzwerkkennung eingeben"
 FONT 8, "MS Shell Dlg"
index c6fdf72..8853e0c 100644 (file)
 
 LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Entire Network"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Enter Network Password"
 FONT 8, "MS Shell Dlg"
index 630a9fe..5506621 100644 (file)
 
 LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Toda la red"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Introduzca contraseña de red"
 FONT 8, "MS Shell Dlg"
index 4481639..be77a2e 100644 (file)
 
 LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Le réseau entier"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Entrez le mot de passe réseau"
 FONT 8, "MS Shell Dlg"
index 32c32dd..a6a4cc4 100644 (file)
 
 LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Teljes hálózat"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Hálózati jelszó megadása"
 FONT 8, "MS Shell Dlg"
index 7067ee3..a174b84 100644 (file)
 
 LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Tutta la rete"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Inserisci la Password di Rete"
 FONT 8, "MS Shell Dlg"
index a662ce7..f806a2f 100644 (file)
 
 LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "ネットワーク全体"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "ネットワーク用パスワードを入力"
 FONT 8, "MS Shell Dlg"
index 4ebbd8f..d708fbf 100644 (file)
 
 LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Àüü ³×Æ®¿öÅ©"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "³×Æ®¿öÅ© ¾ÏÈ£ ÀÔ·Â"
 FONT 9, "MS Shell Dlg"
index d086d94..5164d26 100644 (file)
 
 LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Visas tinklas"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Įveskite tinklo slaptažodį"
 FONT 8, "MS Shell Dlg"
index b1c6781..f28107a 100644 (file)
 
 LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Gehele netwerk"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Voer het Netwerk Wachtwoord in"
 FONT 8, "MS Shell Dlg"
index 150ee50..181c858 100644 (file)
 
 LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL
 
 
 LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Hele nettverket"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Skriv inn nettverkspassord"
 FONT 8, "MS Shell Dlg"
index afdd3ba..c47ef92 100644 (file)
 
 LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Ca³a sieæ"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Wpisz has³o sieci"
 FONT 8, "MS Shell Dlg"
index b019193..0850968 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Toda a rede"
 }
 {
     IDS_ENTIRENETWORK "Toda a rede"
 }
@@ -33,7 +33,7 @@ STRINGTABLE DISCARDABLE
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
 
 
 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"
 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
 
 
 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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Indique a senha da rede"
 FONT 8, "MS Shell Dlg"
index ab7d137..6a97a96 100644 (file)
@@ -23,12 +23,12 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
 
 #pragma code_page(65001)
 
 
 #pragma code_page(65001)
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Toată rețeaua"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Introducere parolă de rețea"
 FONT 8, "MS Shell Dlg"
index 3d17a0a..2949120 100644 (file)
 
 LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Вся сеть"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Введите сетевой пароль"
 FONT 8, "MS Shell Dlg"
index 8f4022e..bec79d3 100644 (file)
 
 LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Celotno omrežje"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Vnesite omrežno geslo"
 FONT 8, "MS Shell Dlg"
index 86d0db6..e069a19 100644 (file)
 
 LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Hela nätverket"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Ange nätverkslösenord"
 FONT 8, "MS Shell Dlg"
index 0f48a15..6cb99c2 100644 (file)
 
 LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Tüm Að"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Að Parolanýzý Girin"
 FONT 8, "MS Shell Dlg"
index 67b781d..e4ffc2e 100644 (file)
 
 LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "Вся Мережа"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Введіть Мережний Пароль"
 FONT 8, "MS Shell Dlg"
index 661e6b4..0f11e77 100644 (file)
 
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
 
 
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "整个网络"
 }
 
 {
     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"
 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
 
 
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_ENTIRENETWORK "整個網路"
 }
 
 {
     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"
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "輸入網路密碼"
 FONT 9, "MS Shell Dlg"
index f5b0bc9..66d165f 100644 (file)
@@ -29,6 +29,8 @@
 #include "npapi.h"
 #include "winreg.h"
 #include "winuser.h"
 #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"
 #include "wine/debug.h"
 #include "wine/unicode.h"
 #include "mprres.h"
@@ -1754,6 +1756,52 @@ DWORD WINAPI WNetGetConnectionA( LPCSTR lpLocalName,
     return ret;
 }
 
     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.@]
  *
 /**************************************************************************
  * WNetGetConnectionW [MPR.@]
  *
@@ -1782,31 +1830,8 @@ DWORD WINAPI WNetGetConnectionW( LPCWSTR lpLocalName,
             switch(GetDriveTypeW(lpLocalName))
             {
             case DRIVE_REMOTE:
             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;
                 break;
-            }
             case DRIVE_REMOVABLE:
             case DRIVE_FIXED:
             case DRIVE_CDROM:
             case DRIVE_REMOVABLE:
             case DRIVE_FIXED:
             case DRIVE_CDROM:
index 84d7e9a..03a466e 100644 (file)
@@ -20,7 +20,7 @@
 
 LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "HTML èçîáðàçÿâàíåòî å èçêëþ÷åíî."
     IDS_HTMLDOCUMENT    "HTML äîêóìåíò"
 {
     IDS_HTMLDISABLED    "HTML èçîáðàçÿâàíåòî å èçêëþ÷åíî."
     IDS_HTMLDOCUMENT    "HTML äîêóìåíò"
@@ -28,7 +28,7 @@ STRINGTABLE DISCARDABLE
     IDS_INSTALLING      "Èíñòàëèðàíå..."
 }
 
     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"
 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Wine Gecko Installer"
 FONT 8, "MS Shell Dlg"
index c211ff0..13a0aa9 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "HTML optegning er i øjeblikket deaktiveret."
     IDS_HTMLDOCUMENT    "HTML dokument"
 {
     IDS_HTMLDISABLED    "HTML optegning er i øjeblikket deaktiveret."
     IDS_HTMLDOCUMENT    "HTML dokument"
@@ -33,7 +33,7 @@ STRINGTABLE DISCARDABLE
     IDS_INSTALLING      "Installerer..."
 }
 
     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"
 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
 }
 
     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"
 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Hyperlink"
 FONT 8, "MS Shell Dlg"
index 50d519d..3929b95 100644 (file)
@@ -24,7 +24,7 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
 
 #pragma code_page(65001)
 
 
 #pragma code_page(65001)
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED  "Die HTML-Darstellung ist zur Zeit ausgeschaltet."
     IDS_HTMLDOCUMENT  "HTML-Dokument"
 {
     IDS_HTMLDISABLED  "Die HTML-Darstellung ist zur Zeit ausgeschaltet."
     IDS_HTMLDOCUMENT  "HTML-Dokument"
@@ -32,7 +32,7 @@ STRINGTABLE DISCARDABLE
     IDS_INSTALLING    "Installiere..."
 }
 
     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"
 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
 }
 
     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"
 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Hyperlink"
 FONT 8, "MS Shell Dlg"
index de9e99c..e44b373 100644 (file)
@@ -20,7 +20,7 @@
 
 LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "HTML rendering is currently disabled."
     IDS_HTMLDOCUMENT    "HTML Document"
 {
     IDS_HTMLDISABLED    "HTML rendering is currently disabled."
     IDS_HTMLDOCUMENT    "HTML Document"
@@ -28,7 +28,7 @@ STRINGTABLE DISCARDABLE
     IDS_INSTALLING      "Installing..."
 }
 
     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"
 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
 }
 
     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"
 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Hyperlink"
 FONT 8, "MS Shell Dlg"
index 590cf6a..4dc560f 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "El renderizado HTML está actualmente deshabilitado."
     IDS_HTMLDOCUMENT    "Documento HTML"
 {
     IDS_HTMLDISABLED    "El renderizado HTML está actualmente deshabilitado."
     IDS_HTMLDOCUMENT    "Documento HTML"
@@ -30,7 +30,7 @@ STRINGTABLE DISCARDABLE
     IDS_INSTALLING      "Instalando..."
 }
 
     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"
 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
 }
 
     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"
 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Enlace"
 FONT 8, "MS Shell Dlg"
index 564345d..c329cfd 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
 
 
 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"
 {
     IDS_HTMLDISABLED    "HTML:n näyttäminen on tällähetkellä poistettu käytöstä."
     IDS_HTMLDOCUMENT    "HTML Dokumentti"
index 2575c7e..924e4b0 100644 (file)
@@ -27,7 +27,7 @@
 
 LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "Le rendu HTML est actuellement désactivé."
     IDS_HTMLDOCUMENT    "Document HTML"
 {
     IDS_HTMLDISABLED    "Le rendu HTML est actuellement désactivé."
     IDS_HTMLDOCUMENT    "Document HTML"
@@ -35,7 +35,7 @@ STRINGTABLE DISCARDABLE
     IDS_INSTALLING      "Installation..."
 }
 
     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"
 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
 }
 
     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"
 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Hyperlien"
 FONT 8, "MS Shell Dlg"
index c402c20..31f54d1 100644 (file)
@@ -23,7 +23,7 @@
 
 LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "A HTML renderelés jelenleg le van tiltva."
     IDS_HTMLDOCUMENT    "HTML dokumentum"
 {
     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..."
 }
 
     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"
 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
 }
 
     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"
 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Hiperhivatkozás"
 FONT 8, "MS Shell Dlg"
index 36660cc..c8c00c2 100644 (file)
@@ -23,7 +23,7 @@
 
 LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "Il rendering HTML è correntemente disattivato."
     IDS_HTMLDOCUMENT    "Documento HTML"
 {
     IDS_HTMLDISABLED    "Il rendering HTML è correntemente disattivato."
     IDS_HTMLDOCUMENT    "Documento HTML"
@@ -31,7 +31,7 @@ STRINGTABLE DISCARDABLE
     IDS_INSTALLING      "Installando..."
 }
 
     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"
 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
 }
 
     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"
 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Hyperlink"
 FONT 8, "MS Shell Dlg"
index 04fc32e..f8c0e44 100644 (file)
@@ -23,7 +23,7 @@
 
 LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "HTML レンダリングは現在、無効です。"
     IDS_HTMLDOCUMENT    "HTML 文書"
 {
     IDS_HTMLDISABLED    "HTML レンダリングは現在、無効です。"
     IDS_HTMLDOCUMENT    "HTML 文書"
@@ -31,7 +31,7 @@ STRINGTABLE DISCARDABLE
     IDS_INSTALLING      "インストールしています..."
 }
 
     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"
 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
 }
 
     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"
 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "ハイパーリンク"
 FONT 9, "MS Shell Dlg"
index 8a98060..f541526 100644 (file)
@@ -21,7 +21,7 @@
 
 LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "HTML ·»´õ¸µÀº ÇöÀç °¡´ÉÇÏÁö ¾ÊÀ½."
     IDS_HTMLDOCUMENT    "HTML ¹®¼­"
 {
     IDS_HTMLDISABLED    "HTML ·»´õ¸µÀº ÇöÀç °¡´ÉÇÏÁö ¾ÊÀ½."
     IDS_HTMLDOCUMENT    "HTML ¹®¼­"
@@ -29,7 +29,7 @@ STRINGTABLE DISCARDABLE
    IDS_INSTALLING      "¼³Ä¡ Áß..."
 }
 
    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"
 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
 }
 
    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"
 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "ÇÏÀÌÆÛ¸µÅ©"
 FONT 9, "MS Shell Dlg"
index 8f7e772..5bfa31d 100644 (file)
@@ -23,7 +23,7 @@
 
 LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "HTML atvaizdavimas yra išjungtas."
     IDS_HTMLDOCUMENT    "HTML dokumentas"
 {
     IDS_HTMLDISABLED    "HTML atvaizdavimas yra išjungtas."
     IDS_HTMLDOCUMENT    "HTML dokumentas"
@@ -31,7 +31,7 @@ STRINGTABLE DISCARDABLE
     IDS_INSTALLING      "Įdiegiama..."
 }
 
     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"
 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
 }
 
     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"
 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Saitas"
 FONT 8, "MS Shell Dlg"
index d32980b..3401987 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED  "De HTML weergave is op dit moment uitgeschakeld."
     IDS_HTMLDOCUMENT  "HTML document"
 {
     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..."
 }
 
     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"
 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
 }
 
     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"
 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Webverwijzing"
 FONT 8, "MS Shell Dlg"
index 4592599..89f87b9 100644 (file)
@@ -24,7 +24,7 @@
 
 LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL
 
 
 LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "HTML-tegning er for øyeblikket deaktivert."
     IDS_HTMLDOCUMENT    "HTML-dokument"
 {
     IDS_HTMLDISABLED    "HTML-tegning er for øyeblikket deaktivert."
     IDS_HTMLDOCUMENT    "HTML-dokument"
@@ -32,7 +32,7 @@ STRINGTABLE DISCARDABLE
     IDS_INSTALLING      "Installerer..."
 }
 
     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"
 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
 }
 
     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"
 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Hyperkobling"
 FONT 8, "MS Shell Dlg"
index ed9cd80..9e0a635 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "Wy\9cwietlanie HTML jest aktualnie wy³¹czone."
     IDS_HTMLDOCUMENT    "Dokument HTML"
 {
     IDS_HTMLDISABLED    "Wy\9cwietlanie HTML jest aktualnie wy³¹czone."
     IDS_HTMLDOCUMENT    "Dokument HTML"
@@ -30,7 +30,7 @@ STRINGTABLE DISCARDABLE
     IDS_INSTALLING      "Instalacja..."
 }
 
     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"
 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
 }
 
     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"
 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Hiper³¹cze"
 FONT 8, "MS Shell Dlg"
index 3c19ca5..4987452 100644 (file)
@@ -23,7 +23,7 @@
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
 
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "A interpretação de HTML está desativada."
     IDS_HTMLDOCUMENT    "Documento HTML"
 {
     IDS_HTMLDISABLED    "A interpretação de HTML está desativada."
     IDS_HTMLDOCUMENT    "Documento HTML"
@@ -33,7 +33,7 @@ STRINGTABLE DISCARDABLE
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
 
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "A interpretação de HTML está desactivada."
     IDS_HTMLDOCUMENT    "Documento HTML"
 {
     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
 
 
 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"
 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
 
 
 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"
 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
 
 
 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"
 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
 
 
 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"
 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Hiperligação"
 FONT 8, "MS Shell Dlg"
index 38cd580..1c7a558 100644 (file)
@@ -23,7 +23,7 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
 
 #pragma code_page(65001)
 
 
 #pragma code_page(65001)
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "Afișarea de pagini HTML este în prezent dezactivată."
     IDS_HTMLDOCUMENT    "Document HTML"
 {
     IDS_HTMLDISABLED    "Afișarea de pagini HTML este în prezent dezactivată."
     IDS_HTMLDOCUMENT    "Document HTML"
@@ -31,7 +31,7 @@ STRINGTABLE DISCARDABLE
     IDS_INSTALLING      "Instalez..."
 }
 
     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"
 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
 }
 
     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"
 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Hiperlegătură"
 FONT 8, "MS Shell Dlg"
index cb3b168..bd04272 100644 (file)
@@ -23,7 +23,7 @@
 
 LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "В настоящее время отображение HTML выключено."
     IDS_HTMLDOCUMENT    "Документ HTML"
 {
     IDS_HTMLDISABLED    "В настоящее время отображение HTML выключено."
     IDS_HTMLDOCUMENT    "Документ HTML"
@@ -31,7 +31,7 @@ STRINGTABLE DISCARDABLE
     IDS_INSTALLING      "Установка..."
 }
 
     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"
 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
 }
 
     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"
 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Ссылка"
 FONT 8, "MS Shell Dlg"
index 6881add..0d6ee5f 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "Prikazovanje HTML dokumentov je trenutno onemogočeno."
     IDS_HTMLDOCUMENT    "HTML dokument"
 {
     IDS_HTMLDISABLED    "Prikazovanje HTML dokumentov je trenutno onemogočeno."
     IDS_HTMLDOCUMENT    "HTML dokument"
@@ -30,7 +30,7 @@ STRINGTABLE DISCARDABLE
     IDS_INSTALLING      "Nameščam ..."
 }
 
     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"
 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
 }
 
     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"
 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Hiperpovezava"
 FONT 8, "MS Shell Dlg"
index c5a2cc8..290fa75 100644 (file)
@@ -20,7 +20,7 @@
 
 LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "HTML-visning är inte aktiverad."
     IDS_HTMLDOCUMENT    "HTML-dokument"
 {
     IDS_HTMLDISABLED    "HTML-visning är inte aktiverad."
     IDS_HTMLDOCUMENT    "HTML-dokument"
@@ -28,7 +28,7 @@ STRINGTABLE DISCARDABLE
     IDS_INSTALLING      "Installerar..."
 }
 
     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"
 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"
 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Hyperlänk"
 FONT 8, "MS Shell Dlg"
index 01a7931..efdc9d2 100644 (file)
@@ -20,7 +20,7 @@
 
 LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "HTML motoru þu an devre dýþý."
     IDS_HTMLDOCUMENT    "HTML Belgesi"
 {
     IDS_HTMLDISABLED    "HTML motoru þu an devre dýþý."
     IDS_HTMLDOCUMENT    "HTML Belgesi"
@@ -28,7 +28,7 @@ STRINGTABLE DISCARDABLE
     IDS_INSTALLING      "Kuruluyor..."
 }
 
     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"
 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Wine Gecko Kurucusu"
 FONT 8, "MS Shell Dlg"
index ef3a8fb..5d57e8f 100644 (file)
@@ -24,7 +24,7 @@
 
 LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "В даний момент відображення HTML вимкнено."
     IDS_HTMLDOCUMENT    "Документ HTML"
 {
     IDS_HTMLDISABLED    "В даний момент відображення HTML вимкнено."
     IDS_HTMLDOCUMENT    "Документ HTML"
@@ -32,7 +32,7 @@ STRINGTABLE DISCARDABLE
     IDS_INSTALLING      "Встановлення..."
 }
 
     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"
 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
 }
 
     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"
 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Гіперпосилання"
 FONT 8, "MS Shell Dlg"
index c904dbc..9a1b24b 100644 (file)
@@ -2,6 +2,7 @@
  * mshtml (Simplified and Traditional Chinese Resources)
  *
  * Copyright 2008 Hongbo Ni <hongbo.at.njstar.com>
  * mshtml (Simplified and Traditional Chinese Resources)
  *
  * Copyright 2008 Hongbo Ni <hongbo.at.njstar.com>
+ * Copyright 2010 Cheer Xiao <xiaqqaix.at.gmail.com>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  *
  * 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
 
 
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "HTML 功能目前已被停用."
     IDS_HTMLDOCUMENT    "HTML 文件"
 {
     IDS_HTMLDISABLED    "HTML 功能目前已被停用."
     IDS_HTMLDOCUMENT    "HTML 文件"
@@ -33,21 +34,20 @@ STRINGTABLE DISCARDABLE
     IDS_INSTALLING      "正在安装..."
 }
 
     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"
 {
 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
           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
 }
 
     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"
 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
 }
 
     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
 
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_HTMLDISABLED    "HTML 功能目前已被停用."
     IDS_HTMLDOCUMENT    "HTML 檔案"
 {
     IDS_HTMLDISABLED    "HTML 功能目前已被停用."
     IDS_HTMLDOCUMENT    "HTML 檔案"
@@ -71,7 +82,7 @@ STRINGTABLE DISCARDABLE
     IDS_INSTALLING      "正在安裝..."
 }
 
     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"
 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
 }
 
     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"
 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "超鏈接"
 FONT 9, "MS Shell Dlg"
index de0c948..64356f5 100644 (file)
@@ -146,6 +146,7 @@ static REFIID tid_ids[] = {
     &IID_IHTMLInputElement,
     &IID_IHTMLLocation,
     &IID_IHTMLOptionElement,
     &IID_IHTMLInputElement,
     &IID_IHTMLLocation,
     &IID_IHTMLOptionElement,
+    &IID_IHTMLRect,
     &IID_IHTMLScreen,
     &IID_IHTMLScriptElement,
     &IID_IHTMLSelectElement,
     &IID_IHTMLScreen,
     &IID_IHTMLScriptElement,
     &IID_IHTMLSelectElement,
index f4ea096..8d135ff 100644 (file)
@@ -189,8 +189,10 @@ static HRESULT WINAPI HTMLDocument3_detachEvent(IHTMLDocument3 *iface, BSTR even
                                                 IDispatch *pDisp)
 {
     HTMLDocument *This = HTMLDOC3_THIS(iface);
                                                 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)
 }
 
 static HRESULT WINAPI HTMLDocument3_put_onrowsdelete(IHTMLDocument3 *iface, VARIANT v)
index 548bab8..0c20723 100644 (file)
@@ -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
  *
  * 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 <stdarg.h>
  */
 
 #include <stdarg.h>
+#include <math.h>
 
 #define COBJMACROS
 
 
 #define COBJMACROS
 
 
 WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
 
 
 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,
 #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);
 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,
 }
 
 static HRESULT WINAPI HTMLElement2_setExpression(IHTMLElement2 *iface, BSTR propname,
index 4deb4d6..46886d8 100644 (file)
@@ -120,6 +120,7 @@ typedef enum {
     IHTMLInputElement_tid,
     IHTMLLocation_tid,
     IHTMLOptionElement_tid,
     IHTMLInputElement_tid,
     IHTMLLocation_tid,
     IHTMLOptionElement_tid,
+    IHTMLRect_tid,
     IHTMLScreen_tid,
     IHTMLScriptElement_tid,
     IHTMLSelectElement_tid,
     IHTMLScreen_tid,
     IHTMLScriptElement_tid,
     IHTMLSelectElement_tid,
index 4ccc64a..b62c7b2 100644 (file)
@@ -131,7 +131,6 @@ typedef nsISupports nsIDOMMediaList;
 typedef nsISupports nsIDOMHTMLTableCaptionElement;
 typedef nsISupports nsIDOMHTMLTableSectionElement;
 typedef nsISupports nsIDOMClientRectList;
 typedef nsISupports nsIDOMHTMLTableCaptionElement;
 typedef nsISupports nsIDOMHTMLTableSectionElement;
 typedef nsISupports nsIDOMClientRectList;
-typedef nsISupports nsIDOMClientRect;
 typedef nsISupports nsIDOMLocation;
 typedef nsISupports nsIDocument;
 typedef nsISupports nsIContent;
 typedef nsISupports nsIDOMLocation;
 typedef nsISupports nsIDocument;
 typedef nsISupports nsIContent;
@@ -732,6 +731,22 @@ interface nsIDOMElementCSSInlineStyle : nsISupports
     nsresult GetStyle(nsIDOMCSSStyleDeclaration **aStyle);
 }
 
     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),
 [
     object,
     uuid(f0aef489-18c5-4de6-99d5-58b3758b098c),
index b40c840..bb559c0 100644 (file)
@@ -567,6 +567,7 @@ UINT msi_apply_patch_db( MSIPACKAGE *package, MSIDATABASE *patch_db, MSIPATCHINF
      */
     append_storage_to_db( package->db, patch_db->storage );
 
      */
     append_storage_to_db( package->db, patch_db->storage );
 
+    patch->state = MSIPATCHSTATE_APPLIED;
     list_add_tail( &package->patches, &patch->entry );
     return ERROR_SUCCESS;
 }
     list_add_tail( &package->patches, &patch->entry );
     return ERROR_SUCCESS;
 }
@@ -711,7 +712,7 @@ static BOOL ui_sequence_exists( MSIPACKAGE *package )
     return FALSE;
 }
 
     return FALSE;
 }
 
-static UINT msi_set_sourcedir_props(MSIPACKAGE *package, BOOL replace)
+UINT msi_set_sourcedir_props(MSIPACKAGE *package, BOOL replace)
 {
     LPWSTR source, check;
 
 {
     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
     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 );
 
 
     msi_dialog_check_messages( NULL );
 
@@ -896,6 +897,8 @@ static UINT ACTION_ProcessExecSequence(MSIPACKAGE *package, BOOL UIran)
     {
         TRACE("Running the actions\n");
 
     {
         TRACE("Running the actions\n");
 
+        msi_set_property(package->db, cszSourceDir, NULL);
+
         rc = MSI_IterateRecords(view, NULL, ITERATE_Actions, package);
         msiobj_release(&view->hdr);
     }
         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)
         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));
     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)
         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));
     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));
         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;
     }
         if (rc != ERROR_SUCCESS)
             break;
     }
@@ -1793,17 +1808,29 @@ UINT MSI_SetFeatureStates(MSIPACKAGE *package)
                 msi_feature_set_state(package, fl->feature, INSTALLSTATE_UNKNOWN);
         }
     }
                 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;
 
     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;
 
         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 )
         {
         /* 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);
                 feature->Action == INSTALLSTATE_SOURCE)
             {
                 msi_feature_set_state(package, feature, INSTALLSTATE_LOCAL);
@@ -1824,9 +1850,6 @@ UINT MSI_SetFeatureStates(MSIPACKAGE *package)
         {
             component = cl->component;
 
         {
             component = cl->component;
 
-            if (!component->Enabled)
-                continue;
-
             switch (feature->Action)
             {
             case INSTALLSTATE_ABSENT:
             switch (feature->Action)
             {
             case INSTALLSTATE_ABSENT:
@@ -1857,10 +1880,6 @@ UINT MSI_SetFeatureStates(MSIPACKAGE *package)
 
     LIST_FOR_EACH_ENTRY( component, &package->components, MSICOMPONENT, entry )
     {
 
     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))
         /* 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 )
     {
 
     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("%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;
 }
 
     return ERROR_SUCCESS;
 }
 
@@ -2370,16 +2388,17 @@ static UINT ITERATE_WriteRegistryValues(MSIRECORD *row, LPVOID param)
 
     ui_progress(package,2,0,0,0);
 
 
     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;
 
     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));
     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)
         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));
     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)
         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));
     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 )
     {
 
     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;
     }
     
     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);
 
     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;
     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 );
 
 
         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),
                             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)
 
         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);
             }
 
                 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
             {
                 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)
         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));
     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)
         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));
     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)
         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));
     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)
         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));
     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];
 
     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;
     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;
 }
 
     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];
 {
     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;
 
     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;
 
         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;
     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 );
             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;
         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 );
 done:
     RegCloseKey( product_patches_key );
     RegCloseKey( patches_key );
+    RegCloseKey( product_key );
     msi_free( all_patches );
     return r;
 }
     msi_free( all_patches );
     return r;
 }
@@ -3914,6 +3981,13 @@ static UINT ACTION_PublishProduct(MSIPACKAGE *package)
     HKEY hukey = NULL, hudkey = NULL;
     MSIRECORD *uirow;
 
     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;
     /* 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 (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;
     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)
         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));
     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)
         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));
     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)
         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));
     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;
 }
 
     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;
 static UINT ITERATE_SelfRegModules(MSIRECORD *row, LPVOID param)
 {
     MSIPACKAGE *package = param;
     LPCWSTR filename;
-    LPWSTR FullName;
     MSIFILE *file;
     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;
 
     MSIRECORD *uirow;
 
-    memset(&si,0,sizeof(STARTUPINFOW));
-
     filename = MSI_RecordGetString(row,1);
     file = get_loaded_file( package, filename );
 
     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;
     }
 
         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 );
 
     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 );
 
     ui_actiondata( package, szSelfRegModules, uirow );
     msiobj_release( &uirow->hdr );
 
-    msi_free( FullName );
     return ERROR_SUCCESS;
 }
 
     return ERROR_SUCCESS;
 }
 
@@ -4325,21 +4410,11 @@ static UINT ACTION_SelfRegModules(MSIPACKAGE *package)
 
 static UINT ITERATE_SelfUnregModules( MSIRECORD *row, LPVOID param )
 {
 
 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;
     MSIPACKAGE *package = param;
     LPCWSTR filename;
-    LPWSTR cmdline;
     MSIFILE *file;
     MSIFILE *file;
-    DWORD len;
-    STARTUPINFOW si;
-    PROCESS_INFORMATION pi;
-    BOOL ret;
     MSIRECORD *uirow;
 
     MSIRECORD *uirow;
 
-    memset( &si, 0, sizeof(STARTUPINFOW) );
-
     filename = MSI_RecordGetString( row, 1 );
     file = get_loaded_file( package, filename );
 
     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;
     }
 
         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 );
 
     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 );
 
     ui_actiondata( package, szSelfUnregModules, uirow );
     msiobj_release( &uirow->hdr );
 
-    msi_free( cmdline );
     return ERROR_SUCCESS;
 }
 
     return ERROR_SUCCESS;
 }
 
@@ -4694,9 +4755,6 @@ static UINT ACTION_RegisterProduct(MSIPACKAGE *package)
     HKEY upgrade;
     UINT rc;
 
     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;
     /* 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);
 }
 
     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;
     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};
 
     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)
     {
     features = msi_split_string(remove, ',');
     if (!features)
     {
-        msi_free(remove);
         ERR("REMOVE feature list is empty!\n");
         return ERROR_FUNCTION_FAILED;
     }
         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;
         }
     }
                 full_uninstall = FALSE;
         }
     }
+    msi_free(features);
 
     if (!full_uninstall)
 
     if (!full_uninstall)
-        goto done;
+        return ERROR_SUCCESS;
 
     MSIREG_DeleteProductKey(package->ProductCode);
     MSIREG_DeleteUserDataProductKey(package->ProductCode);
 
     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);
     }
 
         MSIREG_DeleteUserDataPatchKey(patch->patchcode, package->Context);
     }
 
-done:
-    msi_free(remove);
-    msi_free(features);
     return ERROR_SUCCESS;
 }
 
 static UINT ACTION_InstallFinalize(MSIPACKAGE *package)
 {
     UINT rc;
     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;
 
     /* 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);
 
     /* 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;
 }
 
     return rc;
 }
 
@@ -5337,6 +5390,12 @@ static UINT ITERATE_StartService(MSIRECORD *rec, LPVOID param)
     if (!comp)
         return ERROR_SUCCESS;
 
     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));
     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)
         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));
     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)
         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));
     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)
         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));
     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)
         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));
     if (comp->ActionRequest != INSTALLSTATE_ABSENT)
     {
         TRACE("Component not scheduled for removal: %s\n", debugstr_w(component));
@@ -7216,47 +7299,27 @@ StandardActions[] =
     { NULL, NULL },
 };
 
     { 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 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)
     {
 
     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
             {
             }
             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;
             }
             ret = TRUE;
             break;
@@ -7266,17 +7329,17 @@ static BOOL ACTION_HandleStandardAction(MSIPACKAGE *package, LPCWSTR action,
     return ret;
 }
 
     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));
 
 {
     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)
 
     if (!handled)
-        handled = ACTION_HandleCustomAction(package, action, &rc, script, force);
+        handled = ACTION_HandleCustomAction(package, action, &rc, script, TRUE);
 
     if (!handled)
     {
 
     if (!handled)
     {
@@ -7294,7 +7357,7 @@ UINT ACTION_PerformUIAction(MSIPACKAGE *package, const WCHAR *action, UINT scrip
 
     TRACE("Performing action (%s)\n", debugstr_w(action));
 
 
     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);
 
     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
         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);
     }
 
         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 );
 
     /* 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))
     msi_set_context( package );
 
     if (needs_ui_sequence( package))
index 34130b6..a516bda 100644 (file)
@@ -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)
         rc = ACTION_AppSearchSigName(package, parentName, &parentSig, &parent);
         ACTION_FreeSignature(&parentSig);
         if (!parent)
+        {
+            msiobj_release(&row->hdr);
             return ERROR_SUCCESS;
             return ERROR_SUCCESS;
+        }
     }
 
     sz = MAX_PATH;
     }
 
     sz = MAX_PATH;
index 22d11c1..30ee36b 100644 (file)
@@ -824,6 +824,12 @@ UINT ACTION_RegisterClassInfo(MSIPACKAGE *package)
         if ( !comp )
             continue;
 
         if ( !comp )
             continue;
 
+        if (!comp->Enabled)
+        {
+            TRACE("component is disabled\n");
+            continue;
+        }
+
         feature = cls->Feature;
         if (!feature)
             continue;
         feature = cls->Feature;
         if (!feature)
             continue;
@@ -976,6 +982,12 @@ UINT ACTION_UnregisterClassInfo( MSIPACKAGE *package )
         if (!comp)
             continue;
 
         if (!comp)
             continue;
 
+        if (!comp->Enabled)
+        {
+            TRACE("component is disabled\n");
+            continue;
+        }
+
         feature = cls->Feature;
         if (!feature)
             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)
 
         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 );
 
         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)
             continue;
 
+        if (!ext->Component->Enabled)
+        {
+            TRACE("component is disabled\n");
+            continue;
+        }
+
         feature = ext->Feature;
         if (!feature)
             continue;
         feature = ext->Feature;
         if (!feature)
             continue;
@@ -1354,6 +1372,12 @@ UINT ACTION_UnregisterExtensionInfo( MSIPACKAGE *package )
         if (!ext->Component)
             continue;
 
         if (!ext->Component)
             continue;
 
+        if (!ext->Component->Enabled)
+        {
+            TRACE("component is disabled\n");
+            continue;
+        }
+
         feature = ext->Feature;
         if (!feature)
             continue;
         feature = ext->Feature;
         if (!feature)
             continue;
index 3e57792..01c3249 100644 (file)
@@ -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;
 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;
 
     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 )
         {
 
         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))
             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 );
     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 );
 
     /* the transform may add or replace streams */
     free_streams( db );
index 4ed395b..157d185 100644 (file)
@@ -163,7 +163,7 @@ static UINT ControlEvent_SpawnWaitDialog(MSIPACKAGE* package, LPCWSTR argument,
 static UINT ControlEvent_DoAction(MSIPACKAGE* package, LPCWSTR argument, 
                                   msi_dialog* dialog)
 {
 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;
 }
 
     return ERROR_SUCCESS;
 }
 
index 79d7814..0ed9582 100644 (file)
@@ -66,7 +66,7 @@ static void schedule_install_files(MSIPACKAGE *package)
 
     LIST_FOR_EACH_ENTRY(file, &package->files, MSIFILE, entry)
     {
 
     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));
 
         {
             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)
         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));
     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)
         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));
     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)
         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));
     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;
     }
 
         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");
     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;
 
              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 );
         if (file->Version)
         {
             ver = msi_get_disk_file_version( file->TargetPath );
index 1d99a4c..2128e92 100644 (file)
@@ -196,6 +196,12 @@ static UINT ITERATE_RegisterFonts(MSIRECORD *row, LPVOID param)
         return ERROR_SUCCESS;
     }
 
         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");
     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;
     }
 
         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");
     if (file->Component->ActionRequest != INSTALLSTATE_ABSENT)
     {
         TRACE("Component not scheduled for removal\n");
index 6dc262c..a2a9065 100644 (file)
@@ -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);
 
     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);
     source_dir = msi_dup_property(package->db, cszSourceDir);
     lstrcpyW(mi->sourcedir, source_dir);
     mi->type = get_drive_type(source_dir);
index 47dc1d6..d81484f 100644 (file)
@@ -51,12 +51,12 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
 #include "msi_Ro.rc"
 #include "msi_Ru.rc"
 #include "msi_Si.rc"
 #include "msi_Ro.rc"
 #include "msi_Ru.rc"
 #include "msi_Si.rc"
-
+#include "msi_Sr.rc"
 
 LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
 
 /* @makedep: msiserver.tlb */
 
 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
 
 /* @makedep: instadvert.bmp */
 0x1001 BITMAP instadvert.bmp
index 94e3ed3..6fdebd8 100644 (file)
 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)
 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)
 
 @ stdcall -private DllCanUnloadNow()
 @ stdcall -private DllGetClassObject(ptr ptr ptr)
index 8aea169..63b0255 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
 
 
 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 íå å íàìåðåí"
 {
        4 "The specified installation package could not be opened.  Please check the file path and try again."
        5 "ïúòÿò %s íå å íàìåðåí"
index fa7e1c4..88aa3bd 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
 
 
 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'."
 {
        4 "Kunne ikke åbne den specificerede installationspakke. Kontroller stien og prøv igen."
        5 "kunne ikke finden stien '%s'."
index e07b5ef..8c113f9 100644 (file)
@@ -25,7 +25,7 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
 
 #pragma code_page(65001)
 
 
 #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."
 {
        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."
index c506e00..2bfc165 100644 (file)
@@ -23,7 +23,7 @@
 
 LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
 
 
 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"
 {
        4 "The specified installation package could not be opened.  Please check the file path and try again."
        5 "path %s not found"
index f5425db..b27d7c1 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
 
 
 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"
 {
        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"
index f3d58bf..7769a8a 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
 
 
 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."
 {
        4 "The specified installation package could not be opened.  Please check the file path and try again."
        5 "Polkua %s ei löydy."
index 6cd1fc5..62fd941 100644 (file)
@@ -26,7 +26,7 @@
 
 LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
 
 
 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"
 {
        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"
index 846de4c..2c21e7c 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
 
 
 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ó"
 {
        4 "The specified installation package could not be opened.  Please check the file path and try again."
        5 "%s útvonal nem található"
index 0586bb4..0c47280 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
 
 
 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"
 {
        4 "Impossibile aprire il pacchetto di installazione specificato.  Per favore controlla l'indirizzo del file e riprova."
        5 "percorso %s non trovato"
index 04efd83..346e9be 100644 (file)
@@ -24,7 +24,7 @@
 
 LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
        4 " ÁöÁ¤ÇÑ ¼³Ä¡ ÆÐÅ°Áö¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù. ÆÄÀÏ °æ·Î¸¦ È®ÀÎÇÏ°í ´Ù½Ã ½ÃµµÇϽʽÿÀ."
        5 "%s  °æ·Î¸¦ Ã£À»¼ö ¾ø½À´Ï´Ù"
 {
        4 " ÁöÁ¤ÇÑ ¼³Ä¡ ÆÐÅ°Áö¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù. ÆÄÀÏ °æ·Î¸¦ È®ÀÎÇÏ°í ´Ù½Ã ½ÃµµÇϽʽÿÀ."
        5 "%s  °æ·Î¸¦ Ã£À»¼ö ¾ø½À´Ï´Ù"
index c88592c..6c2a641 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL
 
 
 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"
 {
        4 "Nepavyko atverti nurodyto diegimo paketo. Patikrinkite failo kelią ir mėginkite dar kartą."
        5 "kelias %s nerastas"
index 306cfd7..29cb8a3 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
 
 
 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"
 {
        4 "Het opgegeven installatie pakket kon niet worden geopend.  Verifieer het bestandspad en probeer opnieuw."
        5 "Pad %s niet gevonden"
index 93e26c6..d9e5938 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL
 
 
 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'."
 {
        4 "Klarte ikke åpne den oppgitte installasjonspakken. Kontroller filbanen og prøv igjen."
        5 "Fant ikke stien '%s'."
index ceb64dd..e3f8bd4 100644 (file)
@@ -23,7 +23,7 @@
 
 LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
        4 "Nie uda³o siê otworzyæ wybranego pakietu instalacyjnego. Sprawd\9f czy \9ccie¿ka jest poprawna i spróbuj ponownie."
        5 "\9ccie¿ka '%s' nie zosta³a odnaleziona"
 {
        4 "Nie uda³o siê otworzyæ wybranego pakietu instalacyjnego. Sprawd\9f czy \9ccie¿ka jest poprawna i spróbuj ponownie."
        5 "\9ccie¿ka '%s' nie zosta³a odnaleziona"
index 4a1045c..d8b75d9 100644 (file)
@@ -26,7 +26,7 @@
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
 
 
 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"
 {
        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
 
 
 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"
 {
        4 "The specified installation package could not be opened.  Please check the file path and try again."
        5 "localização %s não encontrada"
index ffd9c5e..989e848 100644 (file)
@@ -23,7 +23,7 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
 
 #pragma code_page(65001)
 
 
 #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ă"
 {
         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ă"
index 7cd4a2b..6e635f5 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
        4 "Указанный пакет не может быть открыт. Проверьте файл и повторите попытку."
        5 "путь %s не найден"
 {
        4 "Указанный пакет не может быть открыт. Проверьте файл и повторите попытку."
        5 "путь %s не найден"
index 3477f1b..1c689c2 100644 (file)
@@ -24,7 +24,7 @@
 
 LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT
 
 
 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"
 {
        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 (file)
index 0000000..ed481ea
--- /dev/null
@@ -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"
+}
index 4c37cfc..ed61893 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
 
 
 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"
 {
        4 "Det angivna installationspaketet kunde inte öppnas.  Kontrollera filsökvägen och försök igen."
        5 "sökvägen %s hittades inte"
index c6a12c1..ad4c14e 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
 
 
 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ý"
 {
        4 "The specified installation package could not be opened.  Please check the file path and try again."
        5 "%s yolu bulunamadý"
index 2407bbe..60e2a3f 100644 (file)
@@ -27,7 +27,7 @@
 
 LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
        4 "Не вдалося відкрити вказаний пакет інсталяції.  Перевірте шлях до файлу та спробуйте знов."
        5 "шлях %s не знайдено"
 {
        4 "Не вдалося відкрити вказаний пакет інсталяції.  Перевірте шлях до файлу та спробуйте знов."
        5 "шлях %s не знайдено"
index 91fd540..0eb376d 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
 
 
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
        4 "不能打开所指定的安装软件包. 请检查文件路径后再试."
        5 "路径 %s 没找到"
 {
        4 "不能打开所指定的安装软件包. 请检查文件路径后再试."
        5 "路径 %s 没找到"
@@ -66,7 +66,7 @@ STRINGTABLE DISCARDABLE
 
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
 
 
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
        4 "不能開啟所指定的安裝軟件包. 請檢查檔案路徑後再試."
        5 "路徑 %s 沒找到"
 {
        4 "不能開啟所指定的安裝軟件包. 請檢查檔案路徑後再試."
        5 "路徑 %s 沒找到"
index d1e8113..344b145 100644 (file)
@@ -44,6 +44,7 @@
 #define MSITYPE_KEY      0x2000
 #define MSITYPE_TEMPORARY 0x4000
 
 #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
 
 /* 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;
     LPWSTR patchcode;
     LPWSTR transforms;
     LPWSTR localfile;
+    MSIPATCHSTATE state;
 } MSIPATCHINFO;
 
 typedef struct _column_info
 } 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 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 */
 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 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);
 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_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 */
 
 
 /* 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 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);
 
 /* memory allocation macro functions */
 static void *msi_alloc( size_t len ) __WINE_ALLOC_SIZE(1);
index f2723af..df81a74 100644 (file)
@@ -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) )
     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;
         return ret;
+    }
 
     r = IStorage_Stat( stg, &stat, STATFLAG_NONAME );
     if ( FAILED( r ) )
 
     r = IStorage_Stat( stg, &stat, STATFLAG_NONAME );
     if ( FAILED( r ) )
index fba722f..d332168 100644 (file)
@@ -324,57 +324,85 @@ static UINT create_temp_property_table(MSIPACKAGE *package)
 
 UINT msi_clone_properties(MSIPACKAGE *package)
 {
 
 UINT msi_clone_properties(MSIPACKAGE *package)
 {
-    MSIQUERY *view = NULL;
+    MSIQUERY *view_select = NULL;
     UINT rc;
 
     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};
        '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};
        '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;
 
     if (rc != ERROR_SUCCESS)
         return rc;
 
-    rc = MSI_ViewExecute(view, 0);
+    rc = MSI_ViewExecute( view_select, 0 );
     if (rc != ERROR_SUCCESS)
     {
     if (rc != ERROR_SUCCESS)
     {
-        MSI_ViewClose(view);
-        msiobj_release(&view->hdr);
+        MSI_ViewClose( view_select );
+        msiobj_release( &view_select->hdr );
         return rc;
     }
 
     while (1)
     {
         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;
 
         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)
         {
         if (rc != ERROR_SUCCESS)
         {
-            msiobj_release(&row->hdr);
+            msiobj_release( &rec_select->hdr );
             continue;
         }
 
             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;
 }
 
     return rc;
 }
 
@@ -1014,7 +1042,7 @@ static UINT msi_load_admin_properties(MSIPACKAGE *package)
     return r;
 }
 
     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)
 {
     /* 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 );
 
         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) );
 
         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 );
 
         if (package->WordCount & msidbSumInfoSourceTypeAdminImage)
             msi_load_admin_properties( package );
-
-        adjust_allusers_property( package );
     }
 
     return package;
     }
 
     return package;
@@ -1210,6 +1237,13 @@ static UINT apply_registered_patch( MSIPACKAGE *package, LPCWSTR patch_code )
         return r;
     }
 
         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)
     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++;
     }
 
         index++;
     }
 
+    if (index)
+    {
+        msi_clone_properties( package );
+        msi_adjust_allusers_property( package );
+    }
+
     *pPackage = package;
     return ERROR_SUCCESS;
 }
     *pPackage = package;
     return ERROR_SUCCESS;
 }
index 518303f..2a84e11 100644 (file)
@@ -1918,7 +1918,7 @@ static UINT msi_check_product_patches(LPCWSTR prodcode, LPCWSTR usersid,
         goto done;
 
     ptr = patches;
         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))
         {
     {
         if (!unsquash_guid(ptr, patch))
         {
index 0e752f5..8e4323a 100644 (file)
@@ -588,9 +588,6 @@ UINT WINAPI MsiSourceListGetInfoW( LPCWSTR szProduct, LPCWSTR szUserSid,
     if (szUserSid)
         FIXME("Unhandled UserSid %s\n",debugstr_w(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;
     rc = OpenSourceKey(szProduct, &sourcekey, dwOptions, dwContext, FALSE);
     if (rc != ERROR_SUCCESS)
         return rc;
index 59e845d..44c4e67 100644 (file)
@@ -37,7 +37,6 @@
 WINE_DEFAULT_DEBUG_CHANNEL(msidb);
 
 #define NUM_STREAMS_COLS    2
 WINE_DEFAULT_DEBUG_CHANNEL(msidb);
 
 #define NUM_STREAMS_COLS    2
-#define MAX_STREAM_NAME_LEN 62
 
 typedef struct tabSTREAM
 {
 
 typedef struct tabSTREAM
 {
index d844626..73ce075 100644 (file)
@@ -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)
 {
 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;
 }
 
     return E_FAIL;
 }
 
index 0007503..f9f02e0 100644 (file)
@@ -415,22 +415,20 @@ static HRESULT WINAPI domdoc_IPersistStreamInit_Load(
 }
 
 static HRESULT WINAPI domdoc_IPersistStreamInit_Save(
 }
 
 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);
 {
     domdoc *This = impl_from_IPersistStreamInit(iface);
-    HRESULT hr;
     BSTR xmlString;
     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)
     {
 
     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);
     }
 
         SysFreeString(xmlString);
     }
 
index eca9f1d..5381d95 100644 (file)
@@ -139,7 +139,7 @@ static HRESULT namespacePush(saxlocator *locator, int ns)
         int *new_stack;
 
         new_stack = HeapReAlloc(GetProcessHeap(), 0,
         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;
         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;
 static BSTR bstr_from_xmlCharN(const xmlChar *buf, int len)
 {
     DWORD dLen;
-    LPWSTR str;
     BSTR bstr;
 
     if (!buf)
     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++;
 
     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;
         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;
 }
 
     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;
 static BSTR QName_from_xmlChar(const xmlChar *prefix, const xmlChar *name)
 {
     DWORD dLen, dLast;
-    LPWSTR str;
     BSTR bstr;
 
     if(!name) return NULL;
     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);
 
     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;
 
         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;
 }
 
     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->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);
     if(!locator->nsStack)
     {
         ISAXXMLReader_Release((ISAXXMLReader*)&reader->lpSAXXMLReaderVtbl);
index 232f5ea..2564bcf 100644 (file)
@@ -15,7 +15,7 @@
  */
 
 /* @makedep: msxml3_v1.tlb */
  */
 
 /* @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"
 
 #define WINE_OLESELFREGISTER
 #define WINE_FILEDESCRIPTION_STR "Wine MSXML 3.0"
index 69e0a90..7f04036 100644 (file)
@@ -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.*/
     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 */
        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)
 {
 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 ! */
     /* 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)
 {
  ******************************************************************************/
 HRESULT WINAPI CreateAntiMoniker(LPMONIKER * ppmk)
 {
-    AntiMonikerImpl* newAntiMoniker = 0;
-    HRESULT        hr = S_OK;
-    IID riid=IID_IMoniker;
+    AntiMonikerImpl* newAntiMoniker;
+    HRESULT hr;
 
     TRACE("(%p)\n",ppmk);
 
 
     TRACE("(%p)\n",ppmk);
 
@@ -632,9 +627,7 @@ HRESULT WINAPI CreateAntiMoniker(LPMONIKER * ppmk)
         return hr;
     }
 
         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,
 }
 
 static HRESULT WINAPI AntiMonikerCF_QueryInterface(LPCLASSFACTORY iface,
@@ -677,7 +670,7 @@ static HRESULT WINAPI AntiMonikerCF_CreateInstance(LPCLASSFACTORY iface,
     if (FAILED(hr))
         return hr;
 
     if (FAILED(hr))
         return hr;
 
-       hr = IMoniker_QueryInterface(pMoniker, riid, ppv);
+    hr = IMoniker_QueryInterface(pMoniker, riid, ppv);
 
     if (FAILED(hr))
         IMoniker_Release(pMoniker);
 
     if (FAILED(hr))
         IMoniker_Release(pMoniker);
index f7561bd..1492393 100644 (file)
@@ -285,8 +285,6 @@ BindCtxImpl_GetBindOptions(IBindCtx* iface,BIND_OPTS *pbindopts)
 static HRESULT WINAPI
 BindCtxImpl_GetRunningObjectTable(IBindCtx* iface,IRunningObjectTable** pprot)
 {
 static HRESULT WINAPI
 BindCtxImpl_GetRunningObjectTable(IBindCtx* iface,IRunningObjectTable** pprot)
 {
-    HRESULT res;
-
     BindCtxImpl *This = (BindCtxImpl *)iface;
 
     TRACE("(%p,%p)\n",This,pprot);
     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;
 
     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)
 {
  */
 HRESULT WINAPI CreateBindCtx(DWORD reserved, LPBC * ppbc)
 {
-    BindCtxImpl* newBindCtx = 0;
+    BindCtxImpl* newBindCtx;
     HRESULT hr;
     HRESULT hr;
-    IID riid=IID_IBindCtx;
 
     TRACE("(%d,%p)\n",reserved,ppbc);
 
 
     TRACE("(%d,%p)\n",reserved,ppbc);
 
@@ -582,9 +577,7 @@ HRESULT WINAPI CreateBindCtx(DWORD reserved, LPBC * ppbc)
         return hr;
     }
 
         return hr;
     }
 
-    hr = BindCtxImpl_QueryInterface((IBindCtx*)newBindCtx,&riid,(void**)ppbc);
-
-    return hr;
+    return BindCtxImpl_QueryInterface((IBindCtx*)newBindCtx,&IID_IBindCtx,(void**)ppbc);
 }
 
 /******************************************************************************
 }
 
 /******************************************************************************
index f67ae00..8b927f8 100644 (file)
@@ -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, &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);
 }
 
 /******************************************************************************
 }
 
 /******************************************************************************
index 275d875..f7d6ee6 100644 (file)
@@ -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.*/
     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 */
        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.*/
     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 */
        return E_INVALIDARG;
 
     /* Initialize the return parameter */
index ead53fe..2f26363 100644 (file)
@@ -655,17 +655,15 @@ static HRESULT DataCacheEntry_LoadData(DataCacheEntry *This)
 static HRESULT DataCacheEntry_CreateStream(DataCacheEntry *This,
                                            IStorage *storage, IStream **stream)
 {
 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? */
     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,
 }
 
 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.
    */
   /*
    * Perform a sanity check on the parameters.
    */
-  if ( (this==0) || (ppvObject==0) )
+  if ( ppvObject==0 )
     return E_INVALIDARG;
 
   /*
     return E_INVALIDARG;
 
   /*
@@ -892,30 +890,30 @@ static HRESULT WINAPI DataCache_NDIUnknown_QueryInterface(
   /*
    * Compare the riid with the interface IDs implemented by this object.
    */
   /*
    * 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;
   }
   {
     *ppvObject = iface;
   }
-  else if (memcmp(&IID_IDataObject, riid, sizeof(IID_IDataObject)) == 0)
+  else if (IsEqualIID(&IID_IDataObject, riid))
   {
     *ppvObject = &this->lpVtbl;
   }
   {
     *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;
   }
   {
     *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;
   }
   {
     *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;
   }
   {
     *ppvObject = &this->lpvtblIOleCache2;
   }
-  else if (memcmp(&IID_IOleCacheControl, riid, sizeof(IID_IOleCacheControl)) == 0)
+  else if ( IsEqualIID(&IID_IOleCacheControl, riid) )
   {
     *ppvObject = &this->lpvtblIOleCacheControl;
   }
   {
     *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.
    */
    * 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;
 
   /*
     return CLASS_E_NOAGGREGATION;
 
   /*
index d0a871f..b509bee 100644 (file)
@@ -1146,14 +1146,11 @@ static HRESULT WINAPI DefaultHandler_EnumFormatEtc(
            DWORD            dwDirection,
            IEnumFORMATETC** ppenumFormatEtc)
 {
            DWORD            dwDirection,
            IEnumFORMATETC** ppenumFormatEtc)
 {
-  HRESULT hres;
   DefaultHandler *This = impl_from_IDataObject(iface);
 
   TRACE("(%p, %x, %p)\n", iface, dwDirection, ppenumFormatEtc);
 
   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);
 }
 
 /************************************************************************
 }
 
 /************************************************************************
index 2665301..4279ca8 100644 (file)
@@ -51,7 +51,7 @@ HRESULT WINAPI enumx_QueryInterface(
     REFIID riid,
     void** ppvObject)
 {
     REFIID riid,
     void** ppvObject)
 {
-    if ( (This==0) || (ppvObject==0) )
+    if ( ppvObject==0 )
         return E_INVALIDARG;
 
     *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 (file)
index 0000000..29bd1b1
--- /dev/null
@@ -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 <assert.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <string.h>
+#include <limits.h>
+
+#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
+};
index 72f5913..0cbfc3a 100644 (file)
@@ -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.*/
     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 */
        return E_INVALIDARG;
 
     /* Initialize the return parameter */
@@ -421,10 +421,7 @@ FileMonikerImpl_Save(IMoniker* iface, IStream* pStm, BOOL fClearDirty)
     }
 
     if (!bWriteWide)
     }
 
     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;
 
     /* 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) */
     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_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);
 
     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_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);
 
     if (FAILED(hr))
         HeapFree(GetProcessHeap(),0,newFileMoniker);
 
index e961f90..3800de0 100644 (file)
@@ -187,9 +187,9 @@ StdGlobalInterfaceTable_RegisterInterfaceInGlobal(
   TRACE("About to marshal the interface\n");
 
   hres = CreateStreamOnHGlobal(0, TRUE, &stream);
   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);
   hres = CoMarshalInterface(stream, riid, pUnk, MSHCTX_INPROC, NULL, MSHLFLAGS_TABLESTRONG);
-  if (hres)
+  if (hres != S_OK)
   {
     IStream_Release(stream);
     return hres;
   {
     IStream_Release(stream);
     return hres;
@@ -281,7 +281,7 @@ StdGlobalInterfaceTable_GetInterfaceFromGlobal(
 
   LeaveCriticalSection(&git_section);
 
 
   LeaveCriticalSection(&git_section);
 
-  if (hres) {
+  if (hres != S_OK) {
     WARN("Failed to clone stream with error 0x%08x\n", hres);
     return hres;
   }
     WARN("Failed to clone stream with error 0x%08x\n", hres);
     return hres;
   }
index 41989f3..f570167 100644 (file)
@@ -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};
 
 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',
 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;
 }
 
         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 WINAPI RegisterDragDrop(HWND hwnd, LPDROPTARGET pDropTarget)
 {
   DWORD pid = 0;
+  HRESULT hr;
+  IStream *stream;
+  HANDLE map;
 
   TRACE("(%p,%p)\n", hwnd, pDropTarget);
 
 
   TRACE("(%p,%p)\n", hwnd, pDropTarget);
 
@@ -309,13 +436,40 @@ HRESULT WINAPI RegisterDragDrop(HWND hwnd, LPDROPTARGET pDropTarget)
   }
 
   /* check if the window is already registered */
   }
 
   /* check if the window is already registered */
-  if (OLEDD_FindDropTarget(hwnd))
+  if (is_droptarget(hwnd))
     return DRAGDROP_E_ALREADYREGISTERED;
 
     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)
 {
  */
 HRESULT WINAPI RevokeDragDrop(HWND hwnd)
 {
-  IDropTarget* droptarget;
+  HANDLE map;
+  IStream *stream;
+  IDropTarget *drop_target;
+  HRESULT hr;
 
   TRACE("(%p)\n", hwnd);
 
 
   TRACE("(%p)\n", hwnd);
 
@@ -334,13 +491,24 @@ HRESULT WINAPI RevokeDragDrop(HWND hwnd)
   }
 
   /* no registration data */
   }
 
   /* no registration data */
-  if (!(droptarget = OLEDD_FindDropTarget(hwnd)))
+  if (!(map = get_droptarget_handle(hwnd)))
     return DRAGDROP_E_NOTREGISTERED;
 
     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_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;
        * Find-out if there is a drag target under the mouse
        */
       HWND next_target_wnd = hwndNewTarget;
-      IDropTarget *new_target;
-      DWORD pid;
 
       trackerInfo->curTargetHWND = hwndNewTarget;
 
 
       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;
 
 
       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
 
       /*
        * 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;
         {
           trackerInfo->curDragTargetHWND = 0;
           trackerInfo->curTargetHWND     = 0;
+          IDropTarget_Release(trackerInfo->curDragTarget);
           trackerInfo->curDragTarget     = 0;
         }
       }
           trackerInfo->curDragTarget     = 0;
         }
       }
@@ -2027,6 +2183,7 @@ static void OLEDD_TrackMouseMove(TrackerWindowInfo* trackerInfo)
        */
       trackerInfo->curDragTargetHWND = 0;
       trackerInfo->curTargetHWND     = 0;
        */
       trackerInfo->curDragTargetHWND = 0;
       trackerInfo->curTargetHWND     = 0;
+      if(trackerInfo->curDragTarget) IDropTarget_Release(trackerInfo->curDragTarget);
       trackerInfo->curDragTarget     = 0;
     }
   }
       trackerInfo->curDragTarget     = 0;
     }
   }
diff --git a/reactos/dll/win32/ole32/ole2thk.spec b/reactos/dll/win32/ole32/ole2thk.spec
deleted file mode 100644 (file)
index 7e64f55..0000000
+++ /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
index 02d91d7..b7ad190 100644 (file)
@@ -35,6 +35,7 @@
        <file>dictionary.c</file>
        <file>enumx.c</file>
        <file>errorinfo.c</file>
        <file>dictionary.c</file>
        <file>enumx.c</file>
        <file>errorinfo.c</file>
+       <file>filelockbytes.c</file>
        <file>filemoniker.c</file>
        <file>ftmarshal.c</file>
        <file>git.c</file>
        <file>filemoniker.c</file>
        <file>ftmarshal.c</file>
        <file>git.c</file>
@@ -53,7 +54,6 @@
        <file>pointermoniker.c</file>
        <file>regsvr.c</file>
        <file>rpc.c</file>
        <file>pointermoniker.c</file>
        <file>regsvr.c</file>
        <file>rpc.c</file>
-       <file>stg_bigblockfile.c</file>
        <file>stg_prop.c</file>
        <file>stg_stream.c</file>
        <file>storage32.c</file>
        <file>stg_prop.c</file>
        <file>stg_stream.c</file>
        <file>storage32.c</file>
index 584e796..7e131ae 100644 (file)
@@ -615,8 +615,8 @@ static HRESULT WINAPI DataAdviseHolder_QueryInterface(
   /*
    * Compare the riid with the interface IDs implemented by this object.
    */
   /*
    * 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;
   }
   {
     *ppvObject = iface;
   }
diff --git a/reactos/dll/win32/ole32/stg_bigblockfile.c b/reactos/dll/win32/ole32/stg_bigblockfile.c
deleted file mode 100644 (file)
index 77abbf6..0000000
+++ /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 <assert.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <string.h>
-#include <limits.h>
-
-#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;
-}
index bfecbc7..1fdb963 100644 (file)
@@ -517,7 +517,7 @@ static HRESULT WINAPI StgStreamImpl_Commit(
     return STG_E_REVERTED;
   }
 
     return STG_E_REVERTED;
   }
 
-  return S_OK;
+  return StorageBaseImpl_Flush(This->parentStorage);
 }
 
 /***
 }
 
 /***
index 98df144..185b8b0 100644 (file)
@@ -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);
                                                           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);
 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)
 {
   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,
 }
 
 static HRESULT StorageImpl_WriteAt(StorageImpl* This,
@@ -336,7 +337,7 @@ static HRESULT StorageImpl_WriteAt(StorageImpl* This,
   const ULONG    size,
   ULONG*         bytesWritten)
 {
   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);
     }
         entryIndex,
         emptyData);
     }
+
+    StorageImpl_SaveFileHeader(storage);
   }
 
   UpdateRawDirEntry(currentData, newData);
   }
 
   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
  *
  * 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] */
 {
  */
 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;
 }
 
   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.
  */
 /*
  * Virtual function table for the IStorage32Impl class.
  */
@@ -2610,6 +2625,8 @@ static const StorageBaseImplVtbl StorageImpl_BaseVtbl =
 {
   StorageImpl_Destroy,
   StorageImpl_Invalidate,
 {
   StorageImpl_Destroy,
   StorageImpl_Invalidate,
+  StorageImpl_Flush,
+  StorageImpl_GetFilename,
   StorageImpl_CreateDirEntry,
   StorageImpl_BaseWriteDirEntry,
   StorageImpl_BaseReadDirEntry,
   StorageImpl_CreateDirEntry,
   StorageImpl_BaseWriteDirEntry,
   StorageImpl_BaseReadDirEntry,
@@ -2634,7 +2651,6 @@ static HRESULT StorageImpl_Construct(
   HRESULT     hr = S_OK;
   DirEntry currentEntry;
   DirRef      currentEntryRef;
   HRESULT     hr = S_OK;
   DirEntry currentEntry;
   DirRef      currentEntryRef;
-  WCHAR fullpath[MAX_PATH];
 
   if ( FAILED( validateSTGM(openFlags) ))
     return STG_E_INVALIDFLAG;
 
   if ( FAILED( validateSTGM(openFlags) ))
     return STG_E_INVALIDFLAG;
@@ -2658,40 +2674,22 @@ static HRESULT StorageImpl_Construct(
 
   This->base.reverted = 0;
 
 
   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;
   /*
    * 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;
   if (create)
   {
     ULARGE_INTEGER size;
@@ -2727,7 +2725,7 @@ static HRESULT StorageImpl_Construct(
      */
     size.u.HighPart = 0;
     size.u.LowPart  = This->bigBlockSize * 3;
      */
     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
 
     /*
      * Initialize the big block depot
@@ -2871,9 +2869,9 @@ static void StorageImpl_Destroy(StorageBaseImpl* iface)
   int i;
   TRACE("(%p)\n", This);
 
   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);
 
   BlockChainStream_Destroy(This->smallBlockRootChain);
   BlockChainStream_Destroy(This->rootBlockChain);
@@ -2882,11 +2880,18 @@ static void StorageImpl_Destroy(StorageBaseImpl* iface)
   for (i=0; i<BLOCKCHAIN_CACHE_SIZE; i++)
     BlockChainStream_Destroy(This->blockChainCache[i]);
 
   for (i=0; i<BLOCKCHAIN_CACHE_SIZE; i++)
     BlockChainStream_Destroy(This->blockChainCache[i]);
 
-  if (This->bigBlockFile)
-    BIGBLOCKFILE_Destructor(This->bigBlockFile);
+  if (This->lockBytes)
+    ILockBytes_Release(This->lockBytes);
   HeapFree(GetProcessHeap(), 0, This);
 }
 
   HeapFree(GetProcessHeap(), 0, This);
 }
 
+static HRESULT StorageImpl_Flush(StorageBaseImpl* iface)
+{
+  StorageImpl *This = (StorageImpl*) iface;
+
+  return ILockBytes_Flush(This->lockBytes);
+}
+
 /******************************************************************************
  *      Storage32Impl_GetNextFreeBigBlock
  *
 /******************************************************************************
  *      Storage32Impl_GetNextFreeBigBlock
  *
@@ -2906,6 +2911,7 @@ static ULONG StorageImpl_GetNextFreeBigBlock(
   int   depotIndex        = 0;
   ULONG freeBlock         = BLOCK_UNUSED;
   ULARGE_INTEGER neededSize;
   int   depotIndex        = 0;
   ULONG freeBlock         = BLOCK_UNUSED;
   ULARGE_INTEGER neededSize;
+  STATSTG statstg;
 
   depotIndex = This->prevFreeBlock / blocksPerDepot;
   depotBlockOffset = (This->prevFreeBlock % blocksPerDepot) * sizeof(ULONG);
 
   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;
    * 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;
 
 
   This->prevFreeBlock = freeBlock;
 
@@ -3465,6 +3475,7 @@ static void StorageImpl_SaveFileHeader(
   HRESULT hr;
   ULARGE_INTEGER offset;
   DWORD bytes_read, bytes_written;
   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.
 
   /*
    * 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 (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.
    */
   /*
    * 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));
      * 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.
    */
   }
 
   /*
    * 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,
   StorageUtl_WriteWord(
     headerBigBlock,
     OFFSET_BIGBLOCKSIZEBITS,
@@ -3511,6 +3540,23 @@ static void StorageImpl_SaveFileHeader(
     OFFSET_SMALLBLOCKSIZEBITS,
     This->smallBlockSizeBits);
 
     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,
   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;
 
   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. */
   /* 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))
   {
 
   if (SUCCEEDED(hr))
   {
@@ -4504,6 +4553,11 @@ static HRESULT WINAPI TransactedSnapshotImpl_Commit(
       root_entry->transactedParentEntry, &data);
   }
 
       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. */
   if (SUCCEEDED(hr))
   {
     /* Destroy the old now-orphaned data. */
@@ -4543,6 +4597,9 @@ static HRESULT WINAPI TransactedSnapshotImpl_Commit(
     TransactedSnapshotImpl_DestroyTemporaryCopy(This, DIRENTRY_NULL);
   }
 
     TransactedSnapshotImpl_DestroyTemporaryCopy(This, DIRENTRY_NULL);
   }
 
+  if (SUCCEEDED(hr))
+    hr = StorageBaseImpl_Flush(This->transactedParent);
+
   return hr;
 }
 
   return hr;
 }
 
@@ -4606,6 +4663,19 @@ static void TransactedSnapshotImpl_Destroy( StorageBaseImpl *iface)
   HeapFree(GetProcessHeap(), 0, This);
 }
 
   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)
 {
 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_Destroy,
   TransactedSnapshotImpl_Invalidate,
+  TransactedSnapshotImpl_Flush,
+  TransactedSnapshotImpl_GetFilename,
   TransactedSnapshotImpl_CreateDirEntry,
   TransactedSnapshotImpl_WriteDirEntry,
   TransactedSnapshotImpl_ReadDirEntry,
   TransactedSnapshotImpl_CreateDirEntry,
   TransactedSnapshotImpl_WriteDirEntry,
   TransactedSnapshotImpl_ReadDirEntry,
@@ -4886,8 +4958,6 @@ static HRESULT TransactedSnapshotImpl_Construct(StorageBaseImpl *parentStorage,
 
     (*result)->base.openFlags = parentStorage->openFlags;
 
 
     (*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);
     /* 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);
 }
 
   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)
 {
 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] */
 {
   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_Destroy,
   StorageInternalImpl_Invalidate,
+  StorageInternalImpl_Flush,
+  StorageInternalImpl_GetFilename,
   StorageInternalImpl_CreateDirEntry,
   StorageInternalImpl_WriteDirEntry,
   StorageInternalImpl_ReadDirEntry,
   StorageInternalImpl_CreateDirEntry,
   StorageInternalImpl_WriteDirEntry,
   StorageInternalImpl_ReadDirEntry,
@@ -5565,33 +5652,26 @@ void StorageUtl_CopyDirEntryToSTATSTG(
   const DirEntry*       source,
   int                   statFlags)
 {
   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
    */
   /*
    * 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 =
   {
     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)
   }
 
   switch (source->stgType)
index 19f3f2d..9e7fe10 100644 (file)
@@ -11,6 +11,7 @@
  *
  * Copyright 1998,1999 Francis Beaudet
  * Copyright 1998,1999 Thuy Nguyen
  *
  * 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
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
 /*
  * Definitions for the file format offsets.
  */
 /*
  * 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_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;
 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;
 };
 
   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
 
 /*************************************************************************
  * Ole Convert support
@@ -240,9 +221,6 @@ struct StorageBaseImpl
    */
   DWORD stateBits;
 
    */
   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 */
   /*
   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*);
 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*);
   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);
 }
 
   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)
 {
 static inline HRESULT StorageBaseImpl_CreateDirEntry(StorageBaseImpl *This,
   const DirEntry *newData, DirRef *index)
 {
@@ -351,13 +341,6 @@ struct StorageImpl
 {
   struct StorageBaseImpl base;
 
 {
   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
    */
   /*
    * File header
    */
@@ -391,10 +374,7 @@ struct StorageImpl
   BlockChainStream* blockChainCache[BLOCKCHAIN_CACHE_SIZE];
   UINT blockChainToEvict;
 
   BlockChainStream* blockChainCache[BLOCKCHAIN_CACHE_SIZE];
   UINT blockChainToEvict;
 
-  /*
-   * Pointer to the big block file abstraction
-   */
-  BigBlockFile* bigBlockFile;
+  ILockBytes* lockBytes;
 };
 
 HRESULT StorageImpl_ReadRawDirEntry(
 };
 
 HRESULT StorageImpl_ReadRawDirEntry(
index 7f0180b..70b8deb 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "Èñòèíà"
   IDS_FALSE "Ëúæà"
 {
   IDS_TRUE  "Èñòèíà"
   IDS_FALSE "Ëúæà"
similarity index 73%
rename from reactos/dll/win32/ole32/version.rc
rename to reactos/dll/win32/oleaut32/oleaut32_Cy.rc
index fb85ade..af94280 100644 (file)
@@ -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
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
  * 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 <wine/wine_common_ver.rc>
+LANGUAGE LANG_WELSH, SUBLANG_DEFAULT
+
+STRINGTABLE
+{
+  IDS_TRUE  "Gwir"
+  IDS_FALSE "Ffug"
+  IDS_YES   "Ydw"
+  IDS_NO    "Dim"
+  IDS_ON    "Ar"
+  IDS_OFF   "Off"
+}
index 48be0b7..680143b 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "Pravda"
   IDS_FALSE "Nepravda"
 {
   IDS_TRUE  "Pravda"
   IDS_FALSE "Nepravda"
index e28922f..1f54db3 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "Sand"
   IDS_FALSE "Falsk"
 {
   IDS_TRUE  "Sand"
   IDS_FALSE "Falsk"
index 1dbee3e..61a3c26 100644 (file)
@@ -24,7 +24,7 @@
 
 LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "Wahr"
   IDS_FALSE "Falsch"
 {
   IDS_TRUE  "Wahr"
   IDS_FALSE "Falsch"
index a033795..7374504 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_GREEK, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_GREEK, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "ÁëçèÝò"
   IDS_FALSE "ØåõäÝò"
 {
   IDS_TRUE  "ÁëçèÝò"
   IDS_FALSE "ØåõäÝò"
index 6a98642..f352004 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "True"
   IDS_FALSE "False"
 {
   IDS_TRUE  "True"
   IDS_FALSE "False"
index 5c187db..eeb3d90 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "Verdadero"
   IDS_FALSE "Falso"
 {
   IDS_TRUE  "Verdadero"
   IDS_FALSE "Falso"
index d6136ef..1583bd1 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "Vrai"
   IDS_FALSE "Faux"
 {
   IDS_TRUE  "Vrai"
   IDS_FALSE "Faux"
index ec3b982..5705441 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "Igaz"
   IDS_FALSE "Hamis"
 {
   IDS_TRUE  "Igaz"
   IDS_FALSE "Hamis"
index 69fa31a..561675c 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "Vero"
   IDS_FALSE "Falso"
 {
   IDS_TRUE  "Vero"
   IDS_FALSE "Falso"
index 5413805..a91be61 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "Áø½Ç"
   IDS_FALSE "°ÅÁþ"
 {
   IDS_TRUE  "Áø½Ç"
   IDS_FALSE "°ÅÁþ"
index c568d93..1eca35f 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "Tiesa"
   IDS_FALSE "Netiesa"
 {
   IDS_TRUE  "Tiesa"
   IDS_FALSE "Netiesa"
index e2ae3de..513ba61 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "Waar"
   IDS_FALSE "Onwaar"
 {
   IDS_TRUE  "Waar"
   IDS_FALSE "Onwaar"
index 1f99f7b..f1b6d63 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL
 
 
 LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "Sann"
   IDS_FALSE "Usann"
 {
   IDS_TRUE  "Sann"
   IDS_FALSE "Usann"
index 7d34796..f80bc80 100644 (file)
@@ -23,7 +23,7 @@
 
 LANGUAGE LANG_POLISH, SUBLANG_DEFAULT 
 
 
 LANGUAGE LANG_POLISH, SUBLANG_DEFAULT 
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "Prawda"
   IDS_FALSE "Fa³sz"
 {
   IDS_TRUE  "Prawda"
   IDS_FALSE "Fa³sz"
index de008bb..484990d 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "Verdadeiro"
   IDS_FALSE "Falso"
 {
   IDS_TRUE  "Verdadeiro"
   IDS_FALSE "Falso"
index 3a37a69..1b80fa2 100644 (file)
@@ -23,7 +23,7 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
 
 #pragma code_page(65001)
 
 
 #pragma code_page(65001)
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "Adevărat"
   IDS_FALSE "Fals"
 {
   IDS_TRUE  "Adevărat"
   IDS_FALSE "Fals"
index e7c3107..1545bff 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "Правда"
   IDS_FALSE "Ложь"
 {
   IDS_TRUE  "Правда"
   IDS_FALSE "Ложь"
index 32a80ad..bf4e995 100644 (file)
@@ -24,7 +24,7 @@
 
 LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "Da"
   IDS_FALSE "Ne"
 {
   IDS_TRUE  "Da"
   IDS_FALSE "Ne"
index 4362a06..08bee95 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
 
 
 LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "Sant"
   IDS_FALSE "Falskt"
 {
   IDS_TRUE  "Sant"
   IDS_FALSE "Falskt"
index 8fcf212..0cc3831 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_THAI, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_THAI, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "¨ÃÔ§"
   IDS_FALSE "äÁè¨ÃÔ§"
 {
   IDS_TRUE  "¨ÃÔ§"
   IDS_FALSE "äÁè¨ÃÔ§"
index 08d841a..a2dd130 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "Doðru"
   IDS_FALSE "Yanlýþ"
 {
   IDS_TRUE  "Doðru"
   IDS_FALSE "Yanlýþ"
index d51b06e..56bf352 100644 (file)
@@ -27,7 +27,7 @@
 
 LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
 
 
 LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "Істина"
   IDS_FALSE "Неправда"
 {
   IDS_TRUE  "Істина"
   IDS_FALSE "Неправда"
index bbb9e06..7257f83 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
 
 
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "真"
   IDS_FALSE "假"
 {
   IDS_TRUE  "真"
   IDS_FALSE "假"
@@ -37,7 +37,7 @@ STRINGTABLE DISCARDABLE
 
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
 
 
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
   IDS_TRUE  "真"
   IDS_FALSE "假"
 {
   IDS_TRUE  "真"
   IDS_FALSE "假"
index 7a56e93..7fac039 100644 (file)
@@ -6017,12 +6017,15 @@ static HRESULT WINAPI ITypeInfo_fnInvoke(
     unsigned int var_index;
     TYPEKIND type_kind;
     HRESULT hres;
     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
     );
 
 
     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");
     if (!pDispParams)
     {
         ERR("NULL pDispParams not allowed\n");
@@ -6491,7 +6494,7 @@ func_fail:
             WARN("Could not search inherited interface!\n");
         }
     }
             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;
 }
 
     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;
     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;
 
     *pDescKind = DESCKIND_NONE;
     pBindPtr->lpfuncdesc = NULL;
@@ -7716,7 +7719,7 @@ static HRESULT WINAPI ITypeComp_fnBind(
         }
         WARN("Could not search inherited interface!\n");
     }
         }
         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;
 }
 
     return hr;
 }
 
index aa14d22..1096ea8 100644 (file)
@@ -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
  *
  *
  * 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:
     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_I4:
     case VT_R4:
+    case VT_UI4:
     case VT_INT:
     case VT_UINT:
     case VT_HRESULT:
     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: {
     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; i<SysStringLen(V_BSTR(&v)); i++) {
+            if(V_BSTR(&v)[i] <= 0x7f)
+                data[i+6] = V_BSTR(&v)[i];
+            else
+                data[i+6] = '?';
+        }
+        WideCharToMultiByte(CP_ACP, 0, V_BSTR(&v), SysStringLen(V_BSTR(&v)), &data[6], len-6, NULL, NULL);
+        for(i=6+SysStringLen(V_BSTR(&v)); i<len; i++)
+            data[i] = 0x57;
+
+        /* Check if the data was already allocated */
+        for(*encoded_value=0; *encoded_value<=This->typelib_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:
     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;
        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;
 
     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;
     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;
 
     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;
 
     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:
        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. */
     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];
 
        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) {
        }
 
        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];
            } 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];
 
            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;
        }
 
            typedata[1] = target_type;
        }
 
@@ -1108,17 +1166,34 @@ static int ctl2_encode_typedesc(
        break;
       }
     case VT_USERDEFINED:
        break;
       }
     case VT_USERDEFINED:
+      {
+       const MSFT_TypeInfoBase *basetype;
+       INT basevt = 0x7fff;
+
        TRACE("USERDEFINED.\n");
        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];
        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];
 
        }
 
        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;
        }
 
            typedata[1] = tdesc->u.hreftype;
        }
 
@@ -1126,6 +1201,7 @@ static int ctl2_encode_typedesc(
        *width = 0;
        *alignment = 1;
        break;
        *width = 0;
        *alignment = 1;
        break;
+      }
 
     default:
        FIXME("Unrecognized type %d.\n", tdesc->vt);
 
     default:
        FIXME("Unrecognized type %d.\n", tdesc->vt);
@@ -1196,131 +1272,6 @@ static HRESULT ctl2_find_typeinfo_from_offset(
     return TYPE_E_ELEMENTNOTFOUND;
 }
 
     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; i<SysStringLen(V_BSTR(&v)); i++) {
-            if(V_BSTR(&v)[i] <= 0x7f)
-                data[i+6] = V_BSTR(&v)[i];
-            else
-                data[i+6] = '?';
-        }
-        WideCharToMultiByte(CP_ACP, 0, V_BSTR(&v), SysStringLen(V_BSTR(&v)), &data[6], len-6, NULL, NULL);
-        for(i=6+SysStringLen(V_BSTR(&v)); i<len; i++)
-            data[i] = 0x57;
-
-        /* Check if the data was already allocated */
-        for(*encoded_value=0; *encoded_value<=This->typelib_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
  *
 /****************************************************************************
  *      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) {
     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);
 
                         &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;
 
 {
     ICreateTypeInfo2Impl *This = (ICreateTypeInfo2Impl *)iface;
 
+    HRESULT status = S_OK;
     CyclicList *insert;
     INT *typedata;
     int var_datawidth;
     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;
     /* 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;
 
     /* 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);
 
                         &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;
 
     /* 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;
 }
 
 /******************************************************************************
 }
 
 /******************************************************************************
index b4bff4f..14ae16b 100644 (file)
@@ -4406,10 +4406,9 @@ static LRESULT RichEditWndProc_common(HWND hWnd, UINT msg, WPARAM wParam,
       texthost = ME_CreateTextHost(hWnd, pcs, FALSE);
       return texthost != NULL;
     }
       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);
     }
   }
 
     }
   }
 
index 107fadf..8c87145 100644 (file)
@@ -406,12 +406,44 @@ ME_StreamOutRTFTableProps(ME_TextEditor *editor, ME_OutStream *pStream,
 
 static BOOL
 ME_StreamOutRTFParaProps(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;
 {
   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;
   /* 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 (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)
     }
 
     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))
     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) {
     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 (file)
index 0000000..749c849
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2010 Alexander N. Sørnes <alex@thehandofagony.com>
+ *
+ * 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
+    }
+}
index 2196eb9..b3db012 100644 (file)
@@ -820,5 +820,5 @@ void DocHost_Release(DocHost *This)
 
     ConnectionPointContainer_Destroy(&This->cps);
 
 
     ConnectionPointContainer_Destroy(&This->cps);
 
-    CoTaskMemFree(This->url);
+    heap_free(This->url);
 }
 }
index 7b07de6..9d661ca 100644 (file)
@@ -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);
 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)
 }
 
 static HRESULT WINAPI InternetExplorer_get_FullScreen(IWebBrowser2 *iface, VARIANT_BOOL *pbFullScreen)
index e4e7618..fa643fe 100644 (file)
@@ -32,6 +32,8 @@
 #include "oleidl.h"
 
 #include "shdocvw.h"
 #include "oleidl.h"
 
 #include "shdocvw.h"
+#include "mshtmcid.h"
+#include "shellapi.h"
 
 #include "wine/debug.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 };
 
 
 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);
 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;
 }
 
     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)
 {
 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));
         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);
     }
     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)
 {
 
 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,
     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);
         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;
 
     if(!*cmdline) {
         IWebBrowser2_GoHome(wb);
     }else {
         VARIANT var_url;
         DWORD len;
+        int cmdlen;
 
         if(!strncasecmp(cmdline, "-nohome", 7))
             cmdline += 7;
 
         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;
 
 
         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);
         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);
 
         /* navigate to the first page */
         IWebBrowser2_Navigate2(wb, &var_url, NULL, NULL, NULL, NULL);
index 32dab6d..8c17873 100644 (file)
@@ -361,7 +361,7 @@ static HRESULT WINAPI PersistFile_Load(IPersistFile *pFile, LPCOLESTR pszFileNam
             {
                 CoTaskMemFree(url);
                 len *= 2;
             {
                 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);
                 if (url == NULL)
                     break;
                 r = GetPrivateProfileStringW(str_header, str_URL, NULL, url, len, pszFileName);
index 3310cba..6d73fd9 100644 (file)
@@ -111,6 +111,23 @@ static void set_status_text(BindStatusCallback *This, LPCWSTR str)
         IOleInPlaceFrame_SetStatusText(This->doc_host->frame, 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,
 #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) {
           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;
     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;
                               IBindStatusCallback *callback)
 {
     IUnknown *unk = NULL;
+    WCHAR *display_name;
     HRESULT hres;
 
     if(mon) {
     HRESULT hres;
 
     if(mon) {
@@ -512,10 +532,16 @@ static HRESULT bind_to_object(DocHost *This, IMoniker *mon, LPCWSTR url, IBindCt
             return hres;
     }
 
             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);
         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));
 
     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;
 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;
     BSTR empty_str;
-    DWORD size;
     HRESULT hres;
 
     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;
         return;
-    memcpy(new_url, url, size);
-    CoTaskMemFree(This->url);
-    This->url = new_url;
 
     empty_str = SysAllocStringLen(NULL, 0);
 
 
     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);
 
                 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));
     }
         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 (file)
index 0000000..31a7005
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Resource identifiers for shdocvw.dll
+ *
+ * Copyright 2010 Alexander N. Sørnes <alex@thehandofagony.com>
+ *
+ * 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>
+#include <winuser.h>
+
+#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
index 1af0365..d1787cb 100644 (file)
@@ -40,6 +40,8 @@
 #include "htiframe.h"
 
 #include "wine/unicode.h"
 #include "htiframe.h"
 
 #include "wine/unicode.h"
+#include "resource.h"
+
 
 /**********************************************************************
  * Shell Instance Objects
 
 /**********************************************************************
  * Shell Instance Objects
index bb4809b..e7276ff 100644 (file)
@@ -29,7 +29,9 @@
 LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
 
 /* @makedep: shdocvw_v1.tlb */
 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
 
 /* @makedep: shdocvw.inf */
 REGINST REGINST shdocvw.inf
+
+#include "En.rc"
index 5f332f3..2bf0e79 100644 (file)
@@ -3246,29 +3246,72 @@ BOOL WINAPI PlaySoundWrapW(LPCWSTR pszSound, HMODULE hmod, DWORD fdwSound)
 
 /*************************************************************************
  *      @      [SHLWAPI.294]
 
 /*************************************************************************
  *      @      [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]
  *
 }
 
 /*************************************************************************
  *      @      [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)
 {
  */
 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 */
 }
 
 /* INTERNAL: Map from HLS color space to RGB */
index c80099e..0dd60f8 100644 (file)
 #include "shlwapi_En.rc"
 #include "shlwapi_Es.rc"
 #include "shlwapi_Fi.rc"
 #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_It.rc"
 #include "shlwapi_Ko.rc"
 #include "shlwapi_Nl.rc"
+#include "shlwapi_No.rc"
 #include "shlwapi_Pl.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_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"
 
 /* UTF-8 */
 
 #include "shlwapi_De.rc"
 #include "shlwapi_Fr.rc"
+#include "shlwapi_Hu.rc"
 #include "shlwapi_Ja.rc"
 #include "shlwapi_Lt.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_Ro.rc"
 #include "shlwapi_Ru.rc"
 #include "shlwapi_Si.rc"
+#include "shlwapi_Zh.rc"
index 268a2e2..a277f50 100644 (file)
 @ stdcall AssocIsDangerous(long)
 @ stdcall AssocQueryKeyA(long long str ptr ptr)
 @ stdcall AssocQueryKeyW(long long wstr ptr ptr)
 @ 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)
 @ stdcall ChrCmpIA(long long)
 @ stdcall ChrCmpIW(long long)
 @ stdcall ColorAdjustLuma(long long long)
 @ stdcall StrStrA(str str)
 @ stdcall StrStrIA(str str)
 @ stdcall StrStrIW(wstr wstr)
 @ 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)
 @ stdcall StrStrW(wstr wstr)
 @ stdcall StrToIntA(str)
 @ stdcall StrToIntExA(str long ptr)
index 3bb418d..57859b2 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * English resources for shlwapi
+ * Danish resources for shlwapi
  *
  * Copyright 2008 Jens Albretsen
  *
  *
  * Copyright 2008 Jens Albretsen
  *
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
 
 
 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"
 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
 }
 
  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"
 {
     IDS_BYTES_FORMAT    "%ld bytes"
     IDS_TIME_INTERVAL_HOURS    " hr"
index 8980769..1f5063d 100644 (file)
@@ -24,7 +24,7 @@
 
 LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
 
 
 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"
 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
 }
 
  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"
 {
     IDS_BYTES_FORMAT    "%ld Bytes"
     IDS_TIME_INTERVAL_HOURS    " Std"
index 4e1d935..6aa91e5 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
 
 
 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"
 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
 }
 
  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"
 {
     IDS_BYTES_FORMAT    "%ld bytes"
     IDS_TIME_INTERVAL_HOURS    " hr"
index 8d351f6..b4e0c08 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
 
 
 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"
 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
 }
 
  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"
 {
     IDS_BYTES_FORMAT    "%ld bytes"
     IDS_TIME_INTERVAL_HOURS    " hr"
index 877228f..f58e218 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
 
 
 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"
 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
 }
 
  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"
 {
     IDS_BYTES_FORMAT    "%ld bytes"
     IDS_TIME_INTERVAL_HOURS    " hr"
index 745b4fd..fe850b5 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
 
 
 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"
 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
 }
 
  PUSHBUTTON L"&Non" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_BYTES_FORMAT    "%ld bytes"
 {
     IDS_BYTES_FORMAT    "%ld bytes"
-    IDS_TIME_INTERVAL_HOURS    " hr"
+    IDS_TIME_INTERVAL_HOURS    " h"
     IDS_TIME_INTERVAL_MINUTES  " min"
     IDS_TIME_INTERVAL_MINUTES  " min"
-    IDS_TIME_INTERVAL_SECONDS  " sec"
+    IDS_TIME_INTERVAL_SECONDS  " s"
 }
 }
index 56535e8..676b1d4 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Hungarian resources for shlwapi
  *
 /*
  * 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
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
 
 #include "resource.h"
 
 
 #include "resource.h"
 
+/* UTF-8 */
+#pragma code_page(65001)
+
 LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
 
 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
 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"&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
 }
 
  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"
 }
 }
index e7a984e..c02f292 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
 
 
 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"
 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
 }
 
  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"
 {
     IDS_BYTES_FORMAT    "%ld bytes"
     IDS_TIME_INTERVAL_HOURS    " hr"
index 4b9c6ae..c7554a9 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
 
 
 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"
 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
 }
 
  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"
 {
     IDS_BYTES_FORMAT    "%ld bytes"
     IDS_TIME_INTERVAL_HOURS    " hr"
index 3526cac..3f6b7c2 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
 
 
 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"
 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    "½Ã"
 {
     IDS_BYTES_FORMAT    "%ld ¹ÙÀÌÆ®"
     IDS_TIME_INTERVAL_HOURS    "½Ã"
index 264f6f6..2ccd5c8 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL
 
 
 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"
 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
 }
 
  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"
 {
     IDS_BYTES_FORMAT    "%ld baitai"
     IDS_TIME_INTERVAL_HOURS    " val"
index 0c9e3cb..e6bb91f 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
 
 
 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"
 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
 }
 
  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"
 {
     IDS_BYTES_FORMAT    "%ld bytes"
     IDS_TIME_INTERVAL_HOURS    " hr"
index 9a99ac3..3f7a998 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL
 
 
 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"
 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
 }
 
  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"
 {
     IDS_BYTES_FORMAT    "%ld byte"
     IDS_TIME_INTERVAL_HOURS    " hr"
index 8a0032c..9f429d1 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * English resources for shlwapi
+ * Polish resources for shlwapi
  *
  * Copyright 2004 Jon Griffiths
  * Copyright 2006 Mikolaj Zalewski
  *
  * Copyright 2004 Jon Griffiths
  * Copyright 2006 Mikolaj Zalewski
@@ -23,7 +23,7 @@
 
 LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
 
 
 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"
 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
 }
 
  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."
 {
     IDS_BYTES_FORMAT    "%ld bajtów"
     IDS_TIME_INTERVAL_HOURS    " godz."
index 9974fd6..2080fc5 100644 (file)
@@ -2,7 +2,8 @@
  * Portuguese resources for shlwapi
  *
  * Copyright 2004 Marcelo Duarte
  * 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
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
 
 #include "resource.h"
 
 
 #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
 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"&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"
 {
     IDS_BYTES_FORMAT    "%ld bytes"
     IDS_TIME_INTERVAL_HOURS    " hr"
index 800f259..85c6a7d 100644 (file)
@@ -23,7 +23,7 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
 
 #pragma code_page(65001)
 
 
 #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"
 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
 }
 
  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"
 {
     IDS_BYTES_FORMAT    "%ld octeți"
     IDS_TIME_INTERVAL_HOURS    " ore"
index 42a5c38..e6cce3f 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
 
 
 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"
 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
 }
 
  PUSHBUTTON L"&Нет" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_BYTES_FORMAT    "%ld байт"
     IDS_TIME_INTERVAL_HOURS    " час"
 {
     IDS_BYTES_FORMAT    "%ld байт"
     IDS_TIME_INTERVAL_HOURS    " час"
index 820b6ce..5e6bb34 100644 (file)
@@ -24,7 +24,7 @@
 
 LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT
 
 
 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"
 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
 }
 
  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"
 {
     IDS_BYTES_FORMAT    "%ld bajtov"
     IDS_TIME_INTERVAL_HOURS    " ur"
index c44ca3f..da5d215 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
 
 
 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"
 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
 }
 
  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."
 {
     IDS_BYTES_FORMAT    "%ld bajtov"
     IDS_TIME_INTERVAL_HOURS    " hod."
index 6a0d52b..29711e4 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
 
 
 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"
 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
 }
 
  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"
 {
     IDS_BYTES_FORMAT    "%ld byte"
     IDS_TIME_INTERVAL_HOURS    " h"
index 5851596..2492e27 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
 
 
 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"
 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
 }
 
  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"
 {
     IDS_BYTES_FORMAT    "%ld bytes"
     IDS_TIME_INTERVAL_HOURS    " hr"
index c14a7ce..a3c42b4 100644 (file)
@@ -22,7 +22,7 @@
 
 LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
 
 
 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"
 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
 }
 
  PUSHBUTTON L"&ͳ" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_BYTES_FORMAT    "%ld áàéò"
     IDS_TIME_INTERVAL_HOURS    " ãîä"
 {
     IDS_BYTES_FORMAT    "%ld áàéò"
     IDS_TIME_INTERVAL_HOURS    " ãîä"
index 0a1d9a6..302a7ad 100644 (file)
@@ -25,7 +25,7 @@
 
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
 
 
 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"
 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
 }
 
  PUSHBUTTON L"否(&N)" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_BYTES_FORMAT    "%ld 字节"
     IDS_TIME_INTERVAL_HOURS    " 小时"
 {
     IDS_BYTES_FORMAT    "%ld 字节"
     IDS_TIME_INTERVAL_HOURS    " 小时"
@@ -49,7 +49,7 @@ STRINGTABLE DISCARDABLE
 
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
 
 
 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"
 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
 }
 
  PUSHBUTTON L"否(&N)" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP
 }
 
-STRINGTABLE DISCARDABLE
+STRINGTABLE
 {
     IDS_BYTES_FORMAT    "%ld 字節"
     IDS_TIME_INTERVAL_HOURS    " 小時"
 {
     IDS_BYTES_FORMAT    "%ld 字節"
     IDS_TIME_INTERVAL_HOURS    " 小時"
index a0269b6..6102f3c 100644 (file)
@@ -584,7 +584,9 @@ LPSTR WINAPI StrStrA(LPCSTR lpszStr, LPCSTR lpszSearch)
  */
 LPWSTR WINAPI StrStrW(LPCWSTR lpszStr, LPCWSTR 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 );
 }
 
     return strstrW( lpszStr, lpszSearch );
 }
 
@@ -707,6 +709,75 @@ LPWSTR WINAPI StrStrIW(LPCWSTR lpszStr, LPCWSTR lpszSearch)
   return NULL;
 }
 
   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.@]
  *
 /*************************************************************************
  * StrToIntA   [SHLWAPI.@]
  *
index d7a36db..2f09bc7 100644 (file)
@@ -276,10 +276,11 @@ HRESULT WINAPI UrlCanonicalizeW(LPCWSTR pszUrl, LPWSTR pszCanonicalized,
     LPWSTR lpszUrlCpy, wk2, mp, mp2;
     INT state;
     DWORD nByteLen, nLen, nWkLen;
     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 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',':','/','/','/'};
 
     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));
 
     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 = '\\';
     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++;
 
                     *wk2++ = *wk1;
                 wk1++;
 
-                if (*wk1 == '.') {
+                while (*wk1 == '.') {
                     TRACE("found '/.'\n");
                     if (wk1[1] == '/' || wk1[1] == '\\') {
                         /* case of /./ -> skip the ./ */
                         wk1 += 2;
                     }
                     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';
                 }
             }
             *wk2 = '\0';
index 9a54e11..fea7b21 100644 (file)
@@ -733,8 +733,18 @@ HRESULT WINAPI HlinkSimpleNavigateToMoniker(IMoniker *pmkTarget,
     LPCWSTR szLocation, LPCWSTR szTargetFrameName, IUnknown *pUnk,
     IBindCtx *pbc, IBindStatusCallback *pbsc, DWORD grfHLNF, DWORD dwReserved)
 {
     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;
 }
 
 /***********************************************************************
 }
 
 /***********************************************************************
index df5ca8b..82f48a0 100644 (file)
 #include "urlmon_main.h"
 #include "wine/debug.h"
 
 #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;
 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 {
 } Uri;
 
 typedef struct {
@@ -32,6 +56,1111 @@ typedef struct {
     LONG ref;
 } UriBuilder;
 
     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)
 
 #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);
 
 
     TRACE("(%p) ref=%d\n", This, ref);
 
-    if(!ref)
+    if(!ref) {
+        SysFreeString(This->raw_uri);
+        heap_free(This->canon_uri);
         heap_free(This);
         heap_free(This);
+    }
 
     return ref;
 }
 
     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);
 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;
 
     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(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)
 
         /* 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 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);
 }
 
 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;
 
     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;
 
     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);
 }
 
 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;
 
     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_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)
 }
 
 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)
 {
 
 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)
 {
 }
 
 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)
 }
 
 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);
 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);
 }
 
 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)
 {
 }
 
 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)
 {
 }
 
 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)
 }
 
 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);
 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)
 }
 
 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 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);
 
 
     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;
 
     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;
 }
     *ppURI = URI(ret);
     return S_OK;
 }
index 0a4f5b9..0018ae5 100644 (file)
@@ -185,6 +185,42 @@ typedef struct{
     WORD Component[1];
 }GSUB_Ligature;
 
     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[] =
 {
 /* 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;
 }
 
     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;
 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);
             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));
     }
         default:
             FIXME("We do not handle SubType %i\n",GET_BE_WORD(look->LookupType));
     }
index cb82f91..51fbbc0 100644 (file)
@@ -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;
 }
     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! */
-}
index 0f7b0aa..5e35870 100644 (file)
@@ -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)
 @ stdcall ScriptApplyDigitSubstitution(ptr ptr ptr)
 @ stdcall ScriptApplyLogicalWidth(ptr long long ptr ptr ptr ptr ptr ptr)
 @ stdcall ScriptBreak(ptr long ptr ptr)
index 2ecfeb9..d5c12eb 100644 (file)
@@ -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;
     if (lpszFilename && testFileExistenceA(curDir, lpszFilename, FALSE)) {
         if (lpszFilename && !testFileExistenceA(curDir, lpszFilename, TRUE))
            retval |= VFF_FILEINUSE;
index e793d0a..df0df62 100644 (file)
 #define VS_FILE_INFO 16
 
 #include "wine/unicode.h"
 #define VS_FILE_INFO 16
 
 #include "wine/unicode.h"
-#include "wine/winbase16.h"
 
 #include "wine/debug.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);
 
 
 WINE_DEFAULT_DEBUG_CHANNEL(ver);
 
 
index 854b337..9cdc8e5 100644 (file)
@@ -395,32 +395,52 @@ fail:
     return hr;
 }
 
     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;
 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;
     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;
 
     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;
 
     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);
     This->imagedata = HeapAlloc(GetProcessHeap(), 0, datasize);
-    if (!This->imagedata || !rledata)
+    if (!This->imagedata)
     {
         hr = E_OUTOFMEMORY;
         goto fail;
     {
         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_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;
     /* 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 */
         {
             /* 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 */
             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 */
             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;
                 break;
+            }
             default: /* absolute mode */
                 length = escape;
             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
         {
             }
         }
         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:
             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:
     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;
     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;
 {
     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;
     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;
 
     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;
 
     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);
     This->imagedata = HeapAlloc(GetProcessHeap(), 0, datasize);
-    if (!This->imagedata || !rledata)
+    if (!This->imagedata)
     {
         hr = E_OUTOFMEMORY;
         goto fail;
     {
         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_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;
     /* 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 */
         {
             /* 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 */
             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 */
             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;
                 break;
+            }
             default: /* absolute mode */
             default: /* absolute mode */
+            {
+                BYTE realsize=0;
                 length = escape;
                 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;
                 }
                     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
         {
             }
         }
         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;
             while (length-- && x < width)
             {
                 bgrdata[y*width + x++] = color1;
@@ -607,15 +669,12 @@ static HRESULT BmpFrameDecode_ReadRLE4(BmpDecoder* This)
     }
 
 end:
     }
 
 end:
-    HeapFree(GetProcessHeap(), 0, rledata);
-
     This->imagedatastart = This->imagedata + (height-1) * bytesperrow;
     This->stride = -bytesperrow;
 
     return S_OK;
 
 fail:
     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;
     HeapFree(GetProcessHeap(), 0, This->imagedata);
     This->imagedata = NULL;
     if (SUCCEEDED(hr)) hr = E_FAIL;
index 7c67390..d2a3a30 100644 (file)
@@ -12,6 +12,18 @@ DEFINE_GUID(MOUNTDEV_MOUNTED_DEVICE_GUID, 0x53F5630D, 0xB6BF, 0x11D0, 0x94, 0xF2
 #define MOUNTMGRCONTROLTYPE ((ULONG) 'm')
 #define MOUNTDEVCONTROLTYPE ((ULONG) 'M')
 
 #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 \
 #define IOCTL_MOUNTMGR_CREATE_POINT \
   CTL_CODE(MOUNTMGRCONTROLTYPE, 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
 #define IOCTL_MOUNTMGR_DELETE_POINTS \
index a1d261f..0ed66f5 100644 (file)
@@ -3305,6 +3305,9 @@ extern "C" {
 #define TVIF_SELECTEDIMAGE 0x20
 #define TVIF_CHILDREN 0x40
 #define TVIF_INTEGRAL 0x80
 #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
 #define TVIS_SELECTED 0x2
 #define TVIS_CUT 0x4
 #define TVIS_DROPHILITED 0x8
@@ -3365,19 +3368,22 @@ extern "C" {
     int iIntegral;
   } TVITEMEXA,*LPTVITEMEXA;
 
     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;
 #ifdef UNICODE
   typedef TVITEMEXW TVITEMEX;
   typedef LPTVITEMEXW LPTVITEMEX;
index 22026e2..1599a26 100644 (file)
@@ -40,13 +40,13 @@ enum SymTagEnum
    SymTagPointerType,
    SymTagArrayType,
    SymTagBaseType,
    SymTagPointerType,
    SymTagArrayType,
    SymTagBaseType,
-   SymTagTypedef,
+   SymTagTypedef, 
    SymTagBaseClass,
    SymTagFriend,
    SymTagBaseClass,
    SymTagFriend,
-   SymTagFunctionArgType,
-   SymTagFuncDebugStart,
+   SymTagFunctionArgType, 
+   SymTagFuncDebugStart, 
    SymTagFuncDebugEnd,
    SymTagFuncDebugEnd,
-   SymTagUsingNamespace,
+   SymTagUsingNamespace, 
    SymTagVTableShape,
    SymTagVTable,
    SymTagCustom,
    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,
     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 */
     /* 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,
     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,
     /* 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,
     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 */
     /* 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_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,
     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_ADJUSTOR,
    THUNK_ORDINAL_VCALL,
    THUNK_ORDINAL_PCODE,
-   THUNK_ORDINAL_LOAD
+   THUNK_ORDINAL_LOAD 
 } THUNK_ORDINAL;
 
 typedef enum CV_call_e
 } THUNK_ORDINAL;
 
 typedef enum CV_call_e
index 4fe51bc..2cf5d6d 100644 (file)
@@ -41,6 +41,19 @@ typedef struct _MilMatrix3x2D
     DOUBLE DY;
 } 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*);
 DWMAPI DwmEnableComposition(UINT);
 DWMAPI DwmEnableMMCSS(BOOL);
 DWMAPI DwmExtendFrameIntoClientArea(HWND,const MARGINS*);
index 223bcdd..bec8b3a 100644 (file)
@@ -319,6 +319,12 @@ BOOL WINAPI AssocIsDangerous(LPCWSTR);
 
 #endif /* NO_SHLWAPI_REG */
 
 
 #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
 
 /* Path functions */
 #ifndef NO_SHLWAPI_PATH
@@ -579,6 +585,11 @@ typedef enum {
     URL_SCHEME_MSSHELLROOTED,
     URL_SCHEME_MSSHELLIDLIST,
     URL_SCHEME_MSHELP,
     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;
 
     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);
 
 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);
 
 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 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)
 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 SHAutoComplete(HWND,DWORD);
 
 /* Threads */
+HRESULT WINAPI SHCreateThreadRef(LONG*, IUnknown**);
 HRESULT WINAPI SHGetThreadRef(IUnknown**);
 HRESULT WINAPI SHSetThreadRef(IUnknown*);
 HRESULT WINAPI SHReleaseThreadRef(void);
 HRESULT WINAPI SHGetThreadRef(IUnknown**);
 HRESULT WINAPI SHSetThreadRef(IUnknown*);
 HRESULT WINAPI SHReleaseThreadRef(void);