Windows NT 4.0 source code leak
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.

114 lines
2.6 KiB

4 years ago
  1. /***************************************************************************
  2. *
  3. * video16.h
  4. *
  5. * Copyright (c) 1994 Microsoft Corporation
  6. *
  7. * 32-bit Thunks for avicap32.dll
  8. *
  9. * Structures for mapping video
  10. *
  11. **************************************************************************/
  12. /*
  13. * Make sure the compiler doesn't think it knows better about packing
  14. * The 16-bit stack is effectively pack(2)
  15. */
  16. #pragma pack(2)
  17. /*
  18. * Definitions to help with thunking video calls
  19. */
  20. typedef WORD HVIDEO16;
  21. typedef HVIDEO16 *LPHVIDEO16;
  22. /*
  23. * Note that everything is in the reverse order to keep with the PASCAL
  24. * calling convention on the other side
  25. */
  26. /****************************************************************************
  27. video entry point parameter lists
  28. ****************************************************************************/
  29. typedef struct {
  30. DWORD dwP2;
  31. DWORD dwP1;
  32. WORD msg;
  33. HVIDEO16 hVideo;
  34. } UNALIGNED *PvideoMessageParms16;
  35. typedef struct {
  36. DWORD dwFlags;
  37. DWORD dwDeviceId;
  38. LPHVIDEO16 lphVideo;
  39. } UNALIGNED *PvideoOpenParms16;
  40. typedef struct {
  41. HVIDEO16 hVideo;
  42. } UNALIGNED *PvideoCloseParms16;
  43. /*
  44. * Our shadow header structure for use with callbacks
  45. * (see videoStreamAddBuffer)
  46. */
  47. typedef struct {
  48. LPVOID pHdr16; /* Remember address on 16-bit side */
  49. LPVOID pHdr32; /* 32-bit version of pHdr16 */
  50. LPBYTE lpData16; /* Remember pointer for flushing */
  51. VIDEOHDR videoHdr;
  52. } VIDEOHDR32, *PVIDEOHDR32;
  53. /*
  54. * Instance data for videoStreamInit - contains pointer to 16-bit side
  55. * instance data
  56. */
  57. typedef struct {
  58. DWORD dwFlags; // Real flags
  59. DWORD dwCallbackInst; // Real instance data
  60. DWORD dwCallback;
  61. HVIDEO16 hVideo;
  62. } VIDEOINSTANCEDATA32, *PVIDEOINSTANCEDATA32;
  63. /*
  64. * Thunk 16-bit mmtime
  65. */
  66. #pragma pack(2)
  67. typedef struct {
  68. WORD wType; /* indicates the contents of the union */
  69. union {
  70. DWORD ms; /* milliseconds */
  71. DWORD sample; /* samples */
  72. DWORD cb; /* byte count */
  73. struct { /* SMPTE */
  74. BYTE hour; /* hours */
  75. BYTE min; /* minutes */
  76. BYTE sec; /* seconds */
  77. BYTE frame; /* frames */
  78. BYTE fps; /* frames per second */
  79. BYTE dummy; /* pad */
  80. } smpte;
  81. struct { /* MIDI */
  82. DWORD songptrpos; /* song pointer position */
  83. } midi;
  84. } u;
  85. } MMTIME16;
  86. #pragma pack()