提交 7543b279 编写于 作者: 饶先宏's avatar 饶先宏

202106020611 增加表头类对象

上级 adafc968
......@@ -95,7 +95,7 @@ int dlistInsertItem(IDListVarPtr list, HOBJECT item);
/*
将list2表中的项链接到表list中,list2则清空
*/
int dlistCancat(IDListVarPtr list, IDListVarPtr list2);
int dlistConcat(IDListVarPtr list, IDListVarPtr list2);
/*
遍历表list,对表list中的每一项调用func,param作为参数传到func中
......@@ -127,6 +127,16 @@ int dlistItemCount(IDListVarPtr list);
*/
int dlistRemoveAll(IDListVarPtr list);
/*
表头对象
*/
DEFINE_GUID(CLSID_DLISTHEADER, 0x7ba10549, 0x8c42, 0x4301, 0xbb, 0xc7, 0x75, 0x5a, 0x7f, 0x8, 0x9, 0xae);
IDListVar* dlistCreate();
#define IsDListHeader(obj) objectIsClass(obj, CLSID_DLISTHEADER)
#endif
#ifdef __cplusplus
......
......@@ -91,7 +91,7 @@ int dlistInsertItem(IDListVarPtr plist, HOBJECT item)
/*
将list2表中的项链接到表list中,list2则清空
*/
int dlistCancat(IDListVarPtr plist, IDListVarPtr plist2)
int dlistConcat(IDListVarPtr plist, IDListVarPtr plist2)
{
if ( (plist == NULL) || (plist2 == NULL) ) {
return -1;
......@@ -224,3 +224,74 @@ int dlistRemoveAll(IDListVarPtr plist)
plist->__dlist_pNext = plist->__dlist_pLast = plist;
return 0;
}
/*表头对象*/
typedef struct _sDListHeader {
OBJECT_HEADER
DLIST_VARDECLARE
}sDListHeader;
OBJECT_FUNCDECLARE(dlistheader, CLSID_DLISTHEADER);
DLIST_FUNCIMPL(dlistheader, CLSID_DLISTHEADER, sDListHeader);
OBJECT_FUNCIMPL(dlistheader, sDListHeader, CLSID_DLISTHEADER);
QUERYINTERFACE_BEGIN(dlistheader, CLSID_DLISTHEADER)
QUERYINTERFACE_ITEM(IID_DLIST, IDList, sDListHeader)
QUERYINTERFACE_END
static const char* dlistheaderModuleInfo()
{
return "1.0.0-20210503.1247 Dual List Header";
}
static int dlistheaderCreate(const PARAMITEM* pParams, int paramcount, HOBJECT* pObject)
{
sDListHeader* pobj;
pobj = (sDListHeader*)malloc(sizeof(sDListHeader));
if (pobj == NULL)
return -1;
memset(pobj, 0, sizeof(sDListHeader));
*pObject = 0;
DLIST_VARINIT(pobj, dlistheader);
/*返回生成的对象*/
OBJECT_RETURN_GEN(dlistheader, pobj, pObject, CLSID_DLISTHEADER);
return EIID_OK;
}
static void dlistheaderDestroy(HOBJECT object)
{
sDListHeader* pobj;
pobj = (sDListHeader*)objectThis(object);
free(pobj);
}
/*
功能:判断对象是否是一个有效对象
参数:
object -- 对象数据指针
返回值:
0 -- 对象是无效的
1 -- 对象是有效的
*/
static int dlistheaderValid(HOBJECT object)
{
return 1;
}
IDListVar* dlistCreate()
{
int ret;
IDListVar* pListHeader;
A_u_t_o_registor_dlistheader();
ret = objectCreateEx(CLSID_DLISTHEADER, NULL, 0, IID_DLIST, (const void**)&pListHeader);
if (ret == 0)
return pListHeader;
else
return NULL;
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册