This can be used to cycle through defined items.
If there is no match, an item whose IsProperty ItemIsEnum.NotFound value is true is returned. 
      
    
            
<DllImport(uCalcDLL, CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.Cdecl, EntryPoint:="GetItemOfProperty")> _
Private Function GetItemOfProperty__(ByVal uCalcHandle As IntPtr,ByVal Property_ As ItemIsEnum , ByVal nth As Int32 , ByVal DataTypeName As String  ) As IntPtr
End Function
            
          
        
            
[DllImport(uCalcDLL, CharSet=CharSet.Ansi, CallingConvention=CallingConvention.Cdecl, EntryPoint="GetItemOfProperty")]
protected static extern IntPtr GetItemOfProperty_(IntPtr uCalcHandle,ItemIsEnum Property_ ,  Int32 nth ,  string DataTypeName  );
            
          
        
            
{DLLImport}function GetItemOfProperty__(uCalcHandle: System.Pointer;Property_: ItemIsEnum ; nth: Int32 ; DataTypeName: AnsiString): System.Pointer; cdecl; external uCalcDLL name 'GetItemOfProperty';
            
          
        
            
typedef uCalcPtr (* __GetItemOfProperty)(void *uCalcHandle, ItemIsEnum Property_ ,  int32_t nth ,  CONSTCHAR DataTypeName   ); 
            
          
        
            
[DllImport(uCalcLib, CharSet=CharSet::Ansi, CallingConvention=CallingConvention::Cdecl, EntryPoint = "GetItemOfProperty")]
static uCalcPtr GetItemOfProperty_(void *  uCalcHandle, ItemIsEnum Property_ ,  Int32 nth ,  MARSHALSTR DataTypeName);