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

#if !defined(CTRL__Animation_h__INCLUDED)
#define CTRL__Animation_h__INCLUDED
#pragma once
#include "Extension.h"
#if ENABLE_MSGTABLE_API
//------------------------------------------------------------------------------
class DuAnimation :
public AnimationImpl<DuAnimation, DuExtension>
{
// Construction
public:
inline DuAnimation();
~DuAnimation();
static HRESULT InitClass();
static HRESULT PreBuild(DUser::Gadget::ConstructInfo * pci);
HRESULT PostBuild(DUser::Gadget::ConstructInfo * pci);
void Destroy(BOOL fFinal);
// Public API
public:
dapi HRESULT ApiOnRemoveExisting(Animation::OnRemoveExistingMsg * pmsg);
dapi HRESULT ApiOnDestroySubject(Animation::OnDestroySubjectMsg * pmsg);
dapi HRESULT ApiOnAsyncDestroy(Animation::OnAsyncDestroyMsg * pmsg);
dapi HRESULT ApiAddRef(Animation::AddRefMsg *) { AddRef(); return S_OK; }
dapi HRESULT ApiRelease(Animation::ReleaseMsg *) { Release(); return S_OK; }
dapi HRESULT ApiSetTime(Animation::SetTimeMsg * pmsg);
// Implementation
protected:
static void CALLBACK
RawActionProc(GMA_ACTIONINFO * pmai);
void ActionProc(GMA_ACTIONINFO * pmai);
void CleanupChangeGadget();
inline void AddRef();
inline void Release();
// Data
protected:
static MSGID s_msgidComplete;
HACTION m_hact;
Animation::ETime
m_time; // Time when completed
UINT m_cRef;
Interpolation *
m_pipol;
Flow * m_pgflow;
BOOL m_fStartDestroy:1;
BOOL m_fProcessing:1;
#if DBG
UINT m_DEBUG_cUpdates;
#endif
};
#endif // ENABLE_MSGTABLE_API
#include "Animation.inl"
#endif // CTRL__Animation_h__INCLUDED