Compare commits

...

57 Commits

Author SHA1 Message Date
Hermès Bélusca-Maïto
c08aa2f632 [REACTOS] Start to plug the update-registry code in.
This code has been tested on Windows and works as expected.
2023-10-18 22:14:18 +02:00
Hermès Bélusca-Maïto
32edc897c9 **** DO NOT COMMIT!! -- Temp VBoxDbg bootcd **** 2023-10-18 22:14:16 +02:00
Hermès Bélusca-Maïto
171941ad18 [DESK] Add the current screensaver in the list if it isn't already present (#5766)
- Introduce AddScreenSaver[Item] helpers for adding screensavers in
  the list (either given by file path or by item structure).

- Rename "AddScreenSavers" to "EnumScreenSavers", and
  "ScreenSaverItem" type to "SCREEN_SAVER_ITEM".

- Ensure the stored "SCRNSAVE.EXE" value is NULL-terminated.

- Add the current screensaver, specified by the "SCRNSAVE.EXE" registry
  value, in the list if it isn't already present; otherwise select it
  in the list.

- Make the filename comparison case-insensitive.
2023-10-18 21:46:15 +02:00
Hermès Bélusca-Maïto
b3a25bcf8b [DESK] Reimplement InstallScreenSaverW to behave similarly to Windows' one (#5766)
CORE-6812 ; see also commit ff0951356 (r66688)

This function "just" changes the per-user SCRNSAVE.EXE registry value
to point to the new specified file, changes the SPI values and opens
the desk.cpl "Screensaver" property tab for letting the user change
the new selected screensaver properties.

In particular, it does *NOT* copy the specified file to System32 or
anything else (and doesn't verify that it is a valid PE executable).

Our previous implementation did none of that, and was also relying on
some private setupapi functions.

We now behave closer to Windows' desk.cpl.

Additionally:

- ReactOS-specific feature (compile-time define) disabled by default:
  Verify that the specified file actually exists, before changing
  the screensaver.
- Use NDEBUG, disabling DPRINT by default;
- Improve InstallScreenSaver[A,W] spec entries;
- Remove NUM_APPLETS define and use _countof() instead.
2023-10-18 21:45:39 +02:00
Hermès Bélusca-Maïto
fd1e5d53a5 [DESK] Cleanup some functions. 2023-10-18 21:30:10 +02:00
Stanislav Motylkov
0af84ce12d [NVNET] Remove NdisEqualMemory hack by linking with memcmp library
Fix suggested by Hermès Bélusca-Maïto. CORE-15872
2023-10-18 20:18:02 +03:00
Dmitry Borisov
59d8a77df6 [DC21X4] Add driver for DECchip 21x4-compatible network adapters (#5614)
These adapters were common in DEC Alpha boxes and they are really rare
nowadays. The 21140 chip is emulated in Connectix / Microsoft Virtual PC
and Hyper-V Gen 1 VM.

This is an experimental driver, not yet tested on real hardware.

CORE-8724
2023-10-18 20:12:36 +03:00
Timo Kreuzer
a8e8add0c0 [KERNEL32] Export more Vista functions 2023-10-18 15:55:41 +03:00
Timo Kreuzer
e0545dab15 [CMAKE] Improve configure script to work with newer CMake versions (#5742)
This change allows to properly pass parameters to newer CMake versions. Currently the script passes "VSSolution" and similar on to CMake, which are ignored, but newer CMake will complain. Allows to configure a VSSolution with CMake 3.27.4.
2023-10-17 13:17:35 +03:00
Timo Kreuzer
d9cb169920 [XDK] Fix / improve some definitions 2023-10-17 13:02:30 +03:00
Timo Kreuzer
7b38f80119 [STLPORT] Make stl thread-safe
Define _STLP_THREADS to make stl thread safe.
Also remove defined(__BUILDING_STLPORT) from the preprocessor conditions for which STLPInterlockedExchangePointer is defined, because that function is used in _threads.h, which can get included by apps using the stl through stl headers.
2023-10-17 13:01:24 +03:00
Katayama Hirofumi MZ
97e53c6963 [MSPAINT] Implement mouse middle button dragging (#5804)
- Handle WM_MBUTTONDOWN and
  WM_MBUTTONUP messages.
- Implement dragging by mouse middle button.
- Add IDC_HANDDRAG cursor resource.
CORE-19094
2023-10-17 15:58:34 +09:00
Timo Kreuzer
40d444919e [SDK] Move definition of MyInt128 into stubs.h 2023-10-17 09:41:18 +03:00
Timo Kreuzer
a27b8009e0 [SDK] Do not include windef.h into stubs.h
This prevents pulling in function declarations that are incompatible with the generated stubs.
2023-10-17 09:41:18 +03:00
Timo Kreuzer
3b7c7d8e68 [CMAKE] Don't use precompiled headers for autogenerated stub files 2023-10-17 09:41:18 +03:00
Katayama Hirofumi MZ
f49919ce5d [MSPAINT] Simplify canvas mouse message handling (#5803)
- Unify some mouse message handlers of
  CCanvasWindow.
- Add CCanvasWindow::m_nMouseDownMsg 
  member.
CORE-19094
2023-10-17 13:48:19 +09:00
Katayama Hirofumi MZ
8f1eb03ad2 [MSPAINT] Improve Zoom tool (#5798)
- Delete global zoomTo function.
- Add CCanvasWindow::zoomTo and
  CCanvasWindow::getNewZoomRect functions.
- Rename CCanvasWindow::updateScrollInfo as
  CCanvasWindow::updateScrollRange.
- Rename CCanvasWindow::resetScrollPos as
  CCanvasWindow::updateScrollPos.
- Draw the proper zoom rectangle on mouse move.
- Revert the active tool on click when the tool
  was Zoom.
CORE-19094
2023-10-17 07:25:50 +09:00
Egor Ananyin
e2d3aa7f4a [NTUSER] Remove a wrong check in MENU_MouseMove (#5736)
This check doesn't seem to be correct in modern ReactOS. Furthermore, it
actually hadn't been working for a long time until it was uncovered by
the recent system menu changes.

Reverts a hack introduced in 17a315285 (r72517), fixes CORE-19170.
The initial bug described in CORE-2338 is not observed.
2023-10-16 19:10:52 +03:00
Serge Gautherie
13a145b6d8 [USERENV] SetUserEnvironmentVariable(): Remove use of uninit' ShortName
Addendum to 96fe018 (r72066).
2023-10-16 19:02:27 +03:00
Katayama Hirofumi MZ
8669679499 [ATL][ATL_APITEST] Add some missing CRect methods (#5800)
- Strengthen "atltest.h".
- Strengthen atl_apitest:atltypes testcase.
- Implement some missing CRect methods.
2023-10-16 21:57:57 +09:00
Katayama Hirofumi MZ
d955b9321b [ATL] s/throw()/noexcept/ (#5799)
Mechanically replace throw() with noexcept.
2023-10-16 15:40:17 +09:00
Katayama Hirofumi MZ
fd1e158480 [MSPAINT] Calculate intersection to reduce bits transfer (#5795)
Drawing lines smoothly on big image.
- In CCanvasWindow::DoDraw, calculate the
  intersection to reduce bits transfer.
- Improve SmoothDrawTool in handling Shift key.
CORE-19094, CORE-19237
2023-10-16 09:09:40 +09:00
Hermès Bélusca-Maïto
5c2ec83fa7 [USETUP] Decouple bootloader install choice page from its actual installation (#5786)
This allows to move this choice sooner in the process, thus having all
the user key presses at first, then all the actual installation going
without any key presses needed anymore... (that is, unless you wanted
to install the bootloader on a removable device. Then it will prompt
you there!)

- Additional "cosmetic"/future-proof changes: Rename all instances
  of "floppy" in the bootloader install variables to "RemovableDisk"
  because it would be great to have this install choice later.

- Layout adjustments in the translated bootloader pages.

- Skip bootloader installation on upgrades. The idea here is that if
  we were able to find a ReactOS installation to upgrade, this means
  we were able to find a valid bootloader + boot entry.
  See also PR #5633.

  This logic may be slightly improved in the future to detect whether
  the underlying bootloader is FreeLdr and if so, only update its files.
  But this is for the future.
2023-10-14 16:29:43 +02:00
Katayama Hirofumi MZ
1c4bf2d702 [MSPAINT] Don't include useless <mapicode.h>
CORE-19094
2023-10-13 18:07:55 +09:00
Katayama Hirofumi MZ
1183e797b4 [MSPAINT] Reset scroll position in some situations (#5789)
In some situations, the scroll position should be reset.
- Add CCanvasWindow::resetScrollPos method.
- Reset the scroll position on loading a file.
- Reset the scroll position on mirroring/rotating
  the image.
CORE-19094
2023-10-12 22:59:17 +09:00
Katayama Hirofumi MZ
9a51c8e6c6 [MSPAINT][NOTEPAD][REGEDIT] Don't use CRTDBG for these apps (#5788)
Don't include <crtdbg.h>.
Don't use _CrtSetDbgFlag.
2023-10-12 22:53:02 +09:00
Katayama Hirofumi MZ
70d5c864bc [MSPAINT] Do type-cast (float) for xDpi and yDpi
CORE-19094
2023-10-12 19:43:29 +09:00
Katayama Hirofumi MZ
409df2355e [MSPAINT] Do type-cast (BYTE) for lfItalic and lfUnderline
CORE-19094
2023-10-12 19:38:41 +09:00
Katayama Hirofumi MZ
4306e261ee [MSPAINT] Do type-cast (BOOL) for TB_ISBUTTONCHECKED return
CORE-19094
2023-10-12 19:31:22 +09:00
Katayama Hirofumi MZ
bc28675a44 [MSPAINT] s/WINBOOL/BOOL/
CORE-19094
2023-10-12 19:13:20 +09:00
Justin Miller
ff3dadf89d [FREELDR] Enable UEFI boot for x86 and amd64 (#5267)
Co-authored-by: Stanislav Motylkov <x86corez@gmail.com>
Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>

- Allow to boot NT kernel on UEFI systems with our 2 primary supported architectures
- Implement remaining code needed to pass execution to x86 and amd64 kernels

CORE-11954
2023-10-11 12:45:08 -07:00
Oleg Dubinskiy
a6b281c228 [KS] KsRead/WriteFile: finish IRP initialization and properly setup I/O stack location for it (#5784)
- Initialize the rest of IRP data which is not initialized by IoBuildSynchronousFsdRequest.
- Setup an IO_STACK_LOCATION structure for the IRP before calling the driver's read/write routine.
- Do this for both KsReadFile and KsWriteFile functions in our Kernel Streaming driver (ks.sys).
This fixes several problems when calling these functions from outside, so now they are working correctly, as expected.
Discovered during my audio investigations.
CORE-19232
2023-10-10 13:30:00 -07:00
Alexey Strukov
8451230753 [DEVMGR] Allow to copy text from Details page of device properties (#5775)
In driver properties, in details tab, add a "Copy" popup menu for listview.
This will allow to copy driver's information to buffer.
2023-10-10 21:22:54 +02:00
Katayama Hirofumi MZ
62eeb158a5 [MSPAINT] Improve Zoom tool (#5781)
- Delete CCanvasWindow::drawZoomFrame.
- Invalidate the canvas on mouse move when
  the active tool is Zoom tool.
- Add ZoomTool::OnDrawOverlayOnCanvas to
  draw the zoom rectangle without flickering.
- Improve the zoom trackbar position.
- Display the zoom rate on changing the value
  of the zoom trackbar.
- Reverse the direction of the zoom trackbar.
- Don't draw the focus rectangle.
CORE-19215, CORE-19216
2023-10-10 10:59:29 +09:00
Katayama Hirofumi MZ
0c164f081a [MSPAINT] Check out of image in updating status bar (#5779)
Check out of the image by using ::PtInRect and CCanvasWindow::GetImageRect.
If out, then don't show the status bar text.
CORE-19219
2023-10-09 08:39:31 +09:00
Katayama Hirofumi MZ
611d89eb8b [MSPAINT] Add border width to tool box (#5780)
Make tool box pixel-perfect. Add two border widths to the tool box.
CORE-19217
2023-10-09 08:37:31 +09:00
Timo Kreuzer
63aef3e1fc [T2EMBED] Improve spec file
- Only export stdcall annotated functions on x86
- Turn annotated stubs / forwarders into normal exports
- Note: MSVC removes decorated exports / forwarders, as soon as the undecorated version is exported, even when _declspec(dllexport) is used, no idea how to fix that.
2023-10-09 02:34:30 +03:00
Katayama Hirofumi MZ
8d8f4d328c [MSPAINT] Zoom tool shouldn't use undo buffer (#5778)
Remove PushImageForUndo call in Zoom tool. CORE-19214
2023-10-09 08:07:02 +09:00
Hermès Bélusca-Maïto
11b706429c [WSHTCPIP] Remove unneeded headers + Fix bugs.
- Mismatch NTSTATUS/DWORD for win32 errors;
- Close handle returned from openTcpFile() with closeTcpFile().
2023-10-08 17:11:26 +02:00
Hermès Bélusca-Maïto
9021a14f4a [NDK] Fix weird "ntstatus.s" statement (#5771)
Spotted by Serge Gautherie.
2023-10-08 17:11:25 +02:00
Joachim Henze
42c93e3cbb [TASKMGR] *.rc: Fix accelerator collisions &Priority <-> &Properties (#5758)
We had collisions in many languages.
For most languages (which are derived from en-US) we should use
&Priority
P&roperties

We introduced the collisions during 0.4.15-dev'ing when
MENUITEM ID_PROCESS_PAGE_PROPERTIES
and
MENUITEM ID_PROCESS_PAGE_OPENFILELOCATION
were added.


We verified Win7-en and Win2k3-en to behave as proposed in this PR (R for properties, P for priority).
But *french* Windows (I believe Hermes picture was from WinVista-fr or Win7-fr or Win10-fr maybe) does it differently.

the existing de-DE also has been double-checked to exactly match MS with the accelerators in that menu.
2023-10-07 23:03:47 +00:00
Hermès Bélusca-Maïto
ce08851758 [DESK] Use MultiByteToWideChar instead of the private pSetupMultiByteToUnicode function (#5765)
This avoids having desk.cpl depend on a private function that may change
or disappear, and increase the probability of being able to use that CPL
across different Windows versions.

(Note: this pSetupMultiByteToUnicode was one of those whose name changed
between Windows 2000 and XP+)
2023-10-07 22:17:58 +02:00
Hermès Bélusca-Maïto
e4608f7450 [DESK][SHELLBTRFS] Fix typo in WIN32_NO_STATUS 2023-10-07 22:15:12 +02:00
Hermès Bélusca-Maïto
d0b43a399f [NETID] Simplify IsUserAdmin() helper implementation (#5763)
Addendum to commit 8c4b0c914.

Base ourselves on pSetupIsUserAdmin() and other similar functions in our
codebase. Note that what we are actually interested here, is whether the
current thread runs with Administrator privileges.

(As noticed by contributor 'whindsaks', "Not only is this code simpler,
it now will correctly handle deny-only SIDs in the token!")
2023-10-07 21:52:36 +02:00
Timo Kreuzer
e685b25e35 [NTOS:MM/x64] Temporarily release AddressCreationLock in MmCreateVirtualMappingUnsafeEx
This is a hack, because the kernel mode path can incur a recursive page fault with the AddressCreationLock acquired, which would lead to a recursive acquisition, once we do proper locking in MmAccessFault.
To properly fix this the PDE must be made valid, similar to the user mode path, but that is not that simple...
2023-10-07 10:58:30 +03:00
Oleg Dubinskiy
d96b3cd45c [KS] Fix bug in KsStreamIo (#4663)
Properly set output buffer length in IO Stack Location of the current IRP, since it is passed to KsProbeStreamIrp when calling KsStreamIo, so it fails if the length isn't set properly.

Don't set an input buffer length and the buffer itself, since it isn't passed anywhere, so setting it makes no sense. Moreover, MSDN says that for IOCTL_KS_READ/WRITE_STREAM, only output buffer (and its length) is needed to be set, but not an input one. So it indeed is more correct.

It fixes buffer overflow in KsProbeStreamIrp when attempting to perform the streaming via KsStreamIo. I discovered this bug during my audio refactoring from PR #4660.
2023-10-06 12:36:09 +02:00
Hermès Bélusca-Maïto
2a5fd78f1b [APPHELP_APITEST] Fix build, addendum to commit a8755711b 2023-10-05 21:32:38 +02:00
Hermès Bélusca-Maïto
a8755711b9 [APPHELP_APITEST] Deduplicate the IsUserAdmin() helper. 2023-10-05 20:58:57 +02:00
Hermès Bélusca-Maïto
f1cff6ef27 [DESK] Remove deprecated code.
This mostly reverts commit 221f21c62 (r29328), that was a hack for
building with MSVC. We can nowadays correctly link with the shell32
SHCreatePropSheetExtArrayEx() export.
2023-10-05 20:58:28 +02:00
Katayama Hirofumi MZ
1a90009bb9 [MSPAINT] Update scroll info on loading file (#5761)
The scroll info was not updated when the file is loading.
- Rename CCanvasWindow::Update as CCanvasWindow::updateScrollInfo.
- Update scroll info on ImageModel::NotifyImageChanged.
- Improve ImageModel::ClearHistory.
CORE-19094
2023-10-05 20:01:41 +09:00
Katayama Hirofumi MZ
3579ea7888 [MSPAINT] Fix assertion failure on text tool (#5762)
Kill the assertion failure on choosing text tool.
Check whether textEditWindow is not null by using IsWindowVisible.
CORE-19094
2023-10-05 19:51:36 +09:00
George Bișoc
d72025649b [NTOS:SE] Mute the access denied DPRINTs
They can be spammy. Also clarify these debug prints, because some people
think that "failed to grant access rights" means there's something wrong
in the core access check functions.
2023-10-04 18:04:30 +02:00
George Bișoc
09bfd96f3b [NTOS:SE] HACK: Temporarily add the Local group SID to the system token
Temporarily add the local group to the system token so that Virtualbox
GA services can properly set up network drives for shared folders.

What happens is that a security descriptor has a DACL with only one ACE
that grants access to Local SID (presumably coming from Vbox?)
but the client token is that of the service which is a SYSTEM token.
Perhaps we are not impersonating the right user or whatever else.

This is only a temporary placebo, until a proper solution is found.

CORE-18250
2023-10-04 18:04:30 +02:00
George Bișoc
fefb1b7745 [NTDLL_APITEST] Write NtAccessCheck testcase that tests for empty generic mapping scenario
See b79aadd50bb7d5d6f08532284941c0334514c477 for further information.
2023-10-04 18:04:29 +02:00
George Bișoc
4b4638dc55 [NTOS:SE] HACK: Temporarily grant access to the client if empty generic mapping was passed
Certain apps such as AIM installer passes an empty generic mapping (this can
be understood with their generic masks set to 0) and our code tries to map
the access right from an ACE with the mapping provided by AccessCheck.

This can lead to a bug where we would not be able to decode the generic right
from an ACE as we need a proper generic mapping in order to do so. A mask
right that is not decoded it cannot be used to mask out the remaining rights,
further resulting into a denied access right.

What Windows does instead is they are mapping the ACE's rights in another place,
presumably when setting security data to an object, and they are using the
generic mapping passed by the kernel.

What we can do for the time being is to temporarily grant access to the client,
but only if they are an administrator.

CORE-18576
2023-10-04 18:04:29 +02:00
George Bișoc
95c104f29a [TCPIP] Setup a security descriptor for the IP and TCP device objects
Grant access to such objects to system, admins and network services.
2023-10-04 18:04:17 +02:00
Ratin Gao
be5c889cdf [NTDLL:LDR] SAL improvements and fixes
- Convert some notations to SAL2
- "Name" parameter in LdrGetProcedureAddress/LdrpGetProcedureAddress should be optional
- "DllCharacteristics" parameter in LdrGetDllHandle should be optional
2023-10-04 12:26:18 +03:00
213 changed files with 14512 additions and 3229 deletions

View File

@@ -29,18 +29,6 @@ CCanvasWindow::~CCanvasWindow()
::DeleteObject(m_ahbmCached[1]);
}
VOID CCanvasWindow::drawZoomFrame(INT mouseX, INT mouseY)
{
// FIXME: Draw the border of the area that is to be zoomed in
CRect rc;
GetImageRect(rc);
ImageToCanvas(rc);
HDC hdc = GetDC();
DrawXorRect(hdc, &rc);
ReleaseDC(hdc);
}
RECT CCanvasWindow::GetBaseRect()
{
CRect rcBase;
@@ -101,31 +89,88 @@ HITTEST CCanvasWindow::CanvasHitTest(POINT pt)
return getSizeBoxHitTest(pt, &rcBase);
}
VOID CCanvasWindow::getNewZoomRect(CRect& rcView, INT newZoom, CPoint ptTarget)
{
CRect rcImage;
GetImageRect(rcImage);
ImageToCanvas(rcImage);
// Calculate the zoom rectangle
INT oldZoom = toolsModel.GetZoom();
GetClientRect(rcView);
LONG cxView = rcView.right * oldZoom / newZoom, cyView = rcView.bottom * oldZoom / newZoom;
::SetRect(&rcView, ptTarget.x - cxView / 2, ptTarget.y - cyView / 2,
ptTarget.x + cxView / 2, ptTarget.y + cyView / 2);
// Shift the rectangle if necessary
INT dx = 0, dy = 0;
if (rcView.left < rcImage.left)
dx = rcImage.left - rcView.left;
else if (rcImage.right < rcView.right)
dx = rcImage.right - rcView.right;
if (rcView.top < rcImage.top)
dy = rcImage.top - rcView.top;
else if (rcImage.bottom < rcView.bottom)
dy = rcImage.bottom - rcView.bottom;
rcView.OffsetRect(dx, dy);
rcView.IntersectRect(&rcView, &rcImage);
}
VOID CCanvasWindow::zoomTo(INT newZoom, LONG left, LONG top)
{
POINT pt = { left, top };
CanvasToImage(pt);
toolsModel.SetZoom(newZoom);
ImageToCanvas(pt);
pt.x += GetScrollPos(SB_HORZ);
pt.y += GetScrollPos(SB_VERT);
updateScrollRange();
updateScrollPos(pt.x, pt.y);
Invalidate(TRUE);
}
VOID CCanvasWindow::DoDraw(HDC hDC, RECT& rcClient, RECT& rcPaint)
{
// This is the target area we have to draw on
CRect rcCanvasDraw;
rcCanvasDraw.IntersectRect(&rcClient, &rcPaint);
// We use a memory bitmap to reduce flickering
HDC hdcMem0 = ::CreateCompatibleDC(hDC);
m_ahbmCached[0] = CachedBufferDIB(m_ahbmCached[0], rcClient.right, rcClient.bottom);
HGDIOBJ hbm0Old = ::SelectObject(hdcMem0, m_ahbmCached[0]);
// Fill the background on hdcMem0
::FillRect(hdcMem0, &rcPaint, (HBRUSH)(COLOR_APPWORKSPACE + 1));
::FillRect(hdcMem0, &rcCanvasDraw, (HBRUSH)(COLOR_APPWORKSPACE + 1));
// Draw the sizeboxes if necessary
RECT rcBase = GetBaseRect();
if (!selectionModel.m_bShow && !::IsWindowVisible(textEditWindow))
drawSizeBoxes(hdcMem0, &rcBase, FALSE, &rcPaint);
drawSizeBoxes(hdcMem0, &rcBase, FALSE, &rcCanvasDraw);
// Calculate image size
CRect rcImage;
GetImageRect(rcImage);
SIZE sizeImage = { imageModel.GetWidth(), imageModel.GetHeight() };
// Calculate the target area on the image
CRect rcImageDraw = rcCanvasDraw;
CanvasToImage(rcImageDraw);
rcImageDraw.IntersectRect(&rcImageDraw, &rcImage);
// Consider rounding down by zooming
rcImageDraw.right += 1;
rcImageDraw.bottom += 1;
// hdcMem1 <-- imageModel
HDC hdcMem1 = ::CreateCompatibleDC(hDC);
m_ahbmCached[1] = CachedBufferDIB(m_ahbmCached[1], sizeImage.cx, sizeImage.cy);
HGDIOBJ hbm1Old = ::SelectObject(hdcMem1, m_ahbmCached[1]);
BitBlt(hdcMem1, 0, 0, sizeImage.cx, sizeImage.cy, imageModel.GetDC(), 0, 0, SRCCOPY);
::BitBlt(hdcMem1, rcImageDraw.left, rcImageDraw.top, rcImageDraw.Width(), rcImageDraw.Height(),
imageModel.GetDC(), rcImageDraw.left, rcImageDraw.top, SRCCOPY);
// Draw overlay #1 on hdcMem1
toolsModel.OnDrawOverlayOnImage(hdcMem1);
@@ -170,17 +215,15 @@ VOID CCanvasWindow::DoDraw(HDC hDC, RECT& rcClient, RECT& rcPaint)
DrawXorRect(hdcMem0, &m_rcResizing);
// Transfer the bits (hDC <-- hdcMem0)
::BitBlt(hDC,
rcPaint.left, rcPaint.top,
rcPaint.right - rcPaint.left, rcPaint.bottom - rcPaint.top,
hdcMem0, rcPaint.left, rcPaint.top, SRCCOPY);
::BitBlt(hDC, rcCanvasDraw.left, rcCanvasDraw.top, rcCanvasDraw.Width(), rcCanvasDraw.Height(),
hdcMem0, rcCanvasDraw.left, rcCanvasDraw.top, SRCCOPY);
// Clean up hdcMem0
::SelectObject(hdcMem0, hbm0Old);
::DeleteDC(hdcMem0);
}
VOID CCanvasWindow::Update(HWND hwndFrom)
VOID CCanvasWindow::updateScrollRange()
{
CRect rcClient;
GetClientRect(&rcClient);
@@ -211,10 +254,16 @@ VOID CCanvasWindow::Update(HWND hwndFrom)
SetScrollInfo(SB_VERT, &si);
}
VOID CCanvasWindow::updateScrollPos(INT x, INT y)
{
SetScrollPos(SB_HORZ, x);
SetScrollPos(SB_VERT, y);
}
LRESULT CCanvasWindow::OnSize(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
if (m_hWnd)
Update(m_hWnd);
updateScrollRange();
return 0;
}
@@ -229,7 +278,7 @@ VOID CCanvasWindow::OnHVScroll(WPARAM wParam, INT fnBar)
{
case SB_THUMBTRACK:
case SB_THUMBPOSITION:
si.nPos = HIWORD(wParam);
si.nPos = (SHORT)HIWORD(wParam);
break;
case SB_LINELEFT:
si.nPos -= 5;
@@ -244,9 +293,9 @@ VOID CCanvasWindow::OnHVScroll(WPARAM wParam, INT fnBar)
si.nPos += si.nPage;
break;
}
si.nPos = max(min(si.nPos, si.nMax), si.nMin);
SetScrollInfo(fnBar, &si);
Update(m_hWnd);
Invalidate(FALSE); // FIXME: Flicker
Invalidate();
}
LRESULT CCanvasWindow::OnHScroll(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
@@ -261,10 +310,21 @@ LRESULT CCanvasWindow::OnVScroll(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL&
return 0;
}
LRESULT CCanvasWindow::OnLRButtonDown(BOOL bLeftButton, UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
LRESULT CCanvasWindow::OnButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
POINT pt = { GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam) };
m_nMouseDownMsg = nMsg;
BOOL bLeftButton = (nMsg == WM_LBUTTONDOWN);
if (nMsg == WM_MBUTTONDOWN)
{
m_ptOrig = pt;
SetCapture();
::SetCursor(::LoadCursor(g_hinstExe, MAKEINTRESOURCE(IDC_HANDDRAG)));
return 0;
}
HITTEST hitSelection = SelectionHitTest(pt);
if (hitSelection != HIT_NONE)
{
@@ -284,7 +344,7 @@ LRESULT CCanvasWindow::OnLRButtonDown(BOOL bLeftButton, UINT nMsg, WPARAM wParam
}
else
{
canvasWindow.ClientToScreen(&pt);
ClientToScreen(&pt);
mainWindow.TrackPopupMenu(pt, 0);
}
return 0;
@@ -298,13 +358,13 @@ LRESULT CCanvasWindow::OnLRButtonDown(BOOL bLeftButton, UINT nMsg, WPARAM wParam
case TOOL_BEZIER:
case TOOL_SHAPE:
toolsModel.OnCancelDraw();
canvasWindow.Invalidate();
Invalidate();
break;
case TOOL_FREESEL:
case TOOL_RECTSEL:
toolsModel.OnFinishDraw();
canvasWindow.Invalidate();
Invalidate();
break;
default:
@@ -337,45 +397,40 @@ LRESULT CCanvasWindow::OnLRButtonDown(BOOL bLeftButton, UINT nMsg, WPARAM wParam
return 0;
}
LRESULT CCanvasWindow::OnLButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
return OnLRButtonDown(TRUE, nMsg, wParam, lParam, bHandled);
}
LRESULT CCanvasWindow::OnRButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
return OnLRButtonDown(FALSE, nMsg, wParam, lParam, bHandled);
}
LRESULT CCanvasWindow::OnLRButtonDblClk(BOOL bLeftButton, UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
LRESULT CCanvasWindow::OnButtonDblClk(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
POINT pt = { GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam) };
CanvasToImage(pt);
m_drawing = FALSE;
ReleaseCapture();
::ReleaseCapture();
m_nMouseDownMsg = 0;
toolsModel.OnButtonDown(bLeftButton, pt.x, pt.y, TRUE);
toolsModel.OnButtonDown(nMsg == WM_LBUTTONDBLCLK, pt.x, pt.y, TRUE);
toolsModel.resetTool();
Invalidate(FALSE);
return 0;
}
LRESULT CCanvasWindow::OnLButtonDblClk(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
return OnLRButtonDblClk(TRUE, nMsg, wParam, lParam, bHandled);
}
LRESULT CCanvasWindow::OnRButtonDblClk(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
return OnLRButtonDblClk(FALSE, nMsg, wParam, lParam, bHandled);
}
LRESULT CCanvasWindow::OnMouseMove(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
POINT pt = { GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam) };
if (m_nMouseDownMsg == WM_MBUTTONDOWN)
{
INT x = GetScrollPos(SB_HORZ) - (pt.x - m_ptOrig.x);
INT y = GetScrollPos(SB_VERT) - (pt.y - m_ptOrig.y);
SendMessage(WM_HSCROLL, MAKEWPARAM(SB_THUMBPOSITION, x), 0);
SendMessage(WM_VSCROLL, MAKEWPARAM(SB_THUMBPOSITION, y), 0);
m_ptOrig = pt;
return 0;
}
CanvasToImage(pt);
if (toolsModel.GetActiveTool() == TOOL_ZOOM)
Invalidate();
if (m_hitSelection != HIT_NONE)
{
SelectionDragging(pt);
@@ -384,14 +439,6 @@ LRESULT CCanvasWindow::OnMouseMove(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL
if (!m_drawing || toolsModel.GetActiveTool() <= TOOL_AIRBRUSH)
{
if (toolsModel.GetActiveTool() == TOOL_ZOOM)
{
Invalidate(FALSE);
UpdateWindow();
CanvasToImage(pt);
drawZoomFrame(pt.x, pt.y);
}
TRACKMOUSEEVENT tme = { sizeof(tme) };
tme.dwFlags = TME_LEAVE;
tme.hwndTrack = m_hWnd;
@@ -400,8 +447,12 @@ LRESULT CCanvasWindow::OnMouseMove(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL
if (!m_drawing)
{
RECT rcImage;
GetImageRect(rcImage);
CString strCoord;
strCoord.Format(_T("%ld, %ld"), pt.x, pt.y);
if (::PtInRect(&rcImage, pt))
strCoord.Format(_T("%ld, %ld"), pt.x, pt.y);
::SendMessage(g_hStatusBar, SB_SETTEXT, 1, (LPARAM) (LPCTSTR) strCoord);
}
}
@@ -564,13 +615,16 @@ LRESULT CCanvasWindow::OnMouseMove(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL
return 0;
}
LRESULT CCanvasWindow::OnLRButtonUp(BOOL bLeftButton, UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
LRESULT CCanvasWindow::OnButtonUp(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
POINT pt = { GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam) };
CanvasToImage(pt);
::ReleaseCapture();
BOOL bLeftButton = (m_nMouseDownMsg == WM_LBUTTONDOWN);
m_nMouseDownMsg = 0;
if (m_drawing)
{
m_drawing = FALSE;
@@ -627,21 +681,11 @@ LRESULT CCanvasWindow::OnLRButtonUp(BOOL bLeftButton, UINT nMsg, WPARAM wParam,
m_hitCanvasSizeBox = HIT_NONE;
toolsModel.resetTool(); // resets the point-buffer of the polygon and bezier functions
Update(NULL);
updateScrollRange();
Invalidate(TRUE);
return 0;
}
LRESULT CCanvasWindow::OnLButtonUp(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
return OnLRButtonUp(TRUE, nMsg, wParam, lParam, bHandled);
}
LRESULT CCanvasWindow::OnRButtonUp(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
return OnLRButtonUp(FALSE, nMsg, wParam, lParam, bHandled);
}
LRESULT CCanvasWindow::OnSetCursor(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
if (CWaitCursor::IsWaiting())
@@ -650,6 +694,12 @@ LRESULT CCanvasWindow::OnSetCursor(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL
return 0;
}
if (m_nMouseDownMsg == WM_MBUTTONDOWN)
{
::SetCursor(::LoadCursor(g_hinstExe, MAKEINTRESOURCE(IDC_HANDDRAG)));
return 0;
}
POINT pt;
::GetCursorPos(&pt);
ScreenToClient(&pt);
@@ -712,6 +762,7 @@ LRESULT CCanvasWindow::OnKeyDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL&
{
// Cancel dragging
::ReleaseCapture();
m_nMouseDownMsg = 0;
m_hitCanvasSizeBox = HIT_NONE;
::SetRectEmpty(&m_rcResizing);
Invalidate(TRUE);

View File

@@ -20,13 +20,15 @@ public:
MESSAGE_HANDLER(WM_HSCROLL, OnHScroll)
MESSAGE_HANDLER(WM_VSCROLL, OnVScroll)
MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBkgnd)
MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown)
MESSAGE_HANDLER(WM_RBUTTONDOWN, OnRButtonDown)
MESSAGE_HANDLER(WM_LBUTTONDBLCLK, OnLButtonDblClk)
MESSAGE_HANDLER(WM_RBUTTONDBLCLK, OnRButtonDblClk)
MESSAGE_HANDLER(WM_LBUTTONDOWN, OnButtonDown)
MESSAGE_HANDLER(WM_RBUTTONDOWN, OnButtonDown)
MESSAGE_HANDLER(WM_MBUTTONDOWN, OnButtonDown)
MESSAGE_HANDLER(WM_LBUTTONDBLCLK, OnButtonDblClk)
MESSAGE_HANDLER(WM_RBUTTONDBLCLK, OnButtonDblClk)
MESSAGE_HANDLER(WM_KEYDOWN, OnKeyDown)
MESSAGE_HANDLER(WM_LBUTTONUP, OnLButtonUp)
MESSAGE_HANDLER(WM_RBUTTONUP, OnRButtonUp)
MESSAGE_HANDLER(WM_LBUTTONUP, OnButtonUp)
MESSAGE_HANDLER(WM_RBUTTONUP, OnButtonUp)
MESSAGE_HANDLER(WM_MBUTTONUP, OnButtonUp)
MESSAGE_HANDLER(WM_SETCURSOR, OnSetCursor)
MESSAGE_HANDLER(WM_MOUSEWHEEL, OnMouseWheel)
MESSAGE_HANDLER(WM_CANCELMODE, OnCancelMode)
@@ -42,7 +44,8 @@ public:
VOID cancelDrawing();
VOID finishDrawing();
VOID Update(HWND hwndFrom);
VOID updateScrollRange();
VOID updateScrollPos(INT x = 0, INT y = 0);
VOID ImageToCanvas(POINT& pt);
VOID ImageToCanvas(RECT& rc);
@@ -50,6 +53,8 @@ public:
VOID CanvasToImage(RECT& rc, BOOL bZoomed = FALSE);
VOID GetImageRect(RECT& rc);
VOID MoveSelection(INT xDelta, INT yDelta);
VOID getNewZoomRect(CRect& rcView, INT newZoom, CPoint ptTarget);
VOID zoomTo(INT newZoom, LONG left = 0, LONG top = 0);
protected:
HITTEST m_hitSelection;
@@ -62,7 +67,6 @@ protected:
RECT GetBaseRect();
VOID DoDraw(HDC hDC, RECT& rcClient, RECT& rcPaint);
VOID OnHVScroll(WPARAM wParam, INT fnBar);
VOID drawZoomFrame(INT mouseX, INT mouseY);
HITTEST SelectionHitTest(POINT ptImage);
VOID StartSelectionDrag(HITTEST hit, POINT ptImage);
@@ -74,14 +78,8 @@ protected:
LRESULT OnVScroll(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnEraseBkgnd(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnLButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnRButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnLButtonDblClk(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnRButtonDblClk(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnMouseMove(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnKeyDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnLButtonUp(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnRButtonUp(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnSetCursor(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnMouseWheel(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnCancelMode(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
@@ -89,7 +87,8 @@ protected:
LRESULT OnCtlColorEdit(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnPaletteModelColorChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnLRButtonDown(BOOL bLeftButton, UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnLRButtonDblClk(BOOL bLeftButton, UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnLRButtonUp(BOOL bLeftButton, UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
UINT m_nMouseDownMsg = 0;
LRESULT OnButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnButtonDblClk(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnButtonUp(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
};

View File

@@ -43,7 +43,6 @@ enum HITTEST // hit
/* FUNCTIONS ********************************************************/
BOOL zoomTo(int newZoom, int mouseX, int mouseY);
BOOL nearlyEqualPoints(INT x0, INT y0, INT x1, INT y1);
BOOL OpenMailer(HWND hWnd, LPCWSTR pszPathName);

View File

@@ -504,7 +504,7 @@ LRESULT CFontsDialog::OnCommand(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& b
UINT id = LOWORD(wParam);
UINT codeNotify = HIWORD(wParam);
HWND hwndToolbar = GetDlgItem(IDD_FONTSTOOLBAR);
BOOL bChecked = ::SendMessage(hwndToolbar, TB_ISBUTTONCHECKED, id, 0);
BOOL bChecked = (BOOL)::SendMessage(hwndToolbar, TB_ISBUTTONCHECKED, id, 0);
switch (id)
{

View File

@@ -231,8 +231,8 @@ HBITMAP InitializeImage(LPCWSTR name, LPWIN32_FIND_DATAW pFound, BOOL isFile)
return NULL;
HDC hScreenDC = ::GetDC(NULL);
g_xDpi = ::GetDeviceCaps(hScreenDC, LOGPIXELSX);
g_yDpi = ::GetDeviceCaps(hScreenDC, LOGPIXELSY);
g_xDpi = (float)::GetDeviceCaps(hScreenDC, LOGPIXELSX);
g_yDpi = (float)::GetDeviceCaps(hScreenDC, LOGPIXELSY);
::ReleaseDC(NULL, hScreenDC);
return SetBitmapAndInfo(hBitmap, name, pFound, isFile);
@@ -241,6 +241,7 @@ HBITMAP InitializeImage(LPCWSTR name, LPWIN32_FIND_DATAW pFound, BOOL isFile)
HBITMAP SetBitmapAndInfo(HBITMAP hBitmap, LPCWSTR name, LPWIN32_FIND_DATAW pFound, BOOL isFile)
{
// update image
canvasWindow.updateScrollPos();
imageModel.PushImageForUndo(hBitmap);
imageModel.ClearHistory();
@@ -274,8 +275,14 @@ HBITMAP DoLoadImageFile(HWND hwnd, LPCWSTR name, BOOL fIsMainFile)
CImageDx img;
float xDpi = 0, yDpi = 0;
HRESULT hr = img.LoadDx(name, &xDpi, &yDpi);
if (FAILED(hr) && fIsMainFile)
{
imageModel.ClearHistory();
hr = img.LoadDx(name, &xDpi, &yDpi);
}
if (FAILED(hr))
{
ATLTRACE("hr: 0x%08lX\n", hr);
ShowError(IDS_LOADERRORTEXT, name);
return NULL;
}
@@ -287,8 +294,8 @@ HBITMAP DoLoadImageFile(HWND hwnd, LPCWSTR name, BOOL fIsMainFile)
if (xDpi <= 0 || yDpi <= 0)
{
HDC hDC = ::GetDC(NULL);
xDpi = ::GetDeviceCaps(hDC, LOGPIXELSX);
yDpi = ::GetDeviceCaps(hDC, LOGPIXELSY);
xDpi = (float)::GetDeviceCaps(hDC, LOGPIXELSX);
yDpi = (float)::GetDeviceCaps(hDC, LOGPIXELSY);
::ReleaseDC(NULL, hDC);
}

View File

@@ -15,9 +15,13 @@ ImageModel imageModel;
void ImageModel::NotifyImageChanged()
{
if (canvasWindow.IsWindow())
canvasWindow.Invalidate(FALSE);
{
canvasWindow.updateScrollRange();
canvasWindow.Invalidate();
}
if (miniature.IsWindow())
miniature.Invalidate(FALSE);
miniature.Invalidate();
}
ImageModel::ImageModel()
@@ -99,6 +103,15 @@ void ImageModel::ResetToPrevious()
void ImageModel::ClearHistory()
{
for (int i = 0; i < HISTORYSIZE; ++i)
{
if (m_hBms[i] && i != m_currInd)
{
::DeleteObject(m_hBms[i]);
m_hBms[i] = NULL;
}
}
m_undoSteps = 0;
m_redoSteps = 0;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

View File

@@ -8,7 +8,6 @@
#include "precomp.h"
#include <mapi.h>
#include <mapicode.h>
POINT g_ptStart, g_ptEnd;
BOOL g_askBeforeEnlarging = FALSE; // TODO: initialize from registry
@@ -299,11 +298,6 @@ HWND CMainWindow::DoCreate()
INT WINAPI
_tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, INT nCmdShow)
{
#ifdef _DEBUG
// Report any memory leaks on exit
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
#endif
g_hinstExe = hInstance;
// Initialize common controls library

View File

@@ -421,6 +421,7 @@ RestrictDrawDirection(DIRECTION dir, LONG x0, LONG y0, LONG& x1, LONG& y1)
struct SmoothDrawTool : ToolBase
{
DIRECTION m_direction = NO_DIRECTION;
BOOL m_bShiftDown = FALSE;
SmoothDrawTool(TOOLTYPE type) : ToolBase(type)
{
@@ -433,11 +434,12 @@ struct SmoothDrawTool : ToolBase
m_direction = NO_DIRECTION;
imageModel.PushImageForUndo();
imageModel.NotifyImageChanged();
m_bShiftDown = (::GetKeyState(VK_SHIFT) & 0x8000); // Is Shift key pressed?
}
BOOL OnMouseMove(BOOL bLeftButton, LONG& x, LONG& y) override
{
if (::GetKeyState(VK_SHIFT) < 0) // Shift key is pressed
if (m_bShiftDown)
{
if (m_direction == NO_DIRECTION)
{
@@ -450,14 +452,10 @@ struct SmoothDrawTool : ToolBase
}
else
{
if (m_direction != NO_DIRECTION)
{
m_direction = NO_DIRECTION;
draw(bLeftButton, x, y);
g_ptStart.x = g_ptEnd.x = x;
g_ptStart.y = g_ptEnd.y = y;
return TRUE;
}
draw(bLeftButton, x, y);
g_ptStart.x = g_ptEnd.x = x;
g_ptStart.y = g_ptEnd.y = y;
return TRUE;
}
draw(bLeftButton, x, y);
@@ -467,7 +465,7 @@ struct SmoothDrawTool : ToolBase
BOOL OnButtonUp(BOOL bLeftButton, LONG& x, LONG& y) override
{
if (m_direction != NO_DIRECTION)
if (m_bShiftDown && m_direction != NO_DIRECTION)
{
RestrictDrawDirection(m_direction, g_ptStart.x, g_ptStart.y, x, y);
}
@@ -565,26 +563,67 @@ struct ColorTool : ToolBase
// TOOL_ZOOM
struct ZoomTool : ToolBase
{
BOOL m_bZoomed = FALSE;
ZoomTool() : ToolBase(TOOL_ZOOM)
{
}
BOOL getNewZoomRect(CRect& rcView, INT newZoom);
void OnDrawOverlayOnCanvas(HDC hdc) override
{
CRect rcView;
INT oldZoom = toolsModel.GetZoom();
if (oldZoom < MAX_ZOOM && getNewZoomRect(rcView, oldZoom * 2))
DrawXorRect(hdc, &rcView);
}
void OnButtonDown(BOOL bLeftButton, LONG x, LONG y, BOOL bDoubleClick) override
{
imageModel.PushImageForUndo();
INT newZoom, oldZoom = toolsModel.GetZoom();
if (bLeftButton)
{
if (toolsModel.GetZoom() < MAX_ZOOM)
zoomTo(toolsModel.GetZoom() * 2, x, y);
}
newZoom = (oldZoom < MAX_ZOOM) ? (oldZoom * 2) : MIN_ZOOM;
else
newZoom = (oldZoom > MIN_ZOOM) ? (oldZoom / 2) : MAX_ZOOM;
m_bZoomed = FALSE;
if (oldZoom != newZoom)
{
if (toolsModel.GetZoom() > MIN_ZOOM)
zoomTo(toolsModel.GetZoom() / 2, x, y);
CRect rcView;
if (getNewZoomRect(rcView, newZoom))
{
canvasWindow.zoomTo(newZoom, rcView.left, rcView.top);
m_bZoomed = TRUE;
}
}
}
BOOL OnButtonUp(BOOL bLeftButton, LONG& x, LONG& y) override
{
if (m_bZoomed)
toolsModel.SetActiveTool(toolsModel.GetOldActiveTool());
return TRUE;
}
};
BOOL ZoomTool::getNewZoomRect(CRect& rcView, INT newZoom)
{
CPoint pt;
::GetCursorPos(&pt);
canvasWindow.ScreenToClient(&pt);
canvasWindow.getNewZoomRect(rcView, newZoom, pt);
CRect rc;
canvasWindow.GetImageRect(rc);
canvasWindow.ImageToCanvas(rc);
return rc.PtInRect(pt);
}
// TOOL_PEN
struct PenTool : SmoothDrawTool
{
@@ -762,7 +801,8 @@ struct TextTool : ToolBase
void OnFinishDraw() override
{
if (textEditWindow.GetWindowTextLength() > 0)
if (::IsWindowVisible(textEditWindow) &&
textEditWindow.GetWindowTextLength() > 0)
{
imageModel.PushImageForUndo();
draw(m_hdc);

View File

@@ -26,10 +26,6 @@
#include <shellapi.h>
#include <htmlhelp.h>
#include "atlimagedx.h"
#ifdef _DEBUG
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
#endif
#include <debug.h>

View File

@@ -22,6 +22,7 @@
#define IDC_ZOOM 532
#define IDC_PEN 533
#define IDC_AIRBRUSH 534
#define IDC_HANDDRAG 535
#define IDI_HORZSTRETCH 535
#define IDI_VERTSTRETCH 536

View File

@@ -33,6 +33,7 @@ IDC_COLOR ICON "icons/color_cur.ico"
IDC_ZOOM ICON "icons/zoom_cur.ico"
IDC_PEN ICON "icons/pen_cur.ico"
IDC_AIRBRUSH ICON "icons/airbrush_cur.ico"
IDC_HANDDRAG CURSOR "icons/handdrag.cur"
IDI_HORZSTRETCH ICON "icons/horzstretch.ico"
IDI_VERTSTRETCH ICON "icons/vertstretch.ico"

View File

@@ -340,8 +340,8 @@ void CTextEditWindow::UpdateFont()
ZeroMemory(&lf, sizeof(lf));
lf.lfCharSet = DEFAULT_CHARSET; // registrySettings.CharSet; // Ignore
lf.lfWeight = (registrySettings.Bold ? FW_BOLD : FW_NORMAL);
lf.lfItalic = registrySettings.Italic;
lf.lfUnderline = registrySettings.Underline;
lf.lfItalic = (BYTE)registrySettings.Italic;
lf.lfUnderline = (BYTE)registrySettings.Underline;
lstrcpyn(lf.lfFaceName, registrySettings.strFontName, _countof(lf.lfFaceName));
HDC hdc = GetDC();

View File

@@ -34,7 +34,12 @@ CPaintToolBar::ToolBarWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
BOOL CPaintToolBar::DoCreate(HWND hwndParent)
{
// NOTE: The horizontal line above the toolbar is hidden by CCS_NODIVIDER style.
RECT toolbarPos = { 0, 0, CX_TOOLBAR, CY_TOOLBAR };
RECT toolbarPos =
{
0, 0,
CX_TOOLBAR + 2 * GetSystemMetrics(SM_CXBORDER),
CY_TOOLBAR + 2 * GetSystemMetrics(SM_CYBORDER)
};
DWORD style = WS_CHILD | WS_VISIBLE | CCS_NOPARENTALIGN | CCS_VERT | CCS_NORESIZE |
TBSTYLE_TOOLTIPS | TBSTYLE_FLAT;
if (!CWindow::Create(TOOLBARCLASSNAME, hwndParent, toolbarPos, NULL, style))

View File

@@ -21,6 +21,10 @@
#define MARGIN1 3
#define MARGIN2 2
#define MAX_ZOOM_TRACK 6
#define MIN_ZOOM_TRACK 0
#define DEFAULT_ZOOM_TRACK 3
static const BYTE s_AirRadius[4] = { 5, 8, 3, 12 };
CToolSettingsWindow toolSettingsWindow;
@@ -277,7 +281,7 @@ VOID CToolSettingsWindow::drawBox(HDC hdc, LPCRECT prc)
}
}
LRESULT CToolSettingsWindow::OnCreate(UINT nMsg, WPARAM wParam, LPARAM lParam, WINBOOL& bHandled)
LRESULT CToolSettingsWindow::OnCreate(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
/* preloading the draw transparent/nontransparent icons for later use */
m_hNontranspIcon = (HICON)LoadImage(g_hinstExe, MAKEINTRESOURCE(IDI_NONTRANSPARENT),
@@ -285,10 +289,13 @@ LRESULT CToolSettingsWindow::OnCreate(UINT nMsg, WPARAM wParam, LPARAM lParam, W
m_hTranspIcon = (HICON)LoadImage(g_hinstExe, MAKEINTRESOURCE(IDI_TRANSPARENT),
IMAGE_ICON, CX_TRANS_ICON, CY_TRANS_ICON, LR_DEFAULTCOLOR);
RECT trackbarZoomPos = {1, 1, 1 + 40, 1 + 64};
RECT trackbarZoomPos, rect2;
calculateTwoBoxes(trackbarZoomPos, rect2);
::InflateRect(&trackbarZoomPos, -1, -1);
trackbarZoom.Create(TRACKBAR_CLASS, m_hWnd, trackbarZoomPos, NULL, WS_CHILD | TBS_VERT | TBS_AUTOTICKS);
trackbarZoom.SendMessage(TBM_SETRANGE, (WPARAM) TRUE, MAKELPARAM(0, 6));
trackbarZoom.SendMessage(TBM_SETPOS, (WPARAM) TRUE, (LPARAM) 3);
trackbarZoom.SendMessage(TBM_SETRANGE, TRUE, MAKELPARAM(MIN_ZOOM_TRACK, MAX_ZOOM_TRACK));
trackbarZoom.SendMessage(TBM_SETPOS, TRUE, DEFAULT_ZOOM_TRACK);
return 0;
}
@@ -301,9 +308,30 @@ LRESULT CToolSettingsWindow::OnDestroy(UINT nMsg, WPARAM wParam, LPARAM lParam,
LRESULT CToolSettingsWindow::OnVScroll(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
if (!zoomTo(125 << trackbarZoom.SendMessage(TBM_GETPOS, 0, 0), 0, 0))
INT trackPos = MAX_ZOOM_TRACK - (INT)trackbarZoom.SendMessage(TBM_GETPOS, 0, 0);
canvasWindow.zoomTo(MIN_ZOOM << trackPos);
INT zoomRate = toolsModel.GetZoom();
CString strZoom;
if (zoomRate % 10 == 0)
strZoom.Format(_T("%d%%"), zoomRate / 10);
else
strZoom.Format(_T("%d.%d%%"), zoomRate / 10, zoomRate % 10);
::SendMessage(g_hStatusBar, SB_SETTEXT, 1, (LPARAM)(LPCTSTR)strZoom);
OnToolsModelZoomChanged(nMsg, wParam, lParam, bHandled);
return 0;
}
LRESULT CToolSettingsWindow::OnNotify(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
NMHDR *pnmhdr = (NMHDR*)lParam;
if (pnmhdr->code == NM_CUSTOMDRAW)
{
OnToolsModelZoomChanged(nMsg, wParam, lParam, bHandled);
NMCUSTOMDRAW *pCustomDraw = (NMCUSTOMDRAW*)pnmhdr;
pCustomDraw->uItemState &= ~CDIS_FOCUS; // Do not draw the focus
}
return 0;
}
@@ -330,9 +358,7 @@ LRESULT CToolSettingsWindow::OnPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BO
PAINTSTRUCT ps;
HDC hdc = BeginPaint(&ps);
if (toolsModel.GetActiveTool() == TOOL_ZOOM)
::DrawEdge(hdc, &rect1, BDR_SUNKENOUTER, BF_RECT);
else
if (toolsModel.GetActiveTool() != TOOL_ZOOM)
::DrawEdge(hdc, &rect1, BDR_SUNKENOUTER, BF_RECT | BF_MIDDLE);
if (toolsModel.GetActiveTool() >= TOOL_RECT)
@@ -458,7 +484,7 @@ LRESULT CToolSettingsWindow::OnToolsModelSettingsChanged(UINT nMsg, WPARAM wPara
LRESULT CToolSettingsWindow::OnToolsModelZoomChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
int tbPos = 0;
int tbPos = MIN_ZOOM_TRACK;
int tempZoom = toolsModel.GetZoom();
while (tempZoom > MIN_ZOOM)
@@ -466,6 +492,7 @@ LRESULT CToolSettingsWindow::OnToolsModelZoomChanged(UINT nMsg, WPARAM wParam, L
tbPos++;
tempZoom = tempZoom >> 1;
}
trackbarZoom.SendMessage(TBM_SETPOS, (WPARAM) TRUE, (LPARAM) tbPos);
trackbarZoom.SendMessage(TBM_SETPOS, TRUE, MAX_ZOOM_TRACK - tbPos);
return 0;
}

View File

@@ -17,6 +17,7 @@ public:
MESSAGE_HANDLER(WM_VSCROLL, OnVScroll)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown)
MESSAGE_HANDLER(WM_NOTIFY, OnNotify)
MESSAGE_HANDLER(WM_TOOLSMODELTOOLCHANGED, OnToolsModelToolChanged)
MESSAGE_HANDLER(WM_TOOLSMODELSETTINGSCHANGED, OnToolsModelSettingsChanged)
MESSAGE_HANDLER(WM_TOOLSMODELZOOMCHANGED, OnToolsModelZoomChanged)
@@ -43,6 +44,7 @@ private:
LRESULT OnVScroll(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnLButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnNotify(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnToolsModelToolChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnToolsModelSettingsChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnToolsModelZoomChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);

View File

@@ -41,37 +41,6 @@ static HWND DoHtmlHelpW(HWND hwndCaller, LPCWSTR pszFile, UINT uCommand, DWORD_P
return s_pHtmlHelpW(hwndCaller, pszFile, uCommand, dwData);
}
BOOL
zoomTo(int newZoom, int mouseX, int mouseY)
{
int x, y, w, h;
RECT clientRectScrollbox;
canvasWindow.GetClientRect(&clientRectScrollbox);
RECT clientRectImageArea;
::SetRect(&clientRectImageArea, 0, 0, imageModel.GetWidth(), imageModel.GetHeight());
Zoomed(clientRectImageArea);
w = clientRectImageArea.right * newZoom / toolsModel.GetZoom();
h = clientRectImageArea.bottom * newZoom / toolsModel.GetZoom();
if (!w || !h)
{
return FALSE;
}
w = clientRectImageArea.right * clientRectScrollbox.right / w;
h = clientRectImageArea.bottom * clientRectScrollbox.bottom / h;
x = max(0, min(clientRectImageArea.right - w, mouseX - w / 2)) * newZoom / toolsModel.GetZoom();
y = max(0, min(clientRectImageArea.bottom - h, mouseY - h / 2)) * newZoom / toolsModel.GetZoom();
toolsModel.SetZoom(newZoom);
canvasWindow.Invalidate(TRUE);
canvasWindow.SendMessage(WM_HSCROLL, MAKEWPARAM(SB_THUMBPOSITION, x), 0);
canvasWindow.SendMessage(WM_VSCROLL, MAKEWPARAM(SB_THUMBPOSITION, y), 0);
return TRUE;
}
void CMainWindow::alignChildrenToMainWindow()
{
RECT clientRect, rc;
@@ -216,20 +185,20 @@ LRESULT CMainWindow::OnMouseWheel(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL&
{
INT zDelta = (SHORT)HIWORD(wParam);
if (::GetAsyncKeyState(VK_CONTROL) < 0)
if (::GetKeyState(VK_CONTROL) < 0) // Ctrl+Wheel
{
if (zDelta < 0)
{
if (toolsModel.GetZoom() > MIN_ZOOM)
zoomTo(toolsModel.GetZoom() / 2, 0, 0);
canvasWindow.zoomTo(toolsModel.GetZoom() / 2);
}
else if (zDelta > 0)
{
if (toolsModel.GetZoom() < MAX_ZOOM)
zoomTo(toolsModel.GetZoom() * 2, 0, 0);
canvasWindow.zoomTo(toolsModel.GetZoom() * 2);
}
}
else
else // Wheel only
{
UINT nCount = 3;
if (::GetAsyncKeyState(VK_SHIFT) < 0)
@@ -921,6 +890,7 @@ LRESULT CMainWindow::OnCommand(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bH
case IDM_IMAGEROTATEMIRROR:
{
CWaitCursor waitCursor;
canvasWindow.updateScrollPos();
switch (mirrorRotateDialog.DoModal(mainWindow.m_hWnd))
{
case 1: /* flip horizontally */
@@ -1053,25 +1023,25 @@ LRESULT CMainWindow::OnCommand(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bH
break;
case IDM_VIEWZOOM125:
zoomTo(125, 0, 0);
canvasWindow.zoomTo(125);
break;
case IDM_VIEWZOOM25:
zoomTo(250, 0, 0);
canvasWindow.zoomTo(250);
break;
case IDM_VIEWZOOM50:
zoomTo(500, 0, 0);
canvasWindow.zoomTo(500);
break;
case IDM_VIEWZOOM100:
zoomTo(1000, 0, 0);
canvasWindow.zoomTo(1000);
break;
case IDM_VIEWZOOM200:
zoomTo(2000, 0, 0);
canvasWindow.zoomTo(2000);
break;
case IDM_VIEWZOOM400:
zoomTo(4000, 0, 0);
canvasWindow.zoomTo(4000);
break;
case IDM_VIEWZOOM800:
zoomTo(8000, 0, 0);
canvasWindow.zoomTo(8000);
break;
case IDM_VIEWFULLSCREEN:

View File

@@ -564,11 +564,6 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE prev, LPTSTR cmdline, int sh
static const TCHAR className[] = _T("Notepad");
static const TCHAR winName[] = _T("Notepad");
#ifdef _DEBUG
/* Report any memory leaks on exit */
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
#endif
switch (GetUserDefaultUILanguage())
{
case MAKELANGID(LANG_HEBREW, SUBLANG_DEFAULT):

View File

@@ -25,10 +25,6 @@
#include <tchar.h>
#include <stdlib.h>
#include <malloc.h>
#ifdef _DEBUG
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
#endif
#include "dialog.h"
#include "notepad_res.h"

View File

@@ -205,11 +205,6 @@ int WINAPI wWinMain(HINSTANCE hInstance,
UNREFERENCED_PARAMETER(hPrevInstance);
#ifdef _DEBUG
/* Report any memory leaks on exit */
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
#endif
/* Initialize global strings */
LoadStringW(hInstance, IDS_APP_TITLE, szTitle, ARRAY_SIZE(szTitle));
LoadStringW(hInstance, IDC_REGEDIT_FRAME, szFrameClass, ARRAY_SIZE(szFrameClass));

View File

@@ -11,10 +11,6 @@
#include <shellapi.h>
#include <strsafe.h>
#include <stdlib.h>
#ifdef _DEBUG
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
#endif
#include "main.h"
#include "hexedit.h"

View File

@@ -136,7 +136,7 @@ BEGIN
END
MENUITEM "Установяване на с&родство...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -136,7 +136,7 @@ BEGIN
END
MENUITEM "Nastavit &afinitu...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -136,7 +136,7 @@ BEGIN
END
MENUITEM "Sæt &Affinitet...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -127,7 +127,7 @@ BEGIN
MENUITEM "End Process &Tree", ID_PROCESS_PAGE_ENDPROCESSTREE
MENUITEM "&Debug", ID_PROCESS_PAGE_DEBUG
MENUITEM SEPARATOR
POPUP "Set P&riority"
POPUP "Set &Priority"
BEGIN
MENUITEM "&Realtime", ID_PROCESS_PAGE_SETPRIORITY_REALTIME
MENUITEM "&High", ID_PROCESS_PAGE_SETPRIORITY_HIGH
@@ -138,7 +138,7 @@ BEGIN
END
MENUITEM "Set &Affinity...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -125,7 +125,7 @@ BEGIN
MENUITEM "End Process &Tree", ID_PROCESS_PAGE_ENDPROCESSTREE
MENUITEM "&Debug", ID_PROCESS_PAGE_DEBUG
MENUITEM SEPARATOR
POPUP "Set P&riority"
POPUP "Set &Priority"
BEGIN
MENUITEM "&Realtime", ID_PROCESS_PAGE_SETPRIORITY_REALTIME
MENUITEM "&High", ID_PROCESS_PAGE_SETPRIORITY_HIGH
@@ -136,7 +136,7 @@ BEGIN
END
MENUITEM "Set &Affinity...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -138,7 +138,7 @@ BEGIN
END
MENUITEM "Establecer &afinidad...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -142,7 +142,7 @@ BEGIN
END
MENUITEM "Määra &ühtivus...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "Prop&erties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -138,7 +138,7 @@ BEGIN
END
MENUITEM "הגדרת &קירבה", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -139,7 +139,7 @@ BEGIN
MENUITEM "&Processzorok használata...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Tulajdonságok", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "Fájl &helyének megnyitása", ID_PROCESS_PAGE_OPENFILELOCATION
MENUITEM "Fájl h&elyének megnyitása", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -138,7 +138,7 @@ BEGIN
END
MENUITEM "Setel &Afinitas...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -136,7 +136,7 @@ BEGIN
END
MENUITEM "Definisci &Affinità...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -136,7 +136,7 @@ BEGIN
END
MENUITEM "関係の設定(&A)...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -138,7 +138,7 @@ BEGIN
END
MENUITEM "선호도 설정(&A)", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -15,7 +15,7 @@ BEGIN
MENUITEM "&Verbergen indien geminimaliseerd", ID_OPTIONS_HIDEWHENMINIMIZED, CHECKED
MENUITEM "16-&bits taken weergeven", ID_OPTIONS_SHOW16BITTASKS, CHECKED
END
POPUP "&Beeld"
POPUP "B&eeld"
BEGIN
MENUITEM "&Nu vernieuwen", ID_VIEW_REFRESH
POPUP "Bijwerk&snelheid"
@@ -121,11 +121,11 @@ IDR_PROCESS_PAGE_CONTEXT MENU
BEGIN
POPUP "DUMMY"
BEGIN
MENUITEM "&Proces beëindigen", ID_PROCESS_PAGE_ENDPROCESS
MENUITEM "Pro&ces beëindigen", ID_PROCESS_PAGE_ENDPROCESS
MENUITEM "Process&tructuur beëindigen", ID_PROCESS_PAGE_ENDPROCESSTREE
MENUITEM "&Fouten opsporen", ID_PROCESS_PAGE_DEBUG
MENUITEM SEPARATOR
POPUP "P&rioriteit instellen"
POPUP "&Prioriteit instellen"
BEGIN
MENUITEM "&Realtime", ID_PROCESS_PAGE_SETPRIORITY_REALTIME
MENUITEM "&Hoog", ID_PROCESS_PAGE_SETPRIORITY_HIGH
@@ -136,7 +136,7 @@ BEGIN
END
MENUITEM "&Affiniteit instellen...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -136,7 +136,7 @@ BEGIN
END
MENUITEM "Sett &tiltrekning ...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -143,7 +143,7 @@ BEGIN
END
MENUITEM "Ustaw &koligację...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -136,7 +136,7 @@ BEGIN
END
MENUITEM "Definir &afinidade...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -1,4 +1,4 @@
/* Translation and UTF-8 Conversion by Gabriel Aguiar(fgsoftware1) <fgygh5804@gmail.com,fgsoftwarestudio@gmail.com> (July, 2021) */
/* TRANSLATOR: 2021 Gabriel Aguiar <fgygh5804@gmail.com,fgsoftwarestudio@gmail.com> */
LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
@@ -138,7 +138,7 @@ BEGIN
END
MENUITEM "Definir &afinidade...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Propriedades", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&ropriedades", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Abrir localização do ficheiro", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -141,7 +141,7 @@ BEGIN
END
MENUITEM "A&finitate…", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -138,7 +138,7 @@ BEGIN
END
MENUITEM "Nastaviť &afinitu...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -139,7 +139,7 @@ BEGIN
END
MENUITEM "Vendos prirje...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -138,7 +138,7 @@ BEGIN
END
MENUITEM "Välj &källa (FIXME)...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -138,7 +138,7 @@ BEGIN
END
MENUITEM "İ&lişkiyi Ayarla...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -136,7 +136,7 @@ BEGIN
END
MENUITEM "У&становити відповідність...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "P&roperties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -143,8 +143,8 @@ BEGIN
END
MENUITEM "关系设置(&A)...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
MENUITEM "Properties(&R)", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "Open File Location(&O)", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -144,8 +144,8 @@ BEGIN
END
MENUITEM "親和性設定(&A)...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
MENUITEM "Properties(&R)", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "Open File Location(&O)", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -144,8 +144,8 @@ BEGIN
END
MENUITEM "親和性設定(&A)...", ID_PROCESS_PAGE_SETAFFINITY
MENUITEM SEPARATOR
MENUITEM "&Properties", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "&Open File Location", ID_PROCESS_PAGE_OPENFILELOCATION
MENUITEM "Properties(&R)", ID_PROCESS_PAGE_PROPERTIES
MENUITEM "Open File Location(&O)", ID_PROCESS_PAGE_OPENFILELOCATION
END
END

View File

@@ -1086,6 +1086,39 @@ FileCopyCallback(PVOID Context,
return FILEOP_DOIT;
}
#if 0
static VOID
__cdecl
RegistryStatus(IN REGISTRY_STATUS RegStatus, ...)
{
/* WARNING: Please keep this lookup table in sync with the resources! */
static const UINT StringIDs[] =
{
STRING_DONE, /* Success */
STRING_REGHIVEUPDATE, /* RegHiveUpdate */
STRING_IMPORTFILE, /* ImportRegHive */
STRING_DISPLAYSETTINGSUPDATE, /* DisplaySettingsUpdate */
STRING_LOCALESETTINGSUPDATE, /* LocaleSettingsUpdate */
STRING_ADDKBLAYOUTS, /* KeybLayouts */
STRING_KEYBOARDSETTINGSUPDATE, /* KeybSettingsUpdate */
STRING_CODEPAGEINFOUPDATE, /* CodePageInfoUpdate */
};
va_list args;
if (RegStatus < ARRAYSIZE(StringIDs))
{
va_start(args, RegStatus);
CONSOLE_SetStatusTextV(MUIGetString(StringIDs[RegStatus]), args);
va_end(args);
}
else
{
CONSOLE_SetStatusText("Unknown status %d", RegStatus);
}
}
#endif
static DWORD
WINAPI
PrepareAndDoCopyThread(
@@ -1095,7 +1128,7 @@ PrepareAndDoCopyThread(
HWND hwndDlg = (HWND)Param;
HWND hWndProgress;
LONG_PTR dwStyle;
// ERROR_NUMBER ErrorNumber;
ERROR_NUMBER ErrorNumber;
BOOLEAN Success;
COPYCONTEXT CopyContext;
@@ -1191,6 +1224,28 @@ PrepareAndDoCopyThread(
/* Create the $winnt$.inf file */
InstallSetupInfFile(&pSetupData->USetupData);
/*
* Create or update the registry hives
*/
/* Set status text */
SetDlgItemTextW(hwndDlg, IDC_ACTIVITY,
pSetupData->RepairUpdateFlag
? L"Updating the registry..."
: L"Creating the registry...");
SetDlgItemTextW(hwndDlg, IDC_ITEM, L"");
ErrorNumber = UpdateRegistry(&pSetupData->USetupData,
pSetupData->RepairUpdateFlag,
pSetupData->PartitionList,
L'D', // DestinationDriveLetter, // FIXME!!
pSetupData->SelectedLanguageId,
NULL, //RegistryStatus
NULL /* SubstSettings */);
UNREFERENCED_PARAMETER(ErrorNumber);
/* We are done! Switch to the Terminate page */
PropSheet_SetCurSelByID(GetParent(hwndDlg), IDD_RESTARTPAGE);
return 0;

View File

@@ -944,59 +944,6 @@ static MUI_ENTRY bgBGSuccessPageEntries[] =
}
};
static MUI_ENTRY bgBGBootPageEntries[] =
{
{
4,
3,
" \210\255\341\342\240\253\240\346\250\357 \255\240 ReactOS " KERNEL_VERSION_STR " .",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"\210\255\341\342\240\253\250\340\240\255\245 \255\240 \247\240\340\245\246\244\240\351\240\342\240 \257\340\256\243\340\240\254\240 (bootloader) \255\240 \244\250\341\252\240 \255\240 \252\256\254\257\356\342\352\340\240 \242\250",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"\241\245 \255\245\343\341\257\245\350\255\256.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"\221\253\256\246\245\342\245 \344\256\340\254\240\342\250\340\240\255\240 \244\250\341\252\245\342\240 \242 \343\341\342\340\256\251\341\342\242\256 A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"\250 \255\240\342\250\341\255\245\342\245 ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
" ENTER = \217\340\256\244\352\253\246\250 F3 = \210\247\345\256\244",
TEXT_TYPE_STATUS,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY bgBGSelectPartitionEntries[] =
{
{
@@ -1481,7 +1428,7 @@ static MUI_ENTRY bgBGFileCopyEntries[] =
}
};
static MUI_ENTRY bgBGBootLoaderEntries[] =
static MUI_ENTRY bgBGBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1493,7 +1440,7 @@ static MUI_ENTRY bgBGBootLoaderEntries[] =
{
6,
8,
"\217\340\256\342\250\347\240 \250\255\341\342\240\253\250\340\240\255\245\342\256 \255\240 \247\240\340\245\246\244\240\351\240\342\240 \257\340\256\243\340\240\254\240.",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1549,6 +1496,13 @@ static MUI_ENTRY bgBGBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"\217\340\256\342\250\347\240 \250\255\341\342\240\253\250\340\240\255\245\342\256 \255\240 \247\240\340\245\246\244\240\351\240\342\240 \257\340\256\243\340\240\254\240.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1564,6 +1518,59 @@ static MUI_ENTRY bgBGBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY bgBGBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" \210\255\341\342\240\253\240\346\250\357 \255\240 ReactOS " KERNEL_VERSION_STR " .",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"\210\255\341\342\240\253\250\340\240\255\245 \255\240 \247\240\340\245\246\244\240\351\240\342\240 \257\340\256\243\340\240\254\240 (bootloader) \255\240 \244\250\341\252\240 \255\240 \252\256\254\257\356\342\352\340\240 \242\250",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"\241\245 \255\245\343\341\257\245\350\255\256.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"\221\253\256\246\245\342\245 \344\256\340\254\240\342\250\340\240\255\240 \244\250\341\252\245\342\240 \242 \343\341\342\340\256\251\341\342\242\256 A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"\250 \255\240\342\250\341\255\245\342\245 ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
" ENTER = \217\340\256\244\352\253\246\250 F3 = \210\247\345\256\244",
TEXT_TYPE_STATUS,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY bgBGKeyboardSettingsEntries[] =
{
{
@@ -2198,8 +2205,8 @@ MUI_PAGE bgBGPages[] =
bgBGKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
bgBGBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
bgBGBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2214,12 +2221,12 @@ MUI_PAGE bgBGPages[] =
bgBGSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
bgBGBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
bgBGBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
bgBGBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -928,83 +928,6 @@ static MUI_ENTRY bnBDSuccessPageEntries[] =
}
};
static MUI_ENTRY bnBDBootPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Setup ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Setup cannot install the bootloader on your computers",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"hardisk",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Please insert a formatted floppy disk in drive A: and",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"press ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Continue F3 = Quit",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY bnBDBootLoaderInstallPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Setup ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
0,
0,
"Installing the bootloader onto the media, please wait...",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY bnBDSelectPartitionEntries[] =
{
{
@@ -1488,7 +1411,7 @@ static MUI_ENTRY bnBDFileCopyEntries[] =
}
};
static MUI_ENTRY bnBDBootLoaderEntries[] =
static MUI_ENTRY bnBDBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1500,7 +1423,7 @@ static MUI_ENTRY bnBDBootLoaderEntries[] =
{
6,
8,
"Setup is installing the boot loader",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1528,7 +1451,7 @@ static MUI_ENTRY bnBDBootLoaderEntries[] =
{
8,
15,
"Skip install bootloader.",
"Skip bootloader installation.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1547,6 +1470,83 @@ static MUI_ENTRY bnBDBootLoaderEntries[] =
}
};
static MUI_ENTRY bnBDBootLoaderInstallPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Setup ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Setup is installing the bootloader.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"Installing the bootloader onto the media, please wait...",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY bnBDBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Setup ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Setup cannot install the bootloader on your computer's harddisk.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Please insert a formatted floppy disk in drive A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"and press ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Continue F3 = Quit",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY bnBDKeyboardSettingsEntries[] =
{
{
@@ -2180,8 +2180,8 @@ MUI_PAGE bnBDPages[] =
bnBDKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
bnBDBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
bnBDBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2196,12 +2196,12 @@ MUI_PAGE bnBDPages[] =
bnBDSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
bnBDBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
bnBDBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
bnBDBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -936,59 +936,6 @@ static MUI_ENTRY csCZSuccessPageEntries[] =
}
};
static MUI_ENTRY csCZBootPageEntries[] =
{
{
4,
3,
" Instalace ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Instala\237n\241 aplikace nedok\240\247e nainstalovat zavad\330\237 na tento",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"disk",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Vlo\247te naform\240tovanou disketu do jednotky A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"a stiskn\330te ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Pokra\237ovat F3 = Ukon\237it",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY csCZSelectPartitionEntries[] =
{
{
@@ -1472,7 +1419,7 @@ static MUI_ENTRY csCZFileCopyEntries[] =
}
};
static MUI_ENTRY csCZBootLoaderEntries[] =
static MUI_ENTRY csCZBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1484,7 +1431,7 @@ static MUI_ENTRY csCZBootLoaderEntries[] =
{
6,
8,
"Instalace nyn\241 nainstaluje zavad\330\237.",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1540,6 +1487,13 @@ static MUI_ENTRY csCZBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Instalace nyn\241 nainstaluje zavad\330\237.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1555,6 +1509,52 @@ static MUI_ENTRY csCZBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY csCZBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" Instalace ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Instala\237n\241 aplikace nedok\240\247e nainstalovat zavad\330\237 na tento disk.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Vlo\247te naform\240tovanou disketu do jednotky A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"a stiskn\330te ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Pokra\237ovat F3 = Ukon\237it",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY csCZKeyboardSettingsEntries[] =
{
{
@@ -2188,8 +2188,8 @@ MUI_PAGE csCZPages[] =
csCZKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
csCZBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
csCZBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2204,12 +2204,12 @@ MUI_PAGE csCZPages[] =
csCZSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
csCZBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
csCZBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
csCZBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -937,59 +937,6 @@ static MUI_ENTRY daDKSuccessPageEntries[] =
}
};
static MUI_ENTRY daDKBootPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " installationen ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Installationen kan ikke installere opstartsl\221seren p\206",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"din computers hardisk",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"S\221t en formateret diskette i drev A: og",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"tryk p\206 ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Forts\221t F3 = Afslut",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY daDKSelectPartitionEntries[] =
{
{
@@ -1466,7 +1413,7 @@ static MUI_ENTRY daDKFileCopyEntries[] =
}
};
static MUI_ENTRY daDKBootLoaderEntries[] =
static MUI_ENTRY daDKBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1478,7 +1425,7 @@ static MUI_ENTRY daDKBootLoaderEntries[] =
{
6,
8,
"Installatione af opstartsl\221ser",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1534,6 +1481,13 @@ static MUI_ENTRY daDKBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Installatione af opstartsl\221ser.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1549,6 +1503,59 @@ static MUI_ENTRY daDKBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY daDKBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " installationen ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Installationen kan ikke installere opstartsl\221seren p\206",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"din computers harddisk.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"S\221t en formateret diskette i drev A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"og tryk p\206 ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Forts\221t F3 = Afslut",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY daDKKeyboardSettingsEntries[] =
{
{
@@ -2183,8 +2190,8 @@ MUI_PAGE daDKPages[] =
daDKKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
daDKBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
daDKBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2199,12 +2206,12 @@ MUI_PAGE daDKPages[] =
daDKSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
daDKBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
daDKBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
daDKBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -923,59 +923,6 @@ static MUI_ENTRY deDESuccessPageEntries[] =
}
};
static MUI_ENTRY deDEBootPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Setup ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Der Bootsektor konnte nicht auf der",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"Festplatte Ihres Computers installiert werden.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Bitte legen Sie eine formatierte Diskette in Laufwerk A: ein und",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"dr\201cken Sie ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Fortsetzen F3 = Installation abbrechen",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY deDESelectPartitionEntries[] =
{
{
@@ -1466,7 +1413,7 @@ static MUI_ENTRY deDEFileCopyEntries[] =
}
};
static MUI_ENTRY deDEBootLoaderEntries[] =
static MUI_ENTRY deDEBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1478,7 +1425,7 @@ static MUI_ENTRY deDEBootLoaderEntries[] =
{
6,
8,
"Bestimmen Sie, wo der Bootloader installiert werden soll:",
"Bestimmen Sie, wo Setup den Bootloader installieren soll:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1534,6 +1481,13 @@ static MUI_ENTRY deDEBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Setup installiert den Bootloader.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1549,6 +1503,59 @@ static MUI_ENTRY deDEBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY deDEBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Setup ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Der Bootsektor konnte nicht auf der Festplatte Ihres Computers",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"installiert werden.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Bitte legen Sie eine formatierte Diskette in Laufwerk A: ein",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"und dr\201cken Sie ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Fortsetzen F3 = Installation abbrechen",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY deDEKeyboardSettingsEntries[] =
{
{
@@ -2185,8 +2192,8 @@ MUI_PAGE deDEPages[] =
deDEKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
deDEBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
deDEBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2201,12 +2208,12 @@ MUI_PAGE deDEPages[] =
deDESuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
deDEBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
deDEBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
deDEBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -944,59 +944,6 @@ static MUI_ENTRY elGRSuccessPageEntries[] =
}
};
static MUI_ENTRY elGRBootPageEntries[] =
{
{
4,
3,
" \204\232\241\230\253\341\251\253\230\251\236 \253\246\254 ReactOS " KERNEL_VERSION_STR,
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"\206 \234\232\241\230\253\341\251\253\230\251\236 \233\234 \243\247\246\250\234\345 \244\230 \234\232\241\230\253\230\251\253\343\251\234\240 \253\246\244 bootloader",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"\251\253\246 \251\241\242\236\250\346 \233\345\251\241\246 \253\246\254 \254\247\246\242\246\232\240\251\253\343 \251\230\252",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"\217\230\250\230\241\230\242\351 \234\240\251\341\232\234\253\234 \243\240\230 \233\240\230\243\246\250\255\340\243\342\244\236 \233\240\251\241\342\253\230 \251\253\246 A: \241\230\240",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"\247\230\253\343\251\253\234 ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
" ENTER = \221\254\244\342\256\234\240\230 F3 = \200\247\246\256\351\250\236\251\236",
TEXT_TYPE_STATUS,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY elGRSelectPartitionEntries[] =
{
{
@@ -1481,7 +1428,7 @@ static MUI_ENTRY elGRFileCopyEntries[] =
}
};
static MUI_ENTRY elGRBootLoaderEntries[] =
static MUI_ENTRY elGRBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1493,7 +1440,7 @@ static MUI_ENTRY elGRBootLoaderEntries[] =
{
6,
8,
"\206 \234\232\241\230\253\341\251\253\230\251\236 \232\250\341\255\234\240 \253\246\244 boot loader",
"\206 \234\232\241\230\253\341\251\253\230\251\236 \232\250\341\255\234\240 \253\246\244 bootloader.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1549,6 +1496,13 @@ static MUI_ENTRY elGRBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"\206 \234\232\241\230\253\341\251\253\230\251\236 \232\250\341\255\234\240 \253\246\244 bootloader.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1564,6 +1518,59 @@ static MUI_ENTRY elGRBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY elGRBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" \204\232\241\230\253\341\251\253\230\251\236 \253\246\254 ReactOS " KERNEL_VERSION_STR,
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"\206 \234\232\241\230\253\341\251\253\230\251\236 \233\234 \243\247\246\250\234\345 \244\230 \234\232\241\230\253\230\251\253\343\251\234\240 \253\246\244 bootloader",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"\251\253\246 \251\241\242\236\250\346 \233\345\251\241\246 \253\246\254 \254\247\246\242\246\232\240\251\253\343 \251\230\252.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"\217\230\250\230\241\230\242\351 \234\240\251\341\232\234\253\234 \243\240\230 \233\240\230\243\246\250\255\340\243\342\244\236 \233\240\251\241\342\253\230 \251\253\246 A: \241\230\240",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"\247\230\253\343\251\253\234 ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
" ENTER = \221\254\244\342\256\234\240\230 F3 = \200\247\246\256\351\250\236\251\236",
TEXT_TYPE_STATUS,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY elGRKeyboardSettingsEntries[] =
{
{
@@ -2196,8 +2203,8 @@ MUI_PAGE elGRPages[] =
elGRKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
elGRBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
elGRBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2212,12 +2219,12 @@ MUI_PAGE elGRPages[] =
elGRSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
elGRBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
elGRBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
elGRBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -928,59 +928,6 @@ static MUI_ENTRY enUSSuccessPageEntries[] =
}
};
static MUI_ENTRY enUSBootPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Setup ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Setup cannot install the bootloader on your computers",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"hardisk",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Please insert a formatted floppy disk in drive A: and",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"press ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Continue F3 = Quit",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY enUSSelectPartitionEntries[] =
{
{
@@ -1464,7 +1411,7 @@ static MUI_ENTRY enUSFileCopyEntries[] =
}
};
static MUI_ENTRY enUSBootLoaderEntries[] =
static MUI_ENTRY enUSBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1476,7 +1423,7 @@ static MUI_ENTRY enUSBootLoaderEntries[] =
{
6,
8,
"Setup is installing the boot loader",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1504,7 +1451,7 @@ static MUI_ENTRY enUSBootLoaderEntries[] =
{
8,
15,
"Skip install bootloader.",
"Skip bootloader installation.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1532,6 +1479,13 @@ static MUI_ENTRY enUSBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Setup is installing the bootloader.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1547,6 +1501,52 @@ static MUI_ENTRY enUSBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY enUSBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Setup ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Setup cannot install the bootloader on your computer's harddisk.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Please insert a formatted floppy disk in drive A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"and press ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Continue F3 = Quit",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY enUSKeyboardSettingsEntries[] =
{
{
@@ -2180,8 +2180,8 @@ MUI_PAGE enUSPages[] =
enUSKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
enUSBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
enUSBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2196,12 +2196,12 @@ MUI_PAGE enUSPages[] =
enUSSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
enUSBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
enUSBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
enUSBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -933,59 +933,6 @@ static MUI_ENTRY esESSuccessPageEntries[] =
}
};
static MUI_ENTRY esESBootPageEntries[] =
{
{
4,
3,
" Instalaci\242n de ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"El instalador no pudo instalar el cargador de arranque en el disco",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"duro del equipo",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Inserte un disquete formateado en la unidad A: y",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"Pulse INTRO.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
" INTRO = Continuar F3 = Salir",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY esESSelectPartitionEntries[] =
{
{
@@ -1470,7 +1417,7 @@ static MUI_ENTRY esESFileCopyEntries[] =
}
};
static MUI_ENTRY esESBootLoaderEntries[] =
static MUI_ENTRY esESBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1482,7 +1429,7 @@ static MUI_ENTRY esESBootLoaderEntries[] =
{
6,
8,
"En este paso, el instalador crear\240 el cargador de arranque",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1538,6 +1485,13 @@ static MUI_ENTRY etESBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"En este paso, el instalador crear\240 el cargador de arranque.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1553,6 +1507,59 @@ static MUI_ENTRY etESBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY esESBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" Instalaci\242n de ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"El instalador no pudo instalar el cargador de arranque en el disco",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"duro del equipo.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Inserte un disquete formateado en la unidad A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"y pulse INTRO.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
" INTRO = Continuar F3 = Salir",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY esESKeyboardSettingsEntries[] =
{
{
@@ -2186,8 +2193,8 @@ MUI_PAGE esESPages[] =
esESKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
esESBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
esESBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2202,12 +2209,12 @@ MUI_PAGE esESPages[] =
esESSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
etESBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
esESBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
esESBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -930,59 +930,6 @@ static MUI_ENTRY etEESuccessPageEntries[] =
}
};
static MUI_ENTRY etEEBootPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " paigaldus ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Alglaadurit ei saanud kettale kirjutada.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Sisesta vormindatud flopiketas draivi A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"ja vajuta ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = J\204tka F3 = V\204lju",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY etEESelectPartitionEntries[] =
{
{
@@ -1467,7 +1414,7 @@ static MUI_ENTRY etEEFileCopyEntries[] =
}
};
static MUI_ENTRY etEEBootLoaderEntries[] =
static MUI_ENTRY etEEBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1479,7 +1426,7 @@ static MUI_ENTRY etEEBootLoaderEntries[] =
{
6,
8,
"Alglaaduri paigaldamine",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1535,6 +1482,13 @@ static MUI_ENTRY etEEBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Alglaaduri paigaldamine.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1550,6 +1504,52 @@ static MUI_ENTRY etEEBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY etEEBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " paigaldus ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Alglaadurit ei saanud kettale kirjutada.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Sisesta vormindatud flopiketas draivi A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"ja vajuta ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = J\204tka F3 = V\204lju",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY etEEKeyboardSettingsEntries[] =
{
{
@@ -2181,8 +2181,8 @@ MUI_PAGE etEEPages[] =
etEEKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
etEEBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
etEEBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2197,12 +2197,12 @@ MUI_PAGE etEEPages[] =
etEESuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
etEEBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
etEEBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
etEEBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -929,59 +929,6 @@ static MUI_ENTRY euESSuccessPageEntries[] =
}
};
static MUI_ENTRY euESBootPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Instalazioa ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Instalazio ez du ahalmenik bootloader-a instalatu zure ordenagailuaren",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"disko gogorra",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Mesedez sartu diskete bat formateatuta A: unitaten barnean",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"eta sakatu SARTU.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"SARTU = Jarraitu F3 = Irten",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY euESSelectPartitionEntries[] =
{
{
@@ -1465,7 +1412,7 @@ static MUI_ENTRY euESFileCopyEntries[] =
}
};
static MUI_ENTRY euESBootLoaderEntries[] =
static MUI_ENTRY euESBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1477,7 +1424,7 @@ static MUI_ENTRY euESBootLoaderEntries[] =
{
6,
8,
"Instalazioak bootloader-a sartzen ari du",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1533,6 +1480,13 @@ static MUI_ENTRY euESBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Instalazioak bootloader-a sartzen ari du.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1548,6 +1502,59 @@ static MUI_ENTRY euESBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY euESBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Instalazioa ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Instalazio ez du ahalmenik bootloader-a instalatu zure ordenagailuaren",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"disko gogorra.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Mesedez sartu diskete bat formateatuta A: unitaten barnean",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"eta sakatu SARTU.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"SARTU = Jarraitu F3 = Irten",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY euESKeyboardSettingsEntries[] =
{
{
@@ -2181,8 +2188,8 @@ MUI_PAGE euESPages[] =
euESKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
euESBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
euESBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2197,12 +2204,12 @@ MUI_PAGE euESPages[] =
euESSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
euESBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
euESBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
euESBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -951,59 +951,6 @@ static MUI_ENTRY frFRSuccessPageEntries[] =
}
};
static MUI_ENTRY frFRBootPageEntries[] =
{
{
4,
3,
" Installation de ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Setup ne peut installer le chargeur sur le disque dur",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"de votre ordinateur",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Veuillez ins\202rer une disquette format\202e dans le lecteur A: et",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"appuyer sur ENTR\220E.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTR\220E = Continuer F3 = Quitter",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY frFRSelectPartitionEntries[] =
{
{
@@ -1416,7 +1363,7 @@ static MUI_ENTRY frFRInstallDirectoryEntries[] =
{
6,
9,
"Choisissez un repertoire o\227 vous voulez que ReactOS soit install\202 :",
"Choisissez un r\202pertoire o\227 vous voulez que ReactOS soit install\202 :",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1501,7 +1448,7 @@ static MUI_ENTRY frFRFileCopyEntries[] =
}
};
static MUI_ENTRY frFRBootLoaderEntries[] =
static MUI_ENTRY frFRBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1513,7 +1460,7 @@ static MUI_ENTRY frFRBootLoaderEntries[] =
{
6,
8,
"Setup installe le chargeur de d\202marrage",
"Veuillez choisir o\227 Setup doit installer le chargeur de d\202marrage :",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1569,6 +1516,13 @@ static MUI_ENTRY frFRBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Setup installe le chargeur de d\202marrage.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1584,6 +1538,52 @@ static MUI_ENTRY frFRBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY frFRBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" Installation de ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Setup ne peut installer le chargeur sur le disque dur de votre ordinateur.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Veuillez ins\202rer une disquette format\202e dans le lecteur A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"et appuyer sur ENTR\220E.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTR\220E = Continuer F3 = Quitter",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY frFRKeyboardSettingsEntries[] =
{
{
@@ -2217,8 +2217,8 @@ MUI_PAGE frFRPages[] =
frFRKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
frFRBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
frFRBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2233,12 +2233,12 @@ MUI_PAGE frFRPages[] =
frFRSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
frFRBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
frFRBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
frFRBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -932,59 +932,6 @@ static MUI_ENTRY heILSuccessPageEntries[] =
}
};
static MUI_ENTRY heILBootPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " \232\220\227\232\204 ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"\207\211\231\227\204 \217\220\205\213\204 \214\222 \214\205\207\232\200\204 \214\204\220\216 \232\200 \217\211\227\232\204\214 \204\214\205\213\211 \204\220\211\200 \204\220\227\232\204\204",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"\212\201\231\207\216\201",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
".ENTER \225\207\214\205 :A \217\220\205\213\214 \214\207\232\205\200\216 \217\205\210\211\214\227\232 \221\220\213\204 \204\231\227\201\201",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"\204\220\227\232\204 \214\205\210\211\201 = F3 \212\231\216\204 = ENTER",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY heILSelectPartitionEntries[] =
{
{
@@ -1468,7 +1415,7 @@ static MUI_ENTRY heILFileCopyEntries[] =
}
};
static MUI_ENTRY heILBootLoaderEntries[] =
static MUI_ENTRY heILBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1480,7 +1427,7 @@ static MUI_ENTRY heILBootLoaderEntries[] =
{
6,
8,
"\214\205\207\232\200\204 \214\204\220\216 \232\200 \232\222\213 \204\220\211\227\232\216 \204\220\227\232\204\204 \232\211\220\213\232",
"\214\205\207\232\200\204 \214\204\220\216 \232\200 \232\222\213 \204\220\211\227\232\216 \204\220\227\232\204\204 \232\211\220\213\232.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1536,6 +1483,13 @@ static MUI_ENTRY heILBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"\214\205\207\232\200\204 \214\204\220\216 \232\200 \232\222\213 \204\220\211\227\232\216 \204\220\227\232\204\204 \232\211\220\213\232.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1551,6 +1505,52 @@ static MUI_ENTRY heILBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY heILBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " \232\220\227\232\204 ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"\207\211\231\227\204 \217\220\205\213\204 \214\222 \214\205\207\232\200\204 \214\204\220\216 \232\200 \217\211\227\232\204\214 \204\214\205\213\211 \204\220\211\200 \204\220\227\232\204\204",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"\212\201\231\207\216\201.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
".ENTER \225\207\214\205 :A \217\220\205\213\214 \214\207\232\205\200\216 \217\205\210\211\214\227\232 \221\220\213\204 \204\231\227\201\201",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"\204\220\227\232\204 \214\205\210\211\201 = F3 \212\231\216\204 = ENTER",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY heILKeyboardSettingsEntries[] =
{
{
@@ -2182,8 +2182,8 @@ MUI_PAGE heILPages[] =
heILKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
heILBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
heILBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2198,12 +2198,12 @@ MUI_PAGE heILPages[] =
heILSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
heILBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
heILBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
heILBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -938,59 +938,6 @@ static MUI_ENTRY hrHRSuccessPageEntries[] =
}
};
static MUI_ENTRY hrHRBootPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " instalacija ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Instalacijski program ne mo\247e instalirati bootloader (pokreta\237 operativnog sustava) na va\347",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"tvrdi disk u ra\237unalu",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Ubacite formatiranu disketu u Disk A: i",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"pritisnite ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Nastavi F3 = Iza\320i",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY hrHRSelectPartitionEntries[] =
{
{
@@ -1481,7 +1428,7 @@ static MUI_ENTRY hrHRFileCopyEntries[] =
}
};
static MUI_ENTRY hrHRBootLoaderEntries[] =
static MUI_ENTRY hrHRBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1493,14 +1440,7 @@ static MUI_ENTRY hrHRBootLoaderEntries[] =
{
6,
8,
"Instalacijski program instalirava bootloader",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"(pokreta\237a operativnog sustava)",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1556,6 +1496,20 @@ static MUI_ENTRY hrHRBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Instalacijski program instalirava bootloader",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"(pokreta\237a operativnog sustava).",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1571,6 +1525,59 @@ static MUI_ENTRY hrHRBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY hrHRBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " instalacija ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Instalacijski program ne mo\247e instalirati bootloader (pokreta\237 operativnog sustava) na va\347",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"tvrdi disk u ra\237unalu.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Ubacite formatiranu disketu u Disk A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"i pritisnite ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Nastavi F3 = Iza\320i",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY hrHRKeyboardSettingsEntries[] =
{
{
@@ -2204,8 +2211,8 @@ MUI_PAGE hrHRPages[] =
hrHRKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
hrHRBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
hrHRBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2220,12 +2227,12 @@ MUI_PAGE hrHRPages[] =
hrHRSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
hrHRBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
hrHRBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
hrHRBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -937,59 +937,6 @@ static MUI_ENTRY huHUSuccessPageEntries[] =
}
};
static MUI_ENTRY huHUBootPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " telep\241t\213 ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Nem siker\201lt telep\241teni a rendszerbet\224lt\213t",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"a sz\240m\241t\242g\202p merevlemez\202re.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"K\202rj\201k helyezzen be egy megform\240zott floppy lemezt",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"az A: meghajt\242ba, majd nyomjon ENTER-t.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Folytat\240s F3 = Kil\202p\202s",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY huHUSelectPartitionEntries[] =
{
{
@@ -1358,7 +1305,7 @@ static MUI_ENTRY huHUFileCopyEntries[] =
}
};
static MUI_ENTRY huHUBootLoaderEntries[] =
static MUI_ENTRY huHUBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1370,7 +1317,7 @@ static MUI_ENTRY huHUBootLoaderEntries[] =
{
6,
8,
"Boot loader telep\241t\202se",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1426,6 +1373,13 @@ static MUI_ENTRY huHUBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Bootloader telep\241t\202se.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1441,6 +1395,59 @@ static MUI_ENTRY huHUBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY huHUBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " telep\241t\213 ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Nem siker\201lt telep\241teni a rendszerbet\224lt\213t",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"a sz\240m\241t\242g\202p merevlemez\202re.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"K\202rj\201k helyezzen be egy megform\240zott floppy lemezt",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"az A: meghajt\242ba, majd nyomjon ENTER-t.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Folytat\240s F3 = Kil\202p\202s",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY huHUKeyboardSettingsEntries[] =
{
{
@@ -2071,8 +2078,8 @@ MUI_PAGE huHUPages[] =
huHUKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
huHUBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
huHUBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2087,12 +2094,12 @@ MUI_PAGE huHUPages[] =
huHUSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
huHUBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
huHUBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
huHUBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -928,59 +928,6 @@ static MUI_ENTRY idIDSuccessPageEntries[] =
}
};
static MUI_ENTRY idIDBootPageEntries[] =
{
{
4,
3,
" Penyetelan ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Penyetelan tidak dapat menasang bootloader pada komputer Anda",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"hardisk",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Mohon masukkan cakram disket yang terformat di drive A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"dan tekan ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Lanjut F3 = Keluar",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY idIDSelectPartitionEntries[] =
{
{
@@ -1464,7 +1411,7 @@ static MUI_ENTRY idIDFileCopyEntries[] =
}
};
static MUI_ENTRY idIDBootLoaderEntries[] =
static MUI_ENTRY idIDBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1476,7 +1423,7 @@ static MUI_ENTRY idIDBootLoaderEntries[] =
{
6,
8,
"Penyetelan sedang memasang the boot loader",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1532,6 +1479,13 @@ static MUI_ENTRY idIDBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Penyetelan sedang memasang the bootloader.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1547,6 +1501,59 @@ static MUI_ENTRY idIDBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY idIDBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" Penyetelan ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Penyetelan tidak dapat menasang bootloader pada komputer Anda",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"harddisk.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Mohon masukkan cakram disket yang terformat di drive A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"dan tekan ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Lanjut F3 = Keluar",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY idIDKeyboardSettingsEntries[] =
{
{
@@ -2180,8 +2187,8 @@ MUI_PAGE idIDPages[] =
idIDKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
idIDBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
idIDBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2196,12 +2203,12 @@ MUI_PAGE idIDPages[] =
idIDSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
idIDBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
idIDBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
idIDBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -927,83 +927,6 @@ static MUI_ENTRY itITSuccessPageEntries[] =
}
};
static MUI_ENTRY itITBootPageEntries[] =
{
{
4,
3,
" Installazione di ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Il Setup non ha potuto installare il bootloader nel disco",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"del vostro computer",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Inserire un disco floppy formattato nell'unit\x85 A: e",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"premere INVIO.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
" INVIO = Continua F3 = Termina",
TEXT_TYPE_STATUS,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY itITBootLoaderInstallPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Setup ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
0,
0,
"Installing the bootloader onto the media, please wait...",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY itITSelectPartitionEntries[] =
{
{
@@ -1494,7 +1417,7 @@ static MUI_ENTRY itITFileCopyEntries[] =
}
};
static MUI_ENTRY itITBootLoaderEntries[] =
static MUI_ENTRY itITBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1506,7 +1429,7 @@ static MUI_ENTRY itITBootLoaderEntries[] =
{
6,
8,
"Setup sta installando il bootloader",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1553,6 +1476,90 @@ static MUI_ENTRY itITBootLoaderEntries[] =
}
};
static MUI_ENTRY itITBootLoaderInstallPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Setup ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Setup sta installando il bootloader.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"Installing the bootloader onto the media, please wait...",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY itITBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" Installazione di ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Il Setup non ha potuto installare il bootloader nel disco",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"del vostro computer.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Inserire un disco floppy formattato nell'unit\x85 A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"e premere INVIO.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
" INVIO = Continua F3 = Termina",
TEXT_TYPE_STATUS,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY itITKeyboardSettingsEntries[] =
{
{
@@ -2186,8 +2193,8 @@ MUI_PAGE itITPages[] =
itITKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
itITBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
itITBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2202,12 +2209,12 @@ MUI_PAGE itITPages[] =
itITSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
itITBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
itITBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
itITBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -930,59 +930,6 @@ static MUI_ENTRY jaJPSuccessPageEntries[] =
}
};
static MUI_ENTRY jaJPBootPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " \276\257\304\261\257\314\337 ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"\276\257\304\261\257\314\337\312 \314\336\260\304\333\260\300\336\246 \272\335\313\337\255\260\300\311 \312\260\304\336\303\336\250\275\270\274\336\256\263\306 \262\335\275\304\260\331",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"\303\336\267\317\276\335\303\336\274\300",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"\304\336\327\262\314\336 A: \306 \314\253\260\317\257\304 \273\332\300 \314\333\257\313\337\260 \303\336\250\275\270\246 \262\332\303\244",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"ENTER \267\260\246 \265\274\303 \270\300\336\273\262\241",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = \277\336\257\272\263 F3 = \301\255\263\274",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY jaJPSelectPartitionEntries[] =
{
{
@@ -1467,7 +1414,7 @@ static MUI_ENTRY jaJPFileCopyEntries[] =
}
};
static MUI_ENTRY jaJPBootLoaderEntries[] =
static MUI_ENTRY jaJPBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1479,7 +1426,7 @@ static MUI_ENTRY jaJPBootLoaderEntries[] =
{
6,
8,
"\276\257\304\261\257\314\337\312 \314\336\260\304 \333\260\300\336\246 \262\335\275\304\260\331 \274\317\275",
"\276\257\304\261\257\314\337\312 \314\336\260\304 \333\260\300\336\246 \262\335\275\304\260\331 \274\317\275.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1535,6 +1482,13 @@ static MUI_ENTRY jaJPBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"\276\257\304\261\257\314\337\312 \314\336\260\304 \333\260\300\336\246 \262\335\275\304\260\331 \274\317\275.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1550,6 +1504,59 @@ static MUI_ENTRY jaJPBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY jaJPBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " \276\257\304\261\257\314\337 ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"\276\257\304\261\257\314\337\312 \314\336\260\304\333\260\300\336\246 \272\335\313\337\255\260\300\311 \312\260\304\336\303\336\250\275\270\274\336\256\263\306 \262\335\275\304\260\331",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"\303\336\267\317\276\335\303\336\274\300.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"\304\336\327\262\314\336 A: \306 \314\253\260\317\257\304 \273\332\300 \314\333\257\313\337\260 \303\336\250\275\270\246 \262\332\303\244",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"ENTER \267\260\246 \265\274\303 \270\300\336\273\262\241",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = \277\336\257\272\263 F3 = \301\255\263\274",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY jaJPKeyboardSettingsEntries[] =
{
{
@@ -2183,8 +2190,8 @@ MUI_PAGE jaJPPages[] =
jaJPKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
jaJPBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
jaJPBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2199,12 +2206,12 @@ MUI_PAGE jaJPPages[] =
jaJPSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
jaJPBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
jaJPBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
jaJPBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -939,59 +939,6 @@ static MUI_ENTRY ltLTSuccessPageEntries[] =
}
};
static MUI_ENTRY ltLTBootPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " diegimo programa ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Setup cannot install the bootloader on your computers",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"hardisk",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Please insert a formatted floppy disk in drive A: and",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"press ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = T\322sti F3 = Baigti",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY ltLTSelectPartitionEntries[] =
{
{
@@ -1475,7 +1422,7 @@ static MUI_ENTRY ltLTFileCopyEntries[] =
}
};
static MUI_ENTRY ltLTBootLoaderEntries[] =
static MUI_ENTRY ltLTBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1487,7 +1434,7 @@ static MUI_ENTRY ltLTBootLoaderEntries[] =
{
6,
8,
"Setup is installing the boot loader",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1515,7 +1462,7 @@ static MUI_ENTRY ltLTBootLoaderEntries[] =
{
8,
15,
"Skip install bootloader.",
"Skip bootloader installation.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1543,6 +1490,13 @@ static MUI_ENTRY ltLTBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Setup is installing the bootloader.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1558,6 +1512,52 @@ static MUI_ENTRY ltLTBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY ltLTBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " diegimo programa ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Setup cannot install the bootloader on your computer's harddisk.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Please insert a formatted floppy disk in drive A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"and press ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = T\322sti F3 = Baigti",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY ltLTKeyboardSettingsEntries[] =
{
{
@@ -2191,8 +2191,8 @@ MUI_PAGE ltLTPages[] =
ltLTKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
ltLTBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
ltLTBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2207,12 +2207,12 @@ MUI_PAGE ltLTPages[] =
ltLTSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
ltLTBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
ltLTBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
ltLTBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -927,59 +927,6 @@ static MUI_ENTRY msMYSuccessPageEntries[] =
}
};
static MUI_ENTRY msMYBootPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Persediaan ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Persediaan tidak dapat memasang bootloader pada komputer",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"cakera keras anda",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Sila sisipkan cakera liut diformatkan dalam pemacu A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"dan tekan ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Teruskan F3 = Keluar",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY msMYSelectPartitionEntries[] =
{
{
@@ -1456,7 +1403,7 @@ static MUI_ENTRY msMYFileCopyEntries[] =
}
};
static MUI_ENTRY msMYBootLoaderEntries[] =
static MUI_ENTRY msMYBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1468,7 +1415,7 @@ static MUI_ENTRY msMYBootLoaderEntries[] =
{
6,
8,
"Persediaan sedang memasang boot loader",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1496,7 +1443,7 @@ static MUI_ENTRY msMYBootLoaderEntries[] =
{
8,
15,
"Langkau memasang boot loader.",
"Langkau memasang bootloader.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1524,6 +1471,13 @@ static MUI_ENTRY msMYBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Persediaan sedang memasang bootloader.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1539,6 +1493,59 @@ static MUI_ENTRY msMYBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY msMYBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Persediaan ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Persediaan tidak dapat memasang bootloader pada komputer",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"cakera keras anda.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Sila sisipkan cakera liut diformatkan dalam pemacu A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"dan tekan ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Teruskan F3 = Keluar",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY msMYKeyboardSettingsEntries[] =
{
{
@@ -2165,8 +2172,8 @@ MUI_PAGE msMYPages[] =
msMYKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
msMYBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
msMYBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2181,12 +2188,12 @@ MUI_PAGE msMYPages[] =
msMYSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
msMYBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
msMYBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
msMYBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -942,59 +942,6 @@ static MUI_ENTRY nlNLSuccessPageEntries[] =
}
};
static MUI_ENTRY nlNLBootPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Setup ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Setup kan de bootloader niet op de vaste schijf van uw computer",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"installeren",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Voer een geformatteerde diskette in station A: in en",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"druk op ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Doorgaan F3 = Afsluiten",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY nlNLSelectPartitionEntries[] =
{
{
@@ -1479,7 +1426,7 @@ static MUI_ENTRY nlNLFileCopyEntries[] =
}
};
static MUI_ENTRY nlNLBootLoaderEntries[] =
static MUI_ENTRY nlNLBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1491,7 +1438,7 @@ static MUI_ENTRY nlNLBootLoaderEntries[] =
{
6,
8,
"Setup installeert de bootloader.",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1547,6 +1494,13 @@ static MUI_ENTRY nlNLBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Setup installeert de bootloader.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1562,6 +1516,59 @@ static MUI_ENTRY nlNLBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY nlNLBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Setup ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Setup kan de bootloader niet op de vaste schijf van uw computer",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"installeren.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Voer een geformatteerde diskette in station A: in",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"en druk op ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Doorgaan F3 = Afsluiten",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY nlNLkeyboardSettingsEntries[] =
{
{
@@ -2205,8 +2212,8 @@ MUI_PAGE nlNLPages[] =
nlNLkeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
nlNLBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
nlNLBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2221,12 +2228,12 @@ MUI_PAGE nlNLPages[] =
nlNLSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
nlNLBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
nlNLBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
nlNLBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -940,59 +940,6 @@ static MUI_ENTRY plPLSuccessPageEntries[] =
}
};
static MUI_ENTRY plPLBootPageEntries[] =
{
{
4,
3,
" Instalator ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Instalator systemu ReactOS nie mo\276e zainstalowa\206",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"mened\276era rozruchu na dysku twardym",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"W\210\242\276 sformatowan\245 dyskietk\251 do nap\251du A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"i nacisnij klawisz ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Kontynuacja F3 = Wyj\230cie",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY plPLSelectPartitionEntries[] =
{
{
@@ -1476,7 +1423,7 @@ static MUI_ENTRY plPLFileCopyEntries[] =
}
};
static MUI_ENTRY plPLBootLoaderEntries[] =
static MUI_ENTRY plPLBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1488,7 +1435,7 @@ static MUI_ENTRY plPLBootLoaderEntries[] =
{
6,
8,
"Instalator musi teraz zainstalowa\206 mened\276er rozruchu",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1544,6 +1491,13 @@ static MUI_ENTRY plPLBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Instalator musi teraz zainstalowa\206 mened\276er rozruchu.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1559,6 +1513,59 @@ static MUI_ENTRY plPLBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY plPLBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" Instalator ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Instalator systemu ReactOS nie mo\276e zainstalowa\206",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"mened\276era rozruchu na dysku twardym.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"W\210\242\276 sformatowan\245 dyskietk\251 do nap\251du A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"i nacisnij klawisz ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Kontynuacja F3 = Wyj\230cie",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY plPLKeyboardSettingsEntries[] =
{
{
@@ -2192,8 +2199,8 @@ MUI_PAGE plPLPages[] =
plPLKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
plPLBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
plPLBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2208,12 +2215,12 @@ MUI_PAGE plPLPages[] =
plPLSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
plPLBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
plPLBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
plPLBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -937,59 +937,6 @@ static MUI_ENTRY ptBRSuccessPageEntries[] =
}
};
static MUI_ENTRY ptBRBootPageEntries[] =
{
{
4,
3,
" Instala\207\306o do ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"O instalador n\306o p\223de instalar o ger\210nciador de inicializa\207\306o no disco",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"r\241gido do computador.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Por favor insira um disquete formatado na unidade A: e",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"pressione ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER=Continuar F3=Sair",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY ptBRSelectPartitionEntries[] =
{
{
@@ -1481,7 +1428,7 @@ static MUI_ENTRY ptBRFileCopyEntries[] =
}
};
static MUI_ENTRY ptBRBootLoaderEntries[] =
static MUI_ENTRY ptBRBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1493,7 +1440,7 @@ static MUI_ENTRY ptBRBootLoaderEntries[] =
{
6,
8,
"O instalador ir\240 configurar o ger\210nciador de inicializa\207\306o",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1549,6 +1496,13 @@ static MUI_ENTRY ptBRBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"O instalador ir\240 configurar o ger\210nciador de inicializa\207\306o.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1564,6 +1518,59 @@ static MUI_ENTRY ptBRBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY ptBRBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" Instala\207\306o do ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"O instalador n\306o p\223de instalar o ger\210nciador de inicializa\207\306o no disco",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"r\241gido do computador.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Por favor insira um disquete formatado na unidade A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"e pressione ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER=Continuar F3=Sair",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY ptBRKeyboardSettingsEntries[] =
{
{
@@ -2218,8 +2225,8 @@ MUI_PAGE ptBRPages[] =
ptBRKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
ptBRBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
ptBRBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2234,12 +2241,12 @@ MUI_PAGE ptBRPages[] =
ptBRSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
ptBRBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
ptBRBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
ptBRBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -937,59 +937,6 @@ static MUI_ENTRY ptPTSuccessPageEntries[] =
}
};
static MUI_ENTRY ptPTBootPageEntries[] =
{
{
4,
3,
" Instala\207\306o do ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"O instalador n\306o pode instalar o gestor de inicializa\207\306o no disco",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"r\241gido do computador.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Por favor insira uma disquete formatada na unidade A: e",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"pressione ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER=Continuar F3=Sair",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY ptPTSelectPartitionEntries[] =
{
{
@@ -1481,7 +1428,7 @@ static MUI_ENTRY ptPTFileCopyEntries[] =
}
};
static MUI_ENTRY ptPTBootLoaderEntries[] =
static MUI_ENTRY ptPTBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1493,7 +1440,7 @@ static MUI_ENTRY ptPTBootLoaderEntries[] =
{
6,
8,
"O instalador ir\240 configurar o gestor de arranque.",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1549,6 +1496,13 @@ static MUI_ENTRY ptPTBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"O instalador ir\240 configurar o gestor de arranque.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1564,6 +1518,59 @@ static MUI_ENTRY ptPTBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY ptPTBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" Instala\207\306o do ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"O instalador n\306o pode instalar o gestor de inicializa\207\306o no disco",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"r\241gido do computador.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Por favor insira uma disquete formatada na unidade A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"e pressione ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER=Continuar F3=Sair",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY ptPTKeyboardSettingsEntries[] =
{
{
@@ -2218,8 +2225,8 @@ MUI_PAGE ptPTPages[] =
ptPTKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
ptPTBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
ptPTBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2234,12 +2241,12 @@ MUI_PAGE ptPTPages[] =
ptPTSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
ptPTBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
ptPTBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
ptPTBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -975,59 +975,6 @@ static MUI_ENTRY roROSuccessPageEntries[] =
}
};
static MUI_ENTRY roROBootPageEntries[] =
{
{
4,
3,
" Instalare ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Programul de instalare nu poate instala modulul de",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"ini\376ializare a calculatorului pe discul local.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Introduce\376i un disc flexibil formatat \356n",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"unitatea A: apoi s\343 ap\343sa\376i ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Continuare F3 = Ie\272ire",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY roROSelectPartitionEntries[] =
{
{
@@ -1497,7 +1444,7 @@ static MUI_ENTRY roROFileCopyEntries[] =
}
};
static MUI_ENTRY roROBootLoaderEntries[] =
static MUI_ENTRY roROBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1509,7 +1456,7 @@ static MUI_ENTRY roROBootLoaderEntries[] =
{
6,
8,
"Instalare modul de ini\376ializare al calculatorului",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1565,6 +1512,13 @@ static MUI_ENTRY roROBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Instalare modul de ini\376ializare al calculatorului.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1580,6 +1534,59 @@ static MUI_ENTRY roROBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY roROBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" Instalare ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Programul de instalare nu poate instala modulul de",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"ini\376ializare a calculatorului pe discul local.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Introduce\376i un disc flexibil formatat \356n unitatea A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"apoi s\343 ap\343sa\376i ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Continuare F3 = Ie\272ire",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY roROKeyboardSettingsEntries[] =
{
{
@@ -2234,8 +2241,8 @@ MUI_PAGE roROPages[] =
roROKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
roROBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
roROBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2250,12 +2257,12 @@ MUI_PAGE roROPages[] =
roROSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
roROBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
roROBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
roROBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -951,59 +951,6 @@ static MUI_ENTRY ruRUSuccessPageEntries[] =
}
};
static MUI_ENTRY ruRUBootPageEntries[] =
{
{
4,
3,
" \223\341\342\240\255\256\242\252\240 ReactOS " KERNEL_VERSION_STR,
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"\217\340\256\243\340\240\254\254\240 \343\341\342\240\255\256\242\252\250 \255\245 \341\254\256\243\253\240 \343\341\342\240\255\256\242\250\342\354 \247\240\243\340\343\247\347\250\252 \255\240",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"\246\245\341\342\252\250\251 \244\250\341\252 \242\240\350\245\243\256 \252\256\254\257\354\356\342\245\340\240.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"\217\256\246\240\253\343\251\341\342\240 \242\341\342\240\242\354\342\245 \256\342\344\256\340\254\240\342\250\340\256\242\240\255\255\353\251 \243\250\241\252\250\251 \244\250\341\252 \242 \244\250\341\252\256\242\256\244 A: \250",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"\255\240\246\254\250\342\245 ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = \217\340\256\244\256\253\246\250\342\354 F3 = \202\353\345\256\244",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY ruRUSelectPartitionEntries[] =
{
{
@@ -1487,7 +1434,7 @@ static MUI_ENTRY ruRUFileCopyEntries[] =
}
};
static MUI_ENTRY ruRUBootLoaderEntries[] =
static MUI_ENTRY ruRUBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1499,7 +1446,7 @@ static MUI_ENTRY ruRUBootLoaderEntries[] =
{
6,
8,
"\223\341\342\240\255\256\242\252\240 \247\240\243\340\343\247\347\250\252\240 ReactOS:",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1555,6 +1502,13 @@ static MUI_ENTRY ruRUBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"\223\341\342\240\255\256\242\252\240 \247\240\243\340\343\247\347\250\252\240 ReactOS",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1570,6 +1524,59 @@ static MUI_ENTRY ruRUBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY ruRUBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" \223\341\342\240\255\256\242\252\240 ReactOS " KERNEL_VERSION_STR,
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"\217\340\256\243\340\240\254\254\240 \343\341\342\240\255\256\242\252\250 \255\245 \341\254\256\243\253\240 \343\341\342\240\255\256\242\250\342\354 \247\240\243\340\343\247\347\250\252 \255\240",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"\246\245\341\342\252\250\251 \244\250\341\252 \242\240\350\245\243\256 \252\256\254\257\354\356\342\245\340\240.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"\217\256\246\240\253\343\251\341\342\240 \242\341\342\240\242\354\342\245 \256\342\344\256\340\254\240\342\250\340\256\242\240\255\255\353\251 \243\250\241\252\250\251 \244\250\341\252 \242 \244\250\341\252\256\242\256\244 A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"\250 \255\240\246\254\250\342\245 ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = \217\340\256\244\256\253\246\250\342\354 F3 = \202\353\345\256\244",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY ruRUKeyboardSettingsEntries[] =
{
{
@@ -2203,8 +2210,8 @@ MUI_PAGE ruRUPages[] =
ruRUKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
ruRUBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
ruRUBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2219,12 +2226,12 @@ MUI_PAGE ruRUPages[] =
ruRUSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
ruRUBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
ruRUBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
ruRUBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -936,59 +936,6 @@ static MUI_ENTRY skSKSuccessPageEntries[] =
}
};
static MUI_ENTRY skSKBootPageEntries[] =
{
{
4,
3,
" In\347tal\240tor syst\202mu ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"In\347tal\240tor nem\223\247e nain\347talova\234 zav\240dza\237 syst\202mu na pevn\354 disk V\240\347ho", //bootloader = zav<61>dza<7A> syst<73>mu
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"po\237\241ta\237a",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Vlo\247te pros\241m, naform\240tovan\243 disketu do mechaniky A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"a stla\237te ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Pokra\237ova\234 F3 = Skon\237i\234",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY skSKSelectPartitionEntries[] =
{
{
@@ -1473,7 +1420,7 @@ static MUI_ENTRY skSKFileCopyEntries[] =
}
};
static MUI_ENTRY skSKBootLoaderEntries[] =
static MUI_ENTRY skSKBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1485,7 +1432,7 @@ static MUI_ENTRY skSKBootLoaderEntries[] =
{
6,
8,
"In\347tal\240tor je pripraven\354 nain\347talova\234 zav\240dza\237 opera\237n\202ho syst\202mu",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1541,6 +1488,13 @@ static MUI_ENTRY skSKBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"In\347tal\240tor je pripraven\354 nain\347talova\234 zav\240dza\237 opera\237n\202ho syst\202mu.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1556,6 +1510,59 @@ static MUI_ENTRY skSKBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY skSKBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" In\347tal\240tor syst\202mu ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"In\347tal\240tor nem\223\247e nain\347talova\234 zav\240dza\237 syst\202mu na pevn\354 disk V\240\347ho", //bootloader = zav<61>dza<7A> syst<73>mu
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"po\237\241ta\237a.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Vlo\247te pros\241m, naform\240tovan\243 disketu do mechaniky A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"a stla\237te ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Pokra\237ova\234 F3 = Skon\237i\234",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY skSKKeyboardSettingsEntries[] =
{
{
@@ -2192,8 +2199,8 @@ MUI_PAGE skSKPages[] =
skSKKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
skSKBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
skSKBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2208,12 +2215,12 @@ MUI_PAGE skSKPages[] =
skSKSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
skSKBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
skSKBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
skSKBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -934,59 +934,6 @@ static MUI_ENTRY sqALSuccessPageEntries[] =
}
};
static MUI_ENTRY sqALBootPageEntries[] =
{
{
4,
3,
" Instalimi i ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Instalimi nuk mund t\211 instaloj\211 programin e bootloaderit ne kompjuterin tuaj",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"hardisku",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Ju lutem fusni nje floppy disk t\211 formatuar n\211 drive A: dhe",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"klikoni ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Vazhdo F3 = Dil",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY sqALSelectPartitionEntries[] =
{
{
@@ -999,7 +946,7 @@ static MUI_ENTRY sqALSelectPartitionEntries[] =
{
6,
8,
"Lista meposht tregon particionet dhe pjes\211n e paperdorur t\211 hard diskut",
"Lista meposht tregon particionet dhe pjes\211n e paperdorur t\211 harddiskut",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1471,7 +1418,7 @@ static MUI_ENTRY sqALFileCopyEntries[] =
}
};
static MUI_ENTRY sqALBootLoaderEntries[] =
static MUI_ENTRY sqALBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1483,7 +1430,7 @@ static MUI_ENTRY sqALBootLoaderEntries[] =
{
6,
8,
"Instalimi po instalon boot loaderin",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1539,6 +1486,13 @@ static MUI_ENTRY sqALBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Instalimi po instalon bootloaderin.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1554,6 +1508,59 @@ static MUI_ENTRY sqALBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY sqALBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" Instalimi i ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Instalimi nuk mund t\211 instaloj\211 programin e bootloaderit ne kompjuterin tuaj",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"harddisku.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Ju lutem fusni nje floppy disk t\211 formatuar n\211 drive A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"dhe klikoni ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = Vazhdo F3 = Dil",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY sqALKeyboardSettingsEntries[] =
{
{
@@ -2193,8 +2200,8 @@ MUI_PAGE sqALPages[] =
sqALKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
sqALBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
sqALBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2209,12 +2216,12 @@ MUI_PAGE sqALPages[] =
sqALSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
sqALBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
sqALBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
sqALBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -936,59 +936,6 @@ static MUI_ENTRY svSESuccessPageEntries[] =
}
};
static MUI_ENTRY svSEBootPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Setup ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Setup misslyckades med att installera bootloadern p\206 datorns",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"h\206rddisk",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Var god s\204tt in en formatterad floppy-disk i l\204sare A: och",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"tryck p\206 ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
" ENTER = Forts\204tt F3 = Avbryt",
TEXT_TYPE_STATUS,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY svSESelectPartitionEntries[] =
{
{
@@ -1473,7 +1420,7 @@ static MUI_ENTRY svSEFileCopyEntries[] =
}
};
static MUI_ENTRY svSEBootLoaderEntries[] =
static MUI_ENTRY svSEBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1485,7 +1432,7 @@ static MUI_ENTRY svSEBootLoaderEntries[] =
{
6,
8,
"Setup installerar boot-loadern",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1541,6 +1488,13 @@ static MUI_ENTRY svSEBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Setup installerar boot-loadern.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1556,6 +1510,52 @@ static MUI_ENTRY svSEBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY svSEBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Setup ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Setup misslyckades med att installera bootloadern p\206 datorns h\206rddisk.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"Var god s\204tt in en formatterad floppy-disk i l\204sare A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"och tryck p\206 ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
" ENTER = Forts\204tt F3 = Avbryt",
TEXT_TYPE_STATUS,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY svSEKeyboardSettingsEntries[] =
{
{
@@ -2189,8 +2189,8 @@ MUI_PAGE svSEPages[] =
svSEKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
svSEBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
svSEBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2205,12 +2205,12 @@ MUI_PAGE svSEPages[] =
svSESuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
svSEBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
svSEBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
svSEBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -926,52 +926,6 @@ static MUI_ENTRY trTRSuccessPageEntries[] =
}
};
static MUI_ENTRY trTRBootPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Kur ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Kur, bilgisayar\215n\215z\215n sabit diskine \224ny\201kleyiciyi kuramad\215.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
12,
"L\201tfen A: s\201r\201c\201s\201ne bi\207imlendirilmi\237 bir disket tak\215n\215z",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"ve ENTER'e bas\215n\215z.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = S\201rd\201r F3 = \200\215k",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY trTRSelectPartitionEntries[] =
{
{
@@ -1441,7 +1395,7 @@ static MUI_ENTRY trTRFileCopyEntries[] =
}
};
static MUI_ENTRY trTRBootLoaderEntries[] =
static MUI_ENTRY trTRBootLoaderSelectPageEntries[] =
{
{
4,
@@ -1453,7 +1407,7 @@ static MUI_ENTRY trTRBootLoaderEntries[] =
{
6,
8,
"Kur, \224ny\201kleyiciyi kuruyor.",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1509,6 +1463,13 @@ static MUI_ENTRY trTRBootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Kur, \224ny\201kleyiciyi kuruyor.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1524,6 +1485,52 @@ static MUI_ENTRY trTRBootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY trTRBootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Kur ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"Kur, bilgisayar\215n\215z\215n sabit diskine \224ny\201kleyiciyi kuramad\215.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
12,
"L\201tfen A: s\201r\201c\201s\201ne bi\207imlendirilmi\237 bir disket tak\215n\215z",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"ve ENTER'e bas\215n\215z.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = S\201rd\201r F3 = \200\215k",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY trTRKeyboardSettingsEntries[] =
{
{
@@ -2157,8 +2164,8 @@ MUI_PAGE trTRPages[] =
trTRKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
trTRBootLoaderEntries
BOOTLOADER_SELECT_PAGE,
trTRBootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2173,12 +2180,12 @@ MUI_PAGE trTRPages[] =
trTRSuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
trTRBootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
trTRBootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
trTRBootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -935,59 +935,6 @@ static MUI_ENTRY ukUASuccessPageEntries[] =
}
};
static MUI_ENTRY ukUABootPageEntries[] =
{
{
4,
3,
" \202\341\342\240\255\256\242\253\245\255\255\357 ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"\202\341\342\240\255\256\242\253\356\242\240\347 \255\245 \254\256\246\245 \242\341\342\240\255\256\242\250\342\250 bootloader \255\240 \246\256\340\341\342\252\250\251 \244\250\341\252",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"\202\240\350\256\243\256 \252\256\254\257'\356\342\245\340\240",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"\201\343\244\354-\253\240\341\252\240 \242\341\342\240\242\342\245 \242i\244\344\256\340\254\240\342\256\242\240\255\343 \244\250\341\252\245\342\343 \242 \244\250\242\252\256\242\256\244 A: \342\240",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"\255\240\342\250\341\255i\342\354 ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = \217\340\256\244\256\242\246\250\342\250 F3 = \202\250\251\342\250",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY ukUASelectPartitionEntries[] =
{
{
@@ -1472,7 +1419,7 @@ static MUI_ENTRY ukUAFileCopyEntries[] =
}
};
static MUI_ENTRY ukUABootLoaderEntries[] =
static MUI_ENTRY ukUABootLoaderSelectPageEntries[] =
{
{
4,
@@ -1484,7 +1431,7 @@ static MUI_ENTRY ukUABootLoaderEntries[] =
{
6,
8,
"\202\341\342\240\255\256\242\253\356\242\240\347 \242\341\342\240\255\256\242\253\356\363 \247\240\242\240\255\342\240\246\343\242\240\347",
"Please select where Setup should install the bootloader:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
@@ -1540,6 +1487,13 @@ static MUI_ENTRY ukUABootLoaderInstallPageEntries[] =
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"\202\341\342\240\255\256\242\253\356\242\240\347 \242\341\342\240\255\256\242\253\356\363 \247\240\242\240\255\342\240\246\343\242\240\347.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
@@ -1555,6 +1509,59 @@ static MUI_ENTRY ukUABootLoaderInstallPageEntries[] =
}
};
static MUI_ENTRY ukUABootLoaderRemovableDiskPageEntries[] =
{
{
4,
3,
" \202\341\342\240\255\256\242\253\245\255\255\357 ReactOS " KERNEL_VERSION_STR " ",
TEXT_STYLE_UNDERLINE,
TEXT_ID_STATIC
},
{
6,
8,
"\202\341\342\240\255\256\242\253\356\242\240\347 \255\245 \254\256\246\245 \242\341\342\240\255\256\242\250\342\250 bootloader \255\240 \246\256\340\341\342\252\250\251 \244\250\341\252",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
9,
"\202\240\350\256\243\256 \252\256\254\257'\356\342\245\340\240.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
13,
"\201\343\244\354-\253\240\341\252\240 \242\341\342\240\242\342\245 \242i\244\344\256\340\254\240\342\256\242\240\255\343 \244\250\341\252\245\342\343 \242 \244\250\242\252\256\242\256\244 A:",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
6,
14,
"\342\240 \255\240\342\250\341\255i\342\354 ENTER.",
TEXT_STYLE_NORMAL,
TEXT_ID_STATIC
},
{
0,
0,
"ENTER = \217\340\256\244\256\242\246\250\342\250 F3 = \202\250\251\342\250",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG,
TEXT_ID_STATIC
},
{
0,
0,
NULL,
0
}
};
static MUI_ENTRY ukUAKeyboardSettingsEntries[] =
{
{
@@ -2189,8 +2196,8 @@ MUI_PAGE ukUAPages[] =
ukUAKeyboardSettingsEntries
},
{
BOOT_LOADER_PAGE,
ukUABootLoaderEntries
BOOTLOADER_SELECT_PAGE,
ukUABootLoaderSelectPageEntries
},
{
LAYOUT_SETTINGS_PAGE,
@@ -2205,12 +2212,12 @@ MUI_PAGE ukUAPages[] =
ukUASuccessPageEntries
},
{
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
ukUABootLoaderInstallPageEntries
},
{
BOOT_LOADER_FLOPPY_PAGE,
ukUABootPageEntries
BOOTLOADER_REMOVABLE_DISK_PAGE,
ukUABootLoaderRemovableDiskPageEntries
},
{
REGISTRY_PAGE,

View File

@@ -3173,7 +3173,7 @@ CheckFileSystemPage(PINPUT_RECORD Ir)
if (!GetNextUncheckedPartition(PartitionList, NULL, &PartEntry))
{
return INSTALL_DIRECTORY_PAGE;
return BOOTLOADER_SELECT_PAGE;
}
ASSERT(PartEntry->IsPartitioned && PartEntry->PartitionNumber != 0);
@@ -3821,8 +3821,7 @@ RegistryStatus(IN REGISTRY_STATUS RegStatus, ...)
* Displays the RegistryPage.
*
* Next pages:
* SuccessPage (if RepairUpdate)
* BootLoaderPage (default)
* BootLoaderSelectPage
* QuitPage
*
* SIDEEFFECTS
@@ -3853,51 +3852,43 @@ RegistryPage(PINPUT_RECORD Ir)
else
{
CONSOLE_SetStatusText(MUIGetString(STRING_DONE));
return BOOT_LOADER_PAGE;
return BOOTLOADER_INSTALL_PAGE;
}
}
/*
* Displays the BootLoaderPage.
* Displays the BootLoaderSelectPage.
*
* Next pages:
* SuccessPage (if RepairUpdate)
* BootLoaderHarddiskMbrPage
* BootLoaderHarddiskVbrPage
* BootLoaderFloppyPage
* SuccessPage
* QuitPage
*
* SIDEEFFECTS
* Calls RegInitializeRegistry
* Calls ImportRegistryFile
* Calls SetDefaultPagefile
* Calls SetMountedDeviceValues
*
* RETURNS
* Number of the next page.
*/
static PAGE_NUMBER
BootLoaderPage(PINPUT_RECORD Ir)
BootLoaderSelectPage(PINPUT_RECORD Ir)
{
USHORT Line = 12;
WCHAR PathBuffer[MAX_PATH];
CONSOLE_SetStatusText(MUIGetString(STRING_PLEASEWAIT));
/* We must have a supported system partition by now */
ASSERT(SystemPartition && SystemPartition->IsPartitioned && SystemPartition->PartitionNumber != 0);
RtlFreeUnicodeString(&USetupData.SystemRootPath);
RtlStringCchPrintfW(PathBuffer, ARRAYSIZE(PathBuffer),
L"\\Device\\Harddisk%lu\\Partition%lu\\",
SystemPartition->DiskEntry->DiskNumber,
SystemPartition->PartitionNumber);
RtlCreateUnicodeString(&USetupData.SystemRootPath, PathBuffer);
DPRINT1("SystemRootPath: %wZ\n", &USetupData.SystemRootPath);
/*
* If we repair an existing installation and we made it up to here,
* this means a valid bootloader and boot entry have been found.
* Thus, there is no need to re-install it: skip its installation.
*/
if (RepairUpdateFlag)
{
USetupData.MBRInstallType = 0;
goto Quit;
}
/* For unattended setup, skip MBR installation or install on floppy if needed */
/* For unattended setup, skip MBR installation or install on removable disk if needed */
if (IsUnattendedSetup)
{
if ((USetupData.MBRInstallType == 0) ||
@@ -3909,8 +3900,8 @@ BootLoaderPage(PINPUT_RECORD Ir)
/*
* We may install an MBR or VBR, but before that, check whether
* we need to actually install the VBR on floppy/removable media
* if the system partition is not recognized.
* we need to actually install the VBR on removable disk if the
* system partition is not recognized.
*/
if ((SystemPartition->DiskEntry->DiskStyle != PARTITION_STYLE_MBR) ||
!IsRecognizedPartition(SystemPartition->PartitionType))
@@ -3929,7 +3920,7 @@ BootLoaderPage(PINPUT_RECORD Ir)
}
}
MUIDisplayPage(BOOT_LOADER_PAGE);
MUIDisplayPage(BOOTLOADER_SELECT_PAGE);
CONSOLE_InvertTextXY(8, Line, 60, 1);
while (TRUE)
@@ -4006,62 +3997,39 @@ BootLoaderPage(PINPUT_RECORD Ir)
}
else if (Line == 14)
{
/* Install on floppy */
/* Install on removable disk */
USetupData.MBRInstallType = 1;
break;
}
else if (Line == 15)
{
/* Skip MBR installation */
/* Skip installation */
USetupData.MBRInstallType = 0;
break;
}
return BOOT_LOADER_PAGE;
return BOOTLOADER_SELECT_PAGE;
}
}
Quit:
switch (USetupData.MBRInstallType)
{
/* Skip MBR installation */
case 0:
return SUCCESS_PAGE;
/* Install on floppy */
case 1:
return BOOT_LOADER_FLOPPY_PAGE;
/* Install on both MBR and VBR or VBR only */
case 2:
case 3:
return BOOT_LOADER_INSTALLATION_PAGE;
}
return BOOT_LOADER_PAGE;
/* Continue the installation; the bootloader is installed at the end */
return INSTALL_DIRECTORY_PAGE;
}
/*
* Displays the BootLoaderFloppyPage.
*
* Next pages:
* SuccessPage (At once)
* QuitPage
*
* SIDEEFFECTS
* Calls InstallFatBootcodeToFloppy()
*
* RETURNS
* Number of the next page.
* Installs the bootloader on removable disk.
*/
static PAGE_NUMBER
BootLoaderFloppyPage(PINPUT_RECORD Ir)
static BOOLEAN
BootLoaderRemovableDiskPage(PINPUT_RECORD Ir)
{
NTSTATUS Status;
MUIDisplayPage(BOOT_LOADER_FLOPPY_PAGE);
Retry:
CONSOLE_ClearScreen();
CONSOLE_Flush();
MUIDisplayPage(BOOTLOADER_REMOVABLE_DISK_PAGE);
// CONSOLE_SetStatusText(MUIGetString(STRING_PLEASEWAIT));
while (TRUE)
@@ -4072,7 +4040,7 @@ BootLoaderFloppyPage(PINPUT_RECORD Ir)
(Ir->Event.KeyEvent.wVirtualKeyCode == VK_F3)) /* F3 */
{
if (ConfirmQuit(Ir))
return QUIT_PAGE;
return FALSE;
break;
}
@@ -4086,40 +4054,25 @@ BootLoaderFloppyPage(PINPUT_RECORD Ir)
MUIDisplayError(ERROR_NO_FLOPPY, Ir, POPUP_WAIT_ENTER);
/* TODO: Print error message */
return BOOT_LOADER_FLOPPY_PAGE;
goto Retry;
}
return SUCCESS_PAGE;
return TRUE;
}
}
return BOOT_LOADER_FLOPPY_PAGE;
goto Retry;
}
/*
* Displays the BootLoaderInstallationPage.
*
* Next pages:
* SuccessPage (At once)
* QuitPage
*
* SIDEEFFECTS
* Calls InstallVBRToPartition() if VBR installation is chosen.
* Otherwise both InstallVBRToPartition() and InstallMbrBootCodeToDisk()
* are called if both MBR and VBR installation is chosen.
*
* RETURNS
* Number of the next page.
* Installs the bootloader on hard-disk.
*/
static PAGE_NUMBER
BootLoaderInstallationPage(PINPUT_RECORD Ir)
static BOOLEAN
BootLoaderHardDiskPage(PINPUT_RECORD Ir)
{
NTSTATUS Status;
WCHAR DestinationDevicePathBuffer[MAX_PATH];
MUIDisplayPage(BOOT_LOADER_INSTALLATION_PAGE);
if (USetupData.MBRInstallType == 2)
{
/* Step 1: Write the VBR */
@@ -4131,7 +4084,7 @@ BootLoaderInstallationPage(PINPUT_RECORD Ir)
{
MUIDisplayError(ERROR_WRITE_BOOT, Ir, POPUP_WAIT_ENTER,
SystemPartition->FileSystem);
return QUIT_PAGE;
return FALSE;
}
/* Step 2: Write the MBR if the disk containing the system partition is not a super-floppy */
@@ -4147,7 +4100,7 @@ BootLoaderInstallationPage(PINPUT_RECORD Ir)
{
DPRINT1("InstallMbrBootCodeToDisk() failed (Status %lx)\n", Status);
MUIDisplayError(ERROR_INSTALL_BOOTCODE, Ir, POPUP_WAIT_ENTER, L"MBR");
return QUIT_PAGE;
return FALSE;
}
}
}
@@ -4161,11 +4114,62 @@ BootLoaderInstallationPage(PINPUT_RECORD Ir)
{
MUIDisplayError(ERROR_WRITE_BOOT, Ir, POPUP_WAIT_ENTER,
SystemPartition->FileSystem);
return QUIT_PAGE;
return FALSE;
}
}
return SUCCESS_PAGE;
return TRUE;
}
/*
* Actually installs the bootloader at the end of the installation.
* The bootloader installation place has already been chosen before,
* see BootLoaderSelectPage().
*
* Next pages:
* SuccessPage (At once)
* QuitPage
*
* RETURNS
* Number of the next page.
*/
static PAGE_NUMBER
BootLoaderInstallPage(PINPUT_RECORD Ir)
{
WCHAR PathBuffer[MAX_PATH];
// /* We must have a supported system partition by now */
// ASSERT(SystemPartition && SystemPartition->IsPartitioned && SystemPartition->PartitionNumber != 0);
RtlFreeUnicodeString(&USetupData.SystemRootPath);
RtlStringCchPrintfW(PathBuffer, ARRAYSIZE(PathBuffer),
L"\\Device\\Harddisk%lu\\Partition%lu\\",
SystemPartition->DiskEntry->DiskNumber,
SystemPartition->PartitionNumber);
RtlCreateUnicodeString(&USetupData.SystemRootPath, PathBuffer);
DPRINT1("SystemRootPath: %wZ\n", &USetupData.SystemRootPath);
if (USetupData.MBRInstallType != 0)
MUIDisplayPage(BOOTLOADER_INSTALL_PAGE);
switch (USetupData.MBRInstallType)
{
/* Skip installation */
case 0:
return SUCCESS_PAGE;
/* Install on removable disk */
case 1:
return BootLoaderRemovableDiskPage(Ir) ? SUCCESS_PAGE : QUIT_PAGE;
/* Install on hard-disk (both MBR and VBR, or VBR only) */
case 2:
case 3:
return BootLoaderHardDiskPage(Ir) ? SUCCESS_PAGE : QUIT_PAGE;
default:
return SUCCESS_PAGE;
}
}
@@ -4598,6 +4602,11 @@ RunUSetup(VOID)
Page = CheckFileSystemPage(&Ir);
break;
/* Bootloader selection page */
case BOOTLOADER_SELECT_PAGE:
Page = BootLoaderSelectPage(&Ir);
break;
/* Installation pages */
case INSTALL_DIRECTORY_PAGE:
Page = InstallDirectoryPage(&Ir);
@@ -4615,17 +4624,10 @@ RunUSetup(VOID)
Page = RegistryPage(&Ir);
break;
/* Bootloader installation pages */
case BOOT_LOADER_PAGE:
Page = BootLoaderPage(&Ir);
break;
case BOOT_LOADER_FLOPPY_PAGE:
Page = BootLoaderFloppyPage(&Ir);
break;
case BOOT_LOADER_INSTALLATION_PAGE:
Page = BootLoaderInstallationPage(&Ir);
/* Bootloader installation page */
case BOOTLOADER_INSTALL_PAGE:
// case BOOTLOADER_REMOVABLE_DISK_PAGE:
Page = BootLoaderInstallPage(&Ir);
break;
/* Repair pages */

View File

@@ -104,14 +104,14 @@ typedef enum _PAGE_NUMBER
SELECT_FILE_SYSTEM_PAGE,
FORMAT_PARTITION_PAGE,
CHECK_FILE_SYSTEM_PAGE,
BOOTLOADER_SELECT_PAGE,
PREPARE_COPY_PAGE,
INSTALL_DIRECTORY_PAGE,
FILE_COPY_PAGE,
REGISTRY_PAGE,
BOOT_LOADER_PAGE,
BOOT_LOADER_FLOPPY_PAGE,
BOOT_LOADER_INSTALLATION_PAGE,
BOOTLOADER_INSTALL_PAGE,
BOOTLOADER_REMOVABLE_DISK_PAGE,
SUCCESS_PAGE,
QUIT_PAGE,

View File

@@ -138,8 +138,6 @@ Signature = "$Windows NT$"
"modules/optional/bcmwl5.sys" 3 optional
"modules/optional/alcxwdm.inf" 6 optional
"modules/optional/alcxwdm.sys" 3 optional
"modules/optional/net21x4.inf" 6 optional
"modules/optional/dc21x4.sys" 3 optional
"modules/optional/mfc42.dll" 2 optional
"modules/optional/mfc42u.dll" 2 optional
"modules/optional/mfc71.dll" 2 optional

View File

@@ -215,7 +215,8 @@ Cabinet=reactos.cab
[SetupData]
DefaultPath = \ReactOS
SetupDebugOptions = "/DEBUG /KDSERIAL /DEBUGPORT=COM1 /FIRSTCHANCE"
;SetupDebugOptions = "/DEBUG /KDSERIAL /DEBUGPORT=COM1 /FIRSTCHANCE"
SetupDebugOptions = "/DEBUG /DEBUGPORT=VBOX /FIRSTCHANCE"
;SetupDebugOptions = "/DEBUG /SOS /DEBUGPORT=SCREEN"
OsLoadOptions = "/NOGUIBOOT /NODEBUG"

View File

@@ -0,0 +1,85 @@
/*
* PROJECT: FreeLoader UEFI Support
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
* PURPOSE: x64 assembly UEFI escape helper functions
* COPYRIGHT: Copyright 2023 Justin Miller <justinmiller100@gmail.com>
*/
#include <asm.inc>
#include <arch/pc/x86common.h>
#include <arch/pc/pcbios.h>
EXTERN UefiServiceStack:QWORD
EXTERN BasicStack:QWORD
EXTERN ExecuteLoaderCleanly:PROC
EXTERN UefiExitBootServices:PROC
.code64
// void _exituefi(VOID)
PUBLIC _exituefi
_exituefi:
/* Save non-volatile registers */
push rbp
push rsi
push rdi
push rbx
/* Save the old stack */
mov rbx, rsp
/* Load the new stack */
xor rbp, rbp
mov rsp, qword ptr UefiServiceStack[rip]
/* Call the entry routine, passing the parameters */
mov rax, UefiExitBootServices[rip]
call rax
/* Retore old stack */
mov rsp, rbx
/* Retore non-volatiles */
pop rbx
pop rdi
pop rsi
pop rbp
#ifdef _USE_ML
lgdt fword ptr [_gdtptr]
#else
lgdt cs:[_gdtptr][rip] /* GAS isn't my friend - avoid letting it generate absolute addressing */
#endif
/* All done */
ret
// void _changestack(VOID)
PUBLIC _changestack
_changestack:
mov rax, rsp
mov rsp, BasicStack[rip]
push rax
call ExecuteLoaderCleanly[rip]
ret
.align 8
gdt:
.word HEX(0000), HEX(0000), HEX(0000), HEX(0000) /* 00: NULL descriptor */
.word HEX(0000), HEX(0000), HEX(0000), HEX(0000) /* 08: */
.word HEX(0000), HEX(0000), HEX(9800), HEX(0020) /* 10: long mode CS */
.word HEX(FFFF), HEX(0000), HEX(F300), HEX(00CF) /* 18: long mode DS */
.word HEX(FFFF), HEX(0000), HEX(9E00), HEX(0000) /* 20: 16-bit real mode CS */
.word HEX(FFFF), HEX(0000), HEX(9200), HEX(0000) /* 28: 16-bit real mode DS */
.word HEX(FFFF), HEX(0000), HEX(9B00), HEX(00CF) /* 30: compat mode CS */
/* GDT table pointer */
_gdtptr:
.word HEX(37) /* Limit */
#ifdef _USE_ML
.quad gdt /* Base Address */
#else
.quad gdt, 0 /* Base Address */
#endif
END

View File

@@ -0,0 +1,109 @@
/*
* PROJECT: FreeLoader UEFI Support
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
* PURPOSE: i386 assembly UEFI escape helper functions
* COPYRIGHT: Copyright 2023 Justin Miller <justinmiller100@gmail.com>
*/
#include <asm.inc>
#include <arch/pc/x86common.h>
#include <arch/pc/pcbios.h>
PUBLIC _gdtptr
PUBLIC _i386idtptr
PUBLIC __changestack
EXTERN _UefiServiceStack:DWORD
EXTERN _i386Idt:DWORD
EXTERN _ExecuteLoaderCleanly:PROC
EXTERN _UefiExitBootServices:PROC
EXTERN _BasicStack:DWORD
.code32
// void __exituefi(VOID)
PUBLIC __exituefi
__exituefi:
push ebp
push esi
push edi
push ebx
/* Save the old stack */
mov ebx, esp
/* Load the new stack */
xor ebp, ebp
mov esp, _UefiServiceStack
/* Call the entry routine, passing the parameters */
call _UefiExitBootServices
/* Retore old stack */
mov esp, ebx
/* Retore non-volatiles */
pop ebx
pop edi
pop esi
pop ebp
#ifdef _USE_ML
lidt fword ptr ds:[_i386idtptr]
lgdt fword ptr [_gdtptr]
#else
lgdt cs:[_gdtptr]
lidt _i386idtptr
#endif
/* All done */
ret
// void __reloadsegment(VOID)
PUBLIC __changestack
__changestack:
mov eax, esp
mov esp, _BasicStack
push eax
call _ExecuteLoaderCleanly
ret
.align 4 /* force 4-byte alignment */
gdt:
/* NULL Descriptor */
.word HEX(0000)
.word HEX(0000)
.word HEX(0000)
.word HEX(0000)
/* 32-bit flat CS */
.word HEX(FFFF)
.word HEX(0000)
.word HEX(9A00)
.word HEX(00CF)
/* 32-bit flat DS */
.word HEX(FFFF)
.word HEX(0000)
.word HEX(9200)
.word HEX(00CF)
/* 16-bit real mode CS */
.word HEX(FFFF)
.word HEX(0000)
.word HEX(9E00)
.word HEX(0000)
/* 16-bit real mode DS */
.word HEX(FFFF)
.word HEX(0000)
.word HEX(9200)
.word HEX(0000)
/* GDT table pointer */
_gdtptr:
.word HEX(27) /* Limit */
.long gdt, 0 /* Base Address */
_i386idtptr:
.word 255 /* Limit */
.long _i386Idt /* Base Address */
END

View File

@@ -43,12 +43,6 @@ UefiGetExtendedBIOSData(PULONG ExtendedBIOSDataArea,
}
PCONFIGURATION_COMPONENT_DATA
UefiHwDetect(VOID)
{
return 0;
}
VOID
UefiPcBeep(VOID)
{

View File

@@ -138,6 +138,5 @@ UefiConsGetCh(VOID)
/* UEFI will stack input requests, we have to clear it */
Key.UnicodeChar = 0;
Key.ScanCode = 0;
GlobalSystemTable->ConIn->Reset(GlobalSystemTable->ConIn, FALSE);
return KeyOutput;
}

View File

@@ -0,0 +1,149 @@
/*
* PROJECT: FreeLoader UEFI Support
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
* PURPOSE: Hardware detection routines
* COPYRIGHT: Copyright 2022 Justin Miller <justinmiller100@gmail.com>
*/
/* INCLUDES ******************************************************************/
#include <uefildr.h>
#include <debug.h>
DBG_DEFAULT_CHANNEL(WARNING);
/* GLOBALS *******************************************************************/
extern EFI_SYSTEM_TABLE * GlobalSystemTable;
extern EFI_HANDLE GlobalImageHandle;
extern UCHAR PcBiosDiskCount;
extern EFI_MEMORY_DESCRIPTOR* EfiMemoryMap;
extern UINT32 FreeldrDescCount;
BOOLEAN AcpiPresent = FALSE;
/* FUNCTIONS *****************************************************************/
static
PRSDP_DESCRIPTOR
FindAcpiBios(VOID)
{
UINTN i;
RSDP_DESCRIPTOR* rsdp = NULL;
EFI_GUID acpi2_guid = EFI_ACPI_20_TABLE_GUID;
for (i = 0; i < GlobalSystemTable->NumberOfTableEntries; i++)
{
if (!memcmp(&GlobalSystemTable->ConfigurationTable[i].VendorGuid,
&acpi2_guid, sizeof(acpi2_guid)))
{
rsdp = (RSDP_DESCRIPTOR*)GlobalSystemTable->ConfigurationTable[i].VendorTable;
break;
}
}
return rsdp;
}
VOID
DetectAcpiBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
{
PCONFIGURATION_COMPONENT_DATA BiosKey;
PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor;
PRSDP_DESCRIPTOR Rsdp;
PACPI_BIOS_DATA AcpiBiosData;
ULONG TableSize;
Rsdp = FindAcpiBios();
if (Rsdp)
{
/* Set up the flag in the loader block */
AcpiPresent = TRUE;
/* Calculate the table size */
TableSize = FreeldrDescCount * sizeof(BIOS_MEMORY_MAP) +
sizeof(ACPI_BIOS_DATA) - sizeof(BIOS_MEMORY_MAP);
/* Set 'Configuration Data' value */
PartialResourceList = FrLdrHeapAlloc(sizeof(CM_PARTIAL_RESOURCE_LIST) +
TableSize, TAG_HW_RESOURCE_LIST);
if (PartialResourceList == NULL)
{
ERR("Failed to allocate resource descriptor\n");
return;
}
RtlZeroMemory(PartialResourceList, sizeof(CM_PARTIAL_RESOURCE_LIST) + TableSize);
PartialResourceList->Version = 0;
PartialResourceList->Revision = 0;
PartialResourceList->Count = 1;
PartialDescriptor = &PartialResourceList->PartialDescriptors[0];
PartialDescriptor->Type = CmResourceTypeDeviceSpecific;
PartialDescriptor->ShareDisposition = CmResourceShareUndetermined;
PartialDescriptor->u.DeviceSpecificData.DataSize = TableSize;
/* Fill the table */
AcpiBiosData = (PACPI_BIOS_DATA)&PartialResourceList->PartialDescriptors[1];
if (Rsdp->revision > 0)
{
TRACE("ACPI >1.0, using XSDT address\n");
AcpiBiosData->RSDTAddress.QuadPart = Rsdp->xsdt_physical_address;
}
else
{
TRACE("ACPI 1.0, using RSDT address\n");
AcpiBiosData->RSDTAddress.LowPart = Rsdp->rsdt_physical_address;
}
AcpiBiosData->Count = FreeldrDescCount;
memcpy(AcpiBiosData->MemoryMap, EfiMemoryMap,
FreeldrDescCount * sizeof(BIOS_MEMORY_MAP));
TRACE("RSDT %p, data size %x\n", Rsdp->rsdt_physical_address, TableSize);
/* Create new bus key */
FldrCreateComponentKey(SystemKey,
AdapterClass,
MultiFunctionAdapter,
0x0,
0x0,
0xFFFFFFFF,
"ACPI BIOS",
PartialResourceList,
sizeof(CM_PARTIAL_RESOURCE_LIST) + TableSize,
&BiosKey);
/* Increment bus number */
(*BusNumber)++;
}
}
PCONFIGURATION_COMPONENT_DATA
UefiHwDetect(VOID)
{
PCONFIGURATION_COMPONENT_DATA SystemKey;
ULONG BusNumber = 0;
TRACE("DetectHardware()\n");
/* Create the 'System' key */
#if defined(_M_IX86) || defined(_M_AMD64)
FldrCreateSystemKey(&SystemKey, "AT/AT COMPATIBLE");
#elif defined(_M_IA64)
FldrCreateSystemKey(&SystemKey, "Intel Itanium processor family");
#elif defined(_M_ARM) || defined(_M_ARM64)
FldrCreateSystemKey(&SystemKey, "ARM processor family");
#else
#error Please define a system key for your architecture
#endif
/* Detect ACPI */
DetectAcpiBios(SystemKey, &BusNumber);
TRACE("DetectHardware() Done\n");
return SystemKey;
}

View File

@@ -8,11 +8,16 @@
#include <uefildr.h>
#include <debug.h>
DBG_DEFAULT_CHANNEL(WARNING);
/* GLOBALS ********************************************************************/
EFI_HANDLE GlobalImageHandle;
EFI_SYSTEM_TABLE *GlobalSystemTable;
PVOID UefiServiceStack;
PVOID BasicStack;
void _changestack(VOID);
/* FUNCTIONS ******************************************************************/
@@ -25,15 +30,61 @@ EfiEntry(
GlobalImageHandle = ImageHandle;
GlobalSystemTable = SystemTable;
BootMain(NULL);
/* Needed for default settings */
CmdLineParse("");
/* Debugger pre-initialization */
DebugInit(0);
MachInit("");
/* UI pre-initialization */
if (!UiInitialize(FALSE))
{
UiMessageBoxCritical("Unable to initialize UI.");
goto Quit;
}
/* Initialize memory manager */
if (!MmInitializeMemoryManager())
{
UiMessageBoxCritical("Unable to initialize memory manager.");
goto Quit;
}
/* Initialize I/O subsystem */
FsInit();
/* 0x32000 is what UEFI defines, but we can go smaller if we want */
BasicStack = (PVOID)((ULONG_PTR)0x32000 + (ULONG_PTR)MmAllocateMemoryWithType(0x32000, LoaderOsloaderStack));
_changestack();
Quit:
/* If we reach this point, something went wrong before, therefore reboot */
Reboot();
UNREACHABLE;
return 0;
}
void
ExecuteLoaderCleanly(PVOID PreviousStack)
{
TRACE("ExecuteLoaderCleanly Entry\n");
UefiServiceStack = PreviousStack;
RunLoader();
UNREACHABLE;
}
#ifndef _M_ARM
VOID __cdecl Reboot(VOID)
{
//TODO: Replace with a true firmware reboot eventually
WARN("Something has gone wrong - halting FreeLoader\n");
for (;;)
{
NOTHING;
}
}
#endif

View File

@@ -27,6 +27,7 @@ AddMemoryDescriptor(
/* GLOBALS *******************************************************************/
extern ULONG LoaderPagesSpanned;
extern EFI_SYSTEM_TABLE* GlobalSystemTable;
extern EFI_HANDLE GlobalImageHandle;
extern REACTOS_INTERNAL_BGCONTEXT framebufferData;
@@ -39,6 +40,8 @@ EFI_HANDLE PublicBootHandle;
PVOID ExitStack;
PVOID EndofExitStack;
void _exituefi(VOID);
/* FUNCTIONS *****************************************************************/
static
@@ -85,56 +88,13 @@ VOID
UefiSetMemory(
_Inout_ PFREELDR_MEMORY_DESCRIPTOR MemoryMap,
_In_ ULONG_PTR BaseAddress,
_In_ PFN_COUNT Size,
_In_ PFN_COUNT SizeInPages,
_In_ TYPE_OF_MEMORY MemoryType)
{
ULONG_PTR BasePage, PageCount;
BasePage = BaseAddress / EFI_PAGE_SIZE;
PageCount = Size;
/* Add the memory descriptor */
FreeldrDescCount = AddMemoryDescriptor(MemoryMap,
UNUSED_MAX_DESCRIPTOR_COUNT,
BasePage,
PageCount,
MemoryType);
}
VOID
ReserveMemory(
_Inout_ PFREELDR_MEMORY_DESCRIPTOR MemoryMap,
_In_ ULONG_PTR BaseAddress,
_In_ PFN_NUMBER Size,
_In_ TYPE_OF_MEMORY MemoryType,
_In_ PCHAR Usage)
{
ULONG_PTR BasePage, PageCount;
ULONG i;
BasePage = BaseAddress / PAGE_SIZE;
PageCount = ADDRESS_AND_SIZE_TO_SPAN_PAGES(BaseAddress, Size);
for (i = 0; i < FreeldrDescCount; i++)
{
/* Check for conflicting descriptor */
if ((MemoryMap[i].BasePage < BasePage + PageCount) &&
(MemoryMap[i].BasePage + MemoryMap[i].PageCount > BasePage))
{
/* Check if the memory is free */
if (MemoryMap[i].MemoryType != LoaderFree)
{
FrLdrBugCheckWithMessage(
MEMORY_INIT_FAILURE,
__FILE__,
__LINE__,
"Failed to reserve memory in the range 0x%Ix - 0x%Ix for %s",
BaseAddress,
Size,
Usage);
}
}
}
PageCount = SizeInPages;
/* Add the memory descriptor */
FreeldrDescCount = AddMemoryDescriptor(MemoryMap,
@@ -256,19 +216,36 @@ UefiMemGetMemoryMap(ULONG *MemoryMapSize)
}
}
UefiSetMemory(FreeldrMem,
MapEntry->PhysicalStart,
MapEntry->NumberOfPages,
MemoryType);
/* Sometimes our loader can be loaded into higher memory than we ever allocate */
if (MemoryType == LoaderLoadedProgram)
{
if (((MapEntry->PhysicalStart + (MapEntry->NumberOfPages * PAGE_SIZE)) >> EFI_PAGE_SHIFT) > LoaderPagesSpanned)
{
/* This value needs to be adjusted if this occurs */
LoaderPagesSpanned = ((MapEntry->PhysicalStart + (MapEntry->NumberOfPages * PAGE_SIZE)) >> EFI_PAGE_SHIFT);
}
}
/* We really don't want to touch these reserved spots at all */
if (MemoryType != LoaderReserve)
{
UefiSetMemory(FreeldrMem,
MapEntry->PhysicalStart,
MapEntry->NumberOfPages,
MemoryType);
}
MapEntry = NEXT_MEMORY_DESCRIPTOR(MapEntry, DescriptorSize);
}
/* Windows expects the first page to be reserved, otherwise it asserts.
* However it can be just a free page on some UEFI systems. */
UefiSetMemory(FreeldrMem, 0x000000, 1, LoaderFirmwarePermanent);
*MemoryMapSize = FreeldrDescCount;
return FreeldrMem;
}
static VOID
VOID
UefiExitBootServices(VOID)
{
UINTN MapKey;
@@ -306,7 +283,5 @@ UefiExitBootServices(VOID)
VOID
UefiPrepareForReactOS(VOID)
{
UefiExitBootServices();
ExitStack = MmAllocateMemoryWithType(EXIT_STACK_SIZE, LoaderOsloaderStack);
EndofExitStack = (PVOID)((ULONG_PTR)ExitStack + EXIT_STACK_SIZE);
_exituefi();
}

View File

@@ -14,7 +14,6 @@ DBG_DEFAULT_CHANNEL(WARNING);
extern EFI_SYSTEM_TABLE* GlobalSystemTable;
extern EFI_HANDLE GlobalImageHandle;
BOOLEAN AcpiPresent = FALSE;
/* FUNCTIONS ******************************************************************/

View File

@@ -16,6 +16,7 @@ list(APPEND UEFILDR_ARC_SOURCE
arch/uefi/stubs.c
arch/uefi/ueficon.c
arch/uefi/uefidisk.c
arch/uefi/uefihw.c
arch/uefi/uefimem.c
arch/uefi/uefisetup.c
arch/uefi/uefiutil.c
@@ -23,11 +24,14 @@ list(APPEND UEFILDR_ARC_SOURCE
arch/vgafont.c)
if(ARCH STREQUAL "i386")
list(APPEND UEFILDR_ARC_SOURCE
arch/i386/i386idt.c)
list(APPEND UEFILDR_COMMON_ASM_SOURCE
arch/uefi/i386/uefiasm.S
arch/i386/i386trap.S)
elseif(ARCH STREQUAL "amd64")
#TBD
list(APPEND UEFILDR_COMMON_ASM_SOURCE
arch/uefi/amd64/uefiasm.S)
elseif(ARCH STREQUAL "arm")
list(APPEND UEFILDR_ARC_SOURCE
arch/arm/macharm.c
@@ -88,6 +92,11 @@ set_target_properties(uefildr PROPERTIES SUFFIX ".efi")
target_compile_definitions(uefildr PRIVATE UEFIBOOT)
# On AMD64 we only map 1GB with freeloader, tell UEFI to keep us low!
if(ARCH STREQUAL "amd64")
set_image_base(uefildr 0x10000)
endif()
if(MSVC)
if(NOT ARCH STREQUAL "arm")
target_link_options(uefildr PRIVATE /DYNAMICBASE:NO)

View File

@@ -76,48 +76,58 @@ if not defined ARCH (
set USE_CLANG_CL=0
REM Parse command line parameters
set CMAKE_PARAMS=
set REMAINING=%*
:repeat
REM Extract a parameter without removing '='
for /f "tokens=1*" %%a in ("%REMAINING%") do (
set "PARAM=%%a"
set REMAINING=%%b
)
if "%BUILD_ENVIRONMENT%" == "MinGW" (
if /I "%1" == "Codeblocks" (
if /I "!PARAM!" == "Codeblocks" (
set CMAKE_GENERATOR="CodeBlocks - MinGW Makefiles"
) else if /I "%1" == "Eclipse" (
) else if /I "!PARAM!" == "Eclipse" (
set CMAKE_GENERATOR="Eclipse CDT4 - MinGW Makefiles"
) else if /I "%1" == "Makefiles" (
) else if /I "!PARAM!" == "Makefiles" (
set CMAKE_GENERATOR="MinGW Makefiles"
) else if /I "%1" == "Ninja" (
) else if /I "!PARAM!" == "Ninja" (
set CMAKE_GENERATOR="Ninja"
) else if /I "%1" == "VSSolution" (
) else if /I "!PARAM!" == "VSSolution" (
echo. && echo Error: Creation of VS Solution files is not supported in a MinGW environment.
echo Please run this command in a [Developer] Command Prompt for Visual Studio.
goto quit
) else if /I "%1" NEQ "" (
echo.%1| find /I "-D" >nul 2>&1
if not errorlevel 1 (
REM User is passing a switch to CMake
REM Ignore it, and ignore the next parameter that follows
Shift
) else (
echo. && echo Warning: Unrecognized switch "%1" && echo.
)
) else if /I "!PARAM:~0,2!" == "-D" (
REM User is passing a switch to CMake
set "CMAKE_PARAMS=%CMAKE_PARAMS% !PARAM!"
) else (
goto continue
echo. && echo Warning: Unrecognized switch "!PARAM!" && echo.
)
) else (
if /I "%1" == "CodeBlocks" (
if /I "!PARAM!" == "CodeBlocks" (
set CMAKE_GENERATOR="CodeBlocks - NMake Makefiles"
) else if /I "%1" == "Eclipse" (
) else if /I "!PARAM!" == "Eclipse" (
set CMAKE_GENERATOR="Eclipse CDT4 - NMake Makefiles"
) else if /I "%1" == "Makefiles" (
) else if /I "!PARAM!" == "Makefiles" (
set CMAKE_GENERATOR="NMake Makefiles"
) else if /I "%1" == "Ninja" (
) else if /I "!PARAM!" == "Ninja" (
set CMAKE_GENERATOR="Ninja"
) else if /I "%1" == "clang" (
) else if /I "!PARAM!" == "clang" (
set USE_CLANG_CL=1
) else if /I "%1" == "VSSolution" (
) else if /I "!PARAM!" == "VSSolution" (
set VS_SOLUTION=1
REM explicitly set VS version for project generator
if /I "%2" == "-VS_VER" (
set VS_VERSION=%3
for /f "tokens=1*" %%a in ("%REMAINING%") do (
set PARAM=%%a
set REMAINING2=%%b
)
if /I "!PARAM!" == "-VS_VER" (
for /f "tokens=1*" %%a in ("!REMAINING2!") do (
set VS_VERSION=%%a
set REMAINING=%%b
)
echo Visual Studio Environment set to !BUILD_ENVIRONMENT!!VS_VERSION!-!ARCH!
)
set CMAKE_GENERATOR="Visual Studio !VS_VERSION!"
@@ -130,24 +140,16 @@ REM Parse command line parameters
) else if "!ARCH!" == "arm64" (
set CMAKE_ARCH=-A ARM64
)
) else if /I "%1" NEQ "" (
echo.%1| find /I "-D" >nul 2>&1
if not errorlevel 1 (
REM User is passing a switch to CMake
REM Ignore it, and ignore the next parameter that follows
Shift
) else (
echo. && echo Warning: Unrecognized switch "%1" && echo.
)
) else if /I "!PARAM:~0,2!" == "-D" (
REM User is passing a switch to CMake
set "CMAKE_PARAMS=%CMAKE_PARAMS% !PARAM!"
) else (
goto continue
echo. && echo Warning: Unrecognized switch "!PARAM!" && echo.
)
)
REM Go to next parameter
SHIFT
goto repeat
:continue
if defined REMAINING goto repeat
REM Inform the user about the default build
if "!CMAKE_GENERATOR!" == "Ninja" (
@@ -194,11 +196,11 @@ if EXIST CMakeCache.txt (
if "%BUILD_ENVIRONMENT%" == "MinGW" (
cmake -G %CMAKE_GENERATOR% -DENABLE_CCACHE:BOOL=0 -DCMAKE_TOOLCHAIN_FILE:FILEPATH=%MINGW_TOOCHAIN_FILE% -DARCH:STRING=%ARCH% %BUILD_TOOLS_FLAG% %* "%REACTOS_SOURCE_DIR%"
cmake -G %CMAKE_GENERATOR% -DENABLE_CCACHE:BOOL=0 -DCMAKE_TOOLCHAIN_FILE:FILEPATH=%MINGW_TOOCHAIN_FILE% -DARCH:STRING=%ARCH% %BUILD_TOOLS_FLAG% %CMAKE_PARAMS% "%REACTOS_SOURCE_DIR%"
) else if %USE_CLANG_CL% == 1 (
cmake -G %CMAKE_GENERATOR% -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=%ARCH% %BUILD_TOOLS_FLAG% -DUSE_CLANG_CL:BOOL=1 %* "%REACTOS_SOURCE_DIR%"
cmake -G %CMAKE_GENERATOR% -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=%ARCH% %BUILD_TOOLS_FLAG% -DUSE_CLANG_CL:BOOL=1 %CMAKE_PARAMS% "%REACTOS_SOURCE_DIR%"
) else (
cmake -G %CMAKE_GENERATOR% %CMAKE_ARCH% -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=%ARCH% %BUILD_TOOLS_FLAG% %* "%REACTOS_SOURCE_DIR%"
cmake -G %CMAKE_GENERATOR% %CMAKE_ARCH% -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=%ARCH% %BUILD_TOOLS_FLAG% %CMAKE_PARAMS% "%REACTOS_SOURCE_DIR%"
)
if %ERRORLEVEL% NEQ 0 (

View File

@@ -74,9 +74,6 @@ BuildAdvPropTitle(IDataObject *pdo, LPTSTR lpBuffer, DWORD dwBufferLen)
LocalFree((HLOCAL)lpDisplayName);
}
typedef HPSXA (WINAPI * CPSEAE)(HKEY,LPCWSTR,UINT,IDataObject*);
BOOL
DisplayAdvancedSettings(HWND hWndParent, PDISPLAY_DEVICE_ENTRY DisplayDevice)
{
@@ -86,10 +83,6 @@ DisplayAdvancedSettings(HWND hWndParent, PDISPLAY_DEVICE_ENTRY DisplayDevice)
HPSXA hpsxaDev, hpsxaDisp;
BOOL Ret;
IDataObject *pdo;
#ifdef _MSC_VER
HMODULE hShell32 = NULL;
CPSEAE msvc_SHCreatePropSheetExtArrayEx;
#endif
/* FIXME: Build the "%s and %s" caption string for the monitor and adapter name */
szCaption[0] = _T('\0');
@@ -109,25 +102,13 @@ DisplayAdvancedSettings(HWND hWndParent, PDISPLAY_DEVICE_ENTRY DisplayDevice)
if (pdo != NULL)
BuildAdvPropTitle(pdo, szCaption, sizeof(szCaption) / sizeof(szCaption[0]));
#ifdef _MSC_VER
hShell32 = LoadLibrary(_T("shell32.dll"));
if (hShell32 == NULL)
return FALSE;
msvc_SHCreatePropSheetExtArrayEx = (CPSEAE)GetProcAddress(hShell32, (LPCSTR)194);
hpsxaDev = msvc_SHCreatePropSheetExtArrayEx(HKEY_LOCAL_MACHINE, REGSTR_PATH_CONTROLSFOLDER TEXT("\\Device"), MAX_ADVANCED_PAGES - psh.nPages, pdo);
#else
hpsxaDev = SHCreatePropSheetExtArrayEx(HKEY_LOCAL_MACHINE, REGSTR_PATH_CONTROLSFOLDER TEXT("\\Device"), MAX_ADVANCED_PAGES - psh.nPages, pdo);
#endif
if (hpsxaDev != NULL)
SHAddFromPropSheetExtArray(hpsxaDev, PropSheetAddPage, (LPARAM)&psh);
SHAddFromPropSheetExtArray(hpsxaDev, PropSheetAddPage, (LPARAM)&psh);
#ifdef _MSC_VER
hpsxaDisp = msvc_SHCreatePropSheetExtArrayEx(HKEY_LOCAL_MACHINE, REGSTR_PATH_CONTROLSFOLDER TEXT("\\Display"), MAX_ADVANCED_PAGES - psh.nPages, pdo);
#else
hpsxaDisp = SHCreatePropSheetExtArrayEx(HKEY_LOCAL_MACHINE, REGSTR_PATH_CONTROLSFOLDER TEXT("\\Display"), MAX_ADVANCED_PAGES - psh.nPages, pdo);
#endif
if (hpsxaDisp != NULL)
SHAddFromPropSheetExtArray(hpsxaDisp, PropSheetAddPage, (LPARAM)&psh);
SHAddFromPropSheetExtArray(hpsxaDisp, PropSheetAddPage, (LPARAM)&psh);
Ret = (LONG)(PropertySheet(&psh) != -1);
@@ -139,9 +120,5 @@ DisplayAdvancedSettings(HWND hWndParent, PDISPLAY_DEVICE_ENTRY DisplayDevice)
IDataObject_Release(pdo);
#ifdef _MSC_VER
FreeLibrary(hShell32);
#endif
return Ret;
}

View File

@@ -8,11 +8,22 @@
*/
#include "desk.h"
#include <shellapi.h>
#include <cplext.h>
#include <winnls.h>
#define NDEBUG
#include <debug.h>
#define NUM_APPLETS (1)
/* Enable this for InstallScreenSaverW() to determine a possible full path
* to the specified screensaver file, verify its existence and use it.
* (NOTE: This is not Windows desk.cpl-compatible.) */
// #define CHECK_SCR_FULL_PATH
VOID WINAPI Control_RunDLLW(HWND hWnd, HINSTANCE hInst, LPCWSTR cmd, DWORD nCmdShow);
static LONG APIENTRY DisplayApplet(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam);
@@ -23,11 +34,11 @@ INT_PTR CALLBACK AppearancePageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPAR
INT_PTR CALLBACK SettingsPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
UINT CALLBACK SettingsPageCallbackProc(HWND hwnd, UINT uMsg, LPPROPSHEETPAGE ppsp);
HINSTANCE hApplet = 0;
HWND hCPLWindow;
HINSTANCE hApplet = NULL;
HWND hCPLWindow = NULL;
/* Applets */
APPLET Applets[NUM_APPLETS] =
APPLET Applets[] =
{
{
IDC_DESK_ICON,
@@ -208,8 +219,8 @@ DisplayApplet(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
g_GlobalData.bmMonHeight = bitmap.bmHeight;
}
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
psh.dwSize = sizeof(PROPSHEETHEADER);
ZeroMemory(&psh, sizeof(psh));
psh.dwSize = sizeof(psh);
psh.dwFlags = PSH_USECALLBACK | PSH_PROPTITLE | PSH_USEICONID;
psh.hwndParent = hCPLWindow;
psh.hInstance = hApplet;
@@ -223,7 +234,7 @@ DisplayApplet(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
/* Allow shell extensions to replace the background page */
hpsxa = SHCreatePropSheetExtArray(HKEY_LOCAL_MACHINE, REGSTR_PATH_CONTROLSFOLDER TEXT("\\Desk"), MAX_DESK_PAGES - psh.nPages);
for (i = 0; i != sizeof(PropPages) / sizeof(PropPages[0]); i++)
for (i = 0; i < _countof(PropPages); i++)
{
if (pwszSelectedTab && wcsicmp(pwszSelectedTab, PropPages[i].Name) == 0)
psh.nStartPage = i;
@@ -273,10 +284,10 @@ CPlApplet(HWND hwndCPl, UINT uMsg, LPARAM lParam1, LPARAM lParam2)
return TRUE;
case CPL_GETCOUNT:
return NUM_APPLETS;
return _countof(Applets);
case CPL_INQUIRE:
if (i < NUM_APPLETS)
if (i < _countof(Applets))
{
CPLINFO *CPlInfo = (CPLINFO*)lParam2;
CPlInfo->lData = 0;
@@ -291,14 +302,14 @@ CPlApplet(HWND hwndCPl, UINT uMsg, LPARAM lParam1, LPARAM lParam2)
break;
case CPL_DBLCLK:
if (i < NUM_APPLETS)
if (i < _countof(Applets))
Applets[i].AppletProc(hwndCPl, uMsg, lParam1, lParam2);
else
return TRUE;
break;
case CPL_STARTWPARMSW:
if (i < NUM_APPLETS)
if (i < _countof(Applets))
return Applets[i].AppletProc(hwndCPl, uMsg, lParam1, lParam2);
break;
}
@@ -314,45 +325,90 @@ InstallScreenSaverW(
IN LPCWSTR pszFile,
IN UINT nCmdShow)
{
WCHAR pszSystemDir[MAX_PATH];
WCHAR pszDrive[3];
WCHAR pszPath[MAX_PATH];
WCHAR pszFilename[MAX_PATH];
WCHAR pszExt[MAX_PATH];
LPWSTR pszOutName;
UINT uCompressionType=FILE_COMPRESSION_NONE;
DWORD dwSourceSize;
DWORD dwTargetSize;
DWORD rc;
LRESULT rc;
HKEY regKey;
INT Timeout;
#ifdef CHECK_SCR_FULL_PATH
HANDLE hFile;
WIN32_FIND_DATAW fdFile;
#endif
DWORD dwLen;
WCHAR szFullPath[MAX_PATH];
if (!pszFile)
{
DPRINT("InstallScreenSaver() null file\n");
DPRINT1("InstallScreenSaver() null file\n");
SetLastError(ERROR_INVALID_PARAMETER);
return;
}
DPRINT("InstallScreenSaver() Installing screensaver %ls\n", pszFile);
rc = SetupGetFileCompressionInfoW(pszFile, &pszOutName, &dwSourceSize, &dwTargetSize, &uCompressionType);
if (ERROR_SUCCESS != rc)
#ifdef CHECK_SCR_FULL_PATH
/* Retrieve the actual path to the file and verify whether it exists */
dwLen = GetFullPathNameW(pszFile, _countof(szFullPath), szFullPath, NULL);
if (dwLen == 0 || dwLen > _countof(szFullPath))
{
DPRINT("InstallScreenSaver() SetupGetFileCompressionInfo failed with error 0x%lx\n", rc);
SetLastError(rc);
DPRINT1("InstallScreenSaver() File %ls not accessible\n", pszFile);
return;
}
if (!GetSystemDirectoryW((LPWSTR)pszSystemDir, sizeof(pszSystemDir)/sizeof(WCHAR)))
hFile = FindFirstFile(szFullPath, &fdFile);
if (hFile == INVALID_HANDLE_VALUE)
{
MyFree(pszOutName);
DPRINT("InstallScreenSaver() GetSystemDirectory failed with error 0x%lx\n", GetLastError());
DPRINT1("InstallScreenSaver() File %ls not found\n", pszFile);
return;
}
_wsplitpath(pszOutName, pszDrive, pszPath, pszFilename, pszExt);
MyFree(pszOutName);
StringCbCatW(pszSystemDir, sizeof(pszSystemDir), L"\\");
StringCbCatW(pszSystemDir, sizeof(pszSystemDir), pszFilename);
StringCbCatW(pszSystemDir, sizeof(pszSystemDir), pszExt);
rc = SetupDecompressOrCopyFileW(pszFile, pszSystemDir, &uCompressionType);
DPRINT("InstallScreenSaver() Copying to %ls, compression type %d return 0x%lx\n", pszFile, uCompressionType, rc);
FindClose(hFile);
/* Use the full file path from now on */
pszFile = szFullPath;
#endif
rc = RegOpenKeyExW(HKEY_CURRENT_USER,
L"Control Panel\\Desktop",
0,
KEY_SET_VALUE,
&regKey);
if (rc == ERROR_SUCCESS)
{
/* Set the screensaver */
SIZE_T Length = (wcslen(pszFile) + 1) * sizeof(WCHAR);
rc = RegSetValueExW(regKey,
L"SCRNSAVE.EXE",
0,
REG_SZ,
(PBYTE)pszFile,
(DWORD)Length);
RegCloseKey(regKey);
}
if (rc != ERROR_SUCCESS)
{
DPRINT1("InstallScreenSaver() Could not change the current screensaver\n");
return;
}
SystemParametersInfoW(SPI_SETSCREENSAVEACTIVE, TRUE, 0, SPIF_UPDATEINIFILE);
/* If no screensaver timeout is present, default to 10 minutes (600 seconds) */
Timeout = 0;
if (!SystemParametersInfoW(SPI_GETSCREENSAVETIMEOUT, 0, &Timeout, 0) || (Timeout <= 0))
SystemParametersInfoW(SPI_SETSCREENSAVETIMEOUT, 600, 0, SPIF_UPDATEINIFILE);
/* Retrieve the name of this current instance of desk.cpl */
dwLen = GetModuleFileNameW(hApplet, szFullPath, _countof(szFullPath));
if ((dwLen == 0) || (GetLastError() == ERROR_INSUFFICIENT_BUFFER))
{
/* We failed, copy the default value */
StringCchCopyW(szFullPath, _countof(szFullPath), L"desk.cpl");
}
/* Build the desk.cpl command-line to start the ScreenSaver page.
* Equivalent to: "desk.cpl,ScreenSaver,@ScreenSaver" */
rc = StringCchCatW(szFullPath, _countof(szFullPath), L",,1");
if (FAILED(rc))
return;
/* Open the ScreenSaver page in this desk.cpl instance */
DPRINT("InstallScreenSaver() Starting '%ls'\n", szFullPath);
Control_RunDLLW(hWindow, hInstance, szFullPath, nCmdShow);
}
void
@@ -364,23 +420,40 @@ InstallScreenSaverA(
IN UINT nCmdShow)
{
LPWSTR lpwString;
int nLength;
if (!pszFile)
{
DPRINT("InstallScreenSaver() null file\n");
DPRINT1("InstallScreenSaver() null file\n");
SetLastError(ERROR_INVALID_PARAMETER);
return;
}
DPRINT("InstallScreenSaver() Install from file %s\n", pszFile);
lpwString = pSetupMultiByteToUnicode(pszFile, 0);
/* Convert the string to unicode */
lpwString = NULL;
nLength = MultiByteToWideChar(CP_ACP, 0, pszFile, -1, NULL, 0);
if (nLength != 0)
{
lpwString = LocalAlloc(LMEM_FIXED, nLength * sizeof(WCHAR));
if (lpwString)
{
if (!MultiByteToWideChar(CP_ACP, 0, pszFile, -1, lpwString, nLength))
{
LocalFree(lpwString);
lpwString = NULL;
}
}
}
if (!lpwString)
{
DPRINT("InstallScreenSaver() not enough memory to convert string to unicode\n");
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
DPRINT1("InstallScreenSaver() not enough memory to convert string to unicode\n");
return;
}
/* Call the unicode function */
InstallScreenSaverW(hWindow, hInstance, lpwString, nCmdShow);
MyFree(lpwString);
LocalFree(lpwString);
}
BOOL WINAPI

View File

@@ -1,6 +1,7 @@
@ stdcall CPlApplet(ptr long ptr ptr)
@ stdcall DisplayClassInstaller(long ptr ptr)
@ stdcall DisplaySaveSettings(ptr ptr)
@ stdcall InstallScreenSaverW(long long ptr long)
@ stdcall InstallScreenSaverA(long long ptr long)
@ stdcall InstallScreenSaver(ptr ptr str long) InstallScreenSaverA
@ stdcall InstallScreenSaverA(ptr ptr str long)
@ stdcall InstallScreenSaverW(ptr ptr wstr long)
@ stdcall MonitorClassInstaller(long ptr ptr)

View File

@@ -1,6 +1,6 @@
/* DO NOT USE THE PRECOMPILED HEADER FOR THIS FILE! */
#define WIN32_NO_STATuS
#define WIN32_NO_STATUS
#define _INC_WINDOWS
#define COM_NO_WINDOWS_H

View File

@@ -16,15 +16,15 @@ static const TCHAR szPreviewWndClass[] = TEXT("SSDemoParent");
typedef struct
{
BOOL bIsScreenSaver; /* Is this background a wallpaper */
BOOL bIsScreenSaver; /* Is this a valid screensaver */
TCHAR szFilename[MAX_PATH];
TCHAR szDisplayName[256];
} ScreenSaverItem;
} SCREEN_SAVER_ITEM;
typedef struct _DATA
{
ScreenSaverItem ScreenSaverItems[MAX_SCREENSAVERS];
SCREEN_SAVER_ITEM ScreenSaverItems[MAX_SCREENSAVERS];
PROCESS_INFORMATION PrevWindowPi;
int Selection;
WNDPROC OldPreviewProc;
@@ -57,9 +57,7 @@ GetCurrentScreenSaverValue(LPTSTR lpValue)
&BufSize);
if (Ret == ERROR_SUCCESS)
{
lpBuf = HeapAlloc(GetProcessHeap(),
0,
BufSize);
lpBuf = HeapAlloc(GetProcessHeap(), 0, BufSize);
if (lpBuf)
{
Ret = RegQueryValueEx(hKey,
@@ -173,10 +171,14 @@ ShowScreenSaverPreview(IN LPDRAWITEMSTRUCT draw, IN PDATA pData)
}
/*
* /p:<hwnd> Run preview, hwnd is handle of calling window
*/
static VOID
SetScreenSaverPreviewBox(HWND hwndDlg, PDATA pData)
{
HWND hPreview = pData->ScreenSaverPreviewParent;
HRESULT hr;
STARTUPINFO si;
TCHAR szCmdline[2048];
@@ -190,32 +192,34 @@ SetScreenSaverPreviewBox(HWND hwndDlg, PDATA pData)
}
ShowWindow(pData->ScreenSaverPreviewParent, SW_HIDE);
if (pData->Selection > 0)
if (pData->Selection < 1)
return;
hr = StringCbPrintf(szCmdline, sizeof(szCmdline),
TEXT("%s /p %Iu"),
pData->ScreenSaverItems[pData->Selection].szFilename,
(ULONG_PTR)hPreview);
if (FAILED(hr))
return;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pData->PrevWindowPi, sizeof(pData->PrevWindowPi));
ShowWindow(pData->ScreenSaverPreviewParent, SW_SHOW);
if (!CreateProcess(NULL,
szCmdline,
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&si,
&pData->PrevWindowPi))
{
_stprintf(szCmdline,
_T("%s /p %Iu"),
pData->ScreenSaverItems[pData->Selection].szFilename,
(ULONG_PTR)hPreview);
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pData->PrevWindowPi, sizeof(pData->PrevWindowPi));
ShowWindow(pData->ScreenSaverPreviewParent, SW_SHOW);
if (!CreateProcess(NULL,
szCmdline,
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&si,
&pData->PrevWindowPi))
{
pData->PrevWindowPi.hThread = pData->PrevWindowPi.hProcess = NULL;
}
pData->PrevWindowPi.hThread = pData->PrevWindowPi.hProcess = NULL;
}
}
@@ -260,38 +264,40 @@ WaitForSettingsDialog(HWND hwndDlg,
}
/*
* /c:<hwnd> Run configuration, hwnd is handle of calling window
*/
static VOID
ScreensaverConfig(HWND hwndDlg, PDATA pData)
ScreenSaverConfig(HWND hwndDlg, PDATA pData)
{
/*
* /c:<hwnd> Run configuration, hwnd is handle of calling window
*/
TCHAR szCmdline[2048];
HRESULT hr;
STARTUPINFO si;
PROCESS_INFORMATION pi;
TCHAR szCmdline[2048];
if (pData->Selection < 1)
return;
_stprintf(szCmdline,
_T("%s /c:%Iu"),
pData->ScreenSaverItems[pData->Selection].szFilename,
(ULONG_PTR)hwndDlg);
hr = StringCbPrintf(szCmdline, sizeof(szCmdline),
TEXT("%s /c:%Iu"),
pData->ScreenSaverItems[pData->Selection].szFilename,
(ULONG_PTR)hwndDlg);
if (FAILED(hr))
return;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
if (CreateProcess(NULL,
szCmdline,
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&si,
&pi))
szCmdline,
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&si,
&pi))
{
/* Kill off the previous preview process */
if (pData->PrevWindowPi.hProcess)
@@ -310,17 +316,16 @@ ScreensaverConfig(HWND hwndDlg, PDATA pData)
}
}
/*
* /s Run normal
*/
static VOID
ScreensaverPreview(HWND hwndDlg, PDATA pData)
ScreenSaverPreview(HWND hwndDlg, PDATA pData)
{
/*
/s Run normal
*/
TCHAR szCmdline[2048];
HRESULT hr;
STARTUPINFO si;
PROCESS_INFORMATION pi;
TCHAR szCmdline[2048];
if (pData->Selection < 1)
return;
@@ -334,23 +339,25 @@ ScreensaverPreview(HWND hwndDlg, PDATA pData)
pData->PrevWindowPi.hThread = pData->PrevWindowPi.hProcess = NULL;
}
_stprintf(szCmdline,
_T("%s /s"),
pData->ScreenSaverItems[pData->Selection].szFilename);
hr = StringCbPrintf(szCmdline, sizeof(szCmdline),
TEXT("%s /s"),
pData->ScreenSaverItems[pData->Selection].szFilename);
if (FAILED(hr))
return;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
if (CreateProcess(NULL,
szCmdline,
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&si,
&pi))
szCmdline,
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&si,
&pi))
{
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);
@@ -404,136 +411,149 @@ CheckRegScreenSaverIsSecure(HWND hwndDlg)
}
static VOID
SearchScreenSavers(HWND hwndScreenSavers,
LPCTSTR pszSearchPath,
PDATA pData)
static BOOL
AddScreenSaverItem(
_In_ HWND hwndScreenSavers,
_In_ PDATA pData,
_In_ SCREEN_SAVER_ITEM* ScreenSaverItem)
{
WIN32_FIND_DATA fd;
TCHAR szSearchPath[MAX_PATH];
HANDLE hFind;
ScreenSaverItem *ScreenSaverItem;
HANDLE hModule;
UINT i, ScreenSaverCount;
UINT i;
if (pData->ScreenSaverCount >= MAX_SCREENSAVERS)
return FALSE;
i = SendMessage(hwndScreenSavers,
CB_ADDSTRING,
0,
(LPARAM)ScreenSaverItem->szDisplayName);
if ((i == CB_ERR) || (i == CB_ERRSPACE))
return FALSE;
SendMessage(hwndScreenSavers,
CB_SETITEMDATA,
i,
(LPARAM)pData->ScreenSaverCount);
pData->ScreenSaverCount++;
return TRUE;
}
static BOOL
AddScreenSaver(
_In_ HWND hwndScreenSavers,
_In_ PDATA pData,
_In_ LPCTSTR pszFilePath,
_In_ LPCTSTR pszFileName)
{
SCREEN_SAVER_ITEM* ScreenSaverItem;
HANDLE hModule;
HRESULT hr;
ScreenSaverCount = pData->ScreenSaverCount;
if (pData->ScreenSaverCount >= MAX_SCREENSAVERS)
return FALSE;
hr = StringCbCopy(szSearchPath, sizeof(szSearchPath), pszSearchPath);
ScreenSaverItem = pData->ScreenSaverItems + pData->ScreenSaverCount;
ScreenSaverItem->bIsScreenSaver = TRUE;
hModule = LoadLibraryEx(pszFilePath,
NULL,
DONT_RESOLVE_DLL_REFERENCES | LOAD_LIBRARY_AS_DATAFILE);
if (hModule)
{
if (LoadString(hModule,
1,
ScreenSaverItem->szDisplayName,
_countof(ScreenSaverItem->szDisplayName)) == 0)
{
/* If the string does not exist, copy the file name */
hr = StringCbCopy(ScreenSaverItem->szDisplayName,
sizeof(ScreenSaverItem->szDisplayName),
pszFileName);
if (FAILED(hr))
{
FreeLibrary(hModule);
return FALSE;
}
/* Remove the .scr extension */
ScreenSaverItem->szDisplayName[_tcslen(pszFileName)-4] = _T('\0');
}
FreeLibrary(hModule);
}
else
{
hr = StringCbCopy(ScreenSaverItem->szDisplayName,
sizeof(ScreenSaverItem->szDisplayName),
_T("Unknown"));
if (FAILED(hr))
return FALSE;
}
hr = StringCbCopy(ScreenSaverItem->szFilename,
sizeof(ScreenSaverItem->szFilename),
pszFilePath);
if (FAILED(hr))
return;
hr = StringCbCat(szSearchPath, sizeof(szSearchPath), TEXT("\\*.scr"));
return FALSE;
return AddScreenSaverItem(hwndScreenSavers, pData, ScreenSaverItem);
}
static VOID
SearchScreenSavers(
_In_ HWND hwndScreenSavers,
_In_ PDATA pData,
_In_ LPCTSTR pszSearchPath)
{
HRESULT hr;
WIN32_FIND_DATA fd;
HANDLE hFind;
TCHAR szFilePath[MAX_PATH];
hr = StringCbPrintf(szFilePath, sizeof(szFilePath),
TEXT("%s\\*.scr"), pszSearchPath);
if (FAILED(hr))
return;
hFind = FindFirstFile(szSearchPath, &fd);
hFind = FindFirstFile(szFilePath, &fd);
if (hFind == INVALID_HANDLE_VALUE)
return;
while (ScreenSaverCount < MAX_SCREENSAVERS)
do
{
/* Don't add any hidden screensavers */
if ((fd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) == 0)
{
TCHAR filename[MAX_PATH];
if (fd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN)
continue;
hr = StringCbCopy(filename, sizeof(filename), pszSearchPath);
if (FAILED(hr))
{
FindClose(hFind);
return;
}
hr = StringCbCat(filename, sizeof(filename), _T("\\"));
if (FAILED(hr))
{
FindClose(hFind);
return;
}
hr = StringCbCat(filename, sizeof(filename), fd.cFileName);
if (FAILED(hr))
{
FindClose(hFind);
return;
}
ScreenSaverItem = pData->ScreenSaverItems + ScreenSaverCount;
ScreenSaverItem->bIsScreenSaver = TRUE;
hModule = LoadLibraryEx(filename,
NULL,
DONT_RESOLVE_DLL_REFERENCES | LOAD_LIBRARY_AS_DATAFILE);
if (hModule)
{
if (0 == LoadString(hModule,
1,
ScreenSaverItem->szDisplayName,
sizeof(ScreenSaverItem->szDisplayName) / sizeof(TCHAR)))
{
// If the string does not exists, copy the name of the file
hr = StringCbCopy(ScreenSaverItem->szDisplayName, sizeof(ScreenSaverItem->szDisplayName), fd.cFileName);
if (FAILED(hr))
{
FreeLibrary(hModule);
FindClose(hFind);
return;
}
ScreenSaverItem->szDisplayName[_tcslen(fd.cFileName)-4] = '\0';
}
FreeLibrary(hModule);
}
else
{
hr = StringCbCopy(ScreenSaverItem->szDisplayName, sizeof(ScreenSaverItem->szDisplayName), _T("Unknown"));
if (FAILED(hr))
{
FindClose(hFind);
return;
}
}
hr = StringCbCopy(ScreenSaverItem->szFilename, sizeof(ScreenSaverItem->szFilename), filename);
if (FAILED(hr))
{
FindClose(hFind);
return;
}
i = SendMessage(hwndScreenSavers,
CB_ADDSTRING,
0,
(LPARAM)ScreenSaverItem->szDisplayName);
SendMessage(hwndScreenSavers,
CB_SETITEMDATA,
i,
(LPARAM)ScreenSaverCount);
ScreenSaverCount++;
}
if (!FindNextFile(hFind, &fd))
if (pData->ScreenSaverCount >= MAX_SCREENSAVERS)
break;
}
hr = StringCbPrintf(szFilePath, sizeof(szFilePath),
TEXT("%s\\%s"), pszSearchPath, fd.cFileName);
if (FAILED(hr))
break;
if (!AddScreenSaver(hwndScreenSavers, pData, szFilePath, fd.cFileName))
break;
} while (FindNextFile(hFind, &fd));
FindClose(hFind);
pData->ScreenSaverCount = ScreenSaverCount;
}
static VOID
AddScreenSavers(HWND hwndDlg, PDATA pData)
EnumScreenSavers(
_In_ HWND hwndScreenSavers,
_In_ PDATA pData)
{
HWND hwndScreenSavers = GetDlgItem(hwndDlg, IDC_SCREENS_LIST);
SCREEN_SAVER_ITEM* ScreenSaverItem;
PTCHAR pBackSlash;
TCHAR szSearchPath[MAX_PATH];
TCHAR szLocalPath[MAX_PATH];
INT i;
ScreenSaverItem *ScreenSaverItem = NULL;
LPTSTR lpBackSlash;
/* Add the "None" item */
/* Initialize the number of list items */
pData->ScreenSaverCount = 0;
/* Add the "(None)" item */
ScreenSaverItem = pData->ScreenSaverItems;
ScreenSaverItem->bIsScreenSaver = FALSE;
@@ -541,39 +561,28 @@ AddScreenSavers(HWND hwndDlg, PDATA pData)
LoadString(hApplet,
IDS_NONE,
ScreenSaverItem->szDisplayName,
sizeof(ScreenSaverItem->szDisplayName) / sizeof(TCHAR));
_countof(ScreenSaverItem->szDisplayName));
i = SendMessage(hwndScreenSavers,
CB_ADDSTRING,
0,
(LPARAM)ScreenSaverItem->szDisplayName);
AddScreenSaverItem(hwndScreenSavers, pData, ScreenSaverItem);
SendMessage(hwndScreenSavers,
CB_SETITEMDATA,
i,
(LPARAM)0);
// Initialize number of items into the list
pData->ScreenSaverCount = 1;
// Add all the screensavers where the applet is stored.
GetModuleFileName(hApplet, szLocalPath, MAX_PATH);
lpBackSlash = _tcsrchr(szLocalPath, _T('\\'));
if (lpBackSlash != NULL)
/* Add all the screensavers where the applet is stored */
GetModuleFileName(hApplet, szLocalPath, _countof(szLocalPath));
pBackSlash = _tcsrchr(szLocalPath, _T('\\'));
if (pBackSlash != NULL)
{
*lpBackSlash = '\0';
SearchScreenSavers(hwndScreenSavers, szLocalPath, pData);
*pBackSlash = _T('\0');
SearchScreenSavers(hwndScreenSavers, pData, szLocalPath);
}
// Add all the screensavers in the C:\ReactOS\System32 directory.
GetSystemDirectory(szSearchPath, MAX_PATH);
if (lpBackSlash != NULL && _tcsicmp(szSearchPath, szLocalPath) != 0)
SearchScreenSavers(hwndScreenSavers, szSearchPath, pData);
/* Add all the screensavers in the C:\ReactOS\System32 directory */
GetSystemDirectory(szSearchPath, _countof(szSearchPath));
if (pBackSlash != NULL && _tcsicmp(szSearchPath, szLocalPath) != 0)
SearchScreenSavers(hwndScreenSavers, pData, szSearchPath);
// Add all the screensavers in the C:\ReactOS directory.
GetWindowsDirectory(szSearchPath, MAX_PATH);
if (lpBackSlash != NULL && _tcsicmp(szSearchPath, szLocalPath) != 0)
SearchScreenSavers(hwndScreenSavers, szSearchPath, pData);
/* Add all the screensavers in the C:\ReactOS directory */
GetWindowsDirectory(szSearchPath, _countof(szSearchPath));
if (pBackSlash != NULL && _tcsicmp(szSearchPath, szLocalPath) != 0)
SearchScreenSavers(hwndScreenSavers, pData, szSearchPath);
}
@@ -599,7 +608,7 @@ SetScreenSaver(HWND hwndDlg, PDATA pData)
/* Set the screensaver */
if (pData->ScreenSaverItems[pData->Selection].bIsScreenSaver)
{
SIZE_T Length = _tcslen(pData->ScreenSaverItems[pData->Selection].szFilename) * sizeof(TCHAR);
SIZE_T Length = (_tcslen(pData->ScreenSaverItems[pData->Selection].szFilename) + 1) * sizeof(TCHAR);
RegSetValueEx(regKey,
_T("SCRNSAVE.EXE"),
0,
@@ -638,9 +647,8 @@ SetScreenSaver(HWND hwndDlg, PDATA pData)
&bRet,
FALSE);
if (Time == 0)
Time = 60;
else
Time *= 60;
Time = 1;
Time *= 60; // Convert to seconds
SystemParametersInfoW(SPI_SETSCREENSAVETIMEOUT, Time, 0, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE);
@@ -652,14 +660,12 @@ SetScreenSaver(HWND hwndDlg, PDATA pData)
static BOOL
OnInitDialog(HWND hwndDlg, PDATA pData)
{
LPTSTR lpCurSs;
HWND hwndSSCombo = GetDlgItem(hwndDlg, IDC_SCREENS_LIST);
INT Num;
LPTSTR pSsValue;
INT iCurSs;
WNDCLASS wc = {0};
pData = HeapAlloc(GetProcessHeap(),
HEAP_ZERO_MEMORY,
sizeof(DATA));
pData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DATA));
if (!pData)
{
EndDialog(hwndDlg, -1);
@@ -700,9 +706,7 @@ OnInitDialog(HWND hwndDlg, PDATA pData)
pData->ScreenSaverPreviewParent = hChild;
}
SetWindowLongPtr(hwndDlg,
DWLP_USER,
(LONG_PTR)pData);
SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pData);
pData->Selection = -1;
@@ -710,85 +714,70 @@ OnInitDialog(HWND hwndDlg, PDATA pData)
IDC_SCREENS_TIME,
UDM_SETRANGE,
0,
MAKELONG
((short) 240, (short) 1));
MAKELONG(240, 1));
AddScreenSavers(hwndDlg,
pData);
EnumScreenSavers(hwndSSCombo, pData);
CheckRegScreenSaverIsSecure(hwndDlg);
/* Set the current screensaver in the combo box */
lpCurSs = GetCurrentScreenSaverValue(_T("SCRNSAVE.EXE"));
if (lpCurSs)
iCurSs = 0; // Default to "(None)"
pSsValue = GetCurrentScreenSaverValue(_T("SCRNSAVE.EXE"));
if (pSsValue)
{
BOOL bFound = FALSE;
INT i;
for (i = 0; i < MAX_SCREENSAVERS; i++)
/* Find whether the current screensaver is in the list */
for (i = 0; i < pData->ScreenSaverCount; i++)
{
if (!_tcscmp(lpCurSs, pData->ScreenSaverItems[i].szFilename))
if (!_tcsicmp(pSsValue, pData->ScreenSaverItems[i].szFilename))
{
bFound = TRUE;
break;
}
}
if (!bFound)
{
/* The current screensaver is not in the list: add it */
// i = pData->ScreenSaverCount;
bFound = AddScreenSaver(hwndSSCombo, pData, pSsValue, _T("SCRNSAVE.EXE"));
if (bFound)
i = pData->ScreenSaverCount - 1;
}
HeapFree(GetProcessHeap(), 0, pSsValue);
if (bFound)
{
Num = SendMessage(hwndSSCombo,
CB_FINDSTRINGEXACT,
-1,
(LPARAM)pData->ScreenSaverItems[i].szDisplayName);
if (Num != CB_ERR)
SendMessage(hwndSSCombo,
CB_SETCURSEL,
Num,
0);
/* The current screensaver should be in the list: select it */
iCurSs = SendMessage(hwndSSCombo,
CB_FINDSTRINGEXACT,
-1,
(LPARAM)pData->ScreenSaverItems[i].szDisplayName);
if (iCurSs == CB_ERR)
iCurSs = 0; // Default to "(None)"
}
else
{
SendMessage(hwndSSCombo,
CB_SETCURSEL,
0,
0);
}
HeapFree(GetProcessHeap(),
0,
lpCurSs);
}
else
{
/* Set screensaver to (none) */
SendMessage(hwndSSCombo,
CB_SETCURSEL,
0,
0);
}
SendMessage(hwndSSCombo, CB_SETCURSEL, iCurSs, 0);
/* Set the current timeout */
lpCurSs = GetCurrentScreenSaverValue(_T("ScreenSaveTimeOut"));
if (lpCurSs)
pSsValue = GetCurrentScreenSaverValue(_T("ScreenSaveTimeOut"));
if (pSsValue)
{
UINT Time = _ttoi(lpCurSs);
UINT Time = _ttoi(pSsValue) / 60;
Time /= 60;
HeapFree(GetProcessHeap(), 0, pSsValue);
SendDlgItemMessage(hwndDlg,
IDC_SCREENS_TIME,
UDM_SETPOS32,
0,
Time);
HeapFree(GetProcessHeap(),
0,
lpCurSs);
}
SelectionChanged(hwndDlg,
pData);
SelectionChanged(hwndDlg, pData);
return TRUE;
}
@@ -829,16 +818,13 @@ ScreenSaverPageProc(HWND hwndDlg,
CloseHandle(pData->PrevWindowPi.hProcess);
CloseHandle(pData->PrevWindowPi.hThread);
}
HeapFree(GetProcessHeap(),
0,
pData);
HeapFree(GetProcessHeap(), 0, pData);
break;
}
case WM_ENDSESSION:
{
SetScreenSaverPreviewBox(hwndDlg,
pData);
SetScreenSaverPreviewBox(hwndDlg, pData);
break;
}
@@ -888,7 +874,7 @@ ScreenSaverPageProc(HWND hwndDlg,
{
if (command == BN_CLICKED)
{
ScreensaverPreview(hwndDlg, pData);
ScreenSaverPreview(hwndDlg, pData);
SetScreenSaverPreviewBox(hwndDlg, pData);
}
break;
@@ -897,16 +883,14 @@ ScreenSaverPageProc(HWND hwndDlg,
case IDC_SCREENS_SETTINGS: // Screensaver Settings
{
if (command == BN_CLICKED)
ScreensaverConfig(hwndDlg, pData);
ScreenSaverConfig(hwndDlg, pData);
break;
}
case IDC_SCREENS_USEPASSCHK: // Screensaver Is Secure
{
if (command == BN_CLICKED)
{
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
}
break;
}
}

View File

@@ -98,12 +98,14 @@ LdrpWalkImportDescriptor(IN LPWSTR DllPath OPTIONAL,
/* ldrutils.c */
NTSTATUS NTAPI
LdrpGetProcedureAddress(IN PVOID BaseAddress,
IN PANSI_STRING Name,
IN ULONG Ordinal,
OUT PVOID *ProcedureAddress,
IN BOOLEAN ExecuteInit);
NTSTATUS
NTAPI
LdrpGetProcedureAddress(
_In_ PVOID BaseAddress,
_In_opt_ _When_(Ordinal == 0, _Notnull_) PANSI_STRING Name,
_In_opt_ _When_(Name == NULL, _In_range_(>, 0)) ULONG Ordinal,
_Out_ PVOID *ProcedureAddress,
_In_ BOOLEAN ExecuteInit);
PLDR_DATA_TABLE_ENTRY NTAPI
LdrpAllocateDataTableEntry(IN PVOID BaseAddress);

View File

@@ -98,8 +98,9 @@ LdrpMakeCookie(VOID)
*/
NTSTATUS
NTAPI
LdrUnlockLoaderLock(IN ULONG Flags,
IN ULONG Cookie OPTIONAL)
LdrUnlockLoaderLock(
_In_ ULONG Flags,
_In_opt_ ULONG Cookie)
{
NTSTATUS Status = STATUS_SUCCESS;
@@ -170,9 +171,10 @@ LdrUnlockLoaderLock(IN ULONG Flags,
*/
NTSTATUS
NTAPI
LdrLockLoaderLock(IN ULONG Flags,
OUT PULONG Disposition OPTIONAL,
OUT PULONG_PTR Cookie OPTIONAL)
LdrLockLoaderLock(
_In_ ULONG Flags,
_Out_opt_ PULONG Disposition,
_Out_opt_ PULONG_PTR Cookie)
{
NTSTATUS Status = STATUS_SUCCESS;
BOOLEAN InInit = LdrpInLdrInit;
@@ -440,8 +442,9 @@ LdrLoadDll(IN PWSTR SearchPath OPTIONAL,
*/
NTSTATUS
NTAPI
LdrFindEntryForAddress(PVOID Address,
PLDR_DATA_TABLE_ENTRY *Module)
LdrFindEntryForAddress(
_In_ PVOID Address,
_Out_ PLDR_DATA_TABLE_ENTRY *Module)
{
PLIST_ENTRY ListHead, NextEntry;
PLDR_DATA_TABLE_ENTRY LdrEntry;
@@ -519,11 +522,12 @@ LdrFindEntryForAddress(PVOID Address,
*/
NTSTATUS
NTAPI
LdrGetDllHandleEx(IN ULONG Flags,
IN PWSTR DllPath OPTIONAL,
IN PULONG DllCharacteristics OPTIONAL,
IN PUNICODE_STRING DllName,
OUT PVOID *DllHandle OPTIONAL)
LdrGetDllHandleEx(
_In_ ULONG Flags,
_In_opt_ PWSTR DllPath,
_In_opt_ PULONG DllCharacteristics,
_In_ PUNICODE_STRING DllName,
_Out_opt_ PVOID *DllHandle)
{
NTSTATUS Status;
PLDR_DATA_TABLE_ENTRY LdrEntry;
@@ -802,10 +806,11 @@ Quickie:
*/
NTSTATUS
NTAPI
LdrGetDllHandle(IN PWSTR DllPath OPTIONAL,
IN PULONG DllCharacteristics OPTIONAL,
IN PUNICODE_STRING DllName,
OUT PVOID *DllHandle)
LdrGetDllHandle(
_In_opt_ PWSTR DllPath,
_In_opt_ PULONG DllCharacteristics,
_In_ PUNICODE_STRING DllName,
_Out_ PVOID *DllHandle)
{
/* Call the newer API */
return LdrGetDllHandleEx(LDR_GET_DLL_HANDLE_EX_UNCHANGED_REFCOUNT,
@@ -820,10 +825,11 @@ LdrGetDllHandle(IN PWSTR DllPath OPTIONAL,
*/
NTSTATUS
NTAPI
LdrGetProcedureAddress(IN PVOID BaseAddress,
IN PANSI_STRING Name,
IN ULONG Ordinal,
OUT PVOID *ProcedureAddress)
LdrGetProcedureAddress(
_In_ PVOID BaseAddress,
_In_opt_ _When_(Ordinal == 0, _Notnull_) PANSI_STRING Name,
_In_opt_ _When_(Name == NULL, _In_range_(>, 0)) ULONG Ordinal,
_Out_ PVOID *ProcedureAddress)
{
/* Call the internal routine and tell it to execute DllInit */
return LdrpGetProcedureAddress(BaseAddress, Name, Ordinal, ProcedureAddress, TRUE);

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