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.

93 lines
2.3 KiB

  1. /*****************************************************************************\
  2. * MODULE: request.h
  3. *
  4. * PURPOSE: Implementation of COM interface for BidiSpooler
  5. *
  6. * Copyright (C) 2000 Microsoft Corporation
  7. *
  8. * History:
  9. *
  10. * 03/07/00 Weihai Chen (weihaic) Created
  11. *
  12. \*****************************************************************************/
  13. #ifndef _TBIDIREQUEST
  14. #define _TBIDIREQUEST
  15. #include "priv.h"
  16. class TBidiRequest : public IBidiRequestSpl
  17. {
  18. public:
  19. // IUnknown
  20. STDMETHOD (QueryInterface) (
  21. REFIID iid,
  22. void** ppv) ;
  23. STDMETHOD_ (ULONG, AddRef) () ;
  24. STDMETHOD_ (ULONG, Release)() ;
  25. STDMETHOD (SetSchema) (
  26. IN CONST LPCWSTR pszSchema);
  27. STDMETHOD (SetInputData) (
  28. IN CONST DWORD dwType,
  29. IN CONST BYTE *pData,
  30. IN CONST UINT uSize);
  31. STDMETHOD (GetResult) (
  32. OUT HRESULT *phr);
  33. STDMETHOD (GetOutputData) (
  34. IN CONST DWORD dwIndex,
  35. OUT LPWSTR *ppszSchema,
  36. OUT PDWORD pdwType,
  37. OUT PBYTE *ppData,
  38. OUT PULONG uSize);
  39. STDMETHOD (GetEnumCount)(
  40. OUT PDWORD pdwTotal);
  41. STDMETHOD (GetSchema) (
  42. OUT LPWSTR *ppszSchema);
  43. STDMETHOD (GetInputData) (
  44. OUT PDWORD pdwType,
  45. OUT PBYTE *ppData,
  46. OUT PULONG puSize);
  47. STDMETHOD (SetResult) (
  48. IN CONST HRESULT hr);
  49. STDMETHOD (AppendOutputData) (
  50. IN CONST LPCWSTR pszSchema,
  51. IN CONST DWORD dwType,
  52. IN CONST BYTE *pData,
  53. IN CONST ULONG uSize);
  54. // Constructor
  55. TBidiRequest() ;
  56. // Destructor
  57. ~TBidiRequest() ;
  58. inline BOOL
  59. bValid() CONST {return m_bValid;};
  60. private:
  61. // Reference count
  62. BOOL m_bValid;
  63. LONG m_cRef ;
  64. LPWSTR m_pSchema;
  65. BIDI_TYPE m_kDataType;
  66. DWORD m_dwDataSize;
  67. PBYTE m_pbData;
  68. DWORD m_dwResponseCount;
  69. HRESULT m_hr;
  70. TCriticalSection m_CritSec;
  71. TResponseDataList m_ResponseDataList;
  72. } ;
  73. #endif