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.

70 lines
2.0 KiB

  1. #if !defined(CTRL__Animation_h__INCLUDED)
  2. #define CTRL__Animation_h__INCLUDED
  3. #pragma once
  4. #include "Extension.h"
  5. #if ENABLE_MSGTABLE_API
  6. //------------------------------------------------------------------------------
  7. class DuAnimation :
  8. public AnimationImpl<DuAnimation, DuExtension>
  9. {
  10. // Construction
  11. public:
  12. inline DuAnimation();
  13. ~DuAnimation();
  14. static HRESULT InitClass();
  15. static HRESULT PreBuild(DUser::Gadget::ConstructInfo * pci);
  16. HRESULT PostBuild(DUser::Gadget::ConstructInfo * pci);
  17. void Destroy(BOOL fFinal);
  18. // Public API
  19. public:
  20. dapi HRESULT ApiOnRemoveExisting(Animation::OnRemoveExistingMsg * pmsg);
  21. dapi HRESULT ApiOnDestroySubject(Animation::OnDestroySubjectMsg * pmsg);
  22. dapi HRESULT ApiOnAsyncDestroy(Animation::OnAsyncDestroyMsg * pmsg);
  23. dapi HRESULT ApiAddRef(Animation::AddRefMsg *) { AddRef(); return S_OK; }
  24. dapi HRESULT ApiRelease(Animation::ReleaseMsg *) { Release(); return S_OK; }
  25. dapi HRESULT ApiSetTime(Animation::SetTimeMsg * pmsg);
  26. // Implementation
  27. protected:
  28. static void CALLBACK
  29. RawActionProc(GMA_ACTIONINFO * pmai);
  30. void ActionProc(GMA_ACTIONINFO * pmai);
  31. void CleanupChangeGadget();
  32. inline void AddRef();
  33. inline void Release();
  34. // Data
  35. protected:
  36. static MSGID s_msgidComplete;
  37. HACTION m_hact;
  38. Animation::ETime
  39. m_time; // Time when completed
  40. UINT m_cRef;
  41. Interpolation *
  42. m_pipol;
  43. Flow * m_pgflow;
  44. BOOL m_fStartDestroy:1;
  45. BOOL m_fProcessing:1;
  46. #if DBG
  47. UINT m_DEBUG_cUpdates;
  48. #endif
  49. };
  50. #endif // ENABLE_MSGTABLE_API
  51. #include "Animation.inl"
  52. #endif // CTRL__Animation_h__INCLUDED