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);

関連項目