Overview of Functions

The data manipulation functions are summarized in the following table.

Category Function name Purpose
Array manipulation SafeArrayAccessData Increments the lock count of an array and returns a pointer to array data.
SafeArrayAllocData Allocates memory for a safe array based on a descriptor created with SafeArrayAllocDescriptor.
SafeArrayAllocDescriptor Allocates memory for a safe array descriptor.
SafeArrayCopy Copies an existing array.
SafeArrayCopyData Copies a source array to a target array after releasing source resources.
SafeArrayCreate Creates a new array descriptor.
SafeArrayCreateVector Creates a one-dimensional array whose lower bound is always zero.
SafeArrayDestroy Destroys an array descriptor.
SafeArrayDestroyData Frees memory used by the data elements in a safe array.
SafeArrayDestroyDescriptor Frees memory used by a safe array descriptor.
SafeArrayGetDim Returns the number of dimensions in an array.
SafeArrayGetElement Retrieves an element of an array.
SafeArrayGetElemsize Returns the size of an element.
SafeArrayGetLBound Retrieves the lower bound for a given dimension.
SafeArrayGetUBound Retrieves the upper bound for a given dimension.
SafeArrayLock Increments the lock count of an array.
SafeArrayPtrOfIndex Returns a pointer to an array element.
SafeArrayPutElement Assigns an element into an array.
SafeArrayRedim Resizes a safe array.
SafeArrayUnaccessData Frees a pointer to array data and decrements the lock count of the array.
SafeArrayUnlock Decrements the lock count of an array.
String manipulation SysAllocString Creates and initializes a string.
SysAllocStringByteLen Creates a zero-terminated string of a specified length (32-bit only).
SysAllocStringLen Creates a string of a specified length.
SysFreeString Frees a previously created string.
SysReAllocString Changes the size and value of a string.
SysReAllocStringLen Changes the size of an existing string.
SysStringByteLen Returns the length of a string in bytes (32-bit only).
SysStringLen Returns the length of a string.
Variant manipulation VariantChangeType Converts a variant to another type.
VariantChangeTypeEx Converts a variant to another type, using a locale identifier (LCID).
VariantClear Releases resources and sets a variant to VT_EMPTY.
VariantCopy Copies a variant.
VariantCopyInd Copies variants that may contain a pointer.
VariantInit Initializes a variant.
Data type conversion VariantChangeType VariantChangeTypeEx Converts specific types of variants to other variant types.
BSTR and vector conversion VectorFromBstr Returns a vector, assigning each character in the BSTR to an element of the vector.
BstrFromVector Returns a BSTR, assigning each element of the vector to a character in the BSTR.
Numeric parsing VarParseNumFromStr Parses a string, and creates a type-independent desciption of the number it represents.
VarNumFromParseNum Converts the parse results to a number.
Time and date conversion DosDateTimeToVariantTime Converts MS-DOS date and time representations to a variant time.
VariantTimeToDosDateTime Converts a variant time to MS-DOS date and time representations.
VariantTimeToSystemTime Converts a variant time to system date and time representations.
GetAltMonthNames Retrieves the secondary month names.
SystemTimeToVariantTime Converts system date and time representations to a variant time.
VarDateFromUdate Packs a date.
VarUdateFromDate Unpacks a date