Как правильно вызвать метод ActiveX MS FLEX GRID с помощью С

Панели оператора PP/OP/TP/TD/MP.
Программные пакеты ProTool/WinCC flexible, SCADA система WinCC
Usver
Posts: 193
Joined: Fri Feb 24, 2012 8:28 am

Как правильно вызвать метод ActiveX MS FLEX GRID с помощью С

Post by Usver »

Добрый день. У меня такой вопрос: нужно с помощью С-скрипта изменить ширину колонки таблицы MS FLEX GRID.
Как это правильно сделать?
Скрипт написал так:

Code: Select all

#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#define GetObject GetObject

__object *pdl=NULL;
__object *pic=NULL;
__object *obj=NULL;
long Size = 1500;

//Control1 - это ActiveX MS FLEX GRID
pdl = __object_create("PDLRuntime");
pic=pdl->GetPicture("");
obj = pic->GetObject("Control1");
printf("Size of ColWidth(0) = %d.\r\n", obj ->ColWidth(0)); //Работает;
obj->ColWidth(0) =  200; //Выдает ошибку

__object_delete(pic);
__object_delete(obj);
__object_delete(pdl);
}
На С-скрипте почему-то не работает, а на VB-скрипте все нормально. В чем загвоздка? Что не так?

P.S. Как я понял, этот ActiveX присутствует в системе по умолчанию.
Usver
Posts: 193
Joined: Fri Feb 24, 2012 8:28 am

Re: Как правильно вызвать метод ActiveX MS FLEX GRID с помощ

Post by Usver »

Было опробовано на WinCC 6.0, 6.2, 7.0, 7.4. Ну не хочет эта штука работать таким макаром. Что можно придумать? Как можно сделать, если С-скрипт на WinCC не поддерживает полноценный С и тем более С++. Бьюсь уже месяца два. (Терпеть не перевариваю, если чего-то не понятно.) Кто знает как этот чертов компилятор у них (винсиси) работает, дайте пожалуйста ответ.

Да и вообще, где описан тип __object и метод __object_create? В каком заголовочнике и в какой документации?