CreateUnoValue Function

傳回表示參照 Uno 類型系統精確定型的值的物件。

該物件被傳送到 Uno 時,將自動轉換成相應的 Any 類型,此類型必須由完全合格的 Uno 類型名稱來指定。


LibreOffice API 經常使用 Any 類型。它與其他環境中的變體型相對應。Any 類型具有一個任意的 Uno 類型,並用於通用的 Uno 介面中。


oUnoValue = CreateUnoValue( "[]byte", MyBasicValue ) ' to get a byte sequence.

If CreateUnoValue cannot be converted to the specified Uno type, and error occurs. For the conversion, the TypeConverter service is used.

This function is intended for use in situations where the default Basic to Uno type converting mechanism is insufficient. This can happen when you try to access generic Any based interfaces, such as XPropertySet::setPropertyValue( Name, Value ) or X???Container::insertBy???( ???, Value ), from LibreOffice Basic. The Basic runtime does not recognize these types as they are only defined in the corresponding service.

In this type of situation, LibreOffice Basic chooses the best matching type for the Basic type that you want to convert. However, if the wrong type is selected, an error occurs. You use the CreateUnoValue() function to create a value for the unknown Uno type.

You can also use this function to pass non-Any values, but this is not recommend. If Basic already knows the target type, using the CreateUnoValue() function will only lead to additional converting operations that slow down the Basic execution.

Please support us!