ReactOS 0.4.17-dev-357-ga8f14ff
CBasePropertyBag Class Reference
Inheritance diagram for CBasePropertyBag:
Collaboration diagram for CBasePropertyBag:

Public Member Functions

 CBasePropertyBag (DWORD dwMode)
 
virtual ~CBasePropertyBag ()
 
STDMETHODIMP QueryInterface (REFIID riid, void **ppvObject) override
 
 STDMETHODIMP_ (ULONG) AddRef() override
 
 STDMETHODIMP_ (ULONG) Release() override
 
- Public Member Functions inherited from IPropertyBag
HRESULT Read ([in] LPCOLESTR pszPropName, [in, out] VARIANT *pVar, [in] IErrorLog *pErrorLog)
 
HRESULT RemoteRead ([in] LPCOLESTR pszPropName, [out] VARIANT *pVar, [in] IErrorLog *pErrorLog, [in] DWORD varType, [in] IUnknown *pUnkObj)
 
HRESULT Write ([in] LPCOLESTR pszPropName, [in] VARIANT *pVar)
 
- Public Member Functions inherited from IUnknown
HRESULT QueryInterface ([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
 
ULONG AddRef ()
 
ULONG Release ()
 

Protected Attributes

LONG m_cRefs
 
DWORD m_dwMode
 

Additional Inherited Members

- Public Types inherited from IPropertyBag
typedef IPropertyBagLPPROPERTYBAG
 
- Public Types inherited from IUnknown
typedef IUnknownLPUNKNOWN
 

Detailed Description

Definition at line 29 of file propbag.cpp.

Constructor & Destructor Documentation

◆ CBasePropertyBag()

CBasePropertyBag::CBasePropertyBag ( DWORD  dwMode)
inline

Definition at line 40 of file propbag.cpp.

41 : m_cRefs(0)
42 , m_dwMode(dwMode)
43 {
44 }

◆ ~CBasePropertyBag()

virtual CBasePropertyBag::~CBasePropertyBag ( )
inlinevirtual

Definition at line 46 of file propbag.cpp.

46{ }

Member Function Documentation

◆ QueryInterface()

STDMETHODIMP CBasePropertyBag::QueryInterface ( REFIID  riid,
void **  ppvObject 
)
inlineoverride

Implements IUnknown.

Definition at line 49 of file propbag.cpp.

50 {
51 if (!ppvObject)
52 return E_POINTER;
53
55 {
56 if (::IsEqualGUID(riid, IID_IPropertyBag2))
57 {
58 AddRef();
59 *ppvObject = static_cast<IPropertyBag2*>(this);
60 return S_OK;
61 }
62 }
63
65 {
66 AddRef();
67 *ppvObject = static_cast<IPropertyBag*>(this);
68 return S_OK;
69 }
70
71 ERR("%p: %s: E_NOINTERFACE\n", this, debugstr_guid(&riid));
72 return E_NOINTERFACE;
73 }
#define ERR(fmt,...)
Definition: precomp.h:57
const GUID IID_IUnknown
EXTERN_C ULONG WINAPI GetProcessOsVersion(void)
Definition: utils.cpp:1257
REFIID riid
Definition: atlbase.h:39
ULONG AddRef()
#define S_OK
Definition: intsafe.h:52
#define debugstr_guid
Definition: kernel32.h:35
const GUID IID_IPropertyBag
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define _WIN32_WINNT_VISTA
Definition: sdkddkver.h:25
#define E_NOINTERFACE
Definition: winerror.h:3479
#define E_POINTER
Definition: winerror.h:3480

◆ STDMETHODIMP_() [1/2]

CBasePropertyBag::STDMETHODIMP_ ( ULONG  )
inlineoverride

Definition at line 74 of file propbag.cpp.

75 {
76 return ::InterlockedIncrement(&m_cRefs);
77 }

◆ STDMETHODIMP_() [2/2]

CBasePropertyBag::STDMETHODIMP_ ( ULONG  )
inlineoverride

Definition at line 78 of file propbag.cpp.

79 {
81 {
82 delete this;
83 return 0;
84 }
85 return m_cRefs;
86 }
#define InterlockedDecrement
Definition: armddk.h:52

Member Data Documentation

◆ m_cRefs

LONG CBasePropertyBag::m_cRefs
protected

Definition at line 36 of file propbag.cpp.

Referenced by STDMETHODIMP_().

◆ m_dwMode


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