如果是atl,不能用没有的类型做参数。如果一定要用,好象需要用c++写com

解决方案 »

  1.   

    idl中SAFEARRAY应加上类型说明,如[out,retval]SAFEARRAY(BYTE)* plResult (假设是long类型,当然还可以用其它自动化标准类型或在idl中说明的自定义结构)
    idl中:
    HRESULT TestArray([in] SAFEARRAY(long) lOp1,[out,retval] SAFEARRAY(long) * plResult);.h中:
    STDMETHOD TestArray(/*[in]*/ SAFEARRAY lOp1, /*[out,retval]*/ SAFEARRAY** plResult
      

  2.   

    笔误,上句中"如[out,retval]SAFEARRAY(BYTE)* plResult"应为
    "如[out,retval]SAFEARRAY(long)* plResult"