ReactOS 0.4.17-dev-540-g8f54750
prop.h
Go to the documentation of this file.
1/*
2 * PROJECT: shell32
3 * LICENSE: LGPL-2.1+ (https://spdx.org/licenses/LGPL-2.1+)
4 * PURPOSE: [PROP]VARIANT header
5 * COPYRIGHT: Copyright 2026 Whindmar Saksit <whindsaks@proton.me>
6 */
7
8#include "precomp.h"
9
10#define SHELL32_NOPROPSYSLIB // PropSys does not yet have all the PKEY_'s we need
11
12#ifdef SHELL32_NOPROPSYSLIB
13#ifdef SHELL32_PROP_IMPL
14#ifndef PSGUID_SUMMARYINFORMATION
15#define PSGUID_SUMMARYINFORMATION { 0xf29f85e0L, 0x4ff9, 0x1068, 0xab, 0x91, 0x08, 0x00, 0x2b, 0x27, 0xb3, 0xd9 }
16#endif
17#define DEFINE_SHELL32PROPERTYKEY(name, psguid, pid) \
18 EXTERN_C const PROPERTYKEY DECLSPEC_SELECTANY name = { psguid, pid }
19#else
20#define DEFINE_SHELL32PROPERTYKEY(name, psguid, pid) EXTERN_C const PROPERTYKEY name
21#endif // SHELL32_PROP_IMPL
22
28DEFINE_SHELL32PROPERTYKEY(PKEYSHELL32_Comments, PSGUID_SUMMARYINFORMATION, PIDSI_COMMENTS);
29
30#endif // SHELL32_NOPROPSYSLIB
31
32const PROPERTYKEY*
33SHELL_GetPropertyKeyFromString(_In_ PCWSTR pszString, _Out_ PROPERTYKEY *pkey);
34
35static inline VARIANT*
37{
38 if (V_VT(pV) == (VT_BYREF | VT_VARIANT) && V_VARIANTREF(pV))
39 return V_VARIANTREF(pV);
40 return (VARIANT*)pV;
41}
42
@ VT_BYREF
Definition: compat.h:2342
@ VT_VARIANT
Definition: compat.h:2307
HRESULT VariantToIdlist(_In_ VARIANT *pV, _Out_ LPITEMIDLIST *ppidl)
Definition: prop.cpp:68
static VARIANT * VariantDerefVariant(_In_ const VARIANT *pV)
Definition: prop.h:36
HRESULT VariantQueryInterface(_In_ VARIANT *pV, _In_ REFIID riid, _Out_ void **ppv)
Definition: prop.cpp:83
#define DEFINE_SHELL32PROPERTYKEY(name, psguid, pid)
Definition: prop.h:20
const PROPERTYKEY * SHELL_GetPropertyKeyFromString(_In_ PCWSTR pszString, _Out_ PROPERTYKEY *pkey)
Definition: prop.cpp:60
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define PSGUID_STORAGE
Definition: ntquery.h:47
#define PID_STG_STORAGETYPE
Definition: ntquery.h:50
#define PID_STG_WRITETIME
Definition: ntquery.h:60
#define PID_STG_SIZE
Definition: ntquery.h:58
#define PID_STG_ATTRIBUTES
Definition: ntquery.h:59
#define PID_STG_NAME
Definition: ntquery.h:56
#define V_VARIANTREF(A)
Definition: oleauto.h:283
#define V_VT(A)
Definition: oleauto.h:211
#define REFIID
Definition: guiddef.h:118
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
const uint16_t * PCWSTR
Definition: typedefs.h:57