As far as I know, there aren't any ready-made add-ons for using Winamp output plugins, but I think it should be a fairly straightforward process. Basically, you would load and initialize the plugin, and then feed a BASS decoding channel to it. It might look something like this...
plugin=LoadLibrary(...); // load the Winamp output plugin
Out_Module *(WINAPI *winampGetOutModule)()=(Out_Module*(WINAPI*)())GetProcAddress(plugin, "winampGetOutModule"); // import the module exporting function
Out_Module *output=winampGetOutModule(); // get the module
output->Init(); // initialize the plugin
decoder=BASS_StreamCreateFile(FALSE, filename, 0, 0, BASS_STREAM_DECODE); // create a decoder for an audio file
BASS_CHANNELINFO ci;
BASS_ChannelGetInfo(decoder, &ci); // get sample format info
output->Open(ci.freq, ci.chans, 16, 500, 250); // open output with same format
while (BASS_ChannelIsActive(decoder)) { // decoder is still going
int c=output->CanWrite(); // check how much can be written to the output
if (c>0) {
BYTE buf[8192]; // decoding buffer
c=BASS_ChannelGetData(decoder, buf, min(c,sizeof(buf)); // decode some data
if (c>0) output->Write(buf, c); // send the data to the output
} else
Sleep(20); // wait a bit
}
while (output->IsPlaying()) Sleep(10); // wait for playback to finish
output->Close(); // close the output
output->Quit();
FreeLibrary(plugin); // unload the plugin
You will need the Winamp SDK for the OUT.H header that defines the "Out_Module" structure.