经分析,得出如下结论:
Service: Function 与name为一对一的关系,可以凭借name在全局范围内调用function
Event: Event与 name为 1:1的关系,但是Event和Fucntion之间为n:1的关系。
每调用一次HookEvent(name, func)则将func加到名为name的event的队列的末尾。
每调用一次CallHookSubscriber (int hookId,WPARAM wParam,LPARAM lParam) 则调用id为hookid的Event所关联的所有函数。
通常,对于Event的调用时很少的,总集中在某代码的某几处。而对于HookEvent的调用则明显多一些。
注: Event 队列和 Subscriber 队列构成二维列表。