propget - атрибут
Атрибут [propget] задает функцию доступа свойства. Свойство должно иметь то же имя, что и функция.
[propget [,optional-property-attributes]] return-type function-name( parameters);
-
optional-property-attributes
-
Ноль или несколько атрибутов свойств.
-
тип возвращаемого значения
-
Тип данных, возвращаемых удаленной процедурой.
-
имя функции
-
Имя удаленной процедуры.
-
parameters
-
Ноль или несколько параметров удаленной процедуры.
Функция с атрибутом propget также должна иметь в качестве последнего параметра тип указателя с атрибутами [out] и [retval] . Если у последнего параметра нет атрибутов [out, retval], возвращаемое значение функции обрабатывается как параметр [out, retval]. Например, функция с прототипом
[propget] short MyFunction([in] long aLongValue);
обрабатывается как
[propget] HRESULT MyFunction([in] long aLongValue, [out,retval] short *outValue);
Для функции можно указать не более одного из значений [propget], [propputref], [propputref].
Если атрибут [lcid] используется в списке параметров функции, содержащей параметр с атрибутом [propput] , параметр [lcid] должен быть вторым по последнему.
INVOKE_PROPERTYGET
interface MyInterface : IDispatch
{
[propget,
helpstring("A meaningful comment.")] HRESULT Method1(
[out, retval] int* ReturnVal);
[propput,
helpstring("Another meaningful comment.")] HRESULT Method1(
[in] int Value);
[propget,
helpstring("A meaningful comment."), id(1)] HRESULT Method2(
[out, retval] YourInterface** ReturnVal);
[propputref,
helpstring("Another meaningful comment."),
id(1)] HRESULT Method2([in] YourPoint* Point);
}