#pragma once #include "../Components/wac_downloadManager/DownloadCallbackT.h" class SongDownloader : public DownloadCallbackT { public: SongDownloader(const wchar_t *filename, HANDLE done_event, void (*callback)(void *callbackContext, wchar_t *status), void *context); ~SongDownloader(); void OnInit(DownloadToken token); void OnData(DownloadToken token, void *data, size_t datalen); void OnCancel(DownloadToken token); void OnError(DownloadToken token, int error); void OnFinish(DownloadToken token); private: void (*callback)(void *callbackContext, wchar_t *status); void *context; HANDLE hFile, done_event; uint64_t content_length; uint64_t bytes_downloaded; };