1. 使用PROP_ENTRY有何潜在的风险?
2. 用PROP_ENTRY_TYPE替换PROP_ENTRY,如何体现安全性的提升?是什么样的机制来实现?

解决方案 »

  1.   

    ATL8/ATL9依然保留了PROP_ENTRY啊。
    对你的问题不是很明白,这个和安全性有什么关系?
    #define  PROP_ENTRY(szDesc, dispid, clsid) \
    {OLESTR(szDesc), dispid, &clsid, &__uuidof(IDispatch), 0, 0, VT_EMPTY},
    #define PROP_ENTRY_TYPE(szDesc, dispid, clsid, vt) \
    {OLESTR(szDesc), dispid, &clsid, &__uuidof(IDispatch), 0, 0, vt},
    //ATL持久性
    struct ATL_PROPMAP_ENTRY
    {
    LPCOLESTR szDesc;
    DISPID dispid;
    const CLSID* pclsidPropPage;
    const IID* piidDispatch;
    DWORD dwOffsetData;
    DWORD dwSizeData;
    VARTYPE vt;
    };唯一的区别就是一个后者需要指定变量的类型
      

  2.   

    应该是 PROP_ENTRY_TYPE_EX.http://msdn.microsoft.com/zh-cn/office/ds84x0xt.aspx
      

  3.   

    http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=331374
      

  4.   

    http://msdn.microsoft.com/en-us/visualc/ee309358.aspx
    看看这个。
    为什么增加property's type会变得更安全?
      

  5.   

    《深入解析ATL》书中好像有讲这些宏的区别。
      

  6.   

    这个是内部实现可能有一些参数没有做检测或者什么其他vulnerability...
      

  7.   

    to Tr0j4n
    这个图片是什么文章里的?给个链接
      

  8.   

    http://msdn.microsoft.com/en-us/visualc/ee309358.aspx图片的链接