Source code of Windows XP (NT5)
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.

115 lines
2.8 KiB

  1. /***************************************************************************
  2. *
  3. * compdef.h
  4. *
  5. * Copyright (c) 1993-1994 Microsoft Corporation
  6. *
  7. * 32-bit Thunks for msvideo.dll
  8. *
  9. * Structures for mapping compression manager calls
  10. *
  11. **************************************************************************/
  12. /**************************************************************************\
  13. Thunking of compman APIs
  14. Functions:
  15. ICInstall is NOT supported from 16-bit to 32-bit
  16. ICRemove is also NOT supported
  17. ICInfo - tries the 32-bit side first
  18. Handles
  19. Are pointers to the PIC table.
  20. The 16-bit side handle manager will store these and call us back
  21. with our 32-bit handles so the thunking routines here receive
  22. real 32-bit handles.
  23. There is NO handle cleanup (why not ???) on task termination
  24. /*
  25. * Make sure the compiler doesn't think it knows better about packing
  26. * The 16-bit stack is effectively pack(2)
  27. */
  28. #pragma pack(2)
  29. /*
  30. * Note that everything is in the reverse order to keep with the PASCAL
  31. * calling convention on the other side
  32. */
  33. /****************************************************************************
  34. compman entry point parameter lists
  35. ****************************************************************************/
  36. typedef struct {
  37. DWORD dwSize; // sizeof(ICINFOA)
  38. DWORD fccType; // compressor type 'vidc' 'audc'
  39. DWORD fccHandler; // compressor sub-type 'rle ' 'jpeg' 'pcm '
  40. DWORD dwFlags; // flags LOWORD is type specific
  41. DWORD dwVersion; // version of the driver
  42. DWORD dwVersionICM; // version of the ICM used
  43. char szName[16]; // short name
  44. char szDescription[128]; // long name
  45. char szDriver[128]; // driver that contains compressor
  46. } ICINFO16;
  47. #define ICINFOA ICINFO16
  48. typedef struct {
  49. #ifdef ICINFOA
  50. ICINFOA *lpicinfo; // Why is there no ASCII 32-bit API?
  51. #else
  52. ICINFO *lpicinfo; // Why is there no ASCII 32-bit API?
  53. #endif
  54. DWORD fccHandler;
  55. DWORD fccType;
  56. } UNALIGNED *PICInfoParms16;
  57. typedef struct {
  58. DWORD dw2;
  59. DWORD dw1;
  60. WORD msg;
  61. DWORD hic;
  62. } UNALIGNED *PICSendMessageParms16;
  63. typedef struct {
  64. WORD wMode;
  65. DWORD fccHandler;
  66. DWORD fccType;
  67. } UNALIGNED *PICOpenParms16;
  68. typedef struct {
  69. DWORD hic;
  70. } UNALIGNED *PICCloseParms16;
  71. typedef struct {
  72. DWORD dwFlags;
  73. WORD hpal;
  74. WORD hwnd;
  75. WORD hdc;
  76. short xDst;
  77. short yDst;
  78. short dxDst;
  79. short dyDst;
  80. LPBITMAPINFOHEADER lpbi;
  81. short xSrc;
  82. short ySrc;
  83. short dxSrc;
  84. short dySrc;
  85. DWORD dwRate;
  86. DWORD dwScale;
  87. } ICDRAWBEGIN16;
  88. #pragma pack()