propget 属性
[propget] 属性は、プロパティ アクセサー関数を指定します。 プロパティの名前は、 関数と同じである必要があります。
[propget [,optional-property-attributes]] return-type function-name( parameters);
-
optional-property-attributes
-
0 個以上のプロパティ属性。
-
return-type
-
リモート プロシージャによって返されるデータの型。
-
function-name
-
リモート プロシージャの名前。
-
parameters
-
リモート プロシージャに対する 0 個以上のパラメーター。
propget 属性を持つ関数には、最後のパラメーターとして 、[out] 属性と [retval] 属性を持つポインター型も含める必要があります。 最後のパラメーターに [out, retval] 属性がない場合、関数の戻り値は [out, retval] パラメーターとして扱われます。 たとえば、プロトタイプを含む関数
[propget] short MyFunction([in] long aLongValue);
は として扱われます。
[propget] HRESULT MyFunction([in] long aLongValue, [out,retval] short *outValue);
関数には、最大で [propget]、 [propput]、および [propputref] のいずれかを 指定できます。
[propput] 属性を持つパラメーターを含む関数のパラメーター リストで [lcid] 属性を使用する場合、[lcid] パラメーターは最後の 2 番目である必要があります。
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);
}