+for(prop = _class->conversions.first; prop; prop = prop->next)
+{
+unsigned int refProp = 0x0;
+struct __ecereNameSpace__ecere__com__Class * c;
+
+if(!strcmp(prop->name, _class->base->fullName))
+refProp = 0x1;
+else if((c = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, prop->name)))
+{
+struct __ecereNameSpace__ecere__com__Property * p;
+
+for(p = c->conversions.first; p; p = p->next)
+{
+if(!strcmp(p->name, _class->base->fullName) && !p->Set && !p->Get)
+{
+refProp = 0x1;
+break;
+}
+}
+}
+if(refProp)
+{
+if(prop->Set && prop->Get)
+{
+char * dts = _class->base->dataTypeString;
+
+if(!strcmp(dts, "double"))
+{
+double d = ((double (*)(double))(void *)prop->Set)(*(double *)data);
+
+return ((char * (*)(void *, void *, char *, void *, unsigned int *))(void *)__ecereClass_double->_vTbl[__ecereVMethodID_class_OnGetString])(__ecereClass_double, &d, tempString, fieldData, needClass);
+}
+else if(!strcmp(dts, "float"))
+{
+float d = ((float (*)(float))(void *)prop->Set)(*(float *)data);
+
+return ((char * (*)(void *, void *, char *, void *, unsigned int *))(void *)__ecereClass_float->_vTbl[__ecereVMethodID_class_OnGetString])(__ecereClass_float, &d, tempString, fieldData, needClass);
+}
+else if(!strcmp(dts, "int"))
+{
+int d = ((int (*)(int))(void *)prop->Set)(*(int *)data);
+
+return ((char * (*)(void *, void *, char *, void *, unsigned int *))(void *)__ecereClass_int->_vTbl[__ecereVMethodID_class_OnGetString])(__ecereClass_int, &d, tempString, fieldData, needClass);
+}
+else if(!strcmp(dts, "int64"))
+{
+long long d = ((long long (*)(long long))(void *)prop->Set)(*(long long *)data);
+
+return ((char * (*)(void *, void *, char *, void *, unsigned int *))(void *)__ecereClass_int64->_vTbl[__ecereVMethodID_class_OnGetString])(__ecereClass_int64, &d, tempString, fieldData, needClass);
+}
+}
+else
+break;
+}
+}
+dataType = __ecereNameSpace__ecere__com__eSystem_FindClass(module, _class->dataTypeString);