Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
2.5 KiB

  1. /*
  2. * s e s s i o n. c p p
  3. *
  4. * Purpose:
  5. * Implements the OE-MOM 'Session' object
  6. *
  7. * History
  8. *
  9. * Copyright (C) Microsoft Corp. 1995, 1996.
  10. */
  11. #ifndef _SESSION_H
  12. #define _SESSION_H
  13. #include "privunk.h"
  14. #include "basedisp.h"
  15. interface IOESession;
  16. interface IOEFolder;
  17. interface IOEMessage;
  18. interface IOEFolderCollection;
  19. HRESULT CreateInstance_OESession(IUnknown *pUnkOuter, IUnknown **ppUnknown);
  20. class COESession:
  21. public IOESession,
  22. public CBaseDisp
  23. {
  24. public:
  25. // *** IUnknown ***
  26. virtual STDMETHODIMP QueryInterface(REFIID riid, LPVOID * ppvObj)
  27. { return CBaseDisp::QueryInterface(riid, ppvObj); };
  28. virtual STDMETHODIMP_(ULONG) AddRef(void)
  29. { return CBaseDisp::AddRef();};
  30. virtual STDMETHODIMP_(ULONG) Release(void)
  31. { return CBaseDisp::Release(); };
  32. // *** IDispatch ***
  33. virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(UINT *pctinfo)
  34. { return CBaseDisp::GetTypeInfoCount(pctinfo); };
  35. virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT itinfo, LCID lcid, ITypeInfo **pptinfo)
  36. { return CBaseDisp::GetTypeInfo(itinfo, lcid, pptinfo); };
  37. virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgdispid)
  38. { return CBaseDisp::GetIDsOfNames(riid, rgszNames, cNames, lcid, rgdispid); };
  39. virtual HRESULT STDMETHODCALLTYPE Invoke(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pdispparams, VARIANT *pvarResult, EXCEPINFO *pexcepinfo, UINT *puArgErr)
  40. { return CBaseDisp::Invoke(dispidMember, riid, lcid, wFlags, pdispparams, pvarResult, pexcepinfo, puArgErr); };
  41. // *** IOESession ***
  42. virtual HRESULT STDMETHODCALLTYPE get_folders(IOEFolderCollection **p);
  43. virtual HRESULT STDMETHODCALLTYPE get_version(BSTR *pbstr);
  44. virtual HRESULT STDMETHODCALLTYPE get_inbox(IOEFolder **ppFolder);
  45. virtual HRESULT STDMETHODCALLTYPE openFolder(LONG idFolder, IOEFolder **ppFolder);
  46. virtual HRESULT STDMETHODCALLTYPE openMessage(LONG idFolder, LONG idMessage, IOEMessage **ppOEMsg);
  47. virtual HRESULT STDMETHODCALLTYPE createMessage(IOEMessage **ppNewMsg);
  48. // *** Override CBaseDisp ***
  49. virtual HRESULT STDMETHODCALLTYPE InterfaceSupportsErrorInfo(REFIID riid);
  50. COESession(IUnknown *pUnkOuter=NULL);
  51. virtual ~COESession();
  52. HRESULT Init();
  53. private:
  54. virtual HRESULT PrivateQueryInterface(REFIID riid, LPVOID * ppvObj);
  55. IOESession *m_pFolders;
  56. };
  57. #endif //_SESSION_H