CreateUnoValue-funktion
Returnerer et objekt som repræsenterer en nøje indtastet værdi, refererende til Uno-type systemet.
Dette objekt konverteres automatisk til en Any af den tilsvarende type når den overføres til Uno. Typen skal være angivet ved dets fulde kvalificerede Uno-type navn.
LibreOffice API'en bruger ofte Any-typen. Det er modparten til Variant-typen kendt fra andre miljøer. Any-typen indeholder en vilkårlig Uno-type og bruges i generiske Uno-grænseflader.
Syntaks:
oUnoValue = CreateUnoValue( "[]Byte", MyBasicValue ) ' for at få en bytesekvens.
Hvis CreateUnoValue ikke kan konverteres til den angivne Uno-type, forekommer en fejl. Til konverteringen, bliver tjenesten TypeConverter brugt.
Denne funktion er påtænkt til brug i situationer hvor standard Basic til Uno typekonverteringsmekanismen er utilstrækkelig. Dette kan ske, når du forsøger at tilgå generiske Any-baserede grænseflader, såsom XPropertySet::setPropertyValue( Name, Value ) eller X???Container::insertBy???( ???, Value ), fra LibreOffice Basic. Basic kørselstidmodulet genkender ikke disse typer, da de kun er definerede i den tilsvarende service.
I denne situation vælger LibreOffice Basic den bedste matchende type for Basic-typen, som du vil konvertere. Hvis den forkerte type er valgt, opstår der dog en fejl. Brug funktionen CreateUnoValue() for at oprette en værdi for den ukendte Uno-type.
Du kan også bruge denne funktion til at overføre ikke-Any værdier, men dette er ikke anbefalet. Hvis Basic allerede kender måltypen, vil brugen af funktionen CreateUnoValue() kun føre til yderligere konverteringsoperationer, som gør udførelsen af Basic langsommere.