* Implemented a class that wraps CMenuBand, for the purpose of logging the calls, with parameters and returned values (disabled, set WRAP_LOG to 1).
* Partial (WIP) implementation of CMenuBand.

[ATL]
* VirtualAlloc can not have a non-zero size while using MEM_RELEASE.

svn path=/branches/shell-experiments/; revision=62132
This commit is contained in:
David Quintana 2014-02-12 16:48:36 +00:00
parent 2dc8375579
commit 5f6b18cc4d
5 changed files with 1871 additions and 4 deletions

View file

@ -8,8 +8,9 @@ spec2def(rshell.dll rshell.spec ADD_IMPORTLIB)
list(APPEND SOURCE
CDesktopBrowser.cpp
CStartMenu.cpp
CMenuBand.cpp
CMenuSite.cpp
CStartMenu.cpp
misc.cpp
${CMAKE_CURRENT_BINARY_DIR}/rshell.def)
@ -30,3 +31,9 @@ add_importlibs(rshell
msvcrt
kernel32
ntdll)
add_custom_command(TARGET rshell POST_BUILD
COMMAND "${CMAKE_COMMAND}" -E copy
"$<TARGET_FILE:rshell>"
"G:/reactos/vs12/reactos/base/shell/explorer-new/$<CONFIGURATION>/$<TARGET_FILE_NAME:rshell>"
COMMENT "Copying to output directory")

File diff suppressed because it is too large Load diff

View file

@ -259,14 +259,18 @@ CStartMenu_Constructor(
IShellFolder *shellFolder;
IShellFolder *psfStartMenu;
#if 0
hr = CoCreateInstance(CLSID_MenuBand,
NULL,
CLSCTX_INPROC_SERVER,
IID_PPV_ARG(IShellMenu, &pShellMenu));
#else
hr = CMenuBand_Constructor(IID_PPV_ARG(IShellMenu, &pShellMenu));
#endif
if (FAILED(hr))
return NULL;
#if 0
#if 1
hr = CoCreateInstance(CLSID_MenuBandSite,
NULL,
CLSCTX_INPROC_SERVER,

View file

@ -30,4 +30,5 @@
#define SMC_EXEC 4
extern "C" INT WINAPI Shell_GetCachedImageIndex(LPCWSTR szPath, INT nIndex, UINT bSimulateDoc);
extern "C" HRESULT CMenuSite_Constructor(REFIID riid, LPVOID *ppv);
extern "C" HRESULT CMenuSite_Constructor(REFIID riid, LPVOID *ppv);
extern "C" HRESULT CMenuBand_Constructor(REFIID riid, LPVOID *ppv);

View file

@ -164,7 +164,7 @@ public:
~CWndProcThunk()
{
VirtualFree(m_pthunk, sizeof(thunkCode), MEM_RELEASE);
VirtualFree(m_pthunk, 0, MEM_RELEASE);
}
BOOL Init(WNDPROC proc, void *pThis)