IUIAnimationVariable
COM公式ドキュメント
アニメーション変数を定義します。アニメーション変数は、アニメーション化できる視覚要素を表します。
解説(Remarks)
IUIAnimationVariable は、 IUIAnimationTransition および IUIAnimationStoryboard とともに、アニメーションを構築するための主要なコンポーネントです。アニメーション変数を作成および管理するには、IUIAnimationManager を使用します。
メソッド 14
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
アニメーション変数の現在の値を取得します。
| value | DOUBLE* | out | アニメーション変数の現在の値。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。エラーコードの一覧については、Windows Animation Error Codes を参照してください。
解説(Remarks)
結果は、それぞれ IUIAnimationVariable::SetLowerBound および IUIAnimationVariable::SetUpperBound によって決定される下限および上限の影響を受けることがあります。
例
例については、Read the Animation Variable Values を参照してください。
アニメーション変数の最終値を取得します。これは、現在スケジュールされているすべてのアニメーションが完了した後の値です。(IUIAnimationVariable.GetFinalValue)
| finalValue | DOUBLE* | out | アニメーション変数の最終値。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。エラーコードの一覧については、Windows Animation Error Codes を参照してください。
| 戻り値 | 説明 |
|---|---|
| 現時点ではアニメーション変数の最終値を確定できません。 |
解説(Remarks)
結果は、それぞれ IUIAnimationVariable::SetLowerBound および IUIAnimationVariable::SetUpperBound によって決定される下限および上限の影響を受けることがあります。
アニメーション変数の以前の値を取得します。これは、直近の更新前におけるアニメーション変数の値です。(IUIAnimationVariable.GetPreviousValue)
| previousValue | DOUBLE* | out | アニメーション変数の以前の値。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。エラーコードの一覧については、Windows Animation Error Codes を参照してください。
解説(Remarks)
結果は、それぞれ IUIAnimationVariable::SetLowerBound および IUIAnimationVariable::SetUpperBound によって決定される下限および上限の影響を受けることがあります。
アニメーション変数の現在の値を整数として取得します。
| value | INT* | out | アニメーション変数の現在の値を INT32 値に変換したもの。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。エラーコードの一覧については、Windows Animation Error Codes を参照してください。
解説(Remarks)
値の変換時に使用する丸めモードを指定するには、IUIAnimationVariable::SetRoundingMode メソッドを使用します。
また、結果は、それぞれ IUIAnimationVariable::SetLowerBound および IUIAnimationVariable::SetUpperBound によって決定される下限および上限の影響を受けることがあります。
例
例については、Read the Animation Variable Values を参照してください。
アニメーション変数の最終値を整数として取得します。これは、現在スケジュールされているすべてのアニメーションが完了した後の値です。
| finalValue | INT* | out | アニメーション変数の最終値を INT32 値に変換したもの。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。エラーコードの一覧については、Windows Animation Error Codes を参照してください。
| 戻り値 | 説明 |
|---|---|
| 現時点ではアニメーション変数の最終値を確定できません。 |
解説(Remarks)
値の変換時に使用する丸めモードを指定するには、IUIAnimationVariable::SetRoundingMode メソッドを使用します。
また、結果は、それぞれ IUIAnimationVariable::SetLowerBound および IUIAnimationVariable::SetUpperBound によって決定される下限および上限の影響を受けることがあります。
アニメーション変数の以前の値を整数として取得します。これは、直近の更新前におけるアニメーション変数の値です。
| previousValue | INT* | out | アニメーション変数の以前の値を INT32 値に変換したもの。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。エラーコードの一覧については、Windows Animation Error Codes を参照してください。
解説(Remarks)
値の変換時に使用する丸めモードを指定するには、IUIAnimationVariable::SetRoundingMode メソッドを使用します。
また、結果は、それぞれ IUIAnimationVariable::SetLowerBound および IUIAnimationVariable::SetUpperBound によって決定される下限および上限の影響を受けることがあります。
現在アニメーション変数をアニメーション化しているストーリーボードを取得します。
| storyboard | IUIAnimationStoryboard** | out | 現在のストーリーボード。現在アニメーション変数をアニメーション化しているストーリーボードがない場合は NULL。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。エラーコードの一覧については、UIAnimation Error Codes を参照してください。
アニメーション変数の下限(フロア)を設定します。アニメーション変数の値は、指定した値を下回らないようになります。
| bound | DOUBLE | in | アニメーション変数の下限。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。エラーコードの一覧については、Windows Animation Error Codes を参照してください。
アニメーション変数の上限(シーリング)を設定します。アニメーション変数の値は、指定した値を上回らないようになります。
| bound | DOUBLE | in | アニメーション変数の上限。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。エラーコードの一覧については、Windows Animation Error Codes を参照してください。
アニメーション変数の丸めモードを指定します。
| mode | UI_ANIMATION_ROUNDING_MODE | in | アニメーション変数の丸めモード。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。エラーコードの一覧については、Windows Animation Error Codes を参照してください。
解説(Remarks)
アニメーション変数の丸めモードは、浮動小数点値を整数に変換する方法を決定します。 各変数の既定のモードは UI_ANIMATION_ROUNDING_NEAREST です。
例
例については、Create Animation Variables を参照してください。
アニメーション変数のタグを設定します。
| object | IUnknown* | inoptional | タグのオブジェクト部分。 このパラメーターには NULL を指定できます。 |
| id | DWORD | in | タグの識別子部分。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。エラーコードの一覧については、Windows Animation Error Codes を参照してください。
解説(Remarks)
タグは、整数の識別子 (id) と COM オブジェクト (object) の組み合わせであり、アプリケーションがアニメーション変数を識別するために使用できます。
タグのオブジェクト部分としては NULL も有効であるため、object パラメーターには NULL を指定できます。
アニメーション変数のタグを取得します。
| object | IUnknown** | outoptional | タグのオブジェクト部分。 |
| id | DWORD* | outoptional | タグの識別子部分。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。エラーコードの一覧については、Windows Animation Error Codes を参照してください。
| 戻り値 | 説明 |
|---|---|
| アニメーション変数のタグが設定されていません。 |
解説(Remarks)
タグは、整数の識別子 (id) と COM オブジェクト (object) の組み合わせであり、アプリケーションがアニメーション変数を識別するために使用できます。
これらのパラメーターは省略可能であり、タグの両方の部分を返すことも、識別子部分またはオブジェクト部分のみを返すこともできます。
変数変更ハンドラーを指定します。このハンドラーには、アニメーション変数の値の変更が通知されます。
| handler | IUIAnimationVariableChangeHandler* | inoptional | 変数変更ハンドラー。 指定するオブジェクトは IUIAnimationVariableChangeHandler インターフェイスを実装しているか、NULL である必要があります。 「解説」を参照してください。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。エラーコードの一覧については、Windows Animation Error Codes を参照してください。
解説(Remarks)
handler パラメーターに NULL を渡すと、Windows Animation は以前に渡されたハンドラーオブジェクトへの参照を解放します。この手法は、IUIAnimationManager::Shutdown メソッドを呼び出さずに参照の循環を断ち切るうえで不可欠となる場合があります。
整数変数変更ハンドラーを指定します。このハンドラーには、アニメーション変数の整数値の変更が通知されます。
| handler | IUIAnimationVariableIntegerChangeHandler* | inoptional | 整数変数変更ハンドラー。 指定するオブジェクトは IUIAnimationVariableIntegerChangeHandler インターフェイスを実装しているか、NULL である必要があります。 「解説」を参照してください。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。エラーコードの一覧については、Windows Animation Error Codes を参照してください。
解説(Remarks)
handler パラメーターに NULL を渡すと、Windows Animation は以前に渡されたハンドラーオブジェクトへの参照を解放します。この手法は、IUIAnimationManager::Shutdown メソッドを呼び出さずに参照の循環を断ち切るうえで不可欠となる場合があります。
IUIAnimationVariableIntegerChangeHandler::OnIntegerValueChanged は、丸めた値が前回の更新から変化した場合にのみ呼び出されます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IUIAnimationVariable "{8CEEB155-2849-4CE5-9448-91FF70E1E4D9}" #usecom global IUIAnimationVariable IID_IUIAnimationVariable "{}" #comfunc global IUIAnimationVariable_GetValue 3 var #comfunc global IUIAnimationVariable_GetFinalValue 4 var #comfunc global IUIAnimationVariable_GetPreviousValue 5 var #comfunc global IUIAnimationVariable_GetIntegerValue 6 var #comfunc global IUIAnimationVariable_GetFinalIntegerValue 7 var #comfunc global IUIAnimationVariable_GetPreviousIntegerValue 8 var #comfunc global IUIAnimationVariable_GetCurrentStoryboard 9 sptr #comfunc global IUIAnimationVariable_SetLowerBound 10 double #comfunc global IUIAnimationVariable_SetUpperBound 11 double #comfunc global IUIAnimationVariable_SetRoundingMode 12 int #comfunc global IUIAnimationVariable_SetTag 13 sptr,int #comfunc global IUIAnimationVariable_GetTag 14 sptr,var #comfunc global IUIAnimationVariable_SetVariableChangeHandler 15 sptr #comfunc global IUIAnimationVariable_SetVariableIntegerChangeHandler 16 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IUIAnimationVariable "{8CEEB155-2849-4CE5-9448-91FF70E1E4D9}" #usecom global IUIAnimationVariable IID_IUIAnimationVariable "{}" #comfunc global IUIAnimationVariable_GetValue 3 sptr #comfunc global IUIAnimationVariable_GetFinalValue 4 sptr #comfunc global IUIAnimationVariable_GetPreviousValue 5 sptr #comfunc global IUIAnimationVariable_GetIntegerValue 6 sptr #comfunc global IUIAnimationVariable_GetFinalIntegerValue 7 sptr #comfunc global IUIAnimationVariable_GetPreviousIntegerValue 8 sptr #comfunc global IUIAnimationVariable_GetCurrentStoryboard 9 sptr #comfunc global IUIAnimationVariable_SetLowerBound 10 double #comfunc global IUIAnimationVariable_SetUpperBound 11 double #comfunc global IUIAnimationVariable_SetRoundingMode 12 int #comfunc global IUIAnimationVariable_SetTag 13 sptr,int #comfunc global IUIAnimationVariable_GetTag 14 sptr,sptr #comfunc global IUIAnimationVariable_SetVariableChangeHandler 15 sptr #comfunc global IUIAnimationVariable_SetVariableIntegerChangeHandler 16 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。