QueryInterface(IID_IConnnettionPointContainer,&pConnectionPointContainer)
和FindConnectionPoint都正常,但是在advise的时候失败,把返回值formatmessage得到的提示是"尚未实现”,请问高手,这里的尚未实现是什么没有实现,3Q!

解决方案 »

  1.   

    你客户端没有实现这个连接点接口么,没有实现的话,server那边就不能回调回来了
      

  2.   

    尚未实现?应该是只写了个空方法,里面直接返回的E_NOTIMPL?
      

  3.   

    返回值的确为E_NOTIMPL.
    我不知道它的尚未实现是指哪一部分没有实现:1.服务端,2.客户端的sink,3.advise函数。
    服务端是微软的,不可能没实现吧,客户端sink也有,跟平时写的sink一样啊,真是奇怪。
      

  4.   

    我怀疑你接口没有注册,你的SERVER不是你写的,所以这个接口可能没注册上,他找不到。你在你的app的 initinstance中加入连接点接口注册,把下面code中的B2E8C714-4DD4-4e84-9D6A-19695BB54B7E和ISampleSink替换成你的接口ID和接口名。
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    HKEY key;
        
        // Open HKEY_CLASSES_ROOT
        RegOpenKey(HKEY_CLASSES_ROOT, _T("Interface"), &key);
        
        // Set up the key
        RegSetValue( key,
            _T("{B2E8C714-4DD4-4e84-9D6A-19695BB54B7E}"), REG_SZ,
            _T("ISampleSink"), 0);
        RegSetValue( key,
            _T("{B2E8C714-4DD4-4e84-9D6A-19695BB54B7E}\\ProxyStubClsid"),
            REG_SZ, _T("{00020420-0000-0000-C000-000000000046}"), 0);
        RegSetValue( key,
            _T("{B2E8C714-4DD4-4e84-9D6A-19695BB54B7E}\\ProxyStubClsid32"),
            REG_SZ, _T("{00020420-0000-0000-C000-000000000046}"), 0);
        
        RegCloseKey(key);
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      

  5.   

    服务端是微软的:你了解它的注册模式吗?组件的套间模式和你的EXE环境相符吗.原因很多的