Custom cell types are dependent on additional code in various callback functions that are specified in the SS_CT_PROCS structure that is passed to the SSAddCustomCellType function.
If the custom cell type supports editing, then the SS_CT_CREATEEDITORCONTROL_ARGS structure must be used to create and return an instance of a control to use for editing unless the name of the custom cell type is identical to a window class name previously registered with RegisterClass.
If the custom cell type uses a renderer control, then the SS_CT_CREATERENDERERCONTROL_ARGS structure must be used to create and return an instance of a control to use for rendering unless the name of the custom cell type is identical to a window class name previously registered with RegisterClass.
If the custom cell type does not use a renderer control, or if the renderer control does not support the WM_PRINT message, the SS_CT_PAINTCELL_ARGS structure must be used to draw the contents of the cell when the cell is not being edited.
If the custom cell type is intended to edit a data type other than string, the SS_CT_GETEDITORVALUE_ARGS structure must be used to return the value from the editor control and the SS_CT_SETVALUE_ARGS structure must be used to set the value to the editor control.
If the custom cell type uses a renderer control and is intended to render a data type other than string, then the SS_CT_SETVALUE_ARGS structure must be used to set the value to the renderer control.
If the custom cell type supports overflow into adjacent cells when AllowCellOverflow is true, then the SS_CT_GETPREFERREDSIZE_ARGS structure must be used to calculate and return the dimensions of the overflow.