// DelegateArg.h #pragma once #include "XDWRTTI.hpp" #ifndef _DELEGATEARG_DLL #define DELEGATEARG_API _declspec(dllimport) #else #define DELEGATEARG_API _declspec(dllexport) #endif //----------------------------------------------------------------------------- // DelegateArgs //----------------------------------------------------------------------------- // // Arguments of a Delegate // You are supposed to derive this class to include // more informations regarding the delegate class DELEGATEARG_API DelegateArgs : public XDWObject { typedef XDWObject inherited; DECLARE_RTTI (DelegateArgs) public: DelegateArgs () { } virtual ~DelegateArgs () { } }; //----------------------------------------------------------------------------- // EventArgs_Null // 定义这个空的参数类型, 是告诉使用者, 无论是调用方还是接受方, 都不关心参数类型, 即使是 nullptr 也不在乎 // 任何 DelegateArgs 的继承类, 都不能继承自这个类 // 所有监听者, 最好不要试图引用参数, 即最好写成如下格式 // OnXXX (const void * sender, EventArgs_Null *) //----------------------------------------------------------------------------- class DELEGATEARG_API EventArgs_Null : public DelegateArgs { typedef DelegateArgs inherited; DECLARE_RTTI (EventArgs_Null) };