Freigeben über


Implementieren von Objekten in C++

Gilt für: Outlook 2013 | Outlook 2016

C++-Clients und Dienstanbieter definieren MAPI-Objekte, indem sie Klassen erstellen, die von den schnittstellen erben, die sie implementieren. Jede der Schnittstellenmethoden ist öffentlich, ebenso wie der Konstruktor und Destruktor für die Klasse. Wenn die Klasse über zusätzliche Methoden verfügt, können diese je nach Implementierung öffentlich oder privat sein. Alle Datenmember sind privat.

Der folgende Beispielcode zeigt, wie ein C++-status-Objekt definiert wird. Die CMyMAPIObject -Klasse erbt von der IMAPIStatus: IMAPIProp-Schnittstelle . Viele der in diesem Beispiel verwendeten Makros sind in der OLE-Headerdatei Compobj.h definiert. Die ersten Member der -Klasse sind die Methoden der Basisschnittstelle, gefolgt von den Methoden der geerbten Schnittstellen in der Reihenfolge der Vererbung. Den Schnittstellendefinitionen folgen alle zusätzlichen Methoden, der Konstruktor und destruktor sowie die Datenmember.

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

Um eine instance der CMyMAPIObject -Klasse zu verwenden, rufen C++-Clients oder Dienstanbieter wie folgt eine ihrer Methoden auf:

lpMyObj->ValidateState(ulUIParam, ulFlags);

Siehe auch