I am trying to use the CoolScrollBar library's CoolSB_GetScrollInfo function in an extension, but I can't get the extension to build when I link to that library.
One of the errors is that "CoolSB_GetSysColor" is an unresolved symbol.
In
CoolScroll.h, I see this:
Code:
// TO BE IMPLEMENTED BY APP:
void *GetIconThemePointer(const char *name); // implemented by calling app, can return a LICE_IBitmap **img for "scrollbar"
int CoolSB_GetSysColor(HWND hwnd, int val); // can be a passthrough to GetSysColor()
How is this implemented by the app? Should I define something similar to SWELL_PROVIDED_BY_APP?
Even stranger, SWS does not seem to link to CoolScroll, but instead does the following, in
sws_rpf_wrapper.h:
Code:
// reaper_plugin_functions.h (rpf) needs a little help, so instead of modifying
// the file directly, and needing to remodify with each rebuild of the file,
// fix some things here.
#ifdef REAPERAPI_IMPLEMENT
#define REAPER_EXTRA_API_DECL
#else
#define REAPER_EXTRA_API_DECL extern
#endif
// Not included in reaper_plugin_functions.h, so include here:
REAPER_EXTRA_API_DECL void (*AttachWindowTopmostButton)(HWND hwnd);
REAPER_EXTRA_API_DECL void (*AttachWindowResizeGrip)(HWND hwnd);
REAPER_EXTRA_API_DECL BOOL (*RemoveXPStyle)(HWND hwnd, int rm);
REAPER_EXTRA_API_DECL BOOL (WINAPI *CoolSB_GetScrollInfo)(HWND hwnd, int nBar, LPSCROLLINFO lpsi);
REAPER_EXTRA_API_DECL int (WINAPI *CoolSB_SetScrollInfo)(HWND hwnd, int nBar, LPSCROLLINFO lpsi, BOOL fRedraw);
(WINAPI is simply defined as "__stdcall".)
and then
loads CoolSB_GetScrollInfo like any other REAPER API function:
Code:
IMPAPI(CoolSB_GetScrollInfo);
IMPAPI(CoolSB_SetScrollInfo);
Does this mean the CoolSB_GetScrollInfo, AttachWindowTopmostButton and the other functions are undocumented API functions?!?