mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-07 22:06:59 -06:00
23.01
This commit is contained in:
@@ -1,47 +1,55 @@
|
||||
// MyCom2.h
|
||||
|
||||
#ifndef __MYCOM2_H
|
||||
#define __MYCOM2_H
|
||||
#ifndef ZIP7_INC_MYCOM2_H
|
||||
#define ZIP7_INC_MYCOM2_H
|
||||
|
||||
#include "../../../Common/MyCom.h"
|
||||
|
||||
#define MY_ADDREF_RELEASE_MT \
|
||||
STDMETHOD_(ULONG, AddRef)() { InterlockedIncrement((LONG *)&__m_RefCount); return __m_RefCount; } \
|
||||
STDMETHOD_(ULONG, Release)() { InterlockedDecrement((LONG *)&__m_RefCount); if (__m_RefCount != 0) \
|
||||
return __m_RefCount; delete this; return 0; }
|
||||
#define Z7_COM_ADDREF_RELEASE_MT \
|
||||
private: \
|
||||
STDMETHOD_(ULONG, AddRef)() Z7_override Z7_final \
|
||||
{ return (ULONG)InterlockedIncrement((LONG *)&_m_RefCount); } \
|
||||
STDMETHOD_(ULONG, Release)() Z7_override Z7_final \
|
||||
{ const LONG v = InterlockedDecrement((LONG *)&_m_RefCount); \
|
||||
if (v != 0) return (ULONG)v; \
|
||||
delete this; return 0; }
|
||||
|
||||
#define MY_UNKNOWN_IMP_SPEC_MT2(i1, i) \
|
||||
MY_QUERYINTERFACE_BEGIN \
|
||||
MY_QUERYINTERFACE_ENTRY_UNKNOWN(i1) \
|
||||
#define Z7_COM_UNKNOWN_IMP_SPEC_MT2(i1, i) \
|
||||
Z7_COM_QI_BEGIN \
|
||||
Z7_COM_QI_ENTRY_UNKNOWN(i1) \
|
||||
i \
|
||||
MY_QUERYINTERFACE_END \
|
||||
MY_ADDREF_RELEASE_MT
|
||||
Z7_COM_QI_END \
|
||||
Z7_COM_ADDREF_RELEASE_MT
|
||||
|
||||
|
||||
#define MY_UNKNOWN_IMP1_MT(i) MY_UNKNOWN_IMP_SPEC_MT2( \
|
||||
#define Z7_COM_UNKNOWN_IMP_1_MT(i) \
|
||||
Z7_COM_UNKNOWN_IMP_SPEC_MT2( \
|
||||
i, \
|
||||
MY_QUERYINTERFACE_ENTRY(i) \
|
||||
Z7_COM_QI_ENTRY(i) \
|
||||
)
|
||||
|
||||
#define MY_UNKNOWN_IMP2_MT(i1, i2) MY_UNKNOWN_IMP_SPEC_MT2( \
|
||||
#define Z7_COM_UNKNOWN_IMP_2_MT(i1, i2) \
|
||||
Z7_COM_UNKNOWN_IMP_SPEC_MT2( \
|
||||
i1, \
|
||||
MY_QUERYINTERFACE_ENTRY(i1) \
|
||||
MY_QUERYINTERFACE_ENTRY(i2) \
|
||||
Z7_COM_QI_ENTRY(i1) \
|
||||
Z7_COM_QI_ENTRY(i2) \
|
||||
)
|
||||
|
||||
#define MY_UNKNOWN_IMP3_MT(i1, i2, i3) MY_UNKNOWN_IMP_SPEC_MT2( \
|
||||
#define Z7_COM_UNKNOWN_IMP_3_MT(i1, i2, i3) \
|
||||
Z7_COM_UNKNOWN_IMP_SPEC_MT2( \
|
||||
i1, \
|
||||
MY_QUERYINTERFACE_ENTRY(i1) \
|
||||
MY_QUERYINTERFACE_ENTRY(i2) \
|
||||
MY_QUERYINTERFACE_ENTRY(i3) \
|
||||
Z7_COM_QI_ENTRY(i1) \
|
||||
Z7_COM_QI_ENTRY(i2) \
|
||||
Z7_COM_QI_ENTRY(i3) \
|
||||
)
|
||||
|
||||
#define MY_UNKNOWN_IMP4_MT(i1, i2, i3, i4) MY_UNKNOWN_IMP_SPEC_MT2( \
|
||||
#define Z7_COM_UNKNOWN_IMP_4_MT(i1, i2, i3, i4) \
|
||||
Z7_COM_UNKNOWN_IMP_SPEC_MT2( \
|
||||
i1, \
|
||||
MY_QUERYINTERFACE_ENTRY(i1) \
|
||||
MY_QUERYINTERFACE_ENTRY(i2) \
|
||||
MY_QUERYINTERFACE_ENTRY(i3) \
|
||||
MY_QUERYINTERFACE_ENTRY(i4) \
|
||||
Z7_COM_QI_ENTRY(i1) \
|
||||
Z7_COM_QI_ENTRY(i2) \
|
||||
Z7_COM_QI_ENTRY(i3) \
|
||||
Z7_COM_QI_ENTRY(i4) \
|
||||
)
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user