ReactOS 0.4.17-dev-540-g8f54750
prop.h File Reference
#include "precomp.h"
Include dependency graph for prop.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define SHELL32_NOPROPSYSLIB
 
#define DEFINE_SHELL32PROPERTYKEY(name, psguid, pid)   EXTERN_C const PROPERTYKEY name
 

Functions

 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)
 
const PROPERTYKEY * SHELL_GetPropertyKeyFromString (_In_ PCWSTR pszString, _Out_ PROPERTYKEY *pkey)
 
static VARIANTVariantDerefVariant (_In_ const VARIANT *pV)
 
HRESULT VariantToIdlist (_In_ VARIANT *pV, _Out_ LPITEMIDLIST *ppidl)
 
HRESULT VariantQueryInterface (_In_ VARIANT *pV, _In_ REFIID riid, _Out_ void **ppv)
 

Macro Definition Documentation

◆ DEFINE_SHELL32PROPERTYKEY

#define DEFINE_SHELL32PROPERTYKEY (   name,
  psguid,
  pid 
)    EXTERN_C const PROPERTYKEY name

Definition at line 20 of file prop.h.

◆ SHELL32_NOPROPSYSLIB

#define SHELL32_NOPROPSYSLIB

Definition at line 10 of file prop.h.

Function Documentation

◆ DEFINE_SHELL32PROPERTYKEY() [1/6]

DEFINE_SHELL32PROPERTYKEY ( PKEY_DateModified  ,
PSGUID_STORAGE  ,
PID_STG_WRITETIME   
)

◆ DEFINE_SHELL32PROPERTYKEY() [2/6]

DEFINE_SHELL32PROPERTYKEY ( PKEY_FileAttributes  ,
PSGUID_STORAGE  ,
PID_STG_ATTRIBUTES   
)

◆ DEFINE_SHELL32PROPERTYKEY() [3/6]

DEFINE_SHELL32PROPERTYKEY ( PKEY_ItemTypeText  ,
PSGUID_STORAGE  ,
PID_STG_STORAGETYPE   
)

◆ DEFINE_SHELL32PROPERTYKEY() [4/6]

DEFINE_SHELL32PROPERTYKEY ( PKEY_Size  ,
PSGUID_STORAGE  ,
PID_STG_SIZE   
)

◆ DEFINE_SHELL32PROPERTYKEY() [5/6]

DEFINE_SHELL32PROPERTYKEY ( PKEYSHELL32_Comments  ,
PSGUID_SUMMARYINFORMATION  ,
PIDSI_COMMENTS   
)

◆ DEFINE_SHELL32PROPERTYKEY() [6/6]

DEFINE_SHELL32PROPERTYKEY ( PKEYSHELL32_Name  ,
PSGUID_STORAGE  ,
PID_STG_NAME   
)

◆ SHELL_GetPropertyKeyFromString()

const PROPERTYKEY * SHELL_GetPropertyKeyFromString ( _In_ PCWSTR  pszString,
_Out_ PROPERTYKEY *  pkey 
)

Definition at line 60 of file prop.cpp.

61{
63 return pkey;
64 return SHELL_GetPropertyKeyFromLegacyName(pszString);
65}
#define SUCCEEDED(hr)
Definition: intsafe.h:50
static HRESULT SHELL_PropertyKeyFromPropertyKeyString(_In_ PCWSTR pszString, _Out_ PROPERTYKEY *pkey)
Definition: prop.cpp:45
static const PROPERTYKEY * SHELL_GetPropertyKeyFromLegacyName(_In_ PCWSTR pszString)
Definition: prop.cpp:31

Referenced by CFolderItem::ExtendedProperty().

◆ VariantDerefVariant()

static VARIANT * VariantDerefVariant ( _In_ const VARIANT pV)
inlinestatic

Definition at line 36 of file prop.h.

37{
38 if (V_VT(pV) == (VT_BYREF | VT_VARIANT) && V_VARIANTREF(pV))
39 return V_VARIANTREF(pV);
40 return (VARIANT*)pV;
41}
@ VT_BYREF
Definition: compat.h:2342
@ VT_VARIANT
Definition: compat.h:2307
#define V_VARIANTREF(A)
Definition: oleauto.h:283
#define V_VT(A)
Definition: oleauto.h:211

Referenced by CFolderItem::GetParentAndItem(), and VariantQueryInterface().

◆ VariantQueryInterface()

HRESULT VariantQueryInterface ( _In_ VARIANT pV,
_In_ REFIID  riid,
_Out_ void **  ppv 
)

Definition at line 83 of file prop.cpp.

84{
85 pV = VariantDerefVariant(pV);
86 switch (V_VT(pV))
87 {
88 case VT_DISPATCH | VT_BYREF:
90 case VT_DISPATCH:
91 case VT_UNKNOWN:
92 return V_UNKNOWN(pV) ? V_UNKNOWN(pV)->QueryInterface(riid, ppv) : E_UNEXPECTED;
93 }
94 return E_FAIL;
95}
#define E_FAIL
Definition: ddrawi.h:102
@ VT_UNKNOWN
Definition: compat.h:2308
@ VT_DISPATCH
Definition: compat.h:2304
static VARIANT * VariantDerefVariant(_In_ const VARIANT *pV)
Definition: prop.h:36
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
static HRESULT QueryInterface(REFIID, void **)
Definition: events.c:2587
#define V_UNKNOWN(A)
Definition: oleauto.h:281
#define V_DISPATCHREF(A)
Definition: oleauto.h:240
#define E_UNEXPECTED
Definition: winerror.h:3528

Referenced by CFolder::GetUIObjectFromVariant().

◆ VariantToIdlist()

HRESULT VariantToIdlist ( _In_ VARIANT pV,
_Out_ LPITEMIDLIST ppidl 
)

Definition at line 68 of file prop.cpp.

69{
71 if (V_VT(pV) == VT_I4)
72 {
74 }
75 else if (V_VT(pV) == VT_BSTR)
76 {
77 hr = SHILCreateFromPathW(V_BSTR(pV), ppidl, NULL);
78 }
79 return hr;
80}
HRESULT hr
Definition: delayimp.cpp:582
#define NULL
Definition: types.h:112
@ VT_BSTR
Definition: compat.h:2303
@ VT_I4
Definition: compat.h:2298
HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, INT nFolder, LPITEMIDLIST *ppidl)
Definition: shellpath.c:3385
#define V_BSTR(A)
Definition: oleauto.h:226
#define V_I4(A)
Definition: oleauto.h:247
HRESULT WINAPI SHILCreateFromPathW(LPCWSTR path, LPITEMIDLIST *ppidl, DWORD *attributes)
Definition: pidl.c:404

Referenced by CShellDispatch::AddToRecent(), CShellDispatch::BrowseForFolder(), CFolder::GetUIObjectFromVariant(), CShellDispatch::NameSpace(), and OpenFolder().