This function is intended to be used by libraries based on GVariant
that want to provide g_variant_get()-like functionality to their
users.
The API is more general than g_variant_get() to allow a wider range
of possible uses.
format_string must still point to a valid format string, but it only
need to be nul-terminated if endptr is NULL. If endptr is
non-NULL then it is updated to point to the first character past the
end of the format string.
app is a pointer to a va_list. The arguments, according to
format_string, are collected from this va_list and the list is left
pointing to the argument following the last.
These two generalisations allow mixing of multiple calls to
g_variant_new_va() and g_variant_get_va() within a single actual
varargs call by the user.
format_string determines the C types that are used for unpacking
the values and also determines if the values are copied or borrowed,
see the section on
GVariant Format Strings.
Since 2.24
This function is intended to be used by libraries based on GVariant that want to provide g_variant_get()-like functionality to their users. The API is more general than g_variant_get() to allow a wider range of possible uses. format_string must still point to a valid format string, but it only need to be nul-terminated if endptr is NULL. If endptr is non-NULL then it is updated to point to the first character past the end of the format string. app is a pointer to a va_list. The arguments, according to format_string, are collected from this va_list and the list is left pointing to the argument following the last. These two generalisations allow mixing of multiple calls to g_variant_new_va() and g_variant_get_va() within a single actual varargs call by the user. format_string determines the C types that are used for unpacking the values and also determines if the values are copied or borrowed, see the section on GVariant Format Strings. Since 2.24