如果要使用ATL编写COM组建,对于ATL中的一些模版和宏,需要了解到什么程度?比如:
class ATL_NO_VTABLE CUtility : 
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CUtility, &CLSID_Utility>,
public ISupportErrorInfo,
public IDispatchImpl<IUtility, &IID_IUtility, &LIBID_Lib>
{
....中的CComObjectRootEx<CComSingleThreadModel>,CComCoClass<CUtility和 ISupportErrorInfo&CLSID_Utility>还有DECLARE_REGISTRY_RESOURCEID(IDR_UTILITY)DECLARE_PROTECT_FINAL_CONSTRUCT()等等。

解决方案 »

  1.   

    这些都是固定格式,你要想知道这个作用的话,还是看看深入解析ATL吧
    通常会用向导就能写出来.
      

  2.   

    知道这些是向导写出来的.
    想知道的是:如果使用ATL编写COM组建,需要对这些模版和宏,需要了解到什么程度?换句话说,“这些固定格式”是否会因为某种情况作改动?
      

  3.   

    深入解析ATL是相当好的一本书啊,。看吧。
    其实要写COM组建的话,对模版和宏不用了解太多了。
    说实在的,看懂了也没有太大的用处。相关的可以看看Modern C++ Design, 理解Policy Class就差不多了。