gadamopoulos in reactos

[UXTHEME] -Fix some resource leaks.
    • -8
    • +13
    /trunk/reactos/dll/win32/uxtheme/themehooks.c
[UXTHEME] -Implement the tab background texture. NOTE: A hack was used to go around the problem that SetBrushOrgEx doesn't really work. CORE-12978
    • -2
    • +2
    /trunk/reactos/dll/win32/uxtheme/draw.c
    • -3
    • +165
    /trunk/reactos/dll/win32/uxtheme/themehooks.c
[COMCTL32]

- Button, Trakbar: Send WM_CTLCOLORBTN or WM_CTLCOLORSTATIC and use their return value to paint the control despite the fact that DrawThemeParentBackground was called as well.

Part of the fix for CORE-12978

    • -0
    • +4
    /trunk/reactos/dll/win32/comctl32/trackbar.c
[NTOSKRNL] CcPurgeCacheSection: Check if SharedCacheMap is NULL. Change suggested by ThFabba. CORE-13115
[SHELL32] -CDesktopBrowser: Clone the pidl passed to SHOpenNewFrame as it will later free it itself. This was masked by a hacky cast.
[USER32] -CallWindowProc: Call PreWndProc and PostWndProc hooks for dialog messages if the message is not hooked for PreDefDlgProc and PostDefDlgProc.
[BROWSEUI] -Remove a couple of lines that shouldn't have been committed.
[BROWSEUI] -CBandSiteMenu: Add preliminary support for adding and removing bands in the taskbar. If a class was registered in the CATID_DeskBand category it will be shown in the menu and selecting it can add it or remove it from the taskbar. Showing the two built in ones (quick launch and desktop) is not implemented yet.
[SHLWAPI_UNDOC.H] -Fix definition of IUnknown_SetOwner.
[EXPLORER] -If rshell is present and CBandSiteMenu_CreateInstance or CBandSite_CreateInstance are exported, use them instead of using the one provided by the system. Now we can start developing CBandSite and CBandSiteMenu on windows to implement support for taskbar toolbars.
    • -0
    • +2
    /trunk/reactos/base/shell/explorer/explorer.cpp
    • -20
    • +12
    /trunk/reactos/base/shell/explorer/tbsite.cpp
    • -37
    • +56
    /trunk/reactos/base/shell/explorer/rshell.cpp
    • -0
    • +3
    /trunk/reactos/base/shell/explorer/precomp.h
[SHELLUTILS.H]

- Remove the ShellObjectCreator templates that allowed the caller to pass an arbitrary interface pointer. Leaving only the templates that take an void ** ppv parameter means that the callers are forced to use IID_PPV_ARG. This makes it less likely to have a pointer to an wrong interface.

- Fix the callers to always use IID_PPV_ARG.

- Rewrite the ShellObjectCreator templates to create the objects using the ATL CreateInstance thus allowing internal ATL methods to be called.

[BROWSEUI]

-Let CBandSite_CreateInstance take an additional parameter for the outer object since CBandSite is aggregatable. Create the object using the ATL creator class.

    • -1
    • +1
    /trunk/reactos/dll/win32/shell32/shell32.cpp
    • -202
    • +62
    /trunk/reactos/sdk/include/reactos/shellutils.h
    • -1
    • +1
    /trunk/reactos/dll/win32/shell32/CDefView.cpp
    • -1
    • +1
    /trunk/reactos/base/shell/rshell/rshell.spec
    • -2
    • +0
    /trunk/reactos/base/shell/rshell/misc.cpp
[RSHELL] -Link to shellbars and export CBandSite_CreateInstance and CBandSiteMenu_CreateInstance.

[SHELLMENU] -Remove second copy of CBandSite. It was originally added here to be tested in windows but now it is hosted in a proper static link.

    • -2
    • +2
    /trunk/reactos/base/shell/rshell/CMakeLists.txt
    • -4
    • +46
    /trunk/reactos/base/shell/rshell/misc.cpp
    • -0
    • +2
    /trunk/reactos/base/shell/rshell/rshell.spec
    • -1
    • +0
    /trunk/reactos/dll/win32/shell32/shell32.cpp
[BROWSEUI] -Move the following classes to a new static lib called shellbars: CBandSite, CBandSiteMenu, CBaseBar, CSHEnumClassesOfCategories.

- This will be linked to rshell in order to implement support for additional toolbars in the taskbar as well as floating toolbars.

- In the future more classes will be added in this static lib including: CISFBand (which implements a dockable toolbar that shows the contents of a shell folder), CQuickLinks (a special CISFBand), CDeskBarApp (a special CBaseBar that implements the floating host for toolbars) and perhaps more.

    • -558
    • +0
    /trunk/reactos/dll/win32/browseui/basebar.cpp
    • -150
    • +0
    /trunk/reactos/dll/win32/browseui/bandsite.h
  1. /trunk/reactos/dll/win32/browseui/shellbars
    • -335
    • +0
    /trunk/reactos/dll/win32/browseui/comcat.cpp
    • -107
    • +8
    /trunk/reactos/dll/win32/browseui/browseui.h
    • -831
    • +0
    /trunk/reactos/dll/win32/browseui/bandsite.cpp
    • -0
    • +100
    /trunk/reactos/dll/win32/browseui/browseui.cpp
  2. … 4 more files in changeset.
[GDI32] -Implement GdiDrawStream.

- This is based on the prototype I found in a sample app on codeproject. I don't really know what the unknown parameters are for but I haven't found anything yet passing different values. Almost all of the code is from the drawing code from uxtheme with the only difference that in uxtheme UXTHEME_DrawImageBackground reads several values from the theme but his takes them as parameters. I don't see any reason to spend time understanding what these are for. I found what the draw flags are for by passing different values in the test application and trying to replicate the parameters that UXTHEME_DrawImageBackground need. I decided to keep the naming like that since it is almost verbatim wine code. At some point it should be moved to win32k however.

CORE-4420

    • -3
    • +428
    /trunk/reactos/win32ss/gdi/gdi32/misc/misc.c
[SHSVCS] -Add the module that should host the theme service. Implement ThemeWaitForServiceReady and ThemeWatchForStart. These are already called by our msgina and are responsible for starting themes in the session.
    • -0
    • +177
    /trunk/reactos/base/services/shsvcs/thmserver.c
    • -0
    • +16
    /trunk/reactos/base/services/shsvcs/shsvcs.spec
    • -1
    • +1
    /trunk/reactos/boot/bootdata/hivesft.inf
    • -1
    • +3
    /trunk/reactos/boot/bootdata/hivesys.inf
    • -0
    • +5
    /trunk/reactos/base/services/shsvcs/shsvcs.rc
    • -0
    • +60
    /trunk/reactos/base/services/shsvcs/shsvcs.c
    • -0
    • +15
    /trunk/reactos/base/services/shsvcs/CMakeLists.txt
    • -1
    • +1
    /trunk/reactos/base/services/CMakeLists.txt
[WIN32K] -Implement NtUserCalcMenuBar.
    • -14
    • +0
    /trunk/reactos/win32ss/user/ntuser/ntstubs.c
    • -0
    • +48
    /trunk/reactos/win32ss/user/ntuser/menu.c
[WIN32K] -MENU_TrackMouseMenuBar: Use IntGetSystemMenu instead of get_win_sys_menu because the system menu have not been initialized yet (it is delay initialized). CORE-12801
    • -1
    • +1
    /trunk/reactos/win32ss/user/ntuser/menu.c
[WIN32K] -NtGdiGetRegionData: prgn->rdh.nRgnSize is the size of kernel mode buffer for the region. After copying it to the caller we should set lpRgnData->rdh.nRgnSize to cjRects.
    • -0
    • +1
    /trunk/reactos/win32ss/gdi/ntgdi/region.c
[SHELL32] -CShellDispatch: Properly register Shell.Application. Implement CShellDispatch::ShutdownWindows. CORE-13010
[UXTHEME] -Implement painting the corner of the scrollbars.
    • -2
    • +52
    /trunk/reactos/dll/win32/uxtheme/nonclient.c
[WIN32K] -Correct one parameter in NtUserPaintMenuBar and make it return the height of the menu bar.

[UXTHEME] -Pass the correct parameter to PaintMenuBar. Draw the edge of WS_EX_CLIENTEDGE even if the window has a themed frame.

    • -7
    • +7
    /trunk/reactos/win32ss/user/ntuser/menu.c
    • -5
    • +14
    /trunk/reactos/dll/win32/uxtheme/nonclient.c
[WIN32K] -Store the flat menus setting and the drop shadow setting in the UserPreferencesMask registry value.
    • -6
    • +4
    /trunk/reactos/win32ss/user/ntuser/sysparams.c
    • -2
    • +2
    /trunk/reactos/win32ss/user/ntuser/sysparams.h
[UXTHEME] -Get rid of the hack that partly draws the menu bar in uxtheme. This was added to hack around the fact that we didn't set the flat menus setting. Use PaintMenuBar instead.
    • -141
    • +2
    /trunk/reactos/dll/win32/uxtheme/nonclient.c
[WIN32K] -Get the new value of SPI_SETFLATMENU from pvParam.
    • -1
    • +1
    /trunk/reactos/win32ss/user/ntuser/sysparams.c
[DESK.CPL] -Load the TMT_FLATMENUS property from the theme and use SPI_SETFLATMENU to set it.
[WIN32K] -Stub NtUserPaintMenuBar. I'm still not sure about the last parameter and its return value.
    • -15
    • +0
    /trunk/reactos/win32ss/user/ntuser/ntstubs.c
    • -0
    • +35
    /trunk/reactos/win32ss/user/ntuser/menu.c
[WIN32K] -Update the prototype of NtUserPaintMenuBar here as well.
    • -6
    • +6
    /trunk/reactos/win32ss/user/ntuser/ntstubs.c
[SDK] -Add the prototype of PaintMenuBar and update the prototype of NtUserPaintMenuBar.
    • -6
    • +6
    /trunk/reactos/win32ss/include/ntuser.h
Fix gcc build.
    • -6
    • +0
    /trunk/reactos/dll/win32/uxtheme/nonclient.c
[UXTHEME] -Implement painting windows with WS_MINIMIZE. Such windows are minimized mdi windows.
    • -8
    • +7
    /trunk/reactos/dll/win32/uxtheme/nonclient.c
    • -1
    • +3
    /trunk/reactos/dll/win32/uxtheme/themehooks.c