入力オブジェクト・ハンドルを参照するアウトライン・メンバーの配列を戻します。この関数に続けて、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* |
戻されたアウトライン・メンバーの数。 |
戻り値
戻り値:
0 - 正常終了の場合
ulMaxCount、phMembers、およびpulNumMembersには値が含まれます。
エラー番号 - 失敗した場合
ulMaxCount、phMembers、およびpulNumMembersはNULLです。
例
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);
}
関連トピック