EssOtlGetObjectReferences

入力オブジェクト・ハンドルを参照するアウトライン・メンバーの配列を戻します。この関数に続けて、EssFreeを使用してphMembersの割当てを解除する必要があります。

構文

            ESS_FUNC_M EssOtlGetObjectReferences(
            hOutline, objHandle, ulMaxCount, phMembers, pulNumMembers
            )

         
パラメータデータ型説明

hOutline

ESS_HOUTLINE_T

アウトライン・ハンドル(編集モードのみ)

objHandle

ESS_HOBJECT_T

オブジェクト・ハンドル

ulMaxCount

ESS_ULONG_T

クライアントが処理できるアウトライン・メンバーの最大カウント

phMembers

ESS_HMEMBER_T*

アウトライン・メンバーの出力配列

pulNumMembers

ESS_ULONG_T*

戻されたアウトライン・メンバーの数。

戻り値

戻り値:

         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);
}
      

関連トピック