Thursday, February 23, 2006

Programming, RunAsAdminExplorer Shim v2.0.0.Beta6

So the new beta release is here. We have made a lot of bug fixes and improvements, please check the change log below.

    v 2.0.0.Beta6
    Global changes
    - Added privileg level display in window captions and customizable option of it in OptionsDialog (a feature similar to Keith Brown's and Aaron Margosis's PrivBar. Thanks for both of them for the idea and the sample code!)
    - BUG FIX: Corrected memory leak (
    - Added multiple changes to improve C++ compatibility and to resolve possible issues reported by code analyze, boundary checking and code coverage

    In Explorer.exe
    - BUG FIX: Fixed idle time processing BUG. idleCount not incremented :(
    - BUG FIX: Multiple open CCommandDialog prevented to stop RAA, now only one instance can exists of every run level type of Command Dialog, and the user must close each of them before exit
    - Added privileg caption support
    - szcwAppInstanceEventName moved to RAACommon to let help detection of running RAA Explorer in other modules
    - Added separate thread in CExplorerModule to send 'asynchronous' broadcast messages about RAA config changes and if privileg caption update required
    - Handling of HotKey changes made a bit more generalized (TODO: later must be enchance much more)
    - Localization added to browse (file open) dialog opened up from command dialogs
    - BUG FIX: Command enabling did not run right at command dialog initialization
    - Added D&D support on tray icon if the d&d source uses the old DragAcceptFiles, WM_DROPFILES method. (like Total Commander did)
    - WORKAROUND: D&D disabled on taskbar icon if any of the command dialogs are open see detailes in CRunAsAdminMenuWindow::OnMouseDrag
    - WORKAROUND: D&D on tray icon temporaly disabled if any of the command dialogs are open, see detailed reason CRunAsAdminMenuWindow::OnMouseDrag
    - WORKAROUND: Options and About menu items are temporaly disabled if any command dialog is open, see detailed reason in there
    - Added hint text to command and startup dialog items
    - The tray icon changes when the cursor enters in the TrayNotifyWindow during a D&D, it helps to find the RAA tray icon what can be a bit hard when there are a lot of icons in the tray
    - WORKAROUND: Still not able to change the cursor in both D&D version so simply changing the tray icon when D&D is forbidden
    - Starting another instance of RAA would be signaled as balloon tooltip on the tray icon
    - WORKAROUND: added of the case when quick mouse move during D&D can cause missed tray icon change (the workaround a bit resource consuming, later must find the real reason of the problem)
    - Added new feature of starting D&Ded files on a given startup level immediately if certain modifier key held down.
    Used keys are:
    - ALT means start the dropped file as administrator
    - SHIFT means start the dropped file as normal user
    You can use the modifiers in a combination of CTRL (as earlier implemented to enable or disable command dialog before run) but can NOT use both ALT and SHIFT, that case modifiers will be ignored and the startup level selection menu will be shown just like on the normal way.
    - Tray icon menu got the same icon set as RAAShellContextMenu has.

    In RAACommCtrl
    - BUG FIX: Command enabling did not run right at options dialog initialization
    - Added hint text to Option Dialog items
    - BUG FIX: CUserParametersStruct aligned to byte boundary, that corrected the bug of the incorrectly read CUserParametersStruct data in the marshalled COM COptionsDialog object (f.e. in the RAAShellExtension)

    In RAAShellContextMenu
    - Menu items Options, Run As..., Run At Priority are enabled only if RAA Explorer is running

    In RunAsAdminHook
    - Tiny d&d enhancement, in case of WM_MOUSEMOVE when no button is held down a WM_MOUSELEAVE posted to leave a possible 'nothing' d&d
    - BUG FIX: Fixed annoying tray icon drag&drop bugs
    - the TrayNotifyWindow show-hide button auto click sent on every move event over it, now only the entering into the icon's area triggers button auto click.
    - the TrayNotifyWindow show-hide button auto click sent when it wasn't even visible.