ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
July 2021
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
18 participants
142 discussions
Start a n
N
ew thread
[reactos] 07/09: [VIDEOPRT] Implement VideoPortCreateSecondaryDisplay
by Hervé Poussineau
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e9b5b22a8c308483d0c88…
commit e9b5b22a8c308483d0c883a2d40189df433bacad Author: Hervé Poussineau <hpoussin(a)reactos.org> AuthorDate: Wed Jun 23 08:54:27 2021 +0200 Commit: Hervé Poussineau <hpoussin(a)reactos.org> CommitDate: Sat Jul 10 16:27:44 2021 +0200 [VIDEOPRT] Implement VideoPortCreateSecondaryDisplay --- win32ss/drivers/videoprt/videoprt.c | 40 +++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/win32ss/drivers/videoprt/videoprt.c b/win32ss/drivers/videoprt/videoprt.c index c8decdcc95d..e36e0ce6c7c 100644 --- a/win32ss/drivers/videoprt/videoprt.c +++ b/win32ss/drivers/videoprt/videoprt.c @@ -1350,8 +1350,44 @@ VideoPortCreateSecondaryDisplay( IN OUT PVOID *SecondaryDeviceExtension, IN ULONG Flag) { - UNIMPLEMENTED; - return ERROR_DEV_NOT_EXIST; + PDEVICE_OBJECT DeviceObject; + PVIDEO_PORT_DEVICE_EXTENSION FirstDeviceExtension, DeviceExtension; + NTSTATUS Status; + + ASSERT(SecondaryDeviceExtension); + + if (Flag != 0) + { + UNIMPLEMENTED; + } + + FirstDeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension); + + if (FirstDeviceExtension->DisplayNumber != 0) + { + DPRINT1("Calling VideoPortCreateSecondaryDisplay for InstanceId %lu\n", + FirstDeviceExtension->DisplayNumber); + } + + Status = IntVideoPortCreateAdapterDeviceObject(FirstDeviceExtension->DriverObject, + FirstDeviceExtension->DriverExtension, + FirstDeviceExtension->PhysicalDeviceObject, + FirstDeviceExtension->AdapterNumber, + FirstDeviceExtension->NumberOfSecondaryDisplays + 1, + &DeviceObject); + if (!NT_SUCCESS(Status)) + { + DPRINT1("IntVideoPortCreateAdapterDeviceObject() failed with status 0x%08x\n", Status); + return ERROR_DEV_NOT_EXIST; + } + + DeviceExtension = DeviceObject->DeviceExtension; + + /* Increment secondary display count */ + FirstDeviceExtension->NumberOfSecondaryDisplays++; + + *SecondaryDeviceExtension = DeviceExtension->MiniPortDeviceExtension; + return NO_ERROR; } /*
3 years, 5 months
1
0
0
0
[reactos] 06/09: [VIDEOPRT] Fix adapter id
by Timo Kreuzer
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=545352c65590421198b4a…
commit 545352c65590421198b4aa3a7b4bdf14861fd0bd Author: Timo Kreuzer <timo.kreuzer(a)reactos.org> AuthorDate: Sat Jul 3 22:59:30 2021 +0200 Commit: Hervé Poussineau <hpoussin(a)reactos.org> CommitDate: Sat Jul 10 16:27:44 2021 +0200 [VIDEOPRT] Fix adapter id --- win32ss/drivers/videoprt/dispatch.c | 2 ++ win32ss/drivers/videoprt/registry.c | 14 ++++++++++++-- win32ss/drivers/videoprt/videoprt.c | 24 +++++++++++++++++++++--- win32ss/drivers/videoprt/videoprt.h | 7 ++++++- 4 files changed, 41 insertions(+), 6 deletions(-) diff --git a/win32ss/drivers/videoprt/dispatch.c b/win32ss/drivers/videoprt/dispatch.c index 6c01995de5e..77339574f40 100644 --- a/win32ss/drivers/videoprt/dispatch.c +++ b/win32ss/drivers/videoprt/dispatch.c @@ -346,6 +346,8 @@ IntVideoPortAddDevice( Status = IntVideoPortCreateAdapterDeviceObject(DriverObject, DriverExtension, PhysicalDeviceObject, + DriverExtension->InitializationData.StartingDeviceNumber, + 0, &DeviceObject); if (!NT_SUCCESS(Status)) { diff --git a/win32ss/drivers/videoprt/registry.c b/win32ss/drivers/videoprt/registry.c index 68e3d403353..8d43b32edab 100644 --- a/win32ss/drivers/videoprt/registry.c +++ b/win32ss/drivers/videoprt/registry.c @@ -21,6 +21,7 @@ #include "videoprt.h" #include <ndk/obfuncs.h> +#include <stdio.h> #define NDEBUG #include <debug.h> @@ -369,6 +370,7 @@ IntCreateNewRegistryPath( ULONG ResultLength; USHORT KeyMaxLength; OBJECT_ATTRIBUTES ObjectAttributes; + PWCHAR InstanceIdBuffer; /* Open the hardware key: HKLM\System\CurrentControlSet\Enum\... */ Status = IoOpenDeviceRegistryKey(DeviceExtension->PhysicalDeviceObject, @@ -476,9 +478,14 @@ IntCreateNewRegistryPath( /* Append a the instance path */ /// \todo HACK RtlAppendUnicodeToString(&DeviceExtension->NewRegistryPath, L"\\"); + InstanceIdBuffer = DeviceExtension->NewRegistryPath.Buffer + + DeviceExtension->NewRegistryPath.Length / sizeof(WCHAR); RtlAppendUnicodeToString(&DeviceExtension->NewRegistryPath, L"0000"); - /* Check this key again */ + /* Write instance ID */ + swprintf(InstanceIdBuffer, L"%04u", DeviceExtension->DisplayNumber); + + /* Check if the name exists */ Status = RtlCheckRegistryKey(RTL_REGISTRY_ABSOLUTE, DeviceExtension->NewRegistryPath.Buffer); if (Status != STATUS_SUCCESS) @@ -521,8 +528,11 @@ IntCreateNewRegistryPath( /* Copy the registry data from the legacy key */ Status = IntCopyRegistryKey(SettingsKey, NewKey); - } + /* Close the key handles */ + ObCloseHandle(SettingsKey, KernelMode); + ObCloseHandle(NewKey, KernelMode); + } return Status; } diff --git a/win32ss/drivers/videoprt/videoprt.c b/win32ss/drivers/videoprt/videoprt.c index 31f4efef72a..c8decdcc95d 100644 --- a/win32ss/drivers/videoprt/videoprt.c +++ b/win32ss/drivers/videoprt/videoprt.c @@ -153,6 +153,8 @@ IntVideoPortCreateAdapterDeviceObject( _In_ PDRIVER_OBJECT DriverObject, _In_ PVIDEO_PORT_DRIVER_EXTENSION DriverExtension, _In_opt_ PDEVICE_OBJECT PhysicalDeviceObject, + _In_ USHORT AdapterNumber, + _In_ USHORT DisplayNumber, _Out_opt_ PDEVICE_OBJECT *DeviceObject) { PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension; @@ -223,12 +225,14 @@ IntVideoPortCreateAdapterDeviceObject( DeviceExtension->FunctionalDeviceObject = *DeviceObject; DeviceExtension->DriverExtension = DriverExtension; DeviceExtension->SessionId = -1; + DeviceExtension->AdapterNumber = AdapterNumber; + DeviceExtension->DisplayNumber = DisplayNumber; InitializeListHead(&DeviceExtension->ChildDeviceList); /* Get the registry path associated with this device. */ Status = IntCreateRegistryPath(&DriverExtension->RegistryPath, - DriverExtension->InitializationData.StartingDeviceNumber, + DeviceExtension->AdapterNumber, &DeviceExtension->RegistryPath); if (!NT_SUCCESS(Status)) { @@ -299,9 +303,16 @@ IntVideoPortCreateAdapterDeviceObject( *DeviceObject, PhysicalDeviceObject); - IntCreateNewRegistryPath(DeviceExtension); + Status = IntCreateNewRegistryPath(DeviceExtension); + if (!NT_SUCCESS(Status)) + { + ERR_(VIDEOPRT, "IntCreateNewRegistryPath() failed with status 0x%08x\n", Status); + IoDeleteDevice(*DeviceObject); + *DeviceObject = NULL; + return Status; + } + IntSetupDeviceSettingsKey(DeviceExtension); - DriverExtension->InitializationData.StartingDeviceNumber++; /* Remove the initailizing flag */ (*DeviceObject)->Flags &= ~DO_DEVICE_INITIALIZING; @@ -316,6 +327,11 @@ IntVideoPortCreateAdapterDeviceObject( return Status; } + if (DisplayNumber == 0) + { + DriverExtension->InitializationData.StartingDeviceNumber++; + } + return STATUS_SUCCESS; } @@ -798,6 +814,8 @@ VideoPortInitialize( Status = IntVideoPortCreateAdapterDeviceObject(DriverObject, DriverExtension, NULL, + DriverExtension->InitializationData.StartingDeviceNumber, + 0, &DeviceObject); if (!NT_SUCCESS(Status)) { diff --git a/win32ss/drivers/videoprt/videoprt.h b/win32ss/drivers/videoprt/videoprt.h index 408ca0b2b87..6ff90e2dd2a 100644 --- a/win32ss/drivers/videoprt/videoprt.h +++ b/win32ss/drivers/videoprt/videoprt.h @@ -107,7 +107,10 @@ typedef struct _VIDEO_PORT_DEVICE_EXTENSTION LIST_ENTRY DmaAdapterList, ChildDeviceList; LIST_ENTRY HwResetListEntry; ULONG SessionId; - CHAR MiniPortDeviceExtension[1]; + USHORT AdapterNumber; + USHORT DisplayNumber; + ULONG NumberOfSecondaryDisplays; + CHAR POINTER_ALIGNMENT MiniPortDeviceExtension[1]; } VIDEO_PORT_DEVICE_EXTENSION, *PVIDEO_PORT_DEVICE_EXTENSION; typedef struct _VIDEO_PORT_CHILD_EXTENSION @@ -260,6 +263,8 @@ IntVideoPortCreateAdapterDeviceObject( _In_ PDRIVER_OBJECT DriverObject, _In_ PVIDEO_PORT_DRIVER_EXTENSION DriverExtension, _In_opt_ PDEVICE_OBJECT PhysicalDeviceObject, + _In_ USHORT AdapterNumber, + _In_ USHORT DisplayNumber, _Out_opt_ PDEVICE_OBJECT *DeviceObject); NTSTATUS NTAPI
3 years, 5 months
1
0
0
0
[reactos] 05/09: [VIDEOPRT] Use new registry path
by Timo Kreuzer
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=af314557c09ab0c2bfe58…
commit af314557c09ab0c2bfe58aa6a993f99c1e9cc373 Author: Timo Kreuzer <timo.kreuzer(a)reactos.org> AuthorDate: Sat Jul 3 22:58:17 2021 +0200 Commit: Hervé Poussineau <hpoussin(a)reactos.org> CommitDate: Sat Jul 10 16:27:44 2021 +0200 [VIDEOPRT] Use new registry path --- win32ss/drivers/videoprt/videoprt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/win32ss/drivers/videoprt/videoprt.c b/win32ss/drivers/videoprt/videoprt.c index 7e16abcc38e..31f4efef72a 100644 --- a/win32ss/drivers/videoprt/videoprt.c +++ b/win32ss/drivers/videoprt/videoprt.c @@ -74,8 +74,8 @@ IntVideoPortAddDeviceMapLink( L"VIDEO", DeviceBuffer, REG_SZ, - DeviceExtension->RegistryPath.Buffer, - DeviceExtension->RegistryPath.Length + sizeof(UNICODE_NULL)); + DeviceExtension->NewRegistryPath.Buffer, + DeviceExtension->NewRegistryPath.Length + sizeof(UNICODE_NULL)); if (!NT_SUCCESS(Status)) { ERR_(VIDEOPRT, "Failed to create DEViCEMAP registry entry: 0x%X\n", Status);
3 years, 5 months
1
0
0
0
[reactos] 04/09: [VIDEOPRT] Refactor device map key creation
by Timo Kreuzer
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=066337dc84f7c2a199a8f…
commit 066337dc84f7c2a199a8f37913434825a36315d9 Author: Timo Kreuzer <timo.kreuzer(a)reactos.org> AuthorDate: Sat Jul 3 21:26:57 2021 +0200 Commit: Hervé Poussineau <hpoussin(a)reactos.org> CommitDate: Sat Jul 10 16:27:44 2021 +0200 [VIDEOPRT] Refactor device map key creation --- win32ss/drivers/videoprt/dispatch.c | 7 ++- win32ss/drivers/videoprt/videoprt.c | 113 +++++++++++++++++++++++------------- 2 files changed, 77 insertions(+), 43 deletions(-) diff --git a/win32ss/drivers/videoprt/dispatch.c b/win32ss/drivers/videoprt/dispatch.c index 7b900517fa8..6c01995de5e 100644 --- a/win32ss/drivers/videoprt/dispatch.c +++ b/win32ss/drivers/videoprt/dispatch.c @@ -347,9 +347,10 @@ IntVideoPortAddDevice( DriverExtension, PhysicalDeviceObject, &DeviceObject); - if (NT_SUCCESS(Status)) - VideoPortDeviceNumber++; - + if (!NT_SUCCESS(Status)) + { + ERR_(VIDEOPRT, "IntVideoPortCreateAdapterDeviceObject() failed with status 0x%lx\n", Status); + } return Status; } diff --git a/win32ss/drivers/videoprt/videoprt.c b/win32ss/drivers/videoprt/videoprt.c index b57cff52594..7e16abcc38e 100644 --- a/win32ss/drivers/videoprt/videoprt.c +++ b/win32ss/drivers/videoprt/videoprt.c @@ -37,7 +37,7 @@ BOOLEAN VpBaseVideo = FALSE; BOOLEAN VpNoVesa = FALSE; PKPROCESS CsrProcess = NULL; -ULONG VideoPortDeviceNumber = 0; +static ULONG VideoPortMaxObjectNumber = -1; KMUTEX VideoPortInt10Mutex; KSPIN_LOCK HwResetAdaptersLock; RTL_STATIC_LIST_HEAD(HwResetAdaptersList); @@ -53,6 +53,64 @@ DriverEntry( return STATUS_SUCCESS; } +static +NTSTATUS +IntVideoPortAddDeviceMapLink( + PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension) +{ + WCHAR DeviceBuffer[20]; + UNICODE_STRING DeviceName; + WCHAR SymlinkBuffer[20]; + UNICODE_STRING SymlinkName; + ULONG DeviceNumber; + NTSTATUS Status; + + /* Create a unicode device name. */ + DeviceNumber = DeviceExtension->DeviceNumber; + swprintf(DeviceBuffer, L"\\Device\\Video%lu", DeviceNumber); + + /* Add entry to DEVICEMAP\VIDEO key in registry. */ + Status = RtlWriteRegistryValue(RTL_REGISTRY_DEVICEMAP, + L"VIDEO", + DeviceBuffer, + REG_SZ, + DeviceExtension->RegistryPath.Buffer, + DeviceExtension->RegistryPath.Length + sizeof(UNICODE_NULL)); + if (!NT_SUCCESS(Status)) + { + ERR_(VIDEOPRT, "Failed to create DEViCEMAP registry entry: 0x%X\n", Status); + return Status; + } + + Status = RtlWriteRegistryValue(RTL_REGISTRY_DEVICEMAP, + L"VIDEO", + L"MaxObjectNumber", + REG_DWORD, + &VideoPortMaxObjectNumber, + sizeof(VideoPortMaxObjectNumber)); + if (!NT_SUCCESS(Status)) + { + ERR_(VIDEOPRT, "Failed to write MaxObjectNumber: 0x%X\n", Status); + return Status; + } + + /* Create symbolic link "\??\DISPLAYx" */ + swprintf(SymlinkBuffer, L"\\??\\DISPLAY%lu", DeviceNumber + 1); + RtlInitUnicodeString(&SymlinkName, SymlinkBuffer); + RtlInitUnicodeString(&DeviceName, DeviceBuffer); + Status = IoCreateSymbolicLink(&SymlinkName, &DeviceName); + if (!NT_SUCCESS(Status)) + { + ERR_(VIDEOPRT, "Failed to write MaxObjectNumber: 0x%X\n", Status); + return Status; + } + + /* Update MaxObjectNumber */ + VideoPortMaxObjectNumber = DeviceNumber; + + return STATUS_SUCCESS; +} + PVOID NTAPI IntVideoPortImageDirectoryEntryToData( @@ -114,8 +172,8 @@ IntVideoPortCreateAdapterDeviceObject( * Find the first free device number that can be used for video device * object names and symlinks. */ - DeviceNumber = VideoPortDeviceNumber; - if (DeviceNumber == 0xFFFFFFFF) + DeviceNumber = VideoPortMaxObjectNumber + 1; + if (DeviceNumber == (ULONG)-1) { WARN_(VIDEOPRT, "Can't find free device number\n"); return STATUS_UNSUCCESSFUL; @@ -247,6 +305,17 @@ IntVideoPortCreateAdapterDeviceObject( /* Remove the initailizing flag */ (*DeviceObject)->Flags &= ~DO_DEVICE_INITIALIZING; + + /* Set up the VIDEO/DEVICEMAP registry keys */ + Status = IntVideoPortAddDeviceMapLink(DeviceExtension); + if (!NT_SUCCESS(Status)) + { + ERR_(VIDEOPRT, "IntVideoPortAddDeviceMapLink() failed with status 0x%08x\n", Status); + IoDeleteDevice(*DeviceObject); + *DeviceObject = NULL; + return Status; + } + return STATUS_SUCCESS; } @@ -258,21 +327,14 @@ IntVideoPortFindAdapter( IN PVIDEO_PORT_DRIVER_EXTENSION DriverExtension, IN PDEVICE_OBJECT DeviceObject) { - WCHAR DeviceVideoBuffer[20]; PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension; NTSTATUS Status; VIDEO_PORT_CONFIG_INFO ConfigInfo; SYSTEM_BASIC_INFORMATION SystemBasicInfo; UCHAR Again = FALSE; - WCHAR DeviceBuffer[20]; - UNICODE_STRING DeviceName; - WCHAR SymlinkBuffer[20]; - UNICODE_STRING SymlinkName; BOOL LegacyDetection = FALSE; - ULONG DeviceNumber; DeviceExtension = (PVIDEO_PORT_DEVICE_EXTENSION)DeviceObject->DeviceExtension; - DeviceNumber = DeviceExtension->DeviceNumber; /* Setup a ConfigInfo structure that we will pass to HwFindAdapter. */ RtlZeroMemory(&ConfigInfo, sizeof(VIDEO_PORT_CONFIG_INFO)); @@ -371,33 +433,6 @@ IntVideoPortFindAdapter( * such as creating symlinks or setting up interrupts and timer. */ - /* Create a unicode device name. */ - swprintf(DeviceBuffer, L"\\Device\\Video%lu", DeviceNumber); - RtlInitUnicodeString(&DeviceName, DeviceBuffer); - - /* Create symbolic link "\??\DISPLAYx" */ - swprintf(SymlinkBuffer, L"\\??\\DISPLAY%lu", DeviceNumber + 1); - RtlInitUnicodeString(&SymlinkName, SymlinkBuffer); - IoCreateSymbolicLink(&SymlinkName, &DeviceName); - - /* Add entry to DEVICEMAP\VIDEO key in registry. */ - swprintf(DeviceVideoBuffer, L"\\Device\\Video%d", DeviceNumber); - RtlWriteRegistryValue( - RTL_REGISTRY_DEVICEMAP, - L"VIDEO", - DeviceVideoBuffer, - REG_SZ, - DeviceExtension->RegistryPath.Buffer, - DeviceExtension->RegistryPath.Length + sizeof(UNICODE_NULL)); - - RtlWriteRegistryValue( - RTL_REGISTRY_DEVICEMAP, - L"VIDEO", - L"MaxObjectNumber", - REG_DWORD, - &DeviceNumber, - sizeof(DeviceNumber)); - /* FIXME: Allocate hardware resources for device. */ /* Allocate interrupt for device. */ @@ -771,9 +806,7 @@ VideoPortInitialize( } Status = IntVideoPortFindAdapter(DriverObject, DriverExtension, DeviceObject); - if (NT_SUCCESS(Status)) - VideoPortDeviceNumber++; - else + if (!NT_SUCCESS(Status)) ERR_(VIDEOPRT, "IntVideoPortFindAdapter returned 0x%x\n", Status); return Status;
3 years, 5 months
1
0
0
0
[reactos] 03/09: [DESK] Start video card after its installation + let win32k detect it
by Hervé Poussineau
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=c3da00c42c472d07f7a4a…
commit c3da00c42c472d07f7a4a4c02d6907ad2956ea66 Author: Hervé Poussineau <hpoussin(a)reactos.org> AuthorDate: Sat Jun 19 17:58:04 2021 +0200 Commit: Hervé Poussineau <hpoussin(a)reactos.org> CommitDate: Sat Jul 10 16:27:44 2021 +0200 [DESK] Start video card after its installation + let win32k detect it --- dll/cpl/desk/classinst.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/dll/cpl/desk/classinst.c b/dll/cpl/desk/classinst.c index 4356046fb51..c178d162d5b 100644 --- a/dll/cpl/desk/classinst.c +++ b/dll/cpl/desk/classinst.c @@ -25,6 +25,7 @@ DisplayClassInstaller( TCHAR ServiceName[MAX_SERVICE_NAME_LEN]; TCHAR DeviceName[12]; SP_DRVINFO_DETAIL_DATA DriverInfoDetailData; + DISPLAY_DEVICE DisplayDevice; HKEY hDriverKey = INVALID_HANDLE_VALUE; /* SetupDiOpenDevRegKey returns INVALID_HANDLE_VALUE in case of error! */ HKEY hSettingsKey = NULL; HKEY hServicesKey = NULL; @@ -245,6 +246,18 @@ DisplayClassInstaller( /* FIXME: install OpenGLSoftwareSettings section */ + /* Start the device */ + if (!SetupDiRestartDevices(DeviceInfoSet, DeviceInfoData)) + { + rc = GetLastError(); + DPRINT1("SetupDiRestartDevices() failed with error 0x%lx\n", rc); + goto cleanup; + } + + /* Reenumerate display devices ; this will rescan for potential new devices */ + DisplayDevice.cb = sizeof(DISPLAY_DEVICE); + EnumDisplayDevices(NULL, 0, &DisplayDevice, 0); + rc = ERROR_SUCCESS; cleanup:
3 years, 5 months
1
0
0
0
[reactos] 02/09: [WIN32K] Move detection of available display devices a new fonction EngpUpdateGraphicsDeviceList
by Hervé Poussineau
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=6739fb1bc34249386d09d…
commit 6739fb1bc34249386d09d36058b7ac0f1fc78a37 Author: Hervé Poussineau <hpoussin(a)reactos.org> AuthorDate: Sat Jun 19 17:07:13 2021 +0200 Commit: Hervé Poussineau <hpoussin(a)reactos.org> CommitDate: Sat Jul 10 16:27:44 2021 +0200 [WIN32K] Move detection of available display devices a new fonction EngpUpdateGraphicsDeviceList - rewrite InitVideo() to call this new function - also call it at the start of UserEnumDisplayDevices, to detect new potential devices --- win32ss/gdi/eng/device.c | 78 +++++++++++++++++++++++++++++++++++++ win32ss/gdi/eng/device.h | 3 ++ win32ss/user/ntuser/display.c | 90 ++++--------------------------------------- win32ss/user/ntuser/ntuser.h | 6 +++ 4 files changed, 95 insertions(+), 82 deletions(-) diff --git a/win32ss/gdi/eng/device.c b/win32ss/gdi/eng/device.c index d3503009c1a..a02ef9d3a32 100644 --- a/win32ss/gdi/eng/device.c +++ b/win32ss/gdi/eng/device.c @@ -32,6 +32,84 @@ InitDeviceImpl(VOID) return STATUS_SUCCESS; } +NTSTATUS +EngpUpdateGraphicsDeviceList(VOID) +{ + ULONG iDevNum, iVGACompatible = -1, ulMaxObjectNumber = 0; + WCHAR awcDeviceName[20]; + WCHAR awcBuffer[256]; + NTSTATUS Status; + PGRAPHICS_DEVICE pGraphicsDevice; + ULONG cbValue; + HKEY hkey; + + /* Open the key for the adapters */ + Status = RegOpenKey(L"\\Registry\\Machine\\HARDWARE\\DEVICEMAP\\VIDEO", &hkey); + if (!NT_SUCCESS(Status)) + { + ERR("Could not open HARDWARE\\DEVICEMAP\\VIDEO registry key:0x%lx\n", Status); + return Status; + } + + /* Read the name of the VGA adapter */ + cbValue = sizeof(awcDeviceName); + Status = RegQueryValue(hkey, L"VgaCompatible", REG_SZ, awcDeviceName, &cbValue); + if (NT_SUCCESS(Status)) + { + iVGACompatible = _wtoi(&awcDeviceName[sizeof("\\Device\\Video")-1]); + ERR("VGA adapter = %lu\n", iVGACompatible); + } + + /* Get the maximum mumber of adapters */ + if (!RegReadDWORD(hkey, L"MaxObjectNumber", &ulMaxObjectNumber)) + { + ERR("Could not read MaxObjectNumber, defaulting to 0.\n"); + } + + TRACE("Found %lu devices\n", ulMaxObjectNumber + 1); + + /* Loop through all adapters */ + for (iDevNum = 0; iDevNum <= ulMaxObjectNumber; iDevNum++) + { + /* Create the adapter's key name */ + swprintf(awcDeviceName, L"\\Device\\Video%lu", iDevNum); + + /* Read the reg key name */ + cbValue = sizeof(awcBuffer); + Status = RegQueryValue(hkey, awcDeviceName, REG_SZ, awcBuffer, &cbValue); + if (!NT_SUCCESS(Status)) + { + ERR("failed to query the registry path:0x%lx\n", Status); + continue; + } + + /* Initialize the driver for this device */ + pGraphicsDevice = InitDisplayDriver(awcDeviceName, awcBuffer); + if (!pGraphicsDevice) continue; + + /* Check if this is a VGA compatible adapter */ + if (pGraphicsDevice->StateFlags & DISPLAY_DEVICE_VGA_COMPATIBLE) + { + /* Save this as the VGA adapter */ + if (!gpVgaGraphicsDevice) + gpVgaGraphicsDevice = pGraphicsDevice; + TRACE("gpVgaGraphicsDevice = %p\n", gpVgaGraphicsDevice); + } + else + { + /* Set the first one as primary device */ + if (!gpPrimaryGraphicsDevice) + gpPrimaryGraphicsDevice = pGraphicsDevice; + TRACE("gpPrimaryGraphicsDevice = %p\n", gpPrimaryGraphicsDevice); + } + } + + /* Close the device map registry key */ + ZwClose(hkey); + + return STATUS_SUCCESS; +} + BOOLEAN EngpPopulateDeviceModeList( _Inout_ PGRAPHICS_DEVICE pGraphicsDevice, diff --git a/win32ss/gdi/eng/device.h b/win32ss/gdi/eng/device.h index b74649daa73..c66e4cf0ad6 100644 --- a/win32ss/gdi/eng/device.h +++ b/win32ss/gdi/eng/device.h @@ -39,6 +39,9 @@ EngpPopulateDeviceModeList( _Inout_ PGRAPHICS_DEVICE pGraphicsDevice, _In_ PDEVMODEW pdmDefault); +NTSTATUS +EngpUpdateGraphicsDeviceList(VOID); + CODE_SEG("INIT") NTSTATUS NTAPI diff --git a/win32ss/user/ntuser/display.c b/win32ss/user/ntuser/display.c index 3c39c05ec35..676b7d0420c 100644 --- a/win32ss/user/ntuser/display.c +++ b/win32ss/user/ntuser/display.c @@ -155,12 +155,7 @@ NTSTATUS NTAPI InitVideo(VOID) { - ULONG iDevNum, iVGACompatible = -1, ulMaxObjectNumber = 0; - WCHAR awcDeviceName[20]; - WCHAR awcBuffer[256]; NTSTATUS Status; - PGRAPHICS_DEVICE pGraphicsDevice; - ULONG cbValue; HKEY hkey; TRACE("----------------------------- InitVideo() -------------------------------\n"); @@ -173,85 +168,10 @@ InitVideo(VOID) if (gbBaseVideo) ERR("VGA mode requested.\n"); - /* Open the key for the adapters */ - Status = RegOpenKey(KEY_VIDEO, &hkey); + /* Initialize all display devices */ + Status = EngpUpdateGraphicsDeviceList(); if (!NT_SUCCESS(Status)) - { - ERR("Could not open HARDWARE\\DEVICEMAP\\VIDEO registry key:0x%lx\n", Status); return Status; - } - - /* Read the name of the VGA adapter */ - cbValue = sizeof(awcDeviceName); - Status = RegQueryValue(hkey, L"VgaCompatible", REG_SZ, awcDeviceName, &cbValue); - if (NT_SUCCESS(Status)) - { - iVGACompatible = _wtoi(&awcDeviceName[sizeof("\\Device\\Video")-1]); - ERR("VGA adapter = %lu\n", iVGACompatible); - } - - /* Get the maximum mumber of adapters */ - if (!RegReadDWORD(hkey, L"MaxObjectNumber", &ulMaxObjectNumber)) - { - ERR("Could not read MaxObjectNumber, defaulting to 0.\n"); - } - - TRACE("Found %lu devices\n", ulMaxObjectNumber + 1); - - /* Loop through all adapters */ - for (iDevNum = 0; iDevNum <= ulMaxObjectNumber; iDevNum++) - { - /* Create the adapter's key name */ - swprintf(awcDeviceName, L"\\Device\\Video%lu", iDevNum); - - /* Read the reg key name */ - cbValue = sizeof(awcBuffer); - Status = RegQueryValue(hkey, awcDeviceName, REG_SZ, awcBuffer, &cbValue); - if (!NT_SUCCESS(Status)) - { - ERR("failed to query the registry path:0x%lx\n", Status); - continue; - } - - /* Initialize the driver for this device */ - pGraphicsDevice = InitDisplayDriver(awcDeviceName, awcBuffer); - if (!pGraphicsDevice) continue; - - /* Check if this is a VGA compatible adapter */ - if (pGraphicsDevice->StateFlags & DISPLAY_DEVICE_VGA_COMPATIBLE) - { - /* Save this as the VGA adapter */ - if (!gpVgaGraphicsDevice) - gpVgaGraphicsDevice = pGraphicsDevice; - TRACE("gpVgaGraphicsDevice = %p\n", gpVgaGraphicsDevice); - } - else - { - /* Set the first one as primary device */ - if (!gpPrimaryGraphicsDevice) - gpPrimaryGraphicsDevice = pGraphicsDevice; - TRACE("gpPrimaryGraphicsDevice = %p\n", gpPrimaryGraphicsDevice); - } - } - - /* Close the device map registry key */ - ZwClose(hkey); - - /* Was VGA mode requested? */ - if (gbBaseVideo) - { - /* Check if we found a VGA compatible device */ - if (gpVgaGraphicsDevice) - { - /* Set the VgaAdapter as primary */ - gpPrimaryGraphicsDevice = gpVgaGraphicsDevice; - // FIXME: DEVMODE - } - else - { - ERR("Could not find VGA compatible driver. Trying normal.\n"); - } - } /* Check if we had any success */ if (!gpPrimaryGraphicsDevice) @@ -326,6 +246,12 @@ UserEnumDisplayDevices( HKEY hkey; NTSTATUS Status; + if (!pustrDevice) + { + /* Check if some devices have been added since last time */ + EngpUpdateGraphicsDeviceList(); + } + /* Ask gdi for the GRAPHICS_DEVICE */ pGraphicsDevice = EngpFindGraphicsDevice(pustrDevice, iDevNum, 0); if (!pGraphicsDevice) diff --git a/win32ss/user/ntuser/ntuser.h b/win32ss/user/ntuser/ntuser.h index 379825056d1..78b6bacd965 100644 --- a/win32ss/user/ntuser/ntuser.h +++ b/win32ss/user/ntuser/ntuser.h @@ -48,4 +48,10 @@ RegWriteUserSetting( _In_reads_bytes_(cjDataSize) const VOID *pvData, _In_ ULONG cjDataSize); +PGRAPHICS_DEVICE +NTAPI +InitDisplayDriver( + IN PWSTR pwszDeviceName, + IN PWSTR pwszRegKey); + /* EOF */
3 years, 5 months
1
0
0
0
[reactos] 01/09: [VBEMP] Remove too verbose log, when debug is enabled in videoprt
by Hervé Poussineau
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b5966977ac78d1d9d4940…
commit b5966977ac78d1d9d494092b4ddf14893d5ac366 Author: Hervé Poussineau <hpoussin(a)reactos.org> AuthorDate: Fri Jun 18 22:46:24 2021 +0200 Commit: Hervé Poussineau <hpoussin(a)reactos.org> CommitDate: Sat Jul 10 16:27:44 2021 +0200 [VBEMP] Remove too verbose log, when debug is enabled in videoprt --- win32ss/drivers/miniport/vbe/vbemp.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/win32ss/drivers/miniport/vbe/vbemp.c b/win32ss/drivers/miniport/vbe/vbemp.c index 7525b78561c..14eaac91061 100644 --- a/win32ss/drivers/miniport/vbe/vbemp.c +++ b/win32ss/drivers/miniport/vbe/vbemp.c @@ -90,12 +90,6 @@ VBEFindAdapter( static int VBESortModesCallback(PVBE_MODEINFO VbeModeInfoA, PVBE_MODEINFO VbeModeInfoB) { - VideoPortDebugPrint(Info, "VBESortModesCallback: %dx%dx%d / %dx%dx%d\n", - VbeModeInfoA->XResolution, VbeModeInfoA->YResolution, - VbeModeInfoA->BitsPerPixel, - VbeModeInfoB->XResolution, VbeModeInfoB->YResolution, - VbeModeInfoB->BitsPerPixel); - /* * FIXME: Until some reasonable method for changing video modes will * be available we favor more bits per pixel. It should be changed
3 years, 5 months
1
0
0
0
[reactos] 01/01: [IMM32_APITEST] Add imm32_apitest test program (#3810)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d066dae7d9a396c1c000e…
commit d066dae7d9a396c1c000ea87225a3718d10b6322 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Sat Jul 10 00:05:43 2021 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Sat Jul 10 00:05:43 2021 +0900 [IMM32_APITEST] Add imm32_apitest test program (#3810) Add a test program for imm32.dll as a proof of concept. CORE-11700 --- modules/rostests/apitests/CMakeLists.txt | 1 + modules/rostests/apitests/imm32/CMakeLists.txt | 10 ++++++++ modules/rostests/apitests/imm32/imcc.c | 33 ++++++++++++++++++++++++++ modules/rostests/apitests/imm32/testlist.c | 11 +++++++++ 4 files changed, 55 insertions(+) diff --git a/modules/rostests/apitests/CMakeLists.txt b/modules/rostests/apitests/CMakeLists.txt index 7c1ff8120ed..b9f10c04120 100644 --- a/modules/rostests/apitests/CMakeLists.txt +++ b/modules/rostests/apitests/CMakeLists.txt @@ -23,6 +23,7 @@ add_subdirectory(dnsapi) add_subdirectory(fontext) add_subdirectory(gdi32) add_subdirectory(gditools) +add_subdirectory(imm32) add_subdirectory(iphlpapi) add_subdirectory(kernel32) add_subdirectory(loadconfig) diff --git a/modules/rostests/apitests/imm32/CMakeLists.txt b/modules/rostests/apitests/imm32/CMakeLists.txt new file mode 100644 index 00000000000..7e5e1223d7b --- /dev/null +++ b/modules/rostests/apitests/imm32/CMakeLists.txt @@ -0,0 +1,10 @@ + +list(APPEND SOURCE + imcc.c + testlist.c) + +add_executable(imm32_apitest ${SOURCE}) +target_link_libraries(imm32_apitest wine ${PSEH_LIB}) +set_module_type(imm32_apitest win32cui) +add_importlibs(imm32_apitest imm32 msvcrt kernel32 ntdll) +add_rostests_file(TARGET imm32_apitest) diff --git a/modules/rostests/apitests/imm32/imcc.c b/modules/rostests/apitests/imm32/imcc.c new file mode 100644 index 00000000000..230222be263 --- /dev/null +++ b/modules/rostests/apitests/imm32/imcc.c @@ -0,0 +1,33 @@ +/* + * PROJECT: ReactOS api tests + * LICENSE: GPL-2.0-or-later (
https://spdx.org/licenses/GPL-2.0-or-later
) + * PURPOSE: Test for imm32 IMCC + * COPYRIGHT: Copyright 2021 Katayama Hirofumi MZ (katayama.hirofumi.mz(a)gmail.com) + */ + +#include <ntstatus.h> +#define WIN32_NO_STATUS +#include <windows.h> +#include <imm.h> +#include "wine/test.h" + +START_TEST(imcc) +{ + HIMCC hImcc; + DWORD i; + + for (i = 0; i < 4; ++i) + { + hImcc = ImmCreateIMCC(i); + ok_long(LocalSize(hImcc), 4); + ok_long(ImmGetIMCCSize(hImcc), 4); + ok_long(ImmGetIMCCLockCount(hImcc), (LocalFlags(hImcc) & LMEM_LOCKCOUNT)); + ImmDestroyIMCC(hImcc); + } + + hImcc = ImmCreateIMCC(5); + ok_long(LocalSize(hImcc), 5); + ok_long(ImmGetIMCCSize(hImcc), 5); + ok_long(ImmGetIMCCLockCount(hImcc), (LocalFlags(hImcc) & LMEM_LOCKCOUNT)); + ImmDestroyIMCC(hImcc); +} diff --git a/modules/rostests/apitests/imm32/testlist.c b/modules/rostests/apitests/imm32/testlist.c new file mode 100644 index 00000000000..15f00bfca65 --- /dev/null +++ b/modules/rostests/apitests/imm32/testlist.c @@ -0,0 +1,11 @@ + +#define STANDALONE +#include <wine/test.h> + +extern void func_imcc(void); + +const struct test winetest_testlist[] = +{ + { "imcc", func_imcc }, + { 0, 0 } +};
3 years, 5 months
1
0
0
0
[reactos] 01/01: [SDK][INCLUDE] Add offset info to INPUTCONTEXT (#3809)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=2fa04363728fe187bf9b8…
commit 2fa04363728fe187bf9b8ac9f9219e7abfdbcbd7 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Fri Jul 9 23:31:42 2021 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Fri Jul 9 23:31:42 2021 +0900 [SDK][INCLUDE] Add offset info to INPUTCONTEXT (#3809) Add offset and size information to INPUTCONTEXT structure for information help. CORE-11700 --- sdk/include/reactos/wine/ddk/imm.h | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/sdk/include/reactos/wine/ddk/imm.h b/sdk/include/reactos/wine/ddk/imm.h index 0ee7ee52904..583dbd63cc1 100644 --- a/sdk/include/reactos/wine/ddk/imm.h +++ b/sdk/include/reactos/wine/ddk/imm.h @@ -47,6 +47,46 @@ typedef struct _tagINPUTCONTEXT { DWORD dwReserve[3]; } INPUTCONTEXT, *LPINPUTCONTEXT; +#ifdef _WIN64 +C_ASSERT(offsetof(INPUTCONTEXT, hWnd) == 0x0); +C_ASSERT(offsetof(INPUTCONTEXT, fOpen) == 0x8); +C_ASSERT(offsetof(INPUTCONTEXT, ptStatusWndPos) == 0xc); +C_ASSERT(offsetof(INPUTCONTEXT, ptSoftKbdPos) == 0x14); +C_ASSERT(offsetof(INPUTCONTEXT, fdwConversion) == 0x1c); +C_ASSERT(offsetof(INPUTCONTEXT, fdwSentence) == 0x20); +C_ASSERT(offsetof(INPUTCONTEXT, lfFont) == 0x24); +C_ASSERT(offsetof(INPUTCONTEXT, cfCompForm) == 0x80); +C_ASSERT(offsetof(INPUTCONTEXT, cfCandForm) == 0x9c); +C_ASSERT(offsetof(INPUTCONTEXT, hCompStr) == 0x120); +C_ASSERT(offsetof(INPUTCONTEXT, hCandInfo) == 0x128); +C_ASSERT(offsetof(INPUTCONTEXT, hGuideLine) == 0x130); +C_ASSERT(offsetof(INPUTCONTEXT, hPrivate) == 0x138); +C_ASSERT(offsetof(INPUTCONTEXT, dwNumMsgBuf) == 0x140); +C_ASSERT(offsetof(INPUTCONTEXT, hMsgBuf) == 0x148); +C_ASSERT(offsetof(INPUTCONTEXT, fdwInit) == 0x150); +C_ASSERT(offsetof(INPUTCONTEXT, dwReserve) == 0x154); +C_ASSERT(sizeof(INPUTCONTEXT) == 0x160); +#else +C_ASSERT(offsetof(INPUTCONTEXT, hWnd) == 0x0); +C_ASSERT(offsetof(INPUTCONTEXT, fOpen) == 0x4); +C_ASSERT(offsetof(INPUTCONTEXT, ptStatusWndPos) == 0x8); +C_ASSERT(offsetof(INPUTCONTEXT, ptSoftKbdPos) == 0x10); +C_ASSERT(offsetof(INPUTCONTEXT, fdwConversion) == 0x18); +C_ASSERT(offsetof(INPUTCONTEXT, fdwSentence) == 0x1c); +C_ASSERT(offsetof(INPUTCONTEXT, lfFont) == 0x20); +C_ASSERT(offsetof(INPUTCONTEXT, cfCompForm) == 0x7c); +C_ASSERT(offsetof(INPUTCONTEXT, cfCandForm) == 0x98); +C_ASSERT(offsetof(INPUTCONTEXT, hCompStr) == 0x118); +C_ASSERT(offsetof(INPUTCONTEXT, hCandInfo) == 0x11c); +C_ASSERT(offsetof(INPUTCONTEXT, hGuideLine) == 0x120); +C_ASSERT(offsetof(INPUTCONTEXT, hPrivate) == 0x124); +C_ASSERT(offsetof(INPUTCONTEXT, dwNumMsgBuf) == 0x128); +C_ASSERT(offsetof(INPUTCONTEXT, hMsgBuf) == 0x12c); +C_ASSERT(offsetof(INPUTCONTEXT, fdwInit) == 0x130); +C_ASSERT(offsetof(INPUTCONTEXT, dwReserve) == 0x134); +C_ASSERT(sizeof(INPUTCONTEXT) == 0x140); +#endif + LPINPUTCONTEXT WINAPI ImmLockIMC(HIMC); #endif /* _WINE_IMM_H_ */
3 years, 5 months
1
0
0
0
[reactos] 01/01: Add/Update German translation (#3805)
by Robert Naumann
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=65387805a07c0f818899f…
commit 65387805a07c0f818899f27c766083acecccd0c3 Author: Robert Naumann <gonzomdx(a)gmail.com> AuthorDate: Fri Jul 9 11:15:34 2021 +0200 Commit: GitHub <noreply(a)github.com> CommitDate: Fri Jul 9 11:15:34 2021 +0200 Add/Update German translation (#3805) Add translations for: - [CHARMAP_NEW] - [COMP] - [EVENTCREATE] - [TIMEOUT] - [WHERE] - [UTILMAN] - [CHKDSK] - [SHELLEXT]: cryptext, devcpux, mycomp, netplwiz - [MSXML3R] - [THEMES]: Blackshade, Lunar Update translations for: - [CLIPBRD] - [SHORTCUTS.INF] --- base/applications/charmap_new/charmap.rc | 3 + base/applications/charmap_new/lang/de-DE.rc | 22 +++++++ base/applications/clipbrd/lang/de-DE.rc | 4 +- base/applications/cmdutils/comp/comp.rc | 3 + base/applications/cmdutils/comp/lang/de-DE.rc | 23 ++++++++ .../cmdutils/eventcreate/eventcreate.rc | 3 + .../cmdutils/eventcreate/lang/de-DE.rc | 69 ++++++++++++++++++++++ base/applications/cmdutils/timeout/lang/de-DE.rc | 33 +++++++++++ base/applications/cmdutils/timeout/timeout.rc | 3 + base/applications/cmdutils/where/lang/de-DE.rc | 53 +++++++++++++++++ base/applications/cmdutils/where/where.rc | 4 ++ base/applications/utilman/lang/de-DE.rc | 13 ++++ base/applications/utilman/umandlg/lang/de-DE.rc | 45 ++++++++++++++ base/applications/utilman/umandlg/umandlg.rc | 3 + base/applications/utilman/utilman.rc | 3 + base/system/chkdsk/chkdsk.rc | 3 + base/system/chkdsk/lang/de-DE.rc | 33 +++++++++++ dll/shellext/cryptext/cryptext.rc | 3 + dll/shellext/cryptext/lang/de-DE.rc | 13 ++++ dll/shellext/devcpux/lang/de-DE.rc | 41 +++++++++++++ dll/shellext/devcpux/processor.rc | 3 + dll/shellext/mydocs/lang/de-DE.rc | 6 ++ dll/shellext/mydocs/mydocs.rc | 3 + dll/shellext/netplwiz/lang/de-DE.rc | 21 +++++++ dll/shellext/netplwiz/netplwiz.rc | 3 + dll/win32/msxml3r/lang/de-DE.rc | 7 +++ dll/win32/msxml3r/msxml3r.rc | 3 + media/inf/shortcuts.inf | 10 ++-- .../Blackshade/blackshade.msstyles/blackshade.rc | 3 + .../Blackshade/blackshade.msstyles/lang/de-DE.rc | 37 ++++++++++++ media/themes/Lunar/lunar.msstyles/lang/de-DE.rc | 37 ++++++++++++ media/themes/Lunar/lunar.msstyles/lunar.rc | 3 + 32 files changed, 507 insertions(+), 6 deletions(-) diff --git a/base/applications/charmap_new/charmap.rc b/base/applications/charmap_new/charmap.rc index 044b68228bf..13d871d7044 100644 --- a/base/applications/charmap_new/charmap.rc +++ b/base/applications/charmap_new/charmap.rc @@ -18,6 +18,9 @@ IDI_ICON ICON "res/charmap.ico" /* UTF-8 */ #pragma code_page(65001) +#ifdef LANGUAGE_DE_DE + #include "lang/de-DE.rc" +#endif #ifdef LANGUAGE_EN_US #include "lang/en-US.rc" #endif diff --git a/base/applications/charmap_new/lang/de-DE.rc b/base/applications/charmap_new/lang/de-DE.rc new file mode 100644 index 00000000000..dd31010f835 --- /dev/null +++ b/base/applications/charmap_new/lang/de-DE.rc @@ -0,0 +1,22 @@ +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +IDD_CHARMAP DIALOGEX 6, 6, 290, 224 +FONT 8, "MS Shell Dlg", 0, 0 +STYLE WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_SIZEBOX +CAPTION "ReactOS Zeichentabelle" +BEGIN + LTEXT "Schriftart:", IDC_STATIC, 6, 7, 24, 9 + COMBOBOX IDC_FONTCOMBO, 28, 5, 150, 210, WS_CHILD | WS_VISIBLE | + WS_VSCROLL | CBS_DROPDOWNLIST | CBS_SORT | CBS_HASSTRINGS + LTEXT "Zu kopierende Zeichen:", IDC_STATIC, 6, 188, 66, 9 + CONTROL "", IDC_TEXTBOX, RICHEDIT_CLASS, ES_AUTOHSCROLL | WS_BORDER | + WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13 + DEFPUSHBUTTON "Auswählen", IDC_SELECT, 194, 186, 44, 13 + PUSHBUTTON "Kopieren", IDC_COPY, 242, 186, 44, 13, WS_DISABLED +END + +STRINGTABLE +BEGIN + IDS_ABOUT "Ü&ber..." + IDS_TITLE "Zeichentabelle" +END diff --git a/base/applications/clipbrd/lang/de-DE.rc b/base/applications/clipbrd/lang/de-DE.rc index 3bd14fa79e4..f1779947bd9 100644 --- a/base/applications/clipbrd/lang/de-DE.rc +++ b/base/applications/clipbrd/lang/de-DE.rc @@ -32,8 +32,8 @@ END STRINGTABLE BEGIN - STRING_CLIPBOARD "Clipboard Viewer" - STRING_CLIPFILE "Clipboard Element" + STRING_CLIPBOARD "Zwischenablagenanzeige" + STRING_CLIPFILE "Zwischenablagen-Element" STRING_DELETE_MSG "Soll der Inhalt der Zwischenablage gelöscht werden?" STRING_DELETE_TITLE "Zwischenablage löschen" STRING_FORMAT_NT "Zwischenablagedateien für ReactOS (*.clp)" diff --git a/base/applications/cmdutils/comp/comp.rc b/base/applications/cmdutils/comp/comp.rc index f53c63533c9..44bdd1546be 100644 --- a/base/applications/cmdutils/comp/comp.rc +++ b/base/applications/cmdutils/comp/comp.rc @@ -12,6 +12,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL /* UTF-8 */ #pragma code_page(65001) +#ifdef LANGUAGE_DE_DE + #include "lang/de-DE.rc" +#endif #ifdef LANGUAGE_EN_US #include "lang/en-US.rc" #endif diff --git a/base/applications/cmdutils/comp/lang/de-DE.rc b/base/applications/cmdutils/comp/lang/de-DE.rc new file mode 100644 index 00000000000..78e4acd9019 --- /dev/null +++ b/base/applications/cmdutils/comp/lang/de-DE.rc @@ -0,0 +1,23 @@ +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +STRINGTABLE +BEGIN + IDS_HELP "Vergleicht den Inhalt von zwei Dateien oder Dateisätzen.\n\n\ +COMP [/L] [/A] [data1] [data2]\n\n\ + data1 Gibt den Speicherort und Namen der ersten zu vergleichenden Datei(en) an.\n\ + data2 Gibt den Speicherort und Namen der zweiten zu vergleichenden Datei(en) an.\n\ + /A Zeigt Unterschiede in ASCII-Zeichen an (Standard: hexadezimal).\n\ + /L Zeigt Zeilennummern für Unterschiede an.\n" + IDS_INVALIDSWITCH "Unzulässige Option - /%c\n" + IDS_BADSYNTAX "Fehlerhafte Kommandozeilensyntax\n" + IDS_FILEERROR "Kann Datei %s nicht finden/öffnen.\n" + IDS_COMPARING "Vergleiche %s und %s...\n" + IDS_FILESIZEERROR "Kann Dateigröße der Datei %s nicht ermitteln\n" + IDS_SIZEDIFFERS "Dateien sind unterschiedlich groß.\n" + IDS_READERROR "Dateilesefehler.\n" + IDS_MISMATCHLINE "Vergleichsfehler in ZEILE %d\n" + IDS_MISMATCHOFFSET "Vergleichsfehler bei OFFSET 0x%X\n" + IDS_ASCIIDIFF "file%d = %c\n" + IDS_HEXADECIMALDIFF "file%d = %X\n" + IDS_MATCH "Dateivergleich OK\n" +END diff --git a/base/applications/cmdutils/eventcreate/eventcreate.rc b/base/applications/cmdutils/eventcreate/eventcreate.rc index 33506fbb6db..9ad57388b68 100644 --- a/base/applications/cmdutils/eventcreate/eventcreate.rc +++ b/base/applications/cmdutils/eventcreate/eventcreate.rc @@ -15,6 +15,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL /* UTF-8 */ #pragma code_page(65001) +#ifdef LANGUAGE_DE_DE + #include "lang/de-DE.rc" +#endif #ifdef LANGUAGE_EN_US #include "lang/en-US.rc" #endif diff --git a/base/applications/cmdutils/eventcreate/lang/de-DE.rc b/base/applications/cmdutils/eventcreate/lang/de-DE.rc new file mode 100644 index 00000000000..1efd2b95ad9 --- /dev/null +++ b/base/applications/cmdutils/eventcreate/lang/de-DE.rc @@ -0,0 +1,69 @@ +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +STRINGTABLE +BEGIN + IDS_USAGE "Tippen Sie ""EVENTCREATE /?"" um Informationen zur Benutzung zu erhalten.\n" + IDS_HELP "\n\ +EVENTCREATE [/S Computer [/U [Domäne\\]Nutzer [/P Passwort]]] /ID Ereignis-ID\n\ + {[/L Protokollname] | [/SO Quelle]} /T Typ /C Kategorie /D Beschreibung\n\ +\n\ +Beschreibung:\n\ + Dieses Befehlszeilenprogramm ermöglicht Administratoren, eine\n\ + Ereignis-ID und -meldung in einem angegebenen Ereignisprotokoll\n\ + zu erstellen.\n\ +\n\ +Parameter:\n\ + /S Computer Remotecomputer für die Verbindungsherstellung.\n\ +\n\ + /U [Domäne\\]Nutzer Bestimmt den Benutzer, unter dem der Befehl\n\ + ausgeführt wird.\n\ +\n\ + /P [Passwort] Bestimmt das Kennwort des Benutzers.\n\ + Wird abgefragt, wenn ausgelassen.\n\ +\n\ + /L Protokollname Bestimmt den Namen des Protokolls in dem das Ereignis\n\ + erstellt wird. Zulässige Namen sind:\n\ + Application, System, Security\n\ + (Letzteres ist dem SYSTEM-Account vorbehalten).\n\ +\n\ + /SO Quelle Bestimmt den Namen der Quelle des Ereignisses\n\ + (Wenn nicht angegeben, wird der Standardname\n\ + 'eventcreate' benutzt).\n\ + Eine gültige Quelle kann aus einer beliebigen\n\ + Zeichenfolge bestehen und sollte die Anwendung\n\ + oder Komponente darstellen, die das Ereignis verursacht.\n\ +\n\ + /T Typ Bestimmt den Typ des zu erstellenden Ereignisses.\n\ + Zulässige Typen sind: SUCCESS, ERROR, WARNING,\n\ + INFORMATION.\n\ +\n\ + /C Kategorie Bestimmt die Kategorie (Ganzzahl) des Ereignisses.\n\ +\n\ + /ID Ereignis-ID Bestimmt die Ereignis-ID der Ereignisses. Anzugeben\n\ + ist eine Ganzzahl zwischen 0 und 65535.\n\ +\n\ + /D Beschreibung Legt die Beschreibung für das neu erstellte Ereignis fest.\n\ +\n\ + /? Zeigt diesen Hilfebildschirm an.\n\ +" + IDS_INVALIDSWITCH "Ungültige Option - '%s'.\n" + IDS_BADSYNTAX_0 "Fehlerhafte Kommandozeilensyntax.\n" + IDS_BADSYNTAX_1 "Fehlerhafte Kommandozeilensyntax. Die Option '%s' benötigt einen Wert.\n" + IDS_BADSYNTAX_2 "Fehlerhafte Kommandozeilensyntax. Der Wert für die Option '%s' darf nicht leer sein.\n" + IDS_BADSYNTAX_3 "Fehlerhafte Kommandozeilensyntax. Der Wert '%s' ist für die Option '%s' nicht erlaubt.\n" + IDS_BADSYNTAX_4 "Fehlerhafte Kommandozeilensyntax. Der Wert kann der Option '%s' nicht zugewiesen werden.\n" + IDS_BADSYNTAX_5 "Fehlerhafte Kommandozeilensyntax. Die Option '%s' ist nicht mehr als %lu mal erlaubt.\n" + IDS_BADSYNTAX_6 "Fehlerhafte Kommandozeilensyntax. Die zwingende Option '%s' fehlt.\n" + // IDS_BADSYNTAX_7 "Fehlerhafte Kommandozeilensyntax. Der Wert für die Option '%s' ist außerhalb des Wertebereiches.\n" + IDS_BADSYNTAX_7 "Fehlerhafte Kommandozeilensyntax. Der Wert für die Option '%s' muss zwischen %d und %d. liegen\n" + + IDS_LOG_NOT_FOUND "Das Protokoll '%s' existiert nicht. Das Ereignis konnte nicht erstellt werden.\n" + IDS_SOURCE_NOCREATE "Die neue Quelle kann nicht erstellt werden, da kein Protokollname angegebenen wurde.\nNutzen Sie die Option /L um einen Protokollnamen anzugeben.\n" + IDS_SOURCE_EXISTS "Die Quelle existiert bereits im Protokoll '%s' und kann nicht dupliziert werden.\n" + IDS_SOURCE_NOT_CUSTOM "Der Quellparameter wird benutzt um benutzerdefinierte Skripte/Anwendungen zu identifizieren\n(keine installierten Anwendungen).\n" + + IDS_SUCCESS_1 "Operation erfolgreich: Ein Ereignis des Typs '%s' wurde im Protokoll '%s' erstellt.\n" + IDS_SUCCESS_2 "Operation erfolgreich: Ein Ereignis des Typs '%s' wurde mit der Quelle '%s' erstellt.\n" + IDS_SUCCESS_3 "Operation erfolgreich: Ein Ereignis des Typs '%s' wurde im\nProtokoll '%s' mit der Quelle '%s' erstellt.\n" + IDS_SWITCH_UNIMPLEMENTED "Die Option '%s' wird aktuell noch nicht unterstützt.\n" +END diff --git a/base/applications/cmdutils/timeout/lang/de-DE.rc b/base/applications/cmdutils/timeout/lang/de-DE.rc new file mode 100644 index 00000000000..ddf2f2d17d7 --- /dev/null +++ b/base/applications/cmdutils/timeout/lang/de-DE.rc @@ -0,0 +1,33 @@ +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +STRINGTABLE +BEGIN + IDS_USAGE "ReactOS Timeout Werkzeug\n\ +\n\ +TIMEOUT [/?] [/T] Zeit [/NOBREAK]\n\ +\n\ +Beschreibung:\n\ + Dieses Programm wartet, bis eine angegebene Zeit (in Sekunden) vergangen ist\n\ + oder eine Taste gedrückt wurde. Ein Parameter um den Tastendruck zu ignorieren\n\ + ist möglich.\n\ +\n\ +Parameter:\n\ + /? Zeigt diesen Hilfebildschirm an.\n\ +\n\ + /T Zeit Bestimmt die zu wartenden Sekunden (zwischen -1 und 99999).\n\ + Ein Wert von -1 bedeutet, dass das Programm auf einen Tastendruck wartet.\n\ + Beachten Sie, dass die Angabe von ""/T"" optional ist, Sie können die Zeit\n\ + ohne dessen Angabe übergeben.\n\ +\n\ + /NOBREAK Ignoriert sämtliche Tasteneingaben mit Ausnahme von Strg+C.\n\ +" + IDS_ERROR_OUT_OF_RANGE "FEHLER: Die Zeit muss innerhalb des Wertebereiches liegen (-1 bis 99999).\n" + IDS_ERROR_INVALID_HANDLE_VALUE "FEHLER: Standard-Handle der Konsole nicht verfügbar (Fehlercode %lu).\n" + IDS_ERROR_READ_INPUT "FEHLER: Abfragen der Konsoleneingabe nicht möglich (Fehlercode %lu).\n" + IDS_ERROR_NO_TIMER_VALUE "FEHLER: Es muss eine Zeit angegeben werden (-1 bis 99999).\n" + IDS_ERROR_ONE_TIME "FEHLER: Es wird nur ein Zeitwert benötigt.\n" + IDS_NOBREAK_INPUT "Drücken Sie Strg+C zum Beenden..." + IDS_USER_INPUT "Beliebige Taste drücken um fortzufahren..." + IDS_NOBREAK_INPUT_COUNT "Warte %d Sekunde(n), Drücken Sie Strg+C zum Beenden..." + IDS_USER_INPUT_COUNT "Warte %d Sekunde(n), beliebige Taste drücken um fortzufahren..." +END diff --git a/base/applications/cmdutils/timeout/timeout.rc b/base/applications/cmdutils/timeout/timeout.rc index a9cdfe98539..fe5aaad2a98 100644 --- a/base/applications/cmdutils/timeout/timeout.rc +++ b/base/applications/cmdutils/timeout/timeout.rc @@ -13,6 +13,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL /* UTF-8 */ #pragma code_page(65001) +#ifdef LANGUAGE_DE_DE + #include "lang/de-DE.rc" +#endif #ifdef LANGUAGE_EN_US #include "lang/en-US.rc" #endif diff --git a/base/applications/cmdutils/where/lang/de-DE.rc b/base/applications/cmdutils/where/lang/de-DE.rc new file mode 100644 index 00000000000..594fa400f7b --- /dev/null +++ b/base/applications/cmdutils/where/lang/de-DE.rc @@ -0,0 +1,53 @@ +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +STRINGTABLE +BEGIN + IDS_USAGE "Benutzung: WHERE [Optionen] Muster...\n\ +\n\ +Beschreibung:\n\ + Zeigt den Speicherort von Dateien entsprechend des Suchmusters an.\n\ + Standardmäßig sucht dieses Tool mittels des Suchmusters und den in der\n\ + PATH Umgebungsvariable definierten Pfaden.\n\ +\n\ +Optionen:\n\ + /F Zeigt übereinstimmende Dateien in Anführungszeichen an.\n\ + /Q Stiller Modus. Zeigt keine Dateien und Meldungen.\n\ + /R dir Startet die Suche vom angegebenen Verzeichnis\n\ + und durchsucht dieses rekursiv.\n\ + /T Zeigt die Dateigröße und den letzten Änderungszeitpunkt\n\ + aller übereinstimmenden Dateien an.\n\ + Muster Bestimmt das Suchmuster für die gesuchten Dateien.\n\ + Platzhalter * und ? können im Muster verwendet werden.\n\ + Formate ""$env:pattern"" und ""path:pattern"" können\n\ + auch angegeben werden, wenn ""env"" eine Umgebungsvariable ist,\n\ + und die Suche in den angegebenen Pfaden der Umgebungsvariable\n\ + ""env"" ausgeführt wird. Diese Formate können nicht mit\n\ + /R verwendet werden. Die Suche wird auch nach Anhängen der\n\ + PATHEXT-Variablenerweiterungen an das Muster durchgeführt.\n\ + /? Zeigt diesen Hilfebildschirm.\n\ +\n\ +HINWEIS: Dieses Tool übergibt einen Fehlercode. 0, wenn die Suche erfolgreich war,\n\ + 1 wenn keine Dateien gefunden wurden und 2 wenn ein Fehler auftrat.\n\ +\n\ +Beispiele:\n\ + WHERE myfile*.exe\n\ + WHERE /F /T mspaint\n\ + WHERE $WINDIR:notepad myfile???\n\ + WHERE C:\\ReactOS;C:\\ReactOS\\system32:exp*.exe\n\ + WHERE /R ""C:\\Program Files"" *.dll\n" + + IDS_BAD_ARG "FEHLER: Ungültige Option - '%ls'.\n" + IDS_NOT_FOUND "HINWEIS: Es konnten keine Dateien/Ordner für das angegebene Suchmuster gefunden werden.\n" + IDS_FILE_INFO "%10I64u %-12ls %-12ls %ls\n" + IDS_WANT_VALUE "FEHLER: Ein Wert wird für '%ls' benötigt.\n" + IDS_TYPE_HELP "Tippen Sie ""WHERE /?"" für eine Benutzungshilfe.\n" + IDS_ENVPAT_WITH_R "FEHLER: ""$env:pattern""kann nicht mit /R benutzt werden.\n" + IDS_PATHPAT_WITH_R "FEHLER: ""path:pattern"" Format kann nicht mit /R benutzt werden.\n" + IDS_BAD_PATHPAT "FEHLER: Ungültiges Suchmuster ist in ""path:pattern"" angegeben.\n" + IDS_OUTOFMEMORY "FEHLER: Ungenügender Speicher.\n" + IDS_BAD_ENVVAR "FEHLER: Umgebungsvariable ""%ls"" wurde nicht gefunden.\n" + IDS_CANT_FOUND "FEHLER: Das System konnte die angegebene Datei nicht finden.\n" + IDS_BAD_DIR "FEHLER: Ungültiges Verzeichnis angegeben.\n" + IDS_BAD_NAME "FEHLER: Die Syntax der Datei-/Verzeichnisname(n) oder Datenträgerbezeichnung ist falsch.\n" + IDS_TOO_MANY "FEHLER: Die Option '%ls' ist nicht mehr als '%u' mal erlaubt.\n" +END diff --git a/base/applications/cmdutils/where/where.rc b/base/applications/cmdutils/where/where.rc index 24452c476b5..a97de9ec8b1 100644 --- a/base/applications/cmdutils/where/where.rc +++ b/base/applications/cmdutils/where/where.rc @@ -7,6 +7,10 @@ #include <reactos/version.rc> #pragma code_page(65001) /* UTF-8 */ + +#ifdef LANGUAGE_DE_DE + #include "lang/de-DE.rc" +#endif #ifdef LANGUAGE_EN_US #include "lang/en-US.rc" #endif diff --git a/base/applications/utilman/lang/de-DE.rc b/base/applications/utilman/lang/de-DE.rc new file mode 100644 index 00000000000..dbdf90e8277 --- /dev/null +++ b/base/applications/utilman/lang/de-DE.rc @@ -0,0 +1,13 @@ +/* + * PROJECT: ReactOS Utility Manager (Accessibility) + * LICENSE: GPL-2.0+ (
https://spdx.org/licenses/GPL-2.0+
) + * PURPOSE: German translation resource + */ + +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +STRINGTABLE +BEGIN + IDS_FAIL_INIT "Initialisierung der Utility-Manager-Bibliothek fehlgeschlagen! Fehlercode: %lu." + IDS_FAIL_INIT_TITLE "Initialisierungsfehler" +END diff --git a/base/applications/utilman/umandlg/lang/de-DE.rc b/base/applications/utilman/umandlg/lang/de-DE.rc new file mode 100644 index 00000000000..100dbca8a29 --- /dev/null +++ b/base/applications/utilman/umandlg/lang/de-DE.rc @@ -0,0 +1,45 @@ +/* + * PROJECT: ReactOS Utility Manager (Accessibility) + * LICENSE: GPL-2.0+ (
https://spdx.org/licenses/GPL-2.0+
) + * PURPOSE: German translation resource + */ + +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +IDD_MAIN_DIALOG DIALOGEX 0, 0, 284, 183 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_CONTEXTHELP +CAPTION "Eingabehilfen-Manager" +FONT 8, "MS Shell Dlg" +BEGIN + LISTBOX IDC_LISTBOX, 4, 4, 273, 56, LBS_STANDARD | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER + CONTROL "", IDC_GROUPBOX, "Button", BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 3, 62, 275, 92 + CONTROL "Start", IDC_START, "Button", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 14, 76, 45, 16 + CONTROL "Stop", IDC_STOP, "Button", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 69, 76, 45, 16 + CONTROL "Starte automatisch bei der Anmeldung", IDC_START_LOG_IN, "Button", BS_CHECKBOX | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_TABSTOP, 12, 101, 206, 14 + CONTROL "Starte automatisch bei Sperrung des Desktops", IDC_START_DESKTOP, "Button", BS_CHECKBOX | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_TABSTOP, 12, 118, 212, 14 + CONTROL "Starte automatisch beim Start des Eingabehilfen-Managers", IDC_START_UTILMAN, "Button", BS_CHECKBOX | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_TABSTOP, 12, 134, 212, 13 + CONTROL "&OK", IDC_OK, "Button", BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 160, 161, 50, 14 + CONTROL "A&bbrechen", IDC_CANCEL, "Button", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 221, 161, 50, 14 + CONTROL "&Hilfe", IDC_HELP_TOPICS, "Button", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_TABSTOP, 98, 161, 50, 14 +END + +STRINGTABLE +BEGIN + IDS_OSK "Bildschirmtastatur" + IDS_MAGNIFIER "Bildschirmlupe" +END + +STRINGTABLE +BEGIN + IDS_NOTRUNNING "%s läuft nicht" + IDS_RUNNING "%s läuft" + IDS_GROUPBOX_OPTIONS_TITLE "Optionen für %s" +END + +STRINGTABLE +BEGIN + IDM_ABOUT "Über Eingabehilfen-Manager..." + IDS_APP_NAME "Eingabehilfen-Manager" + IDS_AUTHORS "Copyright 2019 George Bișoc, Hermes Belusca-Maito" +END diff --git a/base/applications/utilman/umandlg/umandlg.rc b/base/applications/utilman/umandlg/umandlg.rc index e8531f35c44..d06e4d22781 100644 --- a/base/applications/utilman/umandlg/umandlg.rc +++ b/base/applications/utilman/umandlg/umandlg.rc @@ -23,6 +23,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL /* UTF-8 */ #pragma code_page(65001) +#ifdef LANGUAGE_DE_DE + #include "lang/de-DE.rc" +#endif #ifdef LANGUAGE_EN_US #include "lang/en-US.rc" #endif diff --git a/base/applications/utilman/utilman.rc b/base/applications/utilman/utilman.rc index 6c1fb26a173..1c9b1e9db6b 100644 --- a/base/applications/utilman/utilman.rc +++ b/base/applications/utilman/utilman.rc @@ -25,6 +25,9 @@ IDI_ICON_UTILMAN ICON "res/utilman.ico" /* UTF-8 */ #pragma code_page(65001) +#ifdef LANGUAGE_DE_DE + #include "lang/de-DE.rc" +#endif #ifdef LANGUAGE_EN_US #include "lang/en-US.rc" #endif diff --git a/base/system/chkdsk/chkdsk.rc b/base/system/chkdsk/chkdsk.rc index f19c808a7b1..c3d1a8f8e86 100644 --- a/base/system/chkdsk/chkdsk.rc +++ b/base/system/chkdsk/chkdsk.rc @@ -10,6 +10,9 @@ /* UTF-8 */ #pragma code_page(65001) +#ifdef LANGUAGE_DE_DE + #include "lang/de-DE.rc" +#endif #ifdef LANGUAGE_EN_US #include "lang/en-US.rc" #endif diff --git a/base/system/chkdsk/lang/de-DE.rc b/base/system/chkdsk/lang/de-DE.rc new file mode 100644 index 00000000000..64d06ec2558 --- /dev/null +++ b/base/system/chkdsk/lang/de-DE.rc @@ -0,0 +1,33 @@ +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +STRINGTABLE +BEGIN + IDS_USAGE "\n\ +Benutzung: %s [Laufwerk:] [-F] [-V] [-R] [-C]\n\n\ + [Laufwerk:] Gibt das zu überprüfende Laufwerk an.\n\ + -F Behebt Fehler auf dem Datenträger.\n\ + -V Zeigt den vollständigen Pfad jeder Datei\n\ + auf dem Datenträger an.\n\ + -R Findet fehlerhafte Sektoren und stellt lesbare\n\ + Informationen wieder her.\n\ + -C Überprüft das Laufwerk nur, wenn es beschädigt ist.\n\ +\n" + + IDS_PERCENT_COMPL "%d Prozent abgeschlossen.\r" + IDS_FILE_SYSTEM "Der Dateisystemtyp ist %s.\n" + IDS_ABOUT "\n\ +Chkdskx v1.0.1 by Mark Russinovich\n\ +Systems Internals -
http://www.sysinternals.com\n\
+ReactOS adaptation 1999 by Emanuele Aliberti\n\n" +END + +STRINGTABLE +BEGIN + IDS_VOLUME_IN_USE "Das Laufwerk ist in Benutzung und kann nicht gesperrt werden.\n" + IDS_CHKDSK_FAIL "Chkdsk konnte den Vorgang nicht erfolgreich ausführen.\n\n" + IDS_NO_ENTRY_POINT "FMIFS-Einstiegspunkte konnten nicht gefunden werden.\n\n" + IDS_BAD_ARGUMENT "Unbekannte Option: %s\n" + IDS_NO_CURRENT_DIR "Das aktuelle Verzeichnis konnte nicht abgerufen werden. Fehlercode: " + IDS_NO_QUERY_VOL "Das Laufwerk konnte nicht abgefragt werden. Fehlercode: " + IDS_VOLUME_IN_USE_PROC "Chkdsk konnte nicht ausgeführt werden, da das\nLaufwerk durch einen anderen Prozess in Benutzung ist.\n\n" +END diff --git a/dll/shellext/cryptext/cryptext.rc b/dll/shellext/cryptext/cryptext.rc index b16c2d1104f..d9d59e48c22 100644 --- a/dll/shellext/cryptext/cryptext.rc +++ b/dll/shellext/cryptext/cryptext.rc @@ -14,6 +14,9 @@ /* UTF-8 */ #pragma code_page(65001) +#ifdef LANGUAGE_DE_DE + #include "lang/de-DE.rc" +#endif #ifdef LANGUAGE_EN_US #include "lang/en-US.rc" #endif diff --git a/dll/shellext/cryptext/lang/de-DE.rc b/dll/shellext/cryptext/lang/de-DE.rc new file mode 100644 index 00000000000..fec1aabd841 --- /dev/null +++ b/dll/shellext/cryptext/lang/de-DE.rc @@ -0,0 +1,13 @@ +/* + * PROJECT: ReactOS CryptExt Shell Extension + * LICENSE: GPL-2.0+ (
https://spdx.org/licenses/GPL-2.0+
) + * PURPOSE: German resource translation + */ + +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +STRINGTABLE +BEGIN + IDS_INVALIDFILE "Dies ist keine gültige Zertifikatsdatei." + IDS_CER_FILE "Zertifikatsdatei" +END diff --git a/dll/shellext/devcpux/lang/de-DE.rc b/dll/shellext/devcpux/lang/de-DE.rc new file mode 100644 index 00000000000..10f8afa37d8 --- /dev/null +++ b/dll/shellext/devcpux/lang/de-DE.rc @@ -0,0 +1,41 @@ +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +DLG_PROCESSORINFO DIALOGEX 0, 0, 252, 218 +STYLE DS_SHELLFONT | WS_POPUP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +CAPTION "CPU" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Merkmale:", -1, 7, 23, 50, 8 + LTEXT "test", IDC_FEATURES, 57, 23, 181, 8 + LTEXT "Modell:", -1, 7, 38, 50, 8 + LTEXT "test", IDC_MODEL, 57, 38, 181, 8 + LTEXT "Stepping:", -1, 7, 53, 50, 51 + LTEXT "test", IDC_STEPPING, 57, 53, 181, 8 + LTEXT "Core Geschwindigkeit:", -1, 7, 68, 50, 8 + LTEXT "test", IDC_CORESPEED, 57, 68, 181, 8 +END + +STRINGTABLE +BEGIN + IDS_MEGAHERTZ "%ld MHz" +END + +/* +DLG_PROCESSORINFO DIALOGEX 0, 0, 252, 218 +STYLE DS_SHELLFONT | WS_POPUP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +CAPTION "CPU" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Merkmale:", -1, 7, 23, 50, 8 + LTEXT "<test>", IDC_FEATURES, 7, 34, 238, 8 + + LTEXT "Modell:", -1, 7, 49, 50, 8 + LTEXT "<test>", IDC_MODEL, 7, 60, 238, 8 + + LTEXT "Stepping:", -1, 7, 75, 50, 8 + LTEXT "<test>", IDC_STEPPING, 7, 86, 238, 8 + + LTEXT "Core Geschwindigkeit:", -1, 7, 101, 50, 8 + LTEXT "<test>", IDC_CORESPEED, 7, 112, 238, 8 +END +*/ diff --git a/dll/shellext/devcpux/processor.rc b/dll/shellext/devcpux/processor.rc index c64ead59c68..82c254156f7 100644 --- a/dll/shellext/devcpux/processor.rc +++ b/dll/shellext/devcpux/processor.rc @@ -12,6 +12,9 @@ /* UTF-8 */ #pragma code_page(65001) +#ifdef LANGUAGE_DE_DE + #include "lang/de-DE.rc" +#endif #ifdef LANGUAGE_EN_US #include "lang/en-US.rc" #endif diff --git a/dll/shellext/mydocs/lang/de-DE.rc b/dll/shellext/mydocs/lang/de-DE.rc new file mode 100644 index 00000000000..dc5f5ce20b1 --- /dev/null +++ b/dll/shellext/mydocs/lang/de-DE.rc @@ -0,0 +1,6 @@ +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +STRINGTABLE +{ + IDS_NOSRCFILEFOUND "Quelldatei oder -ordner '%ls' konnte nicht gefunden werden." +} diff --git a/dll/shellext/mydocs/mydocs.rc b/dll/shellext/mydocs/mydocs.rc index 232791416a7..85cea6ef5f5 100644 --- a/dll/shellext/mydocs/mydocs.rc +++ b/dll/shellext/mydocs/mydocs.rc @@ -18,6 +18,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL IDR_MYDOCS REGISTRY "res/mydocs.rgs" +#ifdef LANGUAGE_DE_DE + #include "lang/de-DE.rc" +#endif #ifdef LANGUAGE_EN_US #include "lang/en-US.rc" #endif diff --git a/dll/shellext/netplwiz/lang/de-DE.rc b/dll/shellext/netplwiz/lang/de-DE.rc new file mode 100644 index 00000000000..42f8edbc076 --- /dev/null +++ b/dll/shellext/netplwiz/lang/de-DE.rc @@ -0,0 +1,21 @@ +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +IDD_DISCONNECTDRIVES DIALOGEX 0, 0, 300, 200 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Netzlaufwerke trennen" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Wählen Sie eines oder mehrere Netzlaufwerke, die Sie trennen möchten, und klicken anschließend auf OK.", -1, 7, 7, 286, 8 + LTEXT "&Netzlaufwerke:", -1, 7, 23, 286, 8 + CONTROL "", IDC_CONNECTEDDRIVELIST, "SysListView32", LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | LVS_SINGLESEL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 7, 31, 286, 140 + PUSHBUTTON "OK", ID_OK, 189, 179, 50, 14 + PUSHBUTTON "Abbrechen", IDCANCEL, 243, 179, 50, 14 +END + +STRINGTABLE +BEGIN + IDS_DIALOG_CAPTION "Netzlaufwerk trennen" + IDS_DRIVE_LETTER "Laufwerksbuchstabe" + IDS_NETWORK_PATH "Netzwerkpfad" + IDS_NO_DRIVES "Sie haben keine Netzlaufwerke zum trennen." +END diff --git a/dll/shellext/netplwiz/netplwiz.rc b/dll/shellext/netplwiz/netplwiz.rc index 840b1dc3e5f..c0aabe70afa 100644 --- a/dll/shellext/netplwiz/netplwiz.rc +++ b/dll/shellext/netplwiz/netplwiz.rc @@ -21,6 +21,9 @@ IDI_DISCONNECT_NET_DRIVES ICON "res/4400.ico" /* UTF-8 */ #pragma code_page(65001) +#ifdef LANGUAGE_DE_DE + #include "lang/de-DE.rc" +#endif #ifdef LANGUAGE_EN_US #include "lang/en-US.rc" #endif diff --git a/dll/win32/msxml3r/lang/de-DE.rc b/dll/win32/msxml3r/lang/de-DE.rc new file mode 100644 index 00000000000..8d0daf2bb98 --- /dev/null +++ b/dll/win32/msxml3r/lang/de-DE.rc @@ -0,0 +1,7 @@ +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +STRINGTABLE +BEGIN + IDS_XML_FILE "XML-Dokument" + IDS_XLS_FILE "XSL-Stylesheet" +END diff --git a/dll/win32/msxml3r/msxml3r.rc b/dll/win32/msxml3r/msxml3r.rc index 600d9692e6c..c50dd45d7a2 100644 --- a/dll/win32/msxml3r/msxml3r.rc +++ b/dll/win32/msxml3r/msxml3r.rc @@ -14,6 +14,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL /* UTF-8 */ #pragma code_page(65001) +#ifdef LANGUAGE_DE_DE + #include "lang/de-DE.rc" +#endif #ifdef LANGUAGE_EN_US #include "lang/en-US.rc" #endif diff --git a/media/inf/shortcuts.inf b/media/inf/shortcuts.inf index 083faa313c9..dbab90ee750 100644 --- a/media/inf/shortcuts.inf +++ b/media/inf/shortcuts.inf @@ -371,8 +371,8 @@ MSPAINT_TITLE=Paint MSPAINT_DESC=Starte Paint CHARMAP_TITLE=Zeichentabelle CHARMAP_DESC=Zeichentabelle -CLIPBRD_TITLE=Clipboard Viewer -CLIPBRD_DESC=Clipboard Viewer +CLIPBRD_TITLE=Zwischenablagenanzeige +CLIPBRD_DESC=Zwischenablagenanzeige KBSWITCH_TITLE=Tastaturlayout-Umschalter KBSWITCH_DESC=Tastaturlayout-Umschalter REGEDIT_TITLE=Registrierungseditor @@ -393,8 +393,10 @@ SOL_TITLE=Solitär SOL_DESC=Solitär WINMINE_TITLE=WineMine WINMINE_DESC=WineMine -SPIDER_TITLE=Spider Solitaire -SPIDER_DESC=Spider Solitaire +SPIDER_TITLE=Spider Solitär +SPIDER_DESC=Spider Solitär +UTILMAN_TITLE=Eingabehilfen-Manager +UTILMAN_DESC=Eingabehilfen-Manager starten ; Greek [Strings.0408] diff --git a/media/themes/Blackshade/blackshade.msstyles/blackshade.rc b/media/themes/Blackshade/blackshade.msstyles/blackshade.rc index b6b126bf87d..86be74fe0c3 100644 --- a/media/themes/Blackshade/blackshade.msstyles/blackshade.rc +++ b/media/themes/Blackshade/blackshade.msstyles/blackshade.rc @@ -183,6 +183,9 @@ NORMAL_NORMALGROUPEXPAND_BMP BITMAP "bitmaps/dummy.bmp" #pragma code_page(65001) +#ifdef LANGUAGE_DE_DE + #include "lang/de-DE.rc" +#endif #ifdef LANGUAGE_EN_US #include "lang/en-US.rc" #endif diff --git a/media/themes/Blackshade/blackshade.msstyles/lang/de-DE.rc b/media/themes/Blackshade/blackshade.msstyles/lang/de-DE.rc new file mode 100644 index 00000000000..a1e73d118f7 --- /dev/null +++ b/media/themes/Blackshade/blackshade.msstyles/lang/de-DE.rc @@ -0,0 +1,37 @@ +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +STRINGTABLE +{ +1000, "Black Shade" +} + +STRINGTABLE +{ +2000, "Black Shade" +} + +STRINGTABLE +{ +3000, "Standardgröße" +3001, "Groß" +3002, "Extragroß" +} + +STRINGTABLE +{ +4000, "Standardgröße" +4001, "Groß" +4002, "Extragroß" +} + +STRINGTABLE +{ +5000, "Black Shade" +5001, "Visueller Stil" +5002, "ReactOS Foundation" +5003, "Grafiken erstellt durch David Quintana <gigaherz(a)gmail.com>" +5004, "Grafiken veröffentlicht unter CC-BY-SA 4.0" +5005, "
https://reactos.org/
" +5006, "1.0" +5007, "Visueller Stil für ReactOS" +} diff --git a/media/themes/Lunar/lunar.msstyles/lang/de-DE.rc b/media/themes/Lunar/lunar.msstyles/lang/de-DE.rc new file mode 100644 index 00000000000..a495b3c51d8 --- /dev/null +++ b/media/themes/Lunar/lunar.msstyles/lang/de-DE.rc @@ -0,0 +1,37 @@ +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +STRINGTABLE +{ +1000, "ReactOS" +} + +STRINGTABLE +{ +2000, "Lunar ReactOS" +} + +STRINGTABLE +{ +3000, "Standardgröße" +3001, "Groß" +3002, "Extragroß" +} + +STRINGTABLE +{ +4000, "Standardgröße" +4001, "Groß" +4002, "Extragroß" +} + +STRINGTABLE +{ +5000, "Lunar" +5001, "Visueller Stil" +5002, "ReactOS Foundation" +5003, "Cernodile & Illen, basierend auf Lautus" +5004, "Veröffentlicht unter GNU/GPL 2.0, 2019" +5005, "
https://reactos.org/
" +5006, "1.1" +5007, "Visueller Stil füt ReactOS" +} diff --git a/media/themes/Lunar/lunar.msstyles/lunar.rc b/media/themes/Lunar/lunar.msstyles/lunar.rc index df76f49e928..6eebefb5b2a 100644 --- a/media/themes/Lunar/lunar.msstyles/lunar.rc +++ b/media/themes/Lunar/lunar.msstyles/lunar.rc @@ -181,6 +181,9 @@ NORMAL_NORMALGROUPEXPAND_BMP BITMAP "bitmaps/dummy.bmp" #ifdef LANGUAGE_CS_CZ #include "lang/cs-CZ.rc" #endif +#ifdef LANGUAGE_DE_DE + #include "lang/de-DE.rc" +#endif #ifdef LANGUAGE_EN_US #include "lang/en-US.rc" #endif
3 years, 5 months
1
0
0
0
← Newer
1
...
7
8
9
10
11
12
13
14
15
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Results per page:
10
25
50
100
200