Win32 API 日本語リファレンス
ホームUI.Animation › IUIAnimationTimerEventHandler

IUIAnimationTimerEventHandler

COM
IID274a7dea-d771-4095-abbd-8df7abd23ce3継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

タイミングイベントを処理するためのメソッドを定義します。

解説(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。

vtbl 3 HRESULT OnPreUpdate()

アニメーションの更新が開始される前に発生するイベントを処理します。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。エラーコードの一覧については、UIAnimation Error Codes を参照してください。

解説(Remarks)

ティックごとに、タイマーは次の順序でメソッドを呼び出します。

OnPreUpdateOnPostUpdate は、IUIAnimationTimer::SetTimerEventHandler メソッドで登録された IUIAnimationTimerEventHandler に対して呼び出されます。OnUpdate は、IUIAnimationTimer::SetTimerUpdateHandler メソッドで登録された IUIAnimationTimerUpdateHandler に対して呼び出されます。
vtbl 4 HRESULT OnPostUpdate()

アニメーションの更新が完了した後に発生するイベントを処理します。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。エラーコードの一覧については、UIAnimation Error Codes を参照してください。

解説(Remarks)

UIAnimationTimer オブジェクトは、IUIAnimationTimerUpdateHandler::OnUpdate の呼び出しが UI_ANIMATION_UPDATE_VARIABLES_CHANGED を返した場合にのみ、このメソッドを呼び出します。

ティックごとに、タイマーは次の順序でメソッドを呼び出します。

OnPreUpdateOnPostUpdate は、IUIAnimationTimer::SetTimerEventHandler で登録された IUIAnimationTimerEventHandler に対して呼び出されます。OnUpdate は、IUIAnimationTimer::SetTimerUpdateHandler で登録された IUIAnimationTimerUpdateHandler に対して呼び出されます。

vtbl 5 HRESULT OnRenderingTooSlow(DWORD framesPerSecond)

アニメーションのレンダリングフレームレートが、望ましい最小フレームレートを下回った場合に発生するイベントを処理します。

framesPerSecondDWORDin現在のフレームレート(フレーム/秒)。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。エラーコードの一覧については、UIAnimation Error Codes を参照してください。

解説(Remarks)

望ましい最小フレームレートは、IUIAnimationTimer::SetFrameRateThreshold メソッドを使用して指定します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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が無いため "{}"(他メソッド/アクティベーションで取得)。