我想用ocx返回一个int型数组..具体步骤应该怎么做.....

解决方案 »

  1.   

    参照如下代码自己改吧:
    bool CMrDbAPI::convert(const CStringArray& source, SAFEARRAY __RPC_FAR * __RPC_FAR *dest)
    {
        if(dest==NULL)
        {
            return false;
        }
    *dest = SafeArrayCreateVector(VT_VARIANT, 0, source.GetSize());
    if(*dest==NULL)
        {
            return false;
        }
    for (int i= 0;i<source.GetSize();i++)
    {
            HRESULT hr=S_OK;
    long ix[1];
    ix[0] = i;        VARIANT myVar;
            VariantInit(&myVar);   
            V_VT(&myVar)=VT_BSTR;   
     
    if(!convert(source[i], &myVar.bstrVal))
            {
                return false; 
            }          hr=SafeArrayPutElement(*dest, ix, &myVar);
                    
            SysFreeString(myVar.bstrVal);        if(!SUCCEEDED(hr))
            {
                return false; 
            }
    }
      
        return true;
    }