In the following example shows how to get column information
short sCount = 0;
short *pIndex = NULL;
short sSrcColCount = 0;
int iBufLen = 0;
DP_MYCTRL_DEF *pMyCtrlBlk = NULL;
pMyCtrlBlk = (DP_MYCTRL_DEF*)pCtrlBlk->pExt;
if(NULL == pMyCtrlBlk)
{
return MY_ERR_MYCTRLBLK_NOT_FOUND;
}
switch(sRequest)
{
{
sSrcColCount = pCtrlBlk->sSrcColCount;
if(NULL == ptr)
{
*pBufLen = (int)(sSrcColCount * sizeof(short));
}
else
{
if(*pBufLen < (int)(sSrcColCount * sizeof(short)))
{
return MY_ERR_GETINFO_BUFFER_SHORT;
}
pSrcCol = &pCtrlBlk->SrcCol;
if(pSrcCol == NULL)
{
return ODPPFAILURE;
}
pIndex = (short *)ptr;
for(sCount = 0;
sCount < pCtrlBlk->sSrcColCount && (pIndex != NULL);
sCount++)
{
pIndex++;
pSrcCol = pSrcCol->
pNext;
iBufLen = iBufLen + (int)sizeof(short);
}
*pBufLen = iBufLen;
}
}
break;
{
if(NULL == ptr)
{
*pBufLen = sizeof(short);
}
else
{
if(*pBufLen < sizeof(short))
{
return MY_ERR_GETINFO_BUFFER_SHORT;
}
pIndex = (short *)ptr;
*pIndex = pMyCtrlBlk->sDestColIndex;
*pBufLen = sizeof(short);
}
}
break;
default :
retval = MY_INFO_REQUEST_NOT_SUPPORTED;
break;
}
return retval;