> For the complete documentation index, see [llms.txt](https://fearless.gitbook.io/creating-controls-in-assembler/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://fearless.gitbook.io/creating-controls-in-assembler/our-first-control/internal-developer-functions.md).

# Internal Functions

Functions that will defined for use **internally** by the control will be:

```
_SB_WndProc             PROTO :DWORD, :DWORD, :DWORD, :DWORD
_SB_Init                PROTO :DWORD
_SB_Cleanup             PROTO :DWORD
_SB_Paint               PROTO :DWORD
_SB_PaintBackground     PROTO :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
_SB_PaintText           PROTO :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
_SB_PaintBorder         PROTO :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
```

These **internal** functions are the core functions that handle the main processing and painting of our **SimpleButton** control.

In addition, we will define a few other internal helper functions for use in this control. In my own development projects I combine the functions next into a library or framework for easy re-use, but I have recreated them here and included them in the `SimpleButton.asm` file just for ease of use and clarity in covering the features in the control. The internal helper functions are:

```
__AllocMemProperties     PROTO :DWORD, :DWORD, :DWORD
__FreeMemProperties      PROTO :DWORD, :DWORD
__GetIntProperty         PROTO :DWORD, :DWORD
__SetIntProperty         PROTO :DWORD, :DWORD, :DWORD
__GetExtProperty         PROTO :DWORD, :DWORD
__SetExtProperty         PROTO :DWORD, :DWORD, :DWORD
```

These functions are briefly covered later on (see [Inside Our Control](/creating-controls-in-assembler/inside-our-control.md)) and some more detail can be found in the [Control Properties](/creating-controls-in-assembler/control-properties.md) section.
