SAFEARRAY (C++)
Description
The following example is a console application that:
- Creates a SAFEARRAY.
- Refers a SAFEARRAY element.
- Destroys a SAFEARRAY.
Code
#pragma hdrstop
#include <tchar.h>
#include <System.hpp>
#include <stdint.h>
// ---------------------------------------------------------------------------
#pragma argsused
int _tmain(int argc, _TCHAR* argv[]) {
	// Specify the bounds:
	// -- dim. count = 2
	// -- element count = 8 for each dimension
	// -- low bound = 0 for each dimension
	SAFEARRAYBOUND mySafeArrayBounds[2] = { {8, 0}, {8, 0}};
	// Create mySafeArray
	SAFEARRAY *mySafeArray =
		SafeArrayCreate(VT_I2 /* var. type: 2 byte signed int */ ,
		2 /* dim. count */ , mySafeArrayBounds);
	// Set value 100 to element [3][7]
	int16_t *elementPtr = ((int16_t*)mySafeArray->pvData) +
		3 * mySafeArray->rgsabound[0].cElements + 7;
	*elementPtr = 100;
	// Destroy mySafeArray
	SafeArrayDestroy(mySafeArray);
	return 0;
}
Uses
- System.SAFEARRAY ( fr | de | ja )
- System.VarUtils.SafeArrayCreate ( fr | de | ja )
- System.VarUtils.SafeArrayDestroy ( fr | de | ja )