C++ でのオブジェクトの実装
適用対象: 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++ クライアントまたはサービス プロバイダーは、次のようにメソッドの 1 つを呼び出します。
lpMyObj->ValidateState(ulUIParam, ulFlags);