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.

78 lines
2.2 KiB

  1. #if !defined(INC__DUserMotion_h__INCLUDED)
  2. #define INC__DUserMotion_h__INCLUDED
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. /***************************************************************************\
  7. *
  8. * Actions
  9. *
  10. \***************************************************************************/
  11. struct GMA_ACTION;
  12. DECLARE_HANDLE(HACTION);
  13. struct GMA_ACTIONINFO
  14. {
  15. HACTION hact; // Handle
  16. void * pvData; // Caller data
  17. float flDuration; // Duration in seconds
  18. float flProgress; // Progress (0 - 1)
  19. int cEvent; // Number of callbacks in this period
  20. int cPeriods; // Number of periods
  21. BOOL fFinished; // TODO: Change to a command
  22. };
  23. typedef void (CALLBACK * ACTIONPROC)(GMA_ACTIONINFO * pmai);
  24. struct GMA_ACTION
  25. {
  26. DWORD cbSize; // Size of structure
  27. float flDelay; // Delay in seconds before starting
  28. float flDuration; // Duration in seconds of each period (0 = single shot)
  29. float flPeriod; // Time between beginnings of repeats (0 = no gap)
  30. UINT cRepeat; // Number of times to repeat (0 = single, -1 = infinite)
  31. DWORD dwPause; // Pause between callbacks (0 = default, -1 = none)
  32. ACTIONPROC pfnProc; // Function to call
  33. void * pvData; // Caller data
  34. };
  35. DUSER_API HACTION WINAPI CreateAction(const GMA_ACTION * pma);
  36. DUSER_API BOOL WINAPI GetActionTimeslice(DWORD * pdwTimeslice);
  37. DUSER_API BOOL WINAPI SetActionTimeslice(DWORD dwTimeslice);
  38. /***************************************************************************\
  39. *
  40. * Animations
  41. *
  42. \***************************************************************************/
  43. class Visual;
  44. namespace DUser
  45. {
  46. struct KeyFrame
  47. {
  48. DWORD cbSize;
  49. };
  50. }; // namespace DUser
  51. DUSER_API PRID WINAPI DUserGetAlphaVertexPRID();
  52. DUSER_API PRID WINAPI DUserGetRectPRID();
  53. DUSER_API PRID WINAPI DUserGetRotatePRID();
  54. DUSER_API PRID WINAPI DUserGetScalePRID();
  55. DUSER_API PRID WINAPI DUserGetLightPRID();
  56. #ifdef __cplusplus
  57. }; // extern "C"
  58. #endif
  59. #endif // INC__DUserMotion_h__INCLUDED