如果给RichEdit添加一个自定义的OLE对象,那么复制时,这个OLE对象怎么处理,或者说StreamOut的时候,如何将这个OLE的对象输出呢(StreamIn的时候就可以解析出来)。研究了一段时间了,实在找不到相应的接口。
求大神回复RichEditOLE复制StreamOut

解决方案 »

  1.   

    virtual HRESULT _stdcall SetClientSite(IOleClientSite *pClientSite);
    virtual HRESULT _stdcall GetClientSite(IOleClientSite **ppClientSite);
    virtual HRESULT _stdcall SetHostNames(LPCOLESTR szContainerApp, LPCOLESTR szContainerObj);
    virtual HRESULT _stdcall Close(DWORD dwSaveOption);
    virtual HRESULT _stdcall SetMoniker(DWORD dwWhichMoniker, IMoniker *pmk);
    virtual HRESULT _stdcall GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk);
    virtual HRESULT _stdcall InitFromData(IDataObject *pDataObject, BOOL fCreation, DWORD dwReserved);
    virtual HRESULT _stdcall GetClipboardData(DWORD dwReserved, IDataObject **ppDataObject);
    virtual HRESULT _stdcall DoVerb(LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect);
    virtual HRESULT _stdcall EnumVerbs(IEnumOLEVERB **ppEnumOleVerb);
    virtual HRESULT _stdcall Update(void);
    virtual HRESULT _stdcall IsUpToDate(void);
    virtual HRESULT _stdcall GetUserClassID(CLSID *pClsid);
    virtual HRESULT _stdcall GetUserType(DWORD dwFormOfType, LPOLESTR *pszUserType);
    virtual HRESULT _stdcall SetExtent(DWORD dwDrawAspect, SIZEL *psizel);
    virtual HRESULT _stdcall GetExtent(DWORD dwDrawAspect, SIZEL *psizel);
    virtual HRESULT _stdcall Advise(IAdviseSink *pAdvSink, DWORD *pdwConnection);
    virtual HRESULT _stdcall Unadvise(DWORD dwConnection);
    virtual HRESULT _stdcall EnumAdvise(IEnumSTATDATA **ppenumAdvise);
    virtual HRESULT _stdcall GetMiscStatus(DWORD dwAspect, DWORD *pdwStatus);
    virtual HRESULT _stdcall SetColorScheme(LOGPALETTE *pLogpal);OLE的接口都在这里了,但是哪个合用呢?
      

  2.   

    不要使用richedit的默认的处理逻辑,自己写复制的代码,然后以标准的HTML Format格式写到剪切板中,这样到飞信、WORD、飞秋中都能粘贴。由于QQ不解析HTML Format格式,它只解析它自己的QQ_Unicode_RichEdit_Format格式,如果要到QQ中粘贴,则要写入QQ的QQ_Unicode_RichEdit_Format格式。至于查看QQ等使用哪些格式,使用系统自带的clipbrd或者网上的InsideClipboard来查看。至于格式是怎么组织的,只要写个测试程序,直接获取QQ制定格式的剪切板数据即可看到了。
      

  3.   

    ole如果是图片对象,则只要获取对应的图片路径,按指定的格式写到剪切板中就可以了
      

  4.   

    分数给错了,麻烦chenlycly   回复一次 http://bbs.csdn.net/topics/390491064 帖子