How to get CoEdges of a loop , without using VARIANT (C++ addIn ) ?

I want to get all the CoEdges (then thecorresponding  Edges and Curves, to evaluate points on them ) from a loop. It seems simple using this code :

ILoop2* pLoop;

ICoEdge* pCoEdge,*pCoEdgeNext;

...

...

hres = pLoop->IGetFirstCoEdge(&pCoEdge);

while(S_OK == hres)

{

...... process     pCoEdge  ....

.....

hres = pCoEdge->IGetNext(&pCoEdgeNext);

pCoEdge = pCoEdgeNext;

}

But the call pCoEdge->IGetNext(&pCoEdgeNext)  always return pCoEdge itself   .... so I access only the firtst pCoEdge without stop.

I tried also to use Iloop2::IGetCoEdges(long n,ICoEdge** coEdgeList)   , but I always got one coEdge .....

( I have a solution using VARIANT, but this solution is not efficient).

Does some body has an idea ?   Thanks'

SolidworksApi macros