Files
Whindmar Saksit a5f51269c8 [SHELL32] Add FolderItems3 support (move/copy directory tree) (#9235)
- Added copy/move support for FolderItems collections.
- Added support for InvokeVerbEx on FolderItems collections.
- Added filter support for FolderItems collections.
2026-07-16 15:58:14 +02:00

47 lines
1.7 KiB
C

/*
* PROJECT: shell32
* LICENSE: LGPL-2.1+ (https://spdx.org/licenses/LGPL-2.1+)
* PURPOSE: [PROP]VARIANT header
* COPYRIGHT: Copyright 2026 Whindmar Saksit <[email protected]>
*/
#include "precomp.h"
#define SHELL32_NOPROPSYSLIB // PropSys does not yet have all the PKEY_'s we need
#ifdef SHELL32_NOPROPSYSLIB
#ifdef SHELL32_PROP_IMPL
#ifndef PSGUID_SUMMARYINFORMATION
#define PSGUID_SUMMARYINFORMATION { 0xf29f85e0L, 0x4ff9, 0x1068, 0xab, 0x91, 0x08, 0x00, 0x2b, 0x27, 0xb3, 0xd9 }
#endif
#define DEFINE_SHELL32PROPERTYKEY(name, psguid, pid) \
EXTERN_C const PROPERTYKEY DECLSPEC_SELECTANY name = { psguid, pid }
#else
#define DEFINE_SHELL32PROPERTYKEY(name, psguid, pid) EXTERN_C const PROPERTYKEY name
#endif // SHELL32_PROP_IMPL
DEFINE_SHELL32PROPERTYKEY(PKEY_Size, PSGUID_STORAGE, PID_STG_SIZE);
DEFINE_SHELL32PROPERTYKEY(PKEY_FileAttributes, PSGUID_STORAGE, PID_STG_ATTRIBUTES);
DEFINE_SHELL32PROPERTYKEY(PKEY_DateModified, PSGUID_STORAGE, PID_STG_WRITETIME);
DEFINE_SHELL32PROPERTYKEY(PKEY_ItemTypeText, PSGUID_STORAGE, PID_STG_STORAGETYPE);
DEFINE_SHELL32PROPERTYKEY(PKEYSHELL32_Name, PSGUID_STORAGE, PID_STG_NAME);
DEFINE_SHELL32PROPERTYKEY(PKEYSHELL32_Comments, PSGUID_SUMMARYINFORMATION, PIDSI_COMMENTS);
#endif // SHELL32_NOPROPSYSLIB
const PROPERTYKEY*
SHELL_GetPropertyKeyFromString(_In_ PCWSTR pszString, _Out_ PROPERTYKEY *pkey);
static inline VARIANT*
VariantDerefVariant(_In_ const VARIANT *pV)
{
if (V_VT(pV) == (VT_BYREF | VT_VARIANT) && V_VARIANTREF(pV))
return V_VARIANTREF(pV);
return (VARIANT*)pV;
}
HRESULT
VariantToIdlist(_In_ VARIANT *pV, _Out_ LPITEMIDLIST *ppidl);
HRESULT
VariantQueryInterface(_In_ VARIANT *pV, _In_ REFIID riid, _Out_ void **ppv);