我想在Com方法中传入一个变体类型数组,在ATL中如何实现?

解决方案 »

  1.   

    To wei97081116(韦小宝) 
    大哥,能不能给一个例子呢?先谢了:)
      

  2.   

    VARIANT* 应该可以吧,传递数组首指针。
    method(VARIANT* pVar,...)
      

  3.   

    MSDN上很多HRESULT PASCAL __export CPoly::EnumPoints(IEnumVARIANT FAR* FAR* ppenum)
    {
      unsigned int i;
      HRESULT hresult;
      VARIANT var;
      SAFEARRAY FAR* psa;
      CEnumPoint FAR* penum;
      POINTLINK FAR* 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;
    }