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.

184 lines
4.4 KiB

  1. /******************************Module*Header*******************************\
  2. * Module Name: thunks.h
  3. *
  4. * Function prototypes for Multi-Media thunk functions
  5. *
  6. *
  7. * Created: 27-09-93
  8. * Author: Stephen Estrop [StephenE]
  9. *
  10. * Copyright (c) 1993 Microsoft Corporation
  11. \**************************************************************************/
  12. #include <wowmmcb.h>
  13. extern DWORD FAR PASCAL mmwow32Lib; // in stack.asm
  14. /* -------------------------------------------------------------------------
  15. ** Wave stuff
  16. ** -------------------------------------------------------------------------
  17. */
  18. #ifndef MMNOWAVE
  19. extern DWORD NEAR PASCAL
  20. waveOMessage(
  21. HWAVE hWave,
  22. UINT msg,
  23. DWORD dwP1,
  24. DWORD dwP2
  25. );
  26. extern DWORD NEAR PASCAL
  27. waveIMessage(
  28. HWAVE hWave,
  29. UINT msg,
  30. DWORD dwP1,
  31. DWORD dwP2
  32. );
  33. extern UINT FAR PASCAL
  34. waveOIDMessage(
  35. UINT wDeviceID,
  36. UINT wMessage,
  37. DWORD dwUser,
  38. DWORD dwParam1,
  39. DWORD dwParam2
  40. );
  41. extern UINT FAR PASCAL
  42. waveIIDMessage(
  43. UINT wDeviceID,
  44. UINT wMessage,
  45. DWORD dwUser,
  46. DWORD dwParam1,
  47. DWORD dwParam2
  48. );
  49. #endif
  50. /* -------------------------------------------------------------------------
  51. ** midi stuff
  52. ** -------------------------------------------------------------------------
  53. */
  54. #ifndef MMNOWAVE
  55. extern DWORD FAR PASCAL
  56. midiOMessage(
  57. HMIDI hMidi,
  58. UINT msg,
  59. DWORD dwP1,
  60. DWORD dwP2
  61. );
  62. extern UINT FAR PASCAL
  63. midiOIDMessage(
  64. UINT wDeviceID,
  65. UINT wMessage,
  66. DWORD dwUser,
  67. DWORD dwParam1,
  68. DWORD dwParam2
  69. );
  70. extern DWORD FAR PASCAL
  71. midiIMessage(
  72. HMIDI hMidi,
  73. UINT msg,
  74. DWORD dwP1,
  75. DWORD dwP2
  76. );
  77. extern UINT FAR PASCAL
  78. midiIIDMessage(
  79. UINT wDeviceID,
  80. UINT wMessage,
  81. DWORD dwUser,
  82. DWORD dwParam1,
  83. DWORD dwParam2
  84. );
  85. #endif
  86. /* -------------------------------------------------------------------------
  87. ** Joystick stuff
  88. ** -------------------------------------------------------------------------
  89. */
  90. typedef DWORD (FAR PASCAL *JOYMESSAGEPROC)( HDRVR, UINT, DWORD, DWORD );
  91. extern UINT FAR PASCAL
  92. joyMessage(
  93. HDRVR hdrv,
  94. UINT msg,
  95. LPARAM dw1,
  96. LPARAM dw2
  97. );
  98. /* -------------------------------------------------------------------------
  99. ** Timer stuff
  100. ** -------------------------------------------------------------------------
  101. */
  102. typedef LRESULT (FAR PASCAL *TIDMESSAGEPROC)( UINT, LPARAM, LPARAM );
  103. extern TIDMESSAGEPROC FAR PASCAL tid32Message; // stack.asm
  104. extern DWORD FAR PASCAL // stack.asm
  105. timeMessage(
  106. UINT msg,
  107. LPARAM dw1,
  108. LPARAM dw2
  109. );
  110. /* -------------------------------------------------------------------------
  111. ** MCI Stuff
  112. ** -------------------------------------------------------------------------
  113. */
  114. typedef DWORD (CALLBACK MCIMESSAGE)( DWORD, DWORD, DWORD, DWORD, DWORD );
  115. typedef MCIMESSAGE FAR *LPMCIMESSAGE;
  116. extern LPMCIMESSAGE PASCAL mci32Message;
  117. extern DWORD FAR PASCAL
  118. mciMessage(
  119. UINT wMsg,
  120. DWORD dwP1,
  121. DWORD dwP2,
  122. DWORD dwP3,
  123. DWORD dwP4
  124. );
  125. #define THUNK_MCI_SENDCOMMAND 0x0001
  126. #define THUNK_MCI_SENDSTRING 0x0002
  127. #define THUNK_MCI_GETDEVICEID 0x0003
  128. #define THUNK_MCI_GETDEVIDFROMELEMID 0x0004
  129. #define THUNK_MCI_GETERRORSTRING 0x0005
  130. #define THUNK_MCI_EXECUTE 0x0006
  131. #define THUNK_MCI_SETYIELDPROC 0x0007
  132. #define THUNK_MCI_GETYIELDPROC 0x0008
  133. #define THUNK_MCI_GETCREATORTASK 0x0009
  134. #define THUNK_TIMEGETTIME 0x000A
  135. #define THUNK_APP_EXIT 0x000B
  136. #define THUNK_MCI_ALLOCATE_NODE 0x000C
  137. #define THUNK_MCI_FREE_NODE 0x000D
  138. /* -------------------------------------------------------------------------
  139. ** Interrupt callback stuff
  140. ** -------------------------------------------------------------------------
  141. */
  142. typedef VOID (CALLBACK CB32)( VPCALLBACK_DATA vpCallbackData );
  143. typedef CB32 FAR * LPCB32;
  144. extern VPCALLBACK_DATA FAR PASCAL vpCallbackData; // in STACK.ASM
  145. extern HGLOBAL FAR PASCAL hGlobal; // in STACK.ASM
  146. int FAR PASCAL
  147. InstallInterruptHandler(
  148. void
  149. );
  150. int FAR PASCAL
  151. DeInstallInterruptHandler(
  152. void
  153. );
  154. VOID FAR PASCAL
  155. Notify_Callback_Data(
  156. VPCALLBACK_DATA vpCallbackData
  157. );
  158. BOOL FAR PASCAL
  159. StackInit(
  160. void
  161. );
  162. BOOL NEAR PASCAL
  163. StackTerminate(
  164. void
  165. );