è definito cosi:

SAFEARRAYBOUND aDim[1]; // a one dimensional array
aDim[0].lLbound= 0; //arrays start with index 0
aDim[0].cElements= 1;

SAFEARRAY* pSAListNamesections = SafeArrayCreate(VT_VARIANT, 1, aDim);

e viene riempito da una chiamata ad un oggetto com che restituisce delle stringhe:
questa è la definizione:

Syntax
SapObject.SapModel.PropFrame.GetNameList

VB6 Procedure
Function GetNameList(ByRef NumberNames As Long, ByRef MyName() As String, Optional ByVal PropType As eFramePropType) As Long

Parameters
NumberNames

The number of frame section property names retrieved by the program.

MyName

This is a one-dimensional array of frame section property names. The MyName array is created as a dynamic, zero-based, array by the API user:

Dim MyName() as String

The array is dimensioned to (NumberNames - 1) inside the SAP2000 program, filled with the names, and returned to the API user.

e lo carico cosi:
m_pSapModel->PropFrame->GetNameList(&pNumberNames, &pSAListNamesections,SAP2000::SECTION_RECTANGULAR) ;


in pSAListNamesections ci sono le mie stringhe