- Commit a test utility that can install user api hooks and give for the first time real themes support. This is a temporary test program till the same functionality is integrated to winlogon. To use it someone has to activate themes with themecfg and then run "apihook uxtheme.dll". Also note that it is possible to use this tool in windows for testing purposes
svn path=/branches/GSoC_2011/ThemesSupport/; revision=52665
- Add a test utility called themecfg that can configure themes. This is a small part of winecfg from wine. With this utility we can test themes support now. In the future this functionality will become part of desk.cpl
svn path=/branches/GSoC_2011/ThemesSupport/; revision=52664
- Call UserUnregisterUserApiHook from the process cleanup routine if the process has registered the user api hook
svn path=/branches/GSoC_2011/ThemesSupport/; revision=52652
- Convert LOADUSERAPIHOOK macro to an inline function
- Implement ClientLoadLibrary callback from win32k
svn path=/branches/GSoC_2011/ThemesSupport/; revision=52648
- Implement drawing non client scrollbars. This code is heavily based on code from wine and modified properly to use themes
svn path=/branches/GSoC_2011/ThemesSupport/; revision=52645
- After doing any drawing operation for the non client area, restore the previously opened theme. Fixes GetWindowTheme
svn path=/branches/GSoC_2011/ThemesSupport/; revision=52639
- Do not close hKey in query_reg_path. Noticed while testing our uxtheme in windows. Should be sent to wine
svn path=/branches/GSoC_2011/ThemesSupport/; revision=52634
-Add a hack to GreStretchBltMask to return TRUE when a dimension is 0. After some investigation it seems that windows returns TRUE in such a case but couldn't investigate more if this change is really correct. This hack is needed because a drawing operation in uxtheme is aborted when StretchBlt returns FALSE
svn path=/branches/GSoC_2011/ThemesSupport/; revision=52631
Implement the "SLIST hack". It checks whether the access to the Next member of the first list item of an iSList caused the exception, this can happen, when a concurrent thread pops the first entry and frees its memory between the point where the address of the entry is loaded and the access to it. This is done before the call to MmAccessFault to handle the theoretical scenario of a guard page exception being triggered by the fault, which we don't want to be handled.
Currently only kernel mode is handled.
svn path=/trunk/; revision=52628
- Fix CSR hard error messages. Parameters are now converted to ANSI string which are expected by message format string.
svn path=/trunk/; revision=52619
[RTL]: Implement RtlImageNtHeaderEx and make RtlImageNtHeader call it. This will result in much stricter (and correct) PE loading by default, and enable a flag which can do even stricter checks.
[NTDLL]: Export RtlImageNtHeaderEx (maybe NTOS should export it too, not sure).
svn path=/trunk/; revision=52618
- fix broken logic
- simplify calculation of remainig space to alter
- call ExFreePoolWithTag instead of ExFreePool
- return error on failure
svn path=/trunk/; revision=52614
- Don't use -1 for USHORT LDR_DATA_TABLE_ENTRY::LoadCount. When comparing ((USHORT)-1) == 0xFFFF vs (int)-1 it ends in comparison 0xFFFF vs 0xFFFFFFFF with is wrong. Fixes shutdown from shell
See issue #6345 for more details.
svn path=/trunk/; revision=52601
- Fix broken TDI address functions which were causing subtle memory corruptions, wasted memory, and incorrect or uninitialized values of the address length field
- Remove some buggy code that wasn't used anywhere
- General refactoring to reduce code duplication
- Handle an invalid address type properly
svn path=/trunk/; revision=52600