如题,要写一个Word插件对文档进行加密,想获得内容二进制形式的stream进行处理,不知道如何获取?
或者有没有别的对Word进行加密的办法,大家有什么建议?多谢!

解决方案 »

  1.   

    通过IStorage来获得文档的流!
      

  2.   


    可是不知道如何获取IStorage。我在OnDocumentOpen的时候进行处理,但这个_Document指针得不到IStorage借口。
        hr = spDoc->QueryInterface(IID_IStorage, (void **)*spStream);
        /*取不到借口*/
    只能用StgCreateDocfile来得到吗?但是那样的话,要关掉当前doc,再打开一遍。大侠指教,必有厚报!呵呵
      

  3.   

    打错了hr = spDoc->QueryInterface(IID_IStorage, (void **)&spStorage);取到这个流就好说多了。
      

  4.   

    如果你就是要对doc文件处理的话直接把它加密不就行了
    还是你想保留doc文件格式但让别人打开后看到的是乱码
      

  5.   


    对,直接对Word加密是没问题。但我想做的是,同样的doc文件,普通的Word打开是乱码,只有装上我的插件之后才能正确解开,有什么办法吗?多谢。
      

  6.   

    关注
    如果事先在word加密时在其文件头加上加密标志, 在装上插件后,插件如何拦截数据并解密
      

  7.   

    office我做过第三方控制
    不过没做过插件
    你这个问题要是简单说对内容加密可以通过com的方式获取word内容
    然后基于二进制加密就可以了
    不过要是说通过装有你的插件的word才能读我还真不清楚怎么做
      

  8.   


    其实就是你说的办法,通过com可以得到Word内容,但都是文字、图片这些结构化的数据,而加密的话,要取原始的二进制流,不知道怎么获取。