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

Public Member Functions

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

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

LONG m_cRefs = 1
 
IQuerySourceOld * m_pSource = NULL
 

Detailed Description

Definition at line 377 of file elements.cpp.

Constructor & Destructor Documentation

◆ ~CAssocElement()

CAssocElement::~CAssocElement ( )
virtual

Definition at line 623 of file elements.cpp.

624{
625 if (m_pSource)
626 {
627 m_pSource->Release();
628 m_pSource = NULL;
629 }
630}
IQuerySourceOld * m_pSource
Definition: elements.cpp:383
#define NULL
Definition: types.h:112

Member Function Documentation

◆ _GetQueryKeyVal()

UINT CAssocElement::_GetQueryKeyVal ( const QUERYKEYVAL **  ppItems)
protectedvirtual

Reimplemented in CAssocShellElement, CAssocShellVerbElement, CAssocApplicationElement, and CAssocPerceivedElement.

Definition at line 632 of file elements.cpp.

633{
634 *ppItems = NULL;
635 return 0;
636}

Referenced by _QuerySourceAny().

◆ _QueryKeyValAny()

HRESULT CAssocElement::_QueryKeyValAny ( QUERY_CALLBACK  callback,
const QUERYKEYVAL pItems,
UINT  cItems,
IQuerySourceOld *  pQS,
ASSOCQUERY  query,
PCWSTR  valueName,
PVOID  pValue 
)
protected

Definition at line 639 of file elements.cpp.

647{
648 const QUERYKEYVAL* pItem = _FindKeyVal(query, pItems, cItems);
649 if (!pItem)
650 return E_INVALIDARG;
651
652 WCHAR szBuff[128];
653 PCWSTR key = pItem->key;
655 {
656 StringCchPrintfW(szBuff, _countof(szBuff), key, valueName);
657 key = szBuff;
658 }
659 return callback(pQS, query, key, pItem->value, pValue);
660}
#define E_INVALIDARG
Definition: ddrawi.h:101
static const QUERYKEYVAL * _FindKeyVal(ASSOCQUERY query, const QUERYKEYVAL *pItems, UINT cItems)
Definition: elements.cpp:76
PWCHAR pValue
static IPrintDialogCallback callback
Definition: printdlg.c:326
static int int const SCRIPT_CONTROL const SCRIPT_STATE SCRIPT_ITEM * pItems
Definition: usp10.c:62
short WCHAR
Definition: pedump.c:58
#define ASSOCQUERY_EXTRA_NON_VERB
Definition: shlobj_undoc.h:42
#define _countof(array)
Definition: sndvol32.h:70
STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat,...)
Definition: strsafe.h:530
PCWSTR value
Definition: elements.cpp:34
PCWSTR key
Definition: elements.cpp:33
Definition: copy.c:22
const uint16_t * PCWSTR
Definition: typedefs.h:57

Referenced by _QuerySourceAny(), and CAssocProgidElement::QueryString().

◆ _QuerySourceAny()

HRESULT CAssocElement::_QuerySourceAny ( QUERY_CALLBACK  callback,
IQuerySourceOld *  pSource,
DWORD  dwFlags,
ASSOCQUERY  query,
PCWSTR  valueName,
PVOID  pValue 
)
protected

Definition at line 663 of file elements.cpp.

670{
671 if (!pSource)
672 return E_INVALIDARG;
673
676 {
677 return callback(pSource, query, NULL, valueName, pValue);
678 }
679
680 if ((query & dwFlags) != dwFlags)
681 return E_INVALIDARG;
682
683 const QUERYKEYVAL* pItems = NULL;
684 UINT cItems = _GetQueryKeyVal(&pItems);
685 if (!cItems)
686 return E_INVALIDARG;
687
688 return _QueryKeyValAny(callback, pItems, cItems, pSource, query, valueName, pValue);
689}
HRESULT _QueryKeyValAny(QUERY_CALLBACK callback, const QUERYKEYVAL *pItems, UINT cItems, IQuerySourceOld *pQS, ASSOCQUERY query, PCWSTR valueName, PVOID pValue)
Definition: elements.cpp:639
virtual UINT _GetQueryKeyVal(const QUERYKEYVAL **ppItems)
Definition: elements.cpp:632
#define ASSOCQUERY_LOCALIZEDSTRING
Definition: elements.h:30
#define ASSOCQUERY_SDED
Definition: elements.h:13
unsigned int UINT
Definition: sysinfo.c:13
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141

Referenced by QueryDirect(), QueryDword(), QueryExists(), and QueryString().

◆ GetSource()

STDMETHODIMP CAssocElement::GetSource ( REFIID  riid,
PVOID ppSource 
)
override

Definition at line 732 of file elements.cpp.

733{
734 if (!m_pSource)
735 {
736 *ppSource = NULL;
737 return E_NOINTERFACE;
738 }
739 return m_pSource->QueryInterface(riid, ppSource);
740}
REFIID riid
Definition: atlbase.h:39
#define E_NOINTERFACE
Definition: winerror.h:3479

Referenced by CAssocPerceivedElement::GetSource().

◆ QueryDirect()

STDMETHODIMP CAssocElement::QueryDirect ( ASSOCQUERY  query,
PCWSTR  key,
FLAGGED_BYTE_BLOB **  ppBlob 
)
override

Definition at line 761 of file elements.cpp.

762{
763 *ppBlob = NULL;
765}
HRESULT _QuerySourceAny(QUERY_CALLBACK callback, IQuerySourceOld *pSource, DWORD dwFlags, ASSOCQUERY query, PCWSTR valueName, PVOID pValue)
Definition: elements.cpp:663
static HRESULT CALLBACK _QuerySourceDirect(IQuerySourceOld *pSource, ASSOCQUERY query, PCWSTR keyName, PCWSTR valueName, PVOID pValue)
Definition: elements.cpp:158
#define ASSOCQUERY_DIRECT
Definition: shlobj_undoc.h:37

Referenced by CAssocShellElement::QueryDirect().

◆ QueryDword()

STDMETHODIMP CAssocElement::QueryDword ( ASSOCQUERY  query,
PCWSTR  key,
DWORD pdwValue 
)
override

Definition at line 749 of file elements.cpp.

750{
752 query, key, pdwValue);
753}
static HRESULT CALLBACK _QuerySourceDword(IQuerySourceOld *pSource, ASSOCQUERY query, PCWSTR keyName, PCWSTR valueName, PVOID pValue)
Definition: elements.cpp:169
#define ASSOCQUERY_DWORD
Definition: shlobj_undoc.h:38

Referenced by CAssocShellElement::QueryDword().

◆ QueryExists()

STDMETHODIMP CAssocElement::QueryExists ( ASSOCQUERY  query,
PCWSTR  key 
)
override

Definition at line 755 of file elements.cpp.

756{
758 query, key, NULL);
759}
static HRESULT CALLBACK _QuerySourceExists(IQuerySourceOld *pSource, ASSOCQUERY query, PCWSTR keyName, PCWSTR valueName, PVOID pValue)
Definition: elements.cpp:180
#define ASSOCQUERY_STRING
Definition: shlobj_undoc.h:35

Referenced by CAssocShellElement::QueryExists().

◆ QueryInterface()

STDMETHODIMP CAssocElement::QueryInterface ( REFIID  riid,
PVOID ppv 
)
override

Definition at line 691 of file elements.cpp.

692{
694 {
695 *ppv = static_cast<IObjectWithQuerySourceOld*>(this);
696 AddRef();
697 return S_OK;
698 }
699 if (riid == IID_IAssociationElementOld)
700 {
701 *ppv = static_cast<IAssociationElementOld*>(this);
702 AddRef();
703 return S_OK;
704 }
705 ERR("E_NOINTERFACE: %s\n", wine_dbgstr_guid(&riid));
706 *ppv = NULL;
707 return E_NOINTERFACE;
708}
#define ERR(fmt,...)
Definition: precomp.h:57
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define S_OK
Definition: intsafe.h:52
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:83
static __inline const char * wine_dbgstr_guid(const GUID *id)
Definition: debug.h:171
#define IID_IObjectWithQuerySourceOld

Referenced by CAssocShellElement::QueryInterface(), and CAssocApplicationElement::QueryObject().

◆ QueryObject()

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

Definition at line 767 of file elements.cpp.

768{
769 *ppvObj = NULL;
770 return E_NOTIMPL;
771}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ QueryString()

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

Definition at line 742 of file elements.cpp.

743{
744 *ppszValue = NULL;
746 query, key, ppszValue);
747}
static HRESULT CALLBACK _QuerySourceString(IQuerySourceOld *pSource, ASSOCQUERY query, PCWSTR keyName, PCWSTR valueName, PVOID pValue)
Definition: elements.cpp:191

Referenced by CAssocShellVerbElement::_GetAppDelegate(), CAssocShellElement::QueryString(), CAssocClientElement::QueryString(), and CAssocShellVerbElement::QueryString().

◆ SetSource()

STDMETHODIMP CAssocElement::SetSource ( IQuerySourceOld *  pSource)
override

Definition at line 723 of file elements.cpp.

724{
725 if (m_pSource)
726 return E_UNEXPECTED;
727 m_pSource = pSource;
728 m_pSource->AddRef();
729 return S_OK;
730}
#define E_UNEXPECTED
Definition: winerror.h:3528

◆ STDMETHODIMP_() [1/2]

CAssocElement::STDMETHODIMP_ ( ULONG  )
override

◆ STDMETHODIMP_() [2/2]

CAssocElement::STDMETHODIMP_ ( ULONG  )
override

Member Data Documentation

◆ m_cRefs

LONG CAssocElement::m_cRefs = 1
protected

Definition at line 382 of file elements.cpp.

Referenced by STDMETHODIMP_().

◆ m_pSource


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