ReactOS 0.4.17-dev-769-g1500a35
CAssocProgidElement Class Reference
Inheritance diagram for CAssocProgidElement:
Collaboration diagram for CAssocProgidElement:

Public Member Functions

 ~CAssocProgidElement () override
 
STDMETHODIMP QueryString (ASSOCQUERY query, PCWSTR key, PWSTR *ppszValue) override
 
STDMETHODIMP GetClassID (CLSID *pClassID) override
 
BOOL _UseEnumForDefaultVerb () override
 
HRESULT _InitSource () override
 
- Public Member Functions inherited from CAssocShellElement
 ~CAssocShellElement ()
 
STDMETHODIMP QueryInterface (REFIID riid, PVOID *ppv) override
 
 STDMETHODIMP_ (ULONG) AddRef() override
 
 STDMETHODIMP_ (ULONG) Release() 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
 
STDMETHODIMP GetClassID (CLSID *pClassID) override
 
STDMETHODIMP SetString (PCWSTR psz) override
 
STDMETHODIMP GetString (PWSTR *ppsz) override
 
virtual BOOL _UseEnumForDefaultVerb ()
 
virtual HRESULT _InitSource ()
 
virtual BOOL _IsAppSource ()
 
virtual HRESULT _GetVerbDelegate (PCWSTR pszSrc, IAssociationElementOld **ppElement)
 
- 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
 

Private Attributes

IQuerySourceOld * m_pSource2 = NULL
 

Additional Inherited Members

- Protected Member Functions inherited from CAssocShellElement
UINT _GetQueryKeyVal (const QUERYKEYVAL **ppItems) override
 
HRESULT _DefaultVerbSource (IQuerySourceOld **ppSource)
 
- 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 inherited from CAssocShellElement
PWSTR m_pszName = NULL
 
WCHAR m_szBuff [64] = L""
 
- Protected Attributes inherited from CAssocElement
LONG m_cRefs = 1
 
IQuerySourceOld * m_pSource = NULL
 

Detailed Description

Definition at line 503 of file elements.cpp.

Constructor & Destructor Documentation

◆ ~CAssocProgidElement()

CAssocProgidElement::~CAssocProgidElement ( )
override

Definition at line 1217 of file elements.cpp.

1218{
1219 if (m_pSource2)
1220 {
1221 m_pSource2->Release();
1222 m_pSource2 = NULL;
1223 }
1224}
IQuerySourceOld * m_pSource2
Definition: elements.cpp:506
#define NULL
Definition: types.h:112

Member Function Documentation

◆ _InitSource()

HRESULT CAssocProgidElement::_InitSource ( )
overridevirtual

Reimplemented from CAssocShellElement.

Definition at line 1259 of file elements.cpp.

1260{
1261 HRESULT hr = S_OK;
1262 PWSTR pszName;
1263
1264 if (*m_pszName == L'.')
1265 {
1268 goto Exit;
1269
1270 hr = m_pSource2->QueryValueString(NULL, NULL, &pszName);
1271 }
1272 else
1273 {
1274 pszName = m_pszName;
1275 }
1276
1277 if (SUCCEEDED(hr))
1278 {
1279 HKEY hKey = _OpenProgidKey(pszName);
1280 if (hKey)
1281 {
1284 }
1285 else
1286 {
1287 hr = E_UNEXPECTED;
1288 }
1289
1290 if (pszName != m_pszName)
1291 CoTaskMemFree(pszName);
1292 }
1293
1294Exit:
1296 {
1298 m_pSource2 = NULL;
1299 return S_FALSE;
1300 }
1301
1302 return hr;
1303}
#define RegCloseKey(hKey)
Definition: registry.h:49
IQuerySourceOld * m_pSource
Definition: elements.cpp:383
HRESULT hr
Definition: delayimp.cpp:582
void WINAPI CoTaskMemFree(void *ptr)
Definition: malloc.c:389
#define FAILED_UNEXPECTEDLY
Definition: utils.cpp:33
#define L(x)
Definition: resources.c:13
static HRESULT _QuerySourceCreateFromKey(HKEY hKey, PCWSTR lpSubKey, BOOL bCreate, IQuerySourceOld **ppSource)
Definition: elements.cpp:205
static HKEY _OpenProgidKey(PCWSTR psz)
Definition: elements.cpp:248
FxAutoRegKey hKey
#define S_OK
Definition: intsafe.h:52
#define SUCCEEDED(hr)
Definition: intsafe.h:50
static void Exit(void)
Definition: sock.c:1330
uint16_t * PWSTR
Definition: typedefs.h:56
#define S_FALSE
Definition: winerror.h:3451
#define E_UNEXPECTED
Definition: winerror.h:3528
#define HKEY_CLASSES_ROOT
Definition: winreg.h:10

◆ _UseEnumForDefaultVerb()

BOOL CAssocProgidElement::_UseEnumForDefaultVerb ( )
overridevirtual

Reimplemented from CAssocShellElement.

Definition at line 1254 of file elements.cpp.

1255{
1256 return TRUE;
1257}
#define TRUE
Definition: types.h:120

◆ GetClassID()

STDMETHODIMP CAssocProgidElement::GetClassID ( CLSID pClassID)
override

Definition at line 1248 of file elements.cpp.

1249{
1250 *pClassID = CLSID_AssocProgidElement;
1251 return S_OK;
1252}

◆ QueryString()

STDMETHODIMP CAssocProgidElement::QueryString ( ASSOCQUERY  query,
PCWSTR  key,
PWSTR ppszValue 
)
override

Definition at line 1226 of file elements.cpp.

1227{
1229 if (SUCCEEDED(hr))
1230 return hr;
1231
1233 {
1236 m_pSource2,
1237 query,
1238 key,
1239 ppszValue);
1240 }
1241
1243 return m_pSource->QueryValueString(NULL, NULL, ppszValue);
1244
1245 return hr;
1246}
HRESULT _QueryKeyValAny(QUERY_CALLBACK callback, const QUERYKEYVAL *pItems, UINT cItems, IQuerySourceOld *pQS, ASSOCQUERY query, PCWSTR valueName, PVOID pValue)
Definition: elements.cpp:639
STDMETHODIMP QueryString(ASSOCQUERY query, PCWSTR key, PWSTR *ppszValue) override
Definition: elements.cpp:861
static HRESULT CALLBACK _QuerySourceString(IQuerySourceOld *pSource, ASSOCQUERY query, PCWSTR keyName, PCWSTR valueName, PVOID pValue)
Definition: elements.cpp:191
static const QUERYKEYVAL g_progidKeyVals[2]
Definition: elements.cpp:69
#define ASSOCQUERY_FRIENDLYAPPNAME
Definition: elements.h:23
#define ASSOCQUERY_FALLBACK
Definition: shlobj_undoc.h:45
#define _countof(array)
Definition: sndvol32.h:70
Definition: copy.c:22

Member Data Documentation

◆ m_pSource2

IQuerySourceOld* CAssocProgidElement::m_pSource2 = NULL
private

Definition at line 506 of file elements.cpp.

Referenced by _InitSource(), QueryString(), and ~CAssocProgidElement().


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