IMFCameraControlDefaultsCollection::GetOrAddExtendedControl method (mfidl.h)

Adds a new extended camera control to the camera control collection.


HRESULT GetOrAddExtendedControl(
  [in]  ULONG                                constrolId,
  [in]  DWORD                                streamId,
  [in]  ULONG                                dataSize,
  [out] IMFCameraControlDefaults             **defaults


[in] configType

A value from the MF_CAMERA_CONTROL_CONFIGURATION_TYPE specifying whether the control value must be set before streaming begins or after streaming starts.

[in] constrolId

The ID of the control to be added to the collection. This value must be an ID in the KSPROPERTYSETID_ExtendedCameraControl property set.

[in] streamId

The ID of the stream associated with the control. This paramater is only used for pin-level controls. Otherwise, this value is ignored.

[in] dataSize

The size of the data payload for the control, in bytes.

[out] defaults

Receives a pointer to a IMFCameraControlDefaults instance representing the added control.

Return value

An HRESULT, including the following:

Value Description
S_OK Success.
MF_E_INVALIDREQUEST The specified control ID is not in the KSPROPERTYSETID_ExtendedCameraControl property set.


The data payload size may vary for different controls. The dataSize value must be valid for the control payload schema so the control can reserve the buffer required.


Minimum supported client Windows 11 Build 22621
Minimum supported server Windows 11 Build 22621
Header mfidl.h