Категория
Информатика
Тип
реферат
Страницы
2 стр.
Дата
11.12.2009
Формат файла
.rtf — Rich Text Format (Wordpad)
Архив
20804.zip — 5.06 kb
  • oformlenie-klassa-v-vide-com-obekta-v-c_20804_1.rtf — 17.96 Kb
  • Readme_docus.me.txt — 125 Bytes
Рейтинг
10  из 10
Оценок
1
Оцените работу
Хорошо  или  Плохо


Текст работы

ские типы данных
В сложном проекте полно собственных констант, структур, множеств используемых в качестве параметров .
#define IDL_NEXT 5
#define IDL_STOP 6:
struct UDT
unsigned long X;
unsigned long Y;
BSTR pbstr;
UDT;:
typedef enum EnumType
First=1,
Seond=4,
Last =10;
class MyCOM :.
void SetType (EnumType T);
void Do(UDT * Dat);
void SetMove (int val);
:.:
// а где то все это вызывается
SetType(First);
UDT Dat,Dat1;:
Do (&Dat,Dat1);
SetMove (IDL_NEXT);
Понятно что, для того чтобы подобным образом можно было вызывать методы COM объекта, служебные структуры, множества и константы должны быть доступны из вне.
Для этого нужно включить их описание в ODL файл.
Множества описываются так.
[
uuid(...),
version(1.0),
helpstring("...")
]
library LibraryName
importlib("b");
importlib("b");
typedef enum
valueName1 = 0,
valueName2 = 1,...
valueNameN = N
EnumType;
..
Передавать в качестве параметров структуры тоже можно. Такие структуры
называются UDT - Defined Type. В IDL описываются
так :
Typedef [uuid(C1D3A8C0-A4AA-11D0-819C-00A0C90FFFC3)] struct UDT
unsigned long X;
unsigned long Y;
BSTR pbstr;
UDT;
Описывать параметры метода можно как VARIANT но тогда придется работать с интерфесом IRecordInfo или как UDT:
Do([in]UDT* pIn, [in,out] pOut);
Передать UDT в такой метод проще простого:
UDT some_data, some_returned_data;
p->Do(&some_data, some_returned_data);
Членами UDT могут



Ваше мнение



CAPTCHA