<!--
{
  "availability" : [
    "DriverKit: 27.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "VideoDriverKit",
  "identifier" : "/documentation/VideoDriverKit/IOUserVideoControl",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "VideoDriverKit"
    ],
    "preciseIdentifier" : "c:@S@IOUserVideoControl"
  },
  "title" : "IOUserVideoControl"
}
-->

# IOUserVideoControl

A base class for control objects.

```
class IOUserVideoControl;
```

## Overview

Don’t subclass [`IOUserVideoControl`](/documentation/VideoDriverKit/IOUserVideoControl) or allocate it directly.

## Topics

### Creating a control

[`virtual bool init(IOUserVideoDriver *in_driver, bool in_is_settable, IOUserVideoObjectPropertyElement in_control_element, IOUserVideoObjectPropertyScope in_control_scope);`](/documentation/VideoDriverKit/IOUserVideoControl/init)

Initializes a video control.

[`class IOUserVideoDriver;`](/documentation/VideoDriverKit/IOUserVideoDriver)

A video driver.

[`typedef uint32_t IOUserVideoObjectPropertyElement;`](/documentation/VideoDriverKit/VideoDriverKit/IOUserVideoObjectPropertyElement)

An integer that identifies,
along with the property selector and scope,
a specific piece of information about a video object.

[`enum IOUserVideoObjectPropertyScope : uint32_t;`](/documentation/VideoDriverKit/VideoDriverKit/IOUserVideoObjectPropertyScope)

A four character code which, along with the selector and element, identifies
a specific piece of information about a video object.

### Freeing a control

[`virtual void free();`](/documentation/VideoDriverKit/IOUserVideoControl/free)

Frees the user video object.

### Getting information about the class

[`virtual IOUserVideoClassID GetClassID();`](/documentation/VideoDriverKit/IOUserVideoControl/GetClassID)

Gets the class identifier of the object

[`virtual IOUserVideoClassID GetBaseClassID();`](/documentation/VideoDriverKit/IOUserVideoControl/GetBaseClassID)

Gets the class identifier of the base class object

[`enum IOUserVideoClassID : uint32_t;`](/documentation/VideoDriverKit/VideoDriverKit/IOUserVideoClassID)

Video class identifiers of an video object.

### Working with control properties

[`IOUserVideoObjectPropertyScope GetControlScope();`](/documentation/VideoDriverKit/IOUserVideoControl/GetControlScope)

Returns an object property scope for the control.

[`enum IOUserVideoObjectPropertyScope : uint32_t;`](/documentation/VideoDriverKit/VideoDriverKit/IOUserVideoObjectPropertyScope)

A four character code which, along with the selector and element, identifies
a specific piece of information about a video object.

[`typedef uint32_t IOUserVideoObjectPropertyElement;`](/documentation/VideoDriverKit/VideoDriverKit/IOUserVideoObjectPropertyElement)

An integer that identifies,
along with the property selector and scope,
a specific piece of information about a video object.

[`IOUserVideoObjectPropertyElement GetControlElement();`](/documentation/VideoDriverKit/IOUserVideoControl/GetControlElement)

Returns an object property element for the control.

[`bool GetIsSettable();`](/documentation/VideoDriverKit/IOUserVideoControl/GetIsSettable)

Returns a Boolean value indicating if the control value can be set.

### Working with devices

[`IOUserVideoObjectID GetOwningDeviceID();`](/documentation/VideoDriverKit/IOUserVideoControl/GetOwningDeviceID)

Returns the video object identifier of the control’s owning device.

## Relationships

### Inherited By

[`IOUserVideoSliderControl`](/documentation/VideoDriverKit/IOUserVideoSliderControl)

[`IOUserVideoStereoPanControl`](/documentation/VideoDriverKit/IOUserVideoStereoPanControl)

[`IOUserVideoBooleanControl`](/documentation/VideoDriverKit/IOUserVideoBooleanControl)

[`IOUserVideoLevelControl`](/documentation/VideoDriverKit/IOUserVideoLevelControl)

[`IOUserVideoSelectorControl`](/documentation/VideoDriverKit/IOUserVideoSelectorControl)

[`IOUserVideoDirectionControl`](/documentation/VideoDriverKit/IOUserVideoDirectionControl)

### Inherits From

[`IOUserVideoObject`](/documentation/VideoDriverKit/IOUserVideoObject)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)