EssOtlFreeStructure

EssOtlGetAttributeInfo())およびEssOtlGetMemberInfo()により文字列型の属性情報用に動的に割り当てられたメモリーを解放します。

構文


      
      
パラメータデータ型説明

hOutline;

ESS_HOUTLINE_T

アウトラインのハンドル

structId;

ESS_ULONG_T

構造体に対する次の定数識別子のいずれかになります:

  • ESS_DT_STRUCT_ATTRIBUTEINFO

  • ESS_DT_STRUCT_ATTRSPECS

  • ESS_DT_STRUCT_MBRINFO

  • ESS_DT_STRUCT_TIGENINFO

count;

ESS_ULONG_T

構造体の数

structPtr;

ESS_PVOID_T

メモリーへのポインタ

備考

EssOtlGetMemberInfo()を呼び出した後に、必ず関数EssOtlFreeStructure()を呼び出してください。

         void  ESS_OtlGetAssociatedAttributes()
{
ESS_STS_T        sts = ESS_STS_NOERR;
ESS_SHORT_T      index;
ESS_USHORT_T     count;
ESS_OBJDEF_T     Object;
ESS_APPNAME_T    szAppName;
ESS_DBNAME_T     szDbName;
ESS_OBJNAME_T    szFileName;
ESS_HOUTLINE_T   hOutline;
ESS_PPHMEMBER_T  hMember;
ESS_PPHMEMBER_T  phMember;
ESS_PPMBRINFO_T  phMemberInfo;
ESS_MBRNAME_T    mbrName;

memset(&Object, '\0', sizeof(Object));
Object.hCtx = hCtx;
Object.ObjType = ESS_OBJTYPE_OUTLINE;
strcpy(szAppName, "Sample");
strcpy(szDbName, "Basic");
strcpy(szFileName, "Basic");
Object.AppName = szAppName;
Object.DbName = szDbName;
Object.FileName = szFileName;

sts = EssOtlOpenOutline(hCtx, &Object, ESS_TRUE, ESS_TRUE, &hOutline);
printf("EssOtlOpenOutline() sts: %ld\n",sts);

sts = EssOtlFindMember(hOutline, "100-10", &hMember);
printf("EssOtlFindMember() sts: %ld\n",sts);

sts = EssOtlGetAssociatedAttributes(hOutline, hMember, &count, &phMember);
printf("EssOtlGetAssociatedAttributes() sts: %ld\n",sts);

/* Allocate memory for an array of memberinfo structs */
sts = EssAlloc(hInst,count * (sizeof(ESS_MBRINFO_T)), (ESS_PPVOID_T)&phMemberInfo);
if (!sts)
{
   for(index = 0; index < count; index++)
   {
      /* Step through array of member handles, and assign member */
      sts = EssOtlGetMemberInfo(hOutline,phMember[index],&phMemberInfo[index]);
      printf("EssOtlGetMemberInfo() sts: %ld\n",sts);
      strcpy(mbrName,phMemberInfo[index]->szMember);
      printf("Associated attribute member name #%d is: %s\n",(index + 1),mbrName);
   }
   EssFree(hInst, phMember);
   EssOtlFreeStructure(hOutline, ESS_DT_STRUCT_MBRINFO, 1, phMemberInfo);
}

printf("\n  Attributes associated :%ld\n\n", count);
}
      

関連トピック