soui 5.0.0.1
Soui5 Doc
 
Loading...
Searching...
No Matches
SouiFactory.h
1#ifndef __SOUIFACTORY__H__
2#define __SOUIFACTORY__H__
3#include <interface/SFactory-i.h>
4#include <helper/obj-ref-impl.hpp>
5
6SNSBEGIN
7
8class SOUI_EXP SouiFactory : public TObjRefImpl<ISouiFactory> {
9 public:
10 SouiFactory(void);
11 ~SouiFactory(void);
12
13 public:
14 /**
15 * @brief 创建应用程序对象
16 * @param pRenderFac 渲染工厂对象
17 * @param hInst 模块句柄
18 * @param pszHostClassName 窗口类名
19 * @param bImeApp 是否启用输入法支持
20 * @return IApplication* 应用程序对象
21 */
22 STDMETHOD_(IApplication *, CreateApp)(THIS_ IRenderFactory *pRenderFac, HMODULE hInst, LPCTSTR pszHostClassName DEF_VAL(_T("SOUIHOST")), BOOL bImeApp DEF_VAL(FALSE)) OVERRIDE;
23
24 /**
25 * @brief 创建原生窗口对象
26 * @return INativeWnd* 原生窗口对象
27 */
28 STDMETHOD_(INativeWnd *, CreateNativeWnd)(THIS) OVERRIDE;
29
30 /**
31 * @brief 创建宿主窗口对象
32 * @param pszResID 资源ID
33 * @return IHostWnd* 宿主窗口对象
34 */
35 STDMETHOD_(IHostWnd *, CreateHostWnd)(THIS_ LPCTSTR pszResID DEF_VAL(NULL)) OVERRIDE;
36
37 /**
38 * @brief 创建宿主对话框对象
39 * @param pszResID 资源ID
40 * @return IHostDialog* 宿主对话框对象
41 */
42 STDMETHOD_(IHostDialog *, CreateHostDialog)(THIS_ LPCTSTR pszResID DEF_VAL(NULL)) OVERRIDE;
43
44 /**
45 * @brief 创建ANSI字符串对象
46 * @param pszSrc 源字符串
47 * @return IStringA* ANSI字符串对象
48 */
49 STDMETHOD_(IStringA *, CreateStringA)(THIS_ LPCSTR pszSrc) OVERRIDE;
50
51 /**
52 * @brief 创建宽字符字符串对象
53 * @param pszSrc 源字符串
54 * @return IStringW* 宽字符字符串对象
55 */
56 STDMETHOD_(IStringW *, CreateStringW)(THIS_ LPCWSTR pszSrc) OVERRIDE;
57
58 /**
59 * @brief 创建XML文档对象
60 * @return IXmlDoc* XML文档对象
61 */
62 STDMETHOD_(IXmlDoc *, CreateXmlDoc)(THIS) OVERRIDE;
63
64 /**
65 * @brief 创建资源提供者对象
66 * @param resType 内置资源类型
67 * @return IResProvider* 资源提供者对象
68 */
69 STDMETHOD_(IResProvider *, CreateResProvider)(THIS_ BUILTIN_RESTYPE resType) OVERRIDE;
70
71 /**
72 * @brief 创建事件槽对象
73 * @param fun 回调函数
74 * @param ctx 上下文指针
75 * @return IEvtSlot* 事件槽对象
76 */
77 STDMETHOD_(IEvtSlot *, CreateFuncSlot)(THIS_ FunCallback fun, void *ctx) OVERRIDE;
78
79 /**
80 * @brief 创建菜单对象
81 * @param hMenu 菜单句柄
82 * @return IMenu* 菜单对象
83 */
84 STDMETHOD_(IMenu *, CreateMenu)(THIS_ HMENU hMenu DEF_VAL(0)) OVERRIDE;
85
86 /**
87 * @brief 创建扩展菜单对象
88 * @return IMenuEx* 扩展菜单对象
89 */
90 STDMETHOD_(IMenuEx *, CreateMenuEx)(THIS) OVERRIDE;
91
92 /**
93 * @brief 创建定时器对象
94 * @param pEvtSlot 事件槽对象
95 * @return ITimer* 定时器对象
96 */
97 STDMETHOD_(ITimer *, CreateTimer)(THIS_ IEvtSlot *pEvtSlot) OVERRIDE;
98
99 /**
100 * @brief 创建动画组对象
101 * @return IAnimatorGroup* 动画组对象
102 */
103 STDMETHOD_(IAnimatorGroup *, CreateAnimatorGroup)(THIS) OVERRIDE;
104};
105
106SNSEND
107#endif // __SOUIFACTORY__H__
Template class implementing the IObjRef interface.