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

Constructor & Destructor Documentation

◆ ~CAssocElement()

CAssocElement::~CAssocElement ( )
virtual

Definition at line 646 of file elements.cpp.

647{
648 if (m_pSource)
649 {
650 m_pSource->Release();
651 m_pSource = NULL;
652 }
653}
IQuerySourceOld * m_pSource
Definition: elements.cpp:406
#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 655 of file elements.cpp.

656{
657 *ppItems = NULL;
658 return 0;
659}

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 662 of file elements.cpp.

670{
671 const QUERYKEYVAL* pItem = _FindKeyVal(query, pItems, cItems);
672 if (!pItem)
673 return E_INVALIDARG;
674
675 WCHAR szBuff[128];
676 PCWSTR key = pItem->key;
678 {
679 StringCchPrintfW(szBuff, _countof(szBuff), key, valueName);
680 key = szBuff;
681 }
682 return callback(pQS, query, key, pItem->value, pValue);
683}
#define E_INVALIDARG
Definition: ddrawi.h:101
static const QUERYKEYVAL * _FindKeyVal(ASSOCQUERY query, const QUERYKEYVAL *pItems, UINT cItems)
Definition: elements.cpp:99
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:31
PCWSTR key
Definition: elements.cpp:30
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 686 of file elements.cpp.

693{
694 if (!pSource)
695 return E_INVALIDARG;
696
699 {
700 return callback(pSource, query, NULL, valueName, pValue);
701 }
702
703 if ((query & dwFlags) != dwFlags)
704 return E_INVALIDARG;
705
706 const QUERYKEYVAL* pItems = NULL;
707 UINT cItems = _GetQueryKeyVal(&pItems);
708 if (!cItems)
709 return E_INVALIDARG;
710
711 return _QueryKeyValAny(callback, pItems, cItems, pSource, query, valueName, pValue);
712}
HRESULT _QueryKeyValAny(QUERY_CALLBACK callback, const QUERYKEYVAL *pItems, UINT cItems, IQuerySourceOld *pQS, ASSOCQUERY query, PCWSTR valueName, PVOID pValue)
Definition: elements.cpp:662
virtual UINT _GetQueryKeyVal(const QUERYKEYVAL **ppItems)
Definition: elements.cpp:655
#define ASSOCQUERY_LOCALIZEDSTRING
Definition: elements.cpp:53
#define ASSOCQUERY_SDED
Definition: elements.cpp:36
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 755 of file elements.cpp.

756{
757 if (!m_pSource)
758 {
759 *ppSource = NULL;
760 return E_NOINTERFACE;
761 }
762 return m_pSource->QueryInterface(riid, ppSource);
763}
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 784 of file elements.cpp.

785{
786 *ppBlob = NULL;
788}
HRESULT _QuerySourceAny(QUERY_CALLBACK callback, IQuerySourceOld *pSource, DWORD dwFlags, ASSOCQUERY query, PCWSTR valueName, PVOID pValue)
Definition: elements.cpp:686
static HRESULT CALLBACK _QuerySourceDirect(IQuerySourceOld *pSource, ASSOCQUERY query, PCWSTR keyName, PCWSTR valueName, PVOID pValue)
Definition: elements.cpp:181
#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 772 of file elements.cpp.

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

Referenced by CAssocShellElement::QueryDword().

◆ QueryExists()

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

Definition at line 778 of file elements.cpp.

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

Referenced by CAssocShellElement::QueryExists().

◆ QueryInterface()

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

Definition at line 714 of file elements.cpp.

715{
717 {
718 *ppv = static_cast<IObjectWithQuerySourceOld*>(this);
719 AddRef();
720 return S_OK;
721 }
722 if (riid == IID_IAssociationElementOld)
723 {
724 *ppv = static_cast<IAssociationElementOld*>(this);
725 AddRef();
726 return S_OK;
727 }
728 ERR("E_NOINTERFACE: %s\n", wine_dbgstr_guid(&riid));
729 *ppv = NULL;
730 return E_NOINTERFACE;
731}
#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 790 of file elements.cpp.

791{
792 *ppvObj = NULL;
793 return E_NOTIMPL;
794}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ QueryString()

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

Definition at line 765 of file elements.cpp.

766{
767 *ppszValue = NULL;
769 query, key, ppszValue);
770}
static HRESULT CALLBACK _QuerySourceString(IQuerySourceOld *pSource, ASSOCQUERY query, PCWSTR keyName, PCWSTR valueName, PVOID pValue)
Definition: elements.cpp:214

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

◆ SetSource()

STDMETHODIMP CAssocElement::SetSource ( IQuerySourceOld *  pSource)
override

Definition at line 746 of file elements.cpp.

747{
748 if (m_pSource)
749 return E_UNEXPECTED;
750 m_pSource = pSource;
751 m_pSource->AddRef();
752 return S_OK;
753}
#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 405 of file elements.cpp.

Referenced by STDMETHODIMP_().

◆ m_pSource


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