propget-Attribut
Das [propget] -Attribut gibt eine Eigenschaftsaccessorfunktion an. Die Eigenschaft muss den gleichen Namen wie die Funktion haben.
[propget [,optional-property-attributes]] return-type function-name( parameters);
-
optional-property-attributes
-
Null oder mehr Eigenschaftsattribute.
-
return-type
-
Der Typ der von der Remoteprozedur zurückgegebenen Daten.
-
Funktionsname
-
Der Name der Remoteprozedur.
-
parameters
-
Null oder mehr Parameter für die Remoteprozedur.
Eine Funktion, die über das propget-Attribut verfügt, sollte als letzter Parameter auch einen Zeigertyp mit den Attributen [out] und [retval] aufweisen. Wenn der letzte Parameter nicht über die Attribute [out, retval] verfügt, wird der Rückgabewert der Funktion als [out, retval]-Parameter behandelt. Beispiel: Eine Funktion mit dem Prototyp
[propget] short MyFunction([in] long aLongValue);
wird wie folgt behandelt:
[propget] HRESULT MyFunction([in] long aLongValue, [out,retval] short *outValue);
Für eine Funktion kann höchstens einer von [propget], [propput] und [propputref] angegeben werden.
Wenn das [lcid] -Attribut in der Parameterliste einer Funktion verwendet wird, die einen Parameter mit dem [propput]- Attribut enthält, muss der Parameter [lcid] nach dem letzten sein.
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);
}