ReactOS 0.4.17-dev-444-g71ee754
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 526 of file elements.cpp.

Constructor & Destructor Documentation

◆ ~CAssocProgidElement()

CAssocProgidElement::~CAssocProgidElement ( )
override

Definition at line 1240 of file elements.cpp.

1241{
1242 if (m_pSource2)
1243 {
1244 m_pSource2->Release();
1245 m_pSource2 = NULL;
1246 }
1247}
IQuerySourceOld * m_pSource2
Definition: elements.cpp:529
#define NULL
Definition: types.h:112

Member Function Documentation

◆ _InitSource()

HRESULT CAssocProgidElement::_InitSource ( )
overridevirtual

Reimplemented from CAssocShellElement.

Definition at line 1282 of file elements.cpp.

1283{
1284 HRESULT hr = S_OK;
1285 PWSTR pszName;
1286
1287 if (*m_pszName == L'.')
1288 {
1291 goto Exit;
1292
1293 hr = m_pSource2->QueryValueString(NULL, NULL, &pszName);
1294 }
1295 else
1296 {
1297 pszName = m_pszName;
1298 }
1299
1300 if (SUCCEEDED(hr))
1301 {
1302 HKEY hKey = _OpenProgidKey(pszName);
1303 if (hKey)
1304 {
1307 }
1308 else
1309 {
1310 hr = E_UNEXPECTED;
1311 }
1312
1313 if (pszName != m_pszName)
1314 CoTaskMemFree(pszName);
1315 }
1316
1317Exit:
1319 {
1321 m_pSource2 = NULL;
1322 return S_FALSE;
1323 }
1324
1325 return hr;
1326}
#define RegCloseKey(hKey)
Definition: registry.h:49
IQuerySourceOld * m_pSource
Definition: elements.cpp:406
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:228
static HKEY _OpenProgidKey(PCWSTR psz)
Definition: elements.cpp:271
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 1277 of file elements.cpp.

1278{
1279 return TRUE;
1280}
#define TRUE
Definition: types.h:120

◆ GetClassID()

STDMETHODIMP CAssocProgidElement::GetClassID ( CLSID pClassID)
override

Definition at line 1271 of file elements.cpp.

1272{
1273 *pClassID = CLSID_AssocProgidElement;
1274 return S_OK;
1275}

◆ QueryString()

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

Definition at line 1249 of file elements.cpp.

1250{
1252 if (SUCCEEDED(hr))
1253 return hr;
1254
1256 {
1259 m_pSource2,
1260 query,
1261 key,
1262 ppszValue);
1263 }
1264
1266 return m_pSource->QueryValueString(NULL, NULL, ppszValue);
1267
1268 return hr;
1269}
HRESULT _QueryKeyValAny(QUERY_CALLBACK callback, const QUERYKEYVAL *pItems, UINT cItems, IQuerySourceOld *pQS, ASSOCQUERY query, PCWSTR valueName, PVOID pValue)
Definition: elements.cpp:662
STDMETHODIMP QueryString(ASSOCQUERY query, PCWSTR key, PWSTR *ppszValue) override
Definition: elements.cpp:884
static HRESULT CALLBACK _QuerySourceString(IQuerySourceOld *pSource, ASSOCQUERY query, PCWSTR keyName, PCWSTR valueName, PVOID pValue)
Definition: elements.cpp:214
static const QUERYKEYVAL g_progidKeyVals[2]
Definition: elements.cpp:92
#define ASSOCQUERY_FRIENDLYAPPNAME
Definition: elements.cpp:46
#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 529 of file elements.cpp.

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


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