You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.6 KiB
55 lines
1.6 KiB
#define _CRT_SECURE_NO_WARNINGS
|
|
#include "epm_handler_common.h"
|
|
|
|
int connor_set_prop_value(void * returnValue) {
|
|
int ifail = ITK_ok;
|
|
int count = 0;
|
|
tag_t *items = NULL;
|
|
char * propname = NULL;
|
|
char * propvalue = NULL;
|
|
|
|
USERARG_get_tag_array_argument(&count, &items);
|
|
USERARG_get_string_argument(&propname);
|
|
USERARG_get_string_argument(&propvalue);
|
|
POM_AM__set_application_bypass(true);
|
|
for (int i = 0; i < count; i++)
|
|
{
|
|
|
|
tag_t type = NULLTAG, item_type = NULLTAG;
|
|
logical isok = FALSE;
|
|
char * object_type = NULL, *class_id = NULL;
|
|
tag_t attr_id = NULLTAG, class_tag = NULLTAG, tag_instance = NULLTAG;
|
|
ITKCALL(TCTYPE_ask_object_type(items[i], &type));
|
|
ITKCALL(TCTYPE_find_type("Form", "", &item_type));
|
|
ITKCALL(TCTYPE_is_type_of(type, item_type, &isok));
|
|
if (isok)
|
|
{
|
|
|
|
printf("是表单类型获得存储类对象\n");
|
|
//ITKCALL(FORM_ask_pom_instance(items[i], &tag_instance));
|
|
}
|
|
else
|
|
{
|
|
tag_instance = items[i];
|
|
}
|
|
|
|
ITKCALL(AOM_lock(tag_instance));
|
|
ITKCALL(ifail = POM_class_of_instance(tag_instance, &class_tag));
|
|
ITKCALL(ifail = POM_name_of_class(class_tag, &class_id));
|
|
printf("对象类型:%s\n", class_id);
|
|
ITKCALL(ifail = POM_attr_id_of_attr(propname, class_id, &attr_id));
|
|
ITKCALL(POM_refresh_instances_any_class(1, &tag_instance, POM_modify_lock));
|
|
ITKCALL(POM_set_attr_string(1, &tag_instance, attr_id, propvalue));
|
|
ITKCALL(POM_save_instances(1, &tag_instance, true));
|
|
ITKCALL(AOM_unlock(tag_instance));
|
|
DOFREE(object_type);
|
|
DOFREE(class_id);
|
|
}
|
|
POM_AM__set_application_bypass(false);
|
|
|
|
DOFREE(propname);
|
|
DOFREE(propvalue);
|
|
|
|
|
|
return ITK_ok;
|
|
} |