Здравствуйте tamtam, Вы писали:
T>Очень часто видел такие медоды, например в ADO
T>А как самому такие сделать в COM что-то не догоняю...
T>Помогите.
Если параметр имеет тип VARIANT, то помечаешь его атрибутом optional.
Если другой, помечаешь его атрибутом defaultvalue(Значение). Где "Значение" — это значение которое будет подставляться по умолчанию.
При этом есть два ограничения. Не обязательные параметры дожны идти в конце (т.е. с правой стороны) списка параметров (но перед [out, retval]).
Значения по умолчанию будут доступны только в высокоуровневых языках/визуальных средах (типа VB). В VC можно воспользоваться директивой #import, которая (по умолчанию) создает обертки над COM-интерфейсами обеспечивающие такую функциональность.
Вот пример idl-я:
HRESULT SomeMethod([in], NormalParam, [in, optional] VARIANT OptionalParam, [in, defaultvalue(-1)] long DefValParam, [out, retval] long *pRet);
PS
На этот вопрос сдесь отвечали уже много раз. На будущее советую сначала воспользоваться поиском.