Sets the fields in a VARIANT
pointer.
com
set-variant variant type &optional value
variant⇩ |
A foreign pointer to an object of type VARIANT . |
type⇩ |
A keyword specifying the type of value. |
value⇩ |
The value to store in variant. |
The function set-variant
can be used to set the type and value of a VARIANT
object. It is useful if the default type provided by the automatic conversion for VARIANT
return values is incorrect. The value of meaning of type is an specified below.
If type is nil
then the actual VT code is chosen dynamically according to the Lisp type of value (see Automation types, VT codes and their corresponding Lisp types).
If type is a cons of the form (:array . type)
for some keyword type, then variant is set to contain an array of objects of type. Each element of value is expected to be suitable for conversion to type.
If type is :array
or another list starting with :array
then variant is set to contain an array of VARIANT
objects with the same dimensions as value. Each element of value is converted as if by calling set-variant
with a type chosen as follows:
:array
, then nil
is passed as the element type.(:array array)
then array should be an array with the same dimensions as value. The element type is taken from the corresponding element of array.(:array . types)
then types should be a suitable value for the :initial-contents
argument to make-array to make an array of types with the same dimensions as value. The element type is taken from the corresponding element of that array. In particular, if value is a vector of length n then type should be a list of the form (:array type-1 type-2 ... type-n)
.
(set-variant v :null)
(set-variant v :short 10)
(set-variant v '(:pointer :short) ptr)
(set-variant v '(:array :short :int) #(1 2))
COM/Automation User Guide and Reference Manual - 01 Dec 2021 19:38:41