オートメーション

コンポーネントの機能をインターフェイスを通してほかのコンポーネント(アプリケーション等)に公開することです。
ATLのウィザードでシングルオブジェクトを作成すると、すでにオートメーションが利用可能な状態になります。
これは、IDispatchインターフェイスを実装しているため、IDispatchインターフェースを使い、インターフェイスを外部に公開しているためです。

とりえず生成されたソースを見ます。
// SingleObject.h : CSingleObject の宣言

#ifndef __SINGLEOBJECT_H_
#define __SINGLEOBJECT_H_

#include "resource.h"       // メイン シンボル

/////////////////////////////////////////////////////////////////////////////
// CSingleObject
class ATL_NO_VTABLE CSingleObject : 
        public CComObjectRootEx<CComSingleThreadModel>,
        public CComCoClass<CSingleObject, &CLSID_SingleObject>,
        public IDispatchImpl<ISingleObject, &IID_ISingleObject, &LIBID_ATLTESTLib>
{
public:
        CSingleObject()
        {
        }

DECLARE_REGISTRY_RESOURCEID(IDR_SINGLEOBJECT)

DECLARE_PROTECT_FINAL_CONSTRUCT()

BEGIN_COM_MAP(CSingleObject)
        COM_INTERFACE_ENTRY(ISingleObject)
        COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()

// ISingleObject
public:
};

#endif //__SINGLEOBJECT_H_
このソースは、SingleObjectをネームとしたATLオブジェクトを挿入したときに生成されたソースです。
class宣言の継承関係をみると、 が継承されていることがわかります。
まず、継承関係にあるCComObjectRootExを見ると、シングルスレッドモデルということがわかります。
次のCComCoClassは、オブジェクトのCLSIDを取得するメソッドやエラー情報を設定するメソッドを提供するインターフェイスです。
次のIDispatchImplは、デュアルインターフェイスのIDispatch部分についてのデフォルトのインプリメントを提供します。
結果としてできるインターフェイスは