Here id is a string converted to long then casted to void *
Then this method is called  :
void FenI_DCAT_02_17::cbClickRna(void* fenetre, void* controle, void* Id)
{
   long * pTemp = (long*) Id ;Ok cast to long ... I can understand  
   pCast(fenetre)->clickerRna((void*) pTemp[0]);  wtf ??? note we pass the value , not the @ 
}
Let see clickerRna now ...
void FenI_DCAT_02_17::clickerRna(void* Id)
{
   CWaitCursor sablier;
   long num = (long) Id; wtf  cast to long again... ? 
   m_pAppli->restituerNotice(m_pOeRC, num);
}
Guess what in restituerNotice the parameter num is converted to ... string !!
It's the magic roundabout !