ReactOS 0.4.17-dev-444-g71ee754
CAssocShellVerbElement Class Reference
Inheritance diagram for CAssocShellVerbElement:
Collaboration diagram for CAssocShellVerbElement:

Public Member Functions

 CAssocShellVerbElement (BOOL bAppSource)
 
STDMETHODIMP QueryString (ASSOCQUERY query, PCWSTR key, PWSTR *ppwsz) override
 
STDMETHODIMP QueryObject (ASSOCQUERY query, PCWSTR key, REFIID riid, PVOID *ppvObj) override
 
- Public Member Functions inherited from CAssocElement
virtual ~CAssocElement ()
 
STDMETHODIMP QueryInterface (REFIID riid, PVOID *ppv) override
 
 STDMETHODIMP_ (ULONG) AddRef() override
 
 STDMETHODIMP_ (ULONG) Release() override
 
STDMETHODIMP SetSource (IQuerySourceOld *pSource) override
 
STDMETHODIMP GetSource (REFIID riid, PVOID *ppSource) override
 
STDMETHODIMP QueryString (ASSOCQUERY query, PCWSTR key, PWSTR *ppszValue) override
 
STDMETHODIMP QueryDword (ASSOCQUERY query, PCWSTR key, DWORD *pdwValue) override
 
STDMETHODIMP QueryExists (ASSOCQUERY query, PCWSTR key) override
 
STDMETHODIMP QueryDirect (ASSOCQUERY query, PCWSTR key, FLAGGED_BYTE_BLOB **ppBlob) override
 
STDMETHODIMP QueryObject (ASSOCQUERY query, PCWSTR key, REFIID riid, PVOID *ppvObj) override
 

Protected Member Functions

UINT _GetQueryKeyVal (const QUERYKEYVAL **ppItems) override
 
HRESULT _GetAppDelegate (REFIID riid, PVOID *ppv)
 
- Protected Member Functions inherited from CAssocElement
HRESULT _QueryKeyValAny (QUERY_CALLBACK callback, const QUERYKEYVAL *pItems, UINT cItems, IQuerySourceOld *pQS, ASSOCQUERY query, PCWSTR valueName, PVOID pValue)
 
HRESULT _QuerySourceAny (QUERY_CALLBACK callback, IQuerySourceOld *pSource, DWORD dwFlags, ASSOCQUERY query, PCWSTR valueName, PVOID pValue)
 
virtual UINT _GetQueryKeyVal (const QUERYKEYVAL **ppItems)
 

Protected Attributes

BOOL m_bAppSource = FALSE
 
- Protected Attributes inherited from CAssocElement
LONG m_cRefs = 1
 
IQuerySourceOld * m_pSource = NULL
 

Detailed Description

Definition at line 488 of file elements.cpp.

Constructor & Destructor Documentation

◆ CAssocShellVerbElement()

CAssocShellVerbElement::CAssocShellVerbElement ( BOOL  bAppSource)

Definition at line 1057 of file elements.cpp.

1058 : m_bAppSource(bAppSource)
1059{
1060}

Member Function Documentation

◆ _GetAppDelegate()

HRESULT CAssocShellVerbElement::_GetAppDelegate ( REFIID  riid,
PVOID ppv 
)
protected

Definition at line 1117 of file elements.cpp.

1118{
1119 PWSTR psz = NULL;
1122 return hr;
1123
1124 IPersistString2* pPS2;
1125 hr = AssocCreateElement(CLSID_AssocApplicationElement, IID_PPV_ARG(IPersistString2, &pPS2));
1126 if (SUCCEEDED(hr))
1127 {
1128 hr = pPS2->SetString(psz);
1129 if (SUCCEEDED(hr))
1130 hr = pPS2->QueryInterface(riid, ppv);
1131 pPS2->Release();
1132 }
1133
1134 if (psz)
1135 CoTaskMemFree(psz);
1136
1137 return hr;
1138}
STDMETHODIMP QueryString(ASSOCQUERY query, PCWSTR key, PWSTR *ppszValue) override
Definition: elements.cpp:765
HRESULT hr
Definition: delayimp.cpp:582
#define NULL
Definition: types.h:112
void WINAPI CoTaskMemFree(void *ptr)
Definition: malloc.c:389
#define FAILED_UNEXPECTEDLY
Definition: utils.cpp:33
#define ASSOCQUERY_DELEGATE
Definition: elements.cpp:57
EXTERN_C HRESULT WINAPI AssocCreateElement(_In_ REFCLSID rclsid, _In_ REFIID riid, _Outptr_ PVOID *ppvObj)
Definition: elements.cpp:1635
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
ULONG Release()
#define SUCCEEDED(hr)
Definition: intsafe.h:50
uint16_t * PWSTR
Definition: typedefs.h:56
#define IID_PPV_ARG(Itype, ppType)

Referenced by QueryObject(), and QueryString().

◆ _GetQueryKeyVal()

UINT CAssocShellVerbElement::_GetQueryKeyVal ( const QUERYKEYVAL **  ppItems)
overrideprotectedvirtual

Reimplemented from CAssocElement.

Definition at line 1111 of file elements.cpp.

1112{
1113 *ppItems = g_shellVerbKeyVals;
1115}
static const QUERYKEYVAL g_shellVerbKeyVals[]
Definition: elements.cpp:75
#define _countof(array)
Definition: sndvol32.h:70

◆ QueryObject()

STDMETHODIMP CAssocShellVerbElement::QueryObject ( ASSOCQUERY  query,
PCWSTR  key,
REFIID  riid,
PVOID ppvObj 
)
override

Definition at line 1141 of file elements.cpp.

1142{
1144 return E_INVALIDARG;
1145 return _GetAppDelegate(riid, ppvObj);
1146}
HRESULT _GetAppDelegate(REFIID riid, PVOID *ppv)
Definition: elements.cpp:1117
#define E_INVALIDARG
Definition: ddrawi.h:101
#define ASSOCQUERY_OBJECT_EV_1
Definition: elements.cpp:58

◆ QueryString()

STDMETHODIMP CAssocShellVerbElement::QueryString ( ASSOCQUERY  query,
PCWSTR  key,
PWSTR ppwsz 
)
override

Definition at line 1062 of file elements.cpp.

1066{
1068 if (SUCCEEDED(hr))
1069 return hr;
1070
1071 PWSTR psz;
1072 if (query == ASSOCQUERY_SEV_7)
1073 {
1075 if (SUCCEEDED(hr))
1076 hr = _ExeFromCmd(psz, ppwsz);
1077 if (psz)
1078 CoTaskMemFree(psz);
1079 return hr;
1080 }
1081
1083 {
1085 if (SUCCEEDED(hr))
1086 {
1087 PathStripPathW(psz);
1089 }
1090 *ppwsz = psz;
1091 return hr;
1092 }
1093
1095 return SHStrDupW(L"System", ppwsz);
1096
1098 {
1099 IAssociationElementOld* pElement;
1100 hr = _GetAppDelegate(IID_PPV_ARG(IAssociationElementOld, &pElement));
1101 if (SUCCEEDED(hr))
1102 {
1103 hr = pElement->QueryString(ASSOCQUERY_APPKEY_FRIENDLYAPPNAME, NULL, ppwsz);
1104 pElement->Release();
1105 }
1106 }
1107
1108 return hr;
1109}
STDMETHODIMP QueryString(ASSOCQUERY query, PCWSTR key, PWSTR *ppwsz) override
Definition: elements.cpp:1062
void WINAPI PathRemoveExtensionW(WCHAR *path)
Definition: path.c:1922
void WINAPI PathStripPathW(WCHAR *path)
Definition: path.c:2304
HRESULT WINAPI SHStrDupW(const WCHAR *src, WCHAR **dest)
Definition: main.c:1692
#define L(x)
Definition: resources.c:13
#define ASSOCQUERY_SEV_7
Definition: elements.cpp:54
#define ASSOCQUERY_DDEEXEC_TOPIC
Definition: elements.cpp:52
#define ASSOCQUERY_VERB_FRIENDLYAPPNAME
Definition: elements.cpp:47
#define ASSOCQUERY_APPKEY_FRIENDLYAPPNAME
Definition: elements.cpp:55
#define ASSOCQUERY_DDEEXEC_APPLICATION
Definition: elements.cpp:51
#define ASSOCQUERY_COMMAND
Definition: elements.cpp:48
static HRESULT _ExeFromCmd(PCWSTR pszCmdTemplate, PWSTR *ppszApplication)
Definition: elements.cpp:335
Definition: copy.c:22

Referenced by QueryString().

Member Data Documentation

◆ m_bAppSource

BOOL CAssocShellVerbElement::m_bAppSource = FALSE
protected

Definition at line 492 of file elements.cpp.

Referenced by QueryString().


The documentation for this class was generated from the following file: