2022-11-12 09:45:35 +00:00
|
|
|
// IDecl.h
|
|
|
|
|
2023-09-14 16:51:54 +01:00
|
|
|
#ifndef ZIP7_INC_IDECL_H
|
|
|
|
#define ZIP7_INC_IDECL_H
|
2022-11-12 09:45:35 +00:00
|
|
|
|
2023-09-14 16:51:54 +01:00
|
|
|
#include "../Common/Common.h"
|
2022-11-12 09:45:35 +00:00
|
|
|
#include "../Common/MyUnknown.h"
|
|
|
|
|
2023-09-14 16:51:54 +01:00
|
|
|
#define k_7zip_GUID_Data1 0x23170F69
|
|
|
|
#define k_7zip_GUID_Data2 0x40C1
|
2022-11-12 09:45:35 +00:00
|
|
|
|
2023-09-14 16:51:54 +01:00
|
|
|
#define k_7zip_GUID_Data3_Common 0x278A
|
|
|
|
|
|
|
|
#define k_7zip_GUID_Data3_Decoder 0x2790
|
|
|
|
#define k_7zip_GUID_Data3_Encoder 0x2791
|
|
|
|
#define k_7zip_GUID_Data3_Hasher 0x2792
|
|
|
|
|
|
|
|
#define Z7_DECL_IFACE_7ZIP_SUB(i, _base, groupId, subId) \
|
|
|
|
Z7_DEFINE_GUID(IID_ ## i, \
|
|
|
|
k_7zip_GUID_Data1, \
|
|
|
|
k_7zip_GUID_Data2, \
|
|
|
|
k_7zip_GUID_Data3_Common, \
|
|
|
|
0, 0, 0, (groupId), 0, (subId), 0, 0); \
|
|
|
|
struct Z7_DECLSPEC_NOVTABLE i: public _base
|
|
|
|
|
|
|
|
#define Z7_DECL_IFACE_7ZIP(i, groupId, subId) \
|
|
|
|
Z7_DECL_IFACE_7ZIP_SUB(i, IUnknown, groupId, subId)
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef COM_DECLSPEC_NOTHROW
|
|
|
|
#define Z7_COMWF_B COM_DECLSPEC_NOTHROW STDMETHODIMP
|
|
|
|
#define Z7_COMWF_B_(t) COM_DECLSPEC_NOTHROW STDMETHODIMP_(t)
|
|
|
|
#else
|
|
|
|
#define Z7_COMWF_B STDMETHODIMP
|
|
|
|
#define Z7_COMWF_B_(t) STDMETHODIMP_(t)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(_MSC_VER) && !defined(COM_DECLSPEC_NOTHROW)
|
|
|
|
#define Z7_COM7F_B __declspec(nothrow) STDMETHODIMP
|
|
|
|
#define Z7_COM7F_B_(t) __declspec(nothrow) STDMETHODIMP_(t)
|
|
|
|
#else
|
|
|
|
#define Z7_COM7F_B Z7_COMWF_B
|
|
|
|
#define Z7_COM7F_B_(t) Z7_COMWF_B_(t)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
// #define Z7_COM7F_E Z7_noexcept
|
|
|
|
#define Z7_COM7F_E throw()
|
|
|
|
#define Z7_COM7F_EO Z7_COM7F_E Z7_override
|
|
|
|
#define Z7_COM7F_EOF Z7_COM7F_EO Z7_final
|
|
|
|
#define Z7_COM7F_IMF(f) Z7_COM7F_B f Z7_COM7F_E
|
|
|
|
#define Z7_COM7F_IMF2(t, f) Z7_COM7F_B_(t) f Z7_COM7F_E
|
|
|
|
|
|
|
|
#define Z7_COM7F_PURE(f) virtual Z7_COM7F_IMF(f) =0;
|
|
|
|
#define Z7_COM7F_PURE2(t, f) virtual Z7_COM7F_IMF2(t, f) =0;
|
|
|
|
#define Z7_COM7F_IMP(f) Z7_COM7F_IMF(f) Z7_override Z7_final;
|
|
|
|
#define Z7_COM7F_IMP2(t, f) Z7_COM7F_IMF2(t, f) Z7_override Z7_final;
|
|
|
|
#define Z7_COM7F_IMP_NONFINAL(f) Z7_COM7F_IMF(f) Z7_override;
|
|
|
|
#define Z7_COM7F_IMP_NONFINAL2(t, f) Z7_COM7F_IMF2(t, f) Z7_override;
|
|
|
|
|
|
|
|
#define Z7_IFACE_PURE(name) Z7_IFACEN_ ## name(=0;)
|
|
|
|
#define Z7_IFACE_IMP(name) Z7_IFACEN_ ## name(Z7_override Z7_final;)
|
|
|
|
|
|
|
|
#define Z7_IFACE_COM7_PURE(name) Z7_IFACEM_ ## name(Z7_COM7F_PURE)
|
|
|
|
#define Z7_IFACE_COM7_IMP(name) Z7_IFACEM_ ## name(Z7_COM7F_IMP)
|
|
|
|
#define Z7_IFACE_COM7_IMP_NONFINAL(name) Z7_IFACEM_ ## name(Z7_COM7F_IMP_NONFINAL)
|
|
|
|
|
|
|
|
|
|
|
|
#define Z7_IFACE_DECL_PURE(name) \
|
|
|
|
DECLARE_INTERFACE(name) \
|
|
|
|
{ Z7_IFACE_PURE(name) };
|
|
|
|
|
|
|
|
#define Z7_IFACE_DECL_PURE_(name, baseiface) \
|
|
|
|
DECLARE_INTERFACE_(name, baseiface) \
|
|
|
|
{ Z7_IFACE_PURE(name) };
|
2022-11-12 09:45:35 +00:00
|
|
|
|
|
|
|
#endif
|