Compare commits

..

66 Commits

Author SHA1 Message Date
Daniel Reimer
516e460d8f [CLT2016]
Fix my forgotten cmakelists file...
Clean up wallpapers.

svn path=/branches/ReactOS-0.4.0-CLT2016/; revision=70988
2016-03-09 23:52:50 +00:00
Daniel Reimer
63b9b4deb0 [CLT2016]
Forgot the BMP one

svn path=/branches/ReactOS-0.4.0-CLT2016/; revision=70987
2016-03-09 23:11:22 +00:00
Daniel Reimer
c2303ddc07 [CLT2016]
Updated wallpapers and removed obsolete ones based on FOSDEM decision

svn path=/branches/ReactOS-0.4.0-CLT2016/; revision=70986
2016-03-09 22:52:49 +00:00
Hermès Bélusca-Maïto
1657e742fa [README]: Update the ReadME for CLT2016.
svn path=/branches/ReactOS-0.4.0-CLT2016/; revision=70966
2016-03-06 20:21:25 +00:00
Hermès Bélusca-Maïto
77bf70ea1b [WELCOME]
- Adaptations for CLT-2016.

[BOOTDATA]
- Flatten out the ISO layout for hybridcd.
- Add user-friendly boot menu.

[VERSION]
- Adjust version to 0.4.0 CLT-2016.

svn path=/branches/ReactOS-0.4.0-CLT2016/; revision=70965
2016-03-06 20:12:04 +00:00
Hermès Bélusca-Maïto
b29c9e77b6 [BOOTDATA]: Import hybridcd/livecd modification from r70655.
svn path=/branches/ros-branch-0_4_0/; revision=70656
2016-01-29 01:20:00 +00:00
Hermès Bélusca-Maïto
406bab4012 [VERSION]: Sync versioning modifications from r70651.
svn path=/branches/ros-branch-0_4_0/; revision=70652
2016-01-29 00:57:17 +00:00
Amine Khaldi
048fd42f18 [0.4.0] * Merge the version improvements in r70641.
svn path=/branches/ros-branch-0_4_0/; revision=70642
2016-01-25 18:41:22 +00:00
Amine Khaldi
5cde7752ad [0.4.0] * Merge i8042prt's Dell Latitude D630 workaround by Thomas in r70639. CORE-10797
svn path=/branches/ros-branch-0_4_0/; revision=70640
2016-01-25 18:10:43 +00:00
Amine Khaldi
1a609600f3 [0.4.0] * Merge the missing Italian STRING_EXTENDED_PARTITION fix in r70627. CORE-10809
svn path=/branches/ros-branch-0_4_0/; revision=70628
2016-01-20 15:26:48 +00:00
Amine Khaldi
252a82f434 [0.4.0] * Merge the win32k fixes by Timo in revisions 70482, 70485, 70486 and 70487. CORE-10807
svn path=/branches/ros-branch-0_4_0/; revision=70620
2016-01-19 21:57:30 +00:00
Amine Khaldi
992785856d [0.4.0] * Merge Erdem Ersoy's Turkish translation update in r70616 except mmc and userinit. CORE-10805
svn path=/branches/ros-branch-0_4_0/; revision=70617
2016-01-18 19:25:52 +00:00
Amine Khaldi
3d70b834c7 [0.4.0] * And of course we need Hermès' lovely New Year celebration in r70477 ;)
svn path=/branches/ros-branch-0_4_0/; revision=70613
2016-01-18 13:17:43 +00:00
Amine Khaldi
5cb73acf77 [0.4.0] * Merge floppy driver fix by Sylvain in r70606. CORE-10761
svn path=/branches/ros-branch-0_4_0/; revision=70612
2016-01-18 09:28:44 +00:00
Amine Khaldi
a0758e6af2 [0.4.0] * Apply the wordpad related hack from CORE-5823 by Jared Smudde.
svn path=/branches/ros-branch-0_4_0/; revision=70599
2016-01-16 10:46:37 +00:00
Amine Khaldi
7f471302fa [0.4.0] * Merge the MCI Extensions fixes by Hermès in r70597.
svn path=/branches/ros-branch-0_4_0/; revision=70598
2016-01-16 10:11:58 +00:00
Amine Khaldi
e2000d687c [0.4.0] * Merge desk.cpl fixes by Mark Jansen in r70577. CORE-10786
svn path=/branches/ros-branch-0_4_0/; revision=70592
2016-01-13 18:07:32 +00:00
Amine Khaldi
70ea17266f [ROSVBOXMGMT] Enable auto starting rosvboxmgmt so that VBox shared folders are assigned drive letters. CORE-10032 ROSAPPS-303
svn path=/branches/ros-branch-0_4_0/; revision=70591
2016-01-13 16:24:59 +00:00
Amine Khaldi
ad186f071a [0.4.0] * Merge rosvboxmgmt work by Pierre in revisions 70536, 70537 and 70578. This reverts r70520 (shortcuts creation for VBox shared folders). CORE-10032 ROSAPPS-303
svn path=/branches/ros-branch-0_4_0/; revision=70590
2016-01-13 16:23:21 +00:00
Amine Khaldi
3a9481e167 [0.4.0] * Merge the spec2def fix by Timo in r70454.
svn path=/branches/ros-branch-0_4_0/; revision=70589
2016-01-13 16:11:35 +00:00
Amine Khaldi
2d4fcce6ac [0.4.0] * Merge the fatten work by Hermès in revisions 70545 => 70548.
svn path=/branches/ros-branch-0_4_0/; revision=70588
2016-01-13 16:09:48 +00:00
Amine Khaldi
db885f7599 [0.4.0] * Merge the cdmake work by Hermès in revisions 70552, 70553 and 70554.
svn path=/branches/ros-branch-0_4_0/; revision=70587
2016-01-13 16:08:08 +00:00
Amine Khaldi
5a4a191801 [0.4.0] * Merge the usetup work by Hermès in revisions 70468, 70557 and 70558.
svn path=/branches/ros-branch-0_4_0/; revision=70586
2016-01-13 16:06:09 +00:00
Amine Khaldi
4fc13100c8 [0.4.0] * Merge the smss fixes by Hermès in r70530.
svn path=/branches/ros-branch-0_4_0/; revision=70585
2016-01-13 15:59:39 +00:00
Amine Khaldi
8157860973 [0.4.0] * Merge the vfatlib work by Hermès and Eric in revisions 70433 => 70435, 70445 => 70449, 70576 and 70583.
svn path=/branches/ros-branch-0_4_0/; revision=70584
2016-01-13 15:40:37 +00:00
Amine Khaldi
2b45c71b50 [0.4.0] * Merge the network drives handling fix in drive properties dialog by Jared Smudde in r70527. CORE-10779
svn path=/branches/ros-branch-0_4_0/; revision=70534
2016-01-07 19:59:31 +00:00
Amine Khaldi
3283ccf304 [0.4.0] * Merge the smss fixes by Hermès in r70529.
svn path=/branches/ros-branch-0_4_0/; revision=70533
2016-01-07 19:54:20 +00:00
Amine Khaldi
c9fe6d8ec6 [0.4.0] * Merge the shell image viewer ICO, EMF, TIF and WMF files support fix by Hermès in r70528.
svn path=/branches/ros-branch-0_4_0/; revision=70532
2016-01-07 19:52:38 +00:00
Amine Khaldi
c7de9d4774 [0.4.0] * Merge the encoding and broken French translation fix by Hermès in r70523.
svn path=/branches/ros-branch-0_4_0/; revision=70525
2016-01-07 13:40:58 +00:00
Amine Khaldi
d6af3d177f [0.4.0] * Merge the bootvid font generator improvements by Hermès in revisions 70512 and 70513.
svn path=/branches/ros-branch-0_4_0/; revision=70524
2016-01-07 13:39:15 +00:00
Amine Khaldi
cc4227eabe [0.4.0] * Merge the Blue Screen font change work by Colin and co in revisions 70507, 70508 and 70509. CORE-10777
svn path=/branches/ros-branch-0_4_0/; revision=70521
2016-01-07 12:04:57 +00:00
Amine Khaldi
54a8053846 [ROSVBOXMGMT] Enable auto starting rosvboxmgmt so that shortcuts for VBox shared folders are properly created. CORE-10032 ROSAPPS-303
svn path=/branches/ros-branch-0_4_0/; revision=70520
2016-01-07 12:00:46 +00:00
Amine Khaldi
41b7d7cc64 [0.4.0] * Thank you for everything Colin! aka merge r70501.
svn path=/branches/ros-branch-0_4_0/; revision=70519
2016-01-07 11:57:13 +00:00
Amine Khaldi
5cf3adb049 [0.4.0] * Merge the recent rosvboxmgmt work by Pierre in revisions 70499, 70500 and 70510. CORE-10032 ROSAPPS-303
svn path=/branches/ros-branch-0_4_0/; revision=70518
2016-01-07 11:55:44 +00:00
Amine Khaldi
5b1c3ac5d1 [0.4.0] * Merge the README files update by Hermès in r70497.
svn path=/branches/ros-branch-0_4_0/; revision=70517
2016-01-07 11:50:57 +00:00
Amine Khaldi
3d80c3ab79 [0.4.0] * Merge English strings improvements by Henry Tang Ih in r70480. CORE-10729
svn path=/branches/ros-branch-0_4_0/; revision=70481
2016-01-03 16:08:34 +00:00
Amine Khaldi
c442478f89 [0.4.0] * Merge the solitaire no action upon doubleclick fix by Carlo Bramini in r70470. CORE-6514
svn path=/branches/ros-branch-0_4_0/; revision=70471
2015-12-31 13:55:16 +00:00
Amine Khaldi
6e53d270f1 [0.4.0] * Merge the gdi32 and win32k fixes by Timo in r70464. CORE-10583
svn path=/branches/ros-branch-0_4_0/; revision=70465
2015-12-29 20:49:33 +00:00
Amine Khaldi
acb805aa6d [0.4.0] * Merge the streamout NULL buffer handling fix by Timo in r70443.
svn path=/branches/ros-branch-0_4_0/; revision=70452
2015-12-28 10:16:01 +00:00
Amine Khaldi
e65bfbdf74 [0.4.0] * Merge the ntvdm floppy read/write corruption fix by Hermès in r70424.
svn path=/branches/ros-branch-0_4_0/; revision=70442
2015-12-27 17:59:27 +00:00
Amine Khaldi
3b537a1ef4 [0.4.0] * Merge the enumerating device lists fix by Ged in r70408.
svn path=/branches/ros-branch-0_4_0/; revision=70440
2015-12-27 17:49:53 +00:00
Amine Khaldi
0ab5d67525 [0.4.0] * Merge the fix for some usetup localization problems by Hermès in r70436.
svn path=/branches/ros-branch-0_4_0/; revision=70439
2015-12-27 17:26:25 +00:00
Amine Khaldi
e2c8edf486 [0.4.0] * Merge msgina's text improvements by Henry Tang Ih in r70437. CORE-10720
svn path=/branches/ros-branch-0_4_0/; revision=70438
2015-12-27 17:23:26 +00:00
Amine Khaldi
c5a3cc589f [0.4.0] * Apply the second part of the hackfix from CORE-9836 by Joachim Henze. Addendum to r70393.
svn path=/branches/ros-branch-0_4_0/; revision=70415
2015-12-23 18:13:34 +00:00
Amine Khaldi
67e2ae7446 [0.4.0] * Merge the default user locale fixes by Eric Kohl in revisions 70389, 70398 and 70400. CORE-5989
svn path=/branches/ros-branch-0_4_0/; revision=70401
2015-12-19 10:55:49 +00:00
Amine Khaldi
ebf1904275 [0.4.0] * Merge rapps fixes by Thomas Faber in revisions 70339 and 70340.
svn path=/branches/ros-branch-0_4_0/; revision=70397
2015-12-18 15:19:56 +00:00
Amine Khaldi
24c5b454f9 [0.4.0] * Apply the hackfix from CORE-9836 by Joachim Henze.
svn path=/branches/ros-branch-0_4_0/; revision=70393
2015-12-18 11:04:11 +00:00
Amine Khaldi
5f2c9608ab [0.4.0] * Merge the Add New Bitmap to the New Menu fix by Jared Smudde in r70385. CORE-10668
svn path=/branches/ros-branch-0_4_0/; revision=70392
2015-12-18 10:49:29 +00:00
Amine Khaldi
5ecc4d78bb [0.4.0] * Merge the styled lines and pen implementation fixes by Timo Kreuzer in revisions 70387 and 70388. CORE-9984
svn path=/branches/ros-branch-0_4_0/; revision=70391
2015-12-18 10:32:42 +00:00
Amine Khaldi
5e0a50ef1a [0.4.0] * Merge rundll32 icon by Jared Smudde in r70384. CORE-10669
svn path=/branches/ros-branch-0_4_0/; revision=70386
2015-12-17 17:08:25 +00:00
Amine Khaldi
d508cf5a23 [0.4.0] * Merge the Traditional Chinese translation update by Henry Tang Ih in 70381. CORE-10655
svn path=/branches/ros-branch-0_4_0/; revision=70383
2015-12-17 11:16:39 +00:00
Amine Khaldi
dacfdb3f3a [0.4.0] * Merge the translation fixes to browseui and sysdm by Hermès in revisions 70375 => 70378.
svn path=/branches/ros-branch-0_4_0/; revision=70382
2015-12-17 11:14:34 +00:00
Amine Khaldi
d0f7b82948 [0.4.0] * Merge the translation fixes by Hermès in r70373.
svn path=/branches/ros-branch-0_4_0/; revision=70380
2015-12-17 10:10:33 +00:00
Amine Khaldi
685051a21b [0.4.0] * Merge the IopGetDeviceInterfaceList() null pointer freeing fix by Thomas Faber in r70356. CORE-10706
svn path=/branches/ros-branch-0_4_0/; revision=70372
2015-12-16 22:39:01 +00:00
Amine Khaldi
557bc89a2b [0.4.0] * Merge expanding the wallpaper by default from r70363. CORE-10709
svn path=/branches/ros-branch-0_4_0/; revision=70371
2015-12-16 22:08:25 +00:00
Amine Khaldi
4d0baaa1c0 [0.4.0] * Merge Hermès' clipboard related fixes.
svn path=/branches/ros-branch-0_4_0/; revision=70370
2015-12-16 22:05:19 +00:00
Amine Khaldi
92a3d2dfa2 [0.4.0] * Disable COMMAND.COM debugging messages for the release. This is r70365 but with NDEBUG defined. CORE-10710
svn path=/branches/ros-branch-0_4_0/; revision=70368
2015-12-16 21:44:38 +00:00
Amine Khaldi
c42e397894 [0.4.0] * Merge the blurry icons fix by Henry Tang Ih in r70363. CORE-10640
svn path=/branches/ros-branch-0_4_0/; revision=70364
2015-12-16 14:59:17 +00:00
Amine Khaldi
4796a590d0 [0.4.0] * Merge VBoxTray tooltip text fix by Mark Jansen and David Quintana in r70360. CORE-10497
svn path=/branches/ros-branch-0_4_0/; revision=70362
2015-12-16 14:53:50 +00:00
Amine Khaldi
098f1d0707 [0.4.0] * Merge the Romanian translation update by Ștefan Fulea in revisions 70357 and 70358. CORE-10676
svn path=/branches/ros-branch-0_4_0/; revision=70359
2015-12-16 12:06:20 +00:00
Amine Khaldi
fde549f9e8 [0.4.0] * Merge iphlpapi_apitest:SendARP tests fix by Pierre Schweitzer in r70323.
svn path=/branches/ros-branch-0_4_0/; revision=70353
2015-12-15 23:11:49 +00:00
Amine Khaldi
6605b25ca5 [0.4.0] * Merge magnifier improvements by David Quintana in revisions 70335 => 70337. CORE-10691
svn path=/branches/ros-branch-0_4_0/; revision=70352
2015-12-15 22:53:08 +00:00
Amine Khaldi
2eac40cac6 [0.4.0] * Apply the patch that allows us to dynamically change the resolution by resizing in VirtualBox. CORE-6742
svn path=/branches/ros-branch-0_4_0/; revision=70351
2015-12-15 22:41:59 +00:00
Thomas Faber
18a30e3584 [0.4.0]
- Update version to 0.4.0
- Properly determine SVN revision
- Update CD root readme

svn path=/branches/ros-branch-0_4_0/; revision=70325
2015-12-12 08:32:56 +00:00
Thomas Faber
09eac3a2be [0.4.0]
- Sync up to trunk r70321

svn path=/branches/ros-branch-0_4_0/; revision=70322
2015-12-11 10:47:15 +00:00
Amine Khaldi
c26a6d98d7 * Sync up to trunk head.
svn path=/branches/ros-branch-0_4_0/; revision=70108
2015-11-25 11:00:39 +00:00
7369 changed files with 83950 additions and 242924 deletions

View File

@@ -19,7 +19,7 @@ endif()
project(REACTOS)
# Versioning
include(sdk/include/reactos/version.cmake)
include(include/reactos/version.cmake)
# Don't escape preprocessor definition values added via add_definitions
cmake_policy(SET CMP0005 OLD)
@@ -98,13 +98,13 @@ if(NOT CMAKE_CROSSCOMPILING)
add_compile_flags("-fshort-wchar -Wno-multichar")
endif()
include_directories(sdk/include/host)
include_directories(include/host)
if(NOT MSVC)
add_subdirectory(dll/win32/dbghelp)
endif()
add_subdirectory(sdk/tools)
add_subdirectory(sdk/lib)
add_subdirectory(tools)
add_subdirectory(lib)
if(NOT NEW_STYLE_BUILD)
if(NOT MSVC)
@@ -227,32 +227,32 @@ else()
include(cmake/widl-support.cmake)
include_directories(
sdk/include
sdk/include/psdk
sdk/include/dxsdk
${REACTOS_BINARY_DIR}/sdk/include
${REACTOS_BINARY_DIR}/sdk/include/psdk
${REACTOS_BINARY_DIR}/sdk/include/dxsdk
${REACTOS_BINARY_DIR}/sdk/include/ddk
${REACTOS_BINARY_DIR}/sdk/include/reactos
sdk/include/crt
sdk/include/ddk
sdk/include/ndk
sdk/include/reactos
sdk/include/reactos/libs)
include
include/psdk
include/dxsdk
${REACTOS_BINARY_DIR}/include
${REACTOS_BINARY_DIR}/include/psdk
${REACTOS_BINARY_DIR}/include/dxsdk
${REACTOS_BINARY_DIR}/include/ddk
${REACTOS_BINARY_DIR}/include/reactos
include/crt
include/ddk
include/ndk
include/reactos
include/reactos/libs)
if(ARCH STREQUAL "arm")
include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/arm)
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/arm)
endif()
add_dependency_header()
add_subdirectory(sdk/include/xdk)
add_subdirectory(sdk/include/psdk)
add_subdirectory(sdk/include/dxsdk)
add_subdirectory(sdk/include/reactos/wine)
add_subdirectory(sdk/include/reactos/mc)
add_subdirectory(sdk/include/asm)
add_subdirectory(include/xdk)
add_subdirectory(include/psdk)
add_subdirectory(include/dxsdk)
add_subdirectory(include/reactos/wine)
add_subdirectory(include/reactos/mc)
add_subdirectory(include/asm)
if(NO_ROSSYM)
include(cmake/baseaddress_dwarf.cmake)
@@ -271,12 +271,12 @@ else()
add_subdirectory(dll)
add_subdirectory(drivers)
add_subdirectory(hal)
add_subdirectory(sdk/lib)
add_subdirectory(lib)
add_subdirectory(media)
add_subdirectory(modules)
add_subdirectory(ntoskrnl)
add_subdirectory(subsystems)
add_subdirectory(sdk/tools/wpp)
add_subdirectory(tools/wpp)
add_subdirectory(win32ss)
# Create the registry hives
@@ -285,7 +285,7 @@ else()
# Create {bootcd, livecd, bootcdregtest}.lst
create_iso_lists()
file(MAKE_DIRECTORY ${REACTOS_BINARY_DIR}/sdk/include/reactos)
file(MAKE_DIRECTORY ${REACTOS_BINARY_DIR}/include/reactos)
add_dependency_footer()
endif()

File diff suppressed because it is too large Load Diff

View File

@@ -24,10 +24,6 @@ HICON hSmIcon;
HICON hBgIcon;
SETTINGS Settings;
/* GetUName prototype */
typedef int (WINAPI * GETUNAME)(WORD wCharCode, LPWSTR lpbuf);
GETUNAME GetUName;
/* Font-enumeration callback */
static
int
@@ -261,20 +257,6 @@ UpdateSettings(HWND hDlg)
}
#endif
VOID
UpdateStatusBar(WCHAR wch)
{
WCHAR buff[MAX_PATH];
WCHAR szDesc[MAX_PATH];
if (GetUName)
{
GetUName(wch, szDesc);
wsprintfW(buff, L"U+%04X: %s", wch, szDesc);
SendMessageW(hStatusWnd, SB_SETTEXT, 0, (LPARAM)buff);
}
}
static
void
ChangeView(HWND hWnd)
@@ -589,7 +571,6 @@ wWinMain(HINSTANCE hInst,
INT Ret = 1;
HMODULE hRichEd20;
MSG Msg;
HINSTANCE hGetUName = NULL;
hInstance = hInst;
@@ -597,18 +578,6 @@ wWinMain(HINSTANCE hInst,
iccx.dwICC = ICC_TAB_CLASSES;
InitCommonControlsEx(&iccx);
/* Loading the GetUName function */
hGetUName = LoadLibraryW(L"getuname.dll");
if (hGetUName != NULL)
{
GetUName = (GETUNAME) GetProcAddress(hGetUName, "GetUName");
if (GetUName == NULL)
{
FreeLibrary(hGetUName);
hGetUName = NULL;
}
}
if (RegisterMapClasses(hInstance))
{
hRichEd20 = LoadLibraryW(L"RICHED20.DLL");
@@ -634,8 +603,5 @@ wWinMain(HINSTANCE hInst,
UnregisterMapClasses(hInstance);
}
if (hGetUName != NULL)
FreeLibrary(hGetUName);
return Ret;
}

View File

@@ -4,18 +4,18 @@ IDD_CHARMAP DIALOGEX 6, 6, 292, 224
FONT 8, "MS Shell Dlg", 0, 0
STYLE DS_SHELLFONT | WS_CHILD | WS_VISIBLE
BEGIN
LTEXT "&Font:", IDC_STATIC, 6, 7, 24, 9
LTEXT "Font:", IDC_STATIC, 6, 7, 24, 9
COMBOBOX IDC_FONTCOMBO, 36, 5, 210, 210, WS_CHILD | WS_VISIBLE |
WS_VSCROLL | CBS_DROPDOWNLIST | CBS_SORT | CBS_HASSTRINGS
PUSHBUTTON "&Help", IDC_CMHELP, 249, 5, 35, 13
PUSHBUTTON "Help", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP |
WS_VSCROLL, 20, 22, 266, 156
LTEXT "Ch&aracters to copy:", IDC_STATIC, 6, 188, 66, 9
LTEXT "Characters to copy:", IDC_STATIC, 6, 188, 66, 9
CONTROL "", IDC_TEXTBOX, RICHEDIT_CLASS, ES_AUTOHSCROLL | WS_BORDER |
WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "&Select", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "&Copy", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
CONTROL "Ad&vanced view", IDC_CHECK_ADVANCED, "Button", BS_AUTOCHECKBOX |
DEFPUSHBUTTON "Select", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "Copy", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
CONTROL "Advanced view", IDC_CHECK_ADVANCED, "Button", BS_AUTOCHECKBOX |
WS_TABSTOP, 8, 208, 95, 10
END
@@ -23,14 +23,14 @@ IDD_ADVANCED DIALOGEX 0, 0, 292, 64
STYLE DS_SHELLFONT | WS_CHILD
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Charse&t:", IDC_STATIC, 8, 8, 48, 8
LTEXT "Charset:", IDC_STATIC, 8, 8, 48, 8
COMBOBOX IDC_COMBO_CHARSET, 72, 4, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "&Group by:", IDC_STATIC, 8, 28, 50, 8
LTEXT "Group by:", IDC_STATIC, 8, 28, 50, 8
COMBOBOX IDC_COMBO_GROUPBY, 72, 24, 116, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Sea&rch", IDC_BUTTON_SEARCH, 200, 44, 50, 14
PUSHBUTTON "Search", IDC_BUTTON_SEARCH, 200, 44, 50, 14
EDITTEXT IDC_EDIT_SEARCH, 72, 44, 116, 14, ES_AUTOHSCROLL
LTEXT "S&earch for:", IDC_STATIC, 8, 48, 42, 8
LTEXT "&Unicode:", IDC_STATIC, 200, 8, 30, 8
LTEXT "Search for:", IDC_STATIC, 8, 48, 42, 8
LTEXT "Unicode:", IDC_STATIC, 200, 8, 30, 8
EDITTEXT IDC_EDIT_UNICODE, 236, 4, 28, 12, ES_AUTOHSCROLL
END
@@ -40,7 +40,7 @@ FONT 8, "MS Shell Dlg", 0, 0
STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
BEGIN
LTEXT "Character Map v0.1\nCopyright (C) 2007 Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 150, 36
PUSHBUTTON "&Close", IDOK, 75, 162, 44, 15
PUSHBUTTON "Close", IDOK, 75, 162, 44, 15
ICON IDI_ICON, IDC_STATIC, 10, 10, 7, 30
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL |
WS_TABSTOP | ES_READONLY | ES_MULTILINE

View File

@@ -140,7 +140,6 @@ LrgCellWndProc(HWND hwnd,
EndPaint(hwnd,
&ps);
UpdateStatusBar(infoPtr->pActiveCell->ch);
break;
}

View File

@@ -74,7 +74,6 @@ BOOL RegisterMapClasses(HINSTANCE hInstance);
VOID UnregisterMapClasses(HINSTANCE hInstance);
/* charmap.c */
VOID UpdateStatusBar(WCHAR wch);
extern VOID ChangeMapFont(HWND hDlg);
/* settings.c */

View File

@@ -8,7 +8,7 @@ if(NOT MSVC)
endif()
include_directories(
${REACTOS_SOURCE_DIR}/sdk/lib/atl
${REACTOS_SOURCE_DIR}/lib/atl
includes)
list(APPEND SOURCE

View File

@@ -2,9 +2,9 @@
list(APPEND SOURCE
clipbrd.c
cliputils.c
winutils.c
fileutils.c
scrollutils.c
winutils.c
precomp.h)
add_executable(clipbrd ${SOURCE} clipbrd.rc)

View File

@@ -58,28 +58,7 @@ static void SaveClipboardToFile(void)
return;
}
WriteClipboardFile(szFileName, CLIP_FMT_NT /* CLIP_FMT_31 */);
CloseClipboard();
}
static void LoadClipboardDataFromFile(LPWSTR lpszFileName)
{
if (MessageBoxRes(Globals.hMainWnd, Globals.hInstance,
STRING_DELETE_MSG, STRING_DELETE_TITLE,
MB_ICONWARNING | MB_YESNO) != IDYES)
{
return;
}
if (!OpenClipboard(Globals.hMainWnd))
{
ShowLastWin32Error(Globals.hMainWnd);
return;
}
EmptyClipboard();
ReadClipboardFile(lpszFileName);
WriteClipboardFile(szFileName);
CloseClipboard();
}
@@ -108,7 +87,19 @@ static void LoadClipboardFromFile(void)
if (!GetOpenFileNameW(&ofn))
return;
LoadClipboardDataFromFile(szFileName);
if (!OpenClipboard(Globals.hMainWnd))
{
ShowLastWin32Error(Globals.hMainWnd);
return;
}
if (MessageBoxRes(Globals.hMainWnd, Globals.hInstance, STRING_DELETE_MSG, STRING_DELETE_TITLE, MB_ICONWARNING | MB_YESNO) == IDYES)
{
EmptyClipboard();
ReadClipboardFile(szFileName);
}
CloseClipboard();
}
static void LoadClipboardFromDrop(HDROP hDrop)
@@ -118,7 +109,19 @@ static void LoadClipboardFromDrop(HDROP hDrop)
DragQueryFileW(hDrop, 0, szFileName, ARRAYSIZE(szFileName));
DragFinish(hDrop);
LoadClipboardDataFromFile(szFileName);
if (!OpenClipboard(Globals.hMainWnd))
{
ShowLastWin32Error(Globals.hMainWnd);
return;
}
if (MessageBoxRes(Globals.hMainWnd, Globals.hInstance, STRING_DELETE_MSG, STRING_DELETE_TITLE, MB_ICONWARNING | MB_YESNO) == IDYES)
{
EmptyClipboard();
ReadClipboardFile(szFileName);
}
CloseClipboard();
}
static void SetDisplayFormat(UINT uFormat)
@@ -166,7 +169,7 @@ static void InitMenuPopup(HMENU hMenu, LPARAM index)
DrawMenuBar(Globals.hMainWnd);
}
static void UpdateDisplayMenu(void)
void UpdateDisplayMenu(void)
{
UINT uFormat;
WCHAR szFormatName[MAX_FMT_NAME_LEN + 1];
@@ -190,7 +193,7 @@ static void UpdateDisplayMenu(void)
uFormat = EnumClipboardFormats(0);
while (uFormat)
{
RetrieveClipboardFormatName(Globals.hInstance, uFormat, TRUE, szFormatName, ARRAYSIZE(szFormatName));
RetrieveClipboardFormatName(Globals.hInstance, uFormat, szFormatName, ARRAYSIZE(szFormatName));
if (!IsClipboardFormatSupported(uFormat))
{
@@ -231,14 +234,10 @@ static int ClipboardCommandHandler(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM l
case CMD_DELETE:
{
if (MessageBoxRes(Globals.hMainWnd, Globals.hInstance,
STRING_DELETE_MSG, STRING_DELETE_TITLE,
MB_ICONWARNING | MB_YESNO) != IDYES)
if (MessageBoxRes(Globals.hMainWnd, Globals.hInstance, STRING_DELETE_MSG, STRING_DELETE_TITLE, MB_ICONWARNING | MB_YESNO) == IDYES)
{
break;
DeleteClipboardContent();
}
DeleteClipboardContent();
break;
}
@@ -259,7 +258,7 @@ static int ClipboardCommandHandler(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM l
WCHAR szTitle[MAX_STRING_LEN];
HICON hIcon;
hIcon = LoadIconW(Globals.hInstance, MAKEINTRESOURCE(CLIPBRD_ICON));
hIcon = LoadIconW(Globals.hInstance, MAKEINTRESOURCE(CLIP_ICON));
LoadStringW(Globals.hInstance, STRING_CLIPBOARD, szTitle, ARRAYSIZE(szTitle));
ShellAboutW(Globals.hMainWnd, szTitle, 0, hIcon);
DeleteObject(hIcon);
@@ -280,8 +279,10 @@ static void ClipboardPaintHandler(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lP
PAINTSTRUCT ps;
RECT rc;
if (!OpenClipboard(Globals.hMainWnd))
if (!OpenClipboard(NULL))
{
return;
}
hdc = BeginPaint(hWnd, &ps);
GetClientRect(hWnd, &rc);
@@ -317,18 +318,18 @@ static void ClipboardPaintHandler(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lP
break;
}
case CF_METAFILEPICT:
{
PlayMetaFileFromClipboard(hdc, &rc);
break;
}
case CF_ENHMETAFILE:
{
PlayEnhMetaFileFromClipboard(hdc, &rc);
break;
}
case CF_METAFILEPICT:
{
PlayMetaFileFromClipboard(hdc, &rc);
break;
}
default:
{
DrawTextFromResource(Globals.hInstance, ERROR_UNSUPPORTED_FORMAT, hdc, &rc, DT_CENTER | DT_WORDBREAK | DT_NOPREFIX);
@@ -345,28 +346,6 @@ static LRESULT WINAPI MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lP
{
switch(uMsg)
{
case WM_CREATE:
{
Globals.hMenu = GetMenu(hWnd);
Globals.hWndNext = SetClipboardViewer(hWnd);
UpdateDisplayMenu();
SetDisplayFormat(0);
break;
}
case WM_CLOSE:
{
DestroyWindow(hWnd);
break;
}
case WM_DESTROY:
{
ChangeClipboardChain(hWnd, Globals.hWndNext);
PostQuitMessage(0);
break;
}
case WM_PAINT:
{
ClipboardPaintHandler(hWnd, uMsg, wParam, lParam);
@@ -416,6 +395,28 @@ static LRESULT WINAPI MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lP
break;
}
case WM_CREATE:
{
Globals.hMenu = GetMenu(hWnd);
Globals.hWndNext = SetClipboardViewer(hWnd);
UpdateDisplayMenu();
SetDisplayFormat(0);
break;
}
case WM_CLOSE:
{
DestroyWindow(hWnd);
break;
}
case WM_DESTROY:
{
ChangeClipboardChain(hWnd, Globals.hWndNext);
PostQuitMessage(0);
break;
}
case WM_CHANGECBCHAIN:
{
if ((HWND)wParam == Globals.hWndNext)
@@ -533,7 +534,7 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLi
wndclass.cbSize = sizeof(wndclass);
wndclass.lpfnWndProc = MainWndProc;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIconW(hInstance, MAKEINTRESOURCEW(CLIPBRD_ICON));
wndclass.hIcon = LoadIconW(hInstance, MAKEINTRESOURCEW(CLIP_ICON));
wndclass.hCursor = LoadCursorW(0, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wndclass.lpszMenuName = MAKEINTRESOURCEW(MAIN_MENU);
@@ -573,10 +574,6 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLi
ShowLastWin32Error(Globals.hMainWnd);
}
/* If the user provided a path to a clipboard data file, try to open it */
if (lpCmdLine != NULL && *lpCmdLine)
LoadClipboardDataFromFile(lpCmdLine);
UpdateLinesToScroll();
while (GetMessageW(&msg, 0, 0, 0))

View File

@@ -8,8 +8,7 @@
#define REACTOS_STR_ORIGINAL_FILENAME "clipbrd.exe"
#include <reactos/version.rc>
CLIPBRD_ICON ICON "res/clipbrd.ico"
CLPFILE_ICON ICON "res/clpfile.ico"
CLIP_ICON ICON "res/clipbrd.ico"
#include <reactos/manifest_exe.rc>

View File

@@ -8,61 +8,73 @@
#include "precomp.h"
static int
GetPredefinedClipboardFormatName(HINSTANCE hInstance,
UINT uFormat,
BOOL Unicode,
PVOID lpszFormat,
UINT cch)
int GetPredefinedClipboardFormatName(HINSTANCE hInstance, UINT uFormat, LPWSTR lpszFormat, UINT cch)
{
static
struct FORMAT_NAME
{
UINT uFormat;
UINT uResID;
} uFormatList[] = {
/* Table sorted in increasing order of CF_xxx values, please keep it this way! */
{CF_TEXT , STRING_CF_TEXT }, // 1
{CF_BITMAP , STRING_CF_BITMAP }, // 2
{CF_METAFILEPICT, STRING_CF_METAFILEPICT}, // 3
{CF_SYLK , STRING_CF_SYLK }, // 4
{CF_DIF , STRING_CF_DIF }, // 5
{CF_TIFF , 0/*STRING_CF_TIFF*/ }, // 6
{CF_OEMTEXT , STRING_CF_OEMTEXT }, // 7
{CF_DIB , STRING_CF_DIB }, // 8
{CF_PALETTE , STRING_CF_PALETTE }, // 9
{CF_PENDATA , 0/*STRING_CF_PENDATA*/ }, // 10
{CF_RIFF , 0/*STRING_CF_RIFF*/ }, // 11
{CF_WAVE , 0/*STRING_CF_WAVE*/ }, // 12
{CF_UNICODETEXT , STRING_CF_UNICODETEXT }, // 13
{CF_ENHMETAFILE , STRING_CF_ENHMETAFILE }, // 14
#if(WINVER >= 0x0400)
{CF_HDROP , STRING_CF_HDROP }, // 15
{CF_LOCALE , STRING_CF_LOCALE }, // 16
#endif
#if(WINVER >= 0x0500)
{CF_DIBV5 , STRING_CF_DIBV5 }, // 17
#endif
};
switch (uFormat)
{
case CF_TEXT: case CF_BITMAP: case CF_METAFILEPICT:
case CF_SYLK: case CF_DIF: // case CF_TIFF:
case CF_OEMTEXT: case CF_DIB: case CF_PALETTE:
// case CF_PENDATA: // case CF_RIFF: // case CF_WAVE:
case CF_UNICODETEXT: case CF_ENHMETAFILE:
#if(WINVER >= 0x0400)
case CF_HDROP: case CF_LOCALE:
#endif
#if(WINVER >= 0x0500)
case CF_DIBV5:
#endif
case CF_TEXT:
{
if (Unicode)
return LoadStringW(hInstance, uFormatList[uFormat-1].uResID, (LPWSTR)lpszFormat, cch);
else
return LoadStringA(hInstance, uFormatList[uFormat-1].uResID, (LPSTR)lpszFormat, cch);
return LoadStringW(hInstance, STRING_CF_TEXT, lpszFormat, cch);
}
case CF_BITMAP:
{
return LoadStringW(hInstance, STRING_CF_BITMAP, lpszFormat, cch);
}
case CF_OEMTEXT:
{
return LoadStringW(hInstance, STRING_CF_OEMTEXT, lpszFormat, cch);
}
case CF_UNICODETEXT:
{
return LoadStringW(hInstance, STRING_CF_UNICODETEXT, lpszFormat, cch);
}
case CF_DIB:
{
return LoadStringW(hInstance, STRING_CF_DIB, lpszFormat, cch);
}
case CF_LOCALE:
{
return LoadStringW(hInstance, STRING_CF_LOCALE, lpszFormat, cch);
}
case CF_ENHMETAFILE:
{
return LoadStringW(hInstance, STRING_CF_ENHMETAFILE, lpszFormat, cch);
}
case CF_METAFILEPICT:
{
return LoadStringW(hInstance, STRING_CF_METAFILEPICT, lpszFormat, cch);
}
case CF_PALETTE:
{
return LoadStringW(hInstance, STRING_CF_PALETTE, lpszFormat, cch);
}
case CF_DIBV5:
{
return LoadStringW(hInstance, STRING_CF_DIBV5, lpszFormat, cch);
}
case CF_SYLK:
{
return LoadStringW(hInstance, STRING_CF_SYLK, lpszFormat, cch);
}
case CF_DIF:
{
return LoadStringW(hInstance, STRING_CF_DIF, lpszFormat, cch);
}
case CF_HDROP:
{
return LoadStringW(hInstance, STRING_CF_HDROP, lpszFormat, cch);
}
default:
@@ -72,24 +84,13 @@ GetPredefinedClipboardFormatName(HINSTANCE hInstance,
}
}
void
RetrieveClipboardFormatName(HINSTANCE hInstance,
UINT uFormat,
BOOL Unicode,
PVOID lpszFormat,
UINT cch)
void RetrieveClipboardFormatName(HINSTANCE hInstance, UINT uFormat, LPWSTR lpszFormat, UINT cch)
{
if (!GetPredefinedClipboardFormatName(hInstance, uFormat, Unicode, lpszFormat, cch))
if (!GetPredefinedClipboardFormatName(hInstance, uFormat, lpszFormat, cch))
{
if (Unicode)
if (!GetClipboardFormatName(uFormat, lpszFormat, cch))
{
if (!GetClipboardFormatNameW(uFormat, (LPWSTR)lpszFormat, cch))
LoadStringW(hInstance, STRING_CF_UNKNOWN, (LPWSTR)lpszFormat, cch);
}
else
{
if (!GetClipboardFormatNameA(uFormat, (LPSTR)lpszFormat, cch))
LoadStringA(hInstance, STRING_CF_UNKNOWN, (LPSTR)lpszFormat, cch);
LoadStringW(hInstance, STRING_CF_UNKNOWN, lpszFormat, cch);
}
}
}

View File

@@ -6,13 +6,8 @@
* PROGRAMMERS: Ricardo Hanke
*/
void
RetrieveClipboardFormatName(HINSTANCE hInstance,
UINT uFormat,
BOOL Unicode,
PVOID lpszFormat,
UINT cch);
int GetPredefinedClipboardFormatName(HINSTANCE hInstance, UINT uFormat, LPWSTR lpszFormat, UINT cch);
void RetrieveClipboardFormatName(HINSTANCE hInstance, UINT uFormat, LPWSTR lpszFormat, UINT cch);
void DeleteClipboardContent(void);
UINT GetAutomaticClipboardFormat(void);
BOOL IsClipboardFormatSupported(UINT uFormat);

View File

@@ -4,7 +4,6 @@
* FILE: base/applications/clipbrd/fileutils.c
* PURPOSE: Clipboard file format helper functions.
* PROGRAMMERS: Ricardo Hanke
* Hermes Belusca-Maito
*/
#include "precomp.h"
@@ -17,7 +16,9 @@ static HGLOBAL ClipboardReadMemoryBlock(HANDLE hFile, DWORD dwOffset, DWORD dwLe
hData = GlobalAlloc(GHND, dwLength);
if (!hData)
{
return NULL;
}
lpData = GlobalLock(hData);
if (!lpData)
@@ -45,22 +46,20 @@ static HGLOBAL ClipboardReadMemoryBlock(HANDLE hFile, DWORD dwOffset, DWORD dwLe
return hData;
}
static BOOL ClipboardReadMemory(HANDLE hFile, DWORD dwFormat, DWORD dwOffset, DWORD dwLength, WORD FileIdentifier, PVOID lpFormatName)
static BOOL ClipboardReadMemory(HANDLE hFile, DWORD dwFormat, DWORD dwOffset, DWORD dwLength, LPCWSTR lpFormatName)
{
HGLOBAL hData;
DWORD dwTemp = 0;
DWORD dwTemp;
hData = ClipboardReadMemoryBlock(hFile, dwOffset, dwLength);
if (!hData)
{
return FALSE;
}
if ((dwFormat >= 0xC000) && (dwFormat <= 0xFFFF))
{
if (FileIdentifier == CLIP_FMT_31)
dwTemp = RegisterClipboardFormatA((LPCSTR)lpFormatName);
else if ((FileIdentifier == CLIP_FMT_NT) || (FileIdentifier == CLIP_FMT_BK))
dwTemp = RegisterClipboardFormatW((LPCWSTR)lpFormatName);
dwTemp = RegisterClipboardFormatW(lpFormatName);
if (!dwTemp)
{
GlobalFree(hData);
@@ -81,39 +80,6 @@ static BOOL ClipboardReadMemory(HANDLE hFile, DWORD dwFormat, DWORD dwOffset, DW
return TRUE;
}
static BOOL ClipboardWriteMemory(HANDLE hFile, DWORD dwFormat, DWORD dwOffset, PDWORD pdwLength)
{
HGLOBAL hData;
LPVOID lpData;
DWORD dwBytesWritten;
hData = GetClipboardData(dwFormat);
if (!hData)
return FALSE;
lpData = GlobalLock(hData);
if (!lpData)
return FALSE;
*pdwLength = GlobalSize(hData);
if (SetFilePointer(hFile, dwOffset, NULL, FILE_BEGIN) == INVALID_SET_FILE_POINTER)
{
GlobalUnlock(hData);
return FALSE;
}
if (!WriteFile(hFile, lpData, *pdwLength, &dwBytesWritten, NULL))
{
GlobalUnlock(hData);
return FALSE;
}
GlobalUnlock(hData);
return TRUE;
}
static BOOL ClipboardReadPalette(HANDLE hFile, DWORD dwOffset, DWORD dwLength)
{
LPLOGPALETTE lpPalette;
@@ -154,45 +120,6 @@ static BOOL ClipboardReadPalette(HANDLE hFile, DWORD dwOffset, DWORD dwLength)
return TRUE;
}
static BOOL ClipboardReadMetafile(HANDLE hFile, DWORD dwOffset, DWORD dwLength)
{
HMETAFILE hMf;
HGLOBAL hData;
LPVOID lpData;
hData = ClipboardReadMemoryBlock(hFile, dwOffset, dwLength);
if (!hData)
{
return FALSE;
}
lpData = GlobalLock(hData);
if (!lpData)
{
GlobalFree(hData);
return FALSE;
}
hMf = SetMetaFileBitsEx(dwLength, lpData);
GlobalUnlock(hData);
GlobalFree(hData);
if (!hMf)
{
SetLastError(ERROR_OUTOFMEMORY);
return FALSE;
}
if (!SetClipboardData(CF_METAFILEPICT, hMf))
{
DeleteMetaFile(hMf);
return FALSE;
}
return TRUE;
}
static BOOL ClipboardReadEnhMetafile(HANDLE hFile, DWORD dwOffset, DWORD dwLength)
{
HENHMETAFILE hEmf;
@@ -275,126 +202,53 @@ static BOOL ClipboardReadBitmap(HANDLE hFile, DWORD dwOffset, DWORD dwLength)
void ReadClipboardFile(LPCWSTR lpFileName)
{
CLIPFILEHEADER ClipFileHeader;
CLIPFORMATHEADER ClipFormatArray;
NTCLIPFILEHEADER NtClipFileHeader;
NTCLIPFORMATHEADER NtClipFormatArray;
PVOID pClipFileHeader;
PVOID pClipFormatArray;
DWORD SizeOfFileHeader, SizeOfFormatHeader;
WORD wFileIdentifier;
WORD wFormatCount;
DWORD dwFormatID;
DWORD dwLenData;
DWORD dwOffData;
PVOID szName;
CLIPBOARDFILEHEADER cfhFileHeader;
CLIPBOARDFORMATHEADER *cfhFormatArray = NULL;
HANDLE hFile;
DWORD dwBytesRead;
BOOL bResult;
int i;
/* Open the file for read access */
hFile = CreateFileW(lpFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
hFile = CreateFileW(lpFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
ShowLastWin32Error(Globals.hMainWnd);
goto done;
}
/* Just read enough bytes to get the clipboard file format ID */
if (!ReadFile(hFile, &wFileIdentifier, sizeof(wFileIdentifier), &dwBytesRead, NULL))
if (!ReadFile(hFile, &cfhFileHeader, sizeof(cfhFileHeader), &dwBytesRead, NULL))
{
ShowLastWin32Error(Globals.hMainWnd);
goto done;
}
/* Set data according to the clipboard file format ID */
switch (wFileIdentifier)
if ((cfhFileHeader.wFileIdentifier != CLIPBOARD_FORMAT_NT) && (cfhFileHeader.wFileIdentifier != CLIPBOARD_FORMAT_BK))
{
case CLIP_FMT_31:
SizeOfFileHeader = sizeof(CLIPFILEHEADER);
SizeOfFormatHeader = sizeof(CLIPFORMATHEADER);
pClipFileHeader = &ClipFileHeader;
pClipFormatArray = &ClipFormatArray;
break;
case CLIP_FMT_NT:
case CLIP_FMT_BK:
SizeOfFileHeader = sizeof(NTCLIPFILEHEADER);
SizeOfFormatHeader = sizeof(NTCLIPFORMATHEADER);
pClipFileHeader = &NtClipFileHeader;
pClipFormatArray = &NtClipFormatArray;
break;
default:
MessageBoxRes(Globals.hMainWnd, Globals.hInstance, ERROR_INVALID_FILE_FORMAT, 0, MB_ICONSTOP | MB_OK);
goto done;
MessageBoxRes(Globals.hMainWnd, Globals.hInstance, ERROR_INVALID_FILE_FORMAT, 0, MB_ICONSTOP | MB_OK);
goto done;
}
/* Completely read the header */
SetFilePointer(hFile, 0, NULL, FILE_BEGIN);
if (!ReadFile(hFile, pClipFileHeader, SizeOfFileHeader, &dwBytesRead, NULL) ||
dwBytesRead != SizeOfFileHeader)
cfhFormatArray = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, cfhFileHeader.wFormatCount * sizeof(CLIPBOARDFORMATHEADER));
if (!cfhFormatArray)
{
SetLastError(ERROR_OUTOFMEMORY);
ShowLastWin32Error(Globals.hMainWnd);
goto done;
}
if (!ReadFile(hFile, cfhFormatArray, cfhFileHeader.wFormatCount * sizeof(CLIPBOARDFORMATHEADER), &dwBytesRead, NULL))
{
ShowLastWin32Error(Globals.hMainWnd);
goto done;
}
/* Get header data */
switch (wFileIdentifier)
for (i = 0; i < cfhFileHeader.wFormatCount; i++)
{
case CLIP_FMT_31:
assert(wFileIdentifier == ((CLIPFILEHEADER*)pClipFileHeader)->wFileIdentifier);
wFormatCount = ((CLIPFILEHEADER*)pClipFileHeader)->wFormatCount;
break;
case CLIP_FMT_NT:
case CLIP_FMT_BK:
assert(wFileIdentifier == ((NTCLIPFILEHEADER*)pClipFileHeader)->wFileIdentifier);
wFormatCount = ((NTCLIPFILEHEADER*)pClipFileHeader)->wFormatCount;
break;
}
/* Loop through the format data array */
for (i = 0; i < wFormatCount; i++)
{
if (SetFilePointer(hFile, SizeOfFileHeader + i * SizeOfFormatHeader, NULL, FILE_BEGIN) == INVALID_SET_FILE_POINTER)
{
ShowLastWin32Error(Globals.hMainWnd);
goto done;
}
if (!ReadFile(hFile, pClipFormatArray, SizeOfFormatHeader, &dwBytesRead, NULL))
{
ShowLastWin32Error(Globals.hMainWnd);
goto done;
}
/* Get format data */
switch (wFileIdentifier)
{
case CLIP_FMT_31:
dwFormatID = ((CLIPFORMATHEADER*)pClipFormatArray)->dwFormatID;
dwLenData = ((CLIPFORMATHEADER*)pClipFormatArray)->dwLenData;
dwOffData = ((CLIPFORMATHEADER*)pClipFormatArray)->dwOffData;
szName = ((CLIPFORMATHEADER*)pClipFormatArray)->szName;
break;
case CLIP_FMT_NT:
case CLIP_FMT_BK:
dwFormatID = ((NTCLIPFORMATHEADER*)pClipFormatArray)->dwFormatID;
dwLenData = ((NTCLIPFORMATHEADER*)pClipFormatArray)->dwLenData;
dwOffData = ((NTCLIPFORMATHEADER*)pClipFormatArray)->dwOffData;
szName = ((NTCLIPFORMATHEADER*)pClipFormatArray)->szName;
break;
}
switch (dwFormatID)
switch (cfhFormatArray[i].dwFormatID)
{
case CF_OWNERDISPLAY:
case CF_DSPMETAFILEPICT:
case CF_METAFILEPICT:
{
break;
}
@@ -402,191 +256,55 @@ void ReadClipboardFile(LPCWSTR lpFileName)
case CF_BITMAP:
case CF_DSPBITMAP:
{
bResult = ClipboardReadBitmap(hFile, dwOffData, dwLenData);
bResult = ClipboardReadBitmap(hFile, cfhFormatArray[i].dwOffData, cfhFormatArray[i].dwLenData);
break;
}
case CF_METAFILEPICT:
case CF_DSPMETAFILEPICT:
{
bResult = ClipboardReadMetafile(hFile, dwOffData, dwLenData);
break;
}
case CF_ENHMETAFILE:
case CF_DSPENHMETAFILE:
case CF_ENHMETAFILE:
{
bResult = ClipboardReadEnhMetafile(hFile, dwOffData, dwLenData);
bResult = ClipboardReadEnhMetafile(hFile, cfhFormatArray[i].dwOffData, cfhFormatArray[i].dwLenData);
break;
}
case CF_PALETTE:
{
bResult = ClipboardReadPalette(hFile, dwOffData, dwLenData);
bResult = ClipboardReadPalette(hFile, cfhFormatArray[i].dwOffData, cfhFormatArray[i].dwLenData);
break;
}
default:
{
if ((dwFormatID < CF_PRIVATEFIRST) || (dwFormatID > CF_PRIVATELAST))
if ((cfhFormatArray[i].dwFormatID < CF_PRIVATEFIRST) || (cfhFormatArray[i].dwFormatID > CF_PRIVATELAST))
{
bResult = ClipboardReadMemory(hFile, dwFormatID, dwOffData, dwLenData, wFileIdentifier, szName);
bResult = ClipboardReadMemory(hFile, cfhFormatArray[i].dwFormatID, cfhFormatArray[i].dwOffData, cfhFormatArray[i].dwLenData, cfhFormatArray[i].szName);
}
break;
}
}
if (!bResult)
{
ShowLastWin32Error(Globals.hMainWnd);
}
}
done:
if (hFile != INVALID_HANDLE_VALUE)
{
CloseHandle(hFile);
}
if (cfhFormatArray)
{
HeapFree(GetProcessHeap(), 0, cfhFormatArray);
}
return;
}
void WriteClipboardFile(LPCWSTR lpFileName, WORD wFileIdentifier)
void WriteClipboardFile(LPCWSTR lpFileName)
{
CLIPFILEHEADER ClipFileHeader;
CLIPFORMATHEADER ClipFormatArray;
NTCLIPFILEHEADER NtClipFileHeader;
NTCLIPFORMATHEADER NtClipFormatArray;
PVOID pClipFileHeader;
PVOID pClipFormatArray;
DWORD SizeOfFileHeader, SizeOfFormatHeader;
WORD wFormatCount;
DWORD dwFormatID;
DWORD dwLenData;
DWORD dwOffData;
// PVOID szName;
HANDLE hFile;
DWORD dwBytesWritten;
int i;
/* Create the file for write access */
hFile = CreateFileW(lpFileName, GENERIC_WRITE, 0, NULL,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
ShowLastWin32Error(Globals.hMainWnd);
goto done;
}
wFormatCount = CountClipboardFormats();
/* Select the file format and setup the header according to the clipboard file format ID */
switch (wFileIdentifier)
{
case CLIP_FMT_31:
SizeOfFileHeader = sizeof(CLIPFILEHEADER);
SizeOfFormatHeader = sizeof(CLIPFORMATHEADER);
pClipFileHeader = &ClipFileHeader;
pClipFormatArray = &ClipFormatArray;
ClipFileHeader.wFileIdentifier = CLIP_FMT_31; // wFileIdentifier
ClipFileHeader.wFormatCount = wFormatCount;
break;
case CLIP_FMT_NT:
case CLIP_FMT_BK:
SizeOfFileHeader = sizeof(NTCLIPFILEHEADER);
SizeOfFormatHeader = sizeof(NTCLIPFORMATHEADER);
pClipFileHeader = &NtClipFileHeader;
pClipFormatArray = &NtClipFormatArray;
NtClipFileHeader.wFileIdentifier = CLIP_FMT_NT; // wFileIdentifier
NtClipFileHeader.wFormatCount = wFormatCount;
break;
default:
MessageBoxRes(Globals.hMainWnd, Globals.hInstance, ERROR_INVALID_FILE_FORMAT, 0, MB_ICONSTOP | MB_OK);
goto done;
}
/* Write the header */
SetFilePointer(hFile, 0, NULL, FILE_BEGIN);
if (!WriteFile(hFile, pClipFileHeader, SizeOfFileHeader, &dwBytesWritten, NULL) ||
dwBytesWritten != SizeOfFileHeader)
{
ShowLastWin32Error(Globals.hMainWnd);
goto done;
}
/* Compute where the data should start (after the file header and the format array) */
dwOffData = SizeOfFileHeader + wFormatCount * SizeOfFormatHeader;
/* Loop through each format and save the data */
i = 0;
dwFormatID = EnumClipboardFormats(0);
while (dwFormatID)
{
if (i >= wFormatCount)
{
/* Must never happen! */
assert(FALSE);
break;
}
/* Write the clipboard data at the specified offset, and retrieve its length */
if (!ClipboardWriteMemory(hFile, dwFormatID, dwOffData, &dwLenData))
goto Cont;
/* Write the format data header */
switch (wFileIdentifier)
{
case CLIP_FMT_31:
ZeroMemory(pClipFormatArray, sizeof(CLIPFORMATHEADER));
((CLIPFORMATHEADER*)pClipFormatArray)->dwFormatID = dwFormatID;
((CLIPFORMATHEADER*)pClipFormatArray)->dwLenData = dwLenData;
((CLIPFORMATHEADER*)pClipFormatArray)->dwOffData = dwOffData;
RetrieveClipboardFormatName(Globals.hInstance,
dwFormatID,
FALSE,
((CLIPFORMATHEADER*)pClipFormatArray)->szName,
ARRAYSIZE(((CLIPFORMATHEADER*)pClipFormatArray)->szName));
break;
case CLIP_FMT_NT:
case CLIP_FMT_BK:
ZeroMemory(pClipFormatArray, sizeof(NTCLIPFORMATHEADER));
((NTCLIPFORMATHEADER*)pClipFormatArray)->dwFormatID = dwFormatID;
((NTCLIPFORMATHEADER*)pClipFormatArray)->dwLenData = dwLenData;
((NTCLIPFORMATHEADER*)pClipFormatArray)->dwOffData = dwOffData;
RetrieveClipboardFormatName(Globals.hInstance,
dwFormatID,
TRUE,
((NTCLIPFORMATHEADER*)pClipFormatArray)->szName,
ARRAYSIZE(((NTCLIPFORMATHEADER*)pClipFormatArray)->szName));
break;
}
if (SetFilePointer(hFile, SizeOfFileHeader + i * SizeOfFormatHeader, NULL, FILE_BEGIN) == INVALID_SET_FILE_POINTER)
{
ShowLastWin32Error(Globals.hMainWnd);
goto done;
}
if (!WriteFile(hFile, pClipFormatArray, SizeOfFormatHeader, &dwBytesWritten, NULL))
{
ShowLastWin32Error(Globals.hMainWnd);
goto done;
}
/* Adjust the offset for the next data stream */
dwOffData += dwLenData;
Cont:
i++;
dwFormatID = EnumClipboardFormats(dwFormatID);
}
done:
if (hFile != INVALID_HANDLE_VALUE)
CloseHandle(hFile);
MessageBoxW(Globals.hMainWnd, L"This function is currently not implemented.", L"Clipboard", MB_OK | MB_ICONINFORMATION);
return;
}

View File

@@ -4,49 +4,26 @@
* FILE: base/applications/clipbrd/fileutils.h
* PURPOSE: Clipboard file format helper functions.
* PROGRAMMERS: Ricardo Hanke
* Hermes Belusca-Maito
*/
#define CLIP_FMT_31 0xC350
#define CLIP_FMT_NT 0xC351
#define CLIP_FMT_BK 0xC352
#define CLIPBOARD_FORMAT_31 0xC350
#define CLIPBOARD_FORMAT_NT 0xC351
#define CLIPBOARD_FORMAT_BK 0xC352
#define MAX_FMT_NAME_LEN 79
/*
* Win3.1 Clipboard File Format (default)
*/
#pragma pack(push, 1)
typedef struct _CLIPFILEHEADER
typedef struct _CLIPBOARDFILEHEADER
{
WORD wFileIdentifier;
WORD wFormatCount;
} CLIPFILEHEADER;
} CLIPBOARDFILEHEADER;
typedef struct _CLIPFORMATHEADER
{
WORD dwFormatID;
DWORD dwLenData;
DWORD dwOffData;
CHAR szName[MAX_FMT_NAME_LEN];
} CLIPFORMATHEADER;
#pragma pack(pop)
/*
* NT Clipboard File Format
*/
typedef struct _NTCLIPFILEHEADER
{
WORD wFileIdentifier;
WORD wFormatCount;
} NTCLIPFILEHEADER;
typedef struct _NTCLIPFORMATHEADER
typedef struct _CLIPBOARDFORMATHEADER
{
DWORD dwFormatID;
DWORD dwLenData;
DWORD dwOffData;
WCHAR szName[MAX_FMT_NAME_LEN];
} NTCLIPFORMATHEADER;
} CLIPBOARDFORMATHEADER;
void ReadClipboardFile(LPCWSTR lpFileName);
void WriteClipboardFile(LPCWSTR lpFileName, WORD wFileIdentifier);
void WriteClipboardFile(LPCWSTR lpFileName);

View File

@@ -32,8 +32,7 @@ END
STRINGTABLE
BEGIN
STRING_CLIPBOARD "Clipboard Viewer"
STRING_CLIPFILE "Clipboard Element"
STRING_CLIPBOARD "Zwischenablage"
STRING_DELETE_MSG "Soll der Inhalt der Zwischenablage gelöscht werden?"
STRING_DELETE_TITLE "Zwischenablage löschen"
STRING_FORMAT_NT "Zwischenablagedateien für ReactOS (*.clp)"

View File

@@ -32,8 +32,7 @@ END
STRINGTABLE
BEGIN
STRING_CLIPBOARD "Clipboard Viewer"
STRING_CLIPFILE "Clipboard Element"
STRING_CLIPBOARD "Clipboard"
STRING_DELETE_MSG "Clear contents of the Clipboard?"
STRING_DELETE_TITLE "Clear Clipboard"
STRING_FORMAT_NT "Clipboard files for ReactOS (*.clp)"

View File

@@ -34,8 +34,7 @@ END
STRINGTABLE
BEGIN
STRING_CLIPBOARD "Clipboard Viewer"
STRING_CLIPFILE "Clipboard Element"
STRING_CLIPBOARD "Portapapeles"
STRING_DELETE_MSG "¿Borrar contenidos del Portapapeles?"
STRING_DELETE_TITLE "Vaciar Portapapeles"
STRING_FORMAT_NT "Archivos de Portapapeles de ReactOS (*.clp)"

View File

@@ -18,7 +18,7 @@ BEGIN
BEGIN
MENUITEM "&Supprimer\tSuppr", CMD_DELETE
END
POPUP "Affic&hage"
POPUP "&Affichage"
BEGIN
MENUITEM "&Automatique", CMD_AUTOMATIC
END
@@ -32,8 +32,7 @@ END
STRINGTABLE
BEGIN
STRING_CLIPBOARD "Visionneuse du Presse-papiers"
STRING_CLIPFILE "Élément du Presse-papiers"
STRING_CLIPBOARD "Presse-papiers"
STRING_DELETE_MSG "Voulez-vous effacer le contenu du Presse-papiers ?"
STRING_DELETE_TITLE "Effacer le Presse-papiers"
STRING_FORMAT_NT "Fichiers du Presse-papiers ReactOS (*.clp)"

View File

@@ -33,8 +33,7 @@ END
STRINGTABLE
BEGIN
STRING_CLIPBOARD "Clipboard Viewer"
STRING_CLIPFILE "Clipboard Element"
STRING_CLIPBOARD "Clipboard"
STRING_DELETE_MSG "Elimină conținutul din Clipboard?"
STRING_DELETE_TITLE "Curăță Clipboard"
STRING_FORMAT_NT "Fișiere clipboard pentru ReactOS (*.clp)"

View File

@@ -1,4 +1,4 @@
/* TRANSLATOR: 2015, 2016 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */
/* TRANSLATOR: 2015 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
@@ -34,8 +34,7 @@ END
STRINGTABLE
BEGIN
STRING_CLIPBOARD "Pano Görüntüleyicisi"
STRING_CLIPFILE "Pano Öğesi"
STRING_CLIPBOARD "Pano"
STRING_DELETE_MSG "Pano içeriğini sil?"
STRING_DELETE_TITLE "Pano Sil"
STRING_FORMAT_NT "ReactOS İçin Pano Kütükleri (*.clp)"

View File

@@ -34,8 +34,7 @@ END
STRINGTABLE
BEGIN
STRING_CLIPBOARD "剪贴板查看程序"
STRING_CLIPFILE "剪贴板上的元素"
STRING_CLIPBOARD "剪贴板"
STRING_DELETE_MSG "清除剪贴板的内容吗?"
STRING_DELETE_TITLE "清除剪贴板"
STRING_FORMAT_NT "ReactOS 的剪贴板文件 (*.clp)"

View File

@@ -34,8 +34,7 @@ END
STRINGTABLE
BEGIN
STRING_CLIPBOARD "剪貼簿查看程式"
STRING_CLIPFILE "剪貼簿上的元素"
STRING_CLIPBOARD "剪貼簿"
STRING_DELETE_MSG "清除剪貼簿的內容嗎?"
STRING_DELETE_TITLE "清除剪貼簿"
STRING_FORMAT_NT "ReactOS 的剪貼簿檔案 (*.clp)"

View File

@@ -5,8 +5,6 @@
#include <limits.h>
#include <assert.h>
#include <windef.h>
#include <winbase.h>
#include <winuser.h>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

View File

@@ -1,40 +1,38 @@
#pragma once
#define CLIPBRD_ICON 100
#define CLPFILE_ICON 101
#define MAIN_MENU 102
#define ID_ACCEL 103
#define MAIN_MENU 100
#define CLIP_ICON 101
#define ID_ACCEL 102
#define CMD_OPEN 110
#define CMD_SAVE_AS 111
#define CMD_EXIT 112
#define CMD_DELETE 113
#define CMD_HELP 115
#define CMD_ABOUT 116
#define CMD_OPEN 100
#define CMD_SAVE_AS 101
#define CMD_EXIT 102
#define CMD_DELETE 103
#define CMD_HELP 105
#define CMD_ABOUT 106
#define CMD_AUTOMATIC 1000
#define STRING_CLIPBOARD 120
#define STRING_CLIPFILE 121
#define STRING_DELETE_MSG 123
#define STRING_DELETE_TITLE 124
#define STRING_FORMAT_NT 125
#define STRING_FORMAT_GEN 126
#define STRING_CLIPBOARD 100
#define STRING_DELETE_MSG 101
#define STRING_DELETE_TITLE 102
#define STRING_FORMAT_NT 103
#define STRING_FORMAT_GEN 104
#define STRING_CF_UNKNOWN 200
#define STRING_CF_TEXT 201
#define STRING_CF_BITMAP 202
#define STRING_CF_METAFILEPICT 203
#define STRING_CF_SYLK 204
#define STRING_CF_DIF 205
#define STRING_CF_OEMTEXT 207
#define STRING_CF_DIB 208
#define STRING_CF_OEMTEXT 203
#define STRING_CF_UNICODETEXT 204
#define STRING_CF_DIB 205
#define STRING_CF_LOCALE 206
#define STRING_CF_ENHMETAFILE 207
#define STRING_CF_METAFILEPICT 208
#define STRING_CF_PALETTE 209
#define STRING_CF_UNICODETEXT 213
#define STRING_CF_ENHMETAFILE 214
#define STRING_CF_HDROP 215
#define STRING_CF_LOCALE 216
#define STRING_CF_DIBV5 217
#define STRING_CF_DIBV5 210
#define STRING_CF_SYLK 211
#define STRING_CF_DIF 212
#define STRING_CF_HDROP 213
#define ERROR_UNSUPPORTED_FORMAT 300
#define ERROR_INVALID_FILE_FORMAT 301

View File

@@ -72,7 +72,7 @@ void HandleKeyboardScrollEvents(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar
void HandleMouseScrollEvents(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LPSCROLLSTATE state)
{
SCROLLINFO si;
SCROLLINFO si;
int Delta;
int NewPos;
@@ -119,7 +119,7 @@ void HandleMouseScrollEvents(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam,
void HandleHorizontalScrollEvents(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LPSCROLLSTATE state)
{
SCROLLINFO si;
SCROLLINFO si;
int Delta;
int NewPos;
@@ -166,7 +166,7 @@ void HandleHorizontalScrollEvents(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lP
NewPos = state->CurrentX;
break;
}
}
}
NewPos = min(state->MaxX, max(0, NewPos));
@@ -189,7 +189,7 @@ void HandleHorizontalScrollEvents(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lP
void HandleVerticalScrollEvents(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LPSCROLLSTATE state)
{
SCROLLINFO si;
SCROLLINFO si;
int Delta;
int NewPos;

View File

@@ -243,7 +243,7 @@ UINT RealizeClipboardPalette(HWND hWnd)
UINT uResult;
HDC hDevContext;
if (!OpenClipboard(Globals.hMainWnd))
if (!OpenClipboard(NULL))
{
return GDI_ERROR;
}

View File

@@ -30,7 +30,7 @@ VOID PrintResourceString(INT resID, ...)
va_list args;
va_start(args, resID);
LoadStringW(GetModuleHandleW(NULL), resID, bufSrc, ARRAYSIZE(bufSrc));
LoadStringW(GetModuleHandleW(NULL), resID, bufSrc, RC_STRING_MAX_SIZE);
vswprintf(bufFormatted, bufSrc, args);
CharToOemW(bufFormatted, bufFormattedOem);
fputs(bufFormattedOem, stdout);

View File

@@ -12,16 +12,4 @@ STRINGTABLE
STRING_NO_REMOTE, "Грешка: Неуспешно добавяне на ключове в отдалечената машина\n"
STRING_CANNOT_FIND, "Грешка: Уредбата не откри указания регистърен ключ или стойност\n"
STRING_UNSUPPORTED_TYPE, "Error: Unsupported type\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
}

View File

@@ -17,16 +17,4 @@ STRINGTABLE
STRING_NO_REMOTE, "Chyba: Nelze přidat klíče na vzdálený stroj\n"
STRING_CANNOT_FIND, "Chyba: Systém nenalezl zadaný klíč nebo hodnotu registru\n"
STRING_UNSUPPORTED_TYPE, "Error: Unsupported type\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
}

View File

@@ -12,16 +12,4 @@ STRINGTABLE
STRING_NO_REMOTE, "Fejl: Kunne ikke tilføje nøgler til fjern maskinen\n"
STRING_CANNOT_FIND, "Fejl: Systemet kunne ikke finde, den angivet registrerings nøgle eller værdi\n"
STRING_UNSUPPORTED_TYPE, "Error: Unsupported type\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
}

View File

@@ -12,16 +12,4 @@ STRINGTABLE
STRING_NO_REMOTE, "Fehler: Konnte Schlüssel nicht zum entfernten Rechner hinzufügen\n"
STRING_CANNOT_FIND, "Fehler: Der angegebene Schlüssel oder Wert konnte nicht gefunden werden\n"
STRING_UNSUPPORTED_TYPE, "Error: Unsupported type\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
}

View File

@@ -7,21 +7,9 @@ STRINGTABLE
STRING_DELETE_USAGE, "REG DELETE key_name [/v value_name | /ve | /va] [/f]\n"
STRING_QUERY_USAGE, "REG QUERY key_name [/v value_name | /ve] [/s]\n"
STRING_SUCCESS, "The operation completed successfully\n"
STRING_INVALID_KEY, "reg: Invalid key name\n"
STRING_INVALID_CMDLINE, "reg: Invalid command line parameters\n"
STRING_NO_REMOTE, "reg: Unable to access remote machine\n"
STRING_CANNOT_FIND, "reg: The system was unable to find the specified registry key or value\n"
STRING_UNSUPPORTED_TYPE, "reg: Unsupported registry data type [%1]\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
STRING_INVALID_KEY, "Error: Invalid key name\n"
STRING_INVALID_CMDLINE, "Error: Invalid command line parameters\n"
STRING_NO_REMOTE, "Error: Unable to access remote machine\n"
STRING_CANNOT_FIND, "Error: The system was unable to find the specified registry key or value\n"
STRING_UNSUPPORTED_TYPE, "Error: Unsupported type\n"
}

View File

@@ -12,16 +12,4 @@ STRINGTABLE
STRING_NO_REMOTE, "Error: No se pueden agregar las claves al equipo remoto\n"
STRING_CANNOT_FIND, "Error: El sistema no pudo encontrar la clave o el valor del Registro especificado\n"
STRING_UNSUPPORTED_TYPE, "Error: Tipo no soportado\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
}

View File

@@ -12,16 +12,4 @@ STRINGTABLE
STRING_NO_REMOTE, "Erreur : impossible d'ajouter des clés à une machine distante\n"
STRING_CANNOT_FIND, "Erreur : le système n'a pas pu trouver la clé ou la valeur de registre spécifiée\n"
STRING_UNSUPPORTED_TYPE, "Error: Unsupported type\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
}

View File

@@ -12,16 +12,4 @@ STRINGTABLE
STRING_NO_REMOTE, "Errore: impossibile aggiungere chiavi alla macchina remota\n"
STRING_CANNOT_FIND, "Errore: il sistema non è riuscito a trovare la chiave di registro o il valore specificati\n"
STRING_UNSUPPORTED_TYPE, "Error: Unsupported type\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
}

View File

@@ -11,17 +11,5 @@ STRINGTABLE
STRING_INVALID_CMDLINE, "エラー: コマンド ライン引数が無効です\n"
STRING_NO_REMOTE, "エラー: リモート マシンにキーを追加できませんでした\n"
STRING_CANNOT_FIND, "エラー: システムは指定されたキーまたは値を見つけられませんでした\n"
STRING_UNSUPPORTED_TYPE, "reg: Unsupported registry data type [%1]\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
STRING_UNSUPPORTED_TYPE, "Error: Unsupported type\n"
}

View File

@@ -11,17 +11,5 @@ STRINGTABLE
STRING_INVALID_CMDLINE, "에러:올바르지 않은 명령라인 매개변수\n"
STRING_NO_REMOTE, "에러: 원격 머신에 키를 더하는 것은 가능하지 않습니다\n"
STRING_CANNOT_FIND, "에러: 이 시스템에서 지정된 레지스트리 키나 값을 찾을수 없습니다\n"
STRING_UNSUPPORTED_TYPE, "reg: Unsupported registry data type [%1]\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
STRING_UNSUPPORTED_TYPE, "Error: Unsupported type\n"
}

View File

@@ -11,17 +11,5 @@ STRINGTABLE
STRING_INVALID_CMDLINE, "Klaida: Netinkami komandos eilutės parametrai\n"
STRING_NO_REMOTE, "Klaida: Negalima pridėti raktų nuotoliniame kompiuteryje\n"
STRING_CANNOT_FIND, "Klaida: Sistemai nepavyko rasti nurodyto registro rakto ar reikšmės\n"
STRING_UNSUPPORTED_TYPE, "reg: Unsupported registry data type [%1]\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
STRING_UNSUPPORTED_TYPE, "Error: Unsupported type\n"
}

View File

@@ -11,17 +11,5 @@ STRINGTABLE
STRING_INVALID_CMDLINE, "Fout: Foutieve commandoregel-parameters\n"
STRING_NO_REMOTE, "Fout: Sleutels konden niet toegevoegd worden aan de remote machine\n"
STRING_CANNOT_FIND, "Fout: Het systeem kon de gespecificeerde registersleutel of waarde niet vinden\n"
STRING_UNSUPPORTED_TYPE, "reg: Unsupported registry data type [%1]\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
STRING_UNSUPPORTED_TYPE, "Error: Unsupported type\n"
}

View File

@@ -11,17 +11,5 @@ STRINGTABLE
STRING_INVALID_CMDLINE, "Feil: Ugyldige parametere på kommandolinjen\n"
STRING_NO_REMOTE, "Feil: Kan ikke legge til nøkler på ekstern maskin\n"
STRING_CANNOT_FIND, "Feil: Systemet klarte ikke finne den angitte registernøkkelen eller -verdien\n"
STRING_UNSUPPORTED_TYPE, "reg: Unsupported registry data type [%1]\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
STRING_UNSUPPORTED_TYPE, "Error: Unsupported type\n"
}

View File

@@ -12,16 +12,4 @@ STRINGTABLE
STRING_NO_REMOTE, "Błąd: Nie można dodać kluczy do zdalnej maszyny\n"
STRING_CANNOT_FIND, "Błąd: System nie mógł znaleźć podanej wartości lub klucza rejestru\n"
STRING_UNSUPPORTED_TYPE, "Błąd: Nieobsługiwany typ\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
}

View File

@@ -11,17 +11,5 @@ STRINGTABLE
STRING_INVALID_CMDLINE, "Erro: Parâmetros da linha de comandos inválidos\n"
STRING_NO_REMOTE, "Erro: Incapaz de adicionar chaves à máquina remota\n"
STRING_CANNOT_FIND, "Erro: O sistema foi incapaz de encontrar a chave de registo ou valor especificado\n"
STRING_UNSUPPORTED_TYPE, "reg: Unsupported registry data type [%1]\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
STRING_UNSUPPORTED_TYPE, "Error: Unsupported type\n"
}

View File

@@ -18,16 +18,4 @@ STRINGTABLE
STRING_NO_REMOTE, "Eroare: Nu se pot adăuga chei pe calculatorul de la distanță\n"
STRING_CANNOT_FIND, "Eroare: Sistemul nu a putut găsi cheia sau valoarea de registru specificată\n"
STRING_UNSUPPORTED_TYPE, "Eroare: Tip nerecunoscut\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
}

View File

@@ -12,16 +12,4 @@ STRINGTABLE
STRING_NO_REMOTE, "Ошибка: Невозможно добавить ключи на удаленной машине\n"
STRING_CANNOT_FIND, "Ошибка: Не удалось найти указанный ключ реестра или значение\n"
STRING_UNSUPPORTED_TYPE, "Ошибка: Неподдерживаемый тип\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
}

View File

@@ -11,17 +11,5 @@ STRINGTABLE
STRING_INVALID_CMDLINE, "Napaka: Napačen parameter v ukazni vrstici\n"
STRING_NO_REMOTE, "Napaka: Na morem dodati ključa na oddaljen računalnik\n"
STRING_CANNOT_FIND, "Napaka: Sistem ni našel zahtevanega ključa ali vrednosti\n"
STRING_UNSUPPORTED_TYPE, "reg: Unsupported registry data type [%1]\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
STRING_UNSUPPORTED_TYPE, "Error: Unsupported type\n"
}

View File

@@ -15,17 +15,5 @@ STRINGTABLE
STRING_INVALID_CMDLINE, "Error: Parametrat e pavlefshme ne vijën komanduse\n"
STRING_NO_REMOTE, "Error: Në pamundësi për të shtuar çelësat në makinë në distancë\n"
STRING_CANNOT_FIND, "Error: Sistemi nuk ishte në gjendje për të gjetur çelësat të caktuar të regjistrit ose vlerës\n"
STRING_UNSUPPORTED_TYPE, "reg: Unsupported registry data type [%1]\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
STRING_UNSUPPORTED_TYPE, "Error: Unsupported type\n"
}

View File

@@ -11,17 +11,5 @@ STRINGTABLE
STRING_INVALID_CMDLINE, "Fel: ogiltiga kommandoradsparametrar\n"
STRING_NO_REMOTE, "Fel: Kan inte lägga till nycklar till fjärrmaskin\n"
STRING_CANNOT_FIND, "Fel: Systemet kunde inte hitta angiven nyckel eller värde i registret\n"
STRING_UNSUPPORTED_TYPE, "reg: Unsupported registry data type [%1]\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
STRING_UNSUPPORTED_TYPE, "Error: Unsupported type\n"
}

View File

@@ -1,4 +1,4 @@
/* TRANSLATOR: 2015, 2016 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */
/* TRANSLATOR: 2015 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */
LANGUAGE LANG_TURKISH, SUBLANG_NEUTRAL
@@ -9,21 +9,9 @@ STRINGTABLE
STRING_DELETE_USAGE, "REG DELETE dizin adı [/v değer adı | /ve | /va] [/f]\n"
STRING_QUERY_USAGE, "REG QUERY dizin adı [/v değer adı | /ve] [/s]\n"
STRING_SUCCESS, "İşlem başarıyla bitirildi\n"
STRING_INVALID_KEY, "reg: Geçersiz dizin adı\n"
STRING_INVALID_CMDLINE, "reg: Geçersiz komut yatacı değişkenleri\n"
STRING_NO_REMOTE, "reg: Uzak makineye erişilemez\n"
STRING_CANNOT_FIND, "reg: Dizge belirtilen değer defteri dizinini ya da değerini bulamadı\n"
STRING_UNSUPPORTED_TYPE, "reg: Desteklenmeyen tür\n"
STRING_MISSING_INTEGER, "reg: [/d] seçeneği geçerli bir tamsayıyla izlenmelidir\n"
STRING_MISSING_HEXDATA, "reg: [/d] seçeneği geçerli bir onaltılık değerle izlenmelidir\n"
STRING_UNHANDLED_TYPE, "reg: Yönetilemeyen değer defteri veri türü [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, """%1"" değer defteri değeri önceden var. Üzerine yazmak ister misiniz?"
STRING_YESNO, " (Evet|Hayır)"
STRING_YES, "E"
STRING_NO, "H"
STRING_CANCELLED, "Değer defteri işlemi iptal edildi\n"
STRING_DEFAULT_VALUE, "(Ön tanımlı)"
STRING_DELETE_VALUE, """%1"" değer defteri değerini silmek istemekten emin misiniz?"
STRING_DELETE_VALUEALL, "Tüm ""%1"" değer defteri değerlerini silmek istemekten emin misiniz?"
STRING_DELETE_SUBKEY, """%1"" değer defteri dizinini silmek istemekten emin misiniz?"
STRING_INVALID_KEY, "Yanlışlık: Geçersiz dizin adı\n"
STRING_INVALID_CMDLINE, "Yanlışlık: Geçersiz komut yatacı değişkenleri\n"
STRING_NO_REMOTE, "Yanlışlık: Uzak makineye erişilemez\n"
STRING_CANNOT_FIND, "Yanlışlık: Dizge belirtilen değer defteri dizinini ya da değerini bulamadı\n"
STRING_UNSUPPORTED_TYPE, "Yanlışlık: Desteklenmeyen tür\n"
}

View File

@@ -11,17 +11,5 @@ STRINGTABLE
STRING_INVALID_CMDLINE, "Помилка: неправильні параметри командного рядка\n"
STRING_NO_REMOTE, "Помилка: неможливо додати ключі на віддаленій машині\n"
STRING_CANNOT_FIND, "Помилка: не вдалось знайти вказаний ключ реєстру чи значення\n"
STRING_UNSUPPORTED_TYPE, "reg: Unsupported registry data type [%1]\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
STRING_UNSUPPORTED_TYPE, "Error: Unsupported type\n"
}

View File

@@ -14,16 +14,4 @@ STRINGTABLE
STRING_NO_REMOTE, "错误: 无法访问远程计算机\n"
STRING_CANNOT_FIND, "错误: 系统是无法找到指定的注册表项或值\n"
STRING_UNSUPPORTED_TYPE, "错误: 不支持的类型\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
}

View File

@@ -14,16 +14,4 @@ STRINGTABLE
STRING_NO_REMOTE, "錯誤: 無法訪問遠端計算機\n"
STRING_CANNOT_FIND, "錯誤: 系統是無法找到指定的註冊表項或值\n"
STRING_UNSUPPORTED_TYPE, "錯誤: 不支援的類型\n"
STRING_MISSING_INTEGER, "reg: The option [/d] must be followed by a valid integer\n"
STRING_MISSING_HEXDATA, "reg: The option [/d] must be followed by a valid hexadecimal value\n"
STRING_UNHANDLED_TYPE, "reg: Unhandled registry data type [/t 0x%1!x!, /d %2]\n"
STRING_OVERWRITE_VALUE, "The registry value '%1' already exists. Do you want to overwrite it?"
STRING_YESNO, " (Yes|No)"
STRING_YES, "Y"
STRING_NO, "N"
STRING_CANCELLED, "The registry operation was cancelled\n"
STRING_DEFAULT_VALUE, "(Default)"
STRING_DELETE_VALUE, "Are you sure you want to delete the registry value '%1'?"
STRING_DELETE_VALUEALL, "Are you sure you want to delete all registry values in '%1'?"
STRING_DELETE_SUBKEY, "Are you sure you want to delete the registry key '%1'?"
}

View File

@@ -29,8 +29,6 @@
#define ARRAY_SIZE(A) (sizeof(A)/sizeof(*A))
WINE_DEFAULT_DEBUG_CHANNEL(reg);
static const WCHAR short_hklm[] = {'H','K','L','M',0};
static const WCHAR short_hkcu[] = {'H','K','C','U',0};
static const WCHAR short_hkcr[] = {'H','K','C','R',0};
@@ -83,11 +81,19 @@ type_rels[] =
{REG_MULTI_SZ, type_multi_sz},
};
static void output_writeconsole(const WCHAR *str, DWORD wlen)
static int reg_printfW(const WCHAR *msg, ...)
{
va_list va_args;
int wlen;
DWORD count, ret;
WCHAR msg_buffer[8192];
ret = WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), str, wlen, &count, NULL);
va_start(va_args, msg);
vsnprintfW(msg_buffer, 8192, msg, va_args);
va_end(va_args);
wlen = lstrlenW(msg_buffer);
ret = WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), msg_buffer, wlen, &count, NULL);
if (!ret)
{
DWORD len;
@@ -97,83 +103,29 @@ static void output_writeconsole(const WCHAR *str, DWORD wlen)
* back to WriteFile(), assuming the console encoding is still the right
* one in that case.
*/
len = WideCharToMultiByte(GetConsoleOutputCP(), 0, str, wlen, NULL, 0, NULL, NULL);
len = WideCharToMultiByte(GetConsoleOutputCP(), 0, msg_buffer, wlen,
NULL, 0, NULL, NULL);
msgA = HeapAlloc(GetProcessHeap(), 0, len * sizeof(char));
if (!msgA) return;
if (!msgA)
return 0;
WideCharToMultiByte(GetConsoleOutputCP(), 0, str, wlen, msgA, len, NULL, NULL);
WideCharToMultiByte(GetConsoleOutputCP(), 0, msg_buffer, wlen, msgA, len,
NULL, NULL);
WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), msgA, len, &count, FALSE);
HeapFree(GetProcessHeap(), 0, msgA);
}
return count;
}
static void output_formatstring(const WCHAR *fmt, __ms_va_list va_args)
static int reg_message(int msg)
{
WCHAR *str;
DWORD len;
static const WCHAR formatW[] = {'%','s',0};
WCHAR msg_buffer[8192];
SetLastError(NO_ERROR);
len = FormatMessageW(FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ALLOCATE_BUFFER,
fmt, 0, 0, (WCHAR *)&str, 0, &va_args);
if (len == 0 && GetLastError() != NO_ERROR)
{
WINE_FIXME("Could not format string: le=%u, fmt=%s\n", GetLastError(), wine_dbgstr_w(fmt));
return;
}
output_writeconsole(str, len);
LocalFree(str);
}
static void __cdecl output_message(unsigned int id, ...)
{
WCHAR fmt[1024];
__ms_va_list va_args;
if (!LoadStringW(GetModuleHandleW(NULL), id, fmt, ARRAY_SIZE(fmt)))
{
WINE_FIXME("LoadString failed with %d\n", GetLastError());
return;
}
__ms_va_start(va_args, id);
output_formatstring(fmt, va_args);
__ms_va_end(va_args);
}
static void __cdecl output_string(const WCHAR *fmt, ...)
{
__ms_va_list va_args;
__ms_va_start(va_args, fmt);
output_formatstring(fmt, va_args);
__ms_va_end(va_args);
}
/* ask_confirm() adapted from programs/cmd/builtins.c */
static BOOL ask_confirm(unsigned int msgid, WCHAR *reg_info)
{
HMODULE hmod;
WCHAR Ybuffer[4];
WCHAR Nbuffer[4];
WCHAR defval[32];
WCHAR answer[MAX_PATH];
DWORD count;
hmod = GetModuleHandleW(NULL);
LoadStringW(hmod, STRING_YES, Ybuffer, ARRAY_SIZE(Ybuffer));
LoadStringW(hmod, STRING_NO, Nbuffer, ARRAY_SIZE(Nbuffer));
LoadStringW(hmod, STRING_DEFAULT_VALUE, defval, ARRAY_SIZE(defval));
while (1)
{
output_message(msgid, reg_info ? reg_info : defval);
output_message(STRING_YESNO);
ReadConsoleW(GetStdHandle(STD_INPUT_HANDLE), answer, ARRAY_SIZE(answer), &count, NULL);
answer[0] = toupperW(answer[0]);
if (answer[0] == Ybuffer[0])
return TRUE;
if (answer[0] == Nbuffer[0])
return FALSE;
}
LoadStringW(GetModuleHandleW(NULL), msg, msg_buffer,
sizeof(msg_buffer)/sizeof(WCHAR));
return reg_printfW(formatW, msg_buffer);
}
static inline BOOL path_rootname_cmp(const WCHAR *input_path, const WCHAR *rootkey_name)
@@ -234,9 +186,7 @@ static LPBYTE get_regdata(LPWSTR data, DWORD reg_type, WCHAR separator, DWORD *r
switch (reg_type)
{
case REG_NONE:
case REG_SZ:
case REG_EXPAND_SZ:
{
*reg_count = (lstrlenW(data) + 1) * sizeof(WCHAR);
out_data = HeapAlloc(GetProcessHeap(),0,*reg_count);
@@ -244,14 +194,13 @@ static LPBYTE get_regdata(LPWSTR data, DWORD reg_type, WCHAR separator, DWORD *r
break;
}
case REG_DWORD:
/* case REG_DWORD_LITTLE_ENDIAN: */
case REG_DWORD_BIG_ENDIAN: /* Yes, this is correct! */
{
LPWSTR rest;
DWORD val;
val = strtoulW(data, &rest, (data[1] == 'x') ? 16 : 10);
if (*rest || data[0] == '-') {
output_message(STRING_MISSING_INTEGER);
val = strtolW(data, &rest, 0);
if (rest == data) {
static const WCHAR nonnumber[] = {'E','r','r','o','r',':',' ','/','d',' ','r','e','q','u','i','r','e','s',' ','n','u','m','b','e','r','.','\n',0};
reg_printfW(nonnumber);
break;
}
*reg_count = sizeof(DWORD);
@@ -261,6 +210,7 @@ static LPBYTE get_regdata(LPWSTR data, DWORD reg_type, WCHAR separator, DWORD *r
}
case REG_BINARY:
{
static const WCHAR nohex[] = {'E','r','r','o','r',':',' ','/','d',' ','r','e','q','u','i','r','e','s',' ','h','e','x',' ','d','a','t','a','.','\n',0};
BYTE hex0, hex1;
int i = 0, destByteIndex = 0, datalen = lstrlenW(data);
*reg_count = ((datalen + datalen % 2) / 2) * sizeof(BYTE);
@@ -284,14 +234,15 @@ static LPBYTE get_regdata(LPWSTR data, DWORD reg_type, WCHAR separator, DWORD *r
no_hex_data:
/* cleanup, print error */
HeapFree(GetProcessHeap(), 0, out_data);
output_message(STRING_MISSING_HEXDATA);
reg_printfW(nohex);
out_data = NULL;
break;
}
case REG_MULTI_SZ:
/* FIXME: Needs handling */
default:
output_message(STRING_UNHANDLED_TYPE, reg_type, data);
{
static const WCHAR unhandled[] = {'U','n','h','a','n','d','l','e','d',' ','T','y','p','e',' ','0','x','%','x',' ',' ','d','a','t','a',' ','%','s','\n',0};
reg_printfW(unhandled, reg_type,data);
}
}
return out_data;
@@ -303,13 +254,13 @@ static BOOL sane_path(const WCHAR *key)
if (i < 3 || (key[i - 1] == '\\' && key[i - 2] == '\\'))
{
output_message(STRING_INVALID_KEY);
reg_message(STRING_INVALID_KEY);
return FALSE;
}
if (key[0] == '\\' && key[1] == '\\' && key[2] != '\\')
{
output_message(STRING_NO_REMOTE);
reg_message(STRING_NO_REMOTE);
return FALSE;
}
@@ -319,16 +270,20 @@ static BOOL sane_path(const WCHAR *key)
static int reg_add(WCHAR *key_name, WCHAR *value_name, BOOL value_empty,
WCHAR *type, WCHAR separator, WCHAR *data, BOOL force)
{
static const WCHAR stubW[] = {'A','D','D',' ','-',' ','%','s',
' ','%','s',' ','%','d',' ','%','s',' ','%','s',' ','%','d','\n',0};
LPWSTR p;
HKEY root,subkey;
reg_printfW(stubW, key_name, value_name, value_empty, type, data, force);
if (!sane_path(key_name))
return 1;
p = strchrW(key_name,'\\');
if (!p)
{
output_message(STRING_INVALID_KEY);
reg_message(STRING_INVALID_KEY);
return 1;
}
p++;
@@ -336,19 +291,13 @@ static int reg_add(WCHAR *key_name, WCHAR *value_name, BOOL value_empty,
root = path_get_rootkey(key_name);
if (!root)
{
output_message(STRING_INVALID_KEY);
return 1;
}
if (value_name && value_empty)
{
output_message(STRING_INVALID_CMDLINE);
reg_message(STRING_INVALID_KEY);
return 1;
}
if(RegCreateKeyW(root,p,&subkey)!=ERROR_SUCCESS)
{
output_message(STRING_INVALID_KEY);
reg_message(STRING_INVALID_KEY);
return 1;
}
@@ -360,14 +309,9 @@ static int reg_add(WCHAR *key_name, WCHAR *value_name, BOOL value_empty,
if (!force)
{
if (RegQueryValueExW(subkey, value_name, NULL, NULL, NULL, NULL) == ERROR_SUCCESS)
if (RegQueryValueW(subkey,value_name,NULL,NULL)==ERROR_SUCCESS)
{
if (!ask_confirm(STRING_OVERWRITE_VALUE, value_name))
{
RegCloseKey(subkey);
output_message(STRING_CANCELLED);
return 0;
}
/* FIXME: Prompt for overwrite */
}
}
@@ -375,28 +319,19 @@ static int reg_add(WCHAR *key_name, WCHAR *value_name, BOOL value_empty,
if (reg_type == ~0u)
{
RegCloseKey(subkey);
output_message(STRING_UNSUPPORTED_TYPE, type);
reg_message(STRING_UNSUPPORTED_TYPE);
return 1;
}
if (reg_type == REG_DWORD && !data)
{
RegCloseKey(subkey);
output_message(STRING_INVALID_CMDLINE);
return 1;
}
if (data && !(reg_data = get_regdata(data, reg_type, separator, &reg_count)))
{
RegCloseKey(subkey);
return 1;
}
if (data)
reg_data = get_regdata(data,reg_type,separator,&reg_count);
RegSetValueExW(subkey,value_name,0,reg_type,reg_data,reg_count);
HeapFree(GetProcessHeap(),0,reg_data);
}
RegCloseKey(subkey);
output_message(STRING_SUCCESS);
reg_message(STRING_SUCCESS);
return 0;
}
@@ -407,13 +342,18 @@ static int reg_delete(WCHAR *key_name, WCHAR *value_name, BOOL value_empty,
LPWSTR p;
HKEY root,subkey;
static const WCHAR stubW[] = {'D','E','L','E','T','E',
' ','-',' ','%','s',' ','%','s',' ','%','d',' ','%','d',' ','%','d','\n'
,0};
reg_printfW(stubW, key_name, value_name, value_empty, value_all, force);
if (!sane_path(key_name))
return 1;
p = strchrW(key_name,'\\');
if (!p)
{
output_message(STRING_INVALID_KEY);
reg_message(STRING_INVALID_KEY);
return 1;
}
p++;
@@ -421,32 +361,25 @@ static int reg_delete(WCHAR *key_name, WCHAR *value_name, BOOL value_empty,
root = path_get_rootkey(key_name);
if (!root)
{
output_message(STRING_INVALID_KEY);
reg_message(STRING_INVALID_KEY);
return 1;
}
if ((value_name && value_empty) || (value_name && value_all) || (value_empty && value_all))
if (value_name && value_empty)
{
output_message(STRING_INVALID_CMDLINE);
reg_message(STRING_INVALID_CMDLINE);
return 1;
}
if (value_empty && value_all)
{
reg_message(STRING_INVALID_CMDLINE);
return 1;
}
if (!force)
{
BOOL ret;
if (value_name || value_empty)
ret = ask_confirm(STRING_DELETE_VALUE, value_name);
else if (value_all)
ret = ask_confirm(STRING_DELETE_VALUEALL, key_name);
else
ret = ask_confirm(STRING_DELETE_SUBKEY, key_name);
if (!ret)
{
output_message(STRING_CANCELLED);
return 0;
}
/* FIXME: Prompt for delete */
}
/* Delete subtree only if no /v* option is given */
@@ -454,16 +387,16 @@ static int reg_delete(WCHAR *key_name, WCHAR *value_name, BOOL value_empty,
{
if (RegDeleteTreeW(root,p)!=ERROR_SUCCESS)
{
output_message(STRING_CANNOT_FIND);
reg_message(STRING_CANNOT_FIND);
return 1;
}
output_message(STRING_SUCCESS);
reg_message(STRING_SUCCESS);
return 0;
}
if(RegOpenKeyW(root,p,&subkey)!=ERROR_SUCCESS)
{
output_message(STRING_CANNOT_FIND);
reg_message(STRING_CANNOT_FIND);
return 1;
}
@@ -507,7 +440,7 @@ static int reg_delete(WCHAR *key_name, WCHAR *value_name, BOOL value_empty,
if (RegDeleteValueW(subkey,value_name) != ERROR_SUCCESS)
{
RegCloseKey(subkey);
output_message(STRING_CANNOT_FIND);
reg_message(STRING_CANNOT_FIND);
return 1;
}
}
@@ -517,7 +450,7 @@ static int reg_delete(WCHAR *key_name, WCHAR *value_name, BOOL value_empty,
}
RegCloseKey(subkey);
output_message(STRING_SUCCESS);
reg_message(STRING_SUCCESS);
return 0;
}
@@ -525,8 +458,8 @@ static int reg_query(WCHAR *key_name, WCHAR *value_name, BOOL value_empty,
BOOL subkey)
{
static const WCHAR stubW[] = {'S','T','U','B',' ','Q','U','E','R','Y',' ',
'-',' ','%','1',' ','%','2',' ','%','3','!','d','!',' ','%','4','!','d','!','\n',0};
output_string(stubW, key_name, value_name, value_empty, subkey);
'-',' ','%','s',' ','%','s',' ','%','d',' ','%','d','\n',0};
reg_printfW(stubW, key_name, value_name, value_empty, subkey);
return 1;
}
@@ -551,7 +484,7 @@ int wmain(int argc, WCHAR *argvW[])
if (argc < 2 || !lstrcmpW(argvW[1], slashHelpW)
|| !lstrcmpiW(argvW[1], slashHW))
{
output_message(STRING_USAGE);
reg_message(STRING_USAGE);
return 0;
}
@@ -562,13 +495,13 @@ int wmain(int argc, WCHAR *argvW[])
if (argc < 3)
{
output_message(STRING_INVALID_CMDLINE);
reg_message(STRING_INVALID_CMDLINE);
return 1;
}
else if (argc == 3 && (!lstrcmpW(argvW[2], slashHelpW) ||
!lstrcmpiW(argvW[2], slashHW)))
{
output_message(STRING_ADD_USAGE);
reg_message(STRING_ADD_USAGE);
return 0;
}
@@ -582,24 +515,9 @@ int wmain(int argc, WCHAR *argvW[])
else if (!lstrcmpiW(argvW[i], slashTW))
type = argvW[++i];
else if (!lstrcmpiW(argvW[i], slashSW))
{
WCHAR *ptr = argvW[++i];
if (!ptr || strlenW(ptr) != 1)
{
output_message(STRING_INVALID_CMDLINE);
return 1;
}
separator = ptr[0];
}
separator = argvW[++i][0];
else if (!lstrcmpiW(argvW[i], slashDW))
{
if (!(data = argvW[++i]))
{
output_message(STRING_INVALID_CMDLINE);
return 1;
}
}
data = argvW[++i];
else if (!lstrcmpiW(argvW[i], slashFW))
force = TRUE;
}
@@ -613,13 +531,13 @@ int wmain(int argc, WCHAR *argvW[])
if (argc < 3)
{
output_message(STRING_INVALID_CMDLINE);
reg_message(STRING_INVALID_CMDLINE);
return 1;
}
else if (argc == 3 && (!lstrcmpW(argvW[2], slashHelpW) ||
!lstrcmpiW(argvW[2], slashHW)))
{
output_message(STRING_DELETE_USAGE);
reg_message(STRING_DELETE_USAGE);
return 0;
}
@@ -644,13 +562,13 @@ int wmain(int argc, WCHAR *argvW[])
if (argc < 3)
{
output_message(STRING_INVALID_CMDLINE);
reg_message(STRING_INVALID_CMDLINE);
return 1;
}
else if (argc == 3 && (!lstrcmpW(argvW[2], slashHelpW) ||
!lstrcmpiW(argvW[2], slashHW)))
{
output_message(STRING_QUERY_USAGE);
reg_message(STRING_QUERY_USAGE);
return 0;
}
@@ -668,7 +586,7 @@ int wmain(int argc, WCHAR *argvW[])
}
else
{
output_message(STRING_INVALID_CMDLINE);
reg_message(STRING_INVALID_CMDLINE);
return 1;
}
}

View File

@@ -33,15 +33,3 @@
#define STRING_NO_REMOTE 108
#define STRING_CANNOT_FIND 109
#define STRING_UNSUPPORTED_TYPE 110
#define STRING_MISSING_INTEGER 111
#define STRING_MISSING_HEXDATA 112
#define STRING_UNHANDLED_TYPE 113
#define STRING_OVERWRITE_VALUE 114
#define STRING_YESNO 115
#define STRING_YES 116
#define STRING_NO 117
#define STRING_CANCELLED 118
#define STRING_DEFAULT_VALUE 119
#define STRING_DELETE_VALUE 120
#define STRING_DELETE_VALUEALL 121
#define STRING_DELETE_SUBKEY 122

View File

@@ -1,13 +0,0 @@
/* By Riccardo Montanari - Bassa31 - bassa31@outlook.it */
LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
STRINGTABLE
BEGIN
IDS_USAGE "Mostra la struttura del drive o della cartella.\n\n\
TREE [drive:][path] [/F] [/A]\n\n\
\t/F Mostra il nome del file in ogni cartella.\n\
\t/A Usa carattere ASCII per i caratteri estesi.\n"
IDS_NO_SUBDIRECTORIES "Non esistono sub-cartelle"
IDS_FOLDER_PATH "Lista della cartella PATH\n"
IDS_VOL_SERIAL "Numero di serie del Volume %x:%x\n"
END

View File

@@ -20,9 +20,6 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#ifdef LANGUAGE_FR_FR
#include "lang/fr-FR.rc"
#endif
#ifdef LANGUAGE_IT_IT
#include "lang/it-IT.rc"
#endif
#ifdef LANGUAGE_RO_RO
#include "lang/ro-RO.rc"
#endif

View File

@@ -1,6 +1,6 @@
set_cpp(WITH_RUNTIME)
include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/3rdparty/cardlib)
include_directories(${REACTOS_SOURCE_DIR}/lib/3rdparty/cardlib)
list(APPEND SOURCE
solcreate.cpp

View File

@@ -2,7 +2,7 @@
set_cpp(WITH_RUNTIME)
include_directories(
${REACTOS_SOURCE_DIR}/sdk/lib/3rdparty/cardlib
${REACTOS_SOURCE_DIR}/lib/3rdparty/cardlib
${CMAKE_CURRENT_SOURCE_DIR})
list(APPEND SOURCE

View File

@@ -3,6 +3,6 @@ add_rc_deps(iexplore.rc ${CMAKE_CURRENT_SOURCE_DIR}/iexplore.ico)
add_executable(iexplore main.c iexplore.rc)
target_link_libraries(iexplore wine)
set_module_type(iexplore win32gui UNICODE)
add_delay_importlibs(iexplore advpack version)
add_importlibs(iexplore ieframe msvcrt kernel32 ntdll)
add_delay_importlibs(iexplore advpack version)
add_cd_file(TARGET iexplore DESTINATION reactos FOR all)

View File

@@ -29,7 +29,7 @@ BEGIN
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 210, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Настройки на увеличителя"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN

View File

@@ -29,7 +29,7 @@ BEGIN
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Einstellungen"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN

View File

@@ -29,7 +29,7 @@ BEGIN
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Magnifier Settings"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN

View File

@@ -33,7 +33,7 @@ BEGIN
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Configurar lupa"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN

View File

@@ -29,12 +29,12 @@ BEGIN
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Paramètres de la loupe"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "Quitter", IDOK, 96, 161, 50, 14
PUSHBUTTON "Aide", IDC_BUTTON_HELP, 38, 161, 50, 14
PUSHBUTTON "Aider", IDC_BUTTON_HELP, 38, 161, 50, 14
LTEXT "Coefficient d'agrandissement:", IDC_STATIC, 6, 8, 68, 8
COMBOBOX IDC_ZOOM, 72, 6, 63, 66, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
GROUPBOX "Poursuite", IDC_STATIC, 7, 25, 139, 59

View File

@@ -31,7 +31,7 @@ BEGIN
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "הגדרות זכוכית מגדלת"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN

View File

@@ -29,7 +29,7 @@ BEGIN
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Impostazioni di Magnifier"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN

View File

@@ -29,7 +29,7 @@ BEGIN
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "拡大鏡の設定"
FONT 9, "MS UI Gothic", 400, 0, 0x1
BEGIN

View File

@@ -29,7 +29,7 @@ BEGIN
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Forstørrelse Innstilling"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN

View File

@@ -37,7 +37,7 @@ BEGIN
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Ustawienia"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN

View File

@@ -31,7 +31,7 @@ BEGIN
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Configurações da Lupa"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN

View File

@@ -31,7 +31,7 @@ BEGIN
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Configurare lupă"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN

View File

@@ -29,7 +29,7 @@ BEGIN
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 185, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Параметры"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN

View File

@@ -34,7 +34,7 @@ BEGIN
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Nastavenia Lupy"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN

View File

@@ -33,7 +33,7 @@ BEGIN
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Konfigurimet e zmadhuesit"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN

View File

@@ -29,7 +29,7 @@ BEGIN
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Förstoringsglaset Inställning"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN

View File

@@ -37,7 +37,7 @@ BEGIN
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Seçenekler"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN

View File

@@ -37,7 +37,7 @@ BEGIN
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Параметри екранної лупи"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN

View File

@@ -37,7 +37,7 @@ BEGIN
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "放大镜设定"
FONT 9, "MS Shell Dlg", 400, 0, 0x1
BEGIN

View File

@@ -37,7 +37,7 @@ BEGIN
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "放大鏡設定"
FONT 9, "MS Shell Dlg", 400, 0, 0x1
BEGIN

View File

@@ -8,8 +8,7 @@
* David Quintana <gigaherz@gmail.com>
*/
/* TODO: Support AppBar types other than ABE_TOP */
/* TODO: AppBar */
#include "magnifier.h"
#include <winbase.h>
@@ -21,16 +20,14 @@
#include "resource.h"
#define APPMSG_NOTIFYICON (WM_APP+1)
#define APPMSG_APPBAR (WM_APP+2)
const TCHAR szWindowClass[] = TEXT("MAGNIFIER");
#define MAX_LOADSTRING 100
/* Global Variables */
HINSTANCE hInst;
HWND hMainWnd;
#define MAX_LOADSTRING 100
TCHAR szTitle[MAX_LOADSTRING];
#define TIMER_SPEED 1
@@ -40,19 +37,19 @@ DWORD lastTicks = 0;
HWND hDesktopWindow = NULL;
NOTIFYICONDATA nid;
#define APPMSG_NOTIFYICON (WM_APP+1)
HICON notifyIcon;
NOTIFYICONDATA nid;
HMENU notifyMenu;
HWND hOptionsDialog;
BOOL bOptionsDialog = FALSE;
BOOL bRecreateOffscreenDC = TRUE;
LONG sourceWidth = 0;
LONG sourceHeight = 0;
HDC hdcOffscreen = NULL;
HWND hOptionsDialog;
BOOL bOptionsDialog = FALSE;
BOOL bRecreateOffscreenDC = TRUE;
LONG sourceWidth = 0;
LONG sourceHeight = 0;
HDC hdcOffscreen = NULL;
HANDLE hbmpOld;
HBITMAP hbmpOffscreen = NULL;
HANDLE hbmpOld;
POINT ptDragOffset;
INT nearEdge;
/* Current magnified area */
POINT cp;
@@ -135,158 +132,23 @@ ATOM MyRegisterClass(HINSTANCE hInstance)
return RegisterClass(&wc);
}
void DoAppBarStuff(DWORD mode)
{
UINT uState;
APPBARDATA data = {0};
data.cbSize = sizeof(data);
data.hWnd = hMainWnd;
data.uCallbackMessage = APPMSG_APPBAR;
if (mode == ABM_NEW || mode == ABM_SETPOS)
{
HWND hWndOrder = HWND_BOTTOM;
int rcw, rch;
RECT rcWorkArea;
SystemParametersInfo(SPI_GETWORKAREA, 0, &rcWorkArea, 0);
if(mode == ABM_NEW)
{
SHAppBarMessage(ABM_NEW, &data);
switch(AppBarConfig.uEdge)
{
case ABE_LEFT:
data.rc.top = rcWorkArea.top;
data.rc.bottom = rcWorkArea.bottom;
data.rc.left = rcWorkArea.left;
data.rc.right = data.rc.left + AppBarConfig.appBarSizes.left;
break;
case ABE_TOP:
data.rc.left = rcWorkArea.left;
data.rc.right = rcWorkArea.right;
data.rc.top = rcWorkArea.top;
data.rc.bottom = data.rc.top + AppBarConfig.appBarSizes.top;
break;
case ABE_RIGHT:
data.rc.top = rcWorkArea.top;
data.rc.bottom = rcWorkArea.bottom;
data.rc.right = rcWorkArea.left;
data.rc.left = data.rc.right - AppBarConfig.appBarSizes.right;
break;
case ABE_BOTTOM:
data.rc.left = rcWorkArea.left;
data.rc.right = rcWorkArea.right;
data.rc.bottom = rcWorkArea.bottom;
data.rc.top = data.rc.bottom - AppBarConfig.appBarSizes.bottom;
break;
}
}
else
{
GetWindowRect(hMainWnd, &data.rc);
}
data.uEdge = AppBarConfig.uEdge;
uState = SHAppBarMessage(ABM_QUERYPOS, &data);
uState = SHAppBarMessage(ABM_SETPOS, &data);
rcw = data.rc.right-data.rc.left;
rch = data.rc.bottom-data.rc.top;
uState = SHAppBarMessage(ABM_GETSTATE, &data);
if(uState & ABS_ALWAYSONTOP)
hWndOrder = HWND_TOPMOST;
SetWindowPos(hMainWnd, hWndOrder, data.rc.left, data.rc.top, rcw, rch, SWP_SHOWWINDOW|SWP_NOCOPYBITS);
}
else if(mode == ABM_GETSTATE)
{
HWND hWndOrder = HWND_BOTTOM;
uState = SHAppBarMessage(ABM_GETSTATE, &data);
if(uState & ABS_ALWAYSONTOP)
hWndOrder = HWND_TOPMOST;
SetWindowPos(hMainWnd, hWndOrder, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
}
else if(mode == ABM_ACTIVATE)
{
SHAppBarMessage(ABM_ACTIVATE, &data);
}
else if(mode == ABM_WINDOWPOSCHANGED)
{
SHAppBarMessage(ABM_WINDOWPOSCHANGED, &data);
}
else if(mode == ABM_REMOVE)
{
SHAppBarMessage(ABM_REMOVE, &data);
}
}
void AttachAppBar(INT uEdge)
{
if (AppBarConfig.uEdge == uEdge)
return;
if(AppBarConfig.uEdge < 0 && uEdge >= 0)
{
SetWindowLongPtr(hMainWnd, GWL_STYLE, GetWindowLongPtr(hMainWnd, GWL_STYLE) & (~WS_CAPTION));
}
else if(uEdge < 0 && AppBarConfig.uEdge>=0)
{
SetWindowLongPtr(hMainWnd, GWL_STYLE, GetWindowLongPtr(hMainWnd, GWL_STYLE) | WS_CAPTION);
SetWindowPos(hMainWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_FRAMECHANGED);
}
if(AppBarConfig.uEdge >= 0)
{
DoAppBarStuff(ABM_REMOVE);
}
if (uEdge >=0)
{
AppBarConfig.uEdge = uEdge;
DoAppBarStuff(ABM_NEW);
}
else
{
RECT rc = AppBarConfig.rcFloating;
SetWindowPos(hMainWnd, HWND_TOPMOST, rc.left, rc.top, rc.right-rc.left, rc.bottom-rc.top, 0);
}
AppBarConfig.uEdge = uEdge;
}
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
RECT rc;
DWORD exStyles = WS_EX_TOOLWINDOW | WS_EX_CONTROLPARENT;
DWORD dwStyles = WS_SIZEBOX | WS_SYSMENU | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_POPUP;
/* Load settings from registry */
LoadSettings();
rc = AppBarConfig.rcFloating;
RECT rcWorkArea;
hInst = hInstance; // Store instance handle in our global variable
if (AppBarConfig.uEdge<0)
{
dwStyles |= WS_CAPTION;
exStyles |= WS_EX_TOPMOST;
}
SystemParametersInfo(SPI_GETWORKAREA, 0, &rcWorkArea, 0);
/* Create the Window */
hMainWnd = CreateWindowEx(
exStyles,
WS_EX_TOPMOST | WS_EX_PALETTEWINDOW,
szWindowClass,
szTitle,
dwStyles,
rc.left,
rc.top,
rc.right-rc.left,
rc.bottom-rc.top,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
(rcWorkArea.right - rcWorkArea.left) * 2 / 3,
200,
NULL,
NULL,
hInstance,
@@ -295,16 +157,12 @@ BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
if (!hMainWnd)
return FALSE;
if (AppBarConfig.uEdge>=0) DoAppBarStuff(ABM_NEW);
else SetWindowPos(hMainWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_SHOWWINDOW);
ShowWindow(hMainWnd, bStartMinimized ? SW_MINIMIZE : nCmdShow);
UpdateWindow(hMainWnd);
// In Windows 2003's Magnifier, the "Start Minimized" setting
// refers exclusively to the options dialog, not the main window itself.
// Windows 2003's Magnifier always shows this dialog, and exits when the dialog isclosed.
// Should we add a custom means to prevent opening it?
hOptionsDialog = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOGOPTIONS), hMainWnd, OptionsProc);
if (bStartMinimized)
ShowWindow(hOptionsDialog, SW_HIDE);
else
ShowWindow(hOptionsDialog, SW_SHOW);
if (bShowWarning)
DialogBox(hInstance, MAKEINTRESOURCE(IDD_WARNINGDIALOG), hMainWnd, WarningProc);
@@ -492,11 +350,12 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
case WM_TIMER:
{
BOOL hasMoved = FALSE;
HWND hwndForeground = GetForegroundWindow ();
DWORD threadId = GetWindowThreadProcessId(hwndForeground, NULL);
GUITHREADINFO guiInfo;
guiInfo.cbSize = sizeof(guiInfo);
GetGUIThreadInfo(0, &guiInfo);
GetGUIThreadInfo(threadId, &guiInfo);
if (bFollowMouse)
{
@@ -505,10 +364,8 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
//Get current mouse position
GetCursorPos (&pNewMouse);
#define PointsAreEqual(pt1, pt2) (((pt1).x == (pt2).x) && ((pt1).y == (pt2).y))
//If mouse has moved ...
if (!PointsAreEqual(pMouse, pNewMouse))
if (((pMouse.x != pNewMouse.x) || (pMouse.y != pNewMouse.y)))
{
//Update to new position
pMouse = pNewMouse;
@@ -516,64 +373,45 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
hasMoved = TRUE;
}
}
if(guiInfo.hwndActive != hMainWnd)
if (bFollowCaret && hwndForeground && guiInfo.hwndCaret)
{
if (bFollowCaret)
{
if (guiInfo.hwndCaret)
{
POINT ptCaret;
ptCaret.x = (guiInfo.rcCaret.left + guiInfo.rcCaret.right) / 2;
ptCaret.y = (guiInfo.rcCaret.top + guiInfo.rcCaret.bottom) / 2;
POINT ptCaret;
ptCaret.x = (guiInfo.rcCaret.left + guiInfo.rcCaret.right) / 2;
ptCaret.y = (guiInfo.rcCaret.top + guiInfo.rcCaret.bottom) / 2;
if ((pCaretWnd != guiInfo.hwndCaret) || !PointsAreEqual(pCaret, ptCaret))
{
//Update to new position
pCaret = ptCaret;
pCaretWnd = guiInfo.hwndCaret;
if(!hasMoved)
{
ClientToScreen (guiInfo.hwndCaret, (LPPOINT) &ptCaret);
cp = ptCaret;
hasMoved = TRUE;
}
}
}
else
if (guiInfo.hwndCaret && ((pCaretWnd != guiInfo.hwndCaret) || (pCaret.x != ptCaret.x) || (pCaret.y != ptCaret.y)))
{
//Update to new position
pCaret = ptCaret;
pCaretWnd = guiInfo.hwndCaret;
if(!hasMoved)
{
pCaretWnd = NULL;
ClientToScreen (guiInfo.hwndCaret, (LPPOINT) &ptCaret);
cp = ptCaret;
}
hasMoved = TRUE;
}
}
if (bFollowFocus)
if (bFollowFocus && hwndForeground && guiInfo.hwndFocus)
{
POINT ptFocus;
RECT activeRect;
//Get current control focus
GetWindowRect (guiInfo.hwndFocus, &activeRect);
ptFocus.x = (activeRect.left + activeRect.right) / 2;
ptFocus.y = (activeRect.top + activeRect.bottom) / 2;
if(guiInfo.hwndFocus && ((guiInfo.hwndFocus != pFocusWnd) || (pFocus.x != ptFocus.x) || (pFocus.y != ptFocus.y)))
{
if(guiInfo.hwndFocus && !guiInfo.hwndCaret)
{
POINT ptFocus;
RECT activeRect;
//Get current control focus
GetWindowRect(guiInfo.hwndFocus, &activeRect);
ptFocus.x = (activeRect.left + activeRect.right) / 2;
ptFocus.y = (activeRect.top + activeRect.bottom) / 2;
if((guiInfo.hwndFocus != pFocusWnd) || !PointsAreEqual(pFocus, ptFocus))
{
//Update to new position
pFocus = ptFocus;
pFocusWnd = guiInfo.hwndFocus;
if(!hasMoved)
{
cp = ptFocus;
hasMoved = TRUE;
}
}
}
else
{
pFocusWnd = NULL;
}
//Update to new position
pFocus = ptFocus;
pFocusWnd = guiInfo.hwndFocus;
if(!hasMoved)
cp = ptFocus;
hasMoved = TRUE;
}
}
@@ -592,9 +430,8 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
lastTicks = GetTickCount();
Refresh();
}
return 0;
}
break;
case WM_COMMAND:
{
@@ -621,7 +458,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
break;
}
case WM_PAINT:
@@ -631,117 +468,24 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
dc = BeginPaint(hWnd, &PaintStruct);
Draw(dc);
EndPaint(hWnd, &PaintStruct);
return 0;
break;
}
case WM_CONTEXTMENU:
TrackPopupMenu(notifyMenu, 0, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), 0, hWnd, NULL);
return 0;
case WM_LBUTTONDOWN:
{
RECT rc;
POINT pt;
SetCapture(hWnd);
GetCursorPos(&pt);
GetWindowRect(hWnd, &rc);
ptDragOffset.x = pt.x - rc.left;
ptDragOffset.y = pt.y - rc.top;
nearEdge = AppBarConfig.uEdge;
break;
}
case WM_MOUSEMOVE:
if(GetCapture() == hWnd)
{
RECT rc;
POINT pt;
RECT rcWorkArea;
SystemParametersInfo(SPI_GETWORKAREA, 0, &rcWorkArea, 0);
GetCursorPos(&pt);
GetWindowRect(hWnd, &rc);
if(AppBarConfig.uEdge>=0)
{
if (pt.x >= rcWorkArea.left && pt.x <= rcWorkArea.right &&
pt.y >= rcWorkArea.top && pt.y <= rcWorkArea.bottom)
{
AttachAppBar(-2);
// Fixup offset
GetWindowRect(hWnd, &rc);
ptDragOffset.x = (rc.right-rc.left)/2;
ptDragOffset.y = 2;
rc.left = pt.x - ptDragOffset.x;
rc.top = pt.y - ptDragOffset.y;
SetWindowPos(hWnd, HWND_TOPMOST, rc.left, rc.top, 0, 0, SWP_NOSIZE);
}
}
else
{
if(pt.x <= rcWorkArea.left+8 && nearEdge != ABE_LEFT)
{
AttachAppBar(ABE_LEFT);
nearEdge = ABE_LEFT;
}
else if(pt.y <= rcWorkArea.top+8 && nearEdge != ABE_TOP)
{
AttachAppBar(ABE_TOP);
nearEdge = ABE_TOP;
}
else if(pt.x >= rcWorkArea.right-8 && nearEdge != ABE_RIGHT)
{
AttachAppBar(ABE_RIGHT);
nearEdge = ABE_RIGHT;
}
else if(pt.y >= rcWorkArea.bottom-8 && nearEdge != ABE_BOTTOM)
{
AttachAppBar(ABE_BOTTOM);
nearEdge = ABE_BOTTOM;
}
else
{
rc.left = pt.x - ptDragOffset.x;
rc.top = pt.y - ptDragOffset.y;
SetWindowPos(hWnd, HWND_TOPMOST, rc.left, rc.top, 0, 0, SWP_NOSIZE);
nearEdge = -1;
}
}
pMouse = pt;
Refresh();
}
break;
case WM_LBUTTONUP:
if(GetCapture() == hWnd)
{
if (AppBarConfig.uEdge>=0)
DoAppBarStuff(ABM_GETSTATE);
else
SetWindowPos(hWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
ReleaseCapture();
}
case WM_SIZE:
if(AppBarConfig.uEdge>=0) DoAppBarStuff(ABM_SETPOS);
/* fallthrough */
case WM_DISPLAYCHANGE:
bRecreateOffscreenDC = TRUE;
Refresh();
break;
return DefWindowProc(hWnd, message, wParam, lParam);
case WM_ERASEBKGND:
// handle WM_ERASEBKGND by simply returning non-zero because we did all the drawing in WM_PAINT.
return 0;
break;
case WM_DESTROY:
if(AppBarConfig.uEdge>=0) DoAppBarStuff(ABM_REMOVE);
/* Save settings to registry */
SaveSettings();
KillTimer(hWnd , 1);
@@ -758,12 +502,15 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
DestroyIcon(notifyIcon);
DestroyWindow(hOptionsDialog);
return 0;
break;
case WM_CREATE:
{
HMENU tempMenu;
/* Load settings from registry */
LoadSettings();
/* Get the desktop window */
hDesktopWindow = GetDesktopWindow();
@@ -785,57 +532,20 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
notifyMenu = GetSubMenu(tempMenu, 0);
RemoveMenu(tempMenu, 0, MF_BYPOSITION);
DestroyMenu(tempMenu);
return 0;
}
case APPMSG_APPBAR:
{
switch (wParam)
{
case ABN_STATECHANGE:
DoAppBarStuff(ABM_GETSTATE);
break;
case ABN_POSCHANGED:
DoAppBarStuff(ABM_SETPOS);
break;
case ABN_FULLSCREENAPP:
{
if(!lParam)
{
DoAppBarStuff(ABM_GETSTATE);
break;
}
SetWindowPos(hMainWnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
break;
}
case ABN_WINDOWARRANGE:
if(lParam)
ShowWindow(hMainWnd, SW_HIDE);
else
ShowWindow(hMainWnd, SW_SHOW);
}
return 0;
break;
}
case APPMSG_NOTIFYICON:
HandleNotifyIconMessage(hWnd, wParam, lParam);
return 0;
case WM_ACTIVATE:
if(AppBarConfig.uEdge>=0) DoAppBarStuff(ABM_ACTIVATE);
break;
case WM_WINDOWPOSCHANGED:
if(AppBarConfig.uEdge>=0) DoAppBarStuff(ABM_WINDOWPOSCHANGED);
Refresh();
break;
default:
break;
return DefWindowProc(hWnd, message, wParam, lParam);
}
return DefWindowProc(hWnd, message, wParam, lParam);
return 0;
}
INT_PTR CALLBACK AboutProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)

View File

@@ -26,16 +26,6 @@
extern int iZoom;
struct _AppBarConfig_t {
DWORD cbSize;
INT uEdge;
DWORD value3;
DWORD value4;
RECT appBarSizes;
RECT rcFloating;
};
extern struct _AppBarConfig_t AppBarConfig;
extern BOOL bShowWarning;
extern BOOL bFollowMouse;

View File

@@ -24,64 +24,38 @@ BOOL bInvertColors = FALSE;
BOOL bStartMinimized = FALSE;
BOOL bShowMagnifier = TRUE;
struct _AppBarConfig_t AppBarConfig = {
sizeof(struct _AppBarConfig_t),
-2 /* ABE_TOP */,
0, 1, /* unknown */
{ 101,101,101,101 }, /* edge sizes */
{ 20, 20, 600, 200 }, /* floating window rect */
};
void LoadSettings()
{
HKEY hkey;
LONG value;
ULONG len;
struct _AppBarConfig_t config_temp;
if (RegOpenKeyEx(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Magnify"), 0, KEY_READ, &hkey) == ERROR_SUCCESS)
{
len = sizeof(AppBarConfig);
if (RegQueryValueEx(hkey, _T("AppBar"), 0, 0, (BYTE *)&config_temp, &len) == ERROR_SUCCESS)
{
if(config_temp.cbSize == sizeof(AppBarConfig))
{
AppBarConfig = config_temp;
}
}
len = 4;
if (RegQueryValueEx(hkey, _T("StationaryMagLevel"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
{
if (value >= 0 && value <= 9)
iZoom = value;
}
len = 4;
if (RegQueryValueEx(hkey, _T("ShowWarning"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
bShowWarning = (value == 0 ? FALSE : TRUE);
len = 4;
if (RegQueryValueEx(hkey, _T("StationaryInvertColors"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
bInvertColors = (value == 0 ? FALSE : TRUE);
len = 4;
if (RegQueryValueEx(hkey, _T("StationaryStartMinimized"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
bStartMinimized = (value == 0 ? FALSE : TRUE);
len = 4;
if (RegQueryValueEx(hkey, _T("StationaryTrackCursor"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
bFollowMouse = (value == 0 ? FALSE : TRUE);
len = 4;
if (RegQueryValueEx(hkey, _T("StationaryTrackFocus"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
bFollowFocus = (value == 0 ? FALSE : TRUE);
len = 4;
if (RegQueryValueEx(hkey, _T("StationaryTrackSecondaryFocus"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
bFollowFocus = (value == 0 ? FALSE : TRUE);
len = 4;
if (RegQueryValueEx(hkey, _T("StationaryTrackText"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
bFollowCaret = (value == 0 ? FALSE : TRUE);
@@ -96,8 +70,6 @@ void SaveSettings()
if (RegCreateKeyEx(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Magnify"), 0, _T(""), 0, KEY_WRITE, NULL, &hkey, NULL) == ERROR_SUCCESS)
{
RegSetValueEx(hkey, _T("AppBar"), 0, REG_BINARY, (BYTE *)&AppBarConfig, sizeof(AppBarConfig));
value = iZoom;
RegSetValueEx(hkey, _T("StationaryMagLevel"), 0, REG_DWORD, (BYTE *)&value, sizeof(value));

View File

@@ -6,8 +6,7 @@ list(APPEND SOURCE
precomp.h)
add_rc_deps(mmc.rc ${CMAKE_CURRENT_SOURCE_DIR}/resources/mmc.ico)
add_executable(mmc ${SOURCE} mmc.rc)
set_module_type(mmc win32gui UNICODE)
add_importlibs(mmc user32 gdi32 comdlg32 advapi32 shell32 comctl32 msvcrt kernel32 ntdll)
add_pch(mmc precomp.h SOURCE)
add_cd_file(TARGET mmc DESTINATION reactos/system32 FOR all)
add_executable(mmcclient ${SOURCE} mmc.rc)
set_module_type(mmcclient win32gui UNICODE)
add_importlibs(mmcclient user32 gdi32 comdlg32 advapi32 shell32 comctl32 msvcrt kernel32)
add_pch(mmcclient precomp.h SOURCE)

View File

@@ -21,52 +21,11 @@
#include "resource.h"
#define NDEBUG
#include <debug.h>
typedef struct _CONSOLE_MAINFRAME_WND
{
HWND hwnd;
HWND hwndMDIClient;
HMENU hMenuConsoleSmall;
HMENU hMenuConsoleLarge;
INT nConsoleCount;
union
{
DWORD Flags;
struct
{
DWORD AppAuthorMode : 1;
};
};
} CONSOLE_MAINFRAME_WND, *PCONSOLE_MAINFRAME_WND;
typedef struct _CONSOLE_CHILDFRM_WND
{
HWND hwnd;
PCONSOLE_MAINFRAME_WND MainFrame;
PTSTR pFileName;
} CONSOLE_CHILDFRM_WND, *PCONSOLE_CHILDFRM_WND;
static const TCHAR szMMCMainFrame[] = TEXT("MMCMainFrame");
static const TCHAR szMMCChildFrm[] = TEXT("MMCChildFrm");
static ULONG NewConsoleCount = 0;
PCONSOLE_CHILDFRM_WND
GetActiveChildInfo(VOID)
{
HWND hWndMDIChild;
hWndMDIChild = (HWND)SendMessageW(hwndMDIClient, WM_MDIGETACTIVE, 0, 0);
if (hWndMDIChild == NULL)
return NULL;
return (PCONSOLE_CHILDFRM_WND)GetWindowLongPtr(hWndMDIChild, 0);
}
static LPTSTR
CreateNewConsoleTitle(VOID)
{
@@ -83,6 +42,27 @@ CreateNewConsoleTitle(VOID)
return lpTitle;
}
typedef struct _CONSOLE_MAINFRAME_WND
{
HWND hwnd;
HWND hwndMDIClient;
LPCTSTR lpConsoleTitle;
HMENU hMenuConsoleSmall;
HMENU hMenuConsoleLarge;
INT nConsoleCount;
union
{
DWORD Flags;
struct
{
DWORD AppAuthorMode : 1;
};
};
} CONSOLE_MAINFRAME_WND, *PCONSOLE_MAINFRAME_WND;
HWND
CreateNewMDIChild(PCONSOLE_MAINFRAME_WND Info,
HWND hwndMDIClient)
@@ -116,11 +96,14 @@ FrameOnCreate(HWND hwnd,
LPCTSTR lpFileName = (LPCTSTR)(((LPCREATESTRUCT)lParam)->lpCreateParams);
Info = HeapAlloc(hAppHeap,
HEAP_ZERO_MEMORY,
0,
sizeof(CONSOLE_MAINFRAME_WND));
if (Info == NULL)
return -1;
ZeroMemory(Info,
sizeof(CONSOLE_MAINFRAME_WND));
Info->hwnd = hwnd;
SetWindowLongPtr(hwnd,
@@ -137,18 +120,19 @@ FrameOnCreate(HWND hwnd,
{
/* FIXME */
Info->AppAuthorMode = TRUE;
// Info->lpConsoleTitle = TEXT("ReactOS Management Console");
Info->lpConsoleTitle = TEXT("ReactOS Management Console");
}
else
{
Info->AppAuthorMode = TRUE;
// Info->lpConsoleTitle = CreateNewConsoleTitle();
Info->lpConsoleTitle = CreateNewConsoleTitle();
}
SetMenu(Info->hwnd,
Info->hMenuConsoleSmall);
SetWindowText(Info->hwnd, TEXT("ReactOS Management Console"));
SetWindowText(Info->hwnd,
Info->lpConsoleTitle);
ccs.hWindowMenu = GetSubMenu(Info->hMenuConsoleLarge, 1);
ccs.idFirstChild = IDM_MDI_FIRSTCHILD;
@@ -173,134 +157,6 @@ FrameOnCreate(HWND hwnd,
}
static VOID
SetFileName(
PCONSOLE_CHILDFRM_WND Info,
PWSTR pFileName)
{
DPRINT1("SetFileName(&p \'%S\')\n", Info, pFileName);
if (Info->pFileName != NULL)
{
HeapFree(GetProcessHeap(), 0, Info->pFileName);
Info->pFileName = NULL;
}
if (pFileName != NULL)
{
Info->pFileName = HeapAlloc(GetProcessHeap(),
0,
(_tcslen(pFileName) + 1) * sizeof(TCHAR));
if (Info->pFileName != NULL)
_tcscpy(Info->pFileName, pFileName);
}
}
static BOOL
DoSaveFileAs(
HWND hWnd,
PCONSOLE_CHILDFRM_WND pChildInfo);
static BOOL
DoSaveFile(
HWND hWnd,
PCONSOLE_CHILDFRM_WND pChildInfo)
{
DPRINT1("pChildInfo %p\n", pChildInfo);
DPRINT1("FileName %S\n", pChildInfo->pFileName);
if (pChildInfo->pFileName == NULL)
return DoSaveFileAs(hWnd, pChildInfo);
/* FIXME: Save the console here! */
return TRUE;
}
static BOOL
DoSaveFileAs(
HWND hWnd,
PCONSOLE_CHILDFRM_WND pChildInfo)
{
OPENFILENAME saveas;
TCHAR szPath[MAX_PATH];
DPRINT1("pChildInfo %p\n", pChildInfo);
DPRINT1("FileName %S\n", pChildInfo->pFileName);
ZeroMemory(&saveas, sizeof(saveas));
if (pChildInfo->pFileName != NULL)
{
_tcscpy(szPath, pChildInfo->pFileName);
}
else
{
GetWindowText(pChildInfo->hwnd, szPath, MAX_PATH);
_tcscat(szPath, TEXT(".msc"));
}
saveas.lStructSize = sizeof(OPENFILENAME);
saveas.hwndOwner = hWnd;
saveas.hInstance = hAppInstance;
saveas.lpstrFilter = L"MSC Files\0*.msc\0";
saveas.lpstrFile = szPath;
saveas.nMaxFile = MAX_PATH;
saveas.Flags = OFN_HIDEREADONLY | OFN_PATHMUSTEXIST | OFN_OVERWRITEPROMPT;
saveas.lpstrDefExt = L"msc";
if (GetSaveFileName(&saveas))
{
/* HACK: Because in ROS, Save-As boxes don't check the validity
* of file names and thus, here, szPath can be invalid !! We only
* see its validity when we call DoSaveFile()... */
SetFileName(pChildInfo, szPath);
if (DoSaveFile(hWnd, pChildInfo))
{
// UpdateWindowCaption();
return TRUE;
}
else
{
SetFileName(pChildInfo, NULL);
return FALSE;
}
}
else
{
return FALSE;
}
}
static BOOL
FrameOnSave(
HWND hWnd)
{
PCONSOLE_CHILDFRM_WND pChildInfo;
pChildInfo = GetActiveChildInfo();
if (pChildInfo == NULL)
return FALSE;
return DoSaveFile(hWnd, pChildInfo);
}
static BOOL
FrameOnSaveAs(
HWND hWnd)
{
PCONSOLE_CHILDFRM_WND pChildInfo;
pChildInfo = GetActiveChildInfo();
if (pChildInfo == NULL)
return FALSE;
return DoSaveFileAs(hWnd, pChildInfo);
}
static VOID
FrameOnCommand(HWND hwnd,
UINT uMsg,
@@ -320,14 +176,6 @@ FrameOnCommand(HWND hwnd,
Info->hMenuConsoleLarge);
break;
case IDM_FILE_SAVE:
FrameOnSave(hwnd);
break;
case IDM_FILE_SAVEAS:
FrameOnSaveAs(hwnd);
break;
case IDM_FILE_EXIT:
PostMessage(hwnd, WM_CLOSE, 0, 0);
break;
@@ -462,6 +310,12 @@ ConsoleMainFrameWndProc(IN HWND hwnd,
}
typedef struct _CONSOLE_CHILDFRM_WND
{
HWND hwnd;
PCONSOLE_MAINFRAME_WND MainFrame;
} CONSOLE_CHILDFRM_WND, *PCONSOLE_CHILDFRM_WND;
static LRESULT CALLBACK
ConsoleChildFrmProc(IN HWND hwnd,
IN UINT uMsg,
@@ -477,10 +331,13 @@ ConsoleChildFrmProc(IN HWND hwnd,
{
case WM_CREATE:
Info = HeapAlloc(hAppHeap,
HEAP_ZERO_MEMORY,
0,
sizeof(CONSOLE_CHILDFRM_WND));
if (Info != NULL)
{
ZeroMemory(Info,
sizeof(CONSOLE_CHILDFRM_WND));
Info->hwnd = hwnd;
SetWindowLongPtr(hwnd,
@@ -491,12 +348,7 @@ ConsoleChildFrmProc(IN HWND hwnd,
case WM_DESTROY:
if (Info != NULL)
{
if (Info->pFileName)
HeapFree(hAppHeap, 0, Info->pFileName);
HeapFree(hAppHeap, 0, Info);
}
HeapFree(hAppHeap, 0, Info);
PostMessage(hwndMainConsole, WM_USER_CLOSE_CHILD, 0, 0);
break;

View File

@@ -5,7 +5,6 @@ BEGIN
POPUP "&Файл"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM SEPARATOR
MENUITEM "Из&ход\tAlt+F4", IDM_FILE_EXIT
END
@@ -20,9 +19,6 @@ BEGIN
POPUP "&Файл"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM "Save", IDM_FILE_SAVE
MENUITEM "Save as...", IDM_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "Из&ход\tAlt+F4", IDM_FILE_EXIT
END

View File

@@ -5,7 +5,6 @@ BEGIN
POPUP "&Fitxer"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM SEPARATOR
MENUITEM "&Sortida\tAlt+F4", IDM_FILE_EXIT
END
@@ -20,9 +19,6 @@ BEGIN
POPUP "&Fitxer"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM "Save", IDM_FILE_SAVE
MENUITEM "Save as...", IDM_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "&Sortida\tAlt+F4", IDM_FILE_EXIT
END

View File

@@ -10,7 +10,6 @@ BEGIN
POPUP "&Soubor"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM SEPARATOR
MENUITEM "Uk&ončit\tAlt+F4", IDM_FILE_EXIT
END
@@ -25,9 +24,6 @@ BEGIN
POPUP "&Soubor"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM "Save", IDM_FILE_SAVE
MENUITEM "Save as...", IDM_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "Uk&ončit\tAlt+F4", IDM_FILE_EXIT
END

View File

@@ -5,7 +5,6 @@ BEGIN
POPUP "&Datei"
BEGIN
MENUITEM "Neu\tStrg+N", IDM_FILE_NEW
MENUITEM "Öffnen\tStrg+O", IDM_FILE_OPEN
MENUITEM SEPARATOR
MENUITEM "B&eenden\tAlt+F4", IDM_FILE_EXIT
END
@@ -20,9 +19,6 @@ BEGIN
POPUP "&Datei"
BEGIN
MENUITEM "Neu\tStrg+N", IDM_FILE_NEW
MENUITEM "Öffnen\tStrg+O", IDM_FILE_OPEN
MENUITEM "Speichern", IDM_FILE_SAVE
MENUITEM "Speichern unter...", IDM_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "B&eenden\tAlt+F4", IDM_FILE_EXIT
END

View File

@@ -5,7 +5,6 @@ BEGIN
POPUP "&Αρχείο"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM SEPARATOR
MENUITEM "Έ&ξοδος\tAlt+F4", IDM_FILE_EXIT
END
@@ -20,9 +19,6 @@ BEGIN
POPUP "&Αρχείο"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM "Save", IDM_FILE_SAVE
MENUITEM "Save as...", IDM_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "Έ&ξοδος\tAlt+F4", IDM_FILE_EXIT
END

View File

@@ -5,7 +5,6 @@ BEGIN
POPUP "&File"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM SEPARATOR
MENUITEM "E&xit\tAlt+F4", IDM_FILE_EXIT
END
@@ -20,9 +19,6 @@ BEGIN
POPUP "&File"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM "Save", IDM_FILE_SAVE
MENUITEM "Save as...", IDM_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "E&xit\tAlt+F4", IDM_FILE_EXIT
END

View File

@@ -11,7 +11,6 @@ BEGIN
POPUP "&Archivo"
BEGIN
MENUITEM "Nuevo\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM SEPARATOR
MENUITEM "Sa&lir\tAlt+F4", IDM_FILE_EXIT
END
@@ -26,9 +25,6 @@ BEGIN
POPUP "&Archivo"
BEGIN
MENUITEM "Nuevo\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM "Save", IDM_FILE_SAVE
MENUITEM "Save as...", IDM_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "Sa&lir\tAlt+F4", IDM_FILE_EXIT
END

View File

@@ -5,7 +5,6 @@ BEGIN
POPUP "&Fichier"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM SEPARATOR
MENUITEM "Quitter\tAlt+F4", IDM_FILE_EXIT
END
@@ -20,9 +19,6 @@ BEGIN
POPUP "&Fichier"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM "Save", IDM_FILE_SAVE
MENUITEM "Save as...", IDM_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "Quitter\tAlt+F4", IDM_FILE_EXIT
END

View File

@@ -5,7 +5,6 @@ BEGIN
POPUP "&קובץ"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM SEPARATOR
MENUITEM "&יציאה\tAlt+F4", IDM_FILE_EXIT
END
@@ -20,9 +19,6 @@ BEGIN
POPUP "&קובץ"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM "Save", IDM_FILE_SAVE
MENUITEM "Save as...", IDM_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "&יציאה\tAlt+F4", IDM_FILE_EXIT
END

View File

@@ -5,7 +5,6 @@ BEGIN
POPUP "&File"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM SEPARATOR
MENUITEM "E&sci\tAlt+F4", IDM_FILE_EXIT
END
@@ -20,9 +19,6 @@ BEGIN
POPUP "&File"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM "Save", IDM_FILE_SAVE
MENUITEM "Save as...", IDM_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "E&sci\tAlt+F4", IDM_FILE_EXIT
END

View File

@@ -7,7 +7,6 @@ BEGIN
POPUP "파일(&F)"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM SEPARATOR
MENUITEM "종료(&E)\tAlt+F4", IDM_FILE_EXIT
END
@@ -22,9 +21,6 @@ BEGIN
POPUP "파일(&F)"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM "Save", IDM_FILE_SAVE
MENUITEM "Save as...", IDM_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "종료(&E)\tAlt+F4", IDM_FILE_EXIT
END

View File

@@ -7,7 +7,6 @@ BEGIN
POPUP "&Byla"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM SEPARATOR
MENUITEM "&Baigti\tAlt+F4", IDM_FILE_EXIT
END
@@ -22,9 +21,6 @@ BEGIN
POPUP "&Byla"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM "Save", IDM_FILE_SAVE
MENUITEM "Save as...", IDM_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "&Baigti\tAlt+F4", IDM_FILE_EXIT
END

View File

@@ -7,7 +7,6 @@ BEGIN
POPUP "&Fail"
BEGIN
MENUITEM "Baru\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM SEPARATOR
MENUITEM "Keluar(&X)\tAlt+F4", IDM_FILE_EXIT
END
@@ -22,9 +21,6 @@ BEGIN
POPUP "&Fail"
BEGIN
MENUITEM "Baru\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM "Save", IDM_FILE_SAVE
MENUITEM "Save as...", IDM_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "Keluar(&X)\tAlt+F4", IDM_FILE_EXIT
END

View File

@@ -5,7 +5,6 @@ BEGIN
POPUP "&Fil"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM SEPARATOR
MENUITEM "&Avslutt\tAlt+F4", IDM_FILE_EXIT
END
@@ -20,9 +19,6 @@ BEGIN
POPUP "&Fil"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM "Save", IDM_FILE_SAVE
MENUITEM "Save as...", IDM_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "&Avslutt\tAlt+F4", IDM_FILE_EXIT
END

View File

@@ -12,7 +12,6 @@ BEGIN
POPUP "Pl&ik"
BEGIN
MENUITEM "Nowa\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM SEPARATOR
MENUITEM "Za&kończ\tAlt+F4", IDM_FILE_EXIT
END
@@ -27,9 +26,6 @@ BEGIN
POPUP "Pl&ik"
BEGIN
MENUITEM "Nowa\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM "Save", IDM_FILE_SAVE
MENUITEM "Save as...", IDM_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "Za&kończ\tAlt+F4", IDM_FILE_EXIT
END

View File

@@ -5,7 +5,6 @@ BEGIN
POPUP "&Arquivo"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM SEPARATOR
MENUITEM "Sai&r\tAlt+F4", IDM_FILE_EXIT
END
@@ -20,9 +19,6 @@ BEGIN
POPUP "&Arquivo"
BEGIN
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "Open\tStrg+O", IDM_FILE_OPEN
MENUITEM "Save", IDM_FILE_SAVE
MENUITEM "Save as...", IDM_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "Sai&r\tAlt+F4", IDM_FILE_EXIT
END

Some files were not shown because too many files have changed in this diff Show More