diff --git a/reactos/baseaddress.rbuild b/reactos/baseaddress.rbuild index 33a469acc6d..aa0f140acc3 100644 --- a/reactos/baseaddress.rbuild +++ b/reactos/baseaddress.rbuild @@ -12,6 +12,7 @@ + diff --git a/reactos/boot/bootdata/packages/reactos.dff b/reactos/boot/bootdata/packages/reactos.dff index 96debe46223..c61ff45a7f4 100644 --- a/reactos/boot/bootdata/packages/reactos.dff +++ b/reactos/boot/bootdata/packages/reactos.dff @@ -141,6 +141,7 @@ dll\cpl\console\console.dll 1 dll\cpl\desk\desk.cpl 1 dll\cpl\hdwwiz\hdwwiz.cpl 1 dll\cpl\input\input.dll 1 +dll\cpl\inetcpl\incetcpl.cpl 1 dll\cpl\intl\intl.cpl 1 dll\cpl\joy\joy.cpl 1 ;dll\cpl\liccpa\liccpa.cpl 1 diff --git a/reactos/dll/cpl/cpl.rbuild b/reactos/dll/cpl/cpl.rbuild index 95c9c19850e..4f4e896d174 100644 --- a/reactos/dll/cpl/cpl.rbuild +++ b/reactos/dll/cpl/cpl.rbuild @@ -16,6 +16,9 @@ + + + diff --git a/reactos/dll/cpl/inetcpl/content.c b/reactos/dll/cpl/inetcpl/content.c new file mode 100644 index 00000000000..8fb1729308e --- /dev/null +++ b/reactos/dll/cpl/inetcpl/content.c @@ -0,0 +1,99 @@ +/* + * Internet control panel applet: content propsheet + * + * Copyright 2010 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 + * + */ + +#define NONAMELESSUNION + +#include +#include +#include +#include +#include + +#include "inetcpl.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(inetcpl); + +/********************************************************************* + * display_cert_manager (internal) + * + * call cryptui to display a specific certificate manager dialog + * + */ +static BOOL display_cert_manager(HWND parent, DWORD flags) +{ + CRYPTUI_CERT_MGR_STRUCT dlg; + + TRACE("(%p, 0x%x)\n", parent, flags); + + ZeroMemory(&dlg, sizeof(CRYPTUI_CERT_MGR_STRUCT)); + dlg.dwSize = sizeof(CRYPTUI_CERT_MGR_STRUCT); + dlg.hwndParent = parent; + dlg.dwFlags = flags; + + return CryptUIDlgCertMgr(&dlg); +} + +/********************************************************************* + * LaunchSiteCertDialog (inetcpl.@) + * + * Launch a dialog to manage personal certificates + * + * PARAMS + * parent [I] Handle for the parent window + * + * RETURNS + * Failure: FALSE + * Success: TRUE + * + * NOTES + * rundll32 callable function: rundll32 inetcpl.cpl,LaunchSiteCertDialog + * + */ +BOOL WINAPI LaunchSiteCertDialog(HWND parent) +{ + return display_cert_manager(parent, 0); +} + +/********************************************************************* + * content_dlgproc [internal] + * + */ +INT_PTR CALLBACK content_dlgproc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) +{ + if ((msg != WM_SETCURSOR) && (msg != WM_NCHITTEST) && (msg != WM_MOUSEMOVE)) + TRACE("(%p, 0x%08x/%d, 0x%lx, 0x%lx)\n", hwnd, msg, msg, wparam, lparam); + + if (msg == WM_COMMAND) + { + switch (LOWORD(wparam)) + { + case IDC_CERT: + display_cert_manager(hwnd, 0); + break; + + case IDC_CERT_PUBLISHER: + display_cert_manager(hwnd, CRYPTUI_CERT_MGR_PUBLISHER_TAB); + break; + } + } + return FALSE; +} diff --git a/reactos/dll/cpl/inetcpl/general.c b/reactos/dll/cpl/inetcpl/general.c new file mode 100644 index 00000000000..1d8f027e042 --- /dev/null +++ b/reactos/dll/cpl/inetcpl/general.c @@ -0,0 +1,297 @@ +/* + * Internet control panel applet: general propsheet + * + * Copyright 2010 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 + * + */ + +#define NONAMELESSUNION + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "inetcpl.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(inetcpl); + +static const WCHAR about_blank[] = {'a','b','o','u','t',':','b','l','a','n','k',0}; +static const WCHAR start_page[] = {'S','t','a','r','t',' ','P','a','g','e',0}; +static const WCHAR reg_ie_main[] = {'S','o','f','t','w','a','r','e','\\', + 'M','i','c','r','o','s','o','f','t','\\', + 'I','n','t','e','r','n','e','t',' ','E','x','p','l','o','r','e','r','\\', + 'M','a','i','n',0}; + +/* list of unimplemented buttons */ +static DWORD disabled_general_buttons[] = {IDC_HOME_CURRENT, + IDC_HOME_DEFAULT, + IDC_HISTORY_SETTINGS, + 0}; +static DWORD disabled_delhist_buttons[] = {IDC_DELETE_COOKIES, + IDC_DELETE_HISTORY, + IDC_DELETE_FORM_DATA, + IDC_DELETE_PASSWORDS, + 0}; + +/********************************************************************* + * delhist_on_command [internal] + * + * handle WM_COMMAND in Delete browsing history dialog + * + */ +static INT_PTR delhist_on_command(HWND hdlg, WPARAM wparam) +{ + switch (wparam) + { + case MAKEWPARAM(IDOK, BN_CLICKED): + if (!FreeUrlCacheSpaceW(NULL, 100, FCS_PERCENT_CACHE_SPACE)) + break; /* Don't close the dialog. */ + EndDialog(hdlg, IDOK); + return TRUE; + + case MAKEWPARAM(IDCANCEL, BN_CLICKED): + EndDialog(hdlg, IDCANCEL); + return TRUE; + + case MAKEWPARAM(IDC_DELETE_TEMP_FILES, BN_CLICKED): + case MAKEWPARAM(IDC_DELETE_COOKIES, BN_CLICKED): + case MAKEWPARAM(IDC_DELETE_HISTORY, BN_CLICKED): + case MAKEWPARAM(IDC_DELETE_FORM_DATA, BN_CLICKED): + case MAKEWPARAM(IDC_DELETE_PASSWORDS, BN_CLICKED): + { + BOOL any = IsDlgButtonChecked(hdlg, IDC_DELETE_TEMP_FILES) || + IsDlgButtonChecked(hdlg, IDC_DELETE_COOKIES) || + IsDlgButtonChecked(hdlg, IDC_DELETE_HISTORY) || + IsDlgButtonChecked(hdlg, IDC_DELETE_FORM_DATA) || + IsDlgButtonChecked(hdlg, IDC_DELETE_PASSWORDS); + EnableWindow(GetDlgItem(hdlg, IDOK), any); + break; + } + + default: + break; + } + return FALSE; +} + + +/********************************************************************* + * delhist_dlgproc [internal] + * + * Delete browsing history dialog procedure + * + */ +static INT_PTR CALLBACK delhist_dlgproc(HWND hdlg, UINT msg, WPARAM wparam, LPARAM lparam) +{ + switch (msg) + { + case WM_COMMAND: + return delhist_on_command(hdlg, wparam); + + case WM_INITDIALOG: + { + DWORD *ptr = disabled_delhist_buttons; + while (*ptr) + { + EnableWindow(GetDlgItem(hdlg, *ptr), FALSE); + ptr++; + } + CheckDlgButton(hdlg, IDC_DELETE_TEMP_FILES, BST_CHECKED); + break; + } + + default: + break; + } + return FALSE; +} + +/********************************************************************* + * parse_url_from_outside [internal] + * + * Filter an URL, add a usable scheme, when needed + * + */ +static DWORD parse_url_from_outside(LPCWSTR url, LPWSTR out, DWORD maxlen) +{ + HMODULE hdll; + DWORD (WINAPI *pParseURLFromOutsideSourceW)(LPCWSTR, LPWSTR, LPDWORD, LPDWORD); + DWORD res; + + hdll = LoadLibraryA("shdocvw.dll"); + pParseURLFromOutsideSourceW = (void *) GetProcAddress(hdll, (LPSTR) 170); + + if (pParseURLFromOutsideSourceW) + { + res = pParseURLFromOutsideSourceW(url, out, &maxlen, NULL); + FreeLibrary(hdll); + return res; + } + + ERR("failed to get ordinal 170: %d\n", GetLastError()); + FreeLibrary(hdll); + return 0; +} + +/********************************************************************* + * general_on_command [internal] + * + * handle WM_COMMAND + * + */ +static INT_PTR general_on_command(HWND hwnd, WPARAM wparam) +{ + + switch (wparam) + { + case MAKEWPARAM(IDC_HOME_EDIT, EN_CHANGE): + /* enable apply button */ + SendMessageW(GetParent(hwnd), PSM_CHANGED, (WPARAM)hwnd, 0); + break; + + case MAKEWPARAM(IDC_HOME_BLANK, BN_CLICKED): + SetDlgItemTextW(hwnd, IDC_HOME_EDIT, about_blank); + break; + + case MAKEWPARAM(IDC_HISTORY_DELETE, BN_CLICKED): + DialogBoxW(hcpl, MAKEINTRESOURCEW(IDD_DELETE_HISTORY), hwnd, + delhist_dlgproc); + break; + + default: + TRACE("not implemented for command: %d/%d\n", HIWORD(wparam), LOWORD(wparam)); + return FALSE; + } + return TRUE; +} + +/********************************************************************* + * general_on_initdialog [internal] + * + * handle WM_INITDIALOG + * + */ +static VOID general_on_initdialog(HWND hwnd) +{ + WCHAR buffer[INTERNET_MAX_URL_LENGTH]; + DWORD len; + DWORD type; + LONG res; + DWORD *ptr = disabled_general_buttons; + + /* disable unimplemented buttons */ + while (*ptr) + { + EnableWindow(GetDlgItem(hwnd, *ptr), FALSE); + ptr++; + } + + /* read current homepage from the registry. Try HCU first, then HKLM */ + *buffer = 0; + len = sizeof(buffer); + type = REG_SZ; + res = SHRegGetUSValueW(reg_ie_main, start_page, &type, buffer, &len, FALSE, (LPBYTE) about_blank, sizeof(about_blank)); + + if (!res && (type == REG_SZ)) + { + SetDlgItemTextW(hwnd, IDC_HOME_EDIT, buffer); + } +} + +/********************************************************************* + * general_on_notify [internal] + * + * handle WM_NOTIFY + * + */ +static INT_PTR general_on_notify(HWND hwnd, WPARAM wparam, LPARAM lparam) +{ + PSHNOTIFY *psn; + WCHAR buffer[INTERNET_MAX_URL_LENGTH]; + WCHAR parsed[INTERNET_MAX_URL_LENGTH]; + LONG res; + + psn = (PSHNOTIFY *) lparam; + TRACE("WM_NOTIFY (%p, 0x%lx, 0x%lx) from %p with code: %d\n", hwnd, wparam, lparam, + psn->hdr.hwndFrom, psn->hdr.code); + + if (psn->hdr.code == PSN_APPLY) + { + *buffer = 0; + GetDlgItemTextW(hwnd, IDC_HOME_EDIT, buffer, sizeof(buffer)/sizeof(WCHAR)); + TRACE("EDITTEXT has %s\n", debugstr_w(buffer)); + + res = parse_url_from_outside(buffer, parsed, sizeof(parsed)/sizeof(WCHAR)); + TRACE("got %d with %s\n", res, debugstr_w(parsed)); + + if (res) + { + HKEY hkey; + + /* update the dialog, when needed */ + if (lstrcmpW(buffer, parsed)) + SetDlgItemTextW(hwnd, IDC_HOME_EDIT, parsed); + + /* update the registry */ + res = RegOpenKeyW(HKEY_CURRENT_USER, reg_ie_main, &hkey); + if (!res) + { + res = RegSetValueExW(hkey, start_page, 0, REG_SZ, (const BYTE *)parsed, + (lstrlenW(parsed) + 1) * sizeof(WCHAR)); + RegCloseKey(hkey); + return !res; + } + } + } + return FALSE; +} + +/********************************************************************* + * general_dlgproc [internal] + * + */ +INT_PTR CALLBACK general_dlgproc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) +{ + + switch (msg) + { + case WM_INITDIALOG: + general_on_initdialog(hwnd); + return TRUE; + + case WM_COMMAND: + return general_on_command(hwnd, wparam); + + case WM_NOTIFY: + return general_on_notify(hwnd, wparam, lparam); + + default: + /* do not flood the log */ + if ((msg == WM_SETCURSOR) || (msg == WM_NCHITTEST) || (msg == WM_MOUSEMOVE)) + return FALSE; + + TRACE("(%p, 0x%08x/%d, 0x%lx, 0x%lx)\n", hwnd, msg, msg, wparam, lparam); + + } + return FALSE; +} diff --git a/reactos/dll/cpl/inetcpl/inetcpl.c b/reactos/dll/cpl/inetcpl/inetcpl.c new file mode 100644 index 00000000000..751eccd468a --- /dev/null +++ b/reactos/dll/cpl/inetcpl/inetcpl.c @@ -0,0 +1,203 @@ +/* + * Internet control panel applet + * + * Copyright 2010 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 + * + */ + +#define NONAMELESSUNION +#define COBJMACROS +#define CONST_VTABLE + +#include +#include +#include +#include +#include +#include +#include +#include "ole2.h" + +#include "wine/debug.h" + +#include "inetcpl.h" + + +WINE_DEFAULT_DEBUG_CHANNEL(inetcpl); + +DECLSPEC_HIDDEN HMODULE hcpl; + +/********************************************************************* + * DllMain (inetcpl.@) + */ +BOOL WINAPI DllMain(HINSTANCE hdll, DWORD reason, LPVOID reserved) +{ + TRACE("(%p, %d, %p)\n", hdll, reason, reserved); + + switch (reason) + { + /* case DLL_WINE_PREATTACH: + return FALSE; prefer native version */ + + case DLL_PROCESS_ATTACH: + DisableThreadLibraryCalls(hdll); + hcpl = hdll; + } + return TRUE; +} + +/****************************************************************************** + * propsheet_callback [internal] + * + */ +static int CALLBACK propsheet_callback(HWND hwnd, UINT msg, LPARAM lparam) +{ + + TRACE("(%p, 0x%08x/%d, 0x%lx)\n", hwnd, msg, msg, lparam); + switch (msg) + { + case PSCB_INITIALIZED: + SendMessageW(hwnd, WM_SETICON, ICON_BIG, (LPARAM) LoadIconW(hcpl, MAKEINTRESOURCEW(ICO_MAIN))); + break; + } + return 0; +} + +/****************************************************************************** + * display_cpl_sheets [internal] + * + * Build and display the dialog with all control panel propertysheets + * + */ +static void display_cpl_sheets(HWND parent) +{ + INITCOMMONCONTROLSEX icex; + PROPSHEETPAGEW psp[NUM_PROPERTY_PAGES]; + PROPSHEETHEADERW psh; + DWORD id = 0; + + OleInitialize(NULL); + /* Initialize common controls */ + icex.dwSize = sizeof(INITCOMMONCONTROLSEX); + icex.dwICC = ICC_LISTVIEW_CLASSES | ICC_BAR_CLASSES; + InitCommonControlsEx(&icex); + + ZeroMemory(&psh, sizeof(psh)); + ZeroMemory(psp, sizeof(psp)); + + /* Fill out all PROPSHEETPAGE */ + psp[id].dwSize = sizeof (PROPSHEETPAGEW); + psp[id].hInstance = hcpl; + psp[id].u.pszTemplate = MAKEINTRESOURCEW(IDD_GENERAL); + psp[id].pfnDlgProc = general_dlgproc; + id++; + + psp[id].dwSize = sizeof (PROPSHEETPAGEW); + psp[id].hInstance = hcpl; + psp[id].u.pszTemplate = MAKEINTRESOURCEW(IDD_SECURITY); + psp[id].pfnDlgProc = security_dlgproc; + id++; + + psp[id].dwSize = sizeof (PROPSHEETPAGEW); + psp[id].hInstance = hcpl; + psp[id].u.pszTemplate = MAKEINTRESOURCEW(IDD_CONTENT); + psp[id].pfnDlgProc = content_dlgproc; + id++; + + /* Fill out the PROPSHEETHEADER */ + psh.dwSize = sizeof (PROPSHEETHEADERW); + psh.dwFlags = PSH_PROPSHEETPAGE | PSH_USEICONID | PSH_USECALLBACK; + psh.hwndParent = parent; + psh.hInstance = hcpl; + psh.u.pszIcon = MAKEINTRESOURCEW(ICO_MAIN); + psh.pszCaption = MAKEINTRESOURCEW(IDS_CPL_NAME); + psh.nPages = id; + psh.u3.ppsp = psp; + psh.pfnCallback = propsheet_callback; + + /* display the dialog */ + PropertySheetW(&psh); + + OleUninitialize(); +} + +/********************************************************************* + * CPlApplet (inetcpl.@) + * + * Control Panel entry point + * + * PARAMS + * hWnd [I] Handle for the Control Panel Window + * command [I] CPL_* Command + * lParam1 [I] first extra Parameter + * lParam2 [I] second extra Parameter + * + * RETURNS + * Depends on the command + * + */ +LONG CALLBACK CPlApplet(HWND hWnd, UINT command, LPARAM lParam1, LPARAM lParam2) +{ + TRACE("(%p, %u, 0x%lx, 0x%lx)\n", hWnd, command, lParam1, lParam2); + + switch (command) + { + case CPL_INIT: + return TRUE; + + case CPL_GETCOUNT: + return 1; + + case CPL_INQUIRE: + { + CPLINFO *appletInfo = (CPLINFO *) lParam2; + + appletInfo->idIcon = ICO_MAIN; + appletInfo->idName = IDS_CPL_NAME; + appletInfo->idInfo = IDS_CPL_INFO; + appletInfo->lData = 0; + return TRUE; + } + + case CPL_DBLCLK: + display_cpl_sheets(hWnd); + break; + } + + return FALSE; +} + +/********************************************************************* + * LaunchInternetControlPanel (inetcpl.@) + * + * Launch the Internet Control Panel dialog + * + * PARAMS + * parent [I] Handle for the parent window + * + * RETURNS + * Success: TRUE + * + * NOTES + * rundll32 callable function: rundll32 inetcpl.cpl,LaunchInternetControlPanel + * + */ +BOOL WINAPI LaunchInternetControlPanel(HWND parent) +{ + display_cpl_sheets(parent); + return TRUE; +} diff --git a/reactos/dll/cpl/inetcpl/inetcpl.h b/reactos/dll/cpl/inetcpl/inetcpl.h new file mode 100644 index 00000000000..bd1e55a5bab --- /dev/null +++ b/reactos/dll/cpl/inetcpl/inetcpl.h @@ -0,0 +1,105 @@ +/* + * Internet control panel applet + * + * Copyright 2010 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_INETCPL__ +#define __WINE_INETCPL__ + +#include +#include +#include + +extern HMODULE hcpl; +INT_PTR CALLBACK content_dlgproc(HWND, UINT, WPARAM, LPARAM) DECLSPEC_HIDDEN; +INT_PTR CALLBACK general_dlgproc(HWND, UINT, WPARAM, LPARAM) DECLSPEC_HIDDEN; +INT_PTR CALLBACK security_dlgproc(HWND, UINT, WPARAM, LPARAM) DECLSPEC_HIDDEN; + +/* ## Memory allocation functions ## */ + +static inline void * __WINE_ALLOC_SIZE(1) heap_alloc( size_t len ) +{ + return HeapAlloc( GetProcessHeap(), 0, len ); +} + +static inline void * __WINE_ALLOC_SIZE(1) heap_alloc_zero( size_t len ) +{ + return HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, len ); +} + +static inline BOOL heap_free( void *mem ) +{ + return HeapFree( GetProcessHeap(), 0, mem ); +} + +/* ######### */ + +#define NUM_PROPERTY_PAGES 8 + +/* icons */ +#define ICO_MAIN 100 + +/* strings */ +#define IDS_CPL_NAME 1 +#define IDS_CPL_INFO 2 +#define IDS_SEC_SETTINGS 0x10 +#define IDS_SEC_LEVEL0 0x100 +#define IDS_SEC_LEVEL1 0x101 +#define IDS_SEC_LEVEL2 0x102 +#define IDS_SEC_LEVEL3 0x103 +#define IDS_SEC_LEVEL4 0x104 +#define IDS_SEC_LEVEL5 0x105 +#define IDS_SEC_LEVEL0_INFO 0x200 +#define IDS_SEC_LEVEL1_INFO 0x210 +#define IDS_SEC_LEVEL2_INFO 0x220 +#define IDS_SEC_LEVEL3_INFO 0x230 +#define IDS_SEC_LEVEL4_INFO 0x240 +#define IDS_SEC_LEVEL5_INFO 0x250 + +/* dialogs */ +#define IDC_STATIC -1 + +#define IDD_GENERAL 1000 +#define IDC_HOME_EDIT 1000 +#define IDC_HOME_CURRENT 1001 +#define IDC_HOME_DEFAULT 1002 +#define IDC_HOME_BLANK 1003 +#define IDC_HISTORY_DELETE 1004 +#define IDC_HISTORY_SETTINGS 1005 + +#define IDD_DELETE_HISTORY 1010 +#define IDC_DELETE_TEMP_FILES 1011 +#define IDC_DELETE_COOKIES 1012 +#define IDC_DELETE_HISTORY 1013 +#define IDC_DELETE_FORM_DATA 1014 +#define IDC_DELETE_PASSWORDS 1015 + +#define IDD_SECURITY 2000 +#define IDC_SEC_LISTVIEW 2001 +#define IDC_SEC_ZONE_INFO 2002 +#define IDC_SEC_GROUP 2003 +#define IDC_SEC_TRACKBAR 2004 +#define IDC_SEC_LEVEL 2005 +#define IDC_SEC_LEVEL_INFO 2006 + +#define IDD_CONTENT 4000 +#define IDC_CERT 4100 +#define IDC_CERT_PUBLISHER 4101 + +#endif diff --git a/reactos/dll/cpl/inetcpl/inetcpl.ico b/reactos/dll/cpl/inetcpl/inetcpl.ico new file mode 100644 index 00000000000..1eae208a702 Binary files /dev/null and b/reactos/dll/cpl/inetcpl/inetcpl.ico differ diff --git a/reactos/dll/cpl/inetcpl/inetcpl.rbuild b/reactos/dll/cpl/inetcpl/inetcpl.rbuild new file mode 100644 index 00000000000..f3abf389807 --- /dev/null +++ b/reactos/dll/cpl/inetcpl/inetcpl.rbuild @@ -0,0 +1,23 @@ + + + + + . + include/reactos/wine + cryptui + wininet + ole32 + urlmon + delayimp + wine + advapi32 + user32 + comctl32 + gdi32 + shlwapi + inetcpl.c + content.c + general.c + security.c + inetcpl.rc + diff --git a/reactos/dll/cpl/inetcpl/inetcpl.rc b/reactos/dll/cpl/inetcpl/inetcpl.rc new file mode 100644 index 00000000000..48b23738ed5 --- /dev/null +++ b/reactos/dll/cpl/inetcpl/inetcpl.rc @@ -0,0 +1,69 @@ +/* + * Internet control panel applet + * + * Copyright 2010 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 "inetcpl.h" + +#include "lang/de-DE.rc" +#include "lang/en-US.rc" +#include "lang/fr-FR.rc" +#include "lang/He.rc" +#include "lang/it-IT.rc" +#include "lang/ja-JP.rc" +#include "lang/ko-KR.rc" +#include "lang/lt-LT.rc" +#include "lang/nl-NL.rc" +#include "lang/pt-PT.rc" +#include "lang/ru-RU.rc" +#include "lang/Sr.rc" +#include "lang/sv-SE.rc" +#include "lang/uk-UA.rc" + +LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT + +STRINGTABLE DISCARDABLE +BEGIN + IDS_CPL_NAME "Internet Settings" + IDS_CPL_INFO "Configure Wine Internet Browser and related settings" + IDS_SEC_SETTINGS "Security settings for zone: " + IDS_SEC_LEVEL0 "Custom" + IDS_SEC_LEVEL1 "Very Low" + IDS_SEC_LEVEL2 "Low" + IDS_SEC_LEVEL3 "Medium" + IDS_SEC_LEVEL4 "Increased" + IDS_SEC_LEVEL5 "High" +END + +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL + +#define WINE_FILENAME_STR "inetcpl.cpl" +#define WINE_FILEDESCRIPTION_STR "Internet Control Panel" + +/* Same Version as IE 8 on WinXP */ +#define WINE_FILEVERSION 8,0,6001,18939 +#define WINE_FILEVERSION_STR "8.00.6001.18939" + +#define WINE_PRODUCTVERSION 8,0,6001,18939 +#define WINE_PRODUCTVERSION_STR "8.00.6001.18939" + +#include "wine/wine_common_ver.rc" + +/* @makedep: inetcpl.ico */ +ICO_MAIN ICON "inetcpl.ico" diff --git a/reactos/dll/cpl/inetcpl/inetcpl.spec b/reactos/dll/cpl/inetcpl/inetcpl.spec new file mode 100644 index 00000000000..eaf5e4d6e7d --- /dev/null +++ b/reactos/dll/cpl/inetcpl/inetcpl.spec @@ -0,0 +1,25 @@ +@ stub ClearMyTracksByProcessW +@ stub AddInternetPropertySheets +@ stub AddInternetPropertySheetsEx +@ stdcall CPlApplet(long long long long) +@ stub DisplayPopupWindowManagementDialog +@ stub DllInstall +@ stub GetAddSitesDisplayUrl +@ stub ImportExportPFX +@ stub LaunchAddSitesDialog +@ stub LaunchConnectionDialog +@ stdcall LaunchInternetControlPanel(long) +@ stub LaunchPerSitePrivacyActionDialog +@ stub LaunchPopupWindowManagementDialog +@ stub LaunchPrivacyDialog +@ stub LaunchSecurityDialog +@ stub LaunchSecurityDialogEx +@ stdcall LaunchSiteCertDialog(long) +@ stub OpenFontsDialog +@ stub OpenFontsDialogEx +@ stub OpenLanguageDialog +@ stub ResetIEtoDefaults +@ stub ShowDeleteBrowsingHistoryDialog +@ stub ShowFeedOptionsDialog +@ stub ShowLanguageDialog +@ stub SiteCert_RunFromCmdLine diff --git a/reactos/dll/cpl/inetcpl/inetcpl.svg b/reactos/dll/cpl/inetcpl/inetcpl.svg new file mode 100644 index 00000000000..7b943b1ea64 --- /dev/null +++ b/reactos/dll/cpl/inetcpl/inetcpl.svg @@ -0,0 +1,265 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/reactos/dll/cpl/inetcpl/lang/He.rc b/reactos/dll/cpl/inetcpl/lang/He.rc new file mode 100644 index 00000000000..256ca084125 --- /dev/null +++ b/reactos/dll/cpl/inetcpl/lang/He.rc @@ -0,0 +1,66 @@ +/* + * Hebrew resources for the Internet control panel applet + * + * Copyright 2010 Detlef Riekenberg + * Copyright 2010 Yaron Shahrabani + * + * 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 "inetcpl.h" + +#pragma code_page(65001) + +LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT + +/* "General" propsheet */ +IDD_GENERAL DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +EXSTYLE WS_EX_LAYOUTRTL +FONT 8, "MS Shell Dlg" +CAPTION "כללי" +BEGIN + + GROUPBOX " דף הבית ", IDC_STATIC, 4, 4, 312, 52 + LTEXT "באפשרותך לבחור את הכתובת שתשמש כדף הבית שלך.", + IDC_STATIC, 58, 10, 252, 10 + EDITTEXT IDC_HOME_EDIT, 58, 22, 252, 12, WS_VISIBLE | ES_AUTOHSCROLL + PUSHBUTTON "העמוד ה&נוכחי", IDC_HOME_CURRENT, 58, 36, 80, 14 + PUSHBUTTON "עמוד &בררת המחדל", IDC_HOME_DEFAULT, 144, 36, 80, 14 + PUSHBUTTON "עמוד &ריק", IDC_HOME_BLANK, 230, 36, 80, 14 + GROUPBOX " Browsing history ", IDC_STATIC, 4, 60, 312, 46 + LTEXT "You can delete cached pages, cookies and other data.", + IDC_STATIC, 58, 72, 252, 10 + PUSHBUTTON "Delete &files...", IDC_HISTORY_DELETE, 144, 86, 80, 14 + PUSHBUTTON "&Settings...", IDC_HISTORY_SETTINGS, 230, 86, 80, 14 + +END + +/* "Content" propsheet */ +IDD_CONTENT DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +EXSTYLE WS_EX_LAYOUTRTL +FONT 8, "MS Shell Dlg" +CAPTION "תוכן" +BEGIN + + GROUPBOX " אישורים ", IDC_STATIC, 4, 4, 312, 50 + LTEXT "אישורים משמשים כדי לזהות אותך וגם כדי לזהות רשויות ומפיצים.", + IDC_STATIC, 58, 14, 252, 18 + PUSHBUTTON "אישורים...", IDC_CERT, 146, 34, 80, 14 + PUSHBUTTON "מפיצים...", IDC_CERT_PUBLISHER, 230, 34, 80, 14 + +END diff --git a/reactos/dll/cpl/inetcpl/lang/Sr.rc b/reactos/dll/cpl/inetcpl/lang/Sr.rc new file mode 100644 index 00000000000..0312d2a2b73 --- /dev/null +++ b/reactos/dll/cpl/inetcpl/lang/Sr.rc @@ -0,0 +1,103 @@ +/* + * Internet control panel applet + * + * Copyright 2010 Detlef Riekenberg + * Copyright 2010 Đorđe Vasiljević + * + * 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 "inetcpl.h" + +#pragma code_page(65001) + +LANGUAGE LANG_SERBIAN, SUBLANG_SERBIAN_CYRILLIC + +/* "General" propsheet */ +IDD_GENERAL DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Опште" +BEGIN + + GROUPBOX "Почетна страна", IDC_STATIC, 4, 4, 312, 52 + LTEXT "Изаберите адресу која ће се користити за почетну страну.", + IDC_STATIC, 58, 10, 252, 10 + EDITTEXT IDC_HOME_EDIT, 58, 22, 252, 12, WS_VISIBLE | ES_AUTOHSCROLL + PUSHBUTTON "&Текућа страна", IDC_HOME_CURRENT, 58, 36, 80, 14 + PUSHBUTTON "&Подразумевана страна", IDC_HOME_DEFAULT, 144, 36, 80, 14 + PUSHBUTTON "Празна &страна", IDC_HOME_BLANK, 230, 36, 80, 14 + GROUPBOX " Browsing history ", IDC_STATIC, 4, 60, 312, 46 + LTEXT "You can delete cached pages, cookies and other data.", + IDC_STATIC, 58, 72, 252, 10 + PUSHBUTTON "Delete &files...", IDC_HISTORY_DELETE, 144, 86, 80, 14 + PUSHBUTTON "&Settings...", IDC_HISTORY_SETTINGS, 230, 86, 80, 14 + +END + +/* "Content" propsheet */ +IDD_CONTENT DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Садржај" +BEGIN + + GROUPBOX "Сертификати", IDC_STATIC, 4, 4, 312, 50 + LTEXT "Сертификати се користе за личну идентификацију, као и за препознавање ауторитета и издавача сертификата.", + IDC_STATIC, 58, 14, 252, 18 + PUSHBUTTON "Сертификати...", IDC_CERT, 146, 34, 80, 14 + PUSHBUTTON "Издавачи...", IDC_CERT_PUBLISHER, 230, 34, 80, 14 + +END + +LANGUAGE LANG_SERBIAN, SUBLANG_SERBIAN_LATIN + +/* "General" propsheet */ +IDD_GENERAL DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Opšte" +BEGIN + + GROUPBOX "Početna strana", IDC_STATIC, 4, 4, 312, 52 + LTEXT "Izaberite adresu koja će se koristiti za početnu stranu.", + IDC_STATIC, 58, 10, 252, 10 + EDITTEXT IDC_HOME_EDIT, 58, 22, 252, 12, WS_VISIBLE | ES_AUTOHSCROLL + PUSHBUTTON "&Tekuća strana", IDC_HOME_CURRENT, 58, 36, 80, 14 + PUSHBUTTON "&Podrazumevana strana", IDC_HOME_DEFAULT, 144, 36, 80, 14 + PUSHBUTTON "Prazna &strana", IDC_HOME_BLANK, 230, 36, 80, 14 + GROUPBOX " Browsing history ", IDC_STATIC, 4, 60, 312, 46 + LTEXT "You can delete cached pages, cookies and other data.", + IDC_STATIC, 58, 72, 252, 10 + PUSHBUTTON "Delete &files...", IDC_HISTORY_DELETE, 144, 86, 80, 14 + PUSHBUTTON "&Settings...", IDC_HISTORY_SETTINGS, 230, 86, 80, 14 + +END + +/* "Content" propsheet */ +IDD_CONTENT DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Sadržaj" +BEGIN + + GROUPBOX "Sertifikati", IDC_STATIC, 4, 4, 312, 50 + LTEXT "Sertifikati se koriste za ličnu identifikaciju, kao i za prepoznavanje autoriteta i izdavača sertifikata.", + IDC_STATIC, 58, 14, 252, 18 + PUSHBUTTON "Sertifikati...", IDC_CERT, 146, 34, 80, 14 + PUSHBUTTON "Izdavači...", IDC_CERT_PUBLISHER, 230, 34, 80, 14 + +END diff --git a/reactos/dll/cpl/inetcpl/lang/de-DE.rc b/reactos/dll/cpl/inetcpl/lang/de-DE.rc new file mode 100644 index 00000000000..5d278f140ca --- /dev/null +++ b/reactos/dll/cpl/inetcpl/lang/de-DE.rc @@ -0,0 +1,103 @@ +/* + * German resources for the Internet control panel applet + * + * Copyright 2010 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 "inetcpl.h" + +#pragma code_page(65001) + +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +/* "General" propsheet */ +IDD_GENERAL DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Allgemein" +BEGIN + + GROUPBOX " Startseite ", IDC_STATIC, 4, 4, 312, 52 + LTEXT "Sie können eine Addresse wählen, die als Startseite verwendet wird.", + IDC_STATIC, 58, 10, 252, 10 + EDITTEXT IDC_HOME_EDIT, 58, 22, 252, 12, WS_VISIBLE | ES_AUTOHSCROLL + PUSHBUTTON "A&ktuelle Seite", IDC_HOME_CURRENT, 58, 36, 80, 14 + PUSHBUTTON "&Standardseite", IDC_HOME_DEFAULT, 144, 36, 80, 14 + PUSHBUTTON "&Leere Seite", IDC_HOME_BLANK, 230, 36, 80, 14 + GROUPBOX " Browserverlauf ", IDC_STATIC, 4, 60, 312, 46 + LTEXT "Sie können temporäre Dateien, Cookies und andere Daten löschen.", + IDC_STATIC, 58, 72, 252, 10 + PUSHBUTTON "&Daten löschen...", IDC_HISTORY_DELETE, 144, 86, 80, 14 + PUSHBUTTON "&Einstellungen...", IDC_HISTORY_SETTINGS, 230, 86, 80, 14 + +END + +/* "Delete browsing history" dialog */ +IDD_DELETE_HISTORY DIALOG 0, 0, 250, 250 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +FONT 8, "MS Shell Dlg" +CAPTION "Gespeicherte Browserdaten löchen" +BEGIN + + AUTOCHECKBOX "&Temporäre Inernetdateien\nZwischengespeicherte Kopien von Webseiten, Bildern und Zertifikaten.", + IDC_DELETE_TEMP_FILES, 10, 8, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "&Cookies\nVon Webseiten auf ihrem Computer gespeicherte Dateien, die Benutzereinstellungen oder Anmeldeinformationen enthalten.", + IDC_DELETE_COOKIES, 10, 38, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "&Verlauf\nListe von Webseiten, die Sie aufgerufen haben.", + IDC_DELETE_HISTORY, 10, 68, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "&Formulardaten\nBenutzernamen und andere Informationen, die Sie in Formulare eingegeben haben.", + IDC_DELETE_FORM_DATA, 10, 98, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "&Kennwörter\nGespeicherte Kennwörter, die Sie in Formulare eingegeben haben.", + IDC_DELETE_PASSWORDS, 10, 128, 230, 30, BS_TOP | BS_MULTILINE + DEFPUSHBUTTON "&Abbrechen", IDCANCEL, 185, 230, 60, 15, WS_GROUP + PUSHBUTTON "&Löschen", IDOK, 120, 230, 60, 15, WS_GROUP + +END + +/* "Security" propsheet */ +IDD_SECURITY DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Sicherheit" +BEGIN + + CONTROL "Listview", IDC_SEC_LISTVIEW, "SysListView32", + LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_VSCROLL, + 4, 4, 312, 58 + LTEXT "", IDC_SEC_ZONE_INFO, 4, 68, 312, 20 + GROUPBOX "", IDC_SEC_GROUP, 4, 88, 312, 126 + CONTROL "trackbar", IDC_SEC_TRACKBAR, "msctls_trackbar32", + TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | TBS_REVERSED, 8, 98, 32, 100 + LTEXT "", IDC_SEC_LEVEL, 48, 102, 180, 12 + LTEXT "", IDC_SEC_LEVEL_INFO, 48, 114, 260, 80 +END + +/* "Content" propsheet */ +IDD_CONTENT DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Inhalte" +BEGIN + + GROUPBOX " Zertifikate ", IDC_STATIC, 4, 4, 312, 50 + LTEXT "Zertifikate werden benutzt, um sich persönlich, Zertifizierungsstellen und Herausgeber von Zertifikaten zu identifizieren.", + IDC_STATIC, 58, 14, 252, 18 + PUSHBUTTON "Zertifikate...", IDC_CERT, 146, 34, 80, 14 + PUSHBUTTON "Herausgeber...", IDC_CERT_PUBLISHER, 230, 34, 80, 14 + +END diff --git a/reactos/dll/cpl/inetcpl/lang/en-US.rc b/reactos/dll/cpl/inetcpl/lang/en-US.rc new file mode 100644 index 00000000000..296864f56eb --- /dev/null +++ b/reactos/dll/cpl/inetcpl/lang/en-US.rc @@ -0,0 +1,101 @@ +/* + * English resources for the Internet control panel applet + * + * Copyright 2010 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 "inetcpl.h" + +LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT + +/* "General" propsheet */ +IDD_GENERAL DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "General" +BEGIN + + GROUPBOX " Home page ", IDC_STATIC, 4, 4, 312, 52 + LTEXT "You can choose the address that will be used as your home page.", + IDC_STATIC, 58, 10, 252, 10 + EDITTEXT IDC_HOME_EDIT, 58, 22, 252, 12, WS_VISIBLE | ES_AUTOHSCROLL + PUSHBUTTON "&Current page", IDC_HOME_CURRENT, 58, 36, 80, 14 + PUSHBUTTON "&Default page", IDC_HOME_DEFAULT, 144, 36, 80, 14 + PUSHBUTTON "&Blank page", IDC_HOME_BLANK, 230, 36, 80, 14 + GROUPBOX " Browsing history ", IDC_STATIC, 4, 60, 312, 46 + LTEXT "You can delete cached pages, cookies and other data.", + IDC_STATIC, 58, 72, 252, 10 + PUSHBUTTON "Delete &files...", IDC_HISTORY_DELETE, 144, 86, 80, 14 + PUSHBUTTON "&Settings...", IDC_HISTORY_SETTINGS, 230, 86, 80, 14 + +END + +/* "Delete browsing history" dialog */ +IDD_DELETE_HISTORY DIALOG 0, 0, 250, 250 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +FONT 8, "MS Shell Dlg" +CAPTION "Delete browsing history" +BEGIN + + AUTOCHECKBOX "Temporary internet files\nCached copies of webpages, images and certificates.", + IDC_DELETE_TEMP_FILES, 10, 8, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Cookies\nFiles saved on your computer by websites, which store things like user preferences and login information.", + IDC_DELETE_COOKIES, 10, 38, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "History\nList of websites you have accessed.", + IDC_DELETE_HISTORY, 10, 68, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Form data\nUsernames and other information you have entered into forms.", + IDC_DELETE_FORM_DATA, 10, 98, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Passwords\nSaved passwords you have entered into forms.", + IDC_DELETE_PASSWORDS, 10, 128, 230, 30, BS_TOP | BS_MULTILINE + DEFPUSHBUTTON "Cancel", IDCANCEL, 185, 230, 60, 15, WS_GROUP + PUSHBUTTON "Delete", IDOK, 120, 230, 60, 15, WS_GROUP + +END + +/* "Security" propsheet */ +IDD_SECURITY DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Security" +BEGIN + + CONTROL "Listview", IDC_SEC_LISTVIEW, "SysListView32", + LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_VSCROLL, + 4, 4, 312, 58 + LTEXT "", IDC_SEC_ZONE_INFO, 4, 68, 312, 20 + GROUPBOX "", IDC_SEC_GROUP, 4, 88, 312, 126 + CONTROL "trackbar", IDC_SEC_TRACKBAR, "msctls_trackbar32", + TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | TBS_REVERSED, 8, 98, 32, 100 + LTEXT "", IDC_SEC_LEVEL, 48, 102, 180, 12 + LTEXT "", IDC_SEC_LEVEL_INFO, 48, 114, 260, 80 +END + +/* "Content" propsheet */ +IDD_CONTENT DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Content" +BEGIN + + GROUPBOX " Certificates ", IDC_STATIC, 4, 4, 312, 50 + LTEXT "Certificates are used for your personal identification and to identify certificate authorities and publishers.", + IDC_STATIC, 58, 14, 252, 18 + PUSHBUTTON "Certificates...", IDC_CERT, 146, 34, 80, 14 + PUSHBUTTON "Publishers...", IDC_CERT_PUBLISHER, 230, 34, 80, 14 + +END diff --git a/reactos/dll/cpl/inetcpl/lang/fr-FR.rc b/reactos/dll/cpl/inetcpl/lang/fr-FR.rc new file mode 100644 index 00000000000..6c55754b917 --- /dev/null +++ b/reactos/dll/cpl/inetcpl/lang/fr-FR.rc @@ -0,0 +1,105 @@ +/* + * Internet control panel applet + * French language support + * + * Copyright 2010-2011 Frédéric Delanoy + * + * 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 "inetcpl.h" + +LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL + +/* UTF-8 */ +#pragma code_page(65001) + +/* "General" propsheet */ +IDD_GENERAL DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Général" +BEGIN + + GROUPBOX " Page d'accueil ", IDC_STATIC, 4, 4, 312, 52 + LTEXT "Vous pouvez spécifier l'adresse à utiliser comme page d'accueil :", + IDC_STATIC, 68, 10, 242, 10 + EDITTEXT IDC_HOME_EDIT, 68, 22, 242, 12, WS_VISIBLE | ES_AUTOHSCROLL + PUSHBUTTON "Page &courante", IDC_HOME_CURRENT, 68, 36, 77, 14 + PUSHBUTTON "Page par &défaut", IDC_HOME_DEFAULT, 151, 36, 77, 14 + PUSHBUTTON "Page &blanche", IDC_HOME_BLANK, 233, 36, 77, 14 + GROUPBOX " Historique de navigation ", IDC_STATIC, 4, 60, 312, 46 + LTEXT "Vous pouvez effacer les pages en cache, les cookies et d'autres données.", + IDC_STATIC, 68, 72, 242, 10 + PUSHBUTTON "&Effacer les fichiers...", IDC_HISTORY_DELETE, 151, 86, 77, 14 + PUSHBUTTON "&Paramètres...", IDC_HISTORY_SETTINGS, 233, 86, 77, 14 + +END + +/* "Delete browsing history" dialog */ +IDD_DELETE_HISTORY DIALOG 0, 0, 250, 250 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +FONT 8, "MS Shell Dlg" +CAPTION "Effacer l'historique de navigation" +BEGIN + + AUTOCHECKBOX "Fichiers internet temporaires\nCopies en cache de pages web, d'images et de certificats.", + IDC_DELETE_TEMP_FILES, 10, 8, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Cookies\nDonnées enregistrées sur votre ordinateur par des sites web, telles que préférences utilisateur et informations de connexion.", + IDC_DELETE_COOKIES, 10, 32, 230, 35, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Historique\nListe des sites web accédés.", + IDC_DELETE_HISTORY, 10, 73, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Données de formulaires\nNoms d'utilisateur et autres informations entrées dans des formulaires.", + IDC_DELETE_FORM_DATA, 10, 98, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Mots de passe\nMots de passe entrés dans des formulaires et sauvegardés.", + IDC_DELETE_PASSWORDS, 10, 128, 230, 30, BS_TOP | BS_MULTILINE + DEFPUSHBUTTON "Annuler", IDCANCEL, 185, 228, 60, 15, WS_GROUP + PUSHBUTTON "Effacer", IDOK, 120, 228, 60, 15, WS_GROUP + +END + +/* "Security" propsheet */ +IDD_SECURITY DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Sécurité" +BEGIN + + CONTROL "Listview", IDC_SEC_LISTVIEW, "SysListView32", + LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_VSCROLL, + 4, 4, 312, 58 + LTEXT "", IDC_SEC_ZONE_INFO, 4, 68, 312, 20 + GROUPBOX "", IDC_SEC_GROUP, 4, 88, 312, 126 + CONTROL "trackbar", IDC_SEC_TRACKBAR, "msctls_trackbar32", + TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | TBS_REVERSED, 8, 98, 32, 100 + LTEXT "", IDC_SEC_LEVEL, 48, 102, 180, 12 + LTEXT "", IDC_SEC_LEVEL_INFO, 48, 114, 260, 80 +END + +/* "Content" propsheet */ +IDD_CONTENT DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Contenu" +BEGIN + + GROUPBOX " Certificats ", IDC_STATIC, 4, 4, 312, 50 + LTEXT "Les certificats sont utilisés pour votre identification personnelle, celle d'autorités de certification ou d'éditeurs.", + IDC_STATIC, 58, 14, 252, 18 + PUSHBUTTON "Certificats...", IDC_CERT, 146, 34, 80, 14 + PUSHBUTTON "Éditeurs...", IDC_CERT_PUBLISHER, 230, 34, 80, 14 + +END diff --git a/reactos/dll/cpl/inetcpl/lang/it-IT.rc b/reactos/dll/cpl/inetcpl/lang/it-IT.rc new file mode 100644 index 00000000000..566450c9eaa --- /dev/null +++ b/reactos/dll/cpl/inetcpl/lang/it-IT.rc @@ -0,0 +1,64 @@ +/* + * Italian resources for the Internet control panel applet + * + * Copyright 2010 Luca Bennati + * + * 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 "inetcpl.h" + +/* UTF-8 */ +#pragma code_page(65001) + +LANGUAGE LANG_LITHUANIAN, SUBLANG_NEUTRAL + +/* "General" propsheet */ +IDD_GENERAL DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Bendrosios" +BEGIN + + GROUPBOX " Pradžios tinklalapis ", IDC_STATIC, 4, 4, 312, 56 + LTEXT "Galite pasirinkti adresą, kuris bus naudojamas kaip jūsų pradžios tinklalapis.", + IDC_STATIC, 58, 14, 252, 10 + EDITTEXT IDC_HOME_EDIT, 58, 26, 252, 12, WS_VISIBLE | ES_AUTOHSCROLL + PUSHBUTTON "&Dabartinis puslapis", IDC_HOME_CURRENT, 58, 40, 80, 14 + PUSHBUTTON "&Numatytasis puslapis", IDC_HOME_DEFAULT, 144, 40, 80, 14 + PUSHBUTTON "&Tuščias puslapis", IDC_HOME_BLANK, 230, 40, 80, 14 + GROUPBOX " Naršymo istorija ", IDC_STATIC, 4, 60, 312, 46 + LTEXT "Jūs galite pašalinti puslapius podėlyje, slapukus ir kitus duomenis.", + IDC_STATIC, 58, 72, 252, 10 + PUSHBUTTON "Šalinti &failus...", IDC_HISTORY_DELETE, 144, 86, 80, 14 + PUSHBUTTON "Nuo&statos...", IDC_HISTORY_SETTINGS, 230, 86, 80, 14 + +END + +/* "Delete browsing history" dialog */ +IDD_DELETE_HISTORY DIALOG 0, 0, 250, 250 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +FONT 8, "MS Shell Dlg" +CAPTION "Šalinti naršymo istoriją" +BEGIN + + AUTOCHECKBOX "Laikini interneto failai\nTinklalapių kopijos podėlyje, paveikslai, liudijimai.", + IDC_DELETE_TEMP_FILES, 10, 8, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Slapukai\nTinklalapių kompiuteryje išsaugoti failai, kuriuose saugomi naudotojų nustatymai ir prisijungimo informacija.", + IDC_DELETE_COOKIES, 10, 38, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Istorija\nTinklalapių, kuriuos naršėte, sąrašas.", + IDC_DELETE_HISTORY, 10, 68, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Formų duomenys\nNaudotojų vardai ir kita informacija, kurią įvedėte į formas.", + IDC_DELETE_FORM_DATA, 10, 98, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Slaptažodžiai\nIšsaugoti slaptažodžiai, kuriuos įvedėte į formas.", + IDC_DELETE_PASSWORDS, 10, 128, 230, 30, BS_TOP | BS_MULTILINE + DEFPUSHBUTTON "Atsisakyti", IDCANCEL, 185, 230, 60, 15, WS_GROUP + PUSHBUTTON "Šalinti", IDOK, 120, 230, 60, 15, WS_GROUP + +END + +/* "Security" propsheet */ +IDD_SECURITY DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Saugumas" +BEGIN + + CONTROL "Listview", IDC_SEC_LISTVIEW, "SysListView32", + LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_VSCROLL, + 4, 4, 312, 58 + LTEXT "", IDC_SEC_ZONE_INFO, 4, 68, 312, 20 + GROUPBOX "", IDC_SEC_GROUP, 4, 88, 312, 126 + CONTROL "trackbar", IDC_SEC_TRACKBAR, "msctls_trackbar32", + TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | TBS_REVERSED, 8, 98, 32, 100 + LTEXT "", IDC_SEC_LEVEL, 48, 102, 180, 12 + LTEXT "", IDC_SEC_LEVEL_INFO, 48, 114, 260, 80 +END + +/* "Content" propsheet */ +IDD_CONTENT DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Turinys" +BEGIN + + GROUPBOX " Liudijimai ", IDC_STATIC, 4, 4, 312, 50 + LTEXT "Liudijimai yra naudojami jūsų tapatumo nustatymui ir liudijimo įstaigų bei publikuotojų tapatumui nustatyti.", + IDC_STATIC, 58, 14, 252, 18 + PUSHBUTTON "Liudijimai...", IDC_CERT, 146, 34, 80, 14 + PUSHBUTTON "Publikuotojai...", IDC_CERT_PUBLISHER, 230, 34, 80, 14 + +END diff --git a/reactos/dll/cpl/inetcpl/lang/nl-NL.rc b/reactos/dll/cpl/inetcpl/lang/nl-NL.rc new file mode 100644 index 00000000000..5d5fb520de2 --- /dev/null +++ b/reactos/dll/cpl/inetcpl/lang/nl-NL.rc @@ -0,0 +1,61 @@ +/* + * Dutch resources for the Internet control panel applet + * + * Copyright 2010 Sven Baars + * + * 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 "inetcpl.h" + +LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL + +/* "General" propsheet */ +IDD_GENERAL DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Algemeen" +BEGIN + + GROUPBOX " Startpagina ", IDC_STATIC, 4, 4, 312, 52 + LTEXT "Hier kunt u het adres kiezen dat gebruikt wordt als uw startpagina.", + IDC_STATIC, 58, 10, 252, 10 + EDITTEXT IDC_HOME_EDIT, 58, 22, 252, 12, WS_VISIBLE | ES_AUTOHSCROLL + PUSHBUTTON "&Huidige pagina", IDC_HOME_CURRENT, 58, 36, 80, 14 + PUSHBUTTON "&Standaardpagina", IDC_HOME_DEFAULT, 144, 36, 80, 14 + PUSHBUTTON "&Lege pagina", IDC_HOME_BLANK, 230, 36, 80, 14 + GROUPBOX " Browsing history ", IDC_STATIC, 4, 60, 312, 46 + LTEXT "You can delete cached pages, cookies and other data.", + IDC_STATIC, 58, 72, 252, 10 + PUSHBUTTON "Delete &files...", IDC_HISTORY_DELETE, 144, 86, 80, 14 + PUSHBUTTON "&Settings...", IDC_HISTORY_SETTINGS, 230, 86, 80, 14 + +END + +/* "Content" propsheet */ +IDD_CONTENT DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Inhoud" +BEGIN + + GROUPBOX " Certificaten ", IDC_STATIC, 4, 4, 312, 50 + LTEXT "Certificaten worden gebruikt voor uw persoonlijke identificatie en om certificaat-autoriteiten en uitgevers te identificeren.", + IDC_STATIC, 58, 14, 252, 18 + PUSHBUTTON "Certificaten...", IDC_CERT, 146, 34, 80, 14 + PUSHBUTTON "Uitgevers...", IDC_CERT_PUBLISHER, 230, 34, 80, 14 + +END diff --git a/reactos/dll/cpl/inetcpl/lang/pl-PL.rc b/reactos/dll/cpl/inetcpl/lang/pl-PL.rc new file mode 100644 index 00000000000..42f4f38eaea --- /dev/null +++ b/reactos/dll/cpl/inetcpl/lang/pl-PL.rc @@ -0,0 +1,83 @@ +/* + * Internet control panel applet + * + * Copyright 2010 ukasz Wojniowicz + * + * 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 "inetcpl.h" + +LANGUAGE LANG_POLISH, SUBLANG_DEFAULT + +/* "General" propsheet */ +IDD_GENERAL DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Oglne" +BEGIN + + GROUPBOX " Strona domowa ", IDC_STATIC, 4, 4, 312, 52 + LTEXT "Moesz wybra adres strony, ktra bdzie twoj stron domow.", + IDC_STATIC, 58, 10, 252, 10 + EDITTEXT IDC_HOME_EDIT, 58, 22, 252, 12, WS_VISIBLE | ES_AUTOHSCROLL + PUSHBUTTON "Uyj &biecej", IDC_HOME_CURRENT, 58, 36, 80, 14 + PUSHBUTTON "Uyj d&omylnej", IDC_HOME_DEFAULT, 144, 36, 80, 14 + PUSHBUTTON "Uyj pu&stej", IDC_HOME_BLANK, 230, 36, 80, 14 + GROUPBOX " Historia przegldania ", IDC_STATIC, 4, 60, 312, 46 + LTEXT "Moesz usun przechowywane strony, ciasteczka i inne dane.", + IDC_STATIC, 58, 72, 252, 10 + PUSHBUTTON "&Usu pliki...", IDC_HISTORY_DELETE, 144, 86, 80, 14 + PUSHBUTTON "Ustawie&nia...", IDC_HISTORY_SETTINGS, 230, 86, 80, 14 + +END + +/* "Delete browsing history" dialog */ +IDD_DELETE_HISTORY DIALOG 0, 0, 250, 250 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +FONT 8, "MS Shell Dlg" +CAPTION "Usuwanie historii przegldania" +BEGIN + + AUTOCHECKBOX "Tymczasowe pliki internetowe\nKopie stron sieci Web, obrazw i certyfikatw.", + IDC_DELETE_TEMP_FILES, 10, 8, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Pliki cookies\nPliki przechowywane na komputerze przez witryny sieci Web w celu zapisania preferencji takich jak informacje logowania.", + IDC_DELETE_COOKIES, 10, 38, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Historia\nLista odwiedzonych witryn sieci Web.", + IDC_DELETE_HISTORY, 10, 68, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Dane formularzy\nZapisane informacje, ktre zostay wpisane w formularzach.", + IDC_DELETE_FORM_DATA, 10, 98, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Hasa\nHasa uzupeniane automatycznie po zalogowaniu si do wczeniej odwiedzonej witryny Web.", + IDC_DELETE_PASSWORDS, 10, 128, 230, 30, BS_TOP | BS_MULTILINE + DEFPUSHBUTTON "Anuluj", IDCANCEL, 185, 230, 60, 15, WS_GROUP + PUSHBUTTON "Usu", IDOK, 120, 230, 60, 15, WS_GROUP + +END + +/* "Content" propsheet */ +IDD_CONTENT DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Zawarto" +BEGIN + + GROUPBOX " Certyfikaty ", IDC_STATIC, 4, 4, 312, 50 + LTEXT "Certyfikaty s uywane do twojej osobistej identyfikacji oraz do identyfikacji wydawcw i urzdw certyfikujcych.", + IDC_STATIC, 58, 14, 252, 18 + PUSHBUTTON "Certyfikaty...", IDC_CERT, 146, 34, 80, 14 + PUSHBUTTON "Wydawcy...", IDC_CERT_PUBLISHER, 230, 34, 80, 14 + +END diff --git a/reactos/dll/cpl/inetcpl/lang/pt-PT.rc b/reactos/dll/cpl/inetcpl/lang/pt-PT.rc new file mode 100644 index 00000000000..5be8c1a6ba9 --- /dev/null +++ b/reactos/dll/cpl/inetcpl/lang/pt-PT.rc @@ -0,0 +1,63 @@ +/* + * Portuguese resources for the Internet control panel applet + * + * 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 + * 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 "inetcpl.h" + +#pragma code_page(65001) + +LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN + +/* "General" propsheet */ +IDD_GENERAL DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Geral" +BEGIN + + GROUPBOX " Página inicial ", IDC_STATIC, 4, 4, 312, 52 + LTEXT "Escolha o endereço que será usado como página inicial.", + IDC_STATIC, 58, 10, 252, 10 + EDITTEXT IDC_HOME_EDIT, 58, 22, 252, 12, WS_VISIBLE | ES_AUTOHSCROLL + PUSHBUTTON "Página &atual", IDC_HOME_CURRENT, 58, 36, 80, 14 + PUSHBUTTON "Página &padrão", IDC_HOME_DEFAULT, 144, 36, 80, 14 + PUSHBUTTON "Página em &branco", IDC_HOME_BLANK, 230, 36, 80, 14 + GROUPBOX " Browsing history ", IDC_STATIC, 4, 60, 312, 46 + LTEXT "You can delete cached pages, cookies and other data.", + IDC_STATIC, 58, 72, 252, 10 + PUSHBUTTON "Delete &files...", IDC_HISTORY_DELETE, 144, 86, 80, 14 + PUSHBUTTON "&Settings...", IDC_HISTORY_SETTINGS, 230, 86, 80, 14 + +END + +/* "Content" propsheet */ +IDD_CONTENT DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Conteúdo" +BEGIN + + GROUPBOX " Certificados ", IDC_STATIC, 4, 4, 312, 50 + LTEXT "Certificados são usados para sua identificação pessoal e para identificar certificados de autoridades e editores.", + IDC_STATIC, 58, 14, 252, 18 + PUSHBUTTON "Certificados...", IDC_CERT, 146, 34, 80, 14 + PUSHBUTTON "Editores...", IDC_CERT_PUBLISHER, 230, 34, 80, 14 + +END diff --git a/reactos/dll/cpl/inetcpl/lang/ru-RU.rc b/reactos/dll/cpl/inetcpl/lang/ru-RU.rc new file mode 100644 index 00000000000..98b809d0328 --- /dev/null +++ b/reactos/dll/cpl/inetcpl/lang/ru-RU.rc @@ -0,0 +1,105 @@ +/* + * Russian resources for the Internet control panel applet + * + * Copyright 2011 Alexander Lakhin + * + * 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 "inetcpl.h" + +/* UTF-8 */ +#pragma code_page(65001) + +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT + +/* "General" propsheet */ +IDD_GENERAL DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Общие" +BEGIN + + GROUPBOX " Домашняя страница ", IDC_STATIC, 4, 4, 312, 52 + LTEXT "Укажите адрес для вашей домашней страницы:", + IDC_STATIC, 58, 14, 252, 8 + EDITTEXT IDC_HOME_EDIT, 58, 22, 252, 12, WS_VISIBLE | ES_AUTOHSCROLL + PUSHBUTTON "&Текущая страница", IDC_HOME_CURRENT, 58, 36, 80, 14 + PUSHBUTTON "&По умолчанию", IDC_HOME_DEFAULT, 144, 36, 80, 14 + PUSHBUTTON "Пу&стая страница", IDC_HOME_BLANK, 230, 36, 80, 14 + GROUPBOX " История использования браузера ", IDC_STATIC, 4, 60, 312, 46 + LTEXT "Вы можете удалить кэшированные страницы, файлы cookies и другие данные.", + IDC_STATIC, 58, 72, 252, 10 + PUSHBUTTON "Удалить &файлы...", IDC_HISTORY_DELETE, 144, 86, 80, 14 + PUSHBUTTON "&Настройки...", IDC_HISTORY_SETTINGS, 230, 86, 80, 14 + +END + +/* "Delete browsing history" dialog */ +IDD_DELETE_HISTORY DIALOG 0, 0, 250, 250 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +FONT 8, "MS Shell Dlg" +CAPTION "Очистка истории" +BEGIN + + AUTOCHECKBOX "Временные файлы\nКэшированные копии страниц, изображений и сертификатов.", + IDC_DELETE_TEMP_FILES, 10, 8, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Файлы cookies\nФайлы, сохранённые на вашем компьютере, могут содержать пользовательские настройки и информацию для авторизации.", + IDC_DELETE_COOKIES, 10, 38, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "История\nПеречень сайтов, к которым осуществлялся доступ.", + IDC_DELETE_HISTORY, 10, 68, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Данные веб-форм\nИмена пользователя и другая информация, которая использовалась при заполнении форм.", + IDC_DELETE_FORM_DATA, 10, 98, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Пароли\nСохранённые пароли, которые были указаны в веб-формах.", + IDC_DELETE_PASSWORDS, 10, 128, 230, 30, BS_TOP | BS_MULTILINE + DEFPUSHBUTTON "Отмена", IDCANCEL, 185, 230, 60, 15, WS_GROUP + PUSHBUTTON "Удалить", IDOK, 120, 230, 60, 15, WS_GROUP + +END + +/* "Security" propsheet */ +IDD_SECURITY DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Безопасность" +BEGIN + + CONTROL "Listview", IDC_SEC_LISTVIEW, "SysListView32", + LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_VSCROLL, + 4, 4, 312, 58 + LTEXT "", IDC_SEC_ZONE_INFO, 4, 68, 312, 20 + GROUPBOX "", IDC_SEC_GROUP, 4, 88, 312, 126 + CONTROL "trackbar", IDC_SEC_TRACKBAR, "msctls_trackbar32", + TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | TBS_REVERSED, 8, 98, 32, 100 + LTEXT "", IDC_SEC_LEVEL, 48, 102, 180, 12 + LTEXT "", IDC_SEC_LEVEL_INFO, 48, 114, 260, 80 + +END + +/* "Content" propsheet */ +IDD_CONTENT DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Содержание" +BEGIN + + GROUPBOX " Сертификаты ", IDC_STATIC, 4, 4, 312, 50 + LTEXT "Сертификаты используются для идентификации личности, а также для проверки подлинности центров сертификации и издателей.", + IDC_STATIC, 58, 14, 252, 18 + PUSHBUTTON "Сертификаты...", IDC_CERT, 146, 34, 80, 14 + PUSHBUTTON "Издатели...", IDC_CERT_PUBLISHER, 230, 34, 80, 14 + +END diff --git a/reactos/dll/cpl/inetcpl/lang/sv-SE.rc b/reactos/dll/cpl/inetcpl/lang/sv-SE.rc new file mode 100644 index 00000000000..997fd31a04e --- /dev/null +++ b/reactos/dll/cpl/inetcpl/lang/sv-SE.rc @@ -0,0 +1,63 @@ +/* + * Swedish resources for the Internet control panel applet + * + * Copyright 2010 Anders Jonsson + * + * 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 "inetcpl.h" + +#pragma code_page(65001) + +LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL + +/* "General" propsheet */ +IDD_GENERAL DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Allmänt" +BEGIN + + GROUPBOX " Startsida ", IDC_STATIC, 4, 4, 312, 52 + LTEXT "Du kan välja vilken adress som ska användas som startsida.", + IDC_STATIC, 58, 10, 252, 10 + EDITTEXT IDC_HOME_EDIT, 58, 22, 252, 12, WS_VISIBLE | ES_AUTOHSCROLL + PUSHBUTTON "&Aktuell sida", IDC_HOME_CURRENT, 58, 36, 80, 14 + PUSHBUTTON "För&vald sida", IDC_HOME_DEFAULT, 144, 36, 80, 14 + PUSHBUTTON "&Blank sida", IDC_HOME_BLANK, 230, 36, 80, 14 + GROUPBOX " Bläddringshistorik ", IDC_STATIC, 4, 60, 312, 46 + LTEXT "Du kan ta bort cachade sidor, kakor och annan data.", + IDC_STATIC, 58, 72, 252, 10 + PUSHBUTTON "Ta bort &filer...", IDC_HISTORY_DELETE, 144, 86, 80, 14 + PUSHBUTTON "&Inställningar...", IDC_HISTORY_SETTINGS, 230, 86, 80, 14 + +END + +/* "Content" propsheet */ +IDD_CONTENT DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Innehåll" +BEGIN + + GROUPBOX " Certifikat ", IDC_STATIC, 4, 4, 312, 50 + LTEXT "Certifikat används för din personliga identifikation samt för att identifiera certifikats-auktoriteter och -utgivare.", + IDC_STATIC, 58, 14, 252, 18 + PUSHBUTTON "Certifikat...", IDC_CERT, 146, 34, 80, 14 + PUSHBUTTON "Utgivare...", IDC_CERT_PUBLISHER, 230, 34, 80, 14 + +END diff --git a/reactos/dll/cpl/inetcpl/lang/uk-UA.rc b/reactos/dll/cpl/inetcpl/lang/uk-UA.rc new file mode 100644 index 00000000000..102fb0cc999 --- /dev/null +++ b/reactos/dll/cpl/inetcpl/lang/uk-UA.rc @@ -0,0 +1,65 @@ +/* + * Internet control panel applet + * + * Copyright 2010 Detlef Riekenberg + * 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 "inetcpl.h" + +/* UTF-8 */ +#pragma code_page(65001) + +LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT + +/* "General" propsheet */ +IDD_GENERAL DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Загальні" +BEGIN + + GROUPBOX " Домашня сторінка ", IDC_STATIC, 4, 4, 312, 52 + LTEXT "Ви можете вказати адресу, що буде використана як домашня сторінка.", + IDC_STATIC, 58, 12, 252, 10 + EDITTEXT IDC_HOME_EDIT, 58, 22, 252, 12, WS_VISIBLE | ES_AUTOHSCROLL + PUSHBUTTON "&Поточна сторінка", IDC_HOME_CURRENT, 58, 36, 80, 14 + PUSHBUTTON "&За замовчуванням", IDC_HOME_DEFAULT, 144, 36, 80, 14 + PUSHBUTTON "По&рожня сторінка", IDC_HOME_BLANK, 230, 36, 80, 14 + GROUPBOX " Browsing history ", IDC_STATIC, 4, 60, 312, 46 + LTEXT "You can delete cached pages, cookies and other data.", + IDC_STATIC, 58, 72, 252, 10 + PUSHBUTTON "Delete &files...", IDC_HISTORY_DELETE, 144, 86, 80, 14 + PUSHBUTTON "&Settings...", IDC_HISTORY_SETTINGS, 230, 86, 80, 14 + +END + +/* "Content" propsheet */ +IDD_CONTENT DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Вміст" +BEGIN + + GROUPBOX " Сертифікати ", IDC_STATIC, 4, 4, 312, 50 + LTEXT "Сертифікати використовуються для вашої ідентифікації та для ідентифікації органів сертифікації та видавців.", + IDC_STATIC, 58, 14, 252, 18 + PUSHBUTTON "Сертифікати...", IDC_CERT, 146, 34, 80, 14 + PUSHBUTTON "Видавці...", IDC_CERT_PUBLISHER, 230, 34, 80, 14 + +END diff --git a/reactos/dll/cpl/inetcpl/security.c b/reactos/dll/cpl/inetcpl/security.c new file mode 100644 index 00000000000..118718533b1 --- /dev/null +++ b/reactos/dll/cpl/inetcpl/security.c @@ -0,0 +1,444 @@ +/* + * Internet control panel applet: security propsheet + * + * Copyright 2011 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 + * + */ + +#define COBJMACROS +#define CONST_VTABLE +#define NONAMELESSUNION + +#include +#include +#include +#include +#include +#include "commctrl.h" + +#include "ole2.h" +#include "urlmon.h" +#include "initguid.h" +#include "winreg.h" +#include "shlwapi.h" + +#include "inetcpl.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(inetcpl); + +typedef struct secdlg_data_s { + HWND hsec; /* security propsheet */ + HWND hlv; /* listview */ + HWND htb; /* trackbar */ + IInternetSecurityManager *sec_mgr; + IInternetZoneManager *zone_mgr; + DWORD zone_enumerator; + DWORD num_zones; + ZONEATTRIBUTES *zone_attr; + DWORD *zones; + DWORD *levels; + HIMAGELIST himages; + DWORD last_lv_index; + DWORD last_level; +} secdlg_data; + +#define NUM_TRACKBAR_POS 5 + +static WCHAR spaceW[] = {' ',0}; +static DWORD url_templates[] = {URLTEMPLATE_CUSTOM, + URLTEMPLATE_LOW, + URLTEMPLATE_MEDLOW, + URLTEMPLATE_MEDIUM, + URLTEMPLATE_MEDHIGH, + URLTEMPLATE_HIGH}; + +/********************************************************************* + * index_from_urltemplate [internal] + * + */ +static DWORD index_from_urltemplate(URLTEMPLATE value) +{ + + DWORD index = sizeof(url_templates) / sizeof(url_templates[0]); + + while((index > 0) && (url_templates[index-1] != value)) + index--; + + index--; /* table entries are 0 based */ + if (!index && value) + FIXME("URLTEMPLATE 0x%x not supported\n", value); + + TRACE("URLTEMPLATE 0x%08x=> Level %d\n", value, index); + return index; +} + +/********************************************************************* + * update_security_level [internal] + * + */ +static void update_security_level(secdlg_data *sd, DWORD lv_index, DWORD tb_index) +{ + WCHAR name[512]; + DWORD current_index; + + TRACE("(%p, lv_index: %u, tb_index: %u)\n", sd, lv_index, tb_index); + + if ((sd->levels[lv_index] != sd->last_level) || (tb_index > 0)) { + /* show or hide the trackbar */ + if (!sd->levels[lv_index] || !sd->last_level) + ShowWindow(sd->htb, sd->levels[lv_index] ? SW_NORMAL : SW_HIDE); + + current_index = (tb_index > 0) ? tb_index : index_from_urltemplate(sd->levels[lv_index]); + + name[0] = 0; + LoadStringW(hcpl, IDS_SEC_LEVEL0 + current_index, name, sizeof(name)/sizeof(name[0])); + TRACE("new level #%d: %s\n", current_index, debugstr_w(name)); + SetWindowTextW(GetDlgItem(sd->hsec, IDC_SEC_LEVEL), name); + + name[0] = 0; + LoadStringW(hcpl, IDS_SEC_LEVEL0_INFO + (current_index * 0x10), name, sizeof(name)/sizeof(name[0])); + TRACE("new level info: %s\n", debugstr_w(name)); + SetWindowTextW(GetDlgItem(sd->hsec, IDC_SEC_LEVEL_INFO), name); + + if (current_index) + SendMessageW(sd->htb, TBM_SETPOS, TRUE, NUM_TRACKBAR_POS - current_index); + + sd->last_level = sd->levels[lv_index]; + + } +} + +/********************************************************************* + * update_zone_info [internal] + * + */ +static void update_zone_info(secdlg_data *sd, DWORD lv_index) +{ + ZONEATTRIBUTES *za = &sd->zone_attr[lv_index]; + WCHAR name[MAX_PATH]; + DWORD len; + + SetWindowTextW(GetDlgItem(sd->hsec, IDC_SEC_ZONE_INFO), za->szDescription); + + name[0] = ' '; + name[1] = 0; + + LoadStringW(hcpl, IDS_SEC_SETTINGS, &name[1], sizeof(name)/sizeof(name[0]) - 3); + len = lstrlenW(name); + lstrcpynW(&name[len], za->szDisplayName, sizeof(name)/sizeof(name[0]) - len - 3); + lstrcatW(name, spaceW); + + TRACE("new title: %s\n", debugstr_w(name)); + SetWindowTextW(GetDlgItem(sd->hsec, IDC_SEC_GROUP), name); + + update_security_level(sd, lv_index, 0); + sd->last_lv_index = lv_index; +} + +/********************************************************************* + * add_zone_to_listview [internal] + * + */ +static void add_zone_to_listview(secdlg_data *sd, DWORD *pindex, DWORD zone) +{ + DWORD lv_index = *pindex; + ZONEATTRIBUTES *za = &sd->zone_attr[lv_index]; + LVITEMW lvitem; + HRESULT hr; + INT iconid = 0; + HMODULE hdll = NULL; + WCHAR * ptr; + HICON icon; + + TRACE("item %d (zone %d)\n", lv_index, zone); + + sd->zones[lv_index] = zone; + + memset(&lvitem, 0, sizeof(LVITEMW)); + memset(za, 0, sizeof(ZONEATTRIBUTES)); + za->cbSize = sizeof(ZONEATTRIBUTES); + hr = IInternetZoneManager_GetZoneAttributes(sd->zone_mgr, zone, za); + if (SUCCEEDED(hr)) { + TRACE("displayname: %s\n", debugstr_w(za->szDisplayName)); + TRACE("description: %s\n", debugstr_w(za->szDescription)); + TRACE("minlevel: 0x%x, recommended: 0x%x, current: 0x%x (flags: 0x%x)\n", za->dwTemplateMinLevel, + za->dwTemplateRecommended, za->dwTemplateCurrentLevel, za->dwFlags); + + if (za->dwFlags & ZAFLAGS_NO_UI ) { + TRACE("item %d (zone %d): UI disabled for %s\n", lv_index, zone, debugstr_w(za->szDisplayName)); + return; + } + + sd->levels[lv_index] = za->dwTemplateCurrentLevel; + + lvitem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM; + lvitem.iItem = lv_index; + lvitem.iSubItem = 0; + lvitem.pszText = za->szDisplayName; + lvitem.lParam = (LPARAM) zone; + + /* format is "filename.ext#iconid" */ + ptr = StrChrW(za->szIconPath, '#'); + if (ptr) { + *ptr = 0; + ptr++; + iconid = StrToIntW(ptr); + hdll = LoadLibraryExW(za->szIconPath, NULL, LOAD_LIBRARY_AS_DATAFILE); + TRACE("%p: icon #%d from %s\n", hdll, iconid, debugstr_w(za->szIconPath)); + + icon = LoadImageW(hdll, MAKEINTRESOURCEW(iconid), IMAGE_ICON, GetSystemMetrics(SM_CXICON), + GetSystemMetrics(SM_CYICON), LR_SHARED); + + if (!icon) { + FIXME("item %d (zone %d): missing icon #%d in %s\n", lv_index, zone, iconid, debugstr_w(za->szIconPath)); + } + + /* the failure result (NULL) from LoadImageW let ImageList_AddIcon fail + with -1, which is reused in ListView_InsertItemW to disable the image */ + lvitem.iImage = ImageList_AddIcon(sd->himages, icon); + } + else + FIXME("item %d (zone %d): malformed szIconPath %s\n", lv_index, zone, debugstr_w(za->szIconPath)); + + if (ListView_InsertItemW(sd->hlv, &lvitem) >= 0) { + /* activate first item in the listview */ + if (! lv_index) { + lvitem.state = LVIS_FOCUSED | LVIS_SELECTED; + lvitem.stateMask = LVIS_FOCUSED | LVIS_SELECTED; + SendMessageW(sd->hlv, LVM_SETITEMSTATE, 0, (LPARAM) &lvitem); + sd->last_level = ~0; + update_zone_info(sd, lv_index); + } + (*pindex)++; + } + FreeLibrary(hdll); + } + else + FIXME("item %d (zone %d): GetZoneAttributes failed with 0x%x\n", lv_index, zone, hr); +} + +/********************************************************************* + * security_cleanup_zones [internal] + * + */ +static void security_cleanup_zones(secdlg_data *sd) +{ + if (sd->zone_enumerator) { + IInternetZoneManager_DestroyZoneEnumerator(sd->zone_mgr, sd->zone_enumerator); + } + + if (sd->zone_mgr) { + IInternetZoneManager_Release(sd->zone_mgr); + } + + if (sd->sec_mgr) { + IInternetSecurityManager_Release(sd->sec_mgr); + } +} + +/********************************************************************* + * security_enum_zones [internal] + * + */ +static HRESULT security_enum_zones(secdlg_data * sd) +{ + HRESULT hr; + + hr = CoInternetCreateSecurityManager(NULL, &sd->sec_mgr, 0); + if (SUCCEEDED(hr)) { + hr = CoInternetCreateZoneManager(NULL, &sd->zone_mgr, 0); + if (SUCCEEDED(hr)) { + hr = IInternetZoneManager_CreateZoneEnumerator(sd->zone_mgr, &sd->zone_enumerator, &sd->num_zones, 0); + } + } + return hr; +} + +/********************************************************************* + * security_on_destroy [internal] + * + * handle WM_NCDESTROY + * + */ +static INT_PTR security_on_destroy(secdlg_data * sd) +{ + TRACE("(%p)\n", sd); + + heap_free(sd->zone_attr); + heap_free(sd->zones); + if (sd->himages) { + SendMessageW(sd->hlv, LVM_SETIMAGELIST, LVSIL_NORMAL, 0); + ImageList_Destroy(sd->himages); + } + + security_cleanup_zones(sd); + SetWindowLongPtrW(sd->hsec, DWLP_USER, 0); + heap_free(sd); + return TRUE; +} + +/********************************************************************* + * security_on_initdialog [internal] + * + * handle WM_INITDIALOG + * + */ +static INT_PTR security_on_initdialog(HWND hsec) +{ + secdlg_data *sd; + HRESULT hr; + DWORD current_zone; + DWORD lv_index = 0; + DWORD i; + + sd = heap_alloc_zero(sizeof(secdlg_data)); + SetWindowLongPtrW(hsec, DWLP_USER, (LONG_PTR) sd); + if (!sd) { + return FALSE; + } + + sd->hsec = hsec; + sd->hlv = GetDlgItem(hsec, IDC_SEC_LISTVIEW); + sd->htb = GetDlgItem(hsec, IDC_SEC_TRACKBAR); + + EnableWindow(sd->htb, FALSE); /* not changeable yet */ + + TRACE("(%p) (data: %p, listview: %p, trackbar: %p)\n", hsec, sd, sd->hlv, sd->htb); + + SendMessageW(sd->htb, TBM_SETRANGE, FALSE, MAKELONG(0, NUM_TRACKBAR_POS - 1)); + SendMessageW(sd->htb, TBM_SETTICFREQ, 1, 0 ); + + /* Create the image lists for the listview */ + sd->himages = ImageList_Create(GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON), ILC_COLOR32 | ILC_MASK, 1, 1); + + TRACE("using imagelist: %p\n", sd->himages); + if (!sd->himages) { + ERR("ImageList_Create failed!\n"); + return FALSE; + } + SendMessageW(sd->hlv, LVM_SETIMAGELIST, LVSIL_NORMAL, (LPARAM)sd->himages); + + hr = security_enum_zones(sd); + if (FAILED(hr)) { + ERR("got 0x%x\n", hr); + security_on_destroy(sd); + return FALSE; + } + + TRACE("found %d zones\n", sd->num_zones); + + /* remember ZONEATTRIBUTES for a listview entry */ + sd->zone_attr = heap_alloc(sizeof(ZONEATTRIBUTES) * sd->num_zones); + if (!sd->zone_attr) { + security_on_destroy(sd); + return FALSE; + } + + /* remember zone number and current security level for a listview entry */ + sd->zones = heap_alloc((sizeof(DWORD) + sizeof(DWORD)) * sd->num_zones); + if (!sd->zones) { + security_on_destroy(sd); + return FALSE; + } + sd->levels = &sd->zones[sd->num_zones]; + + /* use the same order as visible with native inetcpl.cpl */ + add_zone_to_listview(sd, &lv_index, URLZONE_INTERNET); + add_zone_to_listview(sd, &lv_index, URLZONE_INTRANET); + add_zone_to_listview(sd, &lv_index, URLZONE_TRUSTED); + add_zone_to_listview(sd, &lv_index, URLZONE_UNTRUSTED); + + for (i = 0; i < sd->num_zones; i++) + { + hr = IInternetZoneManager_GetZoneAt(sd->zone_mgr, sd->zone_enumerator, i, ¤t_zone); + if (SUCCEEDED(hr) && (current_zone != (DWORD)URLZONE_INVALID)) { + if (!current_zone || (current_zone > URLZONE_UNTRUSTED)) { + add_zone_to_listview(sd, &lv_index, current_zone); + } + } + } + return TRUE; +} + +/********************************************************************* + * security_on_notify [internal] + * + * handle WM_NOTIFY + * + */ +static INT_PTR security_on_notify(secdlg_data *sd, WPARAM wparam, LPARAM lparam) +{ + NMLISTVIEW *nm; + + nm = (NMLISTVIEW *) lparam; + switch (nm->hdr.code) + { + case LVN_ITEMCHANGED: + TRACE("LVN_ITEMCHANGED (0x%lx, 0x%lx) from %p with code: %d (item: %d, uNewState: %u)\n", + wparam, lparam, nm->hdr.hwndFrom, nm->hdr.code, nm->iItem, nm->uNewState); + if ((nm->uNewState & LVIS_SELECTED) == LVIS_SELECTED) { + update_zone_info(sd, nm->iItem); + } + break; + + case PSN_APPLY: + TRACE("PSN_APPLY (0x%lx, 0x%lx) from %p with code: %d\n", wparam, lparam, + nm->hdr.hwndFrom, nm->hdr.code); + break; + + default: + TRACE("WM_NOTIFY (0x%lx, 0x%lx) from %p with code: %d\n", wparam, lparam, + nm->hdr.hwndFrom, nm->hdr.code); + + } + return FALSE; +} + +/********************************************************************* + * security_dlgproc [internal] + * + */ +INT_PTR CALLBACK security_dlgproc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) +{ + secdlg_data *sd; + + if (msg == WM_INITDIALOG) { + return security_on_initdialog(hwnd); + } + + sd = (secdlg_data *)GetWindowLongPtrW(hwnd, DWLP_USER); + if (sd) { + switch (msg) + { + case WM_NOTIFY: + return security_on_notify(sd, wparam, lparam); + + case WM_NCDESTROY: + return security_on_destroy(sd); + + default: + /* do not flood the log */ + if ((msg == WM_SETCURSOR) || (msg == WM_NCHITTEST) || + (msg == WM_MOUSEMOVE) || (msg == WM_MOUSEACTIVATE) || (msg == WM_PARENTNOTIFY)) + return FALSE; + + TRACE("(%p, 0x%08x/%03d, 0x%08lx, 0x%08lx)\n", hwnd, msg, msg, wparam, lparam); + } + } + return FALSE; +} diff --git a/reactos/include/reactos/wine/commctrl.h b/reactos/include/reactos/wine/commctrl.h index a4b5f511f6f..0d2e2cada7d 100644 --- a/reactos/include/reactos/wine/commctrl.h +++ b/reactos/include/reactos/wine/commctrl.h @@ -29,6 +29,19 @@ static const WCHAR DRAGLISTMSGSTRINGW[] = { 'c','o','m','m','c','t','r','l', '_','D','r','a','g','L','i','s','t','M','s','g',0 }; #endif +#define ListView_InsertItemA(hwnd,pitem) \ + (INT)SNDMSGA((hwnd),LVM_INSERTITEMA,0,(LPARAM)(const LVITEMA *)(pitem)) +#define ListView_InsertItemW(hwnd,pitem) \ + (INT)SNDMSGW((hwnd),LVM_INSERTITEMW,0,(LPARAM)(const LVITEMW *)(pitem)) + +#ifdef __cplusplus +#define SNDMSGA ::SendMessageA +#define SNDMSGW ::SendMessageW +#else +#define SNDMSGA SendMessageA +#define SNDMSGW SendMessageW +#endif + #define FLATSB_CLASSA "flatsb_class32" #if defined(__GNUC__) # define FLATSB_CLASSW (const WCHAR []){ 'f','l','a','t','s','b','_', \