HRESULT PASCAL __export CPoly::EnumPoints(IEnumVARIANT ** ppenum)
{
   unsigned int i;
   HRESULT hresult;
   VARIANT var;
   SAFEARRAY * psa;
   CEnumPoint * penum;
   POINTLINK * ppointlink;
   SAFEARRAYBOUND rgsabound[1];
   rgsabound[0].lLbound = 0;
   rgsabound[0].cElements = m_cPoints;
   psa = SafeArrayCreate(VT_VARIANT, 1, rgsabound);
   if(psa == NULL){hresult = ReportResult(0, E_OUTOFMEMORY, 0, 0);
      goto LError0}   // Code omitted here for brevity.LError0:;
   return hresult;
}
看MSDN.