共有または拡張共有メンバーの元のメンバー名が戻されます。共有メンバーでない場合は、戻り値はNULLです。この関数は完全に修飾された元のメンバー名が戻されます。
構文
ESS_FUNC_M EssOtlGetOriginalMember (
hOutline, hMember, ppOriMember
);
パラメータ | データ型 | 説明 |
---|---|---|
hOutline |
ESS_HOUTLINE_T |
アウトラインのコンテキスト・ハンドル(入力)。 |
hMember |
ESS_HMEMBER_T |
メンバー名(入力)。 |
ppOriMember |
ESS_PSTR_T |
元のメンバー名(出力)。 |
備考
この関数は、編集モードとクエリー・モードのどちらでも動作します。
すべてのメンバー名が一意であるアウトラインでこの関数を使用した場合は、無効です。
重複するメンバー名が許可されるアウトラインで、渡されたメンバー・ハンドルが拡張の共有メンバーまたは標準の共有メンバーである場合には、この関数はパス式として元のメンバーを戻します。
次の階層では、[Diet].[100-10]に対応するメンバー・ハンドルをこの関数に渡すと、[200].[100-10]が戻されます。
100 100-10 200 100-10 (duplicate) Diet 100-10 (shared with [200.100-10])
戻り値
正常終了の場合は0が戻され、それ以外はエラーが戻されます。
例
Sample Basic共有メンバー100-10で戻される「元のメンバー」は[100].[100-20]であるとします。
ESS_FUNC_M ESS_GetOrigMember() { ESS_STS_T sts = 0; ESS_HOUTLINE_T hOutline; ESS_OBJDEF_T Object; ESS_APPNAME_T szAppName; ESS_DBNAME_T szDbName; ESS_OBJNAME_T szFileName; ESS_HMEMBER_T hMember = ESS_NULL, ChildMember = ESS_NULL; ESS_STR_T OriMember; 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); // sts = EssOtlOpenOutlineQuery (hCtx, &Object, &hOutline); if (!sts) { sts = EssOtlFindMember(hOutline, "Diet", &hMember); } //Get member handle for shared member "100-10" if (!sts && hMember) { sts = EssOtlGetChild(hOutline, hMember, &ChildMember); } if (!sts && ChildMember) { sts = EssOtlGetOriginalMember (hOutline, ChildMember, &OriMember); printf("Original member for shared member \"100-10\" is: %s", OriMember); } return sts; }
関連トピック