# cstatus > [HTML Version](cstatus_aui_control.htm) Parameter _cstatus_ (signed num) returns a code indicating the result of the operation: | **Value** | **Description** | |------|------| | \>=0 | OK, or for _opcode_ 2 indicates control was previously enabled. For _opcode _1, if an alphanumeric_ ctlid _parameter is specified, _cstatus_ will return the numeric ID of the new control. | | 1 | OK, or for _opcode_ 2 indicates control was previously disabled | | \-1 | Add or delete control function failed | | \-2 | Button (_ctlid_ or _ctext_) not found during change or delete operation | | \-3 | Out of memory (unable to allocate control storage buffers) | | \-4 | Exceeded maximum number of added controls. Note that in A-Shell 1166 of 21 Nov 09, the limit of 600 controls was eliminated; the control table expands as needed, without limit. This value should therefore not occur. | | \-5 | No control buffer allocated | | \-6 | Illegal _opcode_ | | \-7 | Control already exists | | \-8 | Control update operation failed | | \-9 | Unable to load bitmap or icon file. Note the common error of mismatching the _ctype_ flag (256 or 512) with image file type (BMP or ICO) | | \-10 | Incorrect control type for operation | | \-11 | No batch in progress | | \-12 | Illegal tab request or duplicate batch request | | \-13 | Parent dialog not found | **ATE performance notes** If you do not care about the returned _cstatus_ or _ctlid_, you can specify the _cstatus_ variable as a null string ("") or eliminate it entirely if you do not need any of the other parameters. This prevents the routine from returning any information, eliminating the network turnaround latency (in the case of ATE) that would otherwise accompany each AUI\_CONTROL operation. While small, these round-trip delays can add up, so that a screen consisting of many items might take seconds, as opposed to milliseconds, to display. Technically, each control creation operation could fail, but in practice, it is rare, as well as unlikely that your application would have a meaningful recovery planned anyway. So other than the case where you need the returned control ID for future reference, there is little practical value to the returned status. And even in the case of needing the returned control ID, you can eliminate that necessity by supplying an alphanumeric control name in place of the ID; see [Control names](controlnames.htm.md).