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','_', \