Unterschiede zwischen [in, out] - und [out, retval] in COM-IDL-Definitionen

In einige der IDL-ich arbeite, habe ich gemerkt, es gibt 2 Konventionen für die Kennzeichnung Rückgabewerte in Methoden - [in, out] und [out, retval].

Scheint es, dass [in, out] wird verwendet, wenn es mehrere Werte zurückgeben, zum Beispiel:

HRESULT MyMethod(
    [in] long InputParam, 
    [in, out] long* OutputParam1, 
    [in, out] long* OutputParam2
);

Scheint es, dass [out, retval] wird verwendet, wenn es nur einen einzigen Rückgabewert, zum Beispiel:

HRESULT MyMethod2(
    [in] long InputParam, 
    [out, retval] long* OutputParam1
);

Ist dies ein COM-IDL-convention oder nur eine Konvention in den code arbeite ich mit?

Gibt es einen funktionalen Unterschied in dem code, der generiert wird aus der 2 Notationen, oder sind Sie völlig austauschbar?

Schreibe einen Kommentar