C++ でオブジェクトを実装します。Implementing objects in C++

適用されます: OutlookApplies to: Outlook

C++ クライアントおよびサービス ・ プロバイダーは、それらを実装しているインターフェイスから継承するクラスを作成することで MAPI オブジェクトを定義します。C++ clients and service providers define MAPI objects by creating classes that inherit from the interfaces they are implementing. クラスのデストラクターとコンス トラクターは、インターフェイスのメソッドはパブリックで。Each of the interface methods is public, as are the constructor and destructor for the class. クラスは、追加のメソッドを持っている場合、パブリックまたはプライベートの実装によって、できます。If the class has additional methods, they can be public or private, depending on the implementation. すべてのデータ メンバーは、プライベートです。All data members are private.

次のコード例では、C++ の状態オブジェクトを定義する方法を示します。The following example code shows how to define a C++ status object. CMyMAPIObjectクラスから継承、 IMAPIStatus: IMAPIPropインタ フェースです。The CMyMAPIObject class inherits from the IMAPIStatus : IMAPIProp interface. この例で使用されているマクロの多くは、OLE ヘッダー ファイル Compobj.h で定義されます。Many of the macros used in this example are defined in the OLE header file Compobj.h. クラスの最初のメンバーは、継承の順序で継承されたインターフェイスのメソッドの後に、基本インターフェイスのメソッドです。The first members of the class are the methods of the base interface, followed by the methods of the inherited interfaces in order of inheritance. 追加のメソッド、コンス トラクター、デストラクター、およびデータ メンバーには次のインターフェイス定義です。Following the interface definitions are any additional methods, the constructor and destructor, and the data members.

class  CMyMAPIObject : public IMAPIStatus
// Methods of IUnknown.
    STDMETHODIMP QueryInterface (REFIID riid, LPVOID * ppvObj);
    STDMETHODIMP_(ULONG) Release ();
// 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++ クライアントまたはサービス プロバイダーのメソッドのいずれかの呼び出しを行う次のようにします。To use an instance of the CMyMAPIObject class, C++ clients or service providers make a call to one of its methods as follows:

lpMyObj->ValidateState(ulUIParam, ulFlags);

関連項目See also