IUIAnimationTimerEventHandler
COM公式ドキュメント
タイミングイベントを処理するためのメソッドを定義します。
解説(Remarks)
<a href="/windows/desktop/api/uianimation/nf-uianimation-iuianimationtimer-settimereventhandler">SetTimerEventHandler</a> を使用して、
<a href="/windows/desktop/api/uianimation/nn-uianimation-iuianimationtimer">IUIAnimationTimer</a> のインスタンスに対するタイミングイベントのハンドラーを指定します。
例
例については、アニメーション変数の値の読み取りとフレームの描画を参照してください。
メソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
アニメーションの更新が開始される前に発生するイベントを処理します。
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。エラーコードの一覧については、UIAnimation Error Codes を参照してください。
解説(Remarks)
ティックごとに、タイマーは次の順序でメソッドを呼び出します。
- IUIAnimationTimerEventHandler::OnPreUpdate
- IUIAnimationTimerUpdateHandler::OnUpdate
- IUIAnimationTimerEventHandler::OnPostUpdate
アニメーションの更新が完了した後に発生するイベントを処理します。
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。エラーコードの一覧については、UIAnimation Error Codes を参照してください。
解説(Remarks)
UIAnimationTimer オブジェクトは、IUIAnimationTimerUpdateHandler::OnUpdate の呼び出しが UI_ANIMATION_UPDATE_VARIABLES_CHANGED を返した場合にのみ、このメソッドを呼び出します。
ティックごとに、タイマーは次の順序でメソッドを呼び出します。
- IUIAnimationTimerEventHandler::OnPreUpdate
- IUIAnimationTimerUpdateHandler::OnUpdate
- IUIAnimationTimerEventHandler::OnPostUpdate
OnPreUpdate と OnPostUpdate は、IUIAnimationTimer::SetTimerEventHandler で登録された IUIAnimationTimerEventHandler に対して呼び出されます。OnUpdate は、IUIAnimationTimer::SetTimerUpdateHandler で登録された IUIAnimationTimerUpdateHandler に対して呼び出されます。
アニメーションのレンダリングフレームレートが、望ましい最小フレームレートを下回った場合に発生するイベントを処理します。
| framesPerSecond | DWORD | in | 現在のフレームレート(フレーム/秒)。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。エラーコードの一覧については、UIAnimation Error Codes を参照してください。
解説(Remarks)
望ましい最小フレームレートは、IUIAnimationTimer::SetFrameRateThreshold メソッドを使用して指定します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IUIAnimationTimerEventHandler "{274A7DEA-D771-4095-ABBD-8DF7ABD23CE3}"
#usecom global IUIAnimationTimerEventHandler IID_IUIAnimationTimerEventHandler "{}"
#comfunc global IUIAnimationTimerEventHandler_OnPreUpdate 3
#comfunc global IUIAnimationTimerEventHandler_OnPostUpdate 4
#comfunc global IUIAnimationTimerEventHandler_OnRenderingTooSlow 5 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。