Статья: Оформление класса в виде COM объекта в C++

{

if ((id.vt==VT_EMPTY)&&(Name.vt==VT_EMPTY))

{AddRec() ; return S_OK;}

if ((id.vt==VT_I4)&&(Name.vt==VT_EMPTY))

{AddRec(id.lVal) ; return S_OK;}

if ((id.vt==VT_I4)&&(Name.vt== VT_BSTR))

{AddRec(id.lVal, Name. bstrVal ) ; return S_OK;}

:

}

Этого вполне достаточно, но можно еще изменить объявление метода интерфейса в odl вот так

HRESULT Add(VARIANT [optional, in]id, [optional,in]VARIANT S);

это позволит вызывать метод , более красиво.

Пример на VB

MyObject.Add // Любой из вариантов должен работать

MyObject.Add 15

MyObject.Add 15, "Var"

Пользовательские типы данных

В сложном проекте полно собственных констант, структур, множеств используемых в качестве параметров .

#define IDL_NEXT 5

#define IDL_STOP 6

:

struct UDT

{

unsigned long X;

unsigned long Y;

BSTR pbstr;

} UDT;

:

typedef enum EnumType

К-во Просмотров: 248
Бесплатно скачать Статья: Оформление класса в виде COM объекта в C++