アウトラインの走査例(VB)

この例では、アウトライン・ツリーの使用方法を示します。TraverseTreeは再帰的アルゴリズムで、アウトライン・ツリーを走査してすべてのアウトライン・メンバーへのアクセスを提供します。順番に各メンバーを選択して、最終メンバーに到達するまでそれぞれで処理します。コード中のコメントは、追加の処理ができることを示します。

このアルゴリズムには、複数のVBのアウトラインAPIコマンドが組み込まれています。

このコードを実行する前に、APIを初期化してアウトラインを開きます。このコードの後に、アウトラインを閉じてAPIを終了します。

      TraverseTree (ESB_HOUTLINE_T)
{
   ESB_HMEMBER_T hMember;
   ESB_STS_T  sts = 0;

   sts = EsbOtlGetFirstMember(hOutline, &hMember);
   if (!sts && hMember)
     sts = TraverseTreeRecurse(hOutline, hMember); 
}

TraverseTreeRecurse(ESB_HOUTLINE_T hOutline, ESB_HMEMBER_T hMember) 
{
   ESB_MEMBERINFO_T MbrInfo;
   ESB_HMEMBER_T, hChild;
   ESB_STS_T  sts = 0;

   while (!sts && hMember)
   {
     sts = EsbOtlGetMemberInfo (hOutline, hMember, &MbrInfo);

      /* ADD THE PROCESSING FOR EACH MEMBER HERE. */

      if (!sts)
     {
       sts = EsbOtlGetChild(hOutline, hMember, &hChild);
       if (!sts && hChild)
       {
         sts = TraverseTreeRecurse(hOutline, hChild);
       }
     }
     sts = EsbOtlGetNextSibling(hOutline, hMember, &hMember);
   }
   return (sts); 
}