DelegateArg.hpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // DelegateArg.h
  2. #pragma once
  3. #include "XDWRTTI.hpp"
  4. #ifndef _DELEGATEARG_DLL
  5. #define DELEGATEARG_API _declspec(dllimport)
  6. #else
  7. #define DELEGATEARG_API _declspec(dllexport)
  8. #endif
  9. //-----------------------------------------------------------------------------
  10. // DelegateArgs
  11. //-----------------------------------------------------------------------------
  12. //
  13. // Arguments of a Delegate
  14. // You are supposed to derive this class to include
  15. // more informations regarding the delegate
  16. class DELEGATEARG_API DelegateArgs : public XDWObject
  17. {
  18. typedef XDWObject inherited;
  19. DECLARE_RTTI (DelegateArgs)
  20. public:
  21. DelegateArgs () { }
  22. virtual ~DelegateArgs () { }
  23. };
  24. //-----------------------------------------------------------------------------
  25. // EventArgs_Null
  26. // 定义这个空的参数类型, 是告诉使用者, 无论是调用方还是接受方, 都不关心参数类型, 即使是 nullptr 也不在乎
  27. // 任何 DelegateArgs 的继承类, 都不能继承自这个类
  28. // 所有监听者, 最好不要试图引用参数, 即最好写成如下格式
  29. // OnXXX (const void * sender, EventArgs_Null *)
  30. //-----------------------------------------------------------------------------
  31. class DELEGATEARG_API EventArgs_Null : public DelegateArgs
  32. {
  33. typedef DelegateArgs inherited;
  34. DECLARE_RTTI (EventArgs_Null)
  35. };