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.

99 lines
2.8 KiB

  1. /* - - - - - - - - */
  2. /*
  3. ** Copyright (C) Microsoft Corporation 1993 - 1995. All rights reserved.
  4. */
  5. /* - - - - - - - - */
  6. /* - - - - - - - - */
  7. #define implement struct
  8. #define implementations private
  9. /*
  10. ** _StdClassImplementations
  11. ** Defines the standard implementations for a class object.
  12. */
  13. #ifndef _StdClassImplementations
  14. #define _StdClassImplementations(Impl) \
  15. STDMETHODIMP QueryInterface(const IID FAR& riid, void FAR* FAR* ppv); \
  16. STDMETHODIMP_(ULONG) AddRef(); \
  17. STDMETHODIMP_(ULONG) Release()
  18. #endif
  19. #include "mmreg.h"
  20. #include "msacm.h"
  21. /* - - - - - - - - */
  22. class FAR CACMCmpStream : IAVIStream{
  23. public:
  24. static HRESULT MakeInst(IUnknown FAR* pUnknownOuter, const IID FAR& riid, void FAR* FAR* ppv);
  25. LONG SetUpCompression();
  26. private:
  27. CACMCmpStream(IUnknown FAR* pUnknownOuter, IUnknown FAR* FAR* ppUnknown);
  28. public:
  29. _StdClassImplementations(CAVIStreamImpl);
  30. STDMETHODIMP Create (THIS_ LPARAM lParam1, LPARAM lParam2);
  31. STDMETHODIMP Info (THIS_ AVISTREAMINFOW FAR * psi, LONG lSize);
  32. STDMETHODIMP_(LONG) FindSample (THIS_ LONG lPos, LONG lFlags);
  33. STDMETHODIMP ReadFormat (THIS_ LONG lPos,
  34. LPVOID lpFormat, LONG FAR *cbFormat);
  35. STDMETHODIMP SetFormat (THIS_ LONG lPos,
  36. LPVOID lpFormat, LONG cbFormat);
  37. STDMETHODIMP Read (THIS_ LONG lStart, LONG lSamples,
  38. LPVOID lpBuffer, LONG cbBuffer,
  39. LONG FAR * plBytes, LONG FAR * plSamples);
  40. STDMETHODIMP Write (THIS_ LONG lStart, LONG lSamples,
  41. LPVOID lpBuffer, LONG cbBuffer, DWORD dwFlags,
  42. LONG FAR *plSampWritten,
  43. LONG FAR *plBytesWritten);
  44. STDMETHODIMP Delete (THIS_ LONG lStart, LONG lSamples);
  45. STDMETHODIMP ReadData (THIS_ DWORD fcc, LPVOID lp, LONG FAR *lpcb);
  46. STDMETHODIMP WriteData (THIS_ DWORD fcc, LPVOID lp, LONG cb);
  47. #ifdef _WIN32
  48. STDMETHODIMP SetInfo(AVISTREAMINFOW FAR *lpInfo, LONG cbInfo);
  49. #else
  50. STDMETHODIMP Reserved1 (THIS);
  51. STDMETHODIMP Reserved2 (THIS);
  52. STDMETHODIMP Reserved3 (THIS);
  53. STDMETHODIMP Reserved4 (THIS);
  54. STDMETHODIMP Reserved5 (THIS);
  55. #endif
  56. public:
  57. IUnknown FAR* m_pUnknownOuter;
  58. // Instance data
  59. ULONG m_refs;
  60. AVISTREAMINFOW m_avistream; // stream info
  61. PAVISTREAM m_pavi;
  62. HACMSTREAM m_hs;
  63. LPWAVEFORMATEX m_lpFormat;
  64. LONG m_cbFormat;
  65. LPWAVEFORMATEX m_lpFormatC;
  66. LONG m_cbFormatC;
  67. LONG m_cbIn;
  68. BYTE _huge * m_lpIn;
  69. LONG m_cbOut;
  70. BYTE _huge * m_lpOut;
  71. ACMSTREAMHEADER m_acm;
  72. LONG m_dwPosIn;
  73. LONG m_dwPosOut;
  74. LONG m_dwSamplesLeft;
  75. LONG m_dwBytesMissing;
  76. };
  77. /*----------------------------------------------------------------------*/