I will try to summarize what I have found so far!
The following functions have to be provided and exported by the dll:
typedef UINT (CALLBACK* LPFNCCINFO)(LPCCINFO acci);
typedef BOOL (CALLBACK* LPFNCCSTYLE)(HWND hwndParent, LPCCSTYLE pccs);
typedef INT (CALLBACK* LPFNCCSIZETOTEXT)(DWORD flStyle, DWORD flExtStyle, HFONT hfont, LPSTR pszText);
The first one has to be exported by name (ordinal does not matter). The CCINFO structure has pointer entrys for the two other functions. The name of each function does not matter. So it is not clear to me how the resource editor knows it.
The Resource Workshop expects a fourth function 'listclasses()', which should be exported by name. The name matters here! But this function seems to be a Borland special.
The return values of the
Info() seems to return the number of controls in the dll: 0 .. n
Style() returns the exit status of the style dialog: TRUE|FALSE
SizeToText() returns the size of the control text in pixels or -1 if error
I am not sure with the last one!
How is the CCSTYLEFLAG array terminated? There is no size or number provided for this. Has it to be NULL-terminated some how?
Who has to build the style dialog, resource editor (using the CCSTYLE structure) or the programmer of the dll?
There are other questions, but I will stop here.