IBM Lotus Symphony


CreateUnoValue 関数 [実行時]

Uno タイプを明示的に指定された値を示すオブジェクトを返します。

このオブジェクトは Uno に渡す際に、自動的に該当する Any タイプに変換されます。これらのタイプ指定は、完全な Uno タイプ名を指定する必要があります。

ノートアイコン Lotus® Symphony™ API では Any タイプがよく使われます。これは、他の環境で使われる Variant タイプと対をなすものです。Any タイプは一般の Uno インターフェースで利用されているもので、任意の Uno タイプを 1 つ格納できます。

構文:

oUnoValue = CreateUnoValue( "[]byte", MyBasicValue ) でバイトシーケンスを取得します。

指定した Uno タイプへの CreateUnoValue による変換ができない場合は、エラーが発生します。変換には TypeConverter サービスを使用します。

この関数が用意されているのは、デフォルトで使用される Basic から Uno タイプへの変換では処理しきれない場合があり、そうした状況に対処するためです。こうした状況が発生しうるのは、XPropertySet::setPropertyValue( Name, Value ) や X???Container::insertBy???( ???, Value ) のような Any を使用した一般のインターフェースに Lotus Symphony Basic からアクセスしようとした場合です。 これらのタイプは、対応するサービス内でのみ定義されているため、Basic ランタイムは認識することができません。

このような状況が発生した場合、Lotus Symphony Basic は、変換する Basic タイプに最も近いタイプを選択します。 ただしこの結果として不適切なタイプが選択されると、エラーが発生します。CreateUnoValue() 関数を使用することにより、未知の Uno タイプの値を作成できます。

またこの関数を使って Any タイプ以外の値を渡すこともできますが、推奨される使用法ではありません。ターゲットとするタイプが Basic 側で既知である場合に CreateUnoValue() 関数を使用しても、不必要な変換処理が追加されるだけで、Basic の実行速度が低下します。


製品フィードバック | その他の資料 | 商標