soui 5.0.0.1
Soui5 Doc
 
Loading...
Searching...
No Matches
SNotifyCenter-i.h
1#ifndef __SNOTIFYCENTER_I__H__
2#define __SNOTIFYCENTER_I__H__
3#include <utilities-def.h>
4#include <interface/SEvtArgs-i.h>
5#include <interface/STaskLoop-i.h>
6
7SNSBEGIN
8
9typedef void (*FunRunOnUI)(WPARAM wp, LPARAM lp);
10
11#undef INTERFACE
12#define INTERFACE INotifyCenter
13DECLARE_INTERFACE(INotifyCenter)
14{
15 /**
16 * @brief 触发一个同步通知事件
17 * @param e IEvtArgs* -- 事件对象
18 * @return void
19 * @remark 只能在UI线程中调用
20 */
21 STDMETHOD_(void, FireEventSync)(THIS_ IEvtArgs * e) PURE;
22
23 /**
24 * @brief 触发一个异步通知事件
25 * @param e IEvtArgs* -- 事件对象
26 * @return void
27 * @remark 可以在非UI线程中调用,IEvtArgs *e 必须是从堆上分配的内存,调用后使用 Release 释放引用计数
28 */
29 STDMETHOD_(void, FireEventAsync)(THIS_ IEvtArgs * e) PURE;
30
31 /**
32 * @brief 注册一个处理通知的对象
33 * @param slot const IEvtSlot* -- 事件处理对象
34 * @return BOOL
35 */
36 STDMETHOD_(BOOL, RegisterEventMap)(THIS_ const IEvtSlot *slot) PURE;
37
38 /**
39 * @brief 注销一个处理通知的对象
40 * @param slot const IEvtSlot* -- 事件处理对象
41 * @return BOOL
42 */
43 STDMETHOD_(BOOL, UnregisterEventMap)(THIS_ const IEvtSlot *slot) PURE;
44
45 /**
46 * @brief 在UI线程中执行一个任务
47 * @param pRunnable IRunnable* -- runnable执行体
48 * @param bSync BOOL -- 同步执行标志
49 * @return void
50 */
51 STDMETHOD_(void, RunOnUI)(THIS_ IRunnable * pRunnable, BOOL bSync) PURE;
52
53 /**
54 * @brief 在UI线程中执行一个任务
55 * @param fun FunRunOnUI -- callback function
56 * @param wp WPARAM -- param 1
57 * @param lp LPARAM -- param 2
58 * @param bSync BOOL -- 同步执行标志
59 * @return void
60 */
61 STDMETHOD_(void, RunOnUI2)(THIS_ FunRunOnUI fun, WPARAM wp, LPARAM lp, BOOL bSync) PURE;
62};
63
64SNSEND
65#endif // __SNOTIFYCENTER_I__H__