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.

65 lines
1.8 KiB

  1. // IVIDRDR.H
  2. //
  3. // IVideoRender interface.
  4. //
  5. // Used by videoconferencing UI to drive frame viewing.
  6. //
  7. // Created 12-Oct-96 [JonT]
  8. #ifndef _IVIDEORENDER_H
  9. #define _IVIDEORENDER_H
  10. #include <pshpack8.h> /* Assume 8 byte packing throughout */
  11. #define FRAME_RECEIVE 1
  12. #define FRAME_SEND 2 // Preview frame
  13. typedef struct _FRAMECONTEXT
  14. {
  15. LPBITMAPINFO lpbmi;
  16. void* lpData;
  17. DWORD_PTR dwReserved;
  18. LPRECT lpClipRect;
  19. } FRAMECONTEXT, *LPFRAMECONTEXT;
  20. typedef void (CALLBACK *LPFNFRAMEREADY) (DWORD_PTR);
  21. DECLARE_INTERFACE_(IVideoRender, IUnknown)
  22. {
  23. // *** IUnknown methods ***
  24. STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID FAR* ppvObj) PURE;
  25. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  26. STDMETHOD_(ULONG,Release) (THIS) PURE;
  27. // IVideoRender methods
  28. STDMETHOD (Init)(THIS_ DWORD_PTR dwUser, LPFNFRAMEREADY pfCallback) PURE;
  29. STDMETHOD (Done)(THIS) PURE;
  30. STDMETHOD (GetFrame)(THIS_ FRAMECONTEXT* pfc) PURE;
  31. STDMETHOD (ReleaseFrame)(THIS_ FRAMECONTEXT *pfc) PURE;
  32. };
  33. #if(0)
  34. // This is no longer used anywhere
  35. // outside of NAC.DLL, and is almost obsolete
  36. //DECLARE_INTERFACE_(IMediaProp, IUnknown)
  37. DECLARE_INTERFACE_(IVideoRenderOld, IUnknown)
  38. {
  39. // *** IUnknown methods ***
  40. STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID FAR* ppvObj) PURE;
  41. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  42. STDMETHOD_(ULONG,Release) (THIS) PURE;
  43. STDMETHOD(Init)(THIS_ DWORD dwFlags, HANDLE hEvent) PURE;
  44. STDMETHOD(Done)(THIS_ DWORD dwFlags) PURE;
  45. STDMETHOD(GetFrame)(THIS_ DWORD dwFlags, FRAMECONTEXT* pFrameContext) PURE;
  46. STDMETHOD(ReleaseFrame)(THIS_ DWORD dwFlags, FRAMECONTEXT* pFrameContext) PURE;
  47. };
  48. typedef IVideoRenderOld *LPIVideoRender;
  49. #endif
  50. #include <poppack.h> /* End byte packing */
  51. #endif //_IVIDEORENDER_H
  52.