Пример интерфейса для единиц расширения UVC
Важно!
Содержимое и пример кода в этом разделе устарели и в настоящее время не поддерживаются. Она может не работать с текущей цепочкой инструментов разработки драйверов.
В этом разделе содержится код для примера interface.idl , который можно использовать для поддержки единиц расширения.
// IExtensionUnit interface
import "unknwn.idl";
[
object,
local,
uuid(yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy),
pointer_default(unique)
]
interface IExtensionUnit : IUnknown
{
HRESULT get_InfoSize(
[out] ULONG *pulSize);
HRESULT get_Info(
[in] ULONG ulSize,
[in, out, size_is(ulSize)] BYTE pInfo[]);
HRESULT get_PropertySize(
[in] ULONG PropertyId,
[out] ULONG *pulSize);
HRESULT get_Property(
[in] ULONG PropertyId,
[in] ULONG ulSize,
[in, out, size_is(ulSize)] BYTE pValue[]);
HRESULT put_Property(
[in] ULONG PropertyId,
[in] ULONG ulSize,
[in, out, size_is(ulSize)] BYTE pValue[]);
HRESULT get_PropertyRange(
[in] ULONG PropertyId,
[in] ULONG ulSize,
[in, out, size_is(ulSize)] BYTE pMin[],
[in, out, size_is(ulSize)] BYTE pMax[],
[in, out, size_is(ulSize)] BYTE pSteppingDelta[],
[in, out, size_is(ulSize)] BYTE pDefault[]);
};