Returns an array of outline members referencing the input object handle. This function should be followed by deallocing phMembers using EssFree.
Syntax
ESS_FUNC_M EssOtlGetObjectReferences(hOutline, objHandle, ulMaxCount, phMembers, pulNumMembers)
Parameter | Data Type | Description |
---|---|---|
hOutline | ESS_HOUTLINE_T | Outline handle (Edit mode only) |
objHandle | ESS_HOBJECT_T | Object handle |
ulMaxCount | ESS_ULONG_T | Count of max outline members that the client can handle |
phMembers | ESS_HMEMBER_T* | Output array of outline members |
pulNumMembers | ESS_ULONG_T* | Number of outline members returned. |
Return Value
Returns:
0—If successful
ulMaxCount, phMembers, and pulNumMembers contain values.
Error number—If unsuccessful
ulMaxCount, phMembers, and pulNumMembers are NULL.
Example
void TestGetObjectReferences()
{
ESS_STS_T sts = ESS_STS_NOERR;
ESS_HOUTLINE_T hOutline = ESS_NULL;
ESS_OBJDEF_T Object;
ESS_HOBJECT_T hObjHandle = ESS_NULL;
ESS_ULONG_T ulMaxCount;
ESS_HMEMBER_T hMembers[256];
ESS_ULONG_T ulNumMembers, i;
ESS_OBJECT_TYPES objType;
ESS_STR_T objName;
ESS_PMBRINFO_T pMbrInfo;
memset(&Object, '\0', sizeof(Object));
Object.hCtx = hCtx;
Object.ObjType = ESS_OBJTYPE_OUTLINE;
Object.AppName = szAppName;
Object.DbName = szDbName;
Object.FileName = szFileName;
sts = EssOtlOpenOutline(hCtx, &Object,
ESS_TRUE, ESS_TRUE, &hOutline);
/* Get the member(s) of the object that is referenced */
objType = OBJECT_SMARTLIST;
objName = "SmartList1";
sts = EssOtlFindObject(hOutline, objType, objName, &hObjHandle);
ulMaxCount = 256;
sts = EssOtlGetObjectReferences(hOutline, hObjHandle,
ulMaxCount, hMembers, &ulNumMembers);
printf("EssOtlGetObjectRefrences sts: %ld\n",sts);
for(i = 0; i < ulNumMembers; i++)
{
sts = EssOtlGetMemberInfo(hOutline, hMembers[i], &pMbrInfo);
if(pMbrInfo)
printf("\tMember: %s\n", pMbrInfo->szMember);
}
sts = EssUnlockObject(hCtx, Object.ObjType,
Object.AppName, Object.DbName, Object.FileName);
sts = EssOtlCloseOutline(hOutline);
}
See Also