idispeventsimpleimpl

场景:使用IDispEventSimpleImpl遇到的有关问题

使用IDispEventSimpleImpl遇到的问题
我从IDispEventSimpleImpl派生一个自己的类,.H文件如下:

#pragma   once
#define   SINK_ID     1

#ifndef   DISPID_RERecognition
#define   DISPID_RERecognition                                 0x00000002
#endif
extern   _ATL_FUNC_INFO   RecognitionInfo;

class     ATL_NO_VTABLE   CMyRecognitionEvents:  
public   IDispEventSimpleImpl <SINK_ID,CMyRecognitionEvents,   &DIID__IInkRecognitionEvents>
{
public:
CMyRecognitionEvents(void);
~CMyRecognitionEvents(void);
public:


BEGIN_SINK_MAP(CMyRecognitionEvents)
SINK_ENTRY_INFO(SINK_ID,  
DIID__IInkRecognitionEvents,  
DISPID_RERecognition,
Recognition,  
&RecognitionInfo)
END_SINK_MAP()

HRESULT   __stdcall   Recognition(BSTR   bstrRecognizedString,  
VARIANT   vCustomParam,  
InkRecognitionStatus   RecognitionStatus);

};

编译出错,错误信息是“ATL::IDispEventSimpleImpl”   :   模板参数“pdiid”   :   “DIID__IInkRecognitionEvents”   :   涉及带有内部链接的对象的表达式不能用作非类型参数。
我是照着一个例子程序做的,不知道为什么会出这样的错。刚接触COM不久,很多细节都不是很清楚,望高人指点一二。谢谢。

------解决方案--------------------
我看了哪个MSDN的例子,我就是那样做的啊,不解。