ReactOS 0.4.17-dev-769-g1500a35
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 465 of file elements.cpp.

Constructor & Destructor Documentation

◆ CAssocShellVerbElement()

CAssocShellVerbElement::CAssocShellVerbElement ( BOOL  bAppSource)

Definition at line 1034 of file elements.cpp.

1035 : m_bAppSource(bAppSource)
1036{
1037}

Member Function Documentation

◆ _GetAppDelegate()

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

Definition at line 1094 of file elements.cpp.

1095{
1096 PWSTR psz = NULL;
1099 return hr;
1100
1101 IPersistString2* pPS2;
1102 hr = AssocCreateElement(CLSID_AssocApplicationElement, IID_PPV_ARG(IPersistString2, &pPS2));
1103 if (SUCCEEDED(hr))
1104 {
1105 hr = pPS2->SetString(psz);
1106 if (SUCCEEDED(hr))
1107 hr = pPS2->QueryInterface(riid, ppv);
1108 pPS2->Release();
1109 }
1110
1111 if (psz)
1112 CoTaskMemFree(psz);
1113
1114 return hr;
1115}
STDMETHODIMP QueryString(ASSOCQUERY query, PCWSTR key, PWSTR *ppszValue) override
Definition: elements.cpp:742
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
EXTERN_C HRESULT WINAPI AssocCreateElement(_In_ REFCLSID rclsid, _In_ REFIID riid, _Outptr_ PVOID *ppvObj)
Definition: elements.cpp:1612
#define ASSOCQUERY_DELEGATE
Definition: elements.h:34
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 1088 of file elements.cpp.

1089{
1090 *ppItems = g_shellVerbKeyVals;
1092}
static const QUERYKEYVAL g_shellVerbKeyVals[]
Definition: elements.cpp:52
#define _countof(array)
Definition: sndvol32.h:70

◆ QueryObject()

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

Definition at line 1118 of file elements.cpp.

1119{
1121 return E_INVALIDARG;
1122 return _GetAppDelegate(riid, ppvObj);
1123}
HRESULT _GetAppDelegate(REFIID riid, PVOID *ppv)
Definition: elements.cpp:1094
#define E_INVALIDARG
Definition: ddrawi.h:101
#define ASSOCQUERY_OBJECT_EV_1
Definition: elements.h:35

◆ QueryString()

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

Definition at line 1039 of file elements.cpp.

1043{
1045 if (SUCCEEDED(hr))
1046 return hr;
1047
1048 PWSTR psz;
1049 if (query == ASSOCQUERY_SEV_7)
1050 {
1052 if (SUCCEEDED(hr))
1053 hr = _ExeFromCmd(psz, ppwsz);
1054 if (psz)
1055 CoTaskMemFree(psz);
1056 return hr;
1057 }
1058
1060 {
1062 if (SUCCEEDED(hr))
1063 {
1064 PathStripPathW(psz);
1066 }
1067 *ppwsz = psz;
1068 return hr;
1069 }
1070
1072 return SHStrDupW(L"System", ppwsz);
1073
1075 {
1076 IAssociationElementOld* pElement;
1077 hr = _GetAppDelegate(IID_PPV_ARG(IAssociationElementOld, &pElement));
1078 if (SUCCEEDED(hr))
1079 {
1080 hr = pElement->QueryString(ASSOCQUERY_APPKEY_FRIENDLYAPPNAME, NULL, ppwsz);
1081 pElement->Release();
1082 }
1083 }
1084
1085 return hr;
1086}
STDMETHODIMP QueryString(ASSOCQUERY query, PCWSTR key, PWSTR *ppwsz) override
Definition: elements.cpp:1039
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
static HRESULT _ExeFromCmd(PCWSTR pszCmdTemplate, PWSTR *ppszApplication)
Definition: elements.cpp:312
#define ASSOCQUERY_SEV_7
Definition: elements.h:31
#define ASSOCQUERY_DDEEXEC_TOPIC
Definition: elements.h:29
#define ASSOCQUERY_VERB_FRIENDLYAPPNAME
Definition: elements.h:24
#define ASSOCQUERY_APPKEY_FRIENDLYAPPNAME
Definition: elements.h:32
#define ASSOCQUERY_DDEEXEC_APPLICATION
Definition: elements.h:28
#define ASSOCQUERY_COMMAND
Definition: elements.h:25
Definition: copy.c:22

Referenced by QueryString().

Member Data Documentation

◆ m_bAppSource

BOOL CAssocShellVerbElement::m_bAppSource = FALSE
protected

Definition at line 469 of file elements.cpp.

Referenced by QueryString().


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