mirror of
https://github.com/reactos/reactos.git
synced 2025-07-25 17:43:53 +00:00
[SDK][SHELL] Sort out SEE_MASK_* and CMIC_MASK_* defines (#8019)
- Add missing versioning defines for the different SEE_MASK_* and CMIC_MASK_* defines. - Move the five undocumented SEE_MASK_* defines into reactos/undocshell.h
This commit is contained in:
parent
07ab1cc82d
commit
228156e79f
5 changed files with 104 additions and 76 deletions
|
@ -187,14 +187,6 @@ UINT
|
||||||
GetDfmCmd(_In_ IContextMenu *pCM, _In_ LPCSTR verba);
|
GetDfmCmd(_In_ IContextMenu *pCM, _In_ LPCSTR verba);
|
||||||
#define SHELL_ExecuteControlPanelCPL(hwnd, cpl) SHRunControlPanel((cpl), (hwnd))
|
#define SHELL_ExecuteControlPanelCPL(hwnd, cpl) SHRunControlPanel((cpl), (hwnd))
|
||||||
|
|
||||||
#define CmicFlagsToSeeFlags(flags) ((flags) & SEE_CMIC_COMMON_FLAGS)
|
|
||||||
static inline UINT SeeFlagsToCmicFlags(UINT flags)
|
|
||||||
{
|
|
||||||
if (flags & SEE_MASK_CLASSNAME)
|
|
||||||
flags &= ~(SEE_MASK_HASLINKNAME | SEE_MASK_HASTITLE);
|
|
||||||
return flags & SEE_CMIC_COMMON_FLAGS;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// CStubWindow32 --- The owner window of file property sheets.
|
// CStubWindow32 --- The owner window of file property sheets.
|
||||||
// This window hides taskbar button of property sheet.
|
// This window hides taskbar button of property sheet.
|
||||||
|
|
|
@ -26,7 +26,9 @@ extern "C" {
|
||||||
#define SEE_MASK_CLASSKEY 0x00000003
|
#define SEE_MASK_CLASSKEY 0x00000003
|
||||||
#define SEE_MASK_IDLIST 0x00000004
|
#define SEE_MASK_IDLIST 0x00000004
|
||||||
#define SEE_MASK_INVOKEIDLIST 0x0000000C
|
#define SEE_MASK_INVOKEIDLIST 0x0000000C
|
||||||
|
#if (NTDDI_VERSION < NTDDI_VISTA) || defined(__REACTOS__)
|
||||||
#define SEE_MASK_ICON 0x00000010
|
#define SEE_MASK_ICON 0x00000010
|
||||||
|
#endif
|
||||||
#define SEE_MASK_HOTKEY 0x00000020
|
#define SEE_MASK_HOTKEY 0x00000020
|
||||||
#define SEE_MASK_NOCLOSEPROCESS 0x00000040
|
#define SEE_MASK_NOCLOSEPROCESS 0x00000040
|
||||||
#define SEE_MASK_CONNECTNETDRV 0x00000080
|
#define SEE_MASK_CONNECTNETDRV 0x00000080
|
||||||
|
@ -34,30 +36,27 @@ extern "C" {
|
||||||
#define SEE_MASK_FLAG_DDEWAIT SEE_MASK_NOASYNC
|
#define SEE_MASK_FLAG_DDEWAIT SEE_MASK_NOASYNC
|
||||||
#define SEE_MASK_DOENVSUBST 0x00000200
|
#define SEE_MASK_DOENVSUBST 0x00000200
|
||||||
#define SEE_MASK_FLAG_NO_UI 0x00000400
|
#define SEE_MASK_FLAG_NO_UI 0x00000400
|
||||||
|
// 0x00001000 is undocumented.
|
||||||
#define SEE_MASK_UNICODE 0x00004000
|
#define SEE_MASK_UNICODE 0x00004000
|
||||||
#define SEE_MASK_NO_CONSOLE 0x00008000
|
#define SEE_MASK_NO_CONSOLE 0x00008000
|
||||||
/*
|
// 0x00010000 .. 0x00080000 are undocumented.
|
||||||
* NOTE: The following 5 flags are undocumented and are not present in the
|
|
||||||
* official Windows SDK. However they are used in shobjidl.idl to define some
|
|
||||||
* CMIC_MASK_* flags, these ones being mentioned in the MSDN documentation of
|
|
||||||
* the CMINVOKECOMMANDINFOEX structure.
|
|
||||||
* I affect them this range of values which seems to be strangely empty. Of
|
|
||||||
* course their values may differ from the real ones, however I have no way
|
|
||||||
* of discovering them. If somebody else can verify them, it would be great.
|
|
||||||
*/
|
|
||||||
#define SEE_MASK_UNKNOWN_0x1000 0x00001000 /* FIXME: Name */
|
|
||||||
#define SEE_MASK_HASLINKNAME 0x00010000
|
|
||||||
#define SEE_MASK_FLAG_SEPVDM 0x00020000
|
|
||||||
#define SEE_MASK_USE_RESERVED 0x00040000
|
|
||||||
#define SEE_MASK_HASTITLE 0x00080000
|
|
||||||
/* END NOTE */
|
|
||||||
#define SEE_MASK_ASYNCOK 0x00100000
|
#define SEE_MASK_ASYNCOK 0x00100000
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
||||||
#define SEE_MASK_HMONITOR 0x00200000
|
#define SEE_MASK_HMONITOR 0x00200000
|
||||||
|
#endif
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WINXPSP1)
|
||||||
#define SEE_MASK_NOZONECHECKS 0x00800000
|
#define SEE_MASK_NOZONECHECKS 0x00800000
|
||||||
|
#endif
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
||||||
#define SEE_MASK_NOQUERYCLASSSTORE 0x01000000
|
#define SEE_MASK_NOQUERYCLASSSTORE 0x01000000
|
||||||
#define SEE_MASK_WAITFORINPUTIDLE 0x02000000
|
#define SEE_MASK_WAITFORINPUTIDLE 0x02000000
|
||||||
|
#endif
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WINXP)
|
||||||
#define SEE_MASK_FLAG_LOG_USAGE 0x04000000
|
#define SEE_MASK_FLAG_LOG_USAGE 0x04000000
|
||||||
|
#endif
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||||
#define SEE_MASK_FLAG_HINST_IS_SITE 0x08000000
|
#define SEE_MASK_FLAG_HINST_IS_SITE 0x08000000
|
||||||
|
#endif
|
||||||
|
|
||||||
#define ABM_NEW 0
|
#define ABM_NEW 0
|
||||||
#define ABM_REMOVE 1
|
#define ABM_REMOVE 1
|
||||||
|
|
|
@ -1693,15 +1693,19 @@ cpp_quote("#define CMDSTR_VIEWLIST WINELIB_NAME_AW(CMDSTR_VIEWLIST)")
|
||||||
cpp_quote("#define CMDSTR_VIEWDETAILS WINELIB_NAME_AW(CMDSTR_VIEWDETAILS)")
|
cpp_quote("#define CMDSTR_VIEWDETAILS WINELIB_NAME_AW(CMDSTR_VIEWDETAILS)")
|
||||||
|
|
||||||
cpp_quote("#define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY")
|
cpp_quote("#define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY")
|
||||||
cpp_quote("#define CMIC_MASK_ICON SEE_MASK_ICON")
|
cpp_quote("#define CMIC_MASK_ICON SEE_MASK_ICON") // (NTDDI_VERSION < NTDDI_VISTA) || defined(__REACTOS__)
|
||||||
cpp_quote("#define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI")
|
cpp_quote("#define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI")
|
||||||
cpp_quote("#define CMIC_MASK_UNICODE SEE_MASK_UNICODE")
|
cpp_quote("#define CMIC_MASK_UNICODE SEE_MASK_UNICODE")
|
||||||
cpp_quote("#define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE")
|
cpp_quote("#define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE")
|
||||||
cpp_quote("#define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME")
|
cpp_quote("#if (NTDDI_VERSION < NTDDI_VISTA) || defined(__REACTOS__)")
|
||||||
cpp_quote("#define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM")
|
cpp_quote("#define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME") // NOTE: Depends on undocumented define
|
||||||
cpp_quote("#define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE")
|
cpp_quote("#define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE") // NOTE: Depends on undocumented define
|
||||||
|
cpp_quote("#endif")
|
||||||
|
cpp_quote("#define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM") // NOTE: Depends on undocumented define
|
||||||
cpp_quote("#define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK")
|
cpp_quote("#define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK")
|
||||||
|
cpp_quote("#if (NTDDI_VERSION >= NTDDI_VISTA)")
|
||||||
cpp_quote("#define CMIC_MASK_NOASYNC SEE_MASK_NOASYNC")
|
cpp_quote("#define CMIC_MASK_NOASYNC SEE_MASK_NOASYNC")
|
||||||
|
cpp_quote("#endif")
|
||||||
cpp_quote("#define CMIC_MASK_SHIFT_DOWN 0x10000000")
|
cpp_quote("#define CMIC_MASK_SHIFT_DOWN 0x10000000")
|
||||||
cpp_quote("#define CMIC_MASK_PTINVOKE 0x20000000")
|
cpp_quote("#define CMIC_MASK_PTINVOKE 0x20000000")
|
||||||
cpp_quote("#define CMIC_MASK_CONTROL_DOWN 0x40000000")
|
cpp_quote("#define CMIC_MASK_CONTROL_DOWN 0x40000000")
|
||||||
|
|
|
@ -662,12 +662,23 @@ public:
|
||||||
#define S_GREATERTHAN S_FALSE
|
#define S_GREATERTHAN S_FALSE
|
||||||
#define MAKE_COMPARE_HRESULT(x) ((x)>0 ? S_GREATERTHAN : ((x)<0 ? S_LESSTHAN : S_EQUAL))
|
#define MAKE_COMPARE_HRESULT(x) ((x)>0 ? S_GREATERTHAN : ((x)<0 ? S_LESSTHAN : S_EQUAL))
|
||||||
|
|
||||||
|
#ifdef _UNDOCSHELL_H
|
||||||
|
/* The SEE_MASK_* defines that are undocumented, are defined in reactos/undocshell.h */
|
||||||
#define SEE_CMIC_COMMON_BASICFLAGS (SEE_MASK_NOASYNC | SEE_MASK_ASYNCOK | SEE_MASK_UNICODE | \
|
#define SEE_CMIC_COMMON_BASICFLAGS (SEE_MASK_NOASYNC | SEE_MASK_ASYNCOK | SEE_MASK_UNICODE | \
|
||||||
SEE_MASK_NO_CONSOLE | SEE_MASK_FLAG_NO_UI | SEE_MASK_FLAG_SEPVDM | \
|
SEE_MASK_NO_CONSOLE | SEE_MASK_FLAG_NO_UI | SEE_MASK_FLAG_SEPVDM | \
|
||||||
SEE_MASK_FLAG_LOG_USAGE | SEE_MASK_NOZONECHECKS)
|
SEE_MASK_FLAG_LOG_USAGE | SEE_MASK_NOZONECHECKS)
|
||||||
#define SEE_CMIC_COMMON_FLAGS (SEE_CMIC_COMMON_BASICFLAGS | SEE_MASK_HOTKEY | SEE_MASK_ICON | \
|
#define SEE_CMIC_COMMON_FLAGS (SEE_CMIC_COMMON_BASICFLAGS | SEE_MASK_HOTKEY | SEE_MASK_ICON | \
|
||||||
SEE_MASK_HASLINKNAME | SEE_MASK_HASTITLE)
|
SEE_MASK_HASLINKNAME | SEE_MASK_HASTITLE)
|
||||||
|
|
||||||
|
#define CmicFlagsToSeeFlags(flags) ((flags) & SEE_CMIC_COMMON_FLAGS)
|
||||||
|
static inline UINT SeeFlagsToCmicFlags(UINT flags)
|
||||||
|
{
|
||||||
|
if (flags & SEE_MASK_CLASSNAME)
|
||||||
|
flags &= ~(SEE_MASK_HASLINKNAME | SEE_MASK_HASTITLE);
|
||||||
|
return flags & SEE_CMIC_COMMON_FLAGS;
|
||||||
|
}
|
||||||
|
#endif // _UNDOCSHELL_H
|
||||||
|
|
||||||
static inline BOOL SHELL_IsContextMenuMsg(UINT uMsg)
|
static inline BOOL SHELL_IsContextMenuMsg(UINT uMsg)
|
||||||
{
|
{
|
||||||
return uMsg == WM_MEASUREITEM || uMsg == WM_DRAWITEM ||
|
return uMsg == WM_MEASUREITEM || uMsg == WM_DRAWITEM ||
|
||||||
|
|
|
@ -6,6 +6,9 @@
|
||||||
* Copyright 2025 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com)
|
* Copyright 2025 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef _UNDOCSHELL_H
|
||||||
|
#define _UNDOCSHELL_H
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <shellapi.h>
|
#include <shellapi.h>
|
||||||
|
@ -593,8 +596,8 @@ typedef struct
|
||||||
DWORD dwReserved2;
|
DWORD dwReserved2;
|
||||||
LPCITEMIDLIST pidl;
|
LPCITEMIDLIST pidl;
|
||||||
LPDWORD lpdwUser;
|
LPDWORD lpdwUser;
|
||||||
} SFVCBINFO, * LPSFVCBINFO;
|
} SFVCBINFO, *LPSFVCBINFO;
|
||||||
typedef const SFVCBINFO * LPCSFVCBINFO;
|
typedef const SFVCBINFO *LPCSFVCBINFO;
|
||||||
|
|
||||||
/* SFVCB_SELECTIONCHANGED structure */
|
/* SFVCB_SELECTIONCHANGED structure */
|
||||||
typedef struct
|
typedef struct
|
||||||
|
@ -603,8 +606,8 @@ typedef struct
|
||||||
UINT uNewState;
|
UINT uNewState;
|
||||||
LPCITEMIDLIST pidl;
|
LPCITEMIDLIST pidl;
|
||||||
LPDWORD lpdwUser;
|
LPDWORD lpdwUser;
|
||||||
} SFVSELECTSTATE, * LPSFVSELECTSTATE;
|
} SFVSELECTSTATE, *LPSFVSELECTSTATE;
|
||||||
typedef const SFVSELECTSTATE * LPCSFVSELECTSTATE;
|
typedef const SFVSELECTSTATE *LPCSFVSELECTSTATE;
|
||||||
|
|
||||||
/* SFVCB_COPYHOOKCALLBACK structure */
|
/* SFVCB_COPYHOOKCALLBACK structure */
|
||||||
typedef struct
|
typedef struct
|
||||||
|
@ -616,8 +619,8 @@ typedef struct
|
||||||
DWORD dwSrcAttribs;
|
DWORD dwSrcAttribs;
|
||||||
LPCSTR pszDestFile;
|
LPCSTR pszDestFile;
|
||||||
DWORD dwDestAttribs;
|
DWORD dwDestAttribs;
|
||||||
} SFVCOPYHOOKINFO, * LPSFVCOPYHOOKINFO;
|
} SFVCOPYHOOKINFO, *LPSFVCOPYHOOKINFO;
|
||||||
typedef const SFVCOPYHOOKINFO * LPCSFVCOPYHOOKINFO;
|
typedef const SFVCOPYHOOKINFO *LPCSFVCOPYHOOKINFO;
|
||||||
|
|
||||||
/* SFVCB_GETDETAILSOF structure */
|
/* SFVCB_GETDETAILSOF structure */
|
||||||
typedef struct
|
typedef struct
|
||||||
|
@ -626,7 +629,7 @@ typedef struct
|
||||||
int fmt;
|
int fmt;
|
||||||
int cx;
|
int cx;
|
||||||
STRRET lpText;
|
STRRET lpText;
|
||||||
} SFVCOLUMNINFO, * LPSFVCOLUMNINFO;
|
} SFVCOLUMNINFO, *LPSFVCOLUMNINFO;
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Misc Stuff
|
* Misc Stuff
|
||||||
|
@ -667,6 +670,19 @@ HRESULT WINAPI ShellExecCmdLine(
|
||||||
LPVOID pUnused,
|
LPVOID pUnused,
|
||||||
DWORD dwSeclFlags);
|
DWORD dwSeclFlags);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Undocumented SEE_MASK_* flags for the SHELLEXECUTEINFO::fMask member
|
||||||
|
* used by ShellExecuteEx(). These are absent from the official Windows SDK.
|
||||||
|
* However they are used in shobjidl.idl to define some CMIC_MASK_* flags,
|
||||||
|
* these ones being mentioned in the MSDN documentation of the
|
||||||
|
* CMINVOKECOMMANDINFOEX structure.
|
||||||
|
*/
|
||||||
|
#define SEE_MASK_UNKNOWN_0x1000 0x00001000 // FIXME: Name
|
||||||
|
#define SEE_MASK_HASLINKNAME 0x00010000
|
||||||
|
#define SEE_MASK_FLAG_SEPVDM 0x00020000
|
||||||
|
#define SEE_MASK_USE_RESERVED 0x00040000
|
||||||
|
#define SEE_MASK_HASTITLE 0x00080000
|
||||||
|
|
||||||
HINSTANCE WINAPI
|
HINSTANCE WINAPI
|
||||||
RealShellExecuteA(
|
RealShellExecuteA(
|
||||||
_In_opt_ HWND hwnd,
|
_In_opt_ HWND hwnd,
|
||||||
|
@ -799,6 +815,7 @@ HRESULT WINAPI SHGetImageList(int iImageList, REFIID riid, void **ppv);
|
||||||
BOOL WINAPI GUIDFromStringA(
|
BOOL WINAPI GUIDFromStringA(
|
||||||
_In_ PCSTR psz,
|
_In_ PCSTR psz,
|
||||||
_Out_ LPGUID pguid);
|
_Out_ LPGUID pguid);
|
||||||
|
|
||||||
BOOL WINAPI GUIDFromStringW(
|
BOOL WINAPI GUIDFromStringW(
|
||||||
_In_ PCWSTR psz,
|
_In_ PCWSTR psz,
|
||||||
_Out_ LPGUID pguid);
|
_Out_ LPGUID pguid);
|
||||||
|
@ -862,6 +879,7 @@ SHInvokePrivilegedFunctionW(
|
||||||
|
|
||||||
BOOL WINAPI
|
BOOL WINAPI
|
||||||
SHTestTokenPrivilegeW(_In_opt_ HANDLE hToken, _In_z_ LPCWSTR lpName);
|
SHTestTokenPrivilegeW(_In_opt_ HANDLE hToken, _In_z_ LPCWSTR lpName);
|
||||||
|
|
||||||
BOOL WINAPI IsSuspendAllowed(VOID);
|
BOOL WINAPI IsSuspendAllowed(VOID);
|
||||||
|
|
||||||
BOOL WINAPI
|
BOOL WINAPI
|
||||||
|
@ -949,6 +967,7 @@ LONG WINAPI SHRegQueryValueExA(
|
||||||
LPDWORD lpType,
|
LPDWORD lpType,
|
||||||
LPBYTE lpData,
|
LPBYTE lpData,
|
||||||
LPDWORD lpcbData);
|
LPDWORD lpcbData);
|
||||||
|
|
||||||
LONG WINAPI SHRegQueryValueExW(
|
LONG WINAPI SHRegQueryValueExW(
|
||||||
HKEY hkey,
|
HKEY hkey,
|
||||||
LPCWSTR pszValue,
|
LPCWSTR pszValue,
|
||||||
|
@ -956,10 +975,11 @@ LONG WINAPI SHRegQueryValueExW(
|
||||||
LPDWORD pdwType,
|
LPDWORD pdwType,
|
||||||
LPVOID pvData,
|
LPVOID pvData,
|
||||||
LPDWORD pcbData);
|
LPDWORD pcbData);
|
||||||
|
|
||||||
#ifdef UNICODE
|
#ifdef UNICODE
|
||||||
#define SHRegQueryValueEx SHRegQueryValueExW
|
#define SHRegQueryValueEx SHRegQueryValueExW
|
||||||
#else
|
#else
|
||||||
#define SHRegQueryValueEx SHRegQueryValueExA
|
#define SHRegQueryValueEx SHRegQueryValueExA
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
BOOL WINAPI
|
BOOL WINAPI
|
||||||
|
@ -1264,3 +1284,5 @@ C_ASSERT(sizeof(APPBAR_COMMAND) == 0x38);
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} /* extern "C" */
|
} /* extern "C" */
|
||||||
#endif /* defined(__cplusplus) */
|
#endif /* defined(__cplusplus) */
|
||||||
|
|
||||||
|
#endif /* _UNDOCSHELL_H */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue