EssOtlGetObjectReferences

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)
ParameterData TypeDescription

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:

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