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.

103 lines
4.8 KiB

  1. /*
  2. * t a b l e . h
  3. *
  4. * Purpose:
  5. *
  6. * History
  7. *
  8. * Copyright (C) Microsoft Corp. 1995, 1996.
  9. */
  10. #ifndef _TABLE_H
  11. #define _TABLE_H
  12. #include "privunk.h"
  13. #include "basedisp.h"
  14. #include "simpdata.h"
  15. #include "dispex.h"
  16. #include "msdatsrc.h"
  17. HRESULT CreateInstance_OEMsgTable(IUnknown *pUnkOuter, IUnknown **ppUnknown);
  18. class COEMsgTable:
  19. public OLEDBSimpleProvider,
  20. public CBaseDisp,
  21. public IOEMsgList,
  22. public IDispatchEx
  23. {
  24. public:
  25. // ---------------------------------------------------------------------------
  26. // IUnknown members
  27. // ---------------------------------------------------------------------------
  28. virtual STDMETHODIMP QueryInterface(REFIID riid, LPVOID * ppvObj)
  29. { return PrivateQueryInterface(riid, ppvObj); };
  30. virtual STDMETHODIMP_(ULONG) AddRef(void)
  31. { return ++m_cRef; };
  32. virtual STDMETHODIMP_(ULONG) Release(void)
  33. { m_cRef--; if (m_cRef == 0) {delete this; return 0;} return m_cRef; };
  34. // OLEDBSimpleProvider
  35. virtual HRESULT STDMETHODCALLTYPE getRowCount(long *pcRows);
  36. virtual HRESULT STDMETHODCALLTYPE getColumnCount(long *pcColumns);
  37. virtual HRESULT STDMETHODCALLTYPE getRWStatus(long iRow, long iColumn, OSPRW *prwStatus);
  38. virtual HRESULT STDMETHODCALLTYPE getVariant(long iRow, long iColumn, OSPFORMAT format, VARIANT __RPC_FAR *pVar);
  39. virtual HRESULT STDMETHODCALLTYPE setVariant(long iRow, long iColumn, OSPFORMAT format, VARIANT Var);
  40. virtual HRESULT STDMETHODCALLTYPE getLocale(BSTR *pbstrLocale);
  41. virtual HRESULT STDMETHODCALLTYPE deleteRows(long iRow, long cRows, long *pcRowsDeleted);
  42. virtual HRESULT STDMETHODCALLTYPE insertRows(long iRow, long cRows, long *pcRowsInserted);
  43. virtual HRESULT STDMETHODCALLTYPE find(long iRowStart, long iColumn, VARIANT val, OSPFIND findFlags, OSPCOMP compType, long *piRowFound);
  44. virtual HRESULT STDMETHODCALLTYPE addOLEDBSimpleProviderListener(OLEDBSimpleProviderListener *pospIListener);
  45. virtual HRESULT STDMETHODCALLTYPE removeOLEDBSimpleProviderListener(OLEDBSimpleProviderListener *pospIListener);
  46. virtual HRESULT STDMETHODCALLTYPE isAsync(BOOL *pbAsynch);
  47. virtual HRESULT STDMETHODCALLTYPE getEstimatedRows(long *piRows);
  48. virtual HRESULT STDMETHODCALLTYPE stopTransfer();
  49. // *** IDispatch)
  50. virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(UINT *pctinfo)
  51. { return CBaseDisp::GetTypeInfoCount(pctinfo); };
  52. virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT itinfo, LCID lcid, ITypeInfo **pptinfo)
  53. { return CBaseDisp::GetTypeInfo(itinfo, lcid, pptinfo); };
  54. virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgdispid)
  55. { return CBaseDisp::GetIDsOfNames(riid, rgszNames, cNames, lcid, rgdispid); };
  56. virtual HRESULT STDMETHODCALLTYPE Invoke(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pdispparams, VARIANT *pvarResult, EXCEPINFO *pexcepinfo, UINT *puArgErr)
  57. { return CBaseDisp::Invoke(dispidMember, riid, lcid, wFlags, pdispparams, pvarResult, pexcepinfo, puArgErr); };
  58. // *** IDispatchEx ***
  59. virtual HRESULT STDMETHODCALLTYPE GetDispID(BSTR bstrName, DWORD grfdex, DISPID *pid);
  60. virtual HRESULT STDMETHODCALLTYPE InvokeEx(DISPID id, LCID lcid, WORD wFlags, DISPPARAMS *pdp, VARIANT *pvarRes, EXCEPINFO *pei, IServiceProvider *pspCaller);
  61. virtual HRESULT STDMETHODCALLTYPE DeleteMemberByName(BSTR bstrName, DWORD grfdex);
  62. virtual HRESULT STDMETHODCALLTYPE DeleteMemberByDispID(DISPID id);
  63. virtual HRESULT STDMETHODCALLTYPE GetMemberProperties(DISPID id, DWORD grfdexFetch, DWORD *pgrfdex);
  64. virtual HRESULT STDMETHODCALLTYPE GetMemberName(DISPID id, BSTR *pbstrName);
  65. virtual HRESULT STDMETHODCALLTYPE GetNextDispID(DWORD grfdex, DISPID id, DISPID *pid);
  66. virtual HRESULT STDMETHODCALLTYPE GetNameSpaceParent(IUnknown **ppunk);
  67. // ** IOEMsgList **
  68. virtual HRESULT STDMETHODCALLTYPE put_sortColumn(BSTR bstr);
  69. virtual HRESULT STDMETHODCALLTYPE get_sortColumn(BSTR *pbstr);
  70. virtual HRESULT STDMETHODCALLTYPE put_sortDirection(VARIANT_BOOL v);
  71. virtual HRESULT STDMETHODCALLTYPE get_sortDirection(VARIANT_BOOL *pv);
  72. virtual HRESULT STDMETHODCALLTYPE test();
  73. COEMsgTable();
  74. virtual ~COEMsgTable();
  75. HRESULT Init();
  76. private:
  77. ULONG m_cRef;
  78. IMessageTable *m_pTable;
  79. OLEDBSimpleProviderListener *m_pDSListen;
  80. DataSourceListener *m_pDataSrcListener;
  81. BOOL m_fAsc;
  82. COLUMN_ID m_col;
  83. virtual HRESULT PrivateQueryInterface(REFIID riid, LPVOID * ppvObj);
  84. LPWSTR _PszFromColIndex(DWORD dw);
  85. DWORD _colIndexFromString(LPWSTR pszW);
  86. };
  87. #endif //_TABLE_H