适用于:Outlook 2013 | Outlook 2016
C++ 客户端和服务提供程序通过创建从它们实现的接口继承的类来定义 MAPI 对象。 每个接口方法都是公共的,类的构造函数和析构函数也是公共的。 如果类具有其他方法,则它们可以是公共或专用方法,具体取决于实现。 所有数据成员都是私有的。
以下示例代码演示如何定义 C++ 状态对象。 类 CMyMAPIObject 继承自 IMAPIStatus :IMAPIProp 接口。 此示例中使用的许多宏在 OLE 头文件 Compobj.h 中定义。 类的第一个成员是基接口的方法,后跟继承接口的方法(按继承顺序排列)。 接口定义包括任何其他方法、构造函数和析构函数以及数据成员。
class CMyMAPIObject : public IMAPIStatus
{
public:
// Methods of IUnknown.
STDMETHODIMP QueryInterface (REFIID riid, LPVOID * ppvObj);
STDMETHODIMP_(ULONG) AddRef ();
STDMETHODIMP_(ULONG) Release ();
MAPI_IMAPIPROP_METHODS(IMPL);
MAPI_IMAPISTATUS_METHODS(IMPL);
// Other methods specific to CMyMAPIObject.
BOOL WINAPI Method1 ();
void WINAPI Method2 ();
// Constructors and destructors.
public :
CMyMAPIObject () {};
~CMyMAPIObject () {};
// Data members specific to CMyMAPIObject.
private :
ULONG m_cRef;
CAnotherObj * m_pObj;
};
若要使用 类的 CMyMAPIObject 实例,C++ 客户端或服务提供程序对其方法之一进行调用,如下所示:
lpMyObj->ValidateState(ulUIParam, ulFlags);