|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
SysDefEx.h File Reference#include "SysSpec_Windows/SysSpecWin.h"Go to the source code of this file.
Define Documentation
Value: ASSERT((__kp_comobj).AddRef() \
> 0); ASSERT((__kp_comobj).Release() == (__kp_refcnt));
Value: STDMETHODIMP QueryInterface(REFIID riid, void** ppvObject); \
STDMETHODIMP_(ULONG) AddRef(); STDMETHODIMP_(ULONG) Release()
Value: EXTERN_C const GUID DECLSPEC_SELECTANY __kp_name \
= { __kp_l, __kp_w1, __kp_w2, { __kp_b1, __kp_b2, __kp_b3, __kp_b4, \
__kp_b5, __kp_b6, __kp_b7, __kp_b8 } }
Value: STDMETHODIMP_(ULONG) \
__kp_class_name##::AddRef() { return ++__m_uInterfaceRefCount; } \
STDMETHODIMP_(ULONG) __kp_class_name##::Release() { \
ULONG __kp_ref = __m_uInterfaceRefCount; \
if(__m_uInterfaceRefCount != 0) { __kp_ref = --__m_uInterfaceRefCount; \
if(__m_uInterfaceRefCount == 0) delete this; } \
else { assert(false); } return __kp_ref; }
Value: STDMETHODIMP_(ULONG) \
__kp_class_name##::AddRef() { return ++__m_uInterfaceRefCount; } \
STDMETHODIMP_(ULONG) __kp_class_name##::Release() { \
if(__m_uInterfaceRefCount != 0) --__m_uInterfaceRefCount; \
else { assert(false); } return __m_uInterfaceRefCount; }
Value: STDMETHODIMP_(ULONG) \
__kp_class_name##::AddRef() { return ++__m_uInterfaceRefCount; } \
STDMETHODIMP_(ULONG) __kp_class_name##::Release() { \
ULONG __kp_ref = __m_uInterfaceRefCount; \
if(__m_uInterfaceRefCount != 0) { __kp_ref = --__m_uInterfaceRefCount; \
if(__m_uInterfaceRefCount == 0) { SAFE_DELETE(__kp_sub_name); delete this; } } \
else { assert(false); } return __kp_ref; }
Value: { \
void* __kp_ip = NULL; if((__kp_comobj)->QueryInterface((__kp_riid), &__kp_ip) == \
S_OK) { *(__kp_ppvout) = __kp_ip; VERIFY((__kp_comobj)->Release() == 1); \
return S_OK; } else { VERIFY((__kp_comobj)->Release() == 0); return E_NOINTERFACE; } }
Value: { if((__kp_ppv) == NULL) { assert(false); \
return E_POINTER; } }
Value: { KP_REQ_OUT_PTR(__kp_ppvx); \
*(__kp_ppvx) = NULL; }
Value: { assert(__m_uInterfaceRefCount > 0); \
if(riid == __kp_iid) { __kp_int##* __kp_p = this; *ppvObject = __kp_p; \
this->AddRef(); return S_OK; } }
Delete the given object in the CRT of the caller. Plugins: you can use this macro to safely delete objects that you allocated with 'new', however do not use it to delete objects returned by KeePass interface methods! For this, use IKpAPI::DeleteObject instead.
Delete the given array/string in the CRT of the caller. Plugins: you can use this macro to safely delete arrays/strings that you allocated with 'new', however do not use it to delete arrays/strings returned by KeePass interface methods! For this, use IKpAPI::DeleteArray instead.
Safely release a COM interface. If the given interface pointer is valid (i.e. non-NULL), the macro will call the COM Release method of the object and set the interface pointer to NULL.
Documentation generated with
Doxygen.
|
![]()
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
KeePass is OSI Certified Open Source Software Copyright © 2003-2013 Dominik Reichl, [Legal Contact / Imprint] [Disclaimer] [Acknowledgements] [Donate], Downloads hosted at |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||