Сущность технологии СОМ. Библиотека программиста   ::   Бокс Дональд

Страница: 469 из 528



// зарезервировано, должно равняться нулю

[in] LCID lcid,

// locale ID

// код локализации

[out] ITypeInfo ** ppTInfo);

// put it here!

// помещаем это здесь!

// resolve member/parameter names to DISPIDs

// преобразовываем имена членов/параметров в DISPID

HRESULT GetIDsOfNames( [in] REFIID riid,

// reserved, must be IID_NULL

// зарезервировано, должно равняться IID_NULL

[in, size_is(cNames)] LPOLESTR * rgszNames,

// method+params

// метод + параметры

[in] UINT cNames,

// count of names

// количество имен

[in] LCID lcid,

// locale ID

// локальный ID

[out, size_is(cNames)] DISPID * rgid

// tokens of names

// маркеры имен

);

// access member via its DISPID

// обращаемся к члену через его DISPID HRESULT Invoke(

[in] DISPID id,

// token of member

// маркер члена

[in] REFIID riid,

// reserved, must be IID_NULL

// зарезервировано, должно равняться IID_NULL

[in] LCID lcid,

// locale ID

// локальный ID

[in] WORD wFlags,

// method, propput, or propget?

// метод propput или propget?

[in,out] DISPPARAMS * pDispParams,

// logical parameters

// логические параметры

[out] VARIANT * pVarResult,

// logical result

// логический результат

[out] EXCEPINFO * pExcepInfo,

// IErrorInfo params

// параметры IErrorInfo

[out] UINT * puArgErr

// used for type errors

// использовано для ошибок типа

);

Когда машина сценариев впервые пытается обратиться к объекту, она использует QueryInterface для запроса интерфейса IDispatch этого объекта. Если объект отклоняет запрос QueryInterface , то машина сценариев этот объект использовать не может. Если же объект успешно возвращает свой интерфейс IDispatch машине сценариев, то машина будет использовать метод GetIDsOfNames этого объекта для перевода имен методов и свойств в маркеры. Эти маркеры формально называются DISPID и являются эффективно синтаксически разобранными ( parsed ) целыми числами, которые единственным образом идентифицируют свойство или метод.

|< Пред. 467 468 469 470 471 След. >|

Java книги

Контакты: [email protected]