在VC里用ATL写了一个DCOM组件:其接口方法如下:
interface Ilocate:Iunkown
{
     HRESULT Locate([in] LPOLESTR pszItemName,[in] REFIID riidResult,[out,iid_is(riidResult)]void** ppvResult);
};
返回一个接口指针。
请问在VB里怎样调用该方法??

解决方案 »

  1.   

    VB好像用byref + 变量名调用应该就可以了
      

  2.   

    反正我在vb里测试接口函数就用byRef 传指针,不知道你那里有什么特殊要求
      

  3.   

    LPOLESTR和REFIID这几个数据类型吗?
      

  4.   

    我来帮你!
    你要返回指针!eg:
    dim result as Variant
    XXX.Locate name,riidResult,result
    就可以了!不要担心!在vb里面你的void**会变成byRef
      

  5.   

    如果想在vb中调用,必须用在自动化的数据类型
    所以OLESTR,REFIID都不行
    一个例子:
    [id(5), helpstring("method Query")] HRESULT Query([in]enum BANKNUM nBank,[in]BSTR accName,[in]BSTR strPwd,[out,retval]LONG* nBalance);调用的时候:
        Dim nBalance As Long
        nBalance = objOperator.Query(nBank, queaccName, quePwd)如果是想传对象指针,得用LPDISPATCH数据类型,或是用VARIANT封装