a Tbuf<n> already is a TDes. The problem you are probably having is not passing the TBuf by reference (as the & operator implies). If you do it like this it ashould be OK:
TBuf<20> my TBuf;
ret=MyFunction(myTBuf);
In some cases though you need to explicitly cast it to TDes& type, bY passing it as (TDes&) myTBuf, so the above code would change to:
TBuf<20> my TBuf;
ret=MyFunction( (TDes&) myTBuf);