请教如何得到指向 IShellDispatch4 接口的指针?

解决方案 »

  1.   

    IUnknown::QueryInterface
    通过对象实例指针查询。
    若先前并不存在对象实例可先
    CoCreateInstance.
    然后查询。
    或者直接CoCreateInstance的时候指定interface GUID.
      

  2.   

    是啊,如果用QueryInterface是使用哪个接口的QueryInterface,
    这个接口又是如何创建的呢?如果用CoCreateInstance,具体的参数
    又是什么呢?
      

  3.   

    IUnknown* lpUnk;
    IShellDispatch4* lpDisp;CoCreateInstance( CLSID_XXXXX, NULL, CLSCTX_SERVER, IID_IUnknown, (void**)&lpUnk );if( SUCCEEDED(lpUnk->QueryInterface(__uuidof(IShellDispatch4), NULL, (void**)&lpDisp) )
    {
      lpDisp->Release()
    }lpUnk->Release();
      

  4.   

    可以试试:IShellDispatch* lpDisp;
    IShellDispatch4* lpDisp4;CoCreateInstance( CLSID_Shell, NULL, CLSCTX_SERVER, IID_IDispatch, (void**)&lpDisp );if( SUCCEEDED(lpUnk->QueryInterface(__uuidof(IShellDispatch4), NULL, (void**)&lpDisp4) )
    {
      lpDisp->Release()
    }lpUnk->Release();我不保证能用!
      

  5.   

    在win2000+vc.net下已经试过了,返回的lpDisp4是NULL!
    另外应该是 SUCCEEDED(lpDisp->QueryInterface(__uuidof(IShellDispatch4),  (void**)&lpDisp4) 吧?lpUnk就没
    赋过值。
      

  6.   

    对不起,我大概帮不上忙了。你可以尝试到 CodeGuru 或 MSDN 等讨论组去查询一下。
      

  7.   

    FFXI(黑) 暂且留步,请问MSDN的讨论区如何上,只有微软的用户
    才能上吗?