---
title: Create
framework: VideoDriverKit
role: symbol
role_heading: Static Method
platforms: [driverkit 27.0+]
path: videodriverkit/iouservideodirectioncontrol/create
---

# Create

A static factory method that allocates and initializes a video direction control.

## Declaration

```occ
static OSSharedPtr<IOUserVideoDirectionControl> Create(IOUserVideoDriver *in_driver, bool in_is_settable, bool in_control_value, IOUserVideoObjectPropertyElement in_control_element, IOUserVideoObjectPropertyScope in_control_scope, IOUserVideoClassID in_control_class_id);
```

## Parameters

- `in_driver`: The IOUserVideoDriver that owns this object.
- `in_is_settable`: A Boolean value indicating if the control value can be set
- `in_control_value`: A bool for the control’s current value
- `in_control_element`: The IOUserVideoObjectPropertyElement for the control
- `in_control_scope`: The IOUserVideoObjectPropertyScope for the control
- `in_control_class_id`: The IOUserVideoClassID of the control

## Return Value

Return Value OSSharedPtr to an IOUserVideoDirectionControl if it was successfully allocated and initialized

## Discussion

Discussion If IOUserVideoDirectionControl is subclassed to override behavior, don’t use this method to allocate or initialize the custom subclass.

## See Also

### Creating a direction control

- [init](videodriverkit/iouservideodirectioncontrol/init.md)
- [IOUserVideoDriver](videodriverkit/iouservideodriver.md)
- [IOUserVideoObjectPropertyElement](videodriverkit/videodriverkit/iouservideoobjectpropertyelement.md)
- [IOUserVideoObjectPropertyScope](videodriverkit/videodriverkit/iouservideoobjectpropertyscope.md)
