Added SH_DECL_EXTERN$1, SH_DECL_EXTERN$1_void, SH_DECL_EXTERN$1_vafmt, SH_DECL_EXTERN$1_vafmt_void, SH_DECL_MANUALEXTERN$1 and SH_DECL_MANUALEXTERN$1_void

--HG--
extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/trunk%40513
This commit is contained in:
Pavol Marko 2007-10-14 16:25:39 +00:00
parent 0a47015744
commit f87f2d2df8
6 changed files with 1199 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1011,6 +1011,11 @@ SourceHook::CallClass<T> *SH_GET_CALLCLASS(T *p)
::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto = { $1, __SH_GPI(rettype), \
__SourceHook_ParamInfos_##ifacetype##ifacefunc##overload, 0, __SH_EPI, __SourceHook_ParamInfos2_##ifacetype##ifacefunc##overload };
#define SH_DECL_EXTERN$1(ifacetype, ifacefunc, attr, overload, rettype@[$2,1,$1:, param$2@]) \
int __SourceHook_FHAdd##ifacetype##ifacefunc(void *iface, ::SourceHook::ISourceHook::AddHookMode mode, bool post, \
fastdelegate::FastDelegate$1<@[$2,1,$1|, :param$2@]@[$1!=0:, @]rettype> handler); \
bool __SourceHook_FHRemove##ifacetype##ifacefunc(void *iface, bool post, \
fastdelegate::FastDelegate$1<@[$2,1,$1|, :param$2@]@[$1!=0:, @]rettype> handler);
#define SH_DECL_HOOK$1_void(ifacetype, ifacefunc, attr, overload@[$2,1,$1:, param$2@]) \
SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast<void (ifacetype::*)(@[$2,1,$1|, :param$2@]) attr> \
@ -1027,6 +1032,12 @@ SourceHook::CallClass<T> *SH_GET_CALLCLASS(T *p)
::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto = { $1, { 0, 0, 0 }, \
__SourceHook_ParamInfos_##ifacetype##ifacefunc##overload, 0, __SH_EPI, __SourceHook_ParamInfos2_##ifacetype##ifacefunc##overload };
#define SH_DECL_EXTERN$1_void(ifacetype, ifacefunc, attr, overload@[$2,1,$1:, param$2@]) \
int __SourceHook_FHAdd##ifacetype##ifacefunc(void *iface, ::SourceHook::ISourceHook::AddHookMode mode, bool post, \
fastdelegate::FastDelegate$1<@[$2,1,$1|, :param$2@]> handler); \
bool __SourceHook_FHRemove##ifacetype##ifacefunc(void *iface, bool post, \
fastdelegate::FastDelegate$1<@[$2,1,$1|, :param$2@]> handler);
#define SH_DECL_HOOK$1_vafmt(ifacetype, ifacefunc, attr, overload, rettype@[$2,1,$1:, param$2@]) \
SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast<rettype (ifacetype::*)(@[$2,1,$1|, :param$2@]@[$1!=0:, @]const char *, ...) attr> \
(&ifacetype::ifacefunc))) \
@ -1049,6 +1060,12 @@ SourceHook::CallClass<T> *SH_GET_CALLCLASS(T *p)
::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto = { $1, __SH_GPI(rettype), \
__SourceHook_ParamInfos_##ifacetype##ifacefunc##overload, 0, __SH_EPI, __SourceHook_ParamInfos2_##ifacetype##ifacefunc##overload };
#define SH_DECL_EXTERN$1_vafmt(ifacetype, ifacefunc, attr, overload, rettype@[$2,1,$1:, param$2@]) \
int __SourceHook_FHAdd##ifacetype##ifacefunc(void *iface, ::SourceHook::ISourceHook::AddHookMode mode, bool post, \
fastdelegate::FastDelegate@($1+1)<@[$2,1,$1|, :param$2@]@[$1!=0:, @]const char *, rettype> handler); \
bool __SourceHook_FHRemove##ifacetype##ifacefunc(void *iface, bool post, \
fastdelegate::FastDelegate@($1+1)<@[$2,1,$1|, :param$2@]@[$1!=0:, @]const char *, rettype> handler);
#define SH_DECL_HOOK$1_void_vafmt(ifacetype, ifacefunc, attr, overload@[$2,1,$1:, param$2@]) \
SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast<void (ifacetype::*)(@[$2,1,$1|, :param$2@]@[$1!=0:, @]const char *, ...) attr> \
(&ifacetype::ifacefunc))) \
@ -1071,6 +1088,12 @@ SourceHook::CallClass<T> *SH_GET_CALLCLASS(T *p)
::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto = { $1, { 0, 0, 0 }, \
__SourceHook_ParamInfos_##ifacetype##ifacefunc##overload, 0, __SH_EPI, __SourceHook_ParamInfos2_##ifacetype##ifacefunc##overload };
#define SH_DECL_EXTERN$1_void_vafmt(ifacetype, ifacefunc, attr, overload@[$2,1,$1:, param$2@]) \
int __SourceHook_FHAdd##ifacetype##ifacefunc(void *iface, ::SourceHook::ISourceHook::AddHookMode mode, bool post, \
fastdelegate::FastDelegate@($1+1)<@[$2,1,$1|, :param$2@]@[$1!=0:, @]const char *> handler); \
bool __SourceHook_FHRemove##ifacetype##ifacefunc(void *iface, bool post, \
fastdelegate::FastDelegate@($1+1)<@[$2,1,$1|, :param$2@]@[$1!=0:, @]const char *> handler);
#define SH_DECL_MANUALHOOK$1(hookname, vtblidx, vtbloffs, thisptroffs, rettype@[$2,1,$1:, param$2@]) \
SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \
typedef fastdelegate::FastDelegate$1<@[$2,1,$1|, :param$2@]@[$1!=0:, @]rettype> FD; \
@ -1086,6 +1109,12 @@ SourceHook::CallClass<T> *SH_GET_CALLCLASS(T *p)
::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto = { $1, __SH_GPI(rettype), \
__SourceHook_ParamInfosM_##hookname, 0, __SH_EPI, __SourceHook_ParamInfos2M_##hookname };
#define SH_DECL_MANUALEXTERN$1(hookname, rettype@[$2,1,$1:, param$2@]) \
int __SourceHook_FHMAdd##hookname(void *iface, ::SourceHook::ISourceHook::AddHookMode mode, bool post, \
fastdelegate::FastDelegate$1<@[$2,1,$1|, :param$2@]@[$1!=0:, @]rettype> handler); \
bool __SourceHook_FHMRemove##hookname(void *iface, bool post, \
fastdelegate::FastDelegate$1<@[$2,1,$1|, :param$2@]@[$1!=0:, @]rettype> handler);
#define SH_DECL_MANUALHOOK$1_void(hookname, vtblidx, vtbloffs, thisptroffs@[$2,1,$1:, param$2@]) \
SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \
typedef fastdelegate::FastDelegate$1<@[$2,1,$1|, :param$2@]> FD; \
@ -1100,6 +1129,11 @@ SourceHook::CallClass<T> *SH_GET_CALLCLASS(T *p)
::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto = { $1, { 0, 0, 0 }, \
__SourceHook_ParamInfosM_##hookname , 0, __SH_EPI, __SourceHook_ParamInfos2M_##hookname };
#define SH_DECL_MANUALEXTERN$1_void(hookname@[$2,1,$1:, param$2@]) \
int __SourceHook_FHMAdd##hookname(void *iface, ::SourceHook::ISourceHook::AddHookMode mode, bool post, \
fastdelegate::FastDelegate$1<@[$2,1,$1|, :param$2@]> handler); \
bool __SourceHook_FHMRemove##hookname(void *iface, bool post, \
fastdelegate::FastDelegate$1<@[$2,1,$1|, :param$2@]> handler);
@]

File diff suppressed because it is too large Load Diff

View File

@ -353,6 +353,9 @@ namespace
SH_DECL_HOOK0(Test, F20, const, 0, float);
SH_DECL_HOOK1_void(Test, F60, SH_NOATTRIB, 0, int&);
SH_DECL_EXTERN1(Test, F299, SH_NOATTRIB, 0, bool, const char *);
SH_DECL_EXTERN0_void(Test, F1, SH_NOATTRIB, 0);
META_RES g_F1Pre_WhatToDo;
META_RES g_F1Post_WhatToDo;

View File

@ -55,6 +55,9 @@ namespace
SH_DECL_HOOK2_void_vafmt(IGaben, Vafmt1, SH_NOATTRIB, 0, bool, int);
SH_DECL_HOOK0_vafmt(IGaben, Vafmt2, SH_NOATTRIB, 0, float);
SH_DECL_EXTERN2_void_vafmt(IGaben, Vafmt1, SH_NOATTRIB, 0, bool, int);
SH_DECL_EXTERN0_vafmt(IGaben, Vafmt2, SH_NOATTRIB, 0, float);
void EatYams0_Handler()
{
ADD_STATE(State_EatYams_Handler_Called(0));

View File

@ -64,6 +64,9 @@ namespace
SH_DECL_MANUALHOOK0(TheWall_Func3, 2, 0, 0, short);
SH_DECL_MANUALHOOK1(TheWall_Func4, 3, 0, 0, short, int);
SH_DECL_MANUALEXTERN0_void(TheWall_Func1);
SH_DECL_MANUALEXTERN1(TheWall_Func1, short, int);
typedef void (SourceHook::EmptyClass::*MFP_Func1)();
typedef void (SourceHook::EmptyClass::*MFP_Func2)(int);
typedef short (SourceHook::EmptyClass::*MFP_Func3)();