Actual behavior
Some PortableDevice related COM interfaces are generated with inaccurate method signatures. Everything still works, but I don't think this is correctly generated. For example:
internal interface IPortableDevicePropVariantCollection
{
void GetCount(in uint pcElems);
...
void GetAt(uint dwIndex, in winmdroot.System.Com.StructuredStorage.PROPVARIANT pValue);
}
I've found the same behavior on IPortableDevicePropVariantCollection, IPortableDeviceKeyCollection, IPortableDeviceValues, and IPortableDeviceValuesCollection.
Expected behavior
For all of those methods, I would expect the data to be returned to me to use an out parameter rather than an in parameter.
Repro steps
NativeMethods.txt content:
Context
- CsWin32 version: 0.3.269-beta
- Target Framework: net9.0
Actual behavior
Some PortableDevice related COM interfaces are generated with inaccurate method signatures. Everything still works, but I don't think this is correctly generated. For example:
I've found the same behavior on IPortableDevicePropVariantCollection, IPortableDeviceKeyCollection, IPortableDeviceValues, and IPortableDeviceValuesCollection.
Expected behavior
For all of those methods, I would expect the data to be returned to me to use an out parameter rather than an in parameter.
Repro steps
NativeMethods.txtcontent:Context