- Compute once, when loading the list of topics with their associated commands, their special arguments or starting paths. The computed values can then be used each time a topic command is invoked.
- Distinguish between runnable commands (aka. external executables or files to be started), and internal actions like <msg> and <exit>.
- I have recently discovered that Windows' welcome.exe could also use a custom (OEM) "welcome.ini" file, much like what we already supported: see http://i.imgur.com/Se3IoQN.png .
To make ours backwards-compatible with Windows' one, rename the "Button" keyword into "MenuText", and introduce two new keywords "ConfigCommand" and "ConfigArgs" that specify respectively the command to be started
and its associated arguments. We continue to support our "Action" keyword for specifying internal actions.
- Improve the loading of the localized resources from the INI files.
- Correctly print the ReactOS version text, at a correct position depending on whether the checked box is display or not.
- Simplify some StringCchCopy + StringCchCat calls into StringCchPrintf.
- Simplify the code that creates the different fonts to be used within the program.
- Use more readable resource ID names.
svn path=/trunk/; revision=75322
- CTrayWindow: Implement the IContextMenu interface. This will be used by the CBandSite to query the context menu of its site (the CTrayWindow) and add it in its context menu.
- CTrayWindowCtxMenu: Use Shell_MergeMenus in QueryContextMenu and respect its parameters.
svn path=/trunk/; revision=75313
- Turn on GradientFill apply small hack fix to keep it out of a loop.
- Turning code off does not fix the code, 8 years later!
svn path=/trunk/; revision=75312
- Define RxShouldPostCompletion() and use it
- Define RxIsResourceOwnershipStateExclusive() and use it
- Define some magic values
[RDBSS]
- Implement CheckForLoudOperations(), RxAdjustFileTimesAndSize(), RxIsOkToPurgeFcb()
- Continue implementation of RxCommonCleanup()
- Fix bugs in the RxCommonCleanup() implementation and make it more explicit when in the delete on close path
- Stub RxCleanupPipeQueues(), RxLowIoLockControlShell()
- Silent a few DPRINTs
CORE-8204
CORE-11327
svn path=/trunk/; revision=75307
- Simplify SHELL32_CoCreateInitSF by letting the callers fill the PERSIST_FOLDER_TARGET_INFO. This lets us stop using _ILSimpleGetTextW in it which breaks the logic that pidls should be read only by their shell folder. Also add an overload for SHELL32_CoCreateInitSF that makes it simpler to create a shell folder with a csidl.
- Add a SHELL32_BindToSF helper to share some logic that was duplicated in several shell folders.
- Move SHELL32_GetCustomFolderAttributeFromPath, SHELL32_GetCLSIDForDirectory and SHELL32_GetFSItemAttributes, SHELL32_BindToFS to CFSFolder.cpp as these were fs specific.
- These changes give finer control to shell folders for how the bind will be done and shares more logic that can be shared.
svn path=/trunk/; revision=75301
- Sync/Port Wine Enhanced/Metafile code. This is a fix for CORE-12888.
- Wine made this difficult to port and keep the whole file unchanged for syncing.
svn path=/trunk/; revision=75292
Apply a consistent style to all similar functions:
- Spoolss functions don't necessarily set ERROR_SUCCESS. Check the boolean return value instead and only query the error code on failure.
- Use AlignRpcPtr and UndoAlignRpcPtr wherever feasible.
- Use one static function per level that can be called from both Get* and Enum* APIs.
- Use PackStrings in all functions that return structures with strings.
- Add TRACEs to all non-static functions in localspl.
- Pass a double pointer to all Marshalling functions and advance to the next structure there.
- Perform sanity checks and return the right error codes in a Windows-compatible way.
- Return TRUE when an Enum* API has no elements to enumerate.
Also fixes CORE-12793
svn path=/trunk/; revision=75287
- Implement RxFinalizeConnection(), RxOrphanSrvOpens()
- Stub RxOrphanSrvOpensForThisFcb()
[RDBSS]
- Fix a bug in RxCommonDevFCBClose() where prefix table wasn't acquire exclusively; this was problematic due to potential prefix table removal on dereference
- Stub RxCancelNotifyChangeDirectoryRequestsForVNetRoot()
This commit basically allows you to delete a NFS share you would have made use of in ReactOS.
Like net use z: \\share\path can be deleted through net use /delete z:
Note that if you access the share using cmd tools (dir, copy, more, and so on), dismount will work.
If you attempt to access with Explorer, then, handles will be kept open and dismount will fail.
CORE-8204
CORE-11327
svn path=/trunk/; revision=75286
- Allow only one running instance of the Welcome application at a time.
- Implement translating \xhhhh hexadecimal character specifications in topic text descriptions.
- Allow using the keyboard for navigating amongst the topics, and ENTER key presses to run the selected topic command.
<rant> *OF COURSE*, because we are ReactOS *SO* we are *buggy* (well, user32/win32k), keyboard navigation via arrow keys *DOES NOT WORK*!! (only navigation via TAB key do work) 8^(((( </rant>
This however works OK on Windows.
- Improve topic buttons activation when mouse hovers around above the window, as well as when window activation is lost or regained.
- Change the default text font to Tahoma.
- Don't hardcode white brush, but instead use stock object WHITE_BRUSH. Similarly, don't hardcode text black colour, but instead use the ambient text colour of the system.
- Add keyboard shortcuts to the default topic items.
- Shift the window ID of both the checkbox and the Exit buttons to be below a fixed topic-button base ID.
- In GetLocaleName(), use more explicit returned-variable names (cchRet, because it's a returned string length in character numbers).
svn path=/trunk/; revision=75282
Assorted fixes:
- Avoid list corruption
- Avoid stack corruption
- Avoid ASSERT on FCB reuse for same file type
CORE-11327
svn path=/trunk/; revision=75269
- Implement RxCloseAssociatedSrvOpen(), RxFastIoRead(), RxPurgeNetFcb(), RxRemoveShareAccess(), RxRemoveShareAccessPerSrvOpens()
- Continue implementation of RxCommonCleanup() to handle allocated SRV_OPEN
- Halfplement RxFastIoCheckIfPossible() so that it handles read operations
- Stub RxCancelNotifyChangeDirectoryRequestsForFobx()
[RXCE]
- Implement RxChangeBufferingState(), RxFinalizeSrvOpen(), RxFreeFcbObject(), RxGatherRequestsForSrvOpen(), RxGetDeviceObjectOfInstance(), RxInitializeRxTimer(), RxMarkFobxOnCleanup(), RxMarkFobxOnClose(), RxpDiscardChangeBufferingStateRequests(), RxpDispatchChangeBufferingStateRequests(), RxpLookupSrvOpenForRequestLite(), RxpMarkInstanceForScavengedFinalization(), RxPostOneShotTimerRequest(), RxPrepareRequestForReuse(), RxProcessChangeBufferingStateRequestsForSrvOpen(), RxpUndoScavengerFinalizationMarking(), RxPurgeChangeBufferingStateRequestsForSrvOpen(), RxPurgeFobxFromCache(), RxRemoveNameNetFcb(), RxScavengerTimerRoutine(), RxTimerDispatch()
- Finish implementation of RxDereference() to handle scavenger
- Finish implementation of RxLowIoCompletionTail() to handle blocked operations resume
- Fix a bug in RxFinalizeNetFcb() where it was dereferencing its NET_ROOT instead of its V_NET_ROOT
- Fix bugs in __RxAcquireFcb() where it improperly handled the lack of RX_CONTEXT
- Halfplement RxResumeBlockedOperations_ALL() to extract blocked operations from RX_CONTEXT (and drop them...)
- Stub RxDispatchChangeBufferingStateRequests(), RxScavengerFinalizeEntries()
[COPYSUP]
- Implement FsRtlCopyRead2()
This library is basically what you can find in FsRtl with an extended support of Top Level IRP. It is used by RDBSS for FastIO. Next to come in it will be FsRtlCopyWrite2().
This commit brings several improvements to current work on RBDSS/RXCE. First of all, both libraries will leak less (again!).
It also brings the scavenger infrastructure (not fully fonctionnal though). Our NFS driver doesn't make use of it though.
Finally, this brings support of FastIO (for read operations ;-)) to our NFS driver!
Regarding CORE-13484, with copy + FastIO I could copy a file without troubles. But that seems to be still problematic with xcopy without FastIO...
CORE-13484
CORE-11327
svn path=/trunk/; revision=75265
- Add DsEnumerateDomainTrustsA, DsEnumerateDomainTrustsW, DsRoleFreeMemory, DsGetDcNameA, DsGetDcNameW, DsGetSiteNameA and DsGetSiteNameW stubs to netlogon.c.
- Remove the now obsolete file ds.c.
- Implement DsGetSiteNameW and NetEnumerateTrustedDomains. These functions call their counterpart in the netlogon service.
svn path=/trunk/; revision=75261
With this, the basics of the app compat engine are implemented and should be functional.
Currently it is disable with a policy, to be enabled soon.
CORE-13284
CORE-11300
svn path=/trunk/; revision=75258
Patch by Vadim Galyant:
- Add USB port status change constants and structures
- Add USB hub descriptor type constants and missing device class constants
svn path=/trunk/; revision=75254
Patch by Vadim Galyant:
- Add USBPORT_HUB_CHARACTERISTICS structure
- Indicate the USB3 hub descriptor type when the miniport is an XHCI controller
svn path=/trunk/; revision=75253