Результат будет тот же самый, но все написано только на СИ. Вам предложат выбрать в параметре CompositeDataType два подпараметра: Long или Строка. Как на рисунке
http://www.rf-net.org/images/igpcompositedatatype.jpg
Как сделать, чтобы вместо названий по умолчанию "Long" или "Строка" были те названия которые нужно?
Если использовать VBA, то можно сделать так
Option Explicit
Implements IGPDataType
Implements IGPStringType
Private m_GPDataType As IGPDataType
Private Sub Class_Initialize()
Set m_GPDataType = New esriGeoprocessing.GPStringType
End Sub
Private Property Get IGPDatatype_ControlCLSID() As esriSystem.UID
‘Можно подключить свой собственный интерфейс
Dim u As New UID
u.Value = "BioSAControl.myUserControl"
Set IGPDatatype_ControlCLSID = u
Или уже существующий
Set IGPDatatype_ControlCLSID = m_GPDataType.ControlCLSID
End Property
Далее
pGPCompType.AddDataType [ваш GPDatatypeClass]
В VBA проходит все, но если создать библиотеку в VB и подключить ее к ArcTooBox, то при открытии инструмента с собственным GPDatatypeClass ArcGIS виснет. Возможно в случае с VB нужно использовать IMdElementCtrl, но как?
Создается впечатление, что при инициализации интерфейса ArcGIS не читает содержимое IGPDatatype_ControlCLSID() а для работы использует CLSID класса