mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 13:13:00 +00:00
[EXPLORER][SHELL32][SHELL32_APITEST][SDK] AppBar Part 2 (#7946)
Follow-up of #7778. JIRA issue: CORE-7237 - Rename APPBARDATA3264 structure as APPBARDATAINTEROP. - Fix structures for WoW64. - Use trace instead of DPRINT1. - Add CAppBarManager:: RecomputeAllWorkareas function. - Fix WM_DISPLAYCHANGE handling to re-compute the work areas.
This commit is contained in:
parent
24c2e4433b
commit
7073bdfead
6 changed files with 71 additions and 30 deletions
|
@ -1222,32 +1222,44 @@ typedef struct SFVM_CUSTOMVIEWINFO_DATA
|
|||
|
||||
#include <poppack.h>
|
||||
|
||||
#if defined(_WIN64) || defined(BUILD_WOW6432)
|
||||
typedef UINT64 APPBAR_OUTPUT;
|
||||
#else
|
||||
typedef HANDLE APPBAR_OUTPUT;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Private structures for internal AppBar messaging.
|
||||
* These structures can be sent from 32-bit shell32 to 64-bit Explorer.
|
||||
* See also: https://learn.microsoft.com/en-us/windows/win32/winprog64/interprocess-communication
|
||||
* > ... only the lower 32 bits are significant, so it is safe to truncate the handle
|
||||
* See also: https://learn.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-duplicatehandle
|
||||
* > DuplicateHandle can be used to duplicate a handle between a 32-bit process and a 64-bit process.
|
||||
*/
|
||||
#include <pshpack8.h>
|
||||
typedef struct tagAPPBARDATA3264
|
||||
typedef struct tagAPPBARDATAINTEROP
|
||||
{
|
||||
DWORD cbSize; /* == sizeof(APPBARDATA3264) */
|
||||
DWORD cbSize; /* == sizeof(APPBARDATAINTEROP) */
|
||||
UINT32 hWnd32;
|
||||
UINT uCallbackMessage;
|
||||
UINT uEdge;
|
||||
RECT rc;
|
||||
LONGLONG lParam64;
|
||||
} APPBARDATA3264, *PAPPBARDATA3264;
|
||||
} APPBARDATAINTEROP, *PAPPBARDATAINTEROP;
|
||||
typedef struct tagAPPBAR_COMMAND
|
||||
{
|
||||
APPBARDATA3264 abd;
|
||||
APPBARDATAINTEROP abd;
|
||||
DWORD dwMessage;
|
||||
UINT32 hOutput32; /* For shlwapi!SHAllocShared */
|
||||
APPBAR_OUTPUT hOutput; /* For shlwapi!SHAllocShared */
|
||||
DWORD dwProcessId;
|
||||
} APPBAR_COMMAND, *PAPPBAR_COMMAND;
|
||||
#include <poppack.h>
|
||||
|
||||
#if defined(_WIN64) || defined(BUILD_WOW6432)
|
||||
C_ASSERT(sizeof(APPBAR_COMMAND) == 0x40);
|
||||
#else
|
||||
C_ASSERT(sizeof(APPBAR_COMMAND) == 0x38);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue