|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
SysDefEx.h File Reference #include "SysSpec_Windows/SysSpecWin.h" Go to the source code of this file.
Macro Definition Documentation◆ DWORD_MAX
◆ INT32_MAX
◆ KP_ASSERT_REFS
Value:
ASSERT((__kp_comobj).AddRef() \
> 0); ASSERT((__kp_comobj).Release() == (__kp_refcnt));
◆ KP_DECL_IUNKNOWN
Value:
STDMETHODIMP QueryInterface(REFIID riid, void** ppvObject); \
STDMETHODIMP_(ULONG) AddRef(); STDMETHODIMP_(ULONG) Release()
◆ KP_DECL_STDREFIMPL
◆ KP_DECLSPEC_NOVTABLE
◆ KP_DECLSPEC_UUID
◆ KP_DEFINE_GUID
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 } }
◆ KP_IMPL_CONSTRUCT
◆ KP_IMPL_STDREFIMPL
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; }
◆ KP_IMPL_STDREFIMPL_NODELETE
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; }
◆ KP_IMPL_STDREFIMPL_SUB
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; \
else { assert(false); } return __kp_ref; }
◆ KP_QUERY_INTERFACE_RELEASE_LOCAL_RET
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; } }
◆ KP_REQ_OUT_PTR
Value:
{ if((__kp_ppv) == NULL) { assert(false); \
return E_POINTER; } }
◆ KP_REQ_OUT_PTR_INIT
Value:
{ KP_REQ_OUT_PTR(__kp_ppvx); \
*(__kp_ppvx) = NULL; }
◆ KP_SUPPORT_INTERFACE
Value:
{ assert(__m_uInterfaceRefCount > 0); \
if(riid == __kp_iid) { __kp_int##* __kp_p = this; *ppvObject = __kp_p; \
this->AddRef(); return S_OK; } }
◆ ROTL32UE
◆ SAFE_DELETE
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. ◆ SAFE_DELETE_ARRAY
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. ◆ SAFE_RELEASE
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. ◆ UINT32_MAX
◆ UINT64_MAX
◆ UNREFERENCED_PARAMETER
◆ UTF8_BYTE
#define SAFE_DELETE(__kp_p) Delete the given object in the CRT of the caller. Definition: SysDefEx.h:101 Documentation generated with Doxygen. |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||