class CAccessiblePane : public CWnd, public IAccessible
{
// ...
public:
// IUnknown methods
STDMETHOD(QueryInterface)(REFIID riid, void** ppv);
STDMETHOD_(ULONG, AddRef)();
STDMETHOD_(ULONG, Release)();
// IDispatch methods
STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);
STDMETHOD(GetTypeInfo)(UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo);
STDMETHOD(GetIDsOfNames)(REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgDispId);
STDMETHOD(Invoke)(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr);
// IAccessible methods
STDMETHOD(get_accHelp)(VARIANT varChild, BSTR* pszHelp);
// Other methods...
};
在这个例子中,CAccessiblePane 类实现了 IAccessible 接口,其中包括了 get_accHelp 方法。你需要根据窗口的具体情况实现这些接口方法,以便 MSAA 能够正确地与你的窗口交互。
在实现 get_accHelp 方法时,你需要根据窗口的状态和上下文返回相应的帮助信息字符串,以便屏幕阅读器等辅助技术可以提供有关控件的信息。
转载请注明出处:http://www.pingtaimeng.com/article/detail/15596/MFC/CBasePane