- Implement GetPrinterDataA, GetPrinterDataExA, GetPrinterDataExW, GetPrinterDataW, SetPrinterDataA, SetPrinterDataExA, SetPrinterDataExW, SetPrinterDataW.
They support all features for Print Server and Printer Handles (minus security checks!)
I've also added tests for them.
- Store Printer data in SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers instead of SYSTEM\CurrentControlSet\Control\Print\Printers and create a registry symlink from the former path to the new one just like Windows does.
According to https://social.technet.microsoft.com/Forums/windowsserver/en-US/a683ab54-c43c-4ebe-af8f-1f7a65af2a51, this is needed when having >900 printers to work around a size limit of the SYSTEM registry hive. And if Windows has both locations, we need both for compatibility anyway.
- Add several settings which are queried by the new Printer Data APIs when working with Print Server Handles.
- Store the job directory in the Windows-compatible "DefaultSpoolDirectory" setting and make use of it.
- Revert the ASSERTs in LocalEnumPrinters again to let us verify the NULL pointer exceptions in localspl_apitest (thanks Serge! CORE-13433)
- Translate ERROR_INVALID_NAME to ERROR_INVALID_PRINTER_NAME in all cases in OpenPrinterW (thanks Victor! CORE-13412)
- Make EnumMonitorsW and EnumPortsW in spoolss more robust against failing Print Monitors.
- Remove the wrong !phPrinter check in OpenPrinterW to make Print Server Handles work for real.
- Fix error handling when memory allocation fails: HeapAlloc doesn't set last error, so it's just wrong to query or return it.
One more item done from https://reactos.org/wiki/Printing !
This is all still a big Work-in-Progress, with many subtle bugs deep down in ReactOS, for which I need to open additional tickets. But I didn't want to make this commit even bigger..
svn path=/trunk/; revision=75125
- Implement View tab in Folder options dialog.
CORE-12540
Patch by Katayama Hirofumi MZ with a tiny improvement by me to refresh explorer in a better way.
svn path=/trunk/; revision=73703
Revert to r71800.
Do not remove the time zone index because it is used to map countries to timezones.
CORE-11526 #resolve
svn path=/trunk/; revision=71808
Remove the Index value from the time zone entries. We do not need it any more and it has been removed from Windows Vista.
svn path=/trunk/; revision=71801
- Add "Belarus Time Zone".
- Add "Russia Time Zone 3", "Russia Timezone 10" and "Russia Time Zone 11".
- Fix some standard time and daylight time names.
svn path=/trunk/; revision=71800
Add the compiler ID and version to the ROS version desktop watermark. Idea of encoded & learn_more, thanks :)
[BOOTDATA]
Enable the ROS version desktop watermark on our daily builds.
CORE-11349
svn path=/trunk/; revision=71504
- Swap two values so that they are listed in alphabetical order.
- PaintDesktopVersion is a DWORD value, as such, use a correct initializer.
svn path=/trunk/; revision=71487
- Add "aif" and "aiff" to the supported MCI Extensions.
- Remove an extra erroneous "rmi" entry that was wrongly marked as being of type "MPEGVideo".
svn path=/trunk/; revision=70597
Update the registry configuration to reflect the recent changes to rosvboxmgmt.
Just uncomment the line matching the behavior you prefer.
CORE-10032
ROSAPPS-303
svn path=/trunk/; revision=70537
Add a commented out way to automatically start `rosvboxmgmt auto' on start so that shortcuts for VBox shared folders are properly created.
This is to be enabled on 0.4.0.
CORE-10032
ROSAPPS-303
svn path=/trunk/; revision=70510
- Remove hardcoded registry values: CurrentVersion, CSDVersion and CurrentBuildNumber from HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion. They are computed and stored there by the kernel.
- All the versioning is controlled by the two values: CSDReleaseType and CSDVersion in HKLM\SYSTEM\CurrentControlSet\Control\Windows. Currently we target SP1.
[NTDLL]
The lpVersionInformation->szCSDVersion string should not be built by RtlGetVersion, but instead retrieved from the Peb->CSDVersion string that in turn is initialized by the NTDLL PE Loader. Normally this is a App-Compatibility-dependent string, but for now we somewhat hardcode it (it is built using the actual Peb->OSCSDVersion number).
[RTL]: Rename some variables "à la NT" and use adequate types (but no code changes otherwise).
[NTOS]
- Fix PsGetVersion that should use the CmCSDVersionString variable. This API also returns TRUE if we are in checked build mode (the high byte of NtBuildNumber is flagged).
- The kernel should initialize the CurrentVersion, CSDVersion and CurrentBuildNumber registry values (and few other ones) from the two main CSDReleaseType and CSDVersion values.
- Fix the ReactOS-specific version+revision display in SOS mode.
CORE-6611 CORE-7889 CORE-8877
svn path=/trunk/; revision=66735
Add keyboard switcher to startup, per-user. Since we currently do not support expandable string values for shell run startup, just use a normal string. Also there's currently a bug in our explorer that makes the icon of kbswitch not appearing when it is launched at startup.
See CORE-6787 for more information.
svn path=/trunk/; revision=66508
Add a stub for the "Windows Management Infrastructure" service.
This helps the Intel PRO eth card installer to go a bit farther
svn path=/trunk/; revision=66295
* This merge is also a chance to thank every single person involved directly and indirectly in this epic work, among them: Martin Fuchs for ReactOS explorer which we are respectfully retiring now, as it served the project so well over all these years. Thomas Bluemel (Thomas Weidenmueller aka w3seek) for his brave work on the shell, mainly his explorer_new. Andrew Hill for advancing the shell bringup with some impressive work. David Quintana, Giannis Adamopoulos and Huw Campbell for working as a solid team on making this branch a huge success, allowing the shell rewrite dream to finally become a reality. Again, thank you all!
* Merging this branch is not the end.. it's the beginning of some serious bug fixing based hopefully on the Community's continuous feedback.
* Finally, here are *some* of the highlights of this branch (simply put):
[BROWSEUI] Halfplement the address bar. Mostly implement the Favorites menu. Implement handling most hotkeys that should be handled by CShellBrowser. Fix various bugs.
[EXPLORER_NEW] Convert to C++ and use several wtl-like classes to simplify it. Fix several bugs and implement misc missing features.
[FILEBROWSER] A small exe file that opens a new file browser window in its own process. Tested to work in windows. It can be used to test our browseui.dll in windows.
[FONTS] A new marlett font.
[MSGINA] Add a proper shutdown dialog that's used when the user selects shutdown from the start menu (this is how it's done in Windows).
[RSHELL] A temporary module that hosts the implementation of the following classes needed for the shell: CMenuBand, CMenuDeskBar, CMenuSite, CMergedFolder, CStartMenu. These were implemented and tested in windows and for that reason they are still there. Should be moved in shell32 in the future.
[SHELL32] Reorganize files to isolate the ones that are not yet forked from wine. Fix various problems. Simplify the implementation of some shell folders. Implement filling in the file menu in the file browser.
[STOBJECT] A shell extension responsible for misc taskbar notification icons. So far only the sound icon is implemented. Adding this is necessary as the old explorer had the sound icon built in and deprecating it needs a proper solution for these notification icons.
[WIN32K] Fix several bugs that prevented the new start menu (that was implemented and tested in Windows) from functioning properly in ReactOS, mostly due to focus issues. Fix several shell notifications to behave more like in Windows.
* Tonight! We shall feast!
* And tomorrow the US guys shall feast again, on turkey! :p
CORE-7330
svn path=/trunk/; revision=65496
- Turn the user-mode PnP Manager into a dll, as it is in Windows. However, on Windows 2k/XP/2k3, the dll is managed by services.exe (the SC Manager) (and its entry point name hardcoded in it), whereas on Vista/7+ it is managed by svchost.exe . Since we do not support external dll hardcoded services management in services.exe, make it svchost-compatible instead.
- In the .spec file, we mention that a few API set is exported (in stdcall), but we use it also for RPC, and therefore one has to fix somewhere the calling conventions.
- Add/modify the registry entries accordingly.
svn path=/trunk/; revision=64292