Antonio, creo que esto es incorrecto:
_retl( ( LONG ) lRet );
Deberia ser;
_retl( ( BOOL ) lRet );
es mas, el cast aqui es rebundante, ya que tanto la variable lRet, es inicializar a bool , y ademas, previamente ya realizas el cast en el
retorno de la funcion, asi que quedaria mas elegante :
_retl( lRet );
Saludos
Rafa Carmona