/* * s e s s i o n. c p p * * Purpose: * Implements the OE-MOM 'Session' object * * History * * Copyright (C) Microsoft Corp. 1995, 1996. */ #ifndef _SESSION_H #define _SESSION_H #include "privunk.h" #include "basedisp.h" interface IOESession; interface IOEFolder; interface IOEMessage; interface IOEFolderCollection; HRESULT CreateInstance_OESession(IUnknown *pUnkOuter, IUnknown **ppUnknown); class COESession: public IOESession, public CBaseDisp { public: // *** IUnknown *** virtual STDMETHODIMP QueryInterface(REFIID riid, LPVOID * ppvObj) { return CBaseDisp::QueryInterface(riid, ppvObj); }; virtual STDMETHODIMP_(ULONG) AddRef(void) { return CBaseDisp::AddRef();}; virtual STDMETHODIMP_(ULONG) Release(void) { return CBaseDisp::Release(); }; // *** IDispatch *** virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(UINT *pctinfo) { return CBaseDisp::GetTypeInfoCount(pctinfo); }; virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT itinfo, LCID lcid, ITypeInfo **pptinfo) { return CBaseDisp::GetTypeInfo(itinfo, lcid, pptinfo); }; virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgdispid) { return CBaseDisp::GetIDsOfNames(riid, rgszNames, cNames, lcid, rgdispid); }; virtual HRESULT STDMETHODCALLTYPE Invoke(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pdispparams, VARIANT *pvarResult, EXCEPINFO *pexcepinfo, UINT *puArgErr) { return CBaseDisp::Invoke(dispidMember, riid, lcid, wFlags, pdispparams, pvarResult, pexcepinfo, puArgErr); }; // *** IOESession *** virtual HRESULT STDMETHODCALLTYPE get_folders(IOEFolderCollection **p); virtual HRESULT STDMETHODCALLTYPE get_version(BSTR *pbstr); virtual HRESULT STDMETHODCALLTYPE get_inbox(IOEFolder **ppFolder); virtual HRESULT STDMETHODCALLTYPE openFolder(LONG idFolder, IOEFolder **ppFolder); virtual HRESULT STDMETHODCALLTYPE openMessage(LONG idFolder, LONG idMessage, IOEMessage **ppOEMsg); virtual HRESULT STDMETHODCALLTYPE createMessage(IOEMessage **ppNewMsg); // *** Override CBaseDisp *** virtual HRESULT STDMETHODCALLTYPE InterfaceSupportsErrorInfo(REFIID riid); COESession(IUnknown *pUnkOuter=NULL); virtual ~COESession(); HRESULT Init(); private: virtual HRESULT PrivateQueryInterface(REFIID riid, LPVOID * ppvObj); IOESession *m_pFolders; }; #endif //_SESSION_H