---
name: "Trf_CreateCtrlBlock"
section: "3"
platform: "linux"
package: "tcl-trf-doc"
version: "2.1.4-dfsg3-8"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Trf_CreateCtrlBlock"
---

# Trf\_CreateCtrlBlock(3)

Interface to procedure for creation of encoder/decoder control structures.

## NAME

Trf\_CreateCtrlBlock - Interface to procedure for creation of encoder/decoder control structures.

## SYNOPSIS

**#include \<transform.h\>**

**Trf\_ControlBlock Trf\_CreateCtrlBlock**\
 **(**\
\
 	**ClientData writeClientData,**\
\
 	**Trf\_WriteProc \*fun,**\
\
 	**Trf\_Options optInfo,**\
\
 	**Tcl\_Interp \*interp,**\
\
 	**ClientData clientData**\
 **);**

## PARAMETERS

- **ClientData writeClientData**

  Arbitrary information given as clientdata to 'fun'.

- **Trf\_WriteProc \*fun**

  Vector to use for writing generated results.

- **Trf\_Options optInfo**

  Options to configure the control.

- **Tcl\_Interp \*interp**

  Interpreter for error messages.

- **ClientData clientData**

  Arbitrary information, as defined in Trf\_TypeDefinition.clientData.

## DESCRIPTION

The procedure has to create a control structure for an encoder/decoder. The structure must be initialized with the contents of the the option container. Return value is an opaque handle aof the control structure or NULL in case of failure. An error message should be left in the result area of the specified interpreter then.

## SEE ALSO

[Trf\_Init(3)](/Trf_Init/3.md), [Trf\_SafeInit(3)](/Trf_SafeInit/3.md), [Trf\_IsInitialized(3)](/Trf_IsInitialized/3.md), [Trf\_CreateOptions(3)](/Trf_CreateOptions/3.md), [Trf\_DeleteOptions(3)](/Trf_DeleteOptions/3.md), [Trf\_CheckOptions(3)](/Trf_CheckOptions/3.md), [Trf\_SetOption(3)](/Trf_SetOption/3.md), [Trf\_SetObjOption(3)](/Trf_SetObjOption/3.md), [Trf\_QueryOptions(3)](/Trf_QueryOptions/3.md), [Trf\_SeekQueryOptions(3)](/Trf_SeekQueryOptions/3.md), [Trf\_WriteProc(3)](/Trf_WriteProc/3.md), [Trf\_DeleteCtrlBlock(3)](/Trf_DeleteCtrlBlock/3.md), [Trf\_TransformCharacter(3)](/Trf_TransformCharacter/3.md), [Trf\_TransformBuffer(3)](/Trf_TransformBuffer/3.md), [Trf\_FlushTransformation(3)](/Trf_FlushTransformation/3.md), [Trf\_ClearCtrlBlock(3)](/Trf_ClearCtrlBlock/3.md), [Trf\_QueryMaxRead(3)](/Trf_QueryMaxRead/3.md), [Trf\_Register(3)](/Trf_Register/3.md), [Trf\_ConverterOptions(3)](/Trf_ConverterOptions/3.md), [Trf\_MDStart(3)](/Trf_MDStart/3.md), [Trf\_MDUpdate(3)](/Trf_MDUpdate/3.md), [Trf\_MDUpdateBuf(3)](/Trf_MDUpdateBuf/3.md), [Trf\_MDFinal(3)](/Trf_MDFinal/3.md), [Trf\_MDCheck(3)](/Trf_MDCheck/3.md), [Trf\_RegisterMessageDigest(3)](/Trf_RegisterMessageDigest/3.md), [Trf\_LoadLibrary(3)](/Trf_LoadLibrary/3.md), [Trf\_XorBuffer(3)](/Trf_XorBuffer/3.md), [Trf\_ShiftRegister(3)](/Trf_ShiftRegister/3.md), [Trf\_FlipRegisterShort(3)](/Trf_FlipRegisterShort/3.md), [Trf\_FlipRegisterLong(3)](/Trf_FlipRegisterLong/3.md), [Trf\_InitStubs(3)](/Trf_InitStubs/3.md)
