From 39fd08d7cee8d8b5a3a3dd81d9d7802ebea6c4ff Mon Sep 17 00:00:00 2001 From: Matthias Kupfer Date: Sun, 22 Jun 2008 10:01:59 +0000 Subject: [PATCH] - Seungju Kim - Korean translation of explorer-new added - See issue #3368 for more details. - Alexander Wurzinger < - Patch for the "CreateEnergyList failed"-Error added. - See issue #2469 for more details. svn path=/trunk/; revision=34045 --- reactos/base/shell/explorer-new/explorer.rc | 1 + reactos/base/shell/explorer-new/lang/ko-KO.rc | 63 +++++++++ reactos/dll/win32/powrprof/powrprof.c | 125 ++++++++++++++---- 3 files changed, 165 insertions(+), 24 deletions(-) create mode 100644 reactos/base/shell/explorer-new/lang/ko-KO.rc diff --git a/reactos/base/shell/explorer-new/explorer.rc b/reactos/base/shell/explorer-new/explorer.rc index 13ea586f9e3..d28fcc99193 100644 --- a/reactos/base/shell/explorer-new/explorer.rc +++ b/reactos/base/shell/explorer-new/explorer.rc @@ -22,3 +22,4 @@ IDB_STARTMENU BITMAP DISCARDABLE res/logov.bmp #include "lang/ru-RU.rc" #include "lang/sk-SK.rc" #include "lang/uk-UA.rc" +#include "lang/ko-KO.rc" diff --git a/reactos/base/shell/explorer-new/lang/ko-KO.rc b/reactos/base/shell/explorer-new/lang/ko-KO.rc new file mode 100644 index 00000000000..c54f4808b5b --- /dev/null +++ b/reactos/base/shell/explorer-new/lang/ko-KO.rc @@ -0,0 +1,63 @@ +/* + *Korean translation by manatails007(www.manatails007.org) + *Seungju Kim + */ +LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT + +IDM_TRAYWND MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "ÀÛ¾÷ Ç¥½ÃÁÙ Àá±×±â(&L)", ID_LOCKTASKBAR + MENUITEM "¼Ó¼º(&R)", ID_SHELL_CMD_PROPERTIES + END +END + +IDM_STARTMENU MENUEX DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "", -1, MFT_SEPARATOR + POPUP "ÇÁ·Î±×·¥(&P)", IDM_PROGRAMS + BEGIN + MENUITEM "(ºñ¾î ÀÖÀ½)", -1, MFT_STRING, MFS_GRAYED + END + POPUP "Áñ°Üã±â(&A)", IDM_FAVORITES + BEGIN + MENUITEM "(ºñ¾î ÀÖÀ½)", -1, MFT_STRING, MFS_GRAYED + END + POPUP "¹®¼­(&D)", IDM_DOCUMENTS + BEGIN + MENUITEM "(ºñ¾î ÀÖÀ½)", -1, MFT_STRING, MFS_GRAYED + END + POPUP "¼³Á¤(&S)", IDM_SETTINGS + BEGIN + MENUITEM "Á¦¾îÆÇ(&C)", IDM_CONTROLPANEL, MFT_STRING, MFS_GRAYED + MENUITEM "", -1, MFT_SEPARATOR + MENUITEM "º¸¾È(&S)...", IDM_SECURITY, MFT_STRING, MFS_ENABLED + MENUITEM "³×Æ®¿öÅ© ¿¬°á(&N)", IDM_NETWORKCONNECTIONS, MFT_STRING, MFS_ENABLED + MENUITEM "ÇÁ¸°ÅÍ¿Í ÆÑ½º(&P)", IDM_PRINTERSANDFAXES, MFT_STRING, MFS_ENABLED + MENUITEM "ÀÛ¾÷ Ç¥½ÃÁÙ°ú ½ÃÀÛ ¸Þ´º(&T)", IDM_TASKBARANDSTARTMENU, MFT_STRING, MFS_ENABLED + END + POPUP "°Ë»ö(&C)", IDM_SEARCH + BEGIN + MENUITEM "", -1, MFT_SEPARATOR + END + MENUITEM "µµ¿ò¸»(&H)", IDM_HELPANDSUPPORT, MFT_STRING, MFS_ENABLED + MENUITEM "½ÇÇà(&R)...", IDM_RUN, MFT_STRING, MFS_ENABLED + MENUITEM "", 450, MFT_SEPARATOR, MFS_ENABLED + MENUITEM "½ÌÅ©·Î³ªÀÌÁî(&Y)", IDM_SYNCHRONIZE, MFT_STRING, MFS_ENABLED + MENUITEM "%s ·Î±× ¿ÀÇÁ(&L)...", IDM_LOGOFF, MFT_STRING, MFS_ENABLED + MENUITEM "¿¬°á ²÷±â(&I)...", IDM_DISCONNECT, MFT_STRING, MFS_ENABLED + MENUITEM "ÄÄÇ»ÅÍ µµÅ· ÇØÁ¦(&E)", IDM_UNDOCKCOMPUTER, MFT_STRING, MFS_ENABLED + MENUITEM "ÄÔÇ»ÅÍ ²ô±â(&U)...", IDM_SHUTDOWN, MFT_STRING, MFS_ENABLED + END +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_START "½ÃÀÛ" + IDS_PROPERTIES "¼Ó¼º(&R)" + IDS_OPEN_ALL_USERS "¿­±â - All Users(&P)" + IDS_EXPLORE_ALL_USERS "Ž»ö - All Users(&X)" +END diff --git a/reactos/dll/win32/powrprof/powrprof.c b/reactos/dll/win32/powrprof/powrprof.c index 0aad3a965fb..f00324256b8 100644 --- a/reactos/dll/win32/powrprof/powrprof.c +++ b/reactos/dll/win32/powrprof/powrprof.c @@ -35,6 +35,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(powrprof); static const WCHAR szPowerCfgSubKey[] = L"Software\\Microsoft\\Windows\\CurrentVersion\\Controls Folder\\PowerCfg"; +static const WCHAR szPolicies[] = L"Policies"; static const WCHAR szSemaphoreName[] = L"PowerProfileRegistrySemaphore"; static const WCHAR szDiskMax[] = L"DiskSpindownMax"; static const WCHAR szDiskMin[] = L"DiskSpindownMin"; @@ -119,7 +120,7 @@ DeletePwrScheme(UINT uiIndex) static BOOLEAN POWRPROF_GetUserPowerPolicy(LPWSTR szNum, - USER_POWER_POLICY userPwrPolicy, + PUSER_POWER_POLICY puserPwrPolicy, DWORD dwName, LPWSTR szName, DWORD dwDesc, LPWSTR szDesc) { @@ -156,8 +157,8 @@ POWRPROF_GetUserPowerPolicy(LPWSTR szNum, return FALSE; } - dwSize = sizeof(userPwrPolicy); - Err = RegQueryValueExW(hSubKey, L"Policies", NULL, NULL, (LPBYTE)&userPwrPolicy, &dwSize); + dwSize = sizeof(USER_POWER_POLICY); + Err = RegQueryValueExW(hSubKey, L"Policies", NULL, NULL, (LPBYTE)puserPwrPolicy, &dwSize); if (Err != ERROR_SUCCESS) { ERR("RegQueryValueExW failed: %d\n", Err); @@ -169,7 +170,7 @@ POWRPROF_GetUserPowerPolicy(LPWSTR szNum, } static BOOLEAN -POWRPROF_GetMachinePowerPolicy(LPWSTR szNum, MACHINE_POWER_POLICY machinePwrPolicy) +POWRPROF_GetMachinePowerPolicy(LPWSTR szNum, PMACHINE_POWER_POLICY pmachinePwrPolicy) { HKEY hKey; LONG Err; @@ -186,8 +187,8 @@ POWRPROF_GetMachinePowerPolicy(LPWSTR szNum, MACHINE_POWER_POLICY machinePwrPoli return FALSE; } - dwSize = sizeof(machinePwrPolicy); - Err = RegQueryValueExW(hKey, L"Policies", NULL, NULL, (LPBYTE)&machinePwrPolicy, &dwSize); + dwSize = sizeof(MACHINE_POWER_POLICY); + Err = RegQueryValueExW(hKey, L"Policies", NULL, NULL, (LPBYTE)pmachinePwrPolicy, &dwSize); if (Err != ERROR_SUCCESS) { ERR("RegQueryValueExW failed: %d\n", Err); @@ -204,11 +205,12 @@ EnumPwrSchemes(PWRSCHEMESENUMPROC lpfnPwrSchemesEnumProc, { HKEY hKey; LONG Err; - DWORD dwSize, dwNameSize = 0, dwDescSize = 0, dwIndex = 0; + DWORD dwSize, dwNameSize = MAX_PATH, dwDescSize = MAX_PATH, dwIndex = 0; WCHAR szNum[3 + 1], szName[MAX_PATH], szDesc[MAX_PATH]; - PPOWER_POLICY pPwrPolicy = NULL; + POWER_POLICY PwrPolicy; USER_POWER_POLICY userPwrPolicy; MACHINE_POWER_POLICY machinePwrPolicy; + BOOLEAN ret = FALSE; if (!lpfnPwrSchemesEnumProc) { @@ -230,7 +232,7 @@ EnumPwrSchemes(PWRSCHEMESENUMPROC lpfnPwrSchemesEnumProc, while (RegEnumKeyExW(hKey, dwIndex, szNum, &dwSize, NULL, NULL, NULL, NULL) == ERROR_SUCCESS) { - if (!POWRPROF_GetUserPowerPolicy(szNum, userPwrPolicy, + if (!POWRPROF_GetUserPowerPolicy(szNum, &userPwrPolicy, dwNameSize, szName, dwDescSize, szDesc)) { @@ -239,18 +241,26 @@ EnumPwrSchemes(PWRSCHEMESENUMPROC lpfnPwrSchemesEnumProc, return FALSE; } - if (!POWRPROF_GetMachinePowerPolicy(szNum, machinePwrPolicy)) + if (!POWRPROF_GetMachinePowerPolicy(szNum, &machinePwrPolicy)) { RegCloseKey(hKey); ReleaseSemaphore(PPRegSemaphore, 1, NULL); return FALSE; } - memcpy(&pPwrPolicy->user, &userPwrPolicy, sizeof(USER_POWER_POLICY)); - memcpy(&pPwrPolicy->mach, &machinePwrPolicy, sizeof(MACHINE_POWER_POLICY)); + memcpy(&PwrPolicy.user, &userPwrPolicy, sizeof(USER_POWER_POLICY)); + memcpy(&PwrPolicy.mach, &machinePwrPolicy, sizeof(MACHINE_POWER_POLICY)); - if (!lpfnPwrSchemesEnumProc(_wtoi(szNum), dwNameSize, szName, dwDescSize, szDesc, pPwrPolicy, lParam)) - break; + if (!lpfnPwrSchemesEnumProc(_wtoi(szNum), dwNameSize, szName, dwDescSize, szDesc, &PwrPolicy, lParam)) + { + RegCloseKey(hKey); + ReleaseSemaphore(PPRegSemaphore, 1, NULL); + return ret; + } + else + { + ret=TRUE; + } dwSize = sizeof(szNum) / sizeof(WCHAR); dwIndex++; @@ -306,6 +316,7 @@ BOOLEAN WINAPI GetCurrentPowerPolicies(PGLOBAL_POWER_POLICY pGlobalPowerPolicy, PPOWER_POLICY pPowerPolicy) { + /* SYSTEM_POWER_POLICY ACPower, DCPower; FIXME("(%p, %p) stub!\n", pGlobalPowerPolicy, pPowerPolicy); @@ -314,6 +325,36 @@ GetCurrentPowerPolicies(PGLOBAL_POWER_POLICY pGlobalPowerPolicy, NtPowerInformation(SystemPowerPolicyDc, 0, 0, &DCPower, sizeof(SYSTEM_POWER_POLICY)); return FALSE; + */ +/* + Lohnegrim: I dont know why this Function shoud call NtPowerInformation, becouse as far as i know, + it simply returns the GlobalPowerPolicy and the AktivPowerScheme! + */ + BOOLEAN ret; + UINT uiID; + + if (pGlobalPowerPolicy != NULL) + { + ret = ReadGlobalPwrPolicy(pGlobalPowerPolicy); + if (!ret) + { + return FALSE; + } + } + if (pPowerPolicy != NULL) + { + ret = GetActivePwrScheme(&uiID); + if (!ret) + { + return FALSE; + } + ret = ReadPwrScheme(uiID,pPowerPolicy); + if (!ret) + { + return FALSE; + } + } + return TRUE; } @@ -532,13 +573,13 @@ ReadPwrScheme(UINT uiID, swprintf(szNum, L"%d", uiID); - if (!POWRPROF_GetUserPowerPolicy(szNum, userPwrPolicy, 0, NULL, 0, NULL)) + if (!POWRPROF_GetUserPowerPolicy(szNum, &userPwrPolicy, 0, NULL, 0, NULL)) { ReleaseSemaphore(PPRegSemaphore, 1, NULL); return FALSE; } - if (!POWRPROF_GetMachinePowerPolicy(szNum, machinePwrPolicy)) + if (!POWRPROF_GetMachinePowerPolicy(szNum, &machinePwrPolicy)) { ReleaseSemaphore(PPRegSemaphore, 1, NULL); return FALSE; @@ -578,9 +619,46 @@ SetSuspendState(BOOLEAN Hibernate, BOOLEAN WINAPI WriteGlobalPwrPolicy(PGLOBAL_POWER_POLICY pGlobalPowerPolicy) { - FIXME("(%p) stub!\n", pGlobalPowerPolicy); - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return FALSE; + HKEY hKey; + GLOBAL_USER_POWER_POLICY gupp; + GLOBAL_MACHINE_POWER_POLICY gmpp; + + gupp = pGlobalPowerPolicy->user; + gmpp = pGlobalPowerPolicy->mach; + + if (RegOpenKeyEx(HKEY_CURRENT_USER, + L"Control Panel\\PowerCfg\\GlobalPowerPolicy", + 0, + KEY_ALL_ACCESS, + &hKey)) + return FALSE; + + if (RegSetValueExW(hKey,szPolicies,(DWORD)NULL,REG_BINARY,(const unsigned char *)&gupp,sizeof(GLOBAL_USER_POWER_POLICY)) == ERROR_SUCCESS) + { + RegCloseKey(hKey); + + if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, + L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Controls Folder\\PowerCfg\\GlobalPowerPolicy", + 0, + KEY_ALL_ACCESS, + &hKey)) + return FALSE; + + if (RegSetValueExW(hKey,szPolicies,(DWORD)NULL,REG_BINARY,(const unsigned char *)&gmpp,sizeof(GLOBAL_MACHINE_POWER_POLICY)) == ERROR_SUCCESS) + { + RegCloseKey(hKey); + return TRUE; + } + else + { + return FALSE; + } + } + else + { + RegCloseKey(hKey); + return FALSE; + } } @@ -620,21 +698,20 @@ ValidatePowerPolicies(PGLOBAL_POWER_POLICY pGPP, PPOWER_POLICY pPP) return FALSE; } - if (!pGPP) + if (pGPP) { - memcpy(&pGPP, &pGlobalPowerPolicy, sizeof(GLOBAL_POWER_POLICY)); + //memcpy(&pGPP, &pGlobalPowerPolicy, sizeof(GLOBAL_POWER_POLICY)); } - if (!pPP) + if (pPP) { - memcpy(&pPP, &pPowerPolicy, sizeof(POWER_POLICY)); + //memcpy(&pPP, &pPowerPolicy, sizeof(POWER_POLICY)); } SetLastError(ERROR_SUCCESS); return TRUE; } - BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {