soui 5.0.0.1
Soui5 Doc
 
Loading...
Searching...
No Matches
SObjFactory-i.h
1#ifndef __SOBJFACTORY_I__H__
2#define __SOBJFACTORY_I__H__
3#include <interface/obj-ref-i.h>
4SNSBEGIN
5
6#define MAX_OBJNAME 100
7
8typedef struct _SObjectInfo
9{
10 wchar_t szName[MAX_OBJNAME];
11 LPCWSTR szAlise;
12 int nType;
13} SObjectInfo;
14
15#undef INTERFACE
16#define INTERFACE IObjectFactory
17DECLARE_INTERFACE_(IObjectFactory, IObjRef)
18{
19 /**
20 * @brief 增加引用计数
21 * @return long - 新引用计数
22 */
23 STDMETHOD_(long, AddRef)(THIS) PURE;
24
25 /**
26 * @brief 减少引用计数
27 * @return long - 新引用计数
28 */
29 STDMETHOD_(long, Release)(THIS) PURE;
30
31 /**
32 * @brief 释放对象
33 * @return void
34 */
35 STDMETHOD_(void, OnFinalRelease)(THIS) PURE;
36
37 /**
38 * @brief 创建新对象
39 * @return IObject* - 新创建的对象指针
40 */
41 STDMETHOD_(IObject *, NewObject)(CTHIS) SCONST PURE;
42
43 /**
44 * @brief 获取基类名称
45 * @return LPCWSTR - 基类名称
46 */
47 STDMETHOD_(LPCWSTR, BaseClassName)(CTHIS) SCONST PURE;
48
49 /**
50 * @brief 获取对象信息
51 * @return SObjectInfo - 对象信息结构体
52 */
53 STDMETHOD_(SObjectInfo, GetObjectInfo)(CTHIS) SCONST PURE;
54
55 /**
56 * @brief 克隆对象工厂
57 * @return IObjectFactory* - 克隆的对象工厂指针
58 */
59 STDMETHOD_(IObjectFactory *, Clone)(CTHIS) SCONST PURE;
60};
61
62SNSEND
63#endif // __SOBJFACTORY_I__H__
Interface for reference counting.
Definition obj-ref-i.h:19