请问如何写才能使 com 返回数组给vb使用?
com能返回数组吗?

解决方案 »

  1.   

    用定义的标准类型,
    返回数租用VARINT
      

  2.   

    safearray 这个问题问了无数次,去搜索
      

  3.   

    STDMETHODIMP CYourClass::VBVarray(SAFEARRAY** pSA)
    {
             LPBYTE lpByte=NULL;
    ::SafeArrayAccessData(
    *pSA, //safearray vector from above
    (LPVOID*)&lpByte); //pointer
    lpByte[0]=12;
    lpByte[1]=34;
    //此处你可以操作你的数组
    ::SafeArrayUnaccessData(
    *pSA); //safearray vector from above return S_OK;
    }
      

  4.   

    IDL中这样定义
    [id(1), helpstring("method VBVarray")] HRESULT VBVarray([in,out] SAFEARRAY(BYTE) *pSA);