Peas.Engine.create_extension_with_properties

### Method

# Peas Enginecreate_extension_with_properties

#### Declaration [src]

    PeasExtension*
    peas_engine_create_extension_with_properties (
      PeasEngine* engine,
      PeasPluginInfo* info,
      GType extension_type,
      guint n_properties,
      const gchar** prop_names,
      const GValue* prop_values
    )

#### Description [src]

If the plugin identified by `info` implements the `extension_type`, then this function will return a new instance of this implementation, wrapped in a new `PeasExtension` instance. Otherwise, it will return `NULL`.

Since libpeas 1.22, `extension_type` can be an Abstract `GType` and not just an Interface `GType`.

See `peas_engine_create_extension()` for more information.

Available since: | 1.24
This method is renamed to `peas_engine_create_extension()` in language bindings

#### Parameters

`info` | `PeasPluginInfo`
| A loaded `PeasPluginInfo`.
| The data is owned by the caller of the function.
`extension_type` | `GType`
| The implemented extension `GType`.
`n_properties` | `guint`
| The length of the `prop_names` and `prop_values` array.
`prop_names` | An array of `gchar*`
| An array of property names.
| The length of the array is specified in the `n_properties` argument.
| The data is owned by the caller of the function.
| Each element is a NUL terminated UTF-8 string.
`prop_values` | An array of `GValue`
| An array of property values.
| The length of the array is specified in the `n_properties` argument.
| The data is owned by the caller of the function.

#### Return value

Returns: | `PeasExtension`
| A new instance of `PeasExtension` wrapping the `extension_type` instance, or `NULL`.
| The caller of the method takes ownership of the data, and is responsible for freeing it.