Windows2003-3790/inetcore/outlookexpress/mailnews/om/session.h
2020-09-30 16:53:55 +02:00

73 lines
2.5 KiB
C++

/*
* 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