Use CDI to get grid file uri
This bit of CDO might provide useful inspiration:
referenceToGrid(int sourceGridID)
{
int destinationGridID = -1;
char griduri[8912];
char gridpath[8912];
griduri[0] = 0;
gridpath[0] = 0;
int length = 0;
if (CDI_NOERR == cdiInqKeyLen(sourceGridID, CDI_GLOBAL, CDI_KEY_REFERENCEURI, &length))
cdiInqKeyString(sourceGridID, CDI_GLOBAL, CDI_KEY_REFERENCEURI, griduri, &length);