查看下ApplicationEventsX之类相关的资料http://support.microsoft.com/kb/183599

解决方案 »

  1.   

    这个更好http://support.microsoft.com/kb/309294/zh-cn
      

  2.   

    处理DocumentBeforeSave事件
    http://support.microsoft.com/viewkb/viewkb.aspx?contentid=2193786
      

  3.   

    终于解决了,其实接口DocumentBeforeSave早已经写好,只是一直不调用,原来是一个参数设置不对,解决方法如下:
    0x08这个参数,写成其他的都没用,可是不知道为什么会是8
    SINK_ENTRY_INFO(6, __uuidof(MSWORD::ApplicationEvents2),0x08, OnDocumentBeforeSave, &OnDocumentBeforeSaveInfo)
    疑惑:
    下面是IApplicationEvents2的函数,可以看到DocumentOpen 在4,按道理DocumentBeforeSave 应该是7啊。
    virtual HRESULT __stdcall Startup ( ) = 0;
        virtual HRESULT __stdcall Quit ( ) = 0;
        virtual HRESULT __stdcall DocumentChange ( ) = 0;
        virtual HRESULT __stdcall DocumentOpen (
            struct _Document * Doc ) = 0;
        virtual HRESULT __stdcall DocumentBeforeClose (
            struct _Document * Doc,
            VARIANT_BOOL * Cancel ) = 0;
        virtual HRESULT __stdcall DocumentBeforePrint (
            struct _Document * Doc,
            VARIANT_BOOL * Cancel ) = 0;
        virtual HRESULT __stdcall DocumentBeforeSave (
        .....不过问题已经解决了,谢谢你们。