搞不懂,这样的函数:status = (*pHndl->pFncTable->pRun)(pHndl, pPrm)是如何一回事

搞不懂,这样的函数:status = (*pHndl->pFncTable->pRun)(pHndl, pPrm)是怎么一回事?
搞不懂,这样的函数:status   =   (*pHndl-> pFncTable-> pRun)(pHndl,   pPrm)

    是如何定义,运用的   ?

      哪里有这样类似的例子?

------解决方案--------------------
猜测
pHndl是结构体或者类指针,
pFncTable又是一个结构体或者类指针
pRun函数指针
(pHndl, pPrm)函数的两个参数
------解决方案--------------------
比如:

#include <stdio.h>
#include <stdlib.h>

int fun(struct Handl *pHndl , int n)
{
return n> 0;
}

struct Handl
{
struct FncTable *pFncTable;
/*... other members*/
};


struct FncTable
{
int (*pRun)(struct Handl *, int);
void (*pExit)(void);
/*... other members*/
};
int main()
{
int status, pPrm=2;
struct Handl h1, *pHndl;
struct FncTable ftable;
ftable.pRun=fun;

h1.pFncTable=&ftable;
pHndl=&h1;
status = (*pHndl-> pFncTable-> pRun)(pHndl, pPrm);
printf( "status = %d\n ", status);
system( "pause ");
return 0;
}