soui 5.0.0.1
Soui5 Doc
 
Loading...
Searching...
No Matches
SScriptModule-i.h
Go to the documentation of this file.
1/**
2 * Copyright (C) 2014-2050
3 * All rights reserved.
4 *
5 * @file SScriptModule-i.h
6 * @brief
7 * @version v1.0
8 * @author SOUI group
9 * @date 2014/08/02
10 *
11 * Describe
12 */
13
14#ifndef __SSCRIPTMODULE_I__H__
15#define __SSCRIPTMODULE_I__H__
16#include <utilities-def.h>
17#include <interface/obj-ref-i.h>
18#include <interface/SEvtArgs-i.h>
19#include <interface/SMsgLoop-i.h>
20#include <stdint.h>
21
22SNSBEGIN
23
24/*!
25\brief
26 Abstract interface required for all scripting support modules to be used with
27 the SOUI system.
28*/
29#undef INTERFACE
30#define INTERFACE IScriptModule
31DECLARE_INTERFACE_(IScriptModule, IObjRef)
32{
33 /**
34 * @brief 增加引用计数
35 * @return long - 新引用计数
36 */
37 STDMETHOD_(long, AddRef)(THIS) PURE;
38
39 /**
40 * @brief 减少引用计数
41 * @return long - 新引用计数
42 */
43 STDMETHOD_(long, Release)(THIS) PURE;
44
45 /**
46 * @brief 释放对象
47 * @return void
48 */
49 STDMETHOD_(void, OnFinalRelease)(THIS) PURE;
50
51 /**
52 * @brief 获取脚本引擎的指针
53 * @return void* - 脚本引擎的指针
54 */
55 STDMETHOD_(void *, GetScriptEngine)(THIS) PURE;
56
57 /**
58 * @brief 获取脚本模块的标识字符串
59 * @return LPCSTR - 标识字符串
60 */
61 STDMETHOD_(LPCSTR, getIdentifierString)(CTHIS) SCONST PURE;
62
63 /**
64 * @brief 执行脚本文件
65 * @param pszScriptFile - 脚本文件名
66 * @return BOOL - 成功返回TRUE,失败返回FALSE
67 */
68 STDMETHOD_(BOOL, executeScriptFile)(THIS_ LPCSTR pszScriptFile) PURE;
69
70 /**
71 * @brief 执行脚本缓冲区
72 * @param buff - 脚本缓冲区
73 * @param sz - 缓冲区大小
74 * @return void
75 */
76 STDMETHOD_(void, executeScriptBuffer)(THIS_ LPCSTR buff, size_t sz) PURE;
77
78 /**
79 * @brief 执行脚本化的事件处理函数
80 * @param handler_name - 处理函数名称
81 * @param pEvt - 事件参数
82 * @return BOOL - 事件被处理返回TRUE,否则返回FALSE
83 */
84 STDMETHOD_(BOOL, executeScriptedEventHandler)(THIS_ LPCSTR handler_name, IEvtArgs * pEvt) PURE;
85
86 /**
87 * @brief 执行主函数
88 * @param hInst - 实例句柄
89 * @param pszWorkDir - 工作目录
90 * @param pszArgs - 额外参数
91 * @return int - 返回代码
92 */
93 STDMETHOD_(int, executeMain)(THIS_ HINSTANCE hInst, LPCSTR pszWorkDir, LPCSTR pszArgs) PURE;
94
95 /**
96 * @brief 获取空闲处理器
97 * @return IIdleHandler* - 空闲处理器指针
98 */
99 STDMETHOD_(IIdleHandler *, getIdleHandler)(THIS) PURE;
100};
101
102#undef INTERFACE
103#define INTERFACE IScriptFactory
104DECLARE_INTERFACE_(IScriptFactory, IObjRef)
105{
106 /**
107 * @brief 增加引用计数
108 * @return long - 新引用计数
109 */
110 STDMETHOD_(long, AddRef)(THIS) PURE;
111
112 /**
113 * @brief 减少引用计数
114 * @return long - 新引用计数
115 */
116 STDMETHOD_(long, Release)(THIS) PURE;
117
118 /**
119 * @brief 释放对象
120 * @return void
121 */
122 STDMETHOD_(void, OnFinalRelease)(THIS) PURE;
123
124 /**
125 * @brief 创建脚本模块
126 * @param ppScriptModule - 脚本模块指针的指针
127 * @return HRESULT
128 */
129 STDMETHOD_(HRESULT, CreateScriptModule)(THIS_ IScriptModule * *ppScriptModule) PURE;
130};
131
132SNSEND
133
134#endif // __SSCRIPTMODULE_I__H__
Interface for handling idle time.
Definition SMsgLoop-i.h:29
Interface for reference counting.
Definition obj-ref-i.h:19