- Add localui from Wine
authorDmitry Chapyshev <dmitry@reactos.org>
Sat, 6 Dec 2008 12:09:14 +0000 (12:09 +0000)
committerDmitry Chapyshev <dmitry@reactos.org>
Sat, 6 Dec 2008 12:09:14 +0000 (12:09 +0000)
- Add baseaddress for localui
- Add localui to bootcd

svn path=/trunk/; revision=37893

23 files changed:
reactos/baseaddress.rbuild
reactos/boot/bootdata/packages/reactos.dff
reactos/dll/win32/localui/localui.c [new file with mode: 0644]
reactos/dll/win32/localui/localui.h [new file with mode: 0644]
reactos/dll/win32/localui/localui.rbuild [new file with mode: 0644]
reactos/dll/win32/localui/localui.rc [new file with mode: 0644]
reactos/dll/win32/localui/localui.spec [new file with mode: 0644]
reactos/dll/win32/localui/ui_Da.rc [new file with mode: 0644]
reactos/dll/win32/localui/ui_De.rc [new file with mode: 0644]
reactos/dll/win32/localui/ui_En.rc [new file with mode: 0644]
reactos/dll/win32/localui/ui_Fr.rc [new file with mode: 0644]
reactos/dll/win32/localui/ui_Ko.rc [new file with mode: 0644]
reactos/dll/win32/localui/ui_Nl.rc [new file with mode: 0644]
reactos/dll/win32/localui/ui_No.rc [new file with mode: 0644]
reactos/dll/win32/localui/ui_Pl.rc [new file with mode: 0644]
reactos/dll/win32/localui/ui_Pt.rc [new file with mode: 0644]
reactos/dll/win32/localui/ui_Ro.rc [new file with mode: 0644]
reactos/dll/win32/localui/ui_Ru.rc [new file with mode: 0644]
reactos/dll/win32/localui/ui_Si.rc [new file with mode: 0644]
reactos/dll/win32/localui/ui_Sv.rc [new file with mode: 0644]
reactos/dll/win32/localui/ui_Zh.rc [new file with mode: 0644]
reactos/dll/win32/win32.rbuild
reactos/media/doc/README.WINE

index e7b181d..e45862d 100644 (file)
@@ -32,6 +32,7 @@
   <property name="BASEADDRESS_QEDIT" value="0x611c0000" />
   <property name="BASEADDRESS_MODEMUI" value="0x61650000" />
   <property name="BASEADDRESS_MAPI32" value="0x62250000" />
+  <property name="BASEADDRESS_LOCALUI" value="0x62f70000" />
   <property name="BASEADDRESS_HDWWIZ" value="0x64d40000" />
   <property name="BASEADDRESS_TIMEDATE" value="0x64da0000" />
   <property name="BASEADDRESS_SYSDM" value="0x64dd0000" />
index 7ae5190..ee88ef1 100644 (file)
@@ -269,6 +269,7 @@ dll\win32\inetmib1\inetmib1.dll                     1
 dll\win32\iphlpapi\iphlpapi.dll                     1
 dll\win32\jscript\jscript.dll                       1
 dll\win32\kernel32\kernel32.dll                     1
+dll\win32\localui\localui.dll                       1
 dll\win32\lsasrv\lsasrv.dll                         1
 dll\win32\lz32\lz32.dll                             1
 dll\win32\mapi32\mapi32.dll                         1
diff --git a/reactos/dll/win32/localui/localui.c b/reactos/dll/win32/localui/localui.c
new file mode 100644 (file)
index 0000000..2acfc7e
--- /dev/null
@@ -0,0 +1,698 @@
+/*
+ * Implementation of the Local Printmonitor User Interface
+ *
+ * Copyright 2007 Detlef Riekenberg
+ *
+ * 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 <stdarg.h>
+
+#define NONAMELESSUNION
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winreg.h"
+#include "winuser.h"
+
+#include "winspool.h"
+#include "ddk/winsplp.h"
+
+#include "wine/debug.h"
+#include "wine/unicode.h"
+#include "localui.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(localui);
+
+/*****************************************************/
+
+static HINSTANCE LOCALUI_hInstance;
+
+static const WCHAR cmd_AddPortW[] = {'A','d','d','P','o','r','t',0};
+static const WCHAR cmd_ConfigureLPTPortCommandOKW[] = {'C','o','n','f','i','g','u','r','e',
+                                    'L','P','T','P','o','r','t',
+                                    'C','o','m','m','a','n','d','O','K',0};
+static const WCHAR cmd_DeletePortW[] = {'D','e','l','e','t','e','P','o','r','t',0};
+static const WCHAR cmd_GetDefaultCommConfigW[] = {'G','e','t',
+                                    'D','e','f','a','u','l','t',
+                                    'C','o','m','m','C','o','n','f','i','g',0};
+static const WCHAR cmd_GetTransmissionRetryTimeoutW[] = {'G','e','t',
+                                    'T','r','a','n','s','m','i','s','s','i','o','n',
+                                    'R','e','t','r','y','T','i','m','e','o','u','t',0};
+static const WCHAR cmd_PortIsValidW[] = {'P','o','r','t','I','s','V','a','l','i','d',0};
+static const WCHAR cmd_SetDefaultCommConfigW[] = {'S','e','t',
+                                    'D','e','f','a','u','l','t',
+                                    'C','o','m','m','C','o','n','f','i','g',0};
+
+static const WCHAR fmt_uW[]  = {'%','u',0};
+static const WCHAR portname_LPT[]  = {'L','P','T',0};
+static const WCHAR portname_COM[]  = {'C','O','M',0};
+static const WCHAR portname_FILE[] = {'F','I','L','E',':',0};
+static const WCHAR portname_CUPS[] = {'C','U','P','S',':',0};
+static const WCHAR portname_LPR[]  = {'L','P','R',':',0};
+
+static const WCHAR XcvMonitorW[] = {',','X','c','v','M','o','n','i','t','o','r',' ',0};
+static const WCHAR XcvPortW[] = {',','X','c','v','P','o','r','t',' ',0};
+
+/*****************************************************/
+
+typedef struct tag_addportui_t {
+    LPWSTR  portname;
+    HANDLE  hXcv;
+} addportui_t;
+
+typedef struct tag_lptconfig_t {
+    HANDLE  hXcv;
+    DWORD   value;
+} lptconfig_t;
+
+
+static INT_PTR CALLBACK dlgproc_lptconfig(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
+
+/*****************************************************
+ *   strdupWW [internal]
+ */
+
+static LPWSTR strdupWW(LPCWSTR pPrefix, LPCWSTR pSuffix)
+{
+    LPWSTR  ptr;
+    DWORD   len;
+
+    len = lstrlenW(pPrefix) + (pSuffix ? lstrlenW(pSuffix) : 0) + 1;
+    ptr = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+    if (ptr) {
+        lstrcpyW(ptr, pPrefix);
+        if (pSuffix) lstrcatW(ptr, pSuffix);
+    }
+    return ptr;
+}
+
+/*****************************************************
+ *   dlg_configure_com [internal]
+ *
+ */
+
+static BOOL dlg_configure_com(HANDLE hXcv, HWND hWnd, PCWSTR pPortName)
+{
+    COMMCONFIG cfg;
+    LPWSTR shortname;
+    DWORD status;
+    DWORD dummy;
+    DWORD len;
+    BOOL  res;
+
+    /* strip the colon (pPortName is never empty here) */
+    len = lstrlenW(pPortName);
+    shortname = HeapAlloc(GetProcessHeap(), 0, len  * sizeof(WCHAR));
+    if (shortname) {
+        memcpy(shortname, pPortName, (len -1) * sizeof(WCHAR));
+        shortname[len-1] = '\0';
+
+        /* get current settings */
+        len = sizeof(cfg);
+        status = ERROR_SUCCESS;
+        res = XcvDataW( hXcv, cmd_GetDefaultCommConfigW,
+                        (PBYTE) shortname,
+                        (lstrlenW(shortname) +1) * sizeof(WCHAR),
+                        (PBYTE) &cfg, len, &len, &status);
+
+        if (res && (status == ERROR_SUCCESS)) {
+            /* display the Dialog */
+            res = CommConfigDialogW(pPortName, hWnd, &cfg);
+            if (res) {
+                status = ERROR_SUCCESS;
+                /* set new settings */
+                res = XcvDataW(hXcv, cmd_SetDefaultCommConfigW,
+                               (PBYTE) &cfg, len,
+                               (PBYTE) &dummy, 0, &len, &status);
+            }
+        }
+        HeapFree(GetProcessHeap(), 0, shortname);
+        return res;
+    }
+    return FALSE;
+}
+
+
+/*****************************************************
+ *   dlg_configure_lpt [internal]
+ *
+ */
+
+static BOOL dlg_configure_lpt(HANDLE hXcv, HWND hWnd)
+{
+    lptconfig_t data;
+    BOOL  res;
+
+
+    data.hXcv = hXcv;
+
+    res = DialogBoxParamW(LOCALUI_hInstance, MAKEINTRESOURCEW(LPTCONFIG_DIALOG), hWnd,
+                               dlgproc_lptconfig, (LPARAM) &data);
+
+    TRACE("got %u with %u\n", res, GetLastError());
+
+    if (!res) SetLastError(ERROR_CANCELLED);
+    return res;
+}
+
+/******************************************************************
+ *  dlg_port_already_exists [internal]
+ */
+
+static void dlg_port_already_exists(HWND hWnd, LPCWSTR portname)
+{
+    WCHAR res_PortW[IDS_LOCALPORT_MAXLEN];
+    WCHAR res_PortExistsW[IDS_PORTEXISTS_MAXLEN];
+    LPWSTR  message;
+    DWORD   len;
+
+    res_PortW[0] = '\0';
+    res_PortExistsW[0] = '\0';
+    LoadStringW(LOCALUI_hInstance, IDS_LOCALPORT, res_PortW, IDS_LOCALPORT_MAXLEN);
+    LoadStringW(LOCALUI_hInstance, IDS_PORTEXISTS, res_PortExistsW, IDS_PORTEXISTS_MAXLEN);
+
+    len = lstrlenW(portname) + IDS_PORTEXISTS_MAXLEN + 1;
+    message = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+    if (message) {
+        message[0] = '\0';
+        snprintfW(message, len, res_PortExistsW, portname);
+        MessageBoxW(hWnd, message, res_PortW, MB_OK | MB_ICONERROR);
+        HeapFree(GetProcessHeap(), 0, message);
+    }
+}
+
+/******************************************************************
+ *  dlg_invalid_portname [internal]
+ */
+
+static void dlg_invalid_portname(HWND hWnd, LPCWSTR portname)
+{
+    WCHAR res_PortW[IDS_LOCALPORT_MAXLEN];
+    WCHAR res_InvalidNameW[IDS_INVALIDNAME_MAXLEN];
+    LPWSTR  message;
+    DWORD   len;
+
+    res_PortW[0] = '\0';
+    res_InvalidNameW[0] = '\0';
+    LoadStringW(LOCALUI_hInstance, IDS_LOCALPORT, res_PortW, IDS_LOCALPORT_MAXLEN);
+    LoadStringW(LOCALUI_hInstance, IDS_INVALIDNAME, res_InvalidNameW, IDS_INVALIDNAME_MAXLEN);
+
+    len = lstrlenW(portname) + IDS_INVALIDNAME_MAXLEN;
+    message = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+    if (message) {
+        message[0] = '\0';
+        snprintfW(message, len, res_InvalidNameW, portname);
+        MessageBoxW(hWnd, message, res_PortW, MB_OK | MB_ICONERROR);
+        HeapFree(GetProcessHeap(), 0, message);
+    }
+}
+
+/******************************************************************
+ * display the Dialog "Nothing to configure"
+ *
+ */
+
+static void dlg_nothingtoconfig(HWND hWnd)
+{
+    WCHAR res_PortW[IDS_LOCALPORT_MAXLEN];
+    WCHAR res_nothingW[IDS_NOTHINGTOCONFIG_MAXLEN];
+
+    res_PortW[0] = '\0';
+    res_nothingW[0] = '\0';
+    LoadStringW(LOCALUI_hInstance, IDS_LOCALPORT, res_PortW, IDS_LOCALPORT_MAXLEN);
+    LoadStringW(LOCALUI_hInstance, IDS_NOTHINGTOCONFIG, res_nothingW, IDS_NOTHINGTOCONFIG_MAXLEN);
+
+    MessageBoxW(hWnd, res_nothingW, res_PortW, MB_OK | MB_ICONINFORMATION);
+}
+
+/******************************************************************
+ *  dlg_win32error [internal]
+ */
+
+static void dlg_win32error(HWND hWnd, DWORD lasterror)
+{
+    WCHAR res_PortW[IDS_LOCALPORT_MAXLEN];
+    LPWSTR  message = NULL;
+    DWORD   res;
+
+    res_PortW[0] = '\0';
+    LoadStringW(LOCALUI_hInstance, IDS_LOCALPORT, res_PortW, IDS_LOCALPORT_MAXLEN);
+
+
+    res = FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
+                        NULL, lasterror, 0, (LPWSTR) &message, 0, NULL);
+
+    if (res > 0) {
+        MessageBoxW(hWnd, message, res_PortW, MB_OK | MB_ICONERROR);
+        LocalFree(message);
+    }
+}
+
+/*****************************************************************************
+ *
+ */
+
+static INT_PTR CALLBACK dlgproc_addport(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
+{
+    addportui_t * data;
+    DWORD   status;
+    DWORD   dummy;
+    DWORD   len;
+    DWORD   res;
+
+    switch(msg)
+    {
+    case WM_INITDIALOG:
+        SetWindowLongPtrW(hwnd, DWLP_USER, lparam);
+        return TRUE;
+
+    case WM_COMMAND:
+        if (wparam == MAKEWPARAM(IDOK, BN_CLICKED))
+        {
+            data = (addportui_t *) GetWindowLongPtrW(hwnd, DWLP_USER);
+            /* length in WCHAR, without the '\0' */
+            len = SendDlgItemMessageW(hwnd, ADDPORT_EDIT, WM_GETTEXTLENGTH, 0, 0);
+            data->portname = HeapAlloc(GetProcessHeap(), 0, (len + 1) * sizeof(WCHAR));
+
+            if (!data->portname) {
+                EndDialog(hwnd, FALSE);
+                return TRUE;
+            }
+            /* length is in WCHAR, including the '\0' */
+            GetDlgItemTextW(hwnd, ADDPORT_EDIT, data->portname, len + 1);
+            status = ERROR_SUCCESS;
+            res = XcvDataW( data->hXcv, cmd_PortIsValidW, (PBYTE) data->portname,
+                            (lstrlenW(data->portname) + 1) * sizeof(WCHAR),
+                            (PBYTE) &dummy, 0, &len, &status);
+
+            TRACE("got %u with status %u\n", res, status);
+            if (res && (status == ERROR_SUCCESS)) {
+                /* The caller must free data->portname */
+                EndDialog(hwnd, TRUE);
+                return TRUE;
+            }
+
+            if (res && (status == ERROR_INVALID_NAME)) {
+                dlg_invalid_portname(hwnd, data->portname);
+                HeapFree(GetProcessHeap(), 0, data->portname);
+                data->portname = NULL;
+                return TRUE;
+            }
+
+            dlg_win32error(hwnd, status);
+            HeapFree(GetProcessHeap(), 0, data->portname);
+            data->portname = NULL;
+            return TRUE;
+        }
+
+        if (wparam == MAKEWPARAM(IDCANCEL, BN_CLICKED))
+        {
+            EndDialog(hwnd, FALSE);
+            return TRUE;
+        }
+        return FALSE;
+    }
+    return FALSE;
+}
+
+/*****************************************************************************
+ *   dlgproc_lptconfig  [internal]
+ *
+ * Our message-proc is simple, as the range-check is done only during the
+ * command "OK" and the dialog is set to the start-value at "out of range".
+ *
+ * Native localui.dll does the check during keyboard-input and set the dialog
+ * to the previous value.
+ *
+ */
+
+static INT_PTR CALLBACK dlgproc_lptconfig(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
+{
+    lptconfig_t * data;
+    WCHAR   bufferW[16];
+    DWORD   status;
+    DWORD   dummy;
+    DWORD   len;
+    DWORD   res;
+
+
+    switch(msg)
+    {
+    case WM_INITDIALOG:
+        SetWindowLongPtrW(hwnd, DWLP_USER, lparam);
+        data = (lptconfig_t *) lparam;
+
+        /* Get current setting */
+        data->value = 45;
+        status = ERROR_SUCCESS;
+        res = XcvDataW( data->hXcv, cmd_GetTransmissionRetryTimeoutW,
+                        (PBYTE) &dummy, 0,
+                        (PBYTE) &data->value, sizeof(data->value), &len, &status);
+
+        TRACE("got %u with status %u\n", res, status);
+
+        /* Set current setting as the initial value in the Dialog */
+        SetDlgItemInt(hwnd, LPTCONFIG_EDIT, data->value, FALSE);
+        return TRUE;
+
+    case WM_COMMAND:
+        if (wparam == MAKEWPARAM(IDOK, BN_CLICKED))
+        {
+            data = (lptconfig_t *) GetWindowLongPtrW(hwnd, DWLP_USER);
+
+            status = FALSE;
+            res = GetDlgItemInt(hwnd, LPTCONFIG_EDIT, (BOOL *) &status, FALSE);
+            /* length is in WCHAR, including the '\0' */
+            GetDlgItemTextW(hwnd, LPTCONFIG_EDIT, bufferW, sizeof(bufferW) / sizeof(bufferW[0]));
+            TRACE("got %s and %u (translated: %u)\n", debugstr_w(bufferW), res, status);
+
+            /* native localui.dll use the same limits */
+            if ((res > 0) && (res < 1000000) && status) {
+                sprintfW(bufferW, fmt_uW, res);
+                res = XcvDataW( data->hXcv, cmd_ConfigureLPTPortCommandOKW,
+                        (PBYTE) bufferW,
+                        (lstrlenW(bufferW) +1) * sizeof(WCHAR),
+                        (PBYTE) &dummy, 0, &len, &status);
+
+                TRACE("got %u with status %u\n", res, status);
+                EndDialog(hwnd, TRUE);
+                return TRUE;
+            }
+
+            /* Set initial value and rerun the Dialog */
+            SetDlgItemInt(hwnd, LPTCONFIG_EDIT, data->value, FALSE);
+            return TRUE;
+        }
+
+        if (wparam == MAKEWPARAM(IDCANCEL, BN_CLICKED))
+        {
+            EndDialog(hwnd, FALSE);
+            return TRUE;
+        }
+        return FALSE;
+    }
+    return FALSE;
+}
+
+
+/*****************************************************
+ * get_type_from_name (internal)
+ *
+ */
+
+static DWORD get_type_from_name(LPCWSTR name)
+{
+    HANDLE  hfile;
+
+    if (!strncmpiW(name, portname_LPT, sizeof(portname_LPT) / sizeof(WCHAR) -1))
+        return PORT_IS_LPT;
+
+    if (!strncmpiW(name, portname_COM, sizeof(portname_COM) / sizeof(WCHAR) -1))
+        return PORT_IS_COM;
+
+    if (!strcmpiW(name, portname_FILE))
+        return PORT_IS_FILE;
+
+    if (name[0] == '/')
+        return PORT_IS_UNIXNAME;
+
+    if (name[0] == '|')
+        return PORT_IS_PIPE;
+
+    if (!strncmpW(name, portname_CUPS, sizeof(portname_CUPS) / sizeof(WCHAR) -1))
+        return PORT_IS_CUPS;
+
+    if (!strncmpW(name, portname_LPR, sizeof(portname_LPR) / sizeof(WCHAR) -1))
+        return PORT_IS_LPR;
+
+    /* Must be a file or a directory. Does the file exist ? */
+    hfile = CreateFileW(name, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+    TRACE("%p for OPEN_EXISTING on %s\n", hfile, debugstr_w(name));
+    if (hfile == INVALID_HANDLE_VALUE) {
+        /* Can we create the file? */
+        hfile = CreateFileW(name, GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_FLAG_DELETE_ON_CLOSE, NULL);
+        TRACE("%p for OPEN_ALWAYS\n", hfile);
+    }
+    if (hfile != INVALID_HANDLE_VALUE) {
+        CloseHandle(hfile);
+        return PORT_IS_FILENAME;
+    }
+    /* We can't use the name. use GetLastError() for the reason */
+    return PORT_IS_UNKNOWN;
+}
+
+/*****************************************************
+ *   open_monitor_by_name [internal]
+ *
+ */
+static BOOL open_monitor_by_name(LPCWSTR pPrefix, LPCWSTR pPort, HANDLE * phandle)
+{
+    PRINTER_DEFAULTSW pd;
+    LPWSTR  fullname;
+    BOOL    res;
+
+    * phandle = 0;
+    TRACE("(%s,%s)\n", debugstr_w(pPrefix),debugstr_w(pPort) );
+
+    fullname = strdupWW(pPrefix, pPort);
+    pd.pDatatype = NULL;
+    pd.pDevMode  = NULL;
+    pd.DesiredAccess = SERVER_ACCESS_ADMINISTER;
+
+    res = OpenPrinterW(fullname, phandle, &pd);
+    HeapFree(GetProcessHeap(), 0, fullname);
+    return res;
+}
+
+/*****************************************************
+ *   localui_AddPortUI [exported through MONITORUI]
+ *
+ * Display a Dialog to add a local Port
+ *
+ * PARAMS
+ *  pName       [I] Servername or NULL (local Computer)
+ *  hWnd        [I] Handle to parent Window for the Dialog-Box or NULL
+ *  pMonitorName[I] Name of the Monitor, that should be used to add a Port or NULL
+ *  ppPortName  [O] PTR to PTR of a buffer, that receive the Name of the new Port or NULL
+ *
+ * RETURNS
+ *  Success: TRUE
+ *  Failure: FALSE
+ *
+ * NOTES
+ * The caller must free the buffer (returned in ppPortName) with GlobalFree().
+ * Native localui.dll failed with ERROR_INVALID_PARAMETER, when the user tried
+ * to add a Port, that start with "COM" or "LPT".
+ *
+ */
+static BOOL WINAPI localui_AddPortUI(PCWSTR pName, HWND hWnd, PCWSTR pMonitorName, PWSTR *ppPortName)
+{
+    addportui_t data;
+    HANDLE  hXcv;
+    LPWSTR  ptr = NULL;
+    DWORD   needed;
+    DWORD   dummy;
+    DWORD   status;
+    DWORD   res = FALSE;
+
+    TRACE(  "(%s, %p, %s, %p) (*ppPortName: %p)\n", debugstr_w(pName), hWnd,
+            debugstr_w(pMonitorName), ppPortName, ppPortName ? *ppPortName : NULL);
+
+    if (open_monitor_by_name(XcvMonitorW, pMonitorName, &hXcv)) {
+
+        ZeroMemory(&data, sizeof(addportui_t));
+        data.hXcv = hXcv;
+        res = DialogBoxParamW(LOCALUI_hInstance, MAKEINTRESOURCEW(ADDPORT_DIALOG), hWnd,
+                               dlgproc_addport, (LPARAM) &data);
+
+        TRACE("got %u with %u for %s\n", res, GetLastError(), debugstr_w(data.portname));
+
+        if (ppPortName) *ppPortName = NULL;
+
+        if (res) {
+            res = XcvDataW(hXcv, cmd_AddPortW, (PBYTE) data.portname,
+                            (lstrlenW(data.portname)+1) * sizeof(WCHAR),
+                            (PBYTE) &dummy, 0, &needed, &status);
+
+            TRACE("got %u with status %u\n", res, status);
+            if (res && (status == ERROR_SUCCESS)) {
+                /* Native localui uses GlobalAlloc also.
+                   The caller must GlobalFree the buffer */
+                ptr = GlobalAlloc(GPTR, (lstrlenW(data.portname)+1) * sizeof(WCHAR));
+                if (ptr) {
+                    lstrcpyW(ptr, data.portname);
+                    if (ppPortName) *ppPortName = ptr;
+                }
+            }
+
+            if (res && (status == ERROR_ALREADY_EXISTS)) {
+                dlg_port_already_exists(hWnd, data.portname);
+                /* Native localui also return "TRUE" from AddPortUI in this case */
+            }
+
+            HeapFree(GetProcessHeap(), 0, data.portname);
+        }
+        else
+        {
+            SetLastError(ERROR_CANCELLED);
+        }
+        ClosePrinter(hXcv);
+    }
+
+    TRACE("=> %u with %u\n", res, GetLastError());
+    return res;
+}
+
+
+/*****************************************************
+ *   localui_ConfigurePortUI [exported through MONITORUI]
+ *
+ * Display the Configuration-Dialog for a specific Port
+ *
+ * PARAMS
+ *  pName     [I] Servername or NULL (local Computer)
+ *  hWnd      [I] Handle to parent Window for the Dialog-Box or NULL
+ *  pPortName [I] Name of the Port, that should be configured
+ *
+ * RETURNS
+ *  Success: TRUE
+ *  Failure: FALSE
+ *
+ */
+static BOOL WINAPI localui_ConfigurePortUI(PCWSTR pName, HWND hWnd, PCWSTR pPortName)
+{
+    HANDLE  hXcv;
+    DWORD   res;
+
+    TRACE("(%s, %p, %s)\n", debugstr_w(pName), hWnd, debugstr_w(pPortName));
+    if (open_monitor_by_name(XcvPortW, pPortName, &hXcv)) {
+
+        res = get_type_from_name(pPortName);
+        switch(res)
+        {
+
+        case PORT_IS_COM:
+            res = dlg_configure_com(hXcv, hWnd, pPortName);
+            break;
+
+        case PORT_IS_LPT:
+            res = dlg_configure_lpt(hXcv, hWnd);
+            break;
+
+        default:
+            dlg_nothingtoconfig(hWnd);
+            SetLastError(ERROR_CANCELLED);
+            res = FALSE;
+        }
+
+        ClosePrinter(hXcv);
+        return res;
+    }
+    return FALSE;
+
+}
+
+/*****************************************************
+ *   localui_DeletePortUI [exported through MONITORUI]
+ *
+ * Delete a specific Port
+ *
+ * PARAMS
+ *  pName     [I] Servername or NULL (local Computer)
+ *  hWnd      [I] Handle to parent Window
+ *  pPortName [I] Name of the Port, that should be deleted
+ *
+ * RETURNS
+ *  Success: TRUE
+ *  Failure: FALSE
+ *
+ * NOTES
+ *  Native localui does not allow to delete a COM / LPT - Port (ERROR_NOT_SUPPORTED)
+ *
+ */
+static BOOL WINAPI localui_DeletePortUI(PCWSTR pName, HWND hWnd, PCWSTR pPortName)
+{
+    HANDLE  hXcv;
+    DWORD   dummy;
+    DWORD   needed;
+    DWORD   status;
+
+    TRACE("(%s, %p, %s)\n", debugstr_w(pName), hWnd, debugstr_w(pPortName));
+
+    if ((!pPortName) || (!pPortName[0])) {
+        SetLastError(ERROR_INVALID_PARAMETER);
+        return FALSE;
+    }
+
+    if (open_monitor_by_name(XcvPortW, pPortName, &hXcv)) {
+        /* native localui tests here for LPT / COM - Ports and failed with
+           ERROR_NOT_SUPPORTED. */
+        if (XcvDataW(hXcv, cmd_DeletePortW, (LPBYTE) pPortName,
+            (lstrlenW(pPortName)+1) * sizeof(WCHAR), (LPBYTE) &dummy, 0, &needed, &status)) {
+
+            ClosePrinter(hXcv);
+            if (status != ERROR_SUCCESS) SetLastError(status);
+            return (status == ERROR_SUCCESS);
+        }
+        ClosePrinter(hXcv);
+        return FALSE;
+    }
+    SetLastError(ERROR_UNKNOWN_PORT);
+    return FALSE;
+}
+
+/*****************************************************
+ *      InitializePrintMonitorUI  (LOCALUI.@)
+ *
+ * Initialize the User-Interface for the Local Ports
+ *
+ * RETURNS
+ *  Success: Pointer to a MONITORUI Structure
+ *  Failure: NULL
+ *
+ */
+
+PMONITORUI WINAPI InitializePrintMonitorUI(void)
+{
+    static MONITORUI mymonitorui =
+    {
+        sizeof(MONITORUI),
+        localui_AddPortUI,
+        localui_ConfigurePortUI,
+        localui_DeletePortUI
+    };
+
+    TRACE("=> %p\n", &mymonitorui);
+    return &mymonitorui;
+}
+
+/*****************************************************
+ *      DllMain
+ */
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
+{
+    TRACE("(%p, %d, %p)\n",hinstDLL, fdwReason, lpvReserved);
+
+    switch(fdwReason)
+    {
+        case DLL_PROCESS_ATTACH:
+            DisableThreadLibraryCalls( hinstDLL );
+            LOCALUI_hInstance = hinstDLL;
+            break;
+    }
+    return TRUE;
+}
diff --git a/reactos/dll/win32/localui/localui.h b/reactos/dll/win32/localui/localui.h
new file mode 100644 (file)
index 0000000..aa244bd
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * internal include file of the Local Printmonitor User Interface
+ *
+ * Copyright 2007 Detlef Riekenberg
+ *
+ * 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
+ */
+
+#ifndef __WINE_LOCALUI__
+#define __WINE_LOCALUI__
+
+
+/* ## Resource-ID ## */
+#define ADDPORT_DIALOG  100
+#define ADDPORT_EDIT    101
+
+#define LPTCONFIG_DIALOG 200
+#define LPTCONFIG_GROUP  201
+#define LPTCONFIG_EDIT   202
+
+#define IDS_LOCALPORT       300
+#define IDS_INVALIDNAME     301
+#define IDS_PORTEXISTS      302
+#define IDS_NOTHINGTOCONFIG 303
+
+/* ## Reserved memorysize for the strings (in WCHAR) ## */
+#define IDS_LOCALPORT_MAXLEN 32
+#define IDS_INVALIDNAME_MAXLEN 48
+#define IDS_PORTEXISTS_MAXLEN  48
+#define IDS_NOTHINGTOCONFIG_MAXLEN 80
+
+/* ## Type of Ports ## */
+/* windows types */
+#define PORT_IS_UNKNOWN  0
+#define PORT_IS_LPT      1
+#define PORT_IS_COM      2
+#define PORT_IS_FILE     3
+#define PORT_IS_FILENAME 4
+
+/* wine extensions */
+#define PORT_IS_WINE     5
+#define PORT_IS_UNIXNAME 5
+#define PORT_IS_PIPE     6
+#define PORT_IS_CUPS     7
+#define PORT_IS_LPR      8
+
+
+#endif /* __WINE_LOCALUI__ */
diff --git a/reactos/dll/win32/localui/localui.rbuild b/reactos/dll/win32/localui/localui.rbuild
new file mode 100644 (file)
index 0000000..7ee4b14
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
+<group>
+<module name="localui" type="win32dll" baseaddress="${BASEADDRESS_LOCALUI}" installbase="system32" installname="localui.dll" allowwarnings="true">
+       <importlibrary definition="localui.spec" />
+       <include base="localui">.</include>
+       <include base="ReactOS">include/reactos/wine</include>
+       <define name="__WINESRC__" />
+       <file>localui.c</file>
+       <file>localui.rc</file>
+       <library>wine</library>
+       <library>winspool</library>
+       <library>user32</library>
+       <library>kernel32</library>
+       <library>uuid</library>
+       <library>ntdll</library>
+</module>
+</group>
diff --git a/reactos/dll/win32/localui/localui.rc b/reactos/dll/win32/localui/localui.rc
new file mode 100644 (file)
index 0000000..815cac0
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Top level resource file for localui
+ *
+ * Copyright 2007 Detlef Riekenberg
+ *
+ * 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 "winbase.h"
+#include "winuser.h"
+#include "winver.h"
+#include "localui.h"
+
+#define WINE_FILENAME_STR "localui.dll"
+#define WINE_FILEDESCRIPTION_STR "User Interface for the Local Monitor"
+
+/* Same Version as WinXP_sp2 */
+#define WINE_FILEVERSION      5,1,2600,2180
+#define WINE_FILEVERSION_STR "5.1.2600.2180"
+
+#define WINE_PRODUCTVERSION      5,1,2600,2180
+#define WINE_PRODUCTVERSION_STR "5.1.2600.2180"
+
+#include "wine/wine_common_ver.rc"
+
+
+#include "ui_Da.rc"
+#include "ui_De.rc"
+#include "ui_En.rc"
+#include "ui_Fr.rc"
+#include "ui_Ko.rc"
+#include "ui_Nl.rc"
+#include "ui_No.rc"
+#include "ui_Pl.rc"
+#include "ui_Pt.rc"
+#include "ui_Ro.rc"
+#include "ui_Ru.rc"
+#include "ui_Si.rc"
+#include "ui_Sv.rc"
+#include "ui_Zh.rc"
diff --git a/reactos/dll/win32/localui/localui.spec b/reactos/dll/win32/localui/localui.spec
new file mode 100644 (file)
index 0000000..dafed22
--- /dev/null
@@ -0,0 +1 @@
+@ stdcall InitializePrintMonitorUI()
diff --git a/reactos/dll/win32/localui/ui_Da.rc b/reactos/dll/win32/localui/ui_Da.rc
new file mode 100644 (file)
index 0000000..9729926
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Danish resources for localui
+ *
+ * Copyright 2008 Jens Albretsen <jens@albretsen.dk>
+ *
+ * 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
+ */
+
+LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
+
+ADDPORT_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 245, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Opret en lokal port"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    LTEXT "&Skriv navnet på den nye port:", -1, 7, 13, 194, 13, WS_VISIBLE
+    EDITTEXT ADDPORT_EDIT, 6, 28, 174, 12, WS_VISIBLE | ES_AUTOHSCROLL
+    DEFPUSHBUTTON "OK", IDOK, 199, 10, 40, 14, WS_VISIBLE
+    PUSHBUTTON "Annuller", IDCANCEL, 199, 27, 40, 14, WS_VISIBLE
+END
+
+
+LPTCONFIG_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 220, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Opsæt LPT port"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    GROUPBOX "Timeout (sekunder)", LPTCONFIG_GROUP, 6, 6, 150, 35, BS_GROUPBOX
+    LTEXT "&Transmission retry:", -1, 14, 22, 90, 13, WS_VISIBLE
+    EDITTEXT LPTCONFIG_EDIT, 112, 20, 32, 13, WS_VISIBLE | ES_NUMBER
+    DEFPUSHBUTTON "OK", IDOK, 164, 10, 50, 14, WS_VISIBLE
+    PUSHBUTTON "Annuller", IDCANCEL, 164, 27, 50, 14, WS_VISIBLE
+END
+
+
+STRINGTABLE DISCARDABLE
+{
+    IDS_LOCALPORT "Lokal port"
+    IDS_INVALIDNAME "'%s' er ikke et gyldigt port navn"
+    IDS_PORTEXISTS "Porten %s findes allerede"
+    IDS_NOTHINGTOCONFIG "Denne port har ingen indstillinger"
+}
diff --git a/reactos/dll/win32/localui/ui_De.rc b/reactos/dll/win32/localui/ui_De.rc
new file mode 100644 (file)
index 0000000..2fe35fc
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * German resources for localui
+ *
+ * Copyright 2007 Detlef Riekenberg
+ *
+ * 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
+ */
+
+LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
+
+ADDPORT_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 245, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Lokalen Anschluss hinzufügen"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    LTEXT "&Lokaler Anschuss, der hinzugefügt werden soll:", -1, 7, 13, 194, 13, WS_VISIBLE
+    EDITTEXT ADDPORT_EDIT, 6, 28, 174, 12, WS_VISIBLE | ES_AUTOHSCROLL
+    DEFPUSHBUTTON "OK", IDOK, 188, 10, 50, 14, WS_VISIBLE
+    PUSHBUTTON "Abbrechen", IDCANCEL, 188, 27, 50, 14, WS_VISIBLE
+END
+
+
+LPTCONFIG_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 220, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "LPT-Anschluss konfigurieren"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    GROUPBOX "Zeitüberschreitung (Sekunden)", LPTCONFIG_GROUP, 6, 6, 150, 35, BS_GROUPBOX
+    LTEXT "Ü&bertragung wiederholen:", -1, 14, 22, 90, 13, WS_VISIBLE
+    EDITTEXT LPTCONFIG_EDIT, 112, 20, 32, 13, WS_VISIBLE | ES_NUMBER
+    DEFPUSHBUTTON "OK", IDOK, 164, 10, 50, 14, WS_VISIBLE
+    PUSHBUTTON "Abbrechen", IDCANCEL, 164, 27, 50, 14, WS_VISIBLE
+END
+
+
+STRINGTABLE DISCARDABLE
+{
+    IDS_LOCALPORT "Lokaler Anschluss"
+    IDS_INVALIDNAME "'%s' ist kein gültiger Anschlussname"
+    IDS_PORTEXISTS "Der Anschluss %s existiert bereits"
+    IDS_NOTHINGTOCONFIG "Dieser Anschluss hat keine Optionen zum Konfigurieren"
+}
diff --git a/reactos/dll/win32/localui/ui_En.rc b/reactos/dll/win32/localui/ui_En.rc
new file mode 100644 (file)
index 0000000..c2de626
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * English resources for localui
+ *
+ * Copyright 2007 Detlef Riekenberg
+ *
+ * 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
+ */
+
+LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
+
+ADDPORT_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 245, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Add a Local Port"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    LTEXT "&Enter the port name to add:", -1, 7, 13, 194, 13, WS_VISIBLE
+    EDITTEXT ADDPORT_EDIT, 6, 28, 174, 12, WS_VISIBLE | ES_AUTOHSCROLL
+    DEFPUSHBUTTON "OK", IDOK, 199, 10, 40, 14, WS_VISIBLE
+    PUSHBUTTON "Cancel", IDCANCEL, 199, 27, 40, 14, WS_VISIBLE
+END
+
+
+LPTCONFIG_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 220, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Configure LPT Port"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    GROUPBOX "Timeout (seconds)", LPTCONFIG_GROUP, 6, 6, 150, 35, BS_GROUPBOX
+    LTEXT "&Transmission Retry:", -1, 14, 22, 90, 13, WS_VISIBLE
+    EDITTEXT LPTCONFIG_EDIT, 112, 20, 32, 13, WS_VISIBLE | ES_NUMBER
+    DEFPUSHBUTTON "OK", IDOK, 164, 10, 50, 14, WS_VISIBLE
+    PUSHBUTTON "Cancel", IDCANCEL, 164, 27, 50, 14, WS_VISIBLE
+END
+
+
+STRINGTABLE DISCARDABLE
+{
+    IDS_LOCALPORT "Local Port"
+    IDS_INVALIDNAME "'%s' is not a valid port name"
+    IDS_PORTEXISTS "Port %s already exists"
+    IDS_NOTHINGTOCONFIG "This port has no options to configure"
+}
diff --git a/reactos/dll/win32/localui/ui_Fr.rc b/reactos/dll/win32/localui/ui_Fr.rc
new file mode 100644 (file)
index 0000000..261fa0b
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * French resources for localui
+ *
+ * Copyright 2007 Jonathan Ernst
+ *
+ * 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
+ */
+#pragma code_page(65001)
+
+LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
+
+ADDPORT_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 245, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Ajouter un port local"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    LTEXT "&Saisisser le nom du port à ajouter :", -1, 7, 13, 194, 13, WS_VISIBLE
+    EDITTEXT ADDPORT_EDIT, 6, 28, 174, 12, WS_VISIBLE | ES_AUTOHSCROLL
+    DEFPUSHBUTTON "OK", IDOK, 199, 10, 40, 14, WS_VISIBLE
+    PUSHBUTTON "Annuler", IDCANCEL, 199, 27, 40, 14, WS_VISIBLE
+END
+
+
+LPTCONFIG_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 220, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Configurer un port LPT"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    GROUPBOX "Délai (en secondes)", LPTCONFIG_GROUP, 6, 6, 150, 35, BS_GROUPBOX
+    LTEXT "&Essais de retransmission :", -1, 14, 22, 90, 13, WS_VISIBLE
+    EDITTEXT LPTCONFIG_EDIT, 112, 20, 32, 13, WS_VISIBLE | ES_NUMBER
+    DEFPUSHBUTTON "OK", IDOK, 164, 10, 50, 14, WS_VISIBLE
+    PUSHBUTTON "Annuler", IDCANCEL, 164, 27, 50, 14, WS_VISIBLE
+END
+
+
+STRINGTABLE DISCARDABLE
+{
+    IDS_LOCALPORT "Port local"
+    IDS_INVALIDNAME "« %s » n'est pas un nom de port valide"
+    IDS_PORTEXISTS "Le port %s existe déjà"
+    IDS_NOTHINGTOCONFIG "Ce port n'a pas d'options de configuration"
+}
+
+#pragma code_page(default)
diff --git a/reactos/dll/win32/localui/ui_Ko.rc b/reactos/dll/win32/localui/ui_Ko.rc
new file mode 100644 (file)
index 0000000..317d401
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Korean resources for localui
+ *
+ * Copyright 2007 Detlef Riekenberg
+ * Copyright 2007 YunSong Hwang(ȲÀ±¼º)(hys545@dreamwiz.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
+ */
+
+LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
+
+ADDPORT_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 245, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Áö¿ª Æ÷Æ® ´õÇϱâ"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    LTEXT "´õÇÒ Æ÷Æ® À̸§ ÀÔ·Â(&E):", -1, 7, 13, 194, 13, WS_VISIBLE
+    EDITTEXT ADDPORT_EDIT, 6, 28, 174, 12, WS_VISIBLE | ES_AUTOHSCROLL
+    DEFPUSHBUTTON "È®ÀÎ", IDOK, 199, 10, 40, 14, WS_VISIBLE
+    PUSHBUTTON "Ãë¼Ò", IDCANCEL, 199, 27, 40, 14, WS_VISIBLE
+END
+
+
+LPTCONFIG_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 220, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "LPT Æ÷Æ® ¼³Á¤"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    GROUPBOX "½Ã°£ÃÊ°ú(ÃÊ)", LPTCONFIG_GROUP, 6, 6, 150, 35, BS_GROUPBOX
+    LTEXT "Àç Àü¼Û È½¼ö(&T):", -1, 14, 22, 90, 13, WS_VISIBLE
+    EDITTEXT LPTCONFIG_EDIT, 112, 20, 32, 13, WS_VISIBLE | ES_NUMBER
+    DEFPUSHBUTTON "È®ÀÎ", IDOK, 164, 10, 50, 14, WS_VISIBLE
+    PUSHBUTTON "Ãë¼Ò", IDCANCEL, 164, 27, 50, 14, WS_VISIBLE
+END
+
+
+STRINGTABLE DISCARDABLE
+{
+    IDS_LOCALPORT "Áö¿ª Æ÷Æ®"
+    IDS_INVALIDNAME "'%s'´Â ¿Ã¹Ù¸¥ Æ÷Æ® À̸§ÀÌ ¾Æ´Õ´Ï´Ù"
+    IDS_PORTEXISTS "Æ÷Æ® %s´Â À̹̠Á¸ÀçÇÕ´Ï´Ù"
+    IDS_NOTHINGTOCONFIG "ÀÌ Æ÷Æ®´Â ¼³Á¤ÇÒ ¿É¼ÇÀÌ ¾ø½À´Ï´Ù"
+}
diff --git a/reactos/dll/win32/localui/ui_Nl.rc b/reactos/dll/win32/localui/ui_Nl.rc
new file mode 100644 (file)
index 0000000..59c58ff
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Dutch resources for localui
+ *
+ * Copyright 2008 Frans Kool
+ *
+ * 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
+ */
+
+LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
+
+ADDPORT_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 245, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Voeg een Lokale Poort toe"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    LTEXT "&Voer de toe te voegen poort naam in:", -1, 7, 13, 194, 13, WS_VISIBLE
+    EDITTEXT ADDPORT_EDIT, 6, 28, 174, 12, WS_VISIBLE | ES_AUTOHSCROLL
+    DEFPUSHBUTTON "OK", IDOK, 199, 10, 40, 14, WS_VISIBLE
+    PUSHBUTTON "Annuleren", IDCANCEL, 199, 27, 40, 14, WS_VISIBLE
+END
+
+
+LPTCONFIG_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 220, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Configureer LPT Poort"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    GROUPBOX "Timeout (seconden)", LPTCONFIG_GROUP, 6, 6, 150, 35, BS_GROUPBOX
+    LTEXT "&Transmissie Herstart:", -1, 14, 22, 90, 13, WS_VISIBLE
+    EDITTEXT LPTCONFIG_EDIT, 112, 20, 32, 13, WS_VISIBLE | ES_NUMBER
+    DEFPUSHBUTTON "OK", IDOK, 164, 10, 50, 14, WS_VISIBLE
+    PUSHBUTTON "Annuleren", IDCANCEL, 164, 27, 50, 14, WS_VISIBLE
+END
+
+
+STRINGTABLE DISCARDABLE
+{
+    IDS_LOCALPORT "Lokale Poort"
+    IDS_INVALIDNAME "'%s' is geen valide poort naam"
+    IDS_PORTEXISTS "Poort %s bestaat reeds"
+    IDS_NOTHINGTOCONFIG "Deze poort heeft geen opties om in te stellen"
+}
diff --git a/reactos/dll/win32/localui/ui_No.rc b/reactos/dll/win32/localui/ui_No.rc
new file mode 100644 (file)
index 0000000..3a46bc8
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Norwegian Bokmål resources for localui
+ *
+ * Copyright 2007 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
+ */
+
+LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL
+
+ADDPORT_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 245, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Legg til en lokal port"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    LTEXT "Skriv inn navn&et på den nye porten:", -1, 7, 13, 194, 13, WS_VISIBLE
+    EDITTEXT ADDPORT_EDIT, 6, 28, 174, 12, WS_VISIBLE | ES_AUTOHSCROLL
+    DEFPUSHBUTTON "OK", IDOK, 199, 10, 40, 14, WS_VISIBLE
+    PUSHBUTTON "Avbryt", IDCANCEL, 199, 27, 40, 14, WS_VISIBLE
+END
+
+
+LPTCONFIG_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 220, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Oppsett av LPT-port"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    GROUPBOX "Tidsavbrudd (sekunder)", LPTCONFIG_GROUP, 6, 6, 150, 35, BS_GROUPBOX
+    LTEXT "Prøv å sende på nyt&t:", -1, 14, 22, 90, 13, WS_VISIBLE
+    EDITTEXT LPTCONFIG_EDIT, 112, 20, 32, 13, WS_VISIBLE | ES_NUMBER
+    DEFPUSHBUTTON "OK", IDOK, 164, 10, 50, 14, WS_VISIBLE
+    PUSHBUTTON "Avbryt", IDCANCEL, 164, 27, 50, 14, WS_VISIBLE
+END
+
+
+STRINGTABLE DISCARDABLE
+{
+    IDS_LOCALPORT "Lokal port"
+    IDS_INVALIDNAME "«%s» er ikke et gyldig portnavn"
+    IDS_PORTEXISTS "Porten %s finnes allerede"
+    IDS_NOTHINGTOCONFIG "Denne porten har ingen innstillinger"
+}
diff --git a/reactos/dll/win32/localui/ui_Pl.rc b/reactos/dll/win32/localui/ui_Pl.rc
new file mode 100644 (file)
index 0000000..74a5015
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Polish resources for localui
+ *
+ * Copyright 2007 Detlef Riekenberg
+ * Copyright 2007 Mikolaj Zalewski
+ *
+ * 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
+ */
+
+LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
+
+ADDPORT_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 245, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Dodaj port lokalny"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    LTEXT "&Nazwa nowego portu:", -1, 7, 13, 194, 13, WS_VISIBLE
+    EDITTEXT ADDPORT_EDIT, 6, 28, 174, 12, WS_VISIBLE | ES_AUTOHSCROLL
+    DEFPUSHBUTTON "&OK", IDOK, 199, 10, 40, 14, WS_VISIBLE
+    PUSHBUTTON "&Anuluj", IDCANCEL, 199, 27, 40, 14, WS_VISIBLE
+END
+
+
+LPTCONFIG_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 220, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Konfiguracja portu LPT"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    GROUPBOX "Czasy oczekiwania (sekundy)", LPTCONFIG_GROUP, 6, 6, 150, 35, BS_GROUPBOX
+    LTEXT "&Ponowienie transmisji:", -1, 14, 22, 90, 13, WS_VISIBLE
+    EDITTEXT LPTCONFIG_EDIT, 112, 20, 32, 13, WS_VISIBLE | ES_NUMBER
+    DEFPUSHBUTTON "&OK", IDOK, 164, 10, 50, 14, WS_VISIBLE
+    PUSHBUTTON "&Anuluj", IDCANCEL, 164, 27, 50, 14, WS_VISIBLE
+END
+
+
+STRINGTABLE DISCARDABLE
+{
+    IDS_LOCALPORT "Port lokalny"
+    IDS_INVALIDNAME "'%s' nie jest poprawn¹ nazw¹ portu"
+    IDS_PORTEXISTS "Port %s ju¿ istnieje"
+    IDS_NOTHINGTOCONFIG "Ten port nie ma opcji do skonfigurowania"
+}
diff --git a/reactos/dll/win32/localui/ui_Pt.rc b/reactos/dll/win32/localui/ui_Pt.rc
new file mode 100644 (file)
index 0000000..7bad521
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Portuguese resources for localui
+ *
+ * Copyright 2008 Ricardo Filipe
+ *
+ * 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
+ */
+
+LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
+
+ADDPORT_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 245, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Adicionar uma porta local"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    LTEXT "&Introduza o nome da porta a adicionar:", -1, 7, 13, 194, 13, WS_VISIBLE
+    EDITTEXT ADDPORT_EDIT, 6, 28, 174, 12, WS_VISIBLE | ES_AUTOHSCROLL
+    DEFPUSHBUTTON "OK", IDOK, 199, 10, 40, 14, WS_VISIBLE
+    PUSHBUTTON "Cancelar", IDCANCEL, 199, 27, 40, 14, WS_VISIBLE
+END
+
+
+LPTCONFIG_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 220, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Configurar porta LPT"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    GROUPBOX "Tempo expirado (segundos)", LPTCONFIG_GROUP, 6, 6, 150, 35, BS_GROUPBOX
+    LTEXT "&Recomeço da transmissão:", -1, 14, 22, 90, 13, WS_VISIBLE
+    EDITTEXT LPTCONFIG_EDIT, 112, 20, 32, 13, WS_VISIBLE | ES_NUMBER
+    DEFPUSHBUTTON "OK", IDOK, 164, 10, 50, 14, WS_VISIBLE
+    PUSHBUTTON "Cancelar", IDCANCEL, 164, 27, 50, 14, WS_VISIBLE
+END
+
+
+STRINGTABLE DISCARDABLE
+{
+    IDS_LOCALPORT "Porta Local"
+    IDS_INVALIDNAME "'%s' não é um nome de porta válido"
+    IDS_PORTEXISTS "Porta %s já existe"
+    IDS_NOTHINGTOCONFIG "Esta porta não possui opções de configuração"
+}
diff --git a/reactos/dll/win32/localui/ui_Ro.rc b/reactos/dll/win32/localui/ui_Ro.rc
new file mode 100644 (file)
index 0000000..43edfe6
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2007 Detlef Riekenberg
+ * Copyright 2008 Michael Stefaniuc
+ *
+ * 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
+ */
+
+LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
+
+#pragma code_page(65001)
+
+ADDPORT_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 245, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Adaugă un port local"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    LTEXT "&Nume port de adăugat:", -1, 7, 13, 194, 13, WS_VISIBLE
+    EDITTEXT ADDPORT_EDIT, 6, 28, 174, 12, WS_VISIBLE | ES_AUTOHSCROLL
+    DEFPUSHBUTTON "OK", IDOK, 199, 10, 40, 14, WS_VISIBLE
+    PUSHBUTTON "Renunță", IDCANCEL, 199, 27, 40, 14, WS_VISIBLE
+END
+
+
+LPTCONFIG_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 220, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Configurare port LPT"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    GROUPBOX "Temporizare (secunde)", LPTCONFIG_GROUP, 6, 6, 150, 35, BS_GROUPBOX
+    LTEXT "Reîncearcă &transmisia:", -1, 14, 22, 90, 13, WS_VISIBLE
+    EDITTEXT LPTCONFIG_EDIT, 112, 20, 32, 13, WS_VISIBLE | ES_NUMBER
+    DEFPUSHBUTTON "OK", IDOK, 164, 10, 50, 14, WS_VISIBLE
+    PUSHBUTTON "Renunță", IDCANCEL, 164, 27, 50, 14, WS_VISIBLE
+END
+
+
+STRINGTABLE DISCARDABLE
+{
+    IDS_LOCALPORT "Port local"
+    IDS_INVALIDNAME "'%s' nu este un nume valid de port"
+    IDS_PORTEXISTS "Portul %s existsă deja"
+    IDS_NOTHINGTOCONFIG "Acest port nu are opțiuni de configurat"
+}
+
+#pragma code_page(default)
diff --git a/reactos/dll/win32/localui/ui_Ru.rc b/reactos/dll/win32/localui/ui_Ru.rc
new file mode 100644 (file)
index 0000000..96e78f1
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Russian resources for localui
+ *
+ * Copyright 2008 Vitaliy Margolen
+ *
+ * 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
+ */
+
+LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
+
+ADDPORT_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 245, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Äîáàâèòü ëîêàëüíûé ïîðò"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    LTEXT "Ââåäèòå &íàçâàíèå ëîêàëüíîãî ïîðòà:", -1, 7, 13, 194, 13, WS_VISIBLE
+    EDITTEXT ADDPORT_EDIT, 6, 28, 174, 12, WS_VISIBLE | ES_AUTOHSCROLL
+    DEFPUSHBUTTON "OK", IDOK, 199, 10, 40, 14, WS_VISIBLE
+    PUSHBUTTON "Îòìåíèòü", IDCANCEL, 199, 27, 40, 14, WS_VISIBLE
+END
+
+
+LPTCONFIG_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 220, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Óñòàíîâêè ïàðàëëåëüíîãî ïîðòà"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    GROUPBOX "Òàéì-àóò (ñåêóíä)", LPTCONFIG_GROUP, 6, 6, 150, 35, BS_GROUPBOX
+    LTEXT "&Ïîïûòîê ïåðåñûëêè:", -1, 14, 22, 90, 13, WS_VISIBLE
+    EDITTEXT LPTCONFIG_EDIT, 112, 20, 32, 13, WS_VISIBLE | ES_NUMBER
+    DEFPUSHBUTTON "OK", IDOK, 164, 10, 50, 14, WS_VISIBLE
+    PUSHBUTTON "Îòìåíà", IDCANCEL, 164, 27, 50, 14, WS_VISIBLE
+END
+
+
+STRINGTABLE DISCARDABLE
+{
+    IDS_LOCALPORT "Ëîêàëüíûé ïîðò"
+    IDS_INVALIDNAME "Íå ïðàâèëüíîå íàçâàíèå ïîðòà '%s'"
+    IDS_PORTEXISTS "Ïîðò '%s' óæå ñóùåñòâóåò"
+    IDS_NOTHINGTOCONFIG "Ýòîò ïîðò íå èìååò íàñòðîåê"
+}
diff --git a/reactos/dll/win32/localui/ui_Si.rc b/reactos/dll/win32/localui/ui_Si.rc
new file mode 100644 (file)
index 0000000..961a2e0
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Slovenian resources for localui
+ *
+ * Copyright 2008 Rok Mandeljc
+ *
+ * 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
+ */
+
+#pragma code_page(65001)
+
+LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT
+
+ADDPORT_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 245, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Dodaj lokalna vrata"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    LTEXT "&Ime vrat:", -1, 7, 13, 194, 13, WS_VISIBLE
+    EDITTEXT ADDPORT_EDIT, 6, 28, 174, 12, WS_VISIBLE | ES_AUTOHSCROLL
+    DEFPUSHBUTTON "V redu", IDOK, 199, 10, 40, 14, WS_VISIBLE
+    PUSHBUTTON "Prekliči", IDCANCEL, 199, 27, 40, 14, WS_VISIBLE
+END
+
+
+LPTCONFIG_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 220, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Nastavitev LPT vrat"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    GROUPBOX "Časovna omejitev (seconds)", LPTCONFIG_GROUP, 6, 6, 150, 35, BS_GROUPBOX
+    LTEXT "&Ponoven poskus prenosa:", -1, 14, 22, 90, 13, WS_VISIBLE
+    EDITTEXT LPTCONFIG_EDIT, 112, 20, 32, 13, WS_VISIBLE | ES_NUMBER
+    DEFPUSHBUTTON "V redu", IDOK, 164, 10, 50, 14, WS_VISIBLE
+    PUSHBUTTON "Prekliči", IDCANCEL, 164, 27, 50, 14, WS_VISIBLE
+END
+
+
+STRINGTABLE DISCARDABLE
+{
+    IDS_LOCALPORT "Lokalna vrata"
+    IDS_INVALIDNAME "'%s' ni veljavno ime vrat"
+    IDS_PORTEXISTS "Vrata z imenom %s že obstajajo"
+    IDS_NOTHINGTOCONFIG "Ta vrata nimajo možnosti nastavitve"
+}
+
+#pragma code_page(default)
diff --git a/reactos/dll/win32/localui/ui_Sv.rc b/reactos/dll/win32/localui/ui_Sv.rc
new file mode 100644 (file)
index 0000000..3cd22fd
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Swedish resources for localui
+ *
+ * Copyright 2007 Daniel Nylander
+ *
+ * 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
+ */
+
+LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
+
+ADDPORT_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 245, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Lägg till en lokal port"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    LTEXT "&Ange portnamnet att lägga till:", -1, 7, 13, 194, 13, WS_VISIBLE
+    EDITTEXT ADDPORT_EDIT, 6, 28, 174, 12, WS_VISIBLE | ES_AUTOHSCROLL
+    DEFPUSHBUTTON "OK", IDOK, 199, 10, 40, 14, WS_VISIBLE
+    PUSHBUTTON "Avbryt", IDCANCEL, 199, 27, 40, 14, WS_VISIBLE
+END
+
+
+LPTCONFIG_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 220, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Konfigurera LPT-port"
+FONT 8, "MS Shell Dlg"
+BEGIN
+    GROUPBOX "Tidsgräns (sekunder)", LPTCONFIG_GROUP, 6, 6, 150, 35, BS_GROUPBOX
+    LTEXT "Öve&rföringsförsök:", -1, 14, 22, 90, 13, WS_VISIBLE
+    EDITTEXT LPTCONFIG_EDIT, 112, 20, 32, 13, WS_VISIBLE | ES_NUMBER
+    DEFPUSHBUTTON "OK", IDOK, 164, 10, 50, 14, WS_VISIBLE
+    PUSHBUTTON "Avbryt", IDCANCEL, 164, 27, 50, 14, WS_VISIBLE
+END
+
+
+STRINGTABLE DISCARDABLE
+{
+    IDS_LOCALPORT "Lokal port"
+    IDS_INVALIDNAME "'%s' är inte ett giltigt portnamn"
+    IDS_PORTEXISTS "Porten %s finns redan"
+    IDS_NOTHINGTOCONFIG "Denna port har inga alternativ att konfigurera"
+}
diff --git a/reactos/dll/win32/localui/ui_Zh.rc b/reactos/dll/win32/localui/ui_Zh.rc
new file mode 100644 (file)
index 0000000..c1a3b61
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ * localui (Simplified and Traditional Chinese Resources)
+ *
+ * Copyright 2008 Hongbo Ni <hongbo.at.njstar.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
+ */
+
+/* Chinese text is encoded in UTF-8 */
+#pragma code_page(65001)
+
+LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
+
+ADDPORT_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 245, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "添加本地端口"
+FONT 9, "MS Song"
+BEGIN
+    LTEXT "添加本地端口名称(&E):", -1, 7, 13, 194, 13, WS_VISIBLE
+    EDITTEXT ADDPORT_EDIT, 6, 28, 174, 12, WS_VISIBLE | ES_AUTOHSCROLL
+    DEFPUSHBUTTON "确定", IDOK, 199, 10, 40, 14, WS_VISIBLE
+    PUSHBUTTON "取消", IDCANCEL, 199, 27, 40, 14, WS_VISIBLE
+END
+
+
+LPTCONFIG_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 220, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "设置打印端口"
+FONT 9, "MS Song"
+BEGIN
+    GROUPBOX "超时(秒)", LPTCONFIG_GROUP, 6, 6, 150, 35, BS_GROUPBOX
+    LTEXT "重试通讯(&T):", -1, 14, 22, 90, 13, WS_VISIBLE
+    EDITTEXT LPTCONFIG_EDIT, 112, 20, 32, 13, WS_VISIBLE | ES_NUMBER
+    DEFPUSHBUTTON "确定", IDOK, 164, 10, 50, 14, WS_VISIBLE
+    PUSHBUTTON "取消", IDCANCEL, 164, 27, 50, 14, WS_VISIBLE
+END
+
+
+STRINGTABLE DISCARDABLE
+{
+    IDS_LOCALPORT "本地端口"
+    IDS_INVALIDNAME "'%s' 不是有效的端口名称"
+    IDS_PORTEXISTS "端口 %s 已经存在"
+    IDS_NOTHINGTOCONFIG "这个端口没有可设置选项"
+}
+
+LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
+
+ADDPORT_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 245, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "添加本地端口"
+FONT 8, "PMingLiu"
+BEGIN
+    LTEXT "添加本地端口名稱(&E):", -1, 7, 13, 194, 13, WS_VISIBLE
+    EDITTEXT ADDPORT_EDIT, 6, 28, 174, 12, WS_VISIBLE | ES_AUTOHSCROLL
+    DEFPUSHBUTTON "確定", IDOK, 199, 10, 40, 14, WS_VISIBLE
+    PUSHBUTTON "取消", IDCANCEL, 199, 27, 40, 14, WS_VISIBLE
+END
+
+
+LPTCONFIG_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 6, 18, 220, 47
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "設定列印端口"
+FONT 8, "PMingLiu"
+BEGIN
+    GROUPBOX "超時(秒)", LPTCONFIG_GROUP, 6, 6, 150, 35, BS_GROUPBOX
+    LTEXT "重試通訊(&T):", -1, 14, 22, 90, 13, WS_VISIBLE
+    EDITTEXT LPTCONFIG_EDIT, 112, 20, 32, 13, WS_VISIBLE | ES_NUMBER
+    DEFPUSHBUTTON "確定", IDOK, 164, 10, 50, 14, WS_VISIBLE
+    PUSHBUTTON "取消", IDCANCEL, 164, 27, 50, 14, WS_VISIBLE
+END
+
+
+STRINGTABLE DISCARDABLE
+{
+    IDS_LOCALPORT "本地端口"
+    IDS_INVALIDNAME "'%s' 不是有效的端口名稱"
+    IDS_PORTEXISTS "端口 %s 已經存在"
+    IDS_NOTHINGTOCONFIG "這個端口沒有可設定選項"
+}
+
+#pragma code_page(default)
index 4bfc57c..eafaf66 100644 (file)
 <directory name="kernel32">
        <xi:include href="kernel32/kernel32.rbuild" />
 </directory>
+<directory name="localui">
+       <xi:include href="localui/localui.rbuild" />
+</directory>
 <directory name="lpk">
        <xi:include href="lpk/lpk.rbuild" />
 </directory>
index 82ebb73..864ac1c 100644 (file)
@@ -56,6 +56,7 @@ reactos/dll/win32/imagehlp        # Patches for BindImage need review and submis
 reactos/dll/win32/inetcomm        # Autosync
 reactos/dll/win32/inetmib1        # Autosync
 reactos/dll/win32/iphlpapi        # Out of sync
+reactos/dll/win32/localui         # Autosync
 reactos/dll/win32/lz32            # Autosync
 reactos/dll/win32/mapi32          # Autosync
 reactos/dll/win32/mlang           # Autosync