That works, but you might be able to add them more easily by just modifying the table:
static FINDINRECORD s_arrayTreeData[] =
{
{ ". (current file's directory)", '"'MFFIND_BUFFER_DIR'"', '<sources>' },
{ "Other directory (prompt)", WHERE_PROMPT, '<sources>' },
For example add these lines:
{ "Current Function", '"<Current Function>"', '<sources>' },
{ "Current Buffer", '"'MFFIND_BUFFER'"', '<sources>' },
And so forth.
The s_arrayTreeData table should be the only thing you need to modify.
You should not need to modify any macro functions at all.