2.2.49.7 AIDL Interfaces and ODL Dispinterfaces
An ODL dispinterface is a dispinterface whose properties and methods are specified using the two keywords: "properties" and "methods", as specified in 2.2.49.5.3. All other automation interfaces (that is, dual interfaces and reference dispinterfaces) are AIDL interfaces.
This section explains how the methods defined in an AIDL interface map to properties and methods in an equivalent conceptual ODL dispinterface.
The conceptual signature of an ODL operation (a method call, or setting or retrieving a property) determines how an automation client MUST call IDispatch::Invoke (see section 3.1.4.4): how it MUST pack the arguments in pDispParams and rgVarRef, as well as how pVarResult and pExcepInfo MUST be filled in on return (see section 3.1.4.4.2):
The conceptual ODL arguments MUST be packed in pDispParams and rgVarRef.
The conceptual return value MUST be returned in pVarResult.
The actual HRESULT of an AIDL method MUST be set in pExcepInfo->scode.