diff options
Diffstat (limited to 'Src/gracenote')
33 files changed, 7119 insertions, 0 deletions
diff --git a/Src/gracenote/CDDBControlWinamp.dll b/Src/gracenote/CDDBControlWinamp.dll Binary files differnew file mode 100644 index 00000000..cedbd0d7 --- /dev/null +++ b/Src/gracenote/CDDBControlWinamp.dll diff --git a/Src/gracenote/CDDBPlugInBase.h b/Src/gracenote/CDDBPlugInBase.h new file mode 100644 index 00000000..91b5c886 --- /dev/null +++ b/Src/gracenote/CDDBPlugInBase.h @@ -0,0 +1,50 @@ +#ifndef CDDB_PLUGIN_BASE_H +#define CDDB_PLUGIN_BASE_H + +// Version of module interface +#define CDDBMODULE_VERSION 1 + +// Module Categories +// modules need to set this approprately to tell the manager what services it provides +#define CDDBMODULE_DECODER 0x10 +#define CDDBMODULE_DECODERINFO 0x20 +#define CDDBMODULE_ENCODER 0x40 +#define CDDBMODULE_SIGNATURE 0x80 +#define CDDBMODULE_FILEINFO 0x100 +#define CDDBMODULE_SECURITY 0x200 + +// +// base module type +// all modules derive from this type +// +#ifndef CDDBMODULEINTERFACE +#define CDDBMODULEINTERFACE +typedef struct +{ + void *handle; + char *moduleID; + int version; + int categories; + int initialized; + int (__stdcall *Init)(void*); + int (__stdcall *Deinit)(); +} CDDBModuleInterface; +#endif + +// entry point function type +typedef CDDBModuleInterface* (__cdecl *CDDBModuleQueryInterfaceFunc)(const char* lpszInterface); + + +// +// internal module handle +// +typedef struct +{ + void *handle; + int initialized; + CDDBModuleInterface *baseInterface; +} CDDBModule; + + + +#endif /* CDDB_PLUGIN_BASE_H */ diff --git a/Src/gracenote/CDDBPluginWorkOrderManager.h b/Src/gracenote/CDDBPluginWorkOrderManager.h new file mode 100644 index 00000000..4a2d9e3f --- /dev/null +++ b/Src/gracenote/CDDBPluginWorkOrderManager.h @@ -0,0 +1,90 @@ +#ifndef CDDBPLUGIN_WORKORDERMGR_H +#define CDDBPLUGIN_WORKORDERMGR_H + +// sig gen headers +#include "CDDBPlugInBase.h" + +#define CDDBMODULE_WORKORDERMGR_IF_NAME "workordermanagerModuleID" +#define CDDBMODULE_WORKORDERMGR 0x10000 + +#define CDDBMODULE_QUERY_INTERFACE_NAME "CDDBModuleQueryInterface" + +// supported interfaces +#define WORK_ORDER_MANAGER_BASE_INTERFACE "CDDBModuleInterface" +#define WORK_ORDER_MANAGER_INTERFACE "workordermanager" +#define WORK_ORDER_MANAGER_INTERFACE2 "workordermanager2" + +#ifndef CDDB_PLUGIN_SIGGEN_H + +typedef enum +{ + SG_NoError = 0, + SG_SignatureAcquired = 1, + SG_SignatureNotAcquired = 2, + SG_UnsupportedFormat = 3, + SG_ProcessingError = 4, + SG_InitializationError = 5, + SG_DeinitializationError = 6, + SG_InvalidParamError = 7, + SG_InternalError = 8, + SG_NotInitializedError = 9, + SG_OutOfMemory = 10, + SG_NotImplementedError = 11 +} +SigGenResultCode; + +#endif //#ifndef CDDB_PLUGIN_SIGGEN_H + + +// +// +// +#ifndef CDDBMODULEWORKORDERMGR +#define CDDBMODULEWORKORDERMGR + +#define CDDBMODULE_WORKORDER_MGR_VERSION 1 + +typedef struct WorkOrderInstance* WorkOrderHandle; + +typedef struct +{ + CDDBModuleInterface base; + + unsigned int version; /* current version is defined by CDDBMODULE_WORKORDER_MGR_VERSION */ + unsigned int size; /* sizeof(CDDBModuleWorkOrder) */ + unsigned int flags; /* nothing defined yet */ + + int (__stdcall *Initialize)(void* cddbcontrol, char* path); + int (__stdcall *Shutdown)(void); + + int (__stdcall *GetSigHandle)(void** handle, void* disc, long track_num); + int (__stdcall *WriteSigData)(void* handle, void* data, long size); + int (__stdcall *CloseSig)(void* handle); + int (__stdcall *AbortSig)(void* handle); + +} CDDBModuleWorkOrderManagerInterface; + +typedef struct +{ + CDDBModuleInterface base; + + /* SetAlwaysGenerate + * Description: Enables/disables a Work Order Plugin DLL to always generate + * a signature, regardless of work orders. + * + * Args: dll_filepath - full path and filename of the plugin DLL + * for example: (C:\App\Cddb12Tone.dll) + * b_always_generate - enable/disable ignoring work orders + * for example: (0 or 1) + * + * Returns: 0 for success or an error. + * Failure conditions include: + * Invalid argument + */ + int (__stdcall *SetAlwaysGenerate)(char* dll_filepath,long b_always_generate); + +} CDDBModuleWorkOrderManagerInterface2; + +#endif /* CDDBMODULEWORKORDERMGR */ + +#endif /* CDDBPLUGIN_WORKORDERMGR_H */ diff --git a/Src/gracenote/CDDBUIWinamp.dll b/Src/gracenote/CDDBUIWinamp.dll Binary files differnew file mode 100644 index 00000000..2a408d79 --- /dev/null +++ b/Src/gracenote/CDDBUIWinamp.dll diff --git a/Src/gracenote/CddbLinkWinamp.dll b/Src/gracenote/CddbLinkWinamp.dll Binary files differnew file mode 100644 index 00000000..2c4e5108 --- /dev/null +++ b/Src/gracenote/CddbLinkWinamp.dll diff --git a/Src/gracenote/CddbMusicIDUIWinamp.dll b/Src/gracenote/CddbMusicIDUIWinamp.dll Binary files differnew file mode 100644 index 00000000..4237da5c --- /dev/null +++ b/Src/gracenote/CddbMusicIDUIWinamp.dll diff --git a/Src/gracenote/CddbMusicIDWinamp.dll b/Src/gracenote/CddbMusicIDWinamp.dll Binary files differnew file mode 100644 index 00000000..6d9ce8f6 --- /dev/null +++ b/Src/gracenote/CddbMusicIDWinamp.dll diff --git a/Src/gracenote/CddbPlaylist2Winamp.dll b/Src/gracenote/CddbPlaylist2Winamp.dll Binary files differnew file mode 100644 index 00000000..d7eb50bd --- /dev/null +++ b/Src/gracenote/CddbPlaylist2Winamp.dll diff --git a/Src/gracenote/CddbWOManagerWinamp.dll b/Src/gracenote/CddbWOManagerWinamp.dll Binary files differnew file mode 100644 index 00000000..da4837b6 --- /dev/null +++ b/Src/gracenote/CddbWOManagerWinamp.dll diff --git a/Src/gracenote/Cddbx1.dll b/Src/gracenote/Cddbx1.dll Binary files differnew file mode 100644 index 00000000..2f7e766a --- /dev/null +++ b/Src/gracenote/Cddbx1.dll diff --git a/Src/gracenote/Cddbx2.dll b/Src/gracenote/Cddbx2.dll Binary files differnew file mode 100644 index 00000000..70ee6d48 --- /dev/null +++ b/Src/gracenote/Cddbx2.dll diff --git a/Src/gracenote/Cddbx3.dll b/Src/gracenote/Cddbx3.dll Binary files differnew file mode 100644 index 00000000..4ffc4e15 --- /dev/null +++ b/Src/gracenote/Cddbx3.dll diff --git a/Src/gracenote/Cddbx4.dll b/Src/gracenote/Cddbx4.dll Binary files differnew file mode 100644 index 00000000..559bfac7 --- /dev/null +++ b/Src/gracenote/Cddbx4.dll diff --git a/Src/gracenote/Cddbx5.dll b/Src/gracenote/Cddbx5.dll Binary files differnew file mode 100644 index 00000000..765650ef --- /dev/null +++ b/Src/gracenote/Cddbx5.dll diff --git a/Src/gracenote/GracenoteApi.cpp b/Src/gracenote/GracenoteApi.cpp new file mode 100644 index 00000000..912367db --- /dev/null +++ b/Src/gracenote/GracenoteApi.cpp @@ -0,0 +1,472 @@ +#include "GracenoteApi.h" +#include "api.h" +#include "../winamp/api_decodefile.h" +#include <bfc/error.h> +#include <limits.h> +#include <shlwapi.h> +#include <strsafe.h> + +GracenoteApi::GracenoteApi() +{ + cddbInitialized = false; + playlistInitialized = false; + pCDDBControl=0; +} + +GracenoteApi::~GracenoteApi() +{ +} + +void GracenoteApi::Close() +{ + if (pCDDBControl) + { + pCDDBControl->Shutdown(); + pCDDBControl->Release(); + pCDDBControl=0; + } +} + +static void SetProxy(const wchar_t *proxy, ICddbOptions *options) +{ + wchar_t user[1024]=L""; + wchar_t pass[1024]=L""; + wchar_t server[1024]=L""; + int port=80; + if (!_wcsnicmp(proxy,L"https:",6)) + port = 443; + + const wchar_t *skip = wcsstr(proxy, L"://"); + if (skip) + proxy = skip+3; + + skip = wcsstr(proxy, L"@"); + if (skip) + { + const wchar_t *delimiter = wcsstr(proxy, L":"); + if (delimiter < skip) // make sure there's really a password (and we didn't end up finding the port number) + { + StringCchCopyNW(user, 1024, proxy, delimiter-proxy); + StringCchCopyNW(pass, 1024, delimiter+1, skip-(delimiter+1)); + proxy=skip+1; + } + else + { + StringCchCopyNW(user, 1024, proxy, skip-proxy); + proxy=skip+1; + } + } + + skip = wcsstr(proxy, L":"); // look for port + if (skip) + { + StringCchCopyNW(server, 1024, proxy, skip-proxy); + port = _wtoi(skip+1); + } + else + StringCchCopyW(server, 1024, proxy); + + if (server[0]) + options->put_ProxyServer(server); + if (port) + options->put_ProxyServerPort(port); + if (user[0]) + options->put_ProxyUserName(user); + if (pass[0]) + options->put_ProxyPassword(pass); +} + +// {C0A565DC-0CFE-405a-A27C-468B0C8A3A5C} +static const GUID internetConfigGroupGUID = + { 0xc0a565dc, 0xcfe, 0x405a, { 0xa2, 0x7c, 0x46, 0x8b, 0xc, 0x8a, 0x3a, 0x5c } }; + +ICDDBControl2 *GracenoteApi::GetCDDB() +{ + Nullsoft::Utility::AutoLock lock(cddbGuard); + if (!cddbInitialized) + { + CoCreateInstance(__uuidof(CDDBNSWinampControl), 0, CLSCTX_INPROC_SERVER, IID_IUnknown, (void **)&pCDDBControl); + if (pCDDBControl == NULL) + return 0; + +#if 1 // TODO: benski> put back in once we can match winamp lang pack to a gracenote language ID + // translate if necessary + if (WASABI_API_LNG) + { + const wchar_t *langFolder = WASABI_API_LNG->GetLanguageFolder(); + if (langFolder) + { + WIN32_FIND_DATAW find; + wchar_t mask[MAX_PATH] = {0}, maskLoc[16] = {0}; + + // attempt to get the language code to help better guess the CDDB dll needed + if(WASABI_API_LNG->GetLanguageIdentifier(LANG_IDENT_STR)) + StringCchPrintfW(maskLoc, 16, L"CddbLang%s.dll", WASABI_API_LNG->GetLanguageIdentifier(LANG_LANG_CODE)); + + PathCombineW(mask, langFolder, maskLoc); + HANDLE hFind = FindFirstFileW(mask, &find); + + // if the the guess provides nothing then scan for any valid dll (not ideal) + if (hFind == INVALID_HANDLE_VALUE) + { + PathCombineW(mask, langFolder, L"CddbLang*.dll"); + hFind = FindFirstFileW(mask, &find); + } + + if (hFind != INVALID_HANDLE_VALUE) + { + ICddbUIPtr ui; + ui.CreateInstance(__uuidof(CddbNSWinampUI)); + if (ui) + { + long val = 0; + wchar_t cddb_lang_fn[MAX_PATH] = {0}; + PathCombineW(cddb_lang_fn, langFolder, find.cFileName); + // TODO: benski> gracenote wants a "language ID" but we don't have a good way of knowing it :( + ui->SetUILanguage(0, cddb_lang_fn, &val); + // TODO: benski> also need to set ICddbOptions language ID + } + } + FindClose(hFind); + } + } +#endif + + // winamp browser id + //HRESULT hr = pCDDBControl->SetClientInfo(L"7944448", L"F8DE207FBA826F136FF2C7EFE0AAB181", L"1", L"regstring"); + //wa5's id + + const wchar_t *appVersion = WASABI_API_APP->main_getVersionNumString(); + + /* development client ID */ + //HRESULT hr = pCDDBControl->SetClientInfo(L"3714048", L"B49286AE14F73CCD73C23B371A56DB00", const_cast<BSTR>(appVersion), L"regstring"); + + /* Beta Client ID */ + //HRESULT hr = pCDDBControl->SetClientInfo(L"8337664", L"A222F2FA8B3E047291DFDBF465FD3C95", const_cast<BSTR>(appVersion), L"regstring"); + + /* Production Client ID */ + BSTR appVersionBSTR = SysAllocString(appVersion); + HRESULT hr = pCDDBControl->SetClientInfo(L"4896768", L"C1519CAE91489E405BCA93531837F2BE", appVersionBSTR, L"regstring"); + SysFreeString(appVersionBSTR); + + if (FAILED(hr)) + return 0; + + long flags = CACHE_UPDATE_FUZZY | CACHE_DONT_WRITE_ANY | CACHE_NO_LOOKUP_MEDIA; //CACHE_SUBMIT_ALL | CACHE_SUBMIT_OFFLINE | CACHE_SUBMIT_NEW | CACHE_NO_LOOKUP_MEDIA; + + // set cache path for cddb control + ICddbOptionsPtr pOptions; + hr = pCDDBControl->GetOptions(&pOptions); + if (SUCCEEDED(hr)) + { + wchar_t dataPath[MAX_PATH] = {0}; + PathCombineW(dataPath, WASABI_API_APP->path_getUserSettingsPath(), L"Plugins"); + CreateDirectoryW(dataPath, 0); + PathAppendW(dataPath, L"Gracenote"); + CreateDirectoryW(dataPath, 0); + + hr = pOptions->put_LocalCachePath(dataPath); + + // initial cache flags + + //BOOL bOnline = SendMessage(line.hMainWindow, WM_USER, 0, 242); + //if (!bOnline) + //flags |= CACHE_DONT_CONNECT; + + // other needed settings + hr = pOptions->put_ProgressEvents(FALSE); + //hr = pOptions->put_LocalCacheFlags(CACHE_DONT_CREATE | CACHE_UPDATE_FUZZY | CACHE_SUBMIT_ALL); + hr = pOptions->put_LocalCacheFlags(flags); + hr = pOptions->put_LocalCacheSize(128 * 1024); // 128 megabyte limit on local cache size + hr = pOptions->put_LocalCacheTimeout(5 * 365); // 5 years (e.g. when Gracenote contract runs out) + hr = pOptions->put_TestSubmitMode(FALSE); + //hr = pOptions->put_TestSubmitMode(TRUE); //CT> for BETA cycle... + + // this is supposed to turn off the spinning logo in the upper-left-hand corner + hr = pOptions->put_ResourceModule(-1); + + // get n set proxy settings + const wchar_t *proxy = AGAVE_API_CONFIG->GetString(internetConfigGroupGUID, L"proxy", L""); + if (proxy && proxy[0]) + SetProxy(proxy, pOptions); + + // save settings + hr = pCDDBControl->SetOptions(pOptions); + } + + hr = pCDDBControl->Initialize(0/*(long)line.hMainWindow*/, (CDDBCacheFlags)flags); + + // checks for user registration + long pVal=0; + + // this must be called when control is first initialized + // this will load existing registration into control + hr = pCDDBControl->IsRegistered(FALSE, &pVal); + + // if not reg'd, bring up reg UI (param1 = TRUE) + if (!pVal) + { + // do headless registration + ICddbUserInfoPtr pUser; + + hr = pCDDBControl->GetUserInfo(&pUser); + if (pUser != NULL) + { + do + { + wchar_t strdata[129] = {0}; + size_t size = sizeof(strdata)/sizeof(*strdata); + wchar_t *str = strdata; + + GUID uid = GUID_NULL; + int x; + unsigned char *p; + CoCreateGuid(&uid); + p = (unsigned char *) & uid; + //lstrcpynW(str, L"WA2_", 129); + StringCchCopyExW(str, size, L"WA5_", &str, &size, 0); + for (x = 0; x < sizeof(uid); x ++) + { + StringCchPrintfExW(str, size, &str, &size, 0, L"%02X", p[x]); + //wsprintfW(str + wcslen(str), L"%02X", p[x]); + } + + // user name will have to be unique per install + hr = pUser->put_UserHandle(strdata); + hr = pUser->put_Password(strdata); + + hr = pCDDBControl->SetUserInfo(pUser); + } + while (hr == CDDBSVCHandleUsed); + } + + // this is just to check again that the user is now registered + hr = pCDDBControl->IsRegistered(FALSE, &pVal); + } + + cddbInitialized = true; + } + + if (pCDDBControl) + pCDDBControl->AddRef(); + + return pCDDBControl; +} + +#if 0 +/// This is the deprecated version of GetPlaylistManager that is no longer used without the MLDB manager +ICddbPlaylist25Mgr *GracenoteApi::GetPlaylistManager() +{ + ICddbPlaylist25Mgr *playlistMgr; + + ICDDBControl2 *cddb = GetCDDB(); + if (!cddb) + return 0; + + CoCreateInstance(__uuidof(CddbNSWinampPlaylist2Mgr), 0, CLSCTX_INPROC_SERVER, IID_IUnknown, (void **)&playlistMgr); + if (playlistMgr) + { + playlistMgr->AddRef(); + wchar_t dataPath[MAX_PATH] = {0}; + PathCombineW(dataPath, WASABI_API_APP->path_getUserSettingsPath(), L"Plugins"); + CreateDirectoryW(dataPath, 0); + PathAppendW(dataPath, L"Gracenote"); + CreateDirectoryW(dataPath, 0); + + if (SUCCEEDED(playlistMgr->Initialize(cddb, dataPath))) + { + playlistMgr->DownloadCorrelates(0); + playlistInitialized = true; + } + else + { + playlistMgr->Release(); + playlistMgr=0; + } + } + cddb->Release(); + return playlistMgr; +} +#endif + +/// Caller is responsible for freeing the returned BSTR !!! +BSTR SetAndCreatePath(const wchar_t *node) +{ + wchar_t path_to_create[MAX_PATH] = {0}; + + BSTR bPath = 0; + + PathCombineW(path_to_create, WASABI_API_APP->path_getUserSettingsPath(), L"Plugins"); + CreateDirectoryW(path_to_create, 0); + PathAppendW(path_to_create, node); + CreateDirectoryW(path_to_create, 0); + + bPath = SysAllocString(path_to_create); + // modified path as return value + return bPath; +} + +/// This has superceded the old GetPlaylistManager +/// Returns both a playlist manager in 'playlistMgr' and an mldb manager in 'mldbMgr' +//int GracenoteApi::GetPlaylistManagerWithMLDBManager(ICddbPlaylist25Mgr **playlistMgr, ICddbMLDBManager **mldbMgr) +int GracenoteApi::GetPlaylistManager(ICddbPlaylist25Mgr **playlistMgr, ICddbMLDBManager **mldbMgr) +{ + ICddbPlaylist25Mgr *playlistMgrCreated; + ICddbMLDBManager *mldbMgrCreated; + + ICDDBControl2 *cddb = GetCDDB(); + if (!cddb) + return 0; + + // Create the mldb manager + CoCreateInstance(__uuidof(CddbMLDBManager), 0, CLSCTX_INPROC_SERVER, IID_IUnknown, (void **)&mldbMgrCreated); + if (mldbMgrCreated) + { + //PL_MLDB_FLAGS_ZERO 0x00000000 Used for initialization. + //PL_MLDB_CHECK_BASE 0x00000001 Causes CheckDB to verify the consistency of the MLDB data file. + //PL_MLDB_CHECK_INDEX 0x00000002 Causes CheckDB to verify the consistency of the MLDB index file. + //PL_MLDB_CHECK_DEEP 0x00000004 Causes CheckDB to perform a thorough check of the MLDB file(s). + //PL_MLDB_CHECK_DEFAULT 0x00000007 Default operation of CheckDB. + //PL_MLDB_CLEAR_INIT_FLAG 0x00000010 Causes ModifyInitFlag to remove the file indicating Playlist is initialized. + //PL_MLDB_SET_INIT_FLAG 0x00000020 Causes ModifyInitFlag to create the file indicating Playlist is initialized. + //PL_MLDB_BACKUP_BASE 0x00000100 Causes BackupDB to create a backup copy of the MLDB data file. + //PL_MLDB_BACKUP_INDEX 0x00000200 Causes BackupDB to create a backup copy of the MLDB index file. + //PL_MLDB_RESTORE_BASE 0x00000400 Causes RestoreDB to restore the MLDB data file from the backup copy. + //PL_MLDB_RESTORE_INDEX 0x00000800 Causes RestoreDB to restore the MLDB index file from the backup copy. + //PL_MLDB_DELETE_INDEX 0x00001000 Causes DeleteDBFiles to remove the MLDB index file. + //PL_MLDB_DELETE_BASE 0x00002000 Causes DeleteDBFiles to remove the MLDB data file. + //PL_MLDB_DELETE_BACKUPS 0x00004000 Causes DeleteDBFiles to remove the MLDBbackup files. + //PL_MLDB_DELETE_OTHER 0x00008000 Causes DeleteDBFiles to remove the other (non-MLDB) files used by Playlist. + //PL_MLDB_AUTO_REINDEX 0x00010000 When specified in SetOptions, will cause theindex file to be automatically rebuilt atinitialization if it is corrupt. + //PL_MLDB_AUTO_BACKUP 0x00020000 When specified in SetOptions, will cause the MLDB files to be automatically backed up at shutdown (if they have been modified). PL_MLDB_AUTO_MANAGE_INIT_FLAG 0x00040000 When specified in SetOptions, will cause the “init file” to be managed automatically (created at initialization, deleted at shut down). + //PL_MLDB_AUTO_CHECK_IF_INIT_SET 0x00080000 When specified in SetOptions, will cause the MLDB files to be check at initialization if the “init file” exists (meaning shut down wasn’t called). + //PL_MLDB_AUTO_CHECK_AT_INIT 0x00100000 When specified in SetOptions, will cause the MLDB files to be checked always at initialization. + //PL_MLDB_AUTO_DEFAULT 0x000C0000 The default automatic behavior if no flags are specified with SetOptions. + //PL_MLDB_DEVICE_MLDB_42 0x01000000 Enable Gracenote Device SDK 4.2 compatibility for MLDB, list, and correlates files + + //long autoFlags = PL_MLDB_AUTO_DEFAULT; + //long autoFlags = PL_MLDB_AUTO_REINDEX | PL_MLDB_AUTO_BACKUP | PL_MLDB_AUTO_MANAGE_INIT_FLAG | PL_MLDB_AUTO_CHECK_IF_INIT_SET | PL_MLDB_AUTO_CHECK_AT_INIT; + long autoFlags = PL_MLDB_AUTO_REINDEX | PL_MLDB_AUTO_BACKUP | PL_MLDB_AUTO_MANAGE_INIT_FLAG | PL_MLDB_AUTO_CHECK_IF_INIT_SET; + BSTR bDataPath = SetAndCreatePath(L"Gracenote"); + BSTR bBackupPath = SetAndCreatePath(L"Gracenote/Backup"); + + mldbMgrCreated->AddRef(); + mldbMgrCreated->SetOptions(autoFlags, bBackupPath); + + + CoCreateInstance(__uuidof(CddbNSWinampPlaylist2Mgr), 0, CLSCTX_INPROC_SERVER, IID_IUnknown, (void **)&playlistMgrCreated); + if (playlistMgrCreated) + { + playlistMgrCreated->AddRef(); + + + + mldbMgrCreated->Attach(playlistMgrCreated); // Attach the MLDB manager to the playlistMgr + + if (SUCCEEDED(playlistMgrCreated->Initialize(cddb, bDataPath))) + { + playlistMgrCreated->DownloadCorrelates(0); + playlistInitialized = true; + } + else + { + playlistMgrCreated->Release(); + playlistMgrCreated=0; + } + } + + SysFreeString(bDataPath); + SysFreeString(bBackupPath); + } + cddb->Release(); + + *mldbMgr = mldbMgrCreated; + *playlistMgr = playlistMgrCreated; + + if (mldbMgr && playlistMgr) + return NErr_Success; + else + return NErr_FailedCreate; +} + +/// Dont really have to use this, get the MLDB manager when creating the playlist manager +ICddbMLDBManager *GracenoteApi::GetMLDBManager() +{ + ICddbMLDBManager *mldbMgr; + + ICDDBControl2 *cddb = GetCDDB(); + if (!cddb) + return 0; + + CoCreateInstance(__uuidof(CddbMLDBManager), 0, CLSCTX_INPROC_SERVER, IID_IUnknown, (void **)&mldbMgr); + if (mldbMgr) + { + mldbMgr->AddRef(); + } + cddb->Release(); + return mldbMgr; +} + +HRESULT GracenoteApi::CreateFingerprint(ICDDBMusicIDManager *musicID, api_decodefile *decodeApi, ICddbFileInfo *info, const wchar_t *filename, long *killswitch) +{ + if (!musicID || !decodeApi) + return E_FAIL; + + ICddbMusicIDFingerprinterPtr fingerprinter; + musicID->CreateFingerprinter(NULL, &fingerprinter); + + AudioParameters parameters; + parameters.bitsPerSample = 16; + parameters.channels = 2; + parameters.sampleRate = 44100; + ifc_audiostream *decoder = decodeApi->OpenAudioBackground(filename, ¶meters); + if (decoder) + { + HRESULT hr = fingerprinter->BeginAudioStream((long)parameters.sampleRate, (long)parameters.bitsPerSample, (long)parameters.channels); + char data[65536] = {0}; + size_t decodeSize; + int decode_killswitch=0, decode_error; + while (decodeSize = decoder->ReadAudio((void *)data, sizeof(data), &decode_killswitch, &decode_error)) + { + if (decodeSize > LONG_MAX) // I _really_ doubt this is going to happen, but just in case, since we cast down to a long + break; + + if (*killswitch) + break; + hr = fingerprinter->WriteAudioData(data, (long)decodeSize); + if (hr == CDDBMusicID_FPAcquired) + break; + } + ICddbMusicIDFingerprintPtr fingerprint; + fingerprinter->EndAudioStream(&fingerprint); + decodeApi->CloseAudio(decoder); + + hr=info->put_Fingerprint(fingerprint); + return S_OK; + } + return E_FAIL; +} + +ICDDBMusicIDManager3 *GracenoteApi::GetMusicID() +{ + ICDDBControl2 *cddb = GetCDDB(); + if (!cddb) + return 0; + ICDDBMusicIDManager3 *musicID; + CoCreateInstance(__uuidof(CDDBNSWinampMusicIDManager), 0, CLSCTX_INPROC_SERVER, IID_IUnknown, (void **)&musicID); + if (musicID) + musicID->Initialize(cddb); + cddb->Release(); + return musicID; +} + +#define CBCLASS GracenoteApi +START_DISPATCH; +CB(API_GRACENOTE_GETCDDB, GetCDDB) +CB(API_GRACENOTE_GETMUSICID, GetMusicID) +CB(API_GRACENOTE_GETPLAYLISTMGR, GetPlaylistManager) +//CB(API_GRACENOTE_GETPLAYLISTMGRWITHMLDBMGR, GetPlaylistManagerWithMLDBManager) +CB(API_GRACENOTE_GETMLDBMGR, GetMLDBManager) +CB(API_GRACENOTE_CREATEFINGERPRINT, CreateFingerprint) +END_DISPATCH; +#undef CBCLASS
\ No newline at end of file diff --git a/Src/gracenote/GracenoteApi.h b/Src/gracenote/GracenoteApi.h new file mode 100644 index 00000000..b36ecf16 --- /dev/null +++ b/Src/gracenote/GracenoteApi.h @@ -0,0 +1,33 @@ +#ifndef NULLSOFT_GRACENOTE_GRACENOTEAPI_H +#define NULLSOFT_GRACENOTE_GRACENOTEAPI_H + +#include "api_gracenote.h" +#include "../nu/AutoLock.h" + +class GracenoteApi : public api_gracenote +{ +public: + GracenoteApi(); + ~GracenoteApi(); + ICDDBControl2 *GetCDDB(); + ICDDBMusicIDManager3 *GetMusicID(); // TODO: might need to instantiate separate objects because each manager can only have 1 event handler + //ICddbPlaylist25Mgr *GetPlaylistManager(); + //int GetPlaylistManagerWithMLDBManager(ICddbPlaylist25Mgr **playlistMg, ICddbMLDBManager **mldbMgr); + int GetPlaylistManager(ICddbPlaylist25Mgr **playlistMg, ICddbMLDBManager **mldbMgr); + ICddbMLDBManager *GetMLDBManager(); + void Close(); + + /* Some utility functions */ + HRESULT CreateFingerprint(ICDDBMusicIDManager *musicID, api_decodefile *decodeApi, ICddbFileInfo *info, const wchar_t *filename, long *killswitch); +private: + bool cddbInitialized, playlistInitialized; + + ICDDBControl2 *pCDDBControl; + + Nullsoft::Utility::LockGuard cddbGuard; +protected: + RECVS_DISPATCH; +}; + +extern GracenoteApi gracenoteApi; +#endif
\ No newline at end of file diff --git a/Src/gracenote/GracenoteFactory.cpp b/Src/gracenote/GracenoteFactory.cpp new file mode 100644 index 00000000..fcdc943e --- /dev/null +++ b/Src/gracenote/GracenoteFactory.cpp @@ -0,0 +1,61 @@ +#include "api.h" +#include "GracenoteFactory.h" +#include "GracenoteApi.h" +GracenoteApi gracenoteApi; +static const char serviceName[] = "Gracenote API"; + +FOURCC GracenoteFactory::GetServiceType() +{ + return WaSvc::UNIQUE; +} + +const char *GracenoteFactory::GetServiceName() +{ + return serviceName; +} + +GUID GracenoteFactory::GetGUID() +{ + return gracenoteApiGUID; +} + +void *GracenoteFactory::GetInterface(int global_lock) +{ + return &gracenoteApi; +// if (global_lock) +// WASABI_API_SVC->service_lock(this, (void *)ifc); +} + +int GracenoteFactory::SupportNonLockingInterface() +{ + return 1; +} + +int GracenoteFactory::ReleaseInterface(void *ifc) +{ + //WASABI_API_SVC->service_unlock(ifc); + return 1; +} + +const char *GracenoteFactory::GetTestString() +{ + return NULL; +} + +int GracenoteFactory::ServiceNotify(int msg, int param1, int param2) +{ + return 1; +} + +#define CBCLASS GracenoteFactory +START_DISPATCH; +CB(WASERVICEFACTORY_GETSERVICETYPE, GetServiceType) +CB(WASERVICEFACTORY_GETSERVICENAME, GetServiceName) +CB(WASERVICEFACTORY_GETGUID, GetGUID) +CB(WASERVICEFACTORY_GETINTERFACE, GetInterface) +CB(WASERVICEFACTORY_SUPPORTNONLOCKINGGETINTERFACE, SupportNonLockingInterface) +CB(WASERVICEFACTORY_RELEASEINTERFACE, ReleaseInterface) +CB(WASERVICEFACTORY_GETTESTSTRING, GetTestString) +CB(WASERVICEFACTORY_SERVICENOTIFY, ServiceNotify) +END_DISPATCH; +#undef CBCLASS diff --git a/Src/gracenote/GracenoteFactory.h b/Src/gracenote/GracenoteFactory.h new file mode 100644 index 00000000..19881001 --- /dev/null +++ b/Src/gracenote/GracenoteFactory.h @@ -0,0 +1,23 @@ +#ifndef NULLSOFT_GRACENOTEFACTORY_H +#define NULLSOFT_GRACENOTEFACTORY_H + +#include <api/service/waservicefactory.h> +#include <api/service/services.h> + +class GracenoteFactory : public waServiceFactory +{ +public: + FOURCC GetServiceType(); + const char *GetServiceName(); + GUID GetGUID(); + void *GetInterface(int global_lock); + int SupportNonLockingInterface(); + int ReleaseInterface(void *ifc); + const char *GetTestString(); + int ServiceNotify(int msg, int param1, int param2); + +protected: + RECVS_DISPATCH; +}; + +#endif
\ No newline at end of file diff --git a/Src/gracenote/api.h b/Src/gracenote/api.h new file mode 100644 index 00000000..9ca1b770 --- /dev/null +++ b/Src/gracenote/api.h @@ -0,0 +1,13 @@ +#ifndef NULLSOFT_GRACENOTE_API_H +#define NULLSOFT_GRACENOTE_API_H + +#include <api/application/api_application.h> +#define WASABI_API_APP applicationApi + +#include "../Agave/Config/api_config.h" +extern api_config *agaveConfigApi; +#define AGAVE_API_CONFIG agaveConfigApi + +#include "../Agave/Language/api_language.h" + +#endif
\ No newline at end of file diff --git a/Src/gracenote/api_gracenote.cpp b/Src/gracenote/api_gracenote.cpp new file mode 100644 index 00000000..1e78d9fe --- /dev/null +++ b/Src/gracenote/api_gracenote.cpp @@ -0,0 +1,3 @@ +#include "api_gracenote.h" + +// Just an empty file to ensure that api_gracenote.h is #includable by itself
\ No newline at end of file diff --git a/Src/gracenote/api_gracenote.h b/Src/gracenote/api_gracenote.h new file mode 100644 index 00000000..fe662f16 --- /dev/null +++ b/Src/gracenote/api_gracenote.h @@ -0,0 +1,92 @@ +#ifndef NULLSOFT_GRACENOTE_API_GRACENOTE_H +#define NULLSOFT_GRACENOTE_API_GRACENOTE_H + +/* benski> + * This API is facilitate initialization of Gracenote objects + * as well as a few common functions + * + * It is _NOT_ meant to be a wrapper around the Gracenote API + * It simply ensure that all plugins create objects with the same + * configuration, which improves code maintainability and reduces + * compiled file sizes. + */ + +#include <bfc/dispatch.h> +#include "gracenote.h" + +class api_decodefile; + +class api_gracenote : public Dispatchable +{ +protected: + api_gracenote() {} + ~api_gracenote() {} + +public: + /* These return Gracenote COM objects. Since COM handles referencing counting, + * you can simply call their Release() method when you are done. + */ + + ICDDBControl2 *GetCDDB(); + ICDDBMusicIDManager3 *GetMusicID(); // makes a new instance, always + //ICddbPlaylist25Mgr *GetPlaylistManager(); // makes a new instance, always + //int GetPlaylistManagerWithMLDBManager(ICddbPlaylist25Mgr **playlistMgr, ICddbMLDBManager **mldbMgr); // makes a new instance, always + int GetPlaylistManager(ICddbPlaylist25Mgr **playlistMgr, ICddbMLDBManager **mldbMgr); // makes a new instance, always + ICddbMLDBManager *GetMLDBManager(); + void ReleasePlaylistManager(); + + /* Some utility functions */ + HRESULT CreateFingerprint(ICDDBMusicIDManager *musicID, api_decodefile *decodeApi, ICddbFileInfo *info, const wchar_t *filename, long *killswitch); + + DISPATCH_CODES + { + API_GRACENOTE_GETCDDB = 10, + API_GRACENOTE_GETMUSICID=20, + //API_GRACENOTE_GETPLAYLISTMGR=30, // Older codes can be removed + //API_GRACENOTE_GETPLAYLISTMGRWITHMLDBMGR=40, // "" + API_GRACENOTE_GETPLAYLISTMGR=40, + API_GRACENOTE_GETMLDBMGR=50, + API_GRACENOTE_CREATEFINGERPRINT=1000, + }; +}; + +inline ICDDBControl2 *api_gracenote::GetCDDB() +{ + return _call(API_GRACENOTE_GETCDDB, (ICDDBControl2 *)0); +} +inline ICDDBMusicIDManager3 *api_gracenote::GetMusicID() +{ + return _call(API_GRACENOTE_GETMUSICID, (ICDDBMusicIDManager3 *)0); +} + +/*inline ICddbPlaylist25Mgr *api_gracenote::GetPlaylistManager() +{ + return _call(API_GRACENOTE_GETPLAYLISTMGR, (ICddbPlaylist25Mgr *)0); +} + +inline int api_gracenote::GetPlaylistManagerWithMLDBManager(ICddbPlaylist25Mgr **playlistMgr, ICddbMLDBManager **mldbMgr) +{ + return _call(API_GRACENOTE_GETPLAYLISTMGRWITHMLDBMGR, 0, playlistMgr, mldbMgr); +}*/ + +inline int api_gracenote::GetPlaylistManager(ICddbPlaylist25Mgr **playlistMgr, ICddbMLDBManager **mldbMgr) +{ + return _call(API_GRACENOTE_GETPLAYLISTMGR, 0, playlistMgr, mldbMgr); +} + +inline ICddbMLDBManager *api_gracenote::GetMLDBManager() +{ + return _call(API_GRACENOTE_GETMLDBMGR, (ICddbMLDBManager *)0); +} + +inline HRESULT api_gracenote::CreateFingerprint(ICDDBMusicIDManager *musicID, api_decodefile *decodeApi, ICddbFileInfo *info, const wchar_t *filename, long *killswitch) +{ + return _call(API_GRACENOTE_CREATEFINGERPRINT, E_FAIL, musicID, decodeApi, info, filename, killswitch); +} + + +// {877D90AB-FAC1-4366-B3B0-EB177F42CFCE} +static const GUID gracenoteApiGUID = + { 0x877d90ab, 0xfac1, 0x4366, { 0xb3, 0xb0, 0xeb, 0x17, 0x7f, 0x42, 0xcf, 0xce } }; + +#endif
\ No newline at end of file diff --git a/Src/gracenote/cddbcontrolwinamp.tlh b/Src/gracenote/cddbcontrolwinamp.tlh new file mode 100644 index 00000000..bffb062d --- /dev/null +++ b/Src/gracenote/cddbcontrolwinamp.tlh @@ -0,0 +1,3027 @@ +// Created by Microsoft (R) C/C++ Compiler Version 15.00.30729.01 (e63a5d34). +// +// f:\sandbox\20131028_225933\winamp\release\cddbcontrolwinamp.tlh +// +// C++ source equivalent of Win32 type library ../gracenote/CDDBControlWinamp.dll +// compiler-generated file created 10/28/13 at 23:18:29 - DO NOT EDIT! + +#pragma once +#pragma pack(push, 8) + +#include <comdef.h> + +// +// Forward references and typedefs +// + +struct __declspec(uuid("65eba1d4-45e2-4ec5-a7ff-cb7e14659c77")) +/* LIBID */ __CDDBCONTROLLibNSWinamp; +enum CDDBErrors; +enum CDDBCommands; +enum CDDBLogFlags; +enum CDDBUIFlags; +enum CDDBTagFlags; +enum CDDBEventCodes; +enum CDDBProperty; +enum CDDBMatchCode; +enum CDDBProgressCodes; +enum CDDBCacheFlags; +enum CDDBFlushFlags; +enum CDDBServerMessageCodes; +enum CDDBServerMessageActions; +enum CDDBExtDataFlags; +enum CDDBDataListID; +enum CDDBDataListOptions; +enum CDDBDataListFlags; +enum CddbDataOptions; +struct __declspec(uuid("fc288125-6636-405c-be68-e9d37700deb0")) +/* dispinterface */ DCDDBEvents; +struct __declspec(uuid("723695c2-3b01-42c3-a661-64d2ec30b4e5")) +/* dual interface */ ICDDBControl; +struct /* coclass */ CddbUserInfo; +struct __declspec(uuid("4570cddc-94f8-4b43-b1ac-796d68fac7df")) +/* dual interface */ ICddbUserInfo; +struct /* coclass */ CddbOptions; +struct __declspec(uuid("30755708-ae75-49f8-b99a-ac8d095d0448")) +/* dual interface */ ICddbOptions; +struct /* coclass */ CddbDisc; +struct __declspec(uuid("5220e8fa-b11f-46cf-9786-51b11e05f657")) +/* dual interface */ ICddbDisc; +struct /* coclass */ CddbTrack; +struct __declspec(uuid("7da05059-cfb4-46ce-a788-709a3ad3454d")) +/* dual interface */ ICddbTrack; +struct /* coclass */ CddbFullName; +struct __declspec(uuid("2b6107ad-d1f2-41c3-b9b9-3349324f7e7b")) +/* dual interface */ ICddbFullName; +struct /* coclass */ CddbCredit; +struct __declspec(uuid("2aae501a-6d20-4af3-8c79-473106bd5391")) +/* dual interface */ ICddbCredit; +struct /* coclass */ CddbCredits; +struct __declspec(uuid("c30fbc5c-f56c-40dd-841d-5e4428f3baea")) +/* dual interface */ ICddbCredits; +struct /* coclass */ CddbTracks; +struct __declspec(uuid("a1fa4e71-b4e0-4378-a102-04e850e0aa18")) +/* dual interface */ ICddbTracks; +struct /* coclass */ CddbSegments; +struct __declspec(uuid("31480e0f-de17-4cae-8d85-1db90f9fcd2f")) +/* dual interface */ ICddbSegments; +struct /* coclass */ CddbSegment; +struct __declspec(uuid("375b697c-06a1-4d99-9f5d-3589001b15fd")) +/* dual interface */ ICddbSegment; +struct /* coclass */ CddbURLTree; +struct __declspec(uuid("20d2984f-0d6d-49f9-aa80-36030cef0a42")) +/* dual interface */ ICddbURLTree; +struct /* coclass */ CddbURLList; +struct __declspec(uuid("680f25c4-044b-4de0-998f-dfa463626e13")) +/* dual interface */ ICddbURLList; +struct /* coclass */ CddbURL; +struct __declspec(uuid("751e8ace-610b-4336-b425-5038154f68a2")) +/* dual interface */ ICddbURL; +struct /* coclass */ CddbLanguages; +struct __declspec(uuid("686f7bce-1edb-4540-8c25-bba9ce7b2323")) +/* dual interface */ ICddbLanguages; +struct /* coclass */ CddbDiscs; +struct __declspec(uuid("0d5072cc-86a0-4600-bb7f-da7723ddd298")) +/* dual interface */ ICddbDiscs; +struct /* coclass */ CddbGenreList; +struct __declspec(uuid("9151953e-0621-4167-bcb6-36f8e65ec6c9")) +/* dual interface */ ICddbGenreList; +struct /* coclass */ CddbGenre; +struct __declspec(uuid("4b3be7ee-9a6e-4276-8701-3a85f5d9e3c5")) +/* dual interface */ ICddbGenre; +struct /* coclass */ CddbGenreTree; +struct __declspec(uuid("37668f25-b3ff-42ea-a3f9-25ea0740902e")) +/* dual interface */ ICddbGenreTree; +struct /* coclass */ CddbRegionList; +struct __declspec(uuid("c841589b-ce3d-4fef-9422-2832a64d321e")) +/* dual interface */ ICddbRegionList; +struct /* coclass */ CddbRegion; +struct __declspec(uuid("57b9551a-a3ea-484d-8fc6-1b4ec7d2420d")) +/* dual interface */ ICddbRegion; +struct /* coclass */ CddbRoleList; +struct __declspec(uuid("614d9d0a-c012-4863-afbf-9c9dd01e04d1")) +/* dual interface */ ICddbRoleList; +struct /* coclass */ CddbRole; +struct __declspec(uuid("84f40113-d6ca-4289-acfa-b8b1691e596b")) +/* dual interface */ ICddbRole; +struct /* coclass */ CddbRoleTree; +struct __declspec(uuid("0ba44da2-a91d-4c60-8e48-61b5e69495ea")) +/* dual interface */ ICddbRoleTree; +struct /* coclass */ CddbLanguageList; +struct __declspec(uuid("719c744f-cdef-49c2-9ada-df5ba8770f4b")) +/* dual interface */ ICddbLanguageList; +struct /* coclass */ CddbLanguage; +struct __declspec(uuid("06c77e4d-fe13-4fa4-b52a-1cf2e047f55f")) +/* dual interface */ ICddbLanguage; +struct /* coclass */ CddbFieldList; +struct __declspec(uuid("cf6268fd-7ba3-4cc5-9de1-fead923d216c")) +/* dual interface */ ICddbFieldList; +struct /* coclass */ CddbField; +struct __declspec(uuid("aa3218d8-a65c-4a29-8690-1e5b75dbf3b8")) +/* dual interface */ ICddbField; +struct /* coclass */ CddbURLManager; +struct __declspec(uuid("623ce0d4-7b45-4b69-a28d-2401e7aa16d4")) +/* dual interface */ ICddbURLManager; +struct /* coclass */ CddbID3TagManager; +struct __declspec(uuid("e7bbbe3a-dc3c-4d00-98f9-bc620ca952f8")) +/* dual interface */ ICddbID3TagManager; +struct /* coclass */ CddbID3Tag; +struct __declspec(uuid("7b2d9eb8-70aa-43d3-aa8e-e71ce53a83d8")) +/* dual interface */ ICddbID3Tag; +struct __declspec(uuid("ca4e0490-7ed8-44a5-9ecd-d00b90dbe808")) +/* dual interface */ ICddbFileTag; +struct __declspec(uuid("44959787-915b-4fcf-9763-1038483c000e")) +/* dual interface */ ICddbID3Tag2; +struct __declspec(uuid("3254573e-1053-4430-9ca6-7b9b89638515")) +/* dual interface */ ICddbFileTag2_5; +struct __declspec(uuid("2a050616-00e0-49c3-bc60-23c5192b25d3")) +/* dual interface */ ICddbExtData; +struct __declspec(uuid("45d1d297-dd01-4890-928c-34e1ba494a14")) +/* dual interface */ ICddbDisc2; +struct /* coclass */ CddbDisc2; +struct __declspec(uuid("f19a9d2d-2287-4c64-96c7-4bb63edec9c5")) +/* dual interface */ ICddbDataListElement; +struct __declspec(uuid("c412e44b-a911-4e2e-ab26-f12bdb23ee55")) +/* dual interface */ ICddbDataList; +struct __declspec(uuid("d0f041d4-1570-4143-bb6a-4ce041b109d4")) +/* dual interface */ ICddbInfoWindow; +struct __declspec(uuid("06c18ba6-86a0-464c-b838-13a74e1ad049")) +/* dual interface */ ICddbUIOptions; +struct __declspec(uuid("d6f791c8-a7f7-4702-9d24-4b8f8ca4c807")) +/* dual interface */ ICddbTrackManager; +struct __declspec(uuid("1b0700ee-c9c7-4fca-9584-1096268cf6c4")) +/* dual interface */ ICDDBControl2; +struct __declspec(uuid("63c7d158-bca0-4c29-96c4-06bdd744ecc2")) +/* dual interface */ ICddbOptions2; +struct __declspec(uuid("db780e88-d446-4157-af74-04e8e48e46a3")) +/* dual interface */ ICddbDisc2_5; +struct __declspec(uuid("a354a00f-1f1d-44bb-853f-cb77153c302c")) +/* dual interface */ ICddbDisc2_6; +struct __declspec(uuid("d27c6efc-76ed-4724-9741-9531fc52242c")) +/* dual interface */ ICddbWork; +struct __declspec(uuid("e5c5f8ea-6f8d-4bd0-8856-95ddd5668cde")) +/* dual interface */ ICddbTrack2; +struct __declspec(uuid("24959692-aac0-411d-9e6b-c7611fccacba")) +/* dual interface */ ICddbTrack2_5; +struct __declspec(uuid("e7d07c78-6084-4628-89f6-6f89dd5f1a9f")) +/* dual interface */ ICddbTrack2_6; +struct __declspec(uuid("7af4e5e5-2deb-462f-bbaf-684146856c6b")) +/* dual interface */ ICddbCacheManager; +struct __declspec(uuid("49d2a10d-a5f3-4bd0-9c15-6b2b94f16593")) +/* dual interface */ ICddbWMATag; +struct __declspec(uuid("1bba432e-84b5-4559-bcf7-cbc199ed6085")) +/* dual interface */ ICddbOptions2_5; +struct __declspec(uuid("e6051029-5694-4e7d-a524-7e38f3c9443d")) +/* dual interface */ ICddbListManager; +struct __declspec(uuid("fe5e5b63-8154-4cb0-8ffc-a0aab7dbe9d5")) +/* dual interface */ ICddbDataListTree; +struct /* coclass */ CDDBNSWinampControl; +struct /* coclass */ CDDBProps; +struct /* coclass */ CddbInfoWindow; +struct /* coclass */ CddbUIOptions; +struct /* coclass */ CddbTrackManager; +struct /* coclass */ CDDBControl2; +struct /* coclass */ CddbOptions2; +struct /* coclass */ CddbTrack2; +struct /* coclass */ CddbCacheManager; +struct /* coclass */ CddbWMATag; +struct /* coclass */ CddbListManager; +struct /* coclass */ CddbDataListTree; +struct /* coclass */ CddbDataList; +struct /* coclass */ CddbDataListElement; +struct /* coclass */ CddbExtData; +struct /* coclass */ CddbWork; + +// +// Smart pointer typedef declarations +// + +_COM_SMARTPTR_TYPEDEF(DCDDBEvents, __uuidof(DCDDBEvents)); +_COM_SMARTPTR_TYPEDEF(ICddbUserInfo, __uuidof(ICddbUserInfo)); +_COM_SMARTPTR_TYPEDEF(ICddbOptions, __uuidof(ICddbOptions)); +_COM_SMARTPTR_TYPEDEF(ICddbFullName, __uuidof(ICddbFullName)); +_COM_SMARTPTR_TYPEDEF(ICddbCredit, __uuidof(ICddbCredit)); +_COM_SMARTPTR_TYPEDEF(ICddbTrack, __uuidof(ICddbTrack)); +_COM_SMARTPTR_TYPEDEF(ICddbCredits, __uuidof(ICddbCredits)); +_COM_SMARTPTR_TYPEDEF(ICddbTracks, __uuidof(ICddbTracks)); +_COM_SMARTPTR_TYPEDEF(ICddbSegments, __uuidof(ICddbSegments)); +_COM_SMARTPTR_TYPEDEF(ICddbSegment, __uuidof(ICddbSegment)); +_COM_SMARTPTR_TYPEDEF(ICddbURLTree, __uuidof(ICddbURLTree)); +_COM_SMARTPTR_TYPEDEF(ICddbURLList, __uuidof(ICddbURLList)); +_COM_SMARTPTR_TYPEDEF(ICddbURL, __uuidof(ICddbURL)); +_COM_SMARTPTR_TYPEDEF(ICddbDisc, __uuidof(ICddbDisc)); +_COM_SMARTPTR_TYPEDEF(ICddbLanguages, __uuidof(ICddbLanguages)); +_COM_SMARTPTR_TYPEDEF(ICddbDiscs, __uuidof(ICddbDiscs)); +_COM_SMARTPTR_TYPEDEF(ICddbGenreList, __uuidof(ICddbGenreList)); +_COM_SMARTPTR_TYPEDEF(ICddbGenre, __uuidof(ICddbGenre)); +_COM_SMARTPTR_TYPEDEF(ICddbGenreTree, __uuidof(ICddbGenreTree)); +_COM_SMARTPTR_TYPEDEF(ICddbRegionList, __uuidof(ICddbRegionList)); +_COM_SMARTPTR_TYPEDEF(ICddbRegion, __uuidof(ICddbRegion)); +_COM_SMARTPTR_TYPEDEF(ICddbRoleList, __uuidof(ICddbRoleList)); +_COM_SMARTPTR_TYPEDEF(ICddbRole, __uuidof(ICddbRole)); +_COM_SMARTPTR_TYPEDEF(ICddbRoleTree, __uuidof(ICddbRoleTree)); +_COM_SMARTPTR_TYPEDEF(ICddbLanguageList, __uuidof(ICddbLanguageList)); +_COM_SMARTPTR_TYPEDEF(ICddbLanguage, __uuidof(ICddbLanguage)); +_COM_SMARTPTR_TYPEDEF(ICddbFieldList, __uuidof(ICddbFieldList)); +_COM_SMARTPTR_TYPEDEF(ICddbField, __uuidof(ICddbField)); +_COM_SMARTPTR_TYPEDEF(ICddbURLManager, __uuidof(ICddbURLManager)); +_COM_SMARTPTR_TYPEDEF(ICDDBControl, __uuidof(ICDDBControl)); +_COM_SMARTPTR_TYPEDEF(ICddbID3TagManager, __uuidof(ICddbID3TagManager)); +_COM_SMARTPTR_TYPEDEF(ICddbFileTag, __uuidof(ICddbFileTag)); +_COM_SMARTPTR_TYPEDEF(ICddbID3Tag, __uuidof(ICddbID3Tag)); +_COM_SMARTPTR_TYPEDEF(ICddbID3Tag2, __uuidof(ICddbID3Tag2)); +_COM_SMARTPTR_TYPEDEF(ICddbDisc2, __uuidof(ICddbDisc2)); +_COM_SMARTPTR_TYPEDEF(ICddbInfoWindow, __uuidof(ICddbInfoWindow)); +_COM_SMARTPTR_TYPEDEF(ICddbUIOptions, __uuidof(ICddbUIOptions)); +_COM_SMARTPTR_TYPEDEF(ICddbTrackManager, __uuidof(ICddbTrackManager)); +_COM_SMARTPTR_TYPEDEF(ICDDBControl2, __uuidof(ICDDBControl2)); +_COM_SMARTPTR_TYPEDEF(ICddbOptions2, __uuidof(ICddbOptions2)); +_COM_SMARTPTR_TYPEDEF(ICddbWork, __uuidof(ICddbWork)); +_COM_SMARTPTR_TYPEDEF(ICddbTrack2, __uuidof(ICddbTrack2)); +_COM_SMARTPTR_TYPEDEF(ICddbCacheManager, __uuidof(ICddbCacheManager)); +_COM_SMARTPTR_TYPEDEF(ICddbWMATag, __uuidof(ICddbWMATag)); +_COM_SMARTPTR_TYPEDEF(ICddbOptions2_5, __uuidof(ICddbOptions2_5)); +_COM_SMARTPTR_TYPEDEF(ICddbFileTag2_5, __uuidof(ICddbFileTag2_5)); +_COM_SMARTPTR_TYPEDEF(ICddbExtData, __uuidof(ICddbExtData)); +_COM_SMARTPTR_TYPEDEF(ICddbDataListElement, __uuidof(ICddbDataListElement)); +_COM_SMARTPTR_TYPEDEF(ICddbDataList, __uuidof(ICddbDataList)); +_COM_SMARTPTR_TYPEDEF(ICddbDisc2_5, __uuidof(ICddbDisc2_5)); +_COM_SMARTPTR_TYPEDEF(ICddbDisc2_6, __uuidof(ICddbDisc2_6)); +_COM_SMARTPTR_TYPEDEF(ICddbTrack2_5, __uuidof(ICddbTrack2_5)); +_COM_SMARTPTR_TYPEDEF(ICddbTrack2_6, __uuidof(ICddbTrack2_6)); +_COM_SMARTPTR_TYPEDEF(ICddbDataListTree, __uuidof(ICddbDataListTree)); +_COM_SMARTPTR_TYPEDEF(ICddbListManager, __uuidof(ICddbListManager)); + +// +// Type library items +// + +enum CDDBErrors +{ + ERR_DomainMask = 134152192, + ERR_DomainTransport = 49938432, + ERR_DomainService = 50003968, + ERR_DomainControl = 50069504, + ERR_DomainCache = 50135040, + ERR_DomainLists = 50200576, + ERR_CodeMask = 65535, + ERR_Busy = 1, + ERR_NotRegistered = 2, + ERR_HandleUsed = 3, + ERR_InvalidParameter = 4, + ERR_MissingField = 5, + ERR_MissingProperty = 6, + ERR_NoCommand = 7, + ERR_NoClientInfo = 8, + ERR_NotInitialized = 9, + ERR_InvalidTagId = 10, + ERR_Disabled = 11, + CDDBTRNOutOfMemory = -2097545215, + CDDBTRNBadPointer = -2097545214, + CDDBTRNOutOfRange = -2097545213, + CDDBTRNCorruptedData = -2097545212, + CDDBTRNFieldNotFound = -2097545211, + CDDBTRNUnknownEncoding = -2097545210, + CDDBTRNSockInitErr = -2097545209, + CDDBTRNHostNotFound = -2097545208, + CDDBTRNSockCreateErr = -2097545207, + CDDBTRNSockOpenErr = -2097545206, + CDDBTRNSendFailed = -2097545205, + CDDBTRNRecvFailed = -2097545204, + CDDBTRNNoEvent = -2097545203, + CDDBTRNNoUserInfo = -2097545202, + CDDBTRNBatchNest = -2097545201, + CDDBTRNBatchNotOpen = -2097545200, + CDDBTRNBadResponseSyntax = -2097545199, + CDDBTRNUnknownCompression = -2097545198, + CDDBTRNTooManyRetries = -2097545197, + CDDBTRNRecordNotFound = -2097545196, + CDDBTRNKeyTooLong = -2097545195, + CDDBTRNURLNotFound = -2097545194, + CDDBTRNBadArgument = -2097545193, + CDDBTRNUnflattenFailed = -2097545192, + CDDBTRNTokenTooLong = -2097545191, + CDDBTRNTokenInvalid = -2097545190, + CDDBTRNCannotCreateFile = -2097545189, + CDDBTRNBadClientCommand = -2097545188, + CDDBTRNSendStatsFailed = -2097545187, + CDDBTRNUnknownEncryption = -2097545186, + CDDBTRNProtocolVersion = -2097545185, + CDDBTRNDataStoreVersion = -2097545184, + CDDBTRNDataStoreInitFail = -2097545183, + CDDBTRNDataStoreNotCached = -2097545182, + CDDBTRNCancelled = -2097545181, + CDDBTRNServerTimeout = -2097545180, + CDDBTRNInvalidURL = -2097545179, + CDDBTRNHTTPError = -2097545178, + CDDBTRNFileWriteError = -2097545177, + CDDBTRNFileDeleteError = -2097545176, + CDDBTRNIDInvalidated = -2097545175, + CDDBTRNHTTPProxyError = -2097545174, + CDDBTRNServiceLoadFailure = -2097545173, + CDDBSVCServiceError = -2097479680, + CDDBSVCHandleUsed = -2097479679, + CDDBSVCNoEmail = -2097479678, + CDDBSVCNoHint = -2097479677, + CDDBSVCUnknownHandle = -2097479676, + CDDBSVCInvalidField = -2097479580, + CDDBSVCMissingField = -2097479579, + CDDBSVCLimitReached = -2097479578, + CDDBCTLBusy = -2097414143, + CDDBCTLNotRegistered = -2097414142, + CDDBCTLHandleUsed = -2097414141, + CDDBCTLInvalidParameter = -2097414140, + CDDBCTLMissingField = -2097414139, + CDDBCTLMissingProperty = -2097414138, + CDDBCTLNoCommand = -2097414137, + CDDBCTLNoClientInfo = -2097414136, + CDDBCTLNotInitialized = -2097414135, + CDDBCTLInvalidTagId = -2097414134, + CDDBCTLDisabled = -2097414133, + CDDBCTL_ID3TagNoMemory = -2097410048, + CDDBCTL_ID3TagNoData = -2097410047, + CDDBCTL_ID3TagBadData = -2097410046, + CDDBCTL_ID3TagNoBuffer = -2097410045, + CDDBCTL_ID3TagSmallBuffer = -2097410044, + CDDBCTL_ID3TagInvalidFrameID = -2097410043, + CDDBCTL_ID3TagFieldNotFound = -2097410042, + CDDBCTL_ID3TagUnknownFieldType = -2097410041, + CDDBCTL_ID3TagAlreadyAttached = -2097410040, + CDDBCTL_ID3TagInvalidVersion = -2097410039, + CDDBCTL_ID3TagNoFile = -2097410038, + CDDBCTL_ID3TagReadonly = -2097410037, + CDDBCTL_ID3TagzlibError = -2097410036, + CDDBSVCTokensUsed = -2097479424, + CDDBSVCRegKeyUsed = -2097479423, + CDDBSVCInvalidRegKey = -2097479422, + CDDBSVCTokensExpired = -2097479421, + CDDBSVCInvalidToken = -2097479420, + CDDBCACHEBusy = -2097348607, + CDDBCACHENoIterator = -2097348606, + CDDBCACHENoMoreEntries = -2097348605, + CDDBCACHECorrupt = -2097348604, + CDDBLISTSBusy = -2097283071, + CDDBLISTSNoFile = -2097348606, + CDDBLISTSNotSupported = -2097348605 +}; + +enum CDDBCommands +{ + CMD_None = 0, + CMD_Invalid = -1, + PROP_Version = 1, + PROP_ServiceStatusURL = 2, + CMD_IsRegistered = 3, + CMD_SetClientInfo = 4, + CMD_GetUserInfo = 5, + CMD_SetUserInfo = 6, + CMD_GetOptions = 7, + CMD_SetOptions = 8, + CMD_GetMediaToc = 9, + CMD_LookupMediaByToc = 10, + CMD_GetMatchedDiscInfo = 11, + CMD_InvokeFuzzyMatchDialog = 12, + CMD_GetFullDiscInfo = 13, + CMD_GetDiscInfo = 14, + CMD_InvokeDiscInfo = 15, + CMD_DisplayDiscInfo = 16, + CMD_GetSubmitDisc = 17, + CMD_SubmitDisc = 18, + CMD_InvokeSubmitDisc = 19, + CMD_GetMediaTagId = 100, + CMD_LookupMediaByTagId = 101, + CMD_LookupMediaByFile = 102, + CMD_LookupMediaFile = 103, + CMD_LookupMediaByWaveform = 104, + CMD_GetGenreList = 20, + CMD_GetGenreTree = 21, + CMD_GetGenreInfo = 22, + CMD_GetRegionList = 23, + CMD_GetRegionInfo = 24, + CMD_GetRoleList = 25, + CMD_GetRoleTree = 26, + CMD_GetRoleInfo = 27, + CMD_GetLanguageList = 28, + CMD_GetLanguageInfo = 29, + CMD_GetFieldList = 30, + CMD_GetFieldInfo = 31, + CMD_GetURLList = 32, + CMD_GetCoverURL = 33, + CMD_GetURLManager = 34, + CMD_Cancel = 35, + CMD_Status = 36, + CMD_GetServiceStatus = 37, + CMD_ServerNoop = 38, + CMD_FlushLocalCache = 39, + CMD_UpdateControl = 40, + CMD_GetPlaylistList = 41 +}; + +enum CDDBLogFlags +{ + LOG_DEFAULT = 0, + LOG_OFF = 1, + LOG_WINDOW = 2, + LOG_FILE = 4, + LOG_APP = 8, + LOG_DEST_MASK = 255, + LOG_EVENT_MASK = -256, + LOG_EVENT_UI = 256, + LOG_EVENT_DEVICE = 512, + LOG_EVENT_SERVER = 1024, + LOG_EVENT_EVENTS = 2048, + LOG_EVENT_COMPLETION = 4096, + LOG_EVENT_ERROR = 268435456 +}; + +enum CDDBUIFlags +{ + UI_NONE = 0, + UI_READONLY = 1, + UI_EDITMODE = 2, + UI_SUBMITNEW = 8, + UI_OK = 256, + UI_CANCEL = 512, + UI_DATA_CHANGED = 1024, + UI_FULL = 4096, + UI_SHORT = 8192, + UI_DISP_PROGRESS = 65536, + UI_DISP_STATIC = 131072, + UI_DISP_BONUS = 262144, + UI_ENCODING = 1048576 +}; + +enum CDDBTagFlags +{ + TAG_MERGE_DEFAULT = 0, + TAG_MERGE_ALL = 1, + TAG_MERGE_ID_ONLY = 2, + TAG_MERGE_GN_DATA = 2 +}; + +enum CDDBEventCodes +{ + EVENT_COMMAND_COMPLETED = 1, + EVENT_LOG_MESSAGE = 2, + EVENT_SERVER_MESSAGE = 3, + EVENT_COMMAND_PROGRESS = 4 +}; + +enum CDDBProperty +{ + PROP_Default = 0, + PROP_DomainMask = -16777216, + PROP_Title = 1, + PROP_Artist = 2, + PROP_Label = 4, + PROP_Year = 8, + PROP_Notes = 16, + PROP_GenreId = 32, + PROP_SecondaryGenreId = 64, + PROP_RegionId = 128, + PROP_TotalInSet = 256, + PROP_NumberInSet = 512, + PROP_Certifier = 1024, + PROP_TitleSort = 2048, + PROP_TitleThe = 4096, + PROP_ArtistFirstName = 8192, + PROP_ArtistLastName = 16384, + PROP_ArtistThe = 32768, + PROP_Lyrics = 65536, + PROP_BeatsPerMinute = 131072, + PROP_ISRC = 262144, + PROP_Name = 524288, + PROP_StartTrack = 1048576, + PROP_StartFrame = 2097152, + PROP_EndTrack = 4194304, + PROP_EndFrame = 8388608, + PROP_Href = 16777217, + PROP_DisplayLink = 16777218, + PROP_Description = 16777220, + PROP_Category = 16777224, + PROP_Size = 16777232, + PROP_DisplayText = 16777248, + PROP_Id = 16777280, + PROP_Compilation = 16777344, + PROP_RecordingDate = 16777472, + PROP_ReleaseDate = 16777728, + PROP_ContentLanguageId = 16778240, + PROP_LanguageId = 16779264, + PROP_ProductCode = 16781312, + PROP_YearComposed = 16785408 +}; + +enum CDDBMatchCode +{ + MATCH_NONE = 1, + MATCH_MULTIPLE = 2, + MATCH_EXACT = 3, + MATCH_MULTI_EXACT = 5, + MATCH_CODE_SIZER = -1 +}; + +enum CDDBProgressCodes +{ + CMD_CONNECTING = 1, + CMD_SENDING = 2, + CMD_RECEIVING = 3, + CMD_CANCELLED = 4, + CMD_WAITING = 5, + CMD_COMPLETED = 6 +}; + +enum CDDBCacheFlags +{ + CACHE_DEFAULT = 0, + CACHE_DONT_CONNECT = 1, + CACHE_DONT_CREATE = 2, + CACHE_DONT_WRITE_MEDIA = 16, + CACHE_DONT_WRITE_LIST = 32, + CACHE_DONT_WRITE_URL = 64, + CACHE_DONT_WRITE_ANY = 240, + CACHE_NO_LOOKUP_MEDIA = 256, + CACHE_NO_LOOKUP_LIST = 512, + CACHE_NO_LOOKUP_URL = 1024, + CACHE_NO_LOOKUP_ANY = 3840, + CACHE_SUBMIT_UPDATE = 4096, + CACHE_SUBMIT_NEW = 8192, + CACHE_SUBMIT_OFFLINE = 16384, + CACHE_SUBMIT_ALL = 61440, + CACHE_UPDATE_FUZZY = 65536, + CACHE_UPDATE_CHECK = 131072 +}; + +enum CDDBFlushFlags +{ + FLUSH_DEFAULT = 0, + FLUSH_USERINFO = 1, + FLUSH_CLIENTINFO = 2, + FLUSH_REGISTRY = 4, + FLUSH_CACHE_MEDIA = 16, + FLUSH_CACHE_LISTS = 32, + FLUSH_CACHE_URLS = 64, + FLUSH_MEMORY_MEDIA = 256, + FLUSH_MEMORY_LISTS = 512, + FLUSH_MEMORY_URLS = 1024 +}; + +enum CDDBServerMessageCodes +{ + MSG_UPDATE = 1, + MSG_ENABLE = 2, + MSG_DISABLE = 3, + MSG_MESSAGE = 4 +}; + +enum CDDBServerMessageActions +{ + ACTION_NONE = 1, + ACTION_RECOMMENDED = 2, + ACTION_REQUIRED = 3 +}; + +enum CDDBExtDataFlags +{ + EXT_DATA_DEFAULT = 1, + EXT_DATA_GENRE_PRIMARY = 2, + EXT_DATA_GENRE_SECONDARY = 4, + EXT_DATA_ERA = 8, + EXT_DATA_ORIGIN = 16, + EXT_DATA_ARTIST_TYPE = 32, + EXT_DATA_POPULARITY = 64, + EXT_DATA_GNUID = 128, + EXT_DATA_CANONICAL = 256, + EXT_DATA_MOOD = 512, + EXT_DATA_TEMPO = 1024, + EXT_DATA_GENRE_V1_FALLBACK = 65536, + EXT_DATA_NO_DISC_FALLBACK = 131072, + EXT_DATA_UPDATE = 262144, + EXT_DATA_ALL = 524288 +}; + +enum CDDBDataListID +{ + DATA_LIST_NONE = 0, + DATA_LIST_GENRES = 1, + DATA_LIST_ORIGINS = 2, + DATA_LIST_ERAS = 3, + DATA_LIST_ARTIST_TYPES = 4, + DATA_LIST_MOODS = 5, + DATA_LIST_TEMPO = 6, + DATA_LIST_ALL = 65535 +}; + +enum CDDBDataListOptions +{ + DATA_LIST_OPT_AUTO_RESET = 1, + DATA_LIST_OPT_NO_REV_CHECK = 2, + DATA_LIST_OPT_NO_INHERIT = 4, + DATA_LIST_OPT_MULTI_FILES = 8, + DATA_LIST_OPT_DEFAULT = 1 +}; + +enum CDDBDataListFlags +{ + DATA_LIST_FLAG_AUTO_RESET = 1, + DATA_LIST_FLAG_NO_REV_CHECK = 2, + DATA_LIST_FLAG_CHK_ONLINE = 4, + DATA_LIST_FLAG_CHK_LOCAL = 8, + DATA_LIST_FLAG_DEFAULT = 1 +}; + +enum CddbDataOptions +{ + CDDB_DATA_NONE = 0, + CDDB_DATA_CLASSICAL = 1, + CDDB_DATA_DSP = 2 +}; + +struct __declspec(uuid("fc288125-6636-405c-be68-e9d37700deb0")) +DCDDBEvents : IDispatch +{}; + +struct __declspec(uuid("796d4314-0c0e-4b10-8bc2-3f3e6956bc26")) +CddbUserInfo; + // [ default ] interface ICddbUserInfo + +struct __declspec(uuid("4570cddc-94f8-4b43-b1ac-796d68fac7df")) +ICddbUserInfo : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_EmailAddress ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_EmailAddress ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_UserHandle ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_UserHandle ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Password ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Password ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_PasswordHint ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_PasswordHint ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_RegionId ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_RegionId ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_PostalCode ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_PostalCode ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Age ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Age ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Sex ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Sex ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_AllowEmail ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_AllowEmail ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_AllowStats ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_AllowStats ( + /*[in]*/ long pVal ) = 0; +}; + +struct __declspec(uuid("544bb1f5-d771-4fed-8fa7-d83e62fefb82")) +CddbOptions; + // [ default ] interface ICddbOptions + +struct __declspec(uuid("30755708-ae75-49f8-b99a-ac8d095d0448")) +ICddbOptions : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Language ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Language ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_LocalCachePath ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_LocalCachePath ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_LocalCacheSize ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_LocalCacheSize ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_LogFile ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_LogFile ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_LogFlags ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_LogFlags ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_LogWindow ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_LogWindow ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_ProxyServer ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_ProxyServer ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_ProxyServerPort ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_ProxyServerPort ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_ResourceModule ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_ResourceModule ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_ServerTimeout ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_ServerTimeout ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_AsyncCompletion ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_AsyncCompletion ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_AutoDownloadURLs ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_AutoDownloadURLs ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_AutoDownloadTargetedURLs ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_AutoDownloadTargetedURLs ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_ProxyUserName ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_ProxyUserName ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_ProxyPassword ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_ProxyPassword ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_ProgressEvents ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_ProgressEvents ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_LocalCacheTimeout ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_LocalCacheTimeout ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_LocalCacheFlags ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_LocalCacheFlags ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_TestSubmitMode ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_TestSubmitMode ( + /*[in]*/ long pVal ) = 0; +}; + +struct __declspec(uuid("3d055b64-824e-4613-b845-6afcdb888aa0")) +CddbDisc; + // [ default ] interface ICddbDisc + +struct __declspec(uuid("02d9f45f-2155-4445-83b9-75dfa5154538")) +CddbTrack; + // [ default ] interface ICddbTrack + +struct __declspec(uuid("d5673322-c7a0-493a-98d5-f16da00724aa")) +CddbFullName; + // [ default ] interface ICddbFullName + +struct __declspec(uuid("2b6107ad-d1f2-41c3-b9b9-3349324f7e7b")) +ICddbFullName : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Name ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Name ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_FirstName ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_FirstName ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_LastName ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_LastName ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_The ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_The ( + /*[in]*/ BSTR pVal ) = 0; +}; + +struct __declspec(uuid("61bd27fe-604c-49f8-a979-7a260a51ea5f")) +CddbCredit; + // [ default ] interface ICddbCredit + +struct __declspec(uuid("2aae501a-6d20-4af3-8c79-473106bd5391")) +ICddbCredit : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Id ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Id ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Name ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Name ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Notes ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Notes ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_FullName ( + /*[out,retval]*/ struct ICddbFullName * * pVal ) = 0; + virtual HRESULT __stdcall put_FullName ( + /*[in]*/ struct ICddbFullName * pVal ) = 0; + virtual HRESULT __stdcall IsPropertyCertified ( + /*[in]*/ enum CDDBProperty Property, + /*[out,retval]*/ long * pVal ) = 0; +}; + +struct __declspec(uuid("9a27fc19-f3ac-4755-a05a-9c7922437271")) +CddbCredits; + // [ default ] interface ICddbCredits + +struct __declspec(uuid("7da05059-cfb4-46ce-a788-709a3ad3454d")) +ICddbTrack : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Title ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Title ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Artist ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Artist ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Year ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Year ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Label ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Label ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Notes ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Notes ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_GenreId ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_GenreId ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_SecondaryGenreId ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_SecondaryGenreId ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Lyrics ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Lyrics ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_BeatsPerMinute ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_BeatsPerMinute ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_ISRC ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_ISRC ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_TitleSort ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_TitleSort ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_TitleThe ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_TitleThe ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_ArtistFullName ( + /*[out,retval]*/ struct ICddbFullName * * pVal ) = 0; + virtual HRESULT __stdcall put_ArtistFullName ( + /*[in]*/ struct ICddbFullName * pVal ) = 0; + virtual HRESULT __stdcall AddCredit ( + /*[in]*/ BSTR RoleId, + /*[in]*/ BSTR Name, + /*[out,retval]*/ struct ICddbCredit * * pVal ) = 0; + virtual HRESULT __stdcall RemoveCredit ( + /*[in]*/ struct ICddbCredit * Credit ) = 0; + virtual HRESULT __stdcall get_Credits ( + /*[out,retval]*/ struct ICddbCredits * * pVal ) = 0; + virtual HRESULT __stdcall GetCredit ( + /*[in]*/ long CreditIndex, + /*[out,retval]*/ struct ICddbCredit * * pVal ) = 0; + virtual HRESULT __stdcall get_NumCredits ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall IsPropertyCertified ( + /*[in]*/ enum CDDBProperty Property, + /*[out,retval]*/ long * pVal ) = 0; +}; + +struct __declspec(uuid("c30fbc5c-f56c-40dd-841d-5e4428f3baea")) +ICddbCredits : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetCredit ( + /*[in]*/ long CreditIndex, + /*[out,retval]*/ struct ICddbCredit * * pVal ) = 0; + virtual HRESULT __stdcall get__NewEnum ( + /*[out,retval]*/ IUnknown * * pVal ) = 0; + virtual HRESULT __stdcall get_Item ( + /*[in]*/ long lIndex, + /*[out,retval]*/ VARIANT * pVal ) = 0; +}; + +struct __declspec(uuid("b2ebb2e2-48e5-4004-bc9e-9cdefdd9269e")) +CddbTracks; + // [ default ] interface ICddbTracks + +struct __declspec(uuid("a1fa4e71-b4e0-4378-a102-04e850e0aa18")) +ICddbTracks : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetTrack ( + /*[in]*/ long TrackIndex, + /*[out,retval]*/ struct ICddbTrack * * pVal ) = 0; + virtual HRESULT __stdcall get__NewEnum ( + /*[out,retval]*/ IUnknown * * pVal ) = 0; + virtual HRESULT __stdcall get_Item ( + /*[in]*/ long lIndex, + /*[out,retval]*/ VARIANT * pVal ) = 0; +}; + +struct __declspec(uuid("f2f46124-41eb-4e26-b2e5-d7fc1736c8a2")) +CddbSegments; + // [ default ] interface ICddbSegments + +struct __declspec(uuid("993bb5e2-4a0d-4ed0-bd37-8718c422997e")) +CddbSegment; + // [ default ] interface ICddbSegment + +struct __declspec(uuid("31480e0f-de17-4cae-8d85-1db90f9fcd2f")) +ICddbSegments : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetSegment ( + /*[in]*/ long SegmentIndex, + /*[out,retval]*/ struct ICddbSegment * * pVal ) = 0; + virtual HRESULT __stdcall get__NewEnum ( + /*[out,retval]*/ IUnknown * * pVal ) = 0; + virtual HRESULT __stdcall get_Item ( + /*[in]*/ long lIndex, + /*[out,retval]*/ VARIANT * pVal ) = 0; +}; + +struct __declspec(uuid("375b697c-06a1-4d99-9f5d-3589001b15fd")) +ICddbSegment : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Name ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Name ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Notes ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Notes ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_StartTrack ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_StartTrack ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_StartFrame ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_StartFrame ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_EndTrack ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_EndTrack ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_EndFrame ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_EndFrame ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Credits ( + /*[out,retval]*/ struct ICddbCredits * * pVal ) = 0; + virtual HRESULT __stdcall AddCredit ( + /*[in]*/ BSTR RoleId, + /*[in]*/ BSTR Name, + /*[out,retval]*/ struct ICddbCredit * * pVal ) = 0; + virtual HRESULT __stdcall RemoveCredit ( + /*[in]*/ struct ICddbCredit * Credit ) = 0; + virtual HRESULT __stdcall GetCredit ( + /*[in]*/ long CreditIndex, + /*[out,retval]*/ struct ICddbCredit * * pVal ) = 0; + virtual HRESULT __stdcall get_NumCredits ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall IsPropertyCertified ( + /*[in]*/ enum CDDBProperty Property, + /*[out,retval]*/ long * pVal ) = 0; +}; + +struct __declspec(uuid("15a6784e-b924-43da-a15f-92e0072ac14d")) +CddbURLTree; + // [ default ] interface ICddbURLTree + +struct __declspec(uuid("f61de7e3-bd71-442c-a555-d11880a0b454")) +CddbURLList; + // [ default ] interface ICddbURLList + +struct __declspec(uuid("20d2984f-0d6d-49f9-aa80-36030cef0a42")) +ICddbURLTree : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall get__NewEnum ( + /*[out,retval]*/ IUnknown * * pVal ) = 0; + virtual HRESULT __stdcall get_Item ( + /*[in]*/ long lIndex, + /*[out,retval]*/ VARIANT * pVal ) = 0; + virtual HRESULT __stdcall CategoryList ( + /*[in]*/ BSTR Category, + /*[out,retval]*/ struct ICddbURLList * * pVal ) = 0; + virtual HRESULT __stdcall GetURLList ( + /*[in]*/ long ListIndex, + /*[out,retval]*/ struct ICddbURLList * * pVal ) = 0; +}; + +struct __declspec(uuid("6f6f90b2-ff9f-4f62-8eee-6ba04a45de6c")) +CddbURL; + // [ default ] interface ICddbURL + +struct __declspec(uuid("680f25c4-044b-4de0-998f-dfa463626e13")) +ICddbURLList : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall get_Category ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall GetURL ( + /*[in]*/ long URLIndex, + /*[out,retval]*/ struct ICddbURL * * pVal ) = 0; + virtual HRESULT __stdcall CreateURLTree ( + /*[out,retval]*/ struct ICddbURLTree * * pVal ) = 0; + virtual HRESULT __stdcall get__NewEnum ( + /*[out,retval]*/ IUnknown * * pVal ) = 0; + virtual HRESULT __stdcall get_Item ( + /*[in]*/ long lIndex, + /*[out,retval]*/ VARIANT * pVal ) = 0; +}; + +struct __declspec(uuid("751e8ace-610b-4336-b425-5038154f68a2")) +ICddbURL : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Href ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Href ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_DisplayLink ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_DisplayLink ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Description ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Description ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Type ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Type ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Category ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Category ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Weight ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Weight ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Size ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Size ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_DisplayText ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_DisplayText ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall IsPropertyCertified ( + /*[in]*/ enum CDDBProperty Property, + /*[out,retval]*/ long * pVal ) = 0; +}; + +struct __declspec(uuid("8f3ae41f-1fe4-4293-b016-71e3bcca9841")) +CddbLanguages; + // [ default ] interface ICddbLanguages + +struct __declspec(uuid("5220e8fa-b11f-46cf-9786-51b11e05f657")) +ICddbDisc : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Toc ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Toc ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Title ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Title ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Artist ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Artist ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Label ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Label ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Year ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Year ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_NumTracks ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetTrackTitle ( + /*[in]*/ long Number, + /*[out,retval]*/ BSTR * Title ) = 0; + virtual HRESULT __stdcall AddTrack ( + /*[in]*/ long Number, + /*[in]*/ BSTR Title, + /*[out,retval]*/ struct ICddbTrack * * pVal ) = 0; + virtual HRESULT __stdcall get_MediaId ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_MuiId ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Notes ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Notes ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_GenreId ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_GenreId ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_SecondaryGenreId ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_SecondaryGenreId ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_RegionId ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_RegionId ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Revision ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Revision ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_TotalInSet ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_TotalInSet ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_NumberInSet ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_NumberInSet ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_TitleUId ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Certifier ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_TitleSort ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_TitleSort ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_TitleThe ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_TitleThe ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Tracks ( + /*[out,retval]*/ struct ICddbTracks * * pVal ) = 0; + virtual HRESULT __stdcall get_Segments ( + /*[out,retval]*/ struct ICddbSegments * * pVal ) = 0; + virtual HRESULT __stdcall get_Credits ( + /*[out,retval]*/ struct ICddbCredits * * pVal ) = 0; + virtual HRESULT __stdcall get_ArtistFullName ( + /*[out,retval]*/ struct ICddbFullName * * pVal ) = 0; + virtual HRESULT __stdcall put_ArtistFullName ( + /*[in]*/ struct ICddbFullName * pVal ) = 0; + virtual HRESULT __stdcall GetURLTree ( + /*[out,retval]*/ struct ICddbURLTree * * pVal ) = 0; + virtual HRESULT __stdcall AddSegment ( + /*[in]*/ BSTR Name, + /*[out,retval]*/ struct ICddbSegment * * pVal ) = 0; + virtual HRESULT __stdcall RemoveSegment ( + /*[in]*/ BSTR Name ) = 0; + virtual HRESULT __stdcall AddCredit ( + /*[in]*/ BSTR RoleId, + /*[in]*/ BSTR Name, + /*[out,retval]*/ struct ICddbCredit * * pVal ) = 0; + virtual HRESULT __stdcall RemoveCredit ( + /*[in]*/ struct ICddbCredit * Credit ) = 0; + virtual HRESULT __stdcall get_LanguageId ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_LanguageId ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_RevisionTag ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_RevisionTag ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Compilation ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Compilation ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Languages ( + /*[out,retval]*/ struct ICddbLanguages * * pVal ) = 0; + virtual HRESULT __stdcall GetTrack ( + /*[in]*/ long Number, + /*[out,retval]*/ struct ICddbTrack * * pVal ) = 0; + virtual HRESULT __stdcall GetSegment ( + /*[in]*/ long SegmentIndex, + /*[out,retval]*/ struct ICddbSegment * * pVal ) = 0; + virtual HRESULT __stdcall get_NumCredits ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall get_NumSegments ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetCredit ( + /*[in]*/ long CreditIndex, + /*[out,retval]*/ struct ICddbCredit * * pVal ) = 0; + virtual HRESULT __stdcall IsSubmit ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall IsPropertyCertified ( + /*[in]*/ enum CDDBProperty Property, + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall RemoveSegmentObject ( + /*[in]*/ struct ICddbSegment * Segment ) = 0; +}; + +struct __declspec(uuid("686f7bce-1edb-4540-8c25-bba9ce7b2323")) +ICddbLanguages : IDispatch +{}; + +struct __declspec(uuid("e39c031c-a54e-40f7-b82d-1c47155e7411")) +CddbDiscs; + // [ default ] interface ICddbDiscs + +struct __declspec(uuid("0d5072cc-86a0-4600-bb7f-da7723ddd298")) +ICddbDiscs : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetDisc ( + /*[in]*/ long DiscIndex, + /*[out,retval]*/ struct ICddbDisc * * pVal ) = 0; + virtual HRESULT __stdcall get__NewEnum ( + /*[out,retval]*/ IUnknown * * pVal ) = 0; + virtual HRESULT __stdcall get_Item ( + /*[in]*/ long lIndex, + /*[out,retval]*/ VARIANT * pVal ) = 0; +}; + +struct __declspec(uuid("82e54124-11a8-4b37-9820-3e63eabde079")) +CddbGenreList; + // [ default ] interface ICddbGenreList + +struct __declspec(uuid("cd5f005a-596d-4b5a-8ab9-c9821315b950")) +CddbGenre; + // [ default ] interface ICddbGenre + +struct __declspec(uuid("9151953e-0621-4167-bcb6-36f8e65ec6c9")) +ICddbGenreList : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetGenreName ( + /*[in]*/ BSTR GenreId, + /*[out,retval]*/ BSTR * GenreName ) = 0; + virtual HRESULT __stdcall get_MetaGenre ( + /*[out,retval]*/ struct ICddbGenre * * pVal ) = 0; + virtual HRESULT __stdcall GetGenre ( + /*[in]*/ long GenreIndex, + /*[out,retval]*/ struct ICddbGenre * * pVal ) = 0; + virtual HRESULT __stdcall GetGenreInfo ( + /*[in]*/ BSTR GenreId, + /*[out,retval]*/ struct ICddbGenre * * pVal ) = 0; + virtual HRESULT __stdcall get__NewEnum ( + /*[out,retval]*/ IUnknown * * pVal ) = 0; + virtual HRESULT __stdcall get_Item ( + /*[in]*/ long lIndex, + /*[out,retval]*/ VARIANT * pVal ) = 0; +}; + +struct __declspec(uuid("4b3be7ee-9a6e-4276-8701-3a85f5d9e3c5")) +ICddbGenre : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Id ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Name ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Description ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Type ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Parent ( + /*[out,retval]*/ BSTR * pVal ) = 0; +}; + +struct __declspec(uuid("a228e94b-2fc2-448c-b593-d293d981a335")) +CddbGenreTree; + // [ default ] interface ICddbGenreTree + +struct __declspec(uuid("37668f25-b3ff-42ea-a3f9-25ea0740902e")) +ICddbGenreTree : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetSubGenreList ( + /*[in]*/ BSTR GenreId, + /*[out,retval]*/ struct ICddbGenreList * * pVal ) = 0; + virtual HRESULT __stdcall GetMetaGenre ( + /*[in]*/ long GenreIndex, + /*[out,retval]*/ struct ICddbGenre * * pVal ) = 0; + virtual HRESULT __stdcall get__NewEnum ( + /*[out,retval]*/ IUnknown * * pVal ) = 0; + virtual HRESULT __stdcall get_Item ( + /*[in]*/ long lIndex, + /*[out,retval]*/ VARIANT * pVal ) = 0; +}; + +struct __declspec(uuid("e454ac26-5551-47ee-951c-5ae1dd824d28")) +CddbRegionList; + // [ default ] interface ICddbRegionList + +struct __declspec(uuid("203e2a74-acde-4588-ad98-a666dcb1636a")) +CddbRegion; + // [ default ] interface ICddbRegion + +struct __declspec(uuid("c841589b-ce3d-4fef-9422-2832a64d321e")) +ICddbRegionList : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetRegionName ( + /*[in]*/ BSTR RegionId, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall GetRegion ( + /*[in]*/ long RegionIndex, + /*[out,retval]*/ struct ICddbRegion * * pVal ) = 0; + virtual HRESULT __stdcall GetRegionInfo ( + /*[in]*/ BSTR RegionId, + /*[out,retval]*/ struct ICddbRegion * * pVal ) = 0; + virtual HRESULT __stdcall get__NewEnum ( + /*[out,retval]*/ IUnknown * * pVal ) = 0; + virtual HRESULT __stdcall get_Item ( + /*[in]*/ long lIndex, + /*[out,retval]*/ VARIANT * pVal ) = 0; +}; + +struct __declspec(uuid("57b9551a-a3ea-484d-8fc6-1b4ec7d2420d")) +ICddbRegion : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Id ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Name ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Description ( + /*[out,retval]*/ BSTR * pVal ) = 0; +}; + +struct __declspec(uuid("24575390-26a3-405d-b47b-fc72cdcb80aa")) +CddbRoleList; + // [ default ] interface ICddbRoleList + +struct __declspec(uuid("546523f6-07ee-488c-b472-dd4a338ba7a2")) +CddbRole; + // [ default ] interface ICddbRole + +struct __declspec(uuid("614d9d0a-c012-4863-afbf-9c9dd01e04d1")) +ICddbRoleList : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetRoleName ( + /*[in]*/ BSTR RoleId, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall GetRole ( + /*[in]*/ long RoleIndex, + /*[out,retval]*/ struct ICddbRole * * pVal ) = 0; + virtual HRESULT __stdcall get_Category ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_CategoryRole ( + /*[out,retval]*/ struct ICddbRole * * pVal ) = 0; + virtual HRESULT __stdcall GetRoleInfo ( + /*[in]*/ BSTR RoleId, + /*[out,retval]*/ struct ICddbRole * * pVal ) = 0; + virtual HRESULT __stdcall get__NewEnum ( + /*[out,retval]*/ IUnknown * * pVal ) = 0; + virtual HRESULT __stdcall get_Item ( + /*[in]*/ long lIndex, + /*[out,retval]*/ VARIANT * pVal ) = 0; +}; + +struct __declspec(uuid("84f40113-d6ca-4289-acfa-b8b1691e596b")) +ICddbRole : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Id ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Name ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Description ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Parent ( + /*[out,retval]*/ BSTR * pVal ) = 0; +}; + +struct __declspec(uuid("a25a1b97-a3f8-4fd5-a71e-a6ab86de1946")) +CddbRoleTree; + // [ default ] interface ICddbRoleTree + +struct __declspec(uuid("0ba44da2-a91d-4c60-8e48-61b5e69495ea")) +ICddbRoleTree : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetCategoryRoleList ( + /*[in]*/ BSTR RoleId, + /*[out,retval]*/ struct ICddbRoleList * * pVal ) = 0; + virtual HRESULT __stdcall GetRoleList ( + /*[in]*/ long ListIndex, + /*[out,retval]*/ struct ICddbRoleList * * pVal ) = 0; + virtual HRESULT __stdcall get__NewEnum ( + /*[out,retval]*/ IUnknown * * pVal ) = 0; + virtual HRESULT __stdcall get_Item ( + /*[in]*/ long lIndex, + /*[out,retval]*/ VARIANT * pVal ) = 0; +}; + +struct __declspec(uuid("bd8c8761-451f-4aec-9dad-f42bdbeaf9e6")) +CddbLanguageList; + // [ default ] interface ICddbLanguageList + +struct __declspec(uuid("ee5da1c8-ea29-4ec6-a59c-23ddc304bab0")) +CddbLanguage; + // [ default ] interface ICddbLanguage + +struct __declspec(uuid("719c744f-cdef-49c2-9ada-df5ba8770f4b")) +ICddbLanguageList : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetLanguageName ( + /*[in]*/ BSTR LanguageId, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall GetLanguage ( + /*[in]*/ long LanguageIndex, + /*[out,retval]*/ struct ICddbLanguage * * pVal ) = 0; + virtual HRESULT __stdcall GetLanguageInfo ( + /*[in]*/ BSTR LanguageId, + /*[out,retval]*/ struct ICddbLanguage * * pVal ) = 0; + virtual HRESULT __stdcall get__NewEnum ( + /*[out,retval]*/ IUnknown * * pVal ) = 0; + virtual HRESULT __stdcall get_Item ( + /*[in]*/ long lIndex, + /*[out,retval]*/ VARIANT * pVal ) = 0; +}; + +struct __declspec(uuid("06c77e4d-fe13-4fa4-b52a-1cf2e047f55f")) +ICddbLanguage : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Id ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Name ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Description ( + /*[out,retval]*/ BSTR * pVal ) = 0; +}; + +struct __declspec(uuid("f34a22b2-a4df-4a19-bfd9-c593bd1cd6b2")) +CddbFieldList; + // [ default ] interface ICddbFieldList + +struct __declspec(uuid("cf6268fd-7ba3-4cc5-9de1-fead923d216c")) +ICddbFieldList : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetFieldName ( + /*[in]*/ BSTR Name, + /*[in]*/ BSTR Target, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get__NewEnum ( + /*[out,retval]*/ IUnknown * * pVal ) = 0; + virtual HRESULT __stdcall get_Item ( + /*[in]*/ long lIndex, + /*[out,retval]*/ VARIANT * pVal ) = 0; +}; + +struct __declspec(uuid("9390d4fe-56ca-42f6-b8dc-16e22d12c9c3")) +CddbField; + // [ default ] interface ICddbField + +struct __declspec(uuid("aa3218d8-a65c-4a29-8690-1e5b75dbf3b8")) +ICddbField : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_DisplayName ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Name ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Description ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Type ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Length ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_EnumCount ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Table ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Target ( + /*[out,retval]*/ BSTR * pVal ) = 0; +}; + +struct __declspec(uuid("dccf8d5f-c1f6-44a1-b065-60d56557f821")) +CddbURLManager; + // [ default ] interface ICddbURLManager + +struct __declspec(uuid("623ce0d4-7b45-4b69-a28d-2401e7aa16d4")) +ICddbURLManager : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall GetCoverURLs ( + /*[in]*/ struct ICddbDisc * Disc, + /*[out,retval]*/ struct ICddbURLList * * pVal ) = 0; + virtual HRESULT __stdcall GetInfoURLs ( + /*[in]*/ struct ICddbDisc * Disc, + /*[out,retval]*/ struct ICddbURLList * * pVal ) = 0; + virtual HRESULT __stdcall GetAdURLs ( + /*[in]*/ struct ICddbDisc * Disc, + /*[out,retval]*/ struct ICddbURLList * * pVal ) = 0; + virtual HRESULT __stdcall GetMenuURLs ( + /*[in]*/ struct ICddbDisc * Disc, + /*[out,retval]*/ struct ICddbURLList * * pVal ) = 0; + virtual HRESULT __stdcall GetSkinURLs ( + /*[in]*/ struct ICddbDisc * Disc, + /*[out,retval]*/ struct ICddbURLList * * pVal ) = 0; + virtual HRESULT __stdcall GetPluginURLs ( + /*[in]*/ struct ICddbDisc * Disc, + /*[out,retval]*/ struct ICddbURLList * * pVal ) = 0; + virtual HRESULT __stdcall GetTypedURLs ( + /*[in]*/ struct ICddbDisc * Disc, + /*[in]*/ BSTR Type, + /*[out,retval]*/ struct ICddbURLList * * pVal ) = 0; + virtual HRESULT __stdcall GetAssociatedURLs ( + /*[in]*/ struct ICddbDisc * Disc, + /*[in]*/ BSTR Type, + /*[in]*/ BSTR Property, + /*[in]*/ BSTR Value, + /*[out,retval]*/ struct ICddbURLList * * pVal ) = 0; + virtual HRESULT __stdcall GetURLAssociations ( + /*[out,retval]*/ struct ICddbURLList * * pVal ) = 0; + virtual HRESULT __stdcall GetCurrentURL ( + /*[in]*/ struct ICddbDisc * Disc, + /*[in]*/ BSTR URL, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall SubmitURL ( + /*[in]*/ struct ICddbDisc * Disc, + /*[in]*/ struct ICddbURL * URL ) = 0; + virtual HRESULT __stdcall DeleteURL ( + /*[in]*/ struct ICddbURL * URL ) = 0; + virtual HRESULT __stdcall GotoURL ( + /*[in]*/ struct ICddbURL * URL, + /*[in]*/ BSTR RawURL ) = 0; +}; + +struct __declspec(uuid("a4d4fe68-1df3-42fe-8a8d-594d9bd60fd0")) +CddbID3TagManager; + // [ default ] interface ICddbID3TagManager + +struct __declspec(uuid("723695c2-3b01-42c3-a661-64d2ec30b4e5")) +ICDDBControl : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Version ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall IsRegistered ( + /*[in]*/ long InvokeDialog, + /*[out,retval]*/ long * Registered ) = 0; + virtual HRESULT __stdcall SetClientInfo ( + /*[in]*/ BSTR ClientId, + /*[in]*/ BSTR ClientTag, + /*[in]*/ BSTR ClientVersion, + /*[in]*/ BSTR ClientRegString ) = 0; + virtual HRESULT __stdcall GetUserInfo ( + /*[out,retval]*/ struct ICddbUserInfo * * pVal ) = 0; + virtual HRESULT __stdcall SetUserInfo ( + /*[in]*/ struct ICddbUserInfo * UserInfo ) = 0; + virtual HRESULT __stdcall GetOptions ( + /*[out,retval]*/ struct ICddbOptions * * pVal ) = 0; + virtual HRESULT __stdcall SetOptions ( + /*[in]*/ struct ICddbOptions * Options ) = 0; + virtual HRESULT __stdcall GetMediaToc ( + /*[in]*/ long MciDeviceId, + /*[out,retval]*/ BSTR * MediaToc ) = 0; + virtual HRESULT __stdcall LookupMediaByToc ( + /*[in]*/ BSTR MediaToc, + /*[in]*/ long EventOnCompletion, + /*[out,retval]*/ enum CDDBMatchCode * pMatchCode ) = 0; + virtual HRESULT __stdcall GetMatchedDiscInfo ( + /*[out,retval]*/ IUnknown * * ppDisc ) = 0; + virtual HRESULT __stdcall GetMatchedDisc ( + /*[out,retval]*/ struct ICddbDisc * * ppDisc ) = 0; + virtual HRESULT __stdcall GetMatchedDiscs ( + /*[out,retval]*/ struct ICddbDiscs * * ppDiscs ) = 0; + virtual HRESULT __stdcall Initialize ( + /*[in]*/ long ParentHWND, + /*[in]*/ enum CDDBCacheFlags Flags ) = 0; + virtual HRESULT __stdcall Shutdown ( ) = 0; + virtual HRESULT __stdcall SetClientInfoFromHost ( + /*[in]*/ BSTR Target, + /*[in]*/ BSTR User, + /*[in]*/ BSTR Password ) = 0; + virtual HRESULT __stdcall InvokeFuzzyMatchDialog ( + /*[in]*/ struct ICddbDiscs * Discs, + /*[out,retval]*/ struct ICddbDisc * * pVal ) = 0; + virtual HRESULT __stdcall GetFullDiscInfo ( + /*[in]*/ struct ICddbDisc * Disc, + /*[in]*/ long EventOnCompletion, + /*[out,retval]*/ struct ICddbDisc * * pVal ) = 0; + virtual HRESULT __stdcall GetDiscInfo ( + /*[in]*/ BSTR MediaId, + /*[in]*/ BSTR MuiId, + /*[in]*/ BSTR RevisionId, + /*[in]*/ BSTR RevisionTag, + /*[in]*/ long EventOnCompletion, + /*[out,retval]*/ struct ICddbDisc * * ppDisc ) = 0; + virtual HRESULT __stdcall InvokeDiscInfo ( + /*[in]*/ BSTR MediaToc, + /*[in]*/ BSTR MediaId, + /*[in]*/ BSTR MuiId, + /*[in]*/ long MciDeviceId, + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall DisplayDiscInfo ( + /*[in]*/ struct ICddbDisc * Disc, + /*[in]*/ enum CDDBUIFlags Flags, + /*[out,retval]*/ enum CDDBUIFlags * pVal ) = 0; + virtual HRESULT __stdcall GetSubmitDisc ( + /*[in]*/ BSTR MediaToc, + /*[in]*/ BSTR MediaId, + /*[in]*/ BSTR MuiId, + /*[out,retval]*/ struct ICddbDisc * * pVal ) = 0; + virtual HRESULT __stdcall SubmitDisc ( + /*[in]*/ struct ICddbDisc * Disc, + /*[in]*/ long EventOnCompletion, + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall InvokeSubmitDisc ( + /*[in]*/ BSTR MediaToc, + /*[in]*/ long MciDeviceId, + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetGenreList ( + /*[in]*/ long EventOnCompletion, + /*[out,retval]*/ struct ICddbGenreList * * pVal ) = 0; + virtual HRESULT __stdcall GetGenreTree ( + /*[in]*/ long EventOnCompletion, + /*[out,retval]*/ struct ICddbGenreTree * * pVal ) = 0; + virtual HRESULT __stdcall GetGenreInfo ( + /*[in]*/ BSTR GenreId, + /*[out,retval]*/ struct ICddbGenre * * pVal ) = 0; + virtual HRESULT __stdcall GetRegionList ( + /*[in]*/ long EventOnCompletion, + /*[out,retval]*/ struct ICddbRegionList * * pVal ) = 0; + virtual HRESULT __stdcall GetRegionInfo ( + /*[in]*/ BSTR RegionId, + /*[out,retval]*/ struct ICddbRegion * * pVal ) = 0; + virtual HRESULT __stdcall GetRoleList ( + /*[in]*/ long EventOnCompletion, + /*[out,retval]*/ struct ICddbRoleList * * pVal ) = 0; + virtual HRESULT __stdcall GetRoleTree ( + /*[in]*/ long EventOnCompletion, + /*[out,retval]*/ struct ICddbRoleTree * * pVal ) = 0; + virtual HRESULT __stdcall GetRoleInfo ( + /*[in]*/ BSTR RoleId, + /*[out,retval]*/ struct ICddbRole * * pVal ) = 0; + virtual HRESULT __stdcall GetLanguageList ( + /*[in]*/ long EventOnCompletion, + /*[out,retval]*/ struct ICddbLanguageList * * pVal ) = 0; + virtual HRESULT __stdcall GetLanguageInfo ( + /*[in]*/ BSTR LanguageId, + /*[out,retval]*/ struct ICddbLanguage * * pVal ) = 0; + virtual HRESULT __stdcall GetFieldList ( + /*[in]*/ BSTR Target, + /*[in]*/ long EventOnCompletion, + /*[out,retval]*/ struct ICddbFieldList * * pVal ) = 0; + virtual HRESULT __stdcall GetFieldInfo ( + /*[in]*/ BSTR Target, + /*[in]*/ BSTR Name, + /*[out,retval]*/ struct ICddbField * * pVal ) = 0; + virtual HRESULT __stdcall GetURLList ( + /*[in]*/ struct ICddbDisc * Disc, + /*[in]*/ long EventOnCompletion, + /*[out,retval]*/ struct ICddbURLList * * pVal ) = 0; + virtual HRESULT __stdcall GetURLManager ( + /*[out,retval]*/ struct ICddbURLManager * * pVal ) = 0; + virtual HRESULT __stdcall UpdateControl ( + /*[in]*/ long UpdateNow, + /*[in]*/ long EventOnCompletion, + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall get_ServiceStatusURL ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall GetServiceStatus ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall GetCoverURL ( + /*[in]*/ struct ICddbDisc * Disc, + /*[in]*/ long EventOnCompletion, + /*[out,retval]*/ struct ICddbURL * * pVal ) = 0; + virtual HRESULT __stdcall GetUpdateURL ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall InvokeAboutCddbDialog ( ) = 0; + virtual HRESULT __stdcall InvokePopupMenu ( + /*[in]*/ enum CDDBUIFlags Flags ) = 0; + virtual HRESULT __stdcall InvokeUserRegDialog ( + /*[in]*/ struct ICddbUserInfo * UserInfo, + /*[in]*/ enum CDDBUIFlags Flags, + /*[out,retval]*/ enum CDDBUIFlags * pVal ) = 0; + virtual HRESULT __stdcall InvokeOptionsDialog ( + /*[in]*/ struct ICddbOptions * Options, + /*[out,retval]*/ enum CDDBUIFlags * pVal ) = 0; + virtual HRESULT __stdcall InvokeNoMatchDialog ( + /*[out,retval]*/ enum CDDBUIFlags * pVal ) = 0; + virtual HRESULT __stdcall InvokeInfoBrowser ( + /*[in]*/ struct ICddbDisc * Disc, + /*[in]*/ struct ICddbURL * URL, + /*[in]*/ enum CDDBUIFlags Flags ) = 0; + virtual HRESULT __stdcall GetDiscTagId ( + /*[in]*/ struct ICddbDisc * Disc, + /*[in]*/ long TrackNum, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall LookupMediaByTagId ( + /*[in]*/ BSTR TagId, + /*[in]*/ long EventOnCompletion, + /*[out]*/ long * TrackNum, + /*[out,retval]*/ struct ICddbDisc * * pVal ) = 0; + virtual HRESULT __stdcall GetTagManager ( + /*[out,retval]*/ struct ICddbID3TagManager * * pVal ) = 0; + virtual HRESULT __stdcall HttpPost ( + /*[in]*/ BSTR URL, + /*[in]*/ BSTR Header, + /*[in]*/ void * PostData, + /*[in]*/ long PostDataSize, + /*[out]*/ void * * Data, + /*[out]*/ long * DataSize ) = 0; + virtual HRESULT __stdcall HttpGet ( + /*[in]*/ BSTR URL, + /*[in]*/ BSTR Header, + /*[in]*/ void * GetData, + /*[in]*/ long GetDataSize, + /*[out]*/ void * * Data, + /*[out]*/ long * DataSize ) = 0; + virtual HRESULT __stdcall HttpGetFile ( + /*[in]*/ BSTR URL, + /*[in]*/ BSTR Header, + /*[in]*/ void * GetData, + /*[in]*/ long GetDataSize, + /*[in]*/ BSTR File ) = 0; + virtual HRESULT __stdcall Cancel ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall FlushLocalCache ( + /*[in]*/ enum CDDBFlushFlags Flags ) = 0; + virtual HRESULT __stdcall Status ( ) = 0; + virtual HRESULT __stdcall ServerNoop ( + /*[in]*/ long EventOnCompletion ) = 0; +}; + +struct __declspec(uuid("9e77a3fd-df03-4077-ba10-001d52acae44")) +CddbID3Tag; + // [ default ] interface ICddbID3Tag + // interface ICddbID3Tag2 + // interface ICddbFileTag + // interface ICddbFileTag2_5 + +struct __declspec(uuid("e7bbbe3a-dc3c-4d00-98f9-bc620ca952f8")) +ICddbID3TagManager : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall InitTagFromDisc ( + /*[in]*/ struct ICddbDisc * Disc, + /*[in]*/ long TrackNum, + /*[out,retval]*/ struct ICddbID3Tag * * pVal ) = 0; + virtual HRESULT __stdcall MergeToFile ( + /*[in]*/ struct ICddbID3Tag * Tag, + /*[in]*/ BSTR Filename, + /*[in]*/ long Flags ) = 0; + virtual HRESULT __stdcall GetID3TagFileId ( + /*[in]*/ struct ICddbDisc * Disc, + /*[in]*/ long TrackNum, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_CddbOwnerId ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_CddbCommentString ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall LookupMediaByFile ( + /*[in]*/ BSTR Filename, + /*[in]*/ long EventOnCompletion, + /*[out]*/ long * TrackNum, + /*[out,retval]*/ struct ICddbDisc * * pVal ) = 0; +}; + +struct __declspec(uuid("ca4e0490-7ed8-44a5-9ecd-d00b90dbe808")) +ICddbFileTag : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Album ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Album ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Movie ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Movie ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Title ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Title ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_CopyrightYear ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_CopyrightYear ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_CopyrightHolder ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_CopyrightHolder ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Comments ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Comments ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Label ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Label ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_BeatsPerMinute ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_BeatsPerMinute ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_LeadArtist ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_LeadArtist ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_PartOfSet ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_PartOfSet ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_TrackPosition ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_TrackPosition ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Year ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Year ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Genre ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Genre ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_FileId ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_FileId ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_ISRC ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_ISRC ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall LoadFromFile ( + /*[in]*/ BSTR Filename, + /*[in]*/ long Readonly ) = 0; + virtual HRESULT __stdcall BindToFile ( + /*[in]*/ BSTR Filename, + /*[in]*/ long Readonly ) = 0; + virtual HRESULT __stdcall SaveToFile ( + /*[in]*/ BSTR Filename ) = 0; + virtual HRESULT __stdcall Commit ( ) = 0; + virtual HRESULT __stdcall Clear ( ) = 0; + virtual HRESULT __stdcall LoadFromBuffer ( + /*[in]*/ VARIANT Buffer, + /*[in]*/ long BufferSize ) = 0; + virtual HRESULT __stdcall GetBufferSize ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall SaveToBuffer ( + /*[in]*/ VARIANT Buffer, + /*[in]*/ long BufferSize ) = 0; + virtual HRESULT __stdcall GetTextFrame ( + /*[in]*/ BSTR Frame, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall SetTextFrame ( + /*[in]*/ BSTR Frame, + /*[in]*/ BSTR Text ) = 0; +}; + +struct __declspec(uuid("7b2d9eb8-70aa-43d3-aa8e-e71ce53a83d8")) +ICddbID3Tag : ICddbFileTag +{}; + +struct __declspec(uuid("44959787-915b-4fcf-9763-1038483c000e")) +ICddbID3Tag2 : ICddbID3Tag +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Comment ( + /*[in]*/ BSTR desc, + /*[out,retval]*/ BSTR * pText ) = 0; + virtual HRESULT __stdcall put_Comment ( + /*[in]*/ BSTR desc, + /*[in]*/ BSTR Text ) = 0; +}; + +struct __declspec(uuid("d0be7f39-60d3-43e2-aa96-513217443ab6")) +CddbDisc2; + // [ default ] interface ICddbDisc2 + // interface ICddbDisc + +struct __declspec(uuid("45d1d297-dd01-4890-928c-34e1ba494a14")) +ICddbDisc2 : ICddbDisc +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_ContentLanguageId ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_ContentLanguageId ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_ReleaseDate ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_ReleaseDate ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_RecordingDate ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_RecordingDate ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_ProductCode ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_ProductCode ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_TrackNum ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_TrackNum ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall GetProperty ( + /*[in]*/ enum CDDBProperty PropId, + /*[in]*/ BSTR PropName, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall SetProperty ( + /*[in]*/ enum CDDBProperty PropId, + /*[in]*/ BSTR PropName, + /*[in]*/ BSTR PropValue ) = 0; + virtual HRESULT __stdcall Duplicate ( + /*[out,retval]*/ struct ICddbDisc2 * * pVal ) = 0; + virtual HRESULT __stdcall get_YearComposed ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_YearComposed ( + /*[in]*/ BSTR pVal ) = 0; +}; + +struct __declspec(uuid("d0f041d4-1570-4143-bb6a-4ce041b109d4")) +ICddbInfoWindow : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall Init ( + /*[in]*/ long hWnd, + /*[in]*/ long Left, + /*[in]*/ long Top, + /*[in]*/ long Right, + /*[in]*/ long Bottom ) = 0; + virtual HRESULT __stdcall SetRawURL ( + /*[in]*/ BSTR RawURL ) = 0; + virtual HRESULT __stdcall GetHwnd ( + /*[out]*/ long * phwnd ) = 0; + virtual HRESULT __stdcall SetDisc ( + /*[in]*/ struct ICddbDisc * Disc ) = 0; + virtual HRESULT __stdcall SetURL ( + /*[in]*/ struct ICddbURL * URL ) = 0; + virtual HRESULT __stdcall Refresh ( ) = 0; + virtual HRESULT __stdcall Shutdown ( ) = 0; + virtual HRESULT __stdcall SetAdPosition ( + /*[in]*/ BSTR Position ) = 0; +}; + +struct __declspec(uuid("06c18ba6-86a0-464c-b838-13a74e1ad049")) +ICddbUIOptions : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall GetCurrent ( + enum CDDBUIFlags Flags ) = 0; + virtual HRESULT __stdcall SetCurrent ( + enum CDDBUIFlags Flags ) = 0; + virtual HRESULT __stdcall get_ParentHWND ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_ParentHWND ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Left ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Left ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Top ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Top ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Right ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Right ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Bottom ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Bottom ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_ResourceHINSTANCE ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_ResourceHINSTANCE ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_ProgressResourceID ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_ProgressResourceID ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_StaticResourceID ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_StaticResourceID ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Frames ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Frames ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_BonusResourceID ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_BonusResourceID ( + /*[in]*/ long pVal ) = 0; +}; + +struct __declspec(uuid("d6f791c8-a7f7-4702-9d24-4b8f8ca4c807")) +ICddbTrackManager : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall MarkStartTrack ( + /*[in]*/ struct ICddbDisc * Disc, + /*[in]*/ long TrackNum, + /*[out,retval]*/ BSTR * pId ) = 0; + virtual HRESULT __stdcall MarkStartFile ( + /*[in]*/ BSTR TagId, + /*[in]*/ BSTR Filename, + /*[out,retval]*/ BSTR * pId ) = 0; + virtual HRESULT __stdcall MarkStop ( + /*[in]*/ BSTR Id ) = 0; + virtual HRESULT __stdcall GetURLContent ( + /*[in]*/ BSTR Id, + /*[out,retval]*/ struct ICddbURLList * * pVal ) = 0; +}; + +struct __declspec(uuid("1b0700ee-c9c7-4fca-9584-1096268cf6c4")) +ICDDBControl2 : ICDDBControl +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall GetHelper ( + /*[in]*/ long Id, + /*[out,retval]*/ IUnknown * * pVal ) = 0; + virtual HRESULT __stdcall ShutdownInterface ( + /*[in]*/ BSTR Id, + /*[in]*/ IUnknown * IHelper ) = 0; + virtual HRESULT __stdcall HttpPost2 ( + /*[in]*/ BSTR URL, + /*[in]*/ BSTR HeaderIn, + /*[out]*/ BSTR * HeaderOut, + /*[out]*/ BSTR * StatusOut, + /*[in]*/ long Redirect, + /*[in]*/ void * PostData, + /*[in]*/ long PostDataSize, + /*[out]*/ void * * Data, + /*[out]*/ long * DataSize ) = 0; + virtual HRESULT __stdcall HttpGet2 ( + /*[in]*/ BSTR URL, + /*[in]*/ BSTR HeaderIn, + /*[out]*/ BSTR * HeaderOut, + /*[out]*/ BSTR * StatusOut, + /*[in]*/ long Redirect, + /*[in]*/ void * GetData, + /*[in]*/ long GetDataSize, + /*[out]*/ void * * Data, + /*[out]*/ long * DataSize ) = 0; + virtual HRESULT __stdcall HttpGetFile2 ( + /*[in]*/ BSTR URL, + /*[in]*/ BSTR HeaderIn, + /*[out]*/ BSTR * HeaderOut, + /*[out]*/ BSTR * StatusOut, + /*[in]*/ long Redirect, + /*[in]*/ void * GetData, + /*[in]*/ long GetDataSize, + /*[in]*/ BSTR File ) = 0; + virtual HRESULT __stdcall InvokeFuzzyMatchDialog2 ( + /*[in]*/ struct ICddbDiscs * Discs, + /*[in]*/ enum CDDBUIFlags Flags, + /*[out]*/ long * Selection, + /*[out,retval]*/ enum CDDBUIFlags * pVal ) = 0; + virtual HRESULT __stdcall LookupMediaFile ( + /*[in]*/ BSTR Filename, + /*[in]*/ struct ICddbID3Tag * Tag, + /*[in]*/ long EventOnCompletion, + /*[out,retval]*/ enum CDDBMatchCode * pVal ) = 0; + virtual HRESULT __stdcall GetFullDiscInfo2 ( + /*[in]*/ struct ICddbDisc * Disc, + /*[in]*/ long Preview, + /*[in]*/ long EventOnCompletion, + /*[out,retval]*/ struct ICddbDisc * * pVal ) = 0; + virtual HRESULT __stdcall IsRegisteredForEncoding ( + /*[in]*/ long InvokeDialog, + /*[out,retval]*/ long * pVal ) = 0; +}; + +struct __declspec(uuid("63c7d158-bca0-4c29-96c4-06bdd744ecc2")) +ICddbOptions2 : ICddbOptions +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_PluginPath ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_PluginPath ( + /*[in]*/ BSTR pVal ) = 0; +}; + +struct __declspec(uuid("d27c6efc-76ed-4724-9741-9531fc52242c")) +ICddbWork : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Title ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Composer ( + /*[out,retval]*/ BSTR * pVal ) = 0; +}; + +struct __declspec(uuid("e5c5f8ea-6f8d-4bd0-8856-95ddd5668cde")) +ICddbTrack2 : ICddbTrack +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_LanguageId ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_LanguageId ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_ContentLanguageId ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_ContentLanguageId ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_ReleaseDate ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_ReleaseDate ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_RecordingDate ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_RecordingDate ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall GetProperty ( + /*[in]*/ enum CDDBProperty PropId, + /*[in]*/ BSTR PropName, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall SetProperty ( + /*[in]*/ enum CDDBProperty PropId, + /*[in]*/ BSTR PropName, + /*[in]*/ BSTR PropValue ) = 0; + virtual HRESULT __stdcall get_YearComposed ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_YearComposed ( + /*[in]*/ BSTR pVal ) = 0; +}; + +struct __declspec(uuid("7af4e5e5-2deb-462f-bbaf-684146856c6b")) +ICddbCacheManager : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall CheckCache ( + /*[in]*/ BSTR Filename ) = 0; + virtual HRESULT __stdcall BackupCache ( + /*[in]*/ BSTR Filename ) = 0; + virtual HRESULT __stdcall RestoreCache ( + /*[in]*/ BSTR Filename ) = 0; + virtual HRESULT __stdcall CompactCache ( + /*[in]*/ BSTR Filename ) = 0; + virtual HRESULT __stdcall DeleteCache ( + /*[in]*/ BSTR Filename ) = 0; + virtual HRESULT __stdcall FetchDiscByToc ( + /*[in]*/ BSTR Toc, + /*[out,retval]*/ struct ICddbDisc * * pVal ) = 0; + virtual HRESULT __stdcall FetchDiscById ( + /*[in]*/ BSTR MediaId, + /*[in]*/ BSTR MuiId, + /*[out,retval]*/ struct ICddbDisc * * pVal ) = 0; + virtual HRESULT __stdcall FetchDiscByTagId ( + /*[in]*/ BSTR TagId, + /*[out,retval]*/ struct ICddbDisc * * pVal ) = 0; + virtual HRESULT __stdcall FetchListOrTree ( + /*[in]*/ BSTR Type, + /*[in]*/ long Tree, + /*[out,retval]*/ IUnknown * * pVal ) = 0; + virtual HRESULT __stdcall StoreDiscByToc ( + /*[in]*/ BSTR Toc, + /*[in]*/ struct ICddbDisc * Disc ) = 0; + virtual HRESULT __stdcall StoreDiscById ( + /*[in]*/ BSTR MediaId, + /*[in]*/ BSTR MuiId, + /*[in]*/ struct ICddbDisc * Disc ) = 0; + virtual HRESULT __stdcall StoreDiscByTagId ( + /*[in]*/ BSTR TagId, + /*[in]*/ struct ICddbDisc * Disc ) = 0; + virtual HRESULT __stdcall DeleteList ( + /*[in]*/ BSTR Type ) = 0; + virtual HRESULT __stdcall DeleteDisc ( + /*[in]*/ struct ICddbDisc * Disc, + /*[in]*/ BSTR TagId ) = 0; + virtual HRESULT __stdcall UpdateListsFromCache ( + /*[in]*/ BSTR Type ) = 0; + virtual HRESULT __stdcall StartIterating ( ) = 0; + virtual HRESULT __stdcall NextEntry ( + /*[out]*/ struct ICddbDisc * * Disc, + /*[out]*/ BSTR * Key ) = 0; + virtual HRESULT __stdcall FinishIterating ( ) = 0; +}; + +struct __declspec(uuid("49d2a10d-a5f3-4bd0-9c15-6b2b94f16593")) +ICddbWMATag : ICddbFileTag +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall InitFromDisc ( + /*[in]*/ struct ICddbDisc * Disc, + /*[in]*/ long TrackNum ) = 0; +}; + +struct __declspec(uuid("1bba432e-84b5-4559-bcf7-cbc199ed6085")) +ICddbOptions2_5 : ICddbOptions2 +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_UILanguageId ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_UILanguageId ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_DataListRegionId ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_DataListRegionId ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_DataListOptions ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_DataListOptions ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_UseLocaleSettings ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_UseLocaleSettings ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_DisplayGenreLevel ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_DisplayGenreLevel ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_DefaultUIGenreLevels ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_DefaultUIGenreLevels ( + /*[in]*/ long pVal ) = 0; +}; + +struct __declspec(uuid("2758dffc-f9fb-4c62-82c9-fdc9bceb5e9c")) +CDDBNSWinampControl; + // [ default ] interface ICDDBControl + // [ default, source ] dispinterface DCDDBEvents + +struct __declspec(uuid("af647dae-a47c-4153-8852-3b2573d78152")) +CDDBProps; + // [ default ] interface IUnknown + +struct __declspec(uuid("e7568058-32ea-4b10-af1b-8b666978891e")) +CddbInfoWindow; + // [ default ] interface ICddbInfoWindow + +struct __declspec(uuid("7416f5ca-8922-4516-89e8-d826a8c091c5")) +CddbUIOptions; + // [ default ] interface ICddbUIOptions + +struct __declspec(uuid("657eefb8-2071-4e75-8905-36c25e550aa2")) +CddbTrackManager; + // [ default ] interface ICddbTrackManager + +struct __declspec(uuid("62d92898-9129-4a24-bc97-078ba176816b")) +CDDBControl2; + // [ default ] interface ICDDBControl2 + // interface ICDDBControl + +struct __declspec(uuid("f7c36ad9-691f-4640-a2e3-0200a642ad25")) +CddbOptions2; + // [ default ] interface ICddbOptions2 + // interface ICddbOptions + +struct __declspec(uuid("1f27a2d8-5745-4a50-b266-a90d6e43269f")) +CddbTrack2; + // [ default ] interface ICddbTrack2 + // interface ICddbTrack + +struct __declspec(uuid("4997bae9-4015-4030-80aa-1477ce28e66c")) +CddbCacheManager; + // [ default ] interface ICddbCacheManager + +struct __declspec(uuid("fb51cc6e-a66e-4c28-bef5-142d4927e1cf")) +CddbWMATag; + // [ default ] interface ICddbWMATag + // interface ICddbFileTag + // interface ICddbFileTag2_5 + +struct __declspec(uuid("fbcd6aca-39bc-47af-be8e-52bef2b9d0f7")) +CddbListManager; + // [ default ] interface ICddbListManager + +struct __declspec(uuid("a943875d-b7ed-4f49-b256-d1a39e5fec82")) +CddbDataListTree; + // [ default ] interface ICddbDataListTree + +struct __declspec(uuid("a25bda8e-5281-4664-a325-a3a38e555c18")) +CddbDataList; + // [ default ] interface ICddbDataList + +struct __declspec(uuid("1f767747-0f2e-4e6d-8105-56987c8c499e")) +CddbDataListElement; + // [ default ] interface ICddbDataListElement + +struct __declspec(uuid("9bac7636-3c83-4a17-bc39-aeff43f8780b")) +CddbExtData; + // [ default ] interface ICddbExtData + +struct __declspec(uuid("94c43420-12fe-4cb0-941d-babffc126834")) +CddbWork; + // [ default ] interface ICddbWork + +struct __declspec(uuid("3254573e-1053-4430-9ca6-7b9b89638515")) +ICddbFileTag2_5 : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_DiscArtist ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_DiscArtist ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Lyricist ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Lyricist ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Composer ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Composer ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_OriginalReleaseYear ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_OriginalReleaseYear ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_OriginalLyricist ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_OriginalLyricist ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Ensemble ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Ensemble ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Conductor ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Conductor ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_ExtData ( + /*[out,retval]*/ struct ICddbExtData * * ppExtData ) = 0; + virtual HRESULT __stdcall put_ExtData ( + /*[in]*/ struct ICddbExtData * ppExtData ) = 0; + virtual HRESULT __stdcall get_ExtDataSerialized ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_ExtDataSerialized ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_LengthMS ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_LengthMS ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_DataListElement ( + /*[in]*/ long listID, + /*[in]*/ long Level, + /*[out,retval]*/ struct ICddbDataListElement * * ppDataListElement ) = 0; + virtual HRESULT __stdcall put_DataListElement ( + /*[in]*/ struct ICddbDataListElement * pDataListElement ) = 0; +}; + +struct __declspec(uuid("2a050616-00e0-49c3-bc60-23c5192b25d3")) +ICddbExtData : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall PopulateFromDisc ( + /*[in]*/ struct ICddbDisc2 * pDisc, + /*[in]*/ long Flags, + /*[in]*/ long TrackNum ) = 0; + virtual HRESULT __stdcall PopulateFromTag ( + /*[in]*/ struct ICddbFileTag2_5 * pTag, + /*[in]*/ long Flags ) = 0; + virtual HRESULT __stdcall PopulateFromDataElement ( + /*[in]*/ struct ICddbDataListElement * pElement, + /*[in]*/ long Flags ) = 0; + virtual HRESULT __stdcall ApplyToDisc ( + /*[in]*/ struct ICddbDisc2 * pDisc, + /*[in]*/ long Flags, + /*[in]*/ long TrackNum ) = 0; + virtual HRESULT __stdcall ApplyToTag ( + /*[in]*/ struct ICddbFileTag2_5 * pTag, + /*[in]*/ long Flags ) = 0; + virtual HRESULT __stdcall Serialize ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall Deserialize ( + /*[in]*/ BSTR newVal ) = 0; + virtual HRESULT __stdcall GetDataListElement ( + /*[in]*/ long listID, + /*[in]*/ long Level, + /*[out,retval]*/ struct ICddbDataListElement * * ppDataListElement ) = 0; + virtual HRESULT __stdcall GetExtendedDataId ( + /*[in]*/ long listID, + /*[in]*/ long Level, + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall PutExtendedDataId ( + /*[in]*/ long listID, + /*[in]*/ long newVal ) = 0; + virtual HRESULT __stdcall GetExtendedDataName ( + /*[in]*/ long listID, + /*[in]*/ long Level, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall GetExtendedDataDescription ( + /*[in]*/ long listID, + /*[in]*/ long Level, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall GetExtendedDataOrdinal ( + /*[in]*/ long listID, + /*[in]*/ long Level, + /*[out,retval]*/ long * pVal ) = 0; +}; + +struct __declspec(uuid("f19a9d2d-2287-4c64-96c7-4bb63edec9c5")) +ICddbDataListElement : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Id ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall get_Name ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Description ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Level ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall get_Ordinal ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetParent ( + /*[out,retval]*/ struct ICddbDataListElement * * Element ) = 0; + virtual HRESULT __stdcall GetChildrenList ( + /*[out,retval]*/ struct ICddbDataList * * List ) = 0; +}; + +struct __declspec(uuid("c412e44b-a911-4e2e-ab26-f12bdb23ee55")) +ICddbDataList : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall get_Level ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetElement ( + /*[in]*/ long Index, + /*[out,retval]*/ struct ICddbDataListElement * * Element ) = 0; + virtual HRESULT __stdcall get__NewEnum ( + /*[out,retval]*/ IUnknown * * pVal ) = 0; + virtual HRESULT __stdcall get_Item ( + /*[in]*/ long lIndex, + /*[out,retval]*/ VARIANT * pVal ) = 0; +}; + +struct __declspec(uuid("db780e88-d446-4157-af74-04e8e48e46a3")) +ICddbDisc2_5 : ICddbDisc2 +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_V2GenreStringPrimary ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_V2GenreStringPrimary ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_V2GenreStringSecondary ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_V2GenreStringSecondary ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_V2GenreStringPrimaryByLevel ( + /*[in]*/ long genreLevel, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_V2GenreStringPrimaryByLevel ( + /*[in]*/ long genreLevel, + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_V2GenreStringSecondaryByLevel ( + /*[in]*/ long genreLevel, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_V2GenreStringSecondaryByLevel ( + /*[in]*/ long genreLevel, + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_ExtDataSerialized ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_ExtDataSerialized ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_ExtData ( + /*[in]*/ long Flags, + /*[out,retval]*/ struct ICddbExtData * * ppExtData ) = 0; + virtual HRESULT __stdcall put_ExtData ( + /*[in]*/ long Flags, + /*[in]*/ struct ICddbExtData * ppExtData ) = 0; + virtual HRESULT __stdcall GetDataListElement ( + /*[in]*/ long listID, + /*[in]*/ long Level, + /*[out,retval]*/ struct ICddbDataListElement * * ppDataListElement ) = 0; + virtual HRESULT __stdcall PutDataListElement ( + /*[in]*/ struct ICddbDataListElement * pDataListElement ) = 0; +}; + +struct __declspec(uuid("a354a00f-1f1d-44bb-853f-cb77153c302c")) +ICddbDisc2_6 : ICddbDisc2_5 +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_WorkCount ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall get_Work ( + /*[in]*/ long WorkIndex, + /*[out,retval]*/ struct ICddbWork * * pVal ) = 0; + virtual HRESULT __stdcall RetrieveData ( + /*[in]*/ long CddbDataOptions ) = 0; +}; + +struct __declspec(uuid("24959692-aac0-411d-9e6b-c7611fccacba")) +ICddbTrack2_5 : ICddbTrack2 +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_V2GenreStringPrimary ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_V2GenreStringPrimary ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_V2GenreStringSecondary ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_V2GenreStringSecondary ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_V2GenreStringPrimaryByLevel ( + /*[in]*/ long genreLevel, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_V2GenreStringPrimaryByLevel ( + /*[in]*/ long genreLevel, + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_V2GenreStringSecondaryByLevel ( + /*[in]*/ long genreLevel, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_V2GenreStringSecondaryByLevel ( + /*[in]*/ long genreLevel, + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_ExtDataSerialized ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_ExtDataSerialized ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_ExtData ( + /*[in]*/ long Flags, + /*[out,retval]*/ struct ICddbExtData * * ppExtData ) = 0; + virtual HRESULT __stdcall put_ExtData ( + /*[in]*/ long Flags, + /*[in]*/ struct ICddbExtData * ppExtData ) = 0; + virtual HRESULT __stdcall GetDataListElement ( + /*[in]*/ long listID, + /*[in]*/ long Level, + /*[out,retval]*/ struct ICddbDataListElement * * ppDataListElement ) = 0; + virtual HRESULT __stdcall PutDataListElement ( + /*[in]*/ struct ICddbDataListElement * pDataListElement ) = 0; +}; + +struct __declspec(uuid("e7d07c78-6084-4628-89f6-6f89dd5f1a9f")) +ICddbTrack2_6 : ICddbTrack2_5 +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_WorkCount ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall get_Work ( + /*[in]*/ long WorkIndex, + /*[out,retval]*/ struct ICddbWork * * pVal ) = 0; +}; + +struct __declspec(uuid("fe5e5b63-8154-4cb0-8ffc-a0aab7dbe9d5")) +ICddbDataListTree : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_LanguageId ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_RegionId ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Variant ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Variant ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Levels ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall get_Revision ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetElementById ( + /*[in]*/ long Level, + /*[in]*/ long Id, + /*[out,retval]*/ struct ICddbDataListElement * * Element ) = 0; + virtual HRESULT __stdcall GetElementByData ( + /*[in]*/ long Level, + /*[in]*/ struct ICddbExtData * Data, + /*[in]*/ long Flags, + /*[out,retval]*/ struct ICddbDataListElement * * Element ) = 0; + virtual HRESULT __stdcall GetRootList ( + /*[out,retval]*/ struct ICddbDataList * * List ) = 0; + virtual HRESULT __stdcall CreatePopupMenu ( + /*[in]*/ long Levels, + /*[out,retval]*/ long * Menu ) = 0; +}; + +struct __declspec(uuid("e6051029-5694-4e7d-a524-7e38f3c9443d")) +ICddbListManager : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall Initialize ( + /*[in]*/ struct ICDDBControl * Control ) = 0; + virtual HRESULT __stdcall Shutdown ( ) = 0; + virtual HRESULT __stdcall GetDataListTree ( + /*[in]*/ enum CDDBDataListID listID, + /*[out,retval]*/ struct ICddbDataListTree * * Tree ) = 0; + virtual HRESULT __stdcall ReleaseDataListTree ( + /*[in]*/ struct ICddbDataListTree * Tree ) = 0; + virtual HRESULT __stdcall VerifyOptions ( + /*[in]*/ long Flags, + /*[in]*/ BSTR LanguageId, + /*[in]*/ BSTR RegionId, + /*[out,retval]*/ long * Status ) = 0; + virtual HRESULT __stdcall DownloadUpdateLists ( + /*[in]*/ enum CDDBDataListID listID, + /*[in]*/ long Flags, + /*[out,retval]*/ long * Status ) = 0; +}; + +// +// Named GUID constants initializations +// + +extern "C" const GUID __declspec(selectany) LIBID_CDDBCONTROLLibNSWinamp = + {0x65eba1d4,0x45e2,0x4ec5,{0xa7,0xff,0xcb,0x7e,0x14,0x65,0x9c,0x77}}; +extern "C" const GUID __declspec(selectany) DIID_DCDDBEvents = + {0xfc288125,0x6636,0x405c,{0xbe,0x68,0xe9,0xd3,0x77,0x00,0xde,0xb0}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbUserInfo = + {0x796d4314,0x0c0e,0x4b10,{0x8b,0xc2,0x3f,0x3e,0x69,0x56,0xbc,0x26}}; +extern "C" const GUID __declspec(selectany) IID_ICddbUserInfo = + {0x4570cddc,0x94f8,0x4b43,{0xb1,0xac,0x79,0x6d,0x68,0xfa,0xc7,0xdf}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbOptions = + {0x544bb1f5,0xd771,0x4fed,{0x8f,0xa7,0xd8,0x3e,0x62,0xfe,0xfb,0x82}}; +extern "C" const GUID __declspec(selectany) IID_ICddbOptions = + {0x30755708,0xae75,0x49f8,{0xb9,0x9a,0xac,0x8d,0x09,0x5d,0x04,0x48}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbDisc = + {0x3d055b64,0x824e,0x4613,{0xb8,0x45,0x6a,0xfc,0xdb,0x88,0x8a,0xa0}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbTrack = + {0x02d9f45f,0x2155,0x4445,{0x83,0xb9,0x75,0xdf,0xa5,0x15,0x45,0x38}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbFullName = + {0xd5673322,0xc7a0,0x493a,{0x98,0xd5,0xf1,0x6d,0xa0,0x07,0x24,0xaa}}; +extern "C" const GUID __declspec(selectany) IID_ICddbFullName = + {0x2b6107ad,0xd1f2,0x41c3,{0xb9,0xb9,0x33,0x49,0x32,0x4f,0x7e,0x7b}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbCredit = + {0x61bd27fe,0x604c,0x49f8,{0xa9,0x79,0x7a,0x26,0x0a,0x51,0xea,0x5f}}; +extern "C" const GUID __declspec(selectany) IID_ICddbCredit = + {0x2aae501a,0x6d20,0x4af3,{0x8c,0x79,0x47,0x31,0x06,0xbd,0x53,0x91}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbCredits = + {0x9a27fc19,0xf3ac,0x4755,{0xa0,0x5a,0x9c,0x79,0x22,0x43,0x72,0x71}}; +extern "C" const GUID __declspec(selectany) IID_ICddbTrack = + {0x7da05059,0xcfb4,0x46ce,{0xa7,0x88,0x70,0x9a,0x3a,0xd3,0x45,0x4d}}; +extern "C" const GUID __declspec(selectany) IID_ICddbCredits = + {0xc30fbc5c,0xf56c,0x40dd,{0x84,0x1d,0x5e,0x44,0x28,0xf3,0xba,0xea}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbTracks = + {0xb2ebb2e2,0x48e5,0x4004,{0xbc,0x9e,0x9c,0xde,0xfd,0xd9,0x26,0x9e}}; +extern "C" const GUID __declspec(selectany) IID_ICddbTracks = + {0xa1fa4e71,0xb4e0,0x4378,{0xa1,0x02,0x04,0xe8,0x50,0xe0,0xaa,0x18}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbSegments = + {0xf2f46124,0x41eb,0x4e26,{0xb2,0xe5,0xd7,0xfc,0x17,0x36,0xc8,0xa2}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbSegment = + {0x993bb5e2,0x4a0d,0x4ed0,{0xbd,0x37,0x87,0x18,0xc4,0x22,0x99,0x7e}}; +extern "C" const GUID __declspec(selectany) IID_ICddbSegments = + {0x31480e0f,0xde17,0x4cae,{0x8d,0x85,0x1d,0xb9,0x0f,0x9f,0xcd,0x2f}}; +extern "C" const GUID __declspec(selectany) IID_ICddbSegment = + {0x375b697c,0x06a1,0x4d99,{0x9f,0x5d,0x35,0x89,0x00,0x1b,0x15,0xfd}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbURLTree = + {0x15a6784e,0xb924,0x43da,{0xa1,0x5f,0x92,0xe0,0x07,0x2a,0xc1,0x4d}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbURLList = + {0xf61de7e3,0xbd71,0x442c,{0xa5,0x55,0xd1,0x18,0x80,0xa0,0xb4,0x54}}; +extern "C" const GUID __declspec(selectany) IID_ICddbURLTree = + {0x20d2984f,0x0d6d,0x49f9,{0xaa,0x80,0x36,0x03,0x0c,0xef,0x0a,0x42}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbURL = + {0x6f6f90b2,0xff9f,0x4f62,{0x8e,0xee,0x6b,0xa0,0x4a,0x45,0xde,0x6c}}; +extern "C" const GUID __declspec(selectany) IID_ICddbURLList = + {0x680f25c4,0x044b,0x4de0,{0x99,0x8f,0xdf,0xa4,0x63,0x62,0x6e,0x13}}; +extern "C" const GUID __declspec(selectany) IID_ICddbURL = + {0x751e8ace,0x610b,0x4336,{0xb4,0x25,0x50,0x38,0x15,0x4f,0x68,0xa2}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbLanguages = + {0x8f3ae41f,0x1fe4,0x4293,{0xb0,0x16,0x71,0xe3,0xbc,0xca,0x98,0x41}}; +extern "C" const GUID __declspec(selectany) IID_ICddbDisc = + {0x5220e8fa,0xb11f,0x46cf,{0x97,0x86,0x51,0xb1,0x1e,0x05,0xf6,0x57}}; +extern "C" const GUID __declspec(selectany) IID_ICddbLanguages = + {0x686f7bce,0x1edb,0x4540,{0x8c,0x25,0xbb,0xa9,0xce,0x7b,0x23,0x23}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbDiscs = + {0xe39c031c,0xa54e,0x40f7,{0xb8,0x2d,0x1c,0x47,0x15,0x5e,0x74,0x11}}; +extern "C" const GUID __declspec(selectany) IID_ICddbDiscs = + {0x0d5072cc,0x86a0,0x4600,{0xbb,0x7f,0xda,0x77,0x23,0xdd,0xd2,0x98}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbGenreList = + {0x82e54124,0x11a8,0x4b37,{0x98,0x20,0x3e,0x63,0xea,0xbd,0xe0,0x79}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbGenre = + {0xcd5f005a,0x596d,0x4b5a,{0x8a,0xb9,0xc9,0x82,0x13,0x15,0xb9,0x50}}; +extern "C" const GUID __declspec(selectany) IID_ICddbGenreList = + {0x9151953e,0x0621,0x4167,{0xbc,0xb6,0x36,0xf8,0xe6,0x5e,0xc6,0xc9}}; +extern "C" const GUID __declspec(selectany) IID_ICddbGenre = + {0x4b3be7ee,0x9a6e,0x4276,{0x87,0x01,0x3a,0x85,0xf5,0xd9,0xe3,0xc5}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbGenreTree = + {0xa228e94b,0x2fc2,0x448c,{0xb5,0x93,0xd2,0x93,0xd9,0x81,0xa3,0x35}}; +extern "C" const GUID __declspec(selectany) IID_ICddbGenreTree = + {0x37668f25,0xb3ff,0x42ea,{0xa3,0xf9,0x25,0xea,0x07,0x40,0x90,0x2e}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbRegionList = + {0xe454ac26,0x5551,0x47ee,{0x95,0x1c,0x5a,0xe1,0xdd,0x82,0x4d,0x28}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbRegion = + {0x203e2a74,0xacde,0x4588,{0xad,0x98,0xa6,0x66,0xdc,0xb1,0x63,0x6a}}; +extern "C" const GUID __declspec(selectany) IID_ICddbRegionList = + {0xc841589b,0xce3d,0x4fef,{0x94,0x22,0x28,0x32,0xa6,0x4d,0x32,0x1e}}; +extern "C" const GUID __declspec(selectany) IID_ICddbRegion = + {0x57b9551a,0xa3ea,0x484d,{0x8f,0xc6,0x1b,0x4e,0xc7,0xd2,0x42,0x0d}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbRoleList = + {0x24575390,0x26a3,0x405d,{0xb4,0x7b,0xfc,0x72,0xcd,0xcb,0x80,0xaa}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbRole = + {0x546523f6,0x07ee,0x488c,{0xb4,0x72,0xdd,0x4a,0x33,0x8b,0xa7,0xa2}}; +extern "C" const GUID __declspec(selectany) IID_ICddbRoleList = + {0x614d9d0a,0xc012,0x4863,{0xaf,0xbf,0x9c,0x9d,0xd0,0x1e,0x04,0xd1}}; +extern "C" const GUID __declspec(selectany) IID_ICddbRole = + {0x84f40113,0xd6ca,0x4289,{0xac,0xfa,0xb8,0xb1,0x69,0x1e,0x59,0x6b}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbRoleTree = + {0xa25a1b97,0xa3f8,0x4fd5,{0xa7,0x1e,0xa6,0xab,0x86,0xde,0x19,0x46}}; +extern "C" const GUID __declspec(selectany) IID_ICddbRoleTree = + {0x0ba44da2,0xa91d,0x4c60,{0x8e,0x48,0x61,0xb5,0xe6,0x94,0x95,0xea}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbLanguageList = + {0xbd8c8761,0x451f,0x4aec,{0x9d,0xad,0xf4,0x2b,0xdb,0xea,0xf9,0xe6}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbLanguage = + {0xee5da1c8,0xea29,0x4ec6,{0xa5,0x9c,0x23,0xdd,0xc3,0x04,0xba,0xb0}}; +extern "C" const GUID __declspec(selectany) IID_ICddbLanguageList = + {0x719c744f,0xcdef,0x49c2,{0x9a,0xda,0xdf,0x5b,0xa8,0x77,0x0f,0x4b}}; +extern "C" const GUID __declspec(selectany) IID_ICddbLanguage = + {0x06c77e4d,0xfe13,0x4fa4,{0xb5,0x2a,0x1c,0xf2,0xe0,0x47,0xf5,0x5f}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbFieldList = + {0xf34a22b2,0xa4df,0x4a19,{0xbf,0xd9,0xc5,0x93,0xbd,0x1c,0xd6,0xb2}}; +extern "C" const GUID __declspec(selectany) IID_ICddbFieldList = + {0xcf6268fd,0x7ba3,0x4cc5,{0x9d,0xe1,0xfe,0xad,0x92,0x3d,0x21,0x6c}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbField = + {0x9390d4fe,0x56ca,0x42f6,{0xb8,0xdc,0x16,0xe2,0x2d,0x12,0xc9,0xc3}}; +extern "C" const GUID __declspec(selectany) IID_ICddbField = + {0xaa3218d8,0xa65c,0x4a29,{0x86,0x90,0x1e,0x5b,0x75,0xdb,0xf3,0xb8}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbURLManager = + {0xdccf8d5f,0xc1f6,0x44a1,{0xb0,0x65,0x60,0xd5,0x65,0x57,0xf8,0x21}}; +extern "C" const GUID __declspec(selectany) IID_ICddbURLManager = + {0x623ce0d4,0x7b45,0x4b69,{0xa2,0x8d,0x24,0x01,0xe7,0xaa,0x16,0xd4}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbID3TagManager = + {0xa4d4fe68,0x1df3,0x42fe,{0x8a,0x8d,0x59,0x4d,0x9b,0xd6,0x0f,0xd0}}; +extern "C" const GUID __declspec(selectany) IID_ICDDBControl = + {0x723695c2,0x3b01,0x42c3,{0xa6,0x61,0x64,0xd2,0xec,0x30,0xb4,0xe5}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbID3Tag = + {0x9e77a3fd,0xdf03,0x4077,{0xba,0x10,0x00,0x1d,0x52,0xac,0xae,0x44}}; +extern "C" const GUID __declspec(selectany) IID_ICddbID3TagManager = + {0xe7bbbe3a,0xdc3c,0x4d00,{0x98,0xf9,0xbc,0x62,0x0c,0xa9,0x52,0xf8}}; +extern "C" const GUID __declspec(selectany) IID_ICddbFileTag = + {0xca4e0490,0x7ed8,0x44a5,{0x9e,0xcd,0xd0,0x0b,0x90,0xdb,0xe8,0x08}}; +extern "C" const GUID __declspec(selectany) IID_ICddbID3Tag = + {0x7b2d9eb8,0x70aa,0x43d3,{0xaa,0x8e,0xe7,0x1c,0xe5,0x3a,0x83,0xd8}}; +extern "C" const GUID __declspec(selectany) IID_ICddbID3Tag2 = + {0x44959787,0x915b,0x4fcf,{0x97,0x63,0x10,0x38,0x48,0x3c,0x00,0x0e}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbDisc2 = + {0xd0be7f39,0x60d3,0x43e2,{0xaa,0x96,0x51,0x32,0x17,0x44,0x3a,0xb6}}; +extern "C" const GUID __declspec(selectany) IID_ICddbDisc2 = + {0x45d1d297,0xdd01,0x4890,{0x92,0x8c,0x34,0xe1,0xba,0x49,0x4a,0x14}}; +extern "C" const GUID __declspec(selectany) IID_ICddbInfoWindow = + {0xd0f041d4,0x1570,0x4143,{0xbb,0x6a,0x4c,0xe0,0x41,0xb1,0x09,0xd4}}; +extern "C" const GUID __declspec(selectany) IID_ICddbUIOptions = + {0x06c18ba6,0x86a0,0x464c,{0xb8,0x38,0x13,0xa7,0x4e,0x1a,0xd0,0x49}}; +extern "C" const GUID __declspec(selectany) IID_ICddbTrackManager = + {0xd6f791c8,0xa7f7,0x4702,{0x9d,0x24,0x4b,0x8f,0x8c,0xa4,0xc8,0x07}}; +extern "C" const GUID __declspec(selectany) IID_ICDDBControl2 = + {0x1b0700ee,0xc9c7,0x4fca,{0x95,0x84,0x10,0x96,0x26,0x8c,0xf6,0xc4}}; +extern "C" const GUID __declspec(selectany) IID_ICddbOptions2 = + {0x63c7d158,0xbca0,0x4c29,{0x96,0xc4,0x06,0xbd,0xd7,0x44,0xec,0xc2}}; +extern "C" const GUID __declspec(selectany) IID_ICddbWork = + {0xd27c6efc,0x76ed,0x4724,{0x97,0x41,0x95,0x31,0xfc,0x52,0x24,0x2c}}; +extern "C" const GUID __declspec(selectany) IID_ICddbTrack2 = + {0xe5c5f8ea,0x6f8d,0x4bd0,{0x88,0x56,0x95,0xdd,0xd5,0x66,0x8c,0xde}}; +extern "C" const GUID __declspec(selectany) IID_ICddbCacheManager = + {0x7af4e5e5,0x2deb,0x462f,{0xbb,0xaf,0x68,0x41,0x46,0x85,0x6c,0x6b}}; +extern "C" const GUID __declspec(selectany) IID_ICddbWMATag = + {0x49d2a10d,0xa5f3,0x4bd0,{0x9c,0x15,0x6b,0x2b,0x94,0xf1,0x65,0x93}}; +extern "C" const GUID __declspec(selectany) IID_ICddbOptions2_5 = + {0x1bba432e,0x84b5,0x4559,{0xbc,0xf7,0xcb,0xc1,0x99,0xed,0x60,0x85}}; +extern "C" const GUID __declspec(selectany) CLSID_CDDBNSWinampControl = + {0x2758dffc,0xf9fb,0x4c62,{0x82,0xc9,0xfd,0xc9,0xbc,0xeb,0x5e,0x9c}}; +extern "C" const GUID __declspec(selectany) CLSID_CDDBProps = + {0xaf647dae,0xa47c,0x4153,{0x88,0x52,0x3b,0x25,0x73,0xd7,0x81,0x52}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbInfoWindow = + {0xe7568058,0x32ea,0x4b10,{0xaf,0x1b,0x8b,0x66,0x69,0x78,0x89,0x1e}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbUIOptions = + {0x7416f5ca,0x8922,0x4516,{0x89,0xe8,0xd8,0x26,0xa8,0xc0,0x91,0xc5}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbTrackManager = + {0x657eefb8,0x2071,0x4e75,{0x89,0x05,0x36,0xc2,0x5e,0x55,0x0a,0xa2}}; +extern "C" const GUID __declspec(selectany) CLSID_CDDBControl2 = + {0x62d92898,0x9129,0x4a24,{0xbc,0x97,0x07,0x8b,0xa1,0x76,0x81,0x6b}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbOptions2 = + {0xf7c36ad9,0x691f,0x4640,{0xa2,0xe3,0x02,0x00,0xa6,0x42,0xad,0x25}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbTrack2 = + {0x1f27a2d8,0x5745,0x4a50,{0xb2,0x66,0xa9,0x0d,0x6e,0x43,0x26,0x9f}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbCacheManager = + {0x4997bae9,0x4015,0x4030,{0x80,0xaa,0x14,0x77,0xce,0x28,0xe6,0x6c}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbWMATag = + {0xfb51cc6e,0xa66e,0x4c28,{0xbe,0xf5,0x14,0x2d,0x49,0x27,0xe1,0xcf}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbListManager = + {0xfbcd6aca,0x39bc,0x47af,{0xbe,0x8e,0x52,0xbe,0xf2,0xb9,0xd0,0xf7}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbDataListTree = + {0xa943875d,0xb7ed,0x4f49,{0xb2,0x56,0xd1,0xa3,0x9e,0x5f,0xec,0x82}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbDataList = + {0xa25bda8e,0x5281,0x4664,{0xa3,0x25,0xa3,0xa3,0x8e,0x55,0x5c,0x18}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbDataListElement = + {0x1f767747,0x0f2e,0x4e6d,{0x81,0x05,0x56,0x98,0x7c,0x8c,0x49,0x9e}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbExtData = + {0x9bac7636,0x3c83,0x4a17,{0xbc,0x39,0xae,0xff,0x43,0xf8,0x78,0x0b}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbWork = + {0x94c43420,0x12fe,0x4cb0,{0x94,0x1d,0xba,0xbf,0xfc,0x12,0x68,0x34}}; +extern "C" const GUID __declspec(selectany) IID_ICddbFileTag2_5 = + {0x3254573e,0x1053,0x4430,{0x9c,0xa6,0x7b,0x9b,0x89,0x63,0x85,0x15}}; +extern "C" const GUID __declspec(selectany) IID_ICddbExtData = + {0x2a050616,0x00e0,0x49c3,{0xbc,0x60,0x23,0xc5,0x19,0x2b,0x25,0xd3}}; +extern "C" const GUID __declspec(selectany) IID_ICddbDataListElement = + {0xf19a9d2d,0x2287,0x4c64,{0x96,0xc7,0x4b,0xb6,0x3e,0xde,0xc9,0xc5}}; +extern "C" const GUID __declspec(selectany) IID_ICddbDataList = + {0xc412e44b,0xa911,0x4e2e,{0xab,0x26,0xf1,0x2b,0xdb,0x23,0xee,0x55}}; +extern "C" const GUID __declspec(selectany) IID_ICddbDisc2_5 = + {0xdb780e88,0xd446,0x4157,{0xaf,0x74,0x04,0xe8,0xe4,0x8e,0x46,0xa3}}; +extern "C" const GUID __declspec(selectany) IID_ICddbDisc2_6 = + {0xa354a00f,0x1f1d,0x44bb,{0x85,0x3f,0xcb,0x77,0x15,0x3c,0x30,0x2c}}; +extern "C" const GUID __declspec(selectany) IID_ICddbTrack2_5 = + {0x24959692,0xaac0,0x411d,{0x9e,0x6b,0xc7,0x61,0x1f,0xcc,0xac,0xba}}; +extern "C" const GUID __declspec(selectany) IID_ICddbTrack2_6 = + {0xe7d07c78,0x6084,0x4628,{0x89,0xf6,0x6f,0x89,0xdd,0x5f,0x1a,0x9f}}; +extern "C" const GUID __declspec(selectany) IID_ICddbDataListTree = + {0xfe5e5b63,0x8154,0x4cb0,{0x8f,0xfc,0xa0,0xaa,0xb7,0xdb,0xe9,0xd5}}; +extern "C" const GUID __declspec(selectany) IID_ICddbListManager = + {0xe6051029,0x5694,0x4e7d,{0xa5,0x24,0x7e,0x38,0xf3,0xc9,0x44,0x3d}}; + +#pragma pack(pop) diff --git a/Src/gracenote/cddbmusicidwinamp.tlh b/Src/gracenote/cddbmusicidwinamp.tlh new file mode 100644 index 00000000..2d901012 --- /dev/null +++ b/Src/gracenote/cddbmusicidwinamp.tlh @@ -0,0 +1,633 @@ +// Created by Microsoft (R) C/C++ Compiler Version 15.00.30729.01 (dfa22718). +// +// f:\sandbox\20131028_225933\winamp\release\cddbmusicidwinamp.tlh +// +// C++ source equivalent of Win32 type library ../gracenote/CddbMusicIDWinamp.dll +// compiler-generated file created 10/28/13 at 23:18:29 - DO NOT EDIT! + +// +// Cross-referenced type libraries: +// +// + +#pragma once +#pragma pack(push, 8) + +#include <comdef.h> + +// +// Forward references and typedefs +// + +struct __declspec(uuid("05d652c1-7997-40f9-982d-347b8e29f8fb")) +/* LIBID */ __CDDBMUSICIDLibNSWinamp; +enum CddbMusicIDOptions; +enum CddbMusicIDMatchCode; +enum FileInfoListMatchCode; +enum CddbMusicIDStatus; +enum CDDBMusicID_LookupMode; +enum MusicIDThreadPriority; +enum CDDBMusicID_Results; +enum MusicIDMatchType; +struct __declspec(uuid("46ac5819-1fa8-44a1-9954-270ea2cf0dca")) +/* dispinterface */ _ICDDBMusicIDManagerEvents; +struct __declspec(uuid("0aa9fdfb-80d5-41bf-b383-7aab869e6b0e")) +/* dual interface */ ICddbFileInfo; +struct __declspec(uuid("cca2a70a-bcbc-49e9-8ef4-04dabcd68b81")) +/* dual interface */ ICddbMusicIDFingerprint; +struct __declspec(uuid("db104e47-62bb-4933-8f37-8984228e6938")) +/* dual interface */ IFingerprintImpl; +struct __declspec(uuid("099a10ed-517b-4387-a12e-af3fe90b5856")) +/* dual interface */ ICddbFileInfoList; +struct __declspec(uuid("5000f09e-8483-4deb-8345-4e778a9fe804")) +/* dual interface */ ICddbFileInfoLists; +struct __declspec(uuid("6131c03d-97d0-49ca-8eb1-5fa0d10ec072")) +/* dual interface */ ICDDBMusicIDManager; +struct __declspec(uuid("ec0e5dd3-8bab-4671-85a1-68bf93cb35e4")) +/* dual interface */ ICddbMusicIDFingerprinter; +struct __declspec(uuid("26b263b3-57cd-42fd-aa48-e505b4780055")) +/* dual interface */ ICddbMusicIDFingerprinter2; +struct __declspec(uuid("dc6da11f-ca85-4658-9216-2ad353cfc33b")) +/* dual interface */ ICddbFileInfo2; +struct __declspec(uuid("3b4a2b07-aafe-4931-a7f9-4c37729633ca")) +/* dual interface */ ICddbFileInfo2_6; +struct __declspec(uuid("18d6bc7c-4cbc-4b6a-9550-2b176438b87c")) +/* dual interface */ ICddbFileInfoList2_6; +struct __declspec(uuid("281bfe03-1503-4c60-9678-173c8b4138cc")) +/* dual interface */ ICDDBMusicIDManager2; +struct __declspec(uuid("5797bf13-a4e7-4170-ae22-5f06b2823e04")) +/* dual interface */ ICDDBMusicIDManager3; +struct __declspec(uuid("43b1b346-2394-46e7-b1ac-ea8d93124f68")) +/* dual interface */ ICddbMusicIDSettings; +struct /* coclass */ CDDBNSWinampMusicIDManager; +struct /* coclass */ CddbMusicIDFingerprinter; +struct /* coclass */ CddbMusicIDFingerprint; +struct /* coclass */ CddbFileInfo; +struct /* coclass */ CddbFileInfoList; +struct /* coclass */ CddbFileInfoLists; +struct /* coclass */ CddbMusicIDSettings; + +// +// Smart pointer typedef declarations +// + +_COM_SMARTPTR_TYPEDEF(_ICDDBMusicIDManagerEvents, __uuidof(_ICDDBMusicIDManagerEvents)); +_COM_SMARTPTR_TYPEDEF(IFingerprintImpl, __uuidof(IFingerprintImpl)); +_COM_SMARTPTR_TYPEDEF(ICddbMusicIDFingerprint, __uuidof(ICddbMusicIDFingerprint)); +_COM_SMARTPTR_TYPEDEF(ICddbFileInfo, __uuidof(ICddbFileInfo)); +_COM_SMARTPTR_TYPEDEF(ICddbFileInfoList, __uuidof(ICddbFileInfoList)); +_COM_SMARTPTR_TYPEDEF(ICddbFileInfoLists, __uuidof(ICddbFileInfoLists)); +_COM_SMARTPTR_TYPEDEF(ICddbMusicIDFingerprinter, __uuidof(ICddbMusicIDFingerprinter)); +_COM_SMARTPTR_TYPEDEF(ICDDBMusicIDManager, __uuidof(ICDDBMusicIDManager)); +_COM_SMARTPTR_TYPEDEF(ICddbMusicIDFingerprinter2, __uuidof(ICddbMusicIDFingerprinter2)); +_COM_SMARTPTR_TYPEDEF(ICddbFileInfo2, __uuidof(ICddbFileInfo2)); +_COM_SMARTPTR_TYPEDEF(ICddbFileInfo2_6, __uuidof(ICddbFileInfo2_6)); +_COM_SMARTPTR_TYPEDEF(ICddbFileInfoList2_6, __uuidof(ICddbFileInfoList2_6)); +_COM_SMARTPTR_TYPEDEF(ICDDBMusicIDManager2, __uuidof(ICDDBMusicIDManager2)); +_COM_SMARTPTR_TYPEDEF(ICddbMusicIDSettings, __uuidof(ICddbMusicIDSettings)); +_COM_SMARTPTR_TYPEDEF(ICDDBMusicIDManager3, __uuidof(ICDDBMusicIDManager3)); + +// +// Type library items +// + +enum CddbMusicIDOptions +{ + MUSICID_DEFAULT = 0, + MUSICID_LOOKUP_ASYNC = 1, + MUSICID_RETURN_SINGLE = 16, + MUSICID_RETURN_EXACT_ONLY = 16, + MUSICID_RETURN_ALL = 32, + MUSICID_GET_FP_FROM_APP = 256, + MUSICID_GET_FP_INTERNAL = 512, + MUSICID_GET_TAG_FROM_APP = 4096, + MUSICID_GET_TAG_INTERNAL = 8192, + MUSICID_PREFER_WF_MATCHES = 16384, + MUSICID_DISABLE_TEXT_LOOKUPS = 32768, + MUSICID_DISABLE_WF_QUERIES = 65536, + MUSICID_DISABLE_TEXT_QUERIES = 131072, + MUSICID_PREFER_WF_QUERIES = 262144, + MUSICID_EXTRA_TEXT_QUERIES = 524288, + MUSICID_DISABLE_FILENAME_PARSING = 1048576, + MUSICID_HIGH_CONFIDENCE_RESULTS = 2097152 +}; + +enum CddbMusicIDMatchCode +{ + MUSICID_MATCH_NONE = 0, + MUSICID_MATCH_EXACT = 1, + MUSICID_MATCH_FUZZY = 2, + MUSICID_MATCH_ALL = 3, + MUSICID_MATCH_USER = 4, + MUSICID_MATCH_ERROR = 5, + MUSICID_MATCH_ALBUM_ASSOCIATED = 6 +}; + +enum FileInfoListMatchCode +{ + LIST_MATCH_ERROR = 1, + LIST_MATCH_NONE = 2, + LIST_MATCH_ALBUM_SINGLE = 3, + LIST_MATCH_ALBUM_EXACT = 3, + LIST_MATCH_ALBUM_MULTIPLE = 4, + LIST_MATCH_TRACK_SINGLE = 5, + LIST_MATCH_TRACK_EXACT = 5, + LIST_MATCH_TRACK_MULTIPLE = 6, + LIST_MATCH_LIBRARY_SINGLE = 7, + LIST_MATCH_ALBUM_SINGLE_ASSOCIATED = 8 +}; + +enum CddbMusicIDStatus +{ + STATUS_MUSICID_Error = 1, + STATUS_MUSICID_ProcessingFile = 2, + STATUS_MUSICID_LookingUpWaveForm = 3, + STATUS_MUSICID_LookingUpText = 4, + STATUS_MUSICID_CheckForAbort = 5, + STATUS_ALBUMID_Querying = 6, + STATUS_ALBUMID_Queried = 7, + STATUS_ALBUMID_Processing = 8, + STATUS_ALBUMID_Processed = 9, + STATUS_MUSICID_AnalyzingWaveForm = 10, + STATUS_ALBUMID_QueryingWF = 11 +}; + +enum CDDBMusicID_LookupMode +{ + WAVEFORM_LOOKUP = 1, + TEXT_LOOKUP = 2, + TEXT_LOCAL = 4, + TEXT_HINT_MULTI_EXACT = 16, + TEXT_HINT_MULTI_FUZZY = 32, + TEXT_HINT_FUZZY = 64, + TEXT_HINT_ALL = 240 +}; + +enum MusicIDThreadPriority +{ + MUSICID_THREAD_PRIORITY_HIGHEST = 1, + MUSICID_THREAD_PRIORITY_ABOVE_NORMAL = 2, + MUSICID_THREAD_PRIORITY_NORMAL = 3, + MUSICID_THREAD_PRIORITY_BELOW_NORMAL = 4, + MUSICID_THREAD_PRIORITY_LOWEST = 5, + MUSICID_THREAD_PRIORITY_IDLE = 6 +}; + +enum CDDBMusicID_Results +{ + ERR_DomainMusicID = 766, + CDDBMusicID_FPAcquired = 1, + CDDBMusicID_FPNotAcquired = 2, + CDDBMusicID_UnsupportedFileFormat = -1023541247, + CDDBMusicID_UnsupportedAudioFormat = -1023541246, + CDDBMusicID_UnknownAlgorithm = -1023541245, + CDDBMusicID_UnknownSetting = -1023541244, + CDDBMusicID_CDDBControlVersion = -1023541243, + CDDBMusicID_TextHintsFailed = -1023541242, + CDDBMusicID_NoTextAvailable = -1023541241 +}; + +enum MusicIDMatchType +{ + MATCH_TYPE_TAGID = 1, + MATCH_TYPE_ITUNESID = 2, + MATCH_TYPE_ALBUM_ASSOCIATED = 3, + MATCH_TYPE_WF_HINT = 4, + MATCH_TYPE_WF = 5, + MATCH_TYPE_TXT_ON_WF = 6, + MATCH_TYPE_TXT_HINT = 7, + MATCH_TYPE_TXT = 8, + MATCH_TYPE_WF_TXT_HINT = 9, + MATCH_TYPE_WF_TXT = 10, + MATCH_TYPE_ALBUM_AND_TITLE = 11, + MATCH_TYPE_TXT_ALBUM_LEVEL = 12, + MATCH_TYPE_UNKNOWN = 13, + MATCH_TYPE_NONE = 14 +}; + +struct __declspec(uuid("46ac5819-1fa8-44a1-9954-270ea2cf0dca")) +_ICDDBMusicIDManagerEvents : IDispatch +{}; + +struct __declspec(uuid("db104e47-62bb-4933-8f37-8984228e6938")) +IFingerprintImpl : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall SetFPData ( + /*[in]*/ char * data, + /*[in]*/ long length ) = 0; + virtual HRESULT __stdcall get_Type ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Version ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Signature ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Channels ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_SampleRate ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_SampleSize ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Offset ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Duration ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Units ( + /*[out,retval]*/ BSTR * pVal ) = 0; +}; + +struct __declspec(uuid("cca2a70a-bcbc-49e9-8ef4-04dabcd68b81")) +ICddbMusicIDFingerprint : IFingerprintImpl +{}; + +struct __declspec(uuid("0aa9fdfb-80d5-41bf-b383-7aab869e6b0e")) +ICddbFileInfo : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Filename ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Filename ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Fingerprint ( + /*[out,retval]*/ struct ICddbMusicIDFingerprint * * pVal ) = 0; + virtual HRESULT __stdcall put_Fingerprint ( + /*[in]*/ struct ICddbMusicIDFingerprint * pVal ) = 0; + virtual HRESULT __stdcall get_TrackNum ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_TrackNum ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_TrackCount ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_TrackCount ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Tag ( + /*[out,retval]*/ struct ICddbFileTag * * pVal ) = 0; + virtual HRESULT __stdcall put_Tag ( + /*[in]*/ struct ICddbFileTag * pVal ) = 0; + virtual HRESULT __stdcall get_Disc ( + /*[out,retval]*/ struct ICddbDisc2 * * pVal ) = 0; + virtual HRESULT __stdcall put_Disc ( + /*[in]*/ struct ICddbDisc2 * pVal ) = 0; + virtual HRESULT __stdcall get_MusicIDMatchCode ( + /*[out,retval]*/ enum CddbMusicIDMatchCode * pVal ) = 0; + virtual HRESULT __stdcall put_MusicIDMatchCode ( + /*[in]*/ enum CddbMusicIDMatchCode pVal ) = 0; +}; + +struct __declspec(uuid("099a10ed-517b-4387-a12e-af3fe90b5856")) +ICddbFileInfoList : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall GetFileInfo ( + /*[in]*/ long Index, + /*[out,retval]*/ struct ICddbFileInfo * * pVal ) = 0; + virtual HRESULT __stdcall AddFileInfo ( + /*[in]*/ struct ICddbFileInfo * pFileInfo ) = 0; + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall AddFileInfoFields ( + /*[in]*/ BSTR Filename, + /*[in]*/ struct ICddbMusicIDFingerprint * pFingerprint, + /*[in]*/ long TrackCount, + /*[in]*/ long TrackNum, + /*[in]*/ struct ICddbFileTag * pTag, + /*[in]*/ struct ICddbDisc2 * pDisc, + /*[in]*/ long matchCode ) = 0; + virtual HRESULT __stdcall GetFileInfoFields ( + /*[in]*/ long Index, + /*[out]*/ BSTR * Filename, + /*[out]*/ struct ICddbMusicIDFingerprint * * ppFingerprint, + /*[out]*/ long * pTrackCount, + /*[out]*/ long * pTrackNum, + /*[out]*/ struct ICddbFileTag * * ppTag, + /*[out]*/ struct ICddbDisc2 * * ppDisc, + /*[out]*/ long * pMatchCode ) = 0; + virtual HRESULT __stdcall GetListMatchCode ( + /*[out]*/ long * listMatchCode ) = 0; + virtual HRESULT __stdcall SetListMatchCode ( + /*[in]*/ long match_code ) = 0; + virtual HRESULT __stdcall RemoveFileInfo ( + /*[in]*/ struct ICddbFileInfo * pInfo ) = 0; + virtual HRESULT __stdcall RemoveFile ( + /*[in]*/ BSTR Filename ) = 0; +}; + +struct __declspec(uuid("5000f09e-8483-4deb-8345-4e778a9fe804")) +ICddbFileInfoLists : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall GetFileInfoList ( + /*[in]*/ long Index, + /*[out,retval]*/ struct ICddbFileInfoList * * ppFileInfoListOut ) = 0; + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall RemoveMatchAndFiles ( + /*[in]*/ long Index ) = 0; + virtual HRESULT __stdcall RemoveFileInfoList ( + /*[in]*/ struct ICddbFileInfoList * pList ) = 0; + virtual HRESULT __stdcall AddFileInfoList ( + /*[in]*/ struct ICddbFileInfoList * pFileInfoList ) = 0; +}; + +struct __declspec(uuid("ec0e5dd3-8bab-4671-85a1-68bf93cb35e4")) +ICddbMusicIDFingerprinter : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall GetSetting ( + /*[in]*/ BSTR name, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall SetSetting ( + /*[in]*/ BSTR name, + /*[in]*/ BSTR value ) = 0; + virtual HRESULT __stdcall GetFileFingerprint ( + /*[in]*/ BSTR Filename, + /*[out,retval]*/ struct ICddbMusicIDFingerprint * * pVal ) = 0; + virtual HRESULT __stdcall BeginAudioStream ( + /*[in]*/ long sample_rate, + /*[in]*/ long sample_bits, + /*[in]*/ long channel_count ) = 0; + virtual HRESULT __stdcall WriteAudioData ( + /*[in]*/ void * buffer, + /*[in]*/ long length ) = 0; + virtual HRESULT __stdcall EndAudioStream ( + /*[out,retval]*/ struct ICddbMusicIDFingerprint * * pVal ) = 0; +}; + +struct __declspec(uuid("6131c03d-97d0-49ca-8eb1-5fa0d10ec072")) +ICDDBMusicIDManager : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Version ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall Initialize ( + /*[in]*/ struct ICDDBControl2 * control ) = 0; + virtual HRESULT __stdcall Shutdown ( ) = 0; + virtual HRESULT __stdcall CreateFingerprinter ( + /*[in]*/ BSTR alg_name, + /*[out,retval]*/ struct ICddbMusicIDFingerprinter * * pVal ) = 0; + virtual HRESULT __stdcall LookupFile ( + /*[in]*/ struct ICddbMusicIDFingerprint * fp, + /*[in]*/ BSTR Filename, + /*[in]*/ struct ICddbFileTag * Tag, + /*[in]*/ long lookup_mode, + /*[in]*/ long event_on_completion, + /*[out,retval]*/ long * match_code ) = 0; + virtual HRESULT __stdcall ResolveLookup ( + /*[in]*/ struct ICddbDiscs * discs, + /*[in]*/ long track_count, + /*[in]*/ long missing_files, + /*[in]*/ long extra_files, + /*[in]*/ long lookup_mode, + /*[in]*/ BSTR Filename, + /*[in]*/ struct ICddbFileTag * Tag, + /*[in]*/ long match_code, + /*[out,retval]*/ struct ICddbDisc * * pVal ) = 0; + virtual HRESULT __stdcall CompareTrackToFile ( + /*[in]*/ BSTR Filename, + /*[in]*/ struct ICddbFileTag * Tag, + /*[in]*/ struct ICddbDisc * Disc, + /*[in]*/ long TrackNum, + /*[out,retval]*/ long * pVal ) = 0; +}; + +struct __declspec(uuid("26b263b3-57cd-42fd-aa48-e505b4780055")) +ICddbMusicIDFingerprinter2 : ICddbMusicIDFingerprinter +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall WriteAudioData2 ( + /*[in]*/ void * buffer, + /*[in]*/ long length, + /*[out]*/ long * b_complete ) = 0; + virtual HRESULT __stdcall FingerprintSerialize ( + /*[in]*/ struct ICddbMusicIDFingerprint * pFingerprint, + /*[out,retval]*/ BSTR * pSerialized ) = 0; + virtual HRESULT __stdcall FingerprintDeserialize ( + /*[in]*/ BSTR serialized, + /*[out,retval]*/ struct ICddbMusicIDFingerprint * * ppFingerprint ) = 0; +}; + +struct __declspec(uuid("dc6da11f-ca85-4658-9216-2ad353cfc33b")) +ICddbFileInfo2 : ICddbFileInfo +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall GetExtData ( + /*[out,retval]*/ struct ICddbExtData * * pVal ) = 0; + virtual HRESULT __stdcall PutExtData ( + /*[in]*/ struct ICddbExtData * newVal ) = 0; + virtual HRESULT __stdcall GetDataListElement ( + /*[in]*/ long ListId, + /*[in]*/ long Level, + /*[out,retval]*/ struct ICddbDataListElement * * pVal ) = 0; + virtual HRESULT __stdcall GetExtDataSerialized ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall PutExtDataSerialized ( + /*[in]*/ BSTR newVal ) = 0; +}; + +struct __declspec(uuid("3b4a2b07-aafe-4931-a7f9-4c37729633ca")) +ICddbFileInfo2_6 : ICddbFileInfo2 +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_MatchType ( + /*[out,retval]*/ enum MusicIDMatchType * pVal ) = 0; + virtual HRESULT __stdcall RetrieveData ( + /*[in]*/ long cddbDataOptions ) = 0; +}; + +struct __declspec(uuid("18d6bc7c-4cbc-4b6a-9550-2b176438b87c")) +ICddbFileInfoList2_6 : ICddbFileInfoList +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall RetrieveData ( + /*[in]*/ long cddbDataOptions ) = 0; +}; + +struct __declspec(uuid("281bfe03-1503-4c60-9678-173c8b4138cc")) +ICDDBMusicIDManager2 : ICDDBMusicIDManager +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall TrackID ( + /*[in]*/ struct ICddbFileInfo * pInfoIn, + /*[in]*/ long options, + long * match_code, + /*[out]*/ struct ICddbFileInfoList * * pListOut ) = 0; + virtual HRESULT __stdcall AlbumID ( + /*[in]*/ struct ICddbFileInfoList * pListIn, + /*[in]*/ long options, + long * match_code, + /*[out]*/ struct ICddbFileInfoLists * * pListsOut ) = 0; + virtual HRESULT __stdcall GetTagInternal ( + /*[in]*/ BSTR Filename, + /*[out]*/ struct ICddbFileTag * * Tag ) = 0; + virtual HRESULT __stdcall GetFingerprintInternal ( + /*[in]*/ BSTR Filename, + /*[out]*/ struct ICddbMusicIDFingerprint * * Fingerprint ) = 0; +}; + +struct __declspec(uuid("43b1b346-2394-46e7-b1ac-ea8d93124f68")) +ICddbMusicIDSettings : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_ThreadPriority ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_ThreadPriority ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_LibraryIDBatchSize ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_LibraryIDBatchSize ( + /*[in]*/ long pVal ) = 0; +}; + +struct __declspec(uuid("5797bf13-a4e7-4170-ae22-5f06b2823e04")) +ICDDBMusicIDManager3 : ICDDBMusicIDManager2 +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall LibraryID ( + /*[in]*/ struct ICddbFileInfoList * pListIn, + /*[in]*/ long options ) = 0; + virtual HRESULT __stdcall LibraryIDAdd ( + /*[in]*/ BSTR bstrFilename ) = 0; + virtual HRESULT __stdcall LibraryIDAddFileInfo ( + /*[in]*/ struct ICddbFileInfo * pInfo ) = 0; + virtual HRESULT __stdcall LibraryIDRemove ( + /*[in]*/ BSTR bstrFilename ) = 0; + virtual HRESULT __stdcall LibraryIDStart ( + /*[in]*/ long options ) = 0; + virtual HRESULT __stdcall LibraryIDStop ( + /*[in]*/ long bWait ) = 0; + virtual HRESULT __stdcall LibraryIDClear ( ) = 0; + virtual HRESULT __stdcall LibraryIDStatus ( + /*[out]*/ long * bIsRunning, + /*[out]*/ long * lFilesInQueue ) = 0; + virtual HRESULT __stdcall GetFullDisc ( + /*[in]*/ struct ICddbDisc2 * pDisc, + /*[out]*/ struct ICddbDisc2 * * ppFullDisc ) = 0; + virtual HRESULT __stdcall GetSettings ( + /*[out]*/ struct ICddbMusicIDSettings * * ppSettings ) = 0; + virtual HRESULT __stdcall PutSettings ( + /*[in]*/ struct ICddbMusicIDSettings * pSettings ) = 0; +}; + +struct __declspec(uuid("28041299-f00d-4156-88c7-4c663cd47b00")) +CDDBNSWinampMusicIDManager; + // [ default ] interface ICDDBMusicIDManager + // interface ICDDBMusicIDManager2 + // interface ICDDBMusicIDManager3 + // [ default, source ] dispinterface _ICDDBMusicIDManagerEvents + +struct __declspec(uuid("b6d10e75-e02c-4f26-98c3-72450019942b")) +CddbMusicIDFingerprinter; + // [ default ] interface ICddbMusicIDFingerprinter + +struct __declspec(uuid("e0ff4f0f-b53b-41d5-b1c9-3890ac403fe5")) +CddbMusicIDFingerprint; + // interface IFingerprintImpl + // [ default ] interface ICddbMusicIDFingerprint + +struct __declspec(uuid("80a8f856-eda2-44db-a9ae-fafaaa2f5798")) +CddbFileInfo; + // [ default ] interface ICddbFileInfo + +struct __declspec(uuid("93c676b4-2ded-461c-abd6-33736f951840")) +CddbFileInfoList; + // [ default ] interface ICddbFileInfoList + +struct __declspec(uuid("d00f2f00-f910-43af-99d6-591ac5f1b560")) +CddbFileInfoLists; + // [ default ] interface ICddbFileInfoLists + +struct __declspec(uuid("c7538f11-8d14-439b-ad2d-30c2cd8d0e68")) +CddbMusicIDSettings; + // [ default ] interface ICddbMusicIDSettings + +// +// Named GUID constants initializations +// + +extern "C" const GUID __declspec(selectany) LIBID_CDDBMUSICIDLibNSWinamp = + {0x05d652c1,0x7997,0x40f9,{0x98,0x2d,0x34,0x7b,0x8e,0x29,0xf8,0xfb}}; +extern "C" const GUID __declspec(selectany) DIID__ICDDBMusicIDManagerEvents = + {0x46ac5819,0x1fa8,0x44a1,{0x99,0x54,0x27,0x0e,0xa2,0xcf,0x0d,0xca}}; +extern "C" const GUID __declspec(selectany) IID_IFingerprintImpl = + {0xdb104e47,0x62bb,0x4933,{0x8f,0x37,0x89,0x84,0x22,0x8e,0x69,0x38}}; +extern "C" const GUID __declspec(selectany) IID_ICddbMusicIDFingerprint = + {0xcca2a70a,0xbcbc,0x49e9,{0x8e,0xf4,0x04,0xda,0xbc,0xd6,0x8b,0x81}}; +extern "C" const GUID __declspec(selectany) IID_ICddbFileInfo = + {0x0aa9fdfb,0x80d5,0x41bf,{0xb3,0x83,0x7a,0xab,0x86,0x9e,0x6b,0x0e}}; +extern "C" const GUID __declspec(selectany) IID_ICddbFileInfoList = + {0x099a10ed,0x517b,0x4387,{0xa1,0x2e,0xaf,0x3f,0xe9,0x0b,0x58,0x56}}; +extern "C" const GUID __declspec(selectany) IID_ICddbFileInfoLists = + {0x5000f09e,0x8483,0x4deb,{0x83,0x45,0x4e,0x77,0x8a,0x9f,0xe8,0x04}}; +extern "C" const GUID __declspec(selectany) IID_ICddbMusicIDFingerprinter = + {0xec0e5dd3,0x8bab,0x4671,{0x85,0xa1,0x68,0xbf,0x93,0xcb,0x35,0xe4}}; +extern "C" const GUID __declspec(selectany) IID_ICDDBMusicIDManager = + {0x6131c03d,0x97d0,0x49ca,{0x8e,0xb1,0x5f,0xa0,0xd1,0x0e,0xc0,0x72}}; +extern "C" const GUID __declspec(selectany) IID_ICddbMusicIDFingerprinter2 = + {0x26b263b3,0x57cd,0x42fd,{0xaa,0x48,0xe5,0x05,0xb4,0x78,0x00,0x55}}; +extern "C" const GUID __declspec(selectany) IID_ICddbFileInfo2 = + {0xdc6da11f,0xca85,0x4658,{0x92,0x16,0x2a,0xd3,0x53,0xcf,0xc3,0x3b}}; +extern "C" const GUID __declspec(selectany) IID_ICddbFileInfo2_6 = + {0x3b4a2b07,0xaafe,0x4931,{0xa7,0xf9,0x4c,0x37,0x72,0x96,0x33,0xca}}; +extern "C" const GUID __declspec(selectany) IID_ICddbFileInfoList2_6 = + {0x18d6bc7c,0x4cbc,0x4b6a,{0x95,0x50,0x2b,0x17,0x64,0x38,0xb8,0x7c}}; +extern "C" const GUID __declspec(selectany) IID_ICDDBMusicIDManager2 = + {0x281bfe03,0x1503,0x4c60,{0x96,0x78,0x17,0x3c,0x8b,0x41,0x38,0xcc}}; +extern "C" const GUID __declspec(selectany) IID_ICddbMusicIDSettings = + {0x43b1b346,0x2394,0x46e7,{0xb1,0xac,0xea,0x8d,0x93,0x12,0x4f,0x68}}; +extern "C" const GUID __declspec(selectany) IID_ICDDBMusicIDManager3 = + {0x5797bf13,0xa4e7,0x4170,{0xae,0x22,0x5f,0x06,0xb2,0x82,0x3e,0x04}}; +extern "C" const GUID __declspec(selectany) CLSID_CDDBNSWinampMusicIDManager = + {0x28041299,0xf00d,0x4156,{0x88,0xc7,0x4c,0x66,0x3c,0xd4,0x7b,0x00}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbMusicIDFingerprinter = + {0xb6d10e75,0xe02c,0x4f26,{0x98,0xc3,0x72,0x45,0x00,0x19,0x94,0x2b}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbMusicIDFingerprint = + {0xe0ff4f0f,0xb53b,0x41d5,{0xb1,0xc9,0x38,0x90,0xac,0x40,0x3f,0xe5}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbFileInfo = + {0x80a8f856,0xeda2,0x44db,{0xa9,0xae,0xfa,0xfa,0xaa,0x2f,0x57,0x98}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbFileInfoList = + {0x93c676b4,0x2ded,0x461c,{0xab,0xd6,0x33,0x73,0x6f,0x95,0x18,0x40}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbFileInfoLists = + {0xd00f2f00,0xf910,0x43af,{0x99,0xd6,0x59,0x1a,0xc5,0xf1,0xb5,0x60}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbMusicIDSettings = + {0xc7538f11,0x8d14,0x439b,{0xad,0x2d,0x30,0xc2,0xcd,0x8d,0x0e,0x68}}; + +#pragma pack(pop) diff --git a/Src/gracenote/cddbplaylist2winamp.tlh b/Src/gracenote/cddbplaylist2winamp.tlh new file mode 100644 index 00000000..a69f3af0 --- /dev/null +++ b/Src/gracenote/cddbplaylist2winamp.tlh @@ -0,0 +1,1713 @@ +// Created by Microsoft (R) C/C++ Compiler Version 15.00.30729.01 (3e575fdd). +// +// f:\sandbox\20131028_225933\winamp\release\cddbplaylist2winamp.tlh +// +// C++ source equivalent of Win32 type library ../gracenote/CddbPlaylist2Winamp.dll +// compiler-generated file created 10/28/13 at 23:18:29 - DO NOT EDIT! + +// +// Cross-referenced type libraries: +// +// + +#pragma once +#pragma pack(push, 8) + +#include <comdef.h> + +// +// Forward references and typedefs +// + +struct __declspec(uuid("7919d0ca-3043-4c02-b778-ab2bf4931f58")) +/* LIBID */ __CDDBPLAYLIST2LibNSWinamp; +enum gnpl_crit_field_t; +enum gnpl_crit_field_type_t; +enum gnpl_rank_order_t; +enum gnpl_crit_op_t; +enum gnpl_crit_param_num_t; +enum gnpl_criteria_matchmode_t; +enum __MIDL___MIDL_itf_CddbPlaylist_0000_0001; +enum gnpl_user_info_t; +enum __MIDL___MIDL_itf_CddbPlaylist_0000_0002; +enum __MIDL___MIDL_itf_CddbPlaylist_0000_0003; +enum __MIDL___MIDL_itf_CddbPlaylist_0000_0004; +enum __MIDL___MIDL_itf_CddbPlaylist_0000_0005; +enum CddbPlaylistErrors; +enum CddbPlaylistUpdateFlags; +enum CddbPlaylistMLDBFlags; +struct __declspec(uuid("a58522b9-6b50-4033-9246-1ec5701ed85c")) +/* dispinterface */ DPlaylist2Events; +struct __declspec(uuid("34655d2e-8550-421f-a67d-a002f14d8d5e")) +/* dual interface */ ICddbPlaylist2Mgr; +struct __declspec(uuid("223e85f1-b287-4571-aa1a-a6d6144d0696")) +/* dual interface */ ICddbPL2Criteria; +struct __declspec(uuid("29327d31-2587-48c6-8b11-3f57b096c2ea")) +/* dual interface */ ICddbPL2ResultList; +struct __declspec(uuid("6ac694d3-4e30-47f3-93dd-236dbb308715")) +/* dual interface */ ICddbPL2Result; +struct __declspec(uuid("c0e6e3a0-2fcf-4a33-8e55-19920b83d759")) +/* dual interface */ ICddbPL2Timestamp; +struct __declspec(uuid("b0c8851a-0209-419b-84bc-1d03e6a0dc86")) +/* dual interface */ ICddbPL2FindData; +struct __declspec(uuid("f8d8ee69-e17d-442f-bb11-d8a1a214feba")) +/* dual interface */ ICddbPLGeneratorList; +struct __declspec(uuid("5311019a-98c9-4377-b8cf-72c00a55914a")) +/* dual interface */ ICddbPLGenerator; +struct __declspec(uuid("a9f50e0f-859d-4397-959e-3bb7aacbb564")) +/* dual interface */ ICddbPLGenCriteriaList; +struct __declspec(uuid("1754c0c9-24b5-4ed6-8eea-52620ed16e58")) +/* dual interface */ ICddbPLGenCriteria; +struct __declspec(uuid("8d951c2e-56fb-4e0b-903c-fe738da573c1")) +/* dual interface */ ICddbPLGenLimitList; +struct __declspec(uuid("d79ffaf8-1bc2-4bde-b5f7-1baa899865d2")) +/* dual interface */ ICddbPLGenLimit; +struct __declspec(uuid("0281a5e7-bd75-4ed3-9872-3331157b923d")) +/* dual interface */ ICddbPLGenRank; +struct __declspec(uuid("3bfa2b55-49a3-42a0-bd2d-4d60d9b9c93f")) +/* dual interface */ ICddbGenreDisplayList; +struct __declspec(uuid("5e484009-3e2b-426a-b496-aebcacd6deb7")) +/* dual interface */ ICddbPLDataList; +struct __declspec(uuid("53881256-92a2-4292-8e24-68ca3992e337")) +/* dual interface */ ICddbPLDataListItem; +struct __declspec(uuid("5a4471da-0283-449e-8ee2-b0716e3c168b")) +/* dual interface */ ICddbPLIDList; +struct __declspec(uuid("84e284d8-34cc-4337-b1dc-d7d6f0e431cb")) +/* dual interface */ ICddbArtistTypeList; +struct __declspec(uuid("ba5342dc-41d7-4954-9501-fdc6acd0dc2f")) +/* dual interface */ ICddbOriginsList; +struct __declspec(uuid("15d93d1e-50f1-444c-9e76-e4c8aca0a29d")) +/* dual interface */ ICddbEraDisplayList; +struct __declspec(uuid("a2c6c4ee-32fe-4bb7-8a47-dc615034bd7c")) +/* dual interface */ ICddbEra; +struct __declspec(uuid("3580dee2-b1d1-46ae-88b0-cbac62d1e157")) +/* dual interface */ ICddbPopularityRangeList; +struct __declspec(uuid("6e1eeee1-7227-4bad-b955-b84bea914a5a")) +/* dual interface */ ICddbPL25Generator; +struct __declspec(uuid("b282f975-ac68-41c1-bded-de683bb8e403")) +/* dual interface */ ICddbPLGenWeightedRank; +struct __declspec(uuid("3ffd3787-fe3a-4f44-be99-4289875eb925")) +/* dual interface */ ICddbPLGen25Criteria; +struct __declspec(uuid("e0d26898-f166-4f42-9a6a-5d2e346ed6ed")) +/* dual interface */ ICddbPLInfo; +struct __declspec(uuid("f7bcb924-06da-41e2-af0c-c249c136303a")) +/* dual interface */ ICddbMLDBManager; +struct __declspec(uuid("df17e91f-434a-4e75-8645-13dd56a4cc86")) +/* dual interface */ ICddbMLDBManager2; +struct __declspec(uuid("be4e7feb-ee3a-4a41-b370-ae37e656be29")) +/* dual interface */ ICddbPopularityRange; +struct __declspec(uuid("ba9a4ba6-1879-4a32-82c8-bd84d8fadf00")) +/* dual interface */ ICddbPlaylist25Mgr; +struct __declspec(uuid("dbbc42ac-1409-4d95-98fc-7f6acb33ec15")) +/* dual interface */ ICddbPLMoreLikeThisCfg; +struct __declspec(uuid("dcf3b306-aa51-455c-9b39-51f8cb8590aa")) +/* dual interface */ ICddbPLMoreLikeThisCfg2; +struct __declspec(uuid("59ce219f-46aa-4fc1-85b8-31290e454503")) +/* dual interface */ ICddbPLMoreLikeThisCfg25; +struct /* coclass */ CddbNSWinampPlaylist2Mgr; +struct /* coclass */ CddbPL2Criteria; +struct /* coclass */ CddbPL2Timestamp; +struct /* coclass */ CddbPL2FindData; +struct /* coclass */ CddbPL2Result; +struct /* coclass */ CddbPL2ResultList; +struct /* coclass */ CddbEra; +struct /* coclass */ CddbPLGeneratorList; +struct /* coclass */ CddbPLGenerator; +struct /* coclass */ CddbPLGenCriteria; +struct /* coclass */ CddbPLGenLimit; +struct /* coclass */ CddbPLGenCriteriaList; +struct /* coclass */ CddbPLGenLimitList; +struct /* coclass */ CddbPLGenRank; +struct /* coclass */ CddbPLInfo; +struct /* coclass */ CddbPLDataList; +struct /* coclass */ CddbPLDataListItem; +struct /* coclass */ CddbPLIDList; +struct /* coclass */ CddbArtistTypeList; +struct /* coclass */ CddbOriginsList; +struct /* coclass */ CddbGenreDisplayList; +struct /* coclass */ CddbEraDisplayList; +struct /* coclass */ CddbPopularityRangeList; +struct /* coclass */ CddbMLDBManager; +struct /* coclass */ CddbPopularityRange; +struct /* coclass */ CddbPLMoreLikeThisCfg; +typedef enum __MIDL___MIDL_itf_CddbPlaylist_0000_0001 gnpl_stats_getdate_enum; +typedef enum __MIDL___MIDL_itf_CddbPlaylist_0000_0002 gnpl_results_data_mask_flags_enum; +typedef enum __MIDL___MIDL_itf_CddbPlaylist_0000_0003 gnpl_morelikethis_algorithm_t; +typedef enum __MIDL___MIDL_itf_CddbPlaylist_0000_0004 gnpl_crit_similarity_function_t; +typedef enum __MIDL___MIDL_itf_CddbPlaylist_0000_0005 gnpl_crit_selection_t; + +// +// Smart pointer typedef declarations +// + +_COM_SMARTPTR_TYPEDEF(DPlaylist2Events, __uuidof(DPlaylist2Events)); +_COM_SMARTPTR_TYPEDEF(ICddbPL2Criteria, __uuidof(ICddbPL2Criteria)); +_COM_SMARTPTR_TYPEDEF(ICddbPL2Result, __uuidof(ICddbPL2Result)); +_COM_SMARTPTR_TYPEDEF(ICddbPL2ResultList, __uuidof(ICddbPL2ResultList)); +_COM_SMARTPTR_TYPEDEF(ICddbPL2Timestamp, __uuidof(ICddbPL2Timestamp)); +_COM_SMARTPTR_TYPEDEF(ICddbPL2FindData, __uuidof(ICddbPL2FindData)); +_COM_SMARTPTR_TYPEDEF(ICddbPLGenCriteria, __uuidof(ICddbPLGenCriteria)); +_COM_SMARTPTR_TYPEDEF(ICddbPLGenCriteriaList, __uuidof(ICddbPLGenCriteriaList)); +_COM_SMARTPTR_TYPEDEF(ICddbPLGenLimit, __uuidof(ICddbPLGenLimit)); +_COM_SMARTPTR_TYPEDEF(ICddbPLGenLimitList, __uuidof(ICddbPLGenLimitList)); +_COM_SMARTPTR_TYPEDEF(ICddbPLGenRank, __uuidof(ICddbPLGenRank)); +_COM_SMARTPTR_TYPEDEF(ICddbPLGenerator, __uuidof(ICddbPLGenerator)); +_COM_SMARTPTR_TYPEDEF(ICddbPLIDList, __uuidof(ICddbPLIDList)); +_COM_SMARTPTR_TYPEDEF(ICddbPLDataListItem, __uuidof(ICddbPLDataListItem)); +_COM_SMARTPTR_TYPEDEF(ICddbPLDataList, __uuidof(ICddbPLDataList)); +_COM_SMARTPTR_TYPEDEF(ICddbGenreDisplayList, __uuidof(ICddbGenreDisplayList)); +_COM_SMARTPTR_TYPEDEF(ICddbPLGeneratorList, __uuidof(ICddbPLGeneratorList)); +_COM_SMARTPTR_TYPEDEF(ICddbArtistTypeList, __uuidof(ICddbArtistTypeList)); +_COM_SMARTPTR_TYPEDEF(ICddbOriginsList, __uuidof(ICddbOriginsList)); +_COM_SMARTPTR_TYPEDEF(ICddbEra, __uuidof(ICddbEra)); +_COM_SMARTPTR_TYPEDEF(ICddbEraDisplayList, __uuidof(ICddbEraDisplayList)); +_COM_SMARTPTR_TYPEDEF(ICddbPopularityRangeList, __uuidof(ICddbPopularityRangeList)); +_COM_SMARTPTR_TYPEDEF(ICddbPlaylist2Mgr, __uuidof(ICddbPlaylist2Mgr)); +_COM_SMARTPTR_TYPEDEF(ICddbPLGenWeightedRank, __uuidof(ICddbPLGenWeightedRank)); +_COM_SMARTPTR_TYPEDEF(ICddbPL25Generator, __uuidof(ICddbPL25Generator)); +_COM_SMARTPTR_TYPEDEF(ICddbPLGen25Criteria, __uuidof(ICddbPLGen25Criteria)); +_COM_SMARTPTR_TYPEDEF(ICddbPLInfo, __uuidof(ICddbPLInfo)); +_COM_SMARTPTR_TYPEDEF(ICddbMLDBManager, __uuidof(ICddbMLDBManager)); +_COM_SMARTPTR_TYPEDEF(ICddbMLDBManager2, __uuidof(ICddbMLDBManager2)); +_COM_SMARTPTR_TYPEDEF(ICddbPopularityRange, __uuidof(ICddbPopularityRange)); +_COM_SMARTPTR_TYPEDEF(ICddbPLMoreLikeThisCfg, __uuidof(ICddbPLMoreLikeThisCfg)); +_COM_SMARTPTR_TYPEDEF(ICddbPlaylist25Mgr, __uuidof(ICddbPlaylist25Mgr)); +_COM_SMARTPTR_TYPEDEF(ICddbPLMoreLikeThisCfg2, __uuidof(ICddbPLMoreLikeThisCfg2)); +_COM_SMARTPTR_TYPEDEF(ICddbPLMoreLikeThisCfg25, __uuidof(ICddbPLMoreLikeThisCfg25)); + +// +// Type library items +// + +enum gnpl_crit_field_t +{ + gnpl_crit_field_first = 0, + gnpl_crit_field_file_name = 1, + gnpl_crit_field_file_size = 2, + gnpl_crit_field_file_length = 3, + gnpl_crit_field_file_created_date = 4, + gnpl_crit_field_file_modified_date = 5, + gnpl_crit_field_file_lastplayed_date = 6, + gnpl_crit_field_file_bitrate = 7, + gnpl_crit_field_file_codec_format = 8, + gnpl_crit_field_file_drm = 9, + gnpl_crit_field_track_name = 10, + gnpl_crit_field_track_sort_name = 11, + gnpl_crit_field_track_artist_name = 12, + gnpl_crit_field_track_artist_sortname = 13, + gnpl_crit_field_track_releaseyear = 14, + gnpl_crit_field_track_langid = 15, + gnpl_crit_field_track_bpm = 16, + gnpl_crit_field_track_num = 17, + gnpl_crit_field_track_genre = 18, + gnpl_crit_field_track_genrev2 = 19, + gnpl_crit_field_track_mood = 20, + gnpl_crit_field_track_tempo = 21, + gnpl_crit_field_track_album_pop = 22, + gnpl_crit_field_track_global_pop = 23, + gnpl_crit_field_album_name = 24, + gnpl_crit_field_album_sortname = 25, + gnpl_crit_field_album_primaryartist = 26, + gnpl_crit_field_album_releaseyear = 27, + gnpl_crit_field_album_label = 28, + gnpl_crit_field_album_compilation = 29, + gnpl_crit_field_album_region = 30, + gnpl_crit_field_album_genre = 31, + gnpl_crit_field_album_genrev2 = 32, + gnpl_crit_field_album_pop = 33, + gnpl_crit_field_artist_region = 34, + gnpl_crit_field_artist_era = 35, + gnpl_crit_field_artist_type = 36, + gnpl_crit_field_track_local_pop = 37, + gnpl_crit_field_artist_local_pop = 38, + gnpl_crit_field_track_playcount = 39, + gnpl_crit_field_track_myrating = 40, + gnpl_crit_field_album_myrating = 41, + gnpl_crit_field_artist_myrating = 42, + gnpl_crit_field_genre_myrating = 43, + gnpl_crit_field_playlist_myrating = 44, + gnpl_crit_field_xdev1 = 45, + gnpl_crit_field_xdev2 = 46, + gnpl_crit_field_xdev3 = 47, + gnpl_crit_field_xdev = 48, + gnpl_crit_field_tagid = 49, + gnpl_crit_field_path_name = 50, + gnpl_crit_field_genredesc = 51, + gnpl_crit_field_track_composer = 52, + gnpl_crit_field_track_conductor = 53, + gnpl_crit_field_track_ensemble = 54, + gnpl_crit_field_reserved4 = 55, + gnpl_crit_field_reserved5 = 56, + gnpl_crit_field_reserved6 = 57, + gnpl_crit_field_reserved7 = 58, + gnpl_crit_field_reserved8 = 59, + gnpl_crit_field_reserved9 = 60, + gnpl_crit_field_reserved10 = 61, + gnpl_crit_field_reserved11 = 62, + gnpl_crit_field_reserved12 = 63, + gnpl_crit_field_reserved13 = 64, + gnpl_crit_field_reserved14 = 65, + gnpl_crit_field_idx_numdev1 = 66, + gnpl_crit_field_idx_numdev2 = 67, + gnpl_crit_field_idx_numdev3 = 68, + gnpl_crit_field_idx_alphdev1 = 69, + gnpl_crit_field_idx_alphdev2 = 70, + gnpl_crit_field_idx_alphdev3 = 71, + gnpl_crit_field_numdev1 = 72, + gnpl_crit_field_numdev2 = 73, + gnpl_crit_field_numdev3 = 74, + gnpl_crit_field_numdev4 = 75, + gnpl_crit_field_numdev5 = 76, + gnpl_crit_field_alphdev1 = 77, + gnpl_crit_field_alphdev2 = 78, + gnpl_crit_field_alphdev3 = 79, + gnpl_crit_field_alphdev4 = 80, + gnpl_crit_field_alphdev5 = 81, + gnpl_crit_field_primary_mood_id = 82, + gnpl_crit_field_primary_tempo_id = 83, + gnpl_crit_field_track_general_dsp = 84, + gnpl_crit_field_last = 85 +}; + +enum gnpl_crit_field_type_t +{ + gnpl_crit_field_type_unknown = 0, + gnpl_crit_field_type_string = 1, + gnpl_crit_field_type_num = 2, + gnpl_crit_field_type_enum = 3, + gnpl_crit_field_type_date = 4, + gnpl_crit_field_type_key_ivalue_array = 5, + gnpl_crit_field_type_last = 6 +}; + +enum gnpl_rank_order_t +{ + gnpl_rank_order_none = 0, + gnpl_rank_order_ascending = 1, + gnpl_rank_order_descending = 2 +}; + +enum gnpl_crit_op_t +{ + gnpl_crit_op_str_first = 0, + gnpl_crit_op_str_eq = 1, + gnpl_crit_op_str_neq = 2, + gnpl_crit_op_str_cont = 3, + gnpl_crit_op_str_ncont = 4, + gnpl_crit_op_str_sta = 5, + gnpl_crit_op_str_end = 6, + gnpl_crit_op_str_last = 7, + gnpl_crit_op_num_first = 8, + gnpl_crit_op_num_eq = 9, + gnpl_crit_op_num_neq = 10, + gnpl_crit_op_num_lt = 11, + gnpl_crit_op_num_gt = 12, + gnpl_crit_op_num_rang = 13, + gnpl_crit_op_num_last = 14, + gnpl_crit_op_enum_first = 15, + gnpl_crit_op_enum_eq = 16, + gnpl_crit_op_enum_neq = 17, + gnpl_crit_op_enum_sim = 18, + gnpl_crit_op_enum_last = 19, + gnpl_crit_op_date_first = 20, + gnpl_crit_op_date_eq = 21, + gnpl_crit_op_date_neq = 22, + gnpl_crit_op_date_lt = 23, + gnpl_crit_op_date_gt = 24, + gnpl_crit_op_date_rang = 25, + gnpl_crit_op_date_inlast = 26, + gnpl_crit_op_date_notinlast = 27, + gnpl_crit_op_date_last = 28, + gnpl_crit_op_enum_rang = 29, + gnpl_crit_op_kiva_first = 30, + gnpl_crit_op_kiva_eq = 31, + gnpl_crit_op_kiva_neq = 32, + gnpl_crit_op_kiva_sim = 33, + gnpl_crit_op_kiva_last = 34, + gnpl_crit_op_last = 35 +}; + +enum gnpl_crit_param_num_t +{ + gnpl_crit_param_1 = 0, + gnpl_crit_param_2 = 1, + gnpl_crit_param_3 = 2 +}; + +enum gnpl_criteria_matchmode_t +{ + gnpl_matchmode_match_any = 0, + gnpl_matchmode_match_all = 1 +}; + +enum __MIDL___MIDL_itf_CddbPlaylist_0000_0001 +{ + gnpl_stats_lastplaydate = 1, + gnpl_stats_lastupdateddate = 2, + gnpl_stats_createddate = 3 +}; + +enum gnpl_user_info_t +{ + gnpl_user_rating_first = 0, + gnpl_user_rating_highest = 1, + gnpl_user_rating_favorite = 2, + gnpl_user_rating_lowest = 3, + gnpl_user_rating_good = 4, + gnpl_user_play_never = 5, + gnpl_user_play_recent = 6, + gnpl_user_play_last_30_days = 7, + gnpl_user_play_last_week = 8, + gnpl_user_play_last_day = 9, + gnpl_user_info_last = 10 +}; + +enum __MIDL___MIDL_itf_CddbPlaylist_0000_0002 +{ + GNPL_RESULTS_DATA_MINIMUM = 0, + GNPL_RESULTS_DATA_FILEPATH = 1, + GNPL_RESULTS_DATA_ARTIST = 2, + GNPL_RESULTS_DATA_ALBUM = 4, + GNPL_RESULTS_DATA_POPULARITY = 8, + GNPL_RESULTS_DATA_USER_RATING = 16, + GNPL_RESULTS_DATA_BITRATE = 32, + GNPL_RESULTS_DATA_DEVFIELD1 = 64, + GNPL_RESULTS_DATA_RELEASEYEAR = 128, + GNPL_RESULTS_DATA_LASTPLAYED = 256, + GNPL_RESULTS_DATA_ALL = -1 +}; + +enum __MIDL___MIDL_itf_CddbPlaylist_0000_0003 +{ + GNPL_MORELIKETHIS_BEGIN_ALG = 0, + GNPL_MORELIKETHIS_ALG_DEFAULT = 0, + GNPL_MORELIKETHIS_ALG_20 = 1, + GNPL_MORELIKETHIS_ALG_25 = 2, + GNPL_MORELIKETHIS_ALG_DSP_1 = 3, + GNPL_MORELIKETHIS_ALG_DSP_2 = 4, + GNPL_MORELIKETHIS_END_ALG = 4 +}; + +enum __MIDL___MIDL_itf_CddbPlaylist_0000_0004 +{ + GNPL_CRIT_SIMILARITY_FUNCTION_DEFAULT = 0, + GNPL_CRIT_SIMILARITY_FUNCTION_1 = 1, + GNPL_CRIT_SIMILARITY_FUNCTION_2 = 2, + GNPL_CRIT_SIMILARITY_FUNCTION_3 = 3 +}; + +enum __MIDL___MIDL_itf_CddbPlaylist_0000_0005 +{ + GNPL_CRITERION_NOT_SELECTION_BASED = 0, + GNPL_CRITERION_IS_SELECTION_BASED = 1, + GNPL_CRITERION_INCLUDE_SEED_SELECTION = 2, + GNPL_CRITERION_TOP_SEED_SELECTION = 3, + GNPL_CRITERION_EXCLUDE_SEED_SELECTION = 4 +}; + +enum CddbPlaylistErrors +{ + ERR_PL_DomainPlaylist = 768, + ERR_PL_CDDBControlVersion = -1023409920, + ERR_PL_DB_Corrupt = -1023409919, + ERR_PL_DB_IndexCorrupt = -1023409918, + ERR_PL_DB_BothCorrupt = -1023409917, + ERR_PL_Initialized = -1023409916, + ERR_PL_NotInitialized = -1023409915, + ERR_PL_NotShutdown = -1023409914 +}; + +enum CddbPlaylistUpdateFlags +{ + CDDB_UPDATE_STANDARD = 1, + CDDB_UPDATE_POP = 2, + CDDB_UPDATE_EXTENDED = 4, + CDDB_UPDATE_ALL = 8, + CDDB_UPDATE_UNPOPULATED = 16, + CDDB_UPDATE_NONE = 0 +}; + +enum CddbPlaylistMLDBFlags +{ + PL_MLDB_FLAGS_ZERO = 0, + PL_MLDB_CHECK_BASE = 1, + PL_MLDB_CHECK_INDEX = 2, + PL_MLDB_CHECK_DEEP = 4, + PL_MLDB_CHECK_DEFAULT = 7, + PL_MLDB_CLEAR_INIT_FLAG = 16, + PL_MLDB_SET_INIT_FLAG = 32, + PL_MLDB_BACKUP_BASE = 256, + PL_MLDB_BACKUP_INDEX = 512, + PL_MLDB_RESTORE_BASE = 1024, + PL_MLDB_RESTORE_INDEX = 2048, + PL_MLDB_DELETE_INDEX = 4096, + PL_MLDB_DELETE_BASE = 8192, + PL_MLDB_DELETE_BACKUPS = 16384, + PL_MLDB_DELETE_OTHER = 32768, + PL_MLDB_AUTO_REINDEX = 65536, + PL_MLDB_AUTO_BACKUP = 131072, + PL_MLDB_AUTO_MANAGE_INIT_FLAG = 262144, + PL_MLDB_AUTO_CHECK_IF_INIT_SET = 524288, + PL_MLDB_AUTO_CHECK_AT_INIT = 1048576, + PL_MLDB_AUTO_DEFAULT = 786432, + PL_MLDB_AUTO_MASK = 16711680, + PL_MLDB_DEVICE_MLDB_42 = 16777216 +}; + +struct __declspec(uuid("a58522b9-6b50-4033-9246-1ec5701ed85c")) +DPlaylist2Events : IDispatch +{}; + +struct __declspec(uuid("223e85f1-b287-4571-aa1a-a6d6144d0696")) +ICddbPL2Criteria : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_GenreId ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_GenreId ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Similarity ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Similarity ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_SimilarityWindow ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_SimilarityWindow ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_SimilarityMinimum ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall get_SimilarityMaximum ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall get_Popularity ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Popularity ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_PopularityWindow ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_PopularityWindow ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Artist ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Artist ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Album ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Album ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_SortOrder ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_SortOrder ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Seed ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Seed ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Name ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Name ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_MaxPerArtist ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_MaxPerArtist ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_MaxPerAlbum ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_MaxPerAlbum ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_MaxResults ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_MaxResults ( + /*[in]*/ long pVal ) = 0; +}; + +struct __declspec(uuid("6ac694d3-4e30-47f3-93dd-236dbb308715")) +ICddbPL2Result : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall GetFilename ( + BSTR * filename ) = 0; + virtual HRESULT __stdcall GetArtist ( + BSTR * Artist ) = 0; + virtual HRESULT __stdcall GetAlbum ( + BSTR * Album ) = 0; + virtual HRESULT __stdcall GetTitle ( + BSTR * title ) = 0; + virtual HRESULT __stdcall GetGenreId ( + BSTR * GenreId ) = 0; + virtual HRESULT __stdcall GetFilesize ( + /*[out,retval]*/ unsigned int * pVal ) = 0; + virtual HRESULT __stdcall GetTracklength ( + /*[out,retval]*/ unsigned int * pVal ) = 0; + virtual HRESULT __stdcall GetBitrate ( + /*[out,retval]*/ unsigned int * pVal ) = 0; +}; + +struct __declspec(uuid("29327d31-2587-48c6-8b11-3f57b096c2ea")) +ICddbPL2ResultList : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall GetResult ( + /*[in]*/ long Index, + /*[out,retval]*/ struct ICddbPL2Result * * pVal ) = 0; + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall get__NewEnum ( + /*[out,retval]*/ IUnknown * * pVal ) = 0; + virtual HRESULT __stdcall get_Item ( + /*[in]*/ long lIndex, + /*[out,retval]*/ VARIANT * pVal ) = 0; +}; + +struct __declspec(uuid("c0e6e3a0-2fcf-4a33-8e55-19920b83d759")) +ICddbPL2Timestamp : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Year ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Year ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Month ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Month ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Day ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Day ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Hour ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Hour ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Minute ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Minute ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall SetToNow ( ) = 0; + virtual HRESULT __stdcall GetAsString ( + BSTR * str ) = 0; + virtual HRESULT __stdcall SetAsString ( + BSTR str ) = 0; +}; + +struct __declspec(uuid("b0c8851a-0209-419b-84bc-1d03e6a0dc86")) +ICddbPL2FindData : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Artist ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Artist ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Album ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Album ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Keyword ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Keyword ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_GenreId ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_GenreId ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall put_LastPlayRange ( + long bSet, + struct ICddbPL2Timestamp * start, + struct ICddbPL2Timestamp * end ) = 0; + virtual HRESULT __stdcall get_LastPlayRange ( + struct ICddbPL2Timestamp * start, + struct ICddbPL2Timestamp * end ) = 0; + virtual HRESULT __stdcall put_YearRange ( + long bSet, + long start, + long end ) = 0; + virtual HRESULT __stdcall get_YearRange ( + long * start, + long * end ) = 0; + virtual HRESULT __stdcall put_PlaysRange ( + long bSet, + long start, + long end ) = 0; + virtual HRESULT __stdcall get_PlaysRange ( + long * start, + long * end ) = 0; + virtual HRESULT __stdcall put_RatingRange ( + long bSet, + long start, + long end ) = 0; + virtual HRESULT __stdcall get_RatingRange ( + long * start, + long * end ) = 0; +}; + +struct __declspec(uuid("1754c0c9-24b5-4ed6-8eea-52620ed16e58")) +ICddbPLGenCriteria : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Description ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Description ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Field ( + /*[out,retval]*/ enum gnpl_crit_field_t * pVal ) = 0; + virtual HRESULT __stdcall put_Field ( + /*[in]*/ enum gnpl_crit_field_t pVal ) = 0; + virtual HRESULT __stdcall get_FieldType ( + /*[out,retval]*/ enum gnpl_crit_field_type_t * pVal ) = 0; + virtual HRESULT __stdcall put_FieldType ( + /*[in]*/ enum gnpl_crit_field_type_t pVal ) = 0; + virtual HRESULT __stdcall get_Operation ( + /*[out,retval]*/ enum gnpl_crit_op_t * pVal ) = 0; + virtual HRESULT __stdcall put_Operation ( + /*[in]*/ enum gnpl_crit_op_t pVal ) = 0; + virtual HRESULT __stdcall get_IntParam1 ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_IntParam1 ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_IntParam2 ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_IntParam2 ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_IntParam3 ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_IntParam3 ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_StrParam1 ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_StrParam1 ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_StrParam2 ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_StrParam2 ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Weight ( + /*[out,retval]*/ short * pVal ) = 0; + virtual HRESULT __stdcall put_Weight ( + /*[in]*/ short pVal ) = 0; + virtual HRESULT __stdcall get_Order ( + /*[out,retval]*/ short * pVal ) = 0; + virtual HRESULT __stdcall put_Order ( + /*[in]*/ short pVal ) = 0; + virtual HRESULT __stdcall get_SelectionBased ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_SelectionBased ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_DateParam1 ( + /*[out,retval]*/ struct ICddbPL2Timestamp * * pVal ) = 0; + virtual HRESULT __stdcall put_DateParam1 ( + /*[in]*/ struct ICddbPL2Timestamp * pVal ) = 0; + virtual HRESULT __stdcall get_DateParam2 ( + /*[out,retval]*/ struct ICddbPL2Timestamp * * pVal ) = 0; + virtual HRESULT __stdcall put_DateParam2 ( + /*[in]*/ struct ICddbPL2Timestamp * pVal ) = 0; +}; + +struct __declspec(uuid("a9f50e0f-859d-4397-959e-3bb7aacbb564")) +ICddbPLGenCriteriaList : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetCriteria ( + /*[in]*/ long Index, + /*[out,retval]*/ struct ICddbPLGenCriteria * * pVal ) = 0; + virtual HRESULT __stdcall DeleteCriteria ( + /*[in]*/ long Index, + /*[in]*/ struct ICddbPLGenCriteria * criteria ) = 0; + virtual HRESULT __stdcall AddCriteria ( + /*[in]*/ long Where, + /*[in]*/ struct ICddbPLGenCriteria * criteria ) = 0; + virtual HRESULT __stdcall ClearCriteria ( ) = 0; +}; + +struct __declspec(uuid("d79ffaf8-1bc2-4bde-b5f7-1baa899865d2")) +ICddbPLGenLimit : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Field ( + /*[out,retval]*/ enum gnpl_crit_field_t * pVal ) = 0; + virtual HRESULT __stdcall put_Field ( + /*[in]*/ enum gnpl_crit_field_t pVal ) = 0; + virtual HRESULT __stdcall get_Limit ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Limit ( + /*[in]*/ long pVal ) = 0; +}; + +struct __declspec(uuid("8d951c2e-56fb-4e0b-903c-fe738da573c1")) +ICddbPLGenLimitList : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetLimit ( + /*[in]*/ long Index, + /*[out,retval]*/ struct ICddbPLGenLimit * * pVal ) = 0; + virtual HRESULT __stdcall DeleteLimit ( + /*[in]*/ long Index, + /*[in]*/ struct ICddbPLGenLimit * Limit ) = 0; + virtual HRESULT __stdcall AddLimit ( + /*[in]*/ long Where, + /*[in]*/ struct ICddbPLGenLimit * Limit ) = 0; + virtual HRESULT __stdcall GetLimitForField ( + /*[in]*/ enum gnpl_crit_field_t Field, + /*[out,retval]*/ struct ICddbPLGenLimit * * pVal ) = 0; +}; + +struct __declspec(uuid("0281a5e7-bd75-4ed3-9872-3331157b923d")) +ICddbPLGenRank : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Field ( + /*[out,retval]*/ enum gnpl_crit_field_t * pVal ) = 0; + virtual HRESULT __stdcall put_Field ( + /*[in]*/ enum gnpl_crit_field_t pVal ) = 0; + virtual HRESULT __stdcall get_RankOrder ( + /*[out,retval]*/ enum gnpl_rank_order_t * pVal ) = 0; + virtual HRESULT __stdcall put_RankOrder ( + /*[in]*/ enum gnpl_rank_order_t pVal ) = 0; +}; + +struct __declspec(uuid("5311019a-98c9-4377-b8cf-72c00a55914a")) +ICddbPLGenerator : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Name ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Name ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_Description ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Description ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall get_CriteriaList ( + /*[out,retval]*/ struct ICddbPLGenCriteriaList * * pVal ) = 0; + virtual HRESULT __stdcall put_CriteriaList ( + /*[in]*/ struct ICddbPLGenCriteriaList * pVal ) = 0; + virtual HRESULT __stdcall get_MatchMode ( + /*[out,retval]*/ enum gnpl_criteria_matchmode_t * pVal ) = 0; + virtual HRESULT __stdcall put_MatchMode ( + /*[in]*/ enum gnpl_criteria_matchmode_t pVal ) = 0; + virtual HRESULT __stdcall get_LimitKilobytes ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_LimitKilobytes ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_LimitMinutes ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_LimitMinutes ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_LimitSongs ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_LimitSongs ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Seed ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Seed ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_LimitList ( + /*[out,retval]*/ struct ICddbPLGenLimitList * * pVal ) = 0; + virtual HRESULT __stdcall put_LimitList ( + /*[in]*/ struct ICddbPLGenLimitList * pVal ) = 0; + virtual HRESULT __stdcall get_Rank ( + /*[in]*/ unsigned int RankOrder, + /*[out,retval]*/ struct ICddbPLGenRank * * pVal ) = 0; + virtual HRESULT __stdcall put_Rank ( + /*[in]*/ unsigned int RankOrder, + /*[in]*/ struct ICddbPLGenRank * pVal ) = 0; + virtual HRESULT __stdcall get_AutoUpdate ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_AutoUpdate ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_IsSelectionBased ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_IsSelectionBased ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall Clone ( + struct ICddbPLGenerator * * ppClonedGenerator ) = 0; +}; + +struct __declspec(uuid("5a4471da-0283-449e-8ee2-b0716e3c168b")) +ICddbPLIDList : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetID ( + /*[in]*/ long Index, + /*[out,retval]*/ long * pVal ) = 0; +}; + +struct __declspec(uuid("53881256-92a2-4292-8e24-68ca3992e337")) +ICddbPLDataListItem : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Id ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall get_Name ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Description ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Children ( + /*[out,retval]*/ struct ICddbPLIDList * * pVal ) = 0; + virtual HRESULT __stdcall get_Parents ( + /*[out,retval]*/ struct ICddbPLIDList * * pVal ) = 0; +}; + +struct __declspec(uuid("5e484009-3e2b-426a-b496-aebcacd6deb7")) +ICddbPLDataList : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetItem ( + /*[in]*/ long Index, + /*[out,retval]*/ struct ICddbPLDataListItem * * pVal ) = 0; + virtual HRESULT __stdcall GetItemById ( + /*[in]*/ long Id, + /*[out,retval]*/ struct ICddbPLDataListItem * * pVal ) = 0; + virtual HRESULT __stdcall get_DescendantsById ( + /*[in]*/ long Id, + /*[out,retval]*/ struct ICddbPLIDList * * pVal ) = 0; + virtual HRESULT __stdcall get_LeafDescendantsById ( + /*[in]*/ long Id, + /*[out,retval]*/ struct ICddbPLIDList * * pVal ) = 0; +}; + +struct __declspec(uuid("3bfa2b55-49a3-42a0-bd2d-4d60d9b9c93f")) +ICddbGenreDisplayList : ICddbPLDataList +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall GetDisplayItemByID ( + /*[in]*/ long Id, + /*[out,retval]*/ struct ICddbPLDataListItem * * pVal ) = 0; +}; + +struct __declspec(uuid("f8d8ee69-e17d-442f-bb11-d8a1a214feba")) +ICddbPLGeneratorList : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Count ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetPLGenerator ( + /*[in]*/ long Index, + /*[out,retval]*/ struct ICddbPLGenerator * * pPlGenerator ) = 0; + virtual HRESULT __stdcall SavePLGensToFile ( + /*[in]*/ BSTR filepath ) = 0; + virtual HRESULT __stdcall AddPLGenerator ( + /*[in]*/ struct ICddbPLGenerator * pPlGenerator ) = 0; + virtual HRESULT __stdcall RemovePLGenerator ( + /*[in]*/ struct ICddbPLGenerator * pPlGenerator ) = 0; + virtual HRESULT __stdcall AddPLGeneratorAtIndex ( + /*[in]*/ struct ICddbPLGenerator * pPlGenerator, + /*[in,out]*/ int * pIndex ) = 0; + virtual HRESULT __stdcall SetGenreDisplayList ( + struct ICddbGenreDisplayList * pGenreDisplayList ) = 0; + virtual HRESULT __stdcall get__NewEnum ( + /*[out,retval]*/ IUnknown * * pVal ) = 0; + virtual HRESULT __stdcall get_Item ( + /*[in]*/ long lIndex, + /*[out,retval]*/ VARIANT * pVal ) = 0; +}; + +struct __declspec(uuid("84e284d8-34cc-4337-b1dc-d7d6f0e431cb")) +ICddbArtistTypeList : ICddbPLDataList +{}; + +struct __declspec(uuid("ba5342dc-41d7-4954-9501-fdc6acd0dc2f")) +ICddbOriginsList : ICddbPLDataList +{}; + +struct __declspec(uuid("a2c6c4ee-32fe-4bb7-8a47-dc615034bd7c")) +ICddbEra : ICddbPLDataListItem +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_StartYear ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall get_EndYear ( + /*[out,retval]*/ long * pVal ) = 0; +}; + +struct __declspec(uuid("15d93d1e-50f1-444c-9e76-e4c8aca0a29d")) +ICddbEraDisplayList : ICddbPLDataList +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall GetEraByYear ( + /*[in]*/ unsigned long Year, + /*[in]*/ unsigned short minspread, + /*[out,retval]*/ struct ICddbEra * * pEra ) = 0; +}; + +struct __declspec(uuid("3580dee2-b1d1-46ae-88b0-cbac62d1e157")) +ICddbPopularityRangeList : ICddbPLDataList +{}; + +struct __declspec(uuid("34655d2e-8550-421f-a67d-a002f14d8d5e")) +ICddbPlaylist2Mgr : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall Initialize ( + struct ICDDBControl * pCDDBControl, + BSTR db_path ) = 0; + virtual HRESULT __stdcall Shutdown ( ) = 0; + virtual HRESULT __stdcall DownloadCorrelates ( + long bForce ) = 0; + virtual HRESULT __stdcall CreatePlaylist ( + struct ICddbPL2Criteria * pCriteria, + struct ICddbPL2ResultList * * ppPLResults ) = 0; + virtual HRESULT __stdcall CreatePlaylistFromFolder ( + BSTR folder, + long bRecurse, + struct ICddbPL2Criteria * criteria, + struct ICddbPL2ResultList * * ppPLResults ) = 0; + virtual HRESULT __stdcall AddFile ( + BSTR filename ) = 0; + virtual HRESULT __stdcall AddFolder ( + BSTR folder, + long bRecurse ) = 0; + virtual HRESULT __stdcall DeleteFile ( + BSTR filename ) = 0; + virtual HRESULT __stdcall UpdateFile ( + BSTR filename ) = 0; + virtual HRESULT __stdcall TestFile ( + BSTR filename, + struct ICddbPL2Criteria * pCriteria, + struct ICddbPL2ResultList * pPLResults ) = 0; + virtual HRESULT __stdcall GetFileData ( + BSTR filename, + struct ICddbDisc2 * * pDisc ) = 0; + virtual HRESULT __stdcall GetFileIdentifier ( + BSTR filename, + BSTR * fileId ) = 0; + virtual HRESULT __stdcall NewPlaylistCriteria ( + BSTR filename, + struct ICddbPL2Criteria * * criteria ) = 0; + virtual HRESULT __stdcall RetrieveCriteria ( + long Index, + struct ICddbPL2Criteria * * ppCriteria ) = 0; + virtual HRESULT __stdcall SaveCriteria ( + struct ICddbPL2Criteria * criteria, + long * Index ) = 0; + virtual HRESULT __stdcall DeleteCriteria ( + long Index ) = 0; + virtual HRESULT __stdcall NumSavedCriteria ( + long * Count ) = 0; + virtual HRESULT __stdcall StatsPlayedFile ( + BSTR filename ) = 0; + virtual HRESULT __stdcall StatsGetPlays ( + BSTR filename, + long * plays ) = 0; + virtual HRESULT __stdcall StatsRateFile ( + BSTR filename, + long rating ) = 0; + virtual HRESULT __stdcall StatsGetRating ( + BSTR filename, + long * rating ) = 0; + virtual HRESULT __stdcall StatsGetDate ( + BSTR filename, + long type, + struct ICddbPL2Timestamp * date ) = 0; + virtual HRESULT __stdcall FindOpen ( + struct ICddbPL2FindData * pFindData ) = 0; + virtual HRESULT __stdcall FindNext ( + struct ICddbPL2FindData * pFindData, + struct ICddbDisc2 * * ppDisc ) = 0; + virtual HRESULT __stdcall FindClose ( + struct ICddbPL2FindData * pFindData ) = 0; + virtual HRESULT __stdcall UpdateDatabase ( + long flags ) = 0; + virtual HRESULT __stdcall CompactDatabase ( + long flags ) = 0; + virtual HRESULT __stdcall GetEras ( + IUnknown * * pEras ) = 0; + virtual HRESULT __stdcall GetPresetPlaylistGenList ( + /*[out,retval]*/ struct ICddbPLGeneratorList * * pPresetPLGenList ) = 0; + virtual HRESULT __stdcall GetUserPlaylistGenList ( + /*[out,retval]*/ struct ICddbPLGeneratorList * * pUserPlGenList ) = 0; + virtual HRESULT __stdcall LoadUserPLGens ( ) = 0; + virtual HRESULT __stdcall CreateDynPlaylist ( + struct ICddbPLGenerator * pPLGen, + VARIANT filenamesArray, + struct ICddbPL2ResultList * * ppPLResults ) = 0; + virtual HRESULT __stdcall SaveUserPLGens ( ) = 0; + virtual HRESULT __stdcall GetArtistTypes ( + /*[out,retval]*/ struct ICddbArtistTypeList * * pList ) = 0; + virtual HRESULT __stdcall GetOrigins ( + /*[out,retval]*/ struct ICddbOriginsList * * pList ) = 0; + virtual HRESULT __stdcall GetGenreDisplayList ( + /*[in]*/ long flags, + /*[out,retval]*/ struct ICddbGenreDisplayList * * pVal ) = 0; + virtual HRESULT __stdcall GetEraDisplayList ( + /*[in]*/ long flags, + /*[out,retval]*/ struct ICddbEraDisplayList * * pVal ) = 0; + virtual HRESULT __stdcall get_Version ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall FileGetDevField ( + /*[in]*/ BSTR filename, + /*[in]*/ int fieldnum, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall FileSetDevField ( + /*[in]*/ BSTR filename, + /*[in]*/ int fieldnum, + /*[in]*/ BSTR fieldval ) = 0; + virtual HRESULT __stdcall get_DirDelim ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_DirDelim ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall AddFileWithTag ( + /*[in]*/ BSTR filename, + /*[in]*/ struct ICddbFileTag * tag ) = 0; + virtual HRESULT __stdcall AddFileWithDisc ( + /*[in]*/ BSTR filename, + /*[in]*/ struct ICddbDisc * disc ) = 0; + virtual HRESULT __stdcall FileSetFieldVal ( + /*[in]*/ BSTR filename, + /*[in]*/ enum gnpl_crit_field_t Field, + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall FileSetFieldValDate ( + /*[in]*/ BSTR filename, + /*[in]*/ enum gnpl_crit_field_t Field, + /*[in]*/ struct ICddbPL2Timestamp * pTimestamp ) = 0; + virtual HRESULT __stdcall FileGetFieldVal ( + /*[in]*/ BSTR filename, + /*[in]*/ enum gnpl_crit_field_t Field, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall FileGetFieldValDate ( + /*[in]*/ BSTR filename, + /*[in]*/ enum gnpl_crit_field_t Field, + /*[out,retval]*/ struct ICddbPL2Timestamp * * pDate ) = 0; + virtual HRESULT __stdcall GetPopularityRanges ( + /*[out,retval]*/ struct ICddbPopularityRangeList * * pList ) = 0; + virtual HRESULT __stdcall AddEntry ( + /*[in]*/ BSTR filename ) = 0; + virtual HRESULT __stdcall FileSetTagID ( + /*[in]*/ BSTR filename, + /*[in]*/ BSTR TagID, + /*[in]*/ int flags ) = 0; + virtual HRESULT __stdcall AddEntryWithTag ( + /*[in]*/ BSTR filename, + /*[in]*/ BSTR TagID ) = 0; + virtual HRESULT __stdcall CDDBUpdateEntry ( + /*[in]*/ BSTR filename, + /*[in]*/ int flags ) = 0; + virtual HRESULT __stdcall AddEntryWithDisc ( + /*[in]*/ BSTR filename, + /*[in]*/ struct ICddbDisc * disc ) = 0; + virtual HRESULT __stdcall UpdateFileWithDisc ( + /*[in]*/ BSTR filename, + /*[in]*/ struct ICddbDisc * pDisc ) = 0; + virtual HRESULT __stdcall GetPLDataList ( + /*[in]*/ long flags, + /*[in]*/ BSTR Name, + /*[out,retval]*/ struct ICddbPLDataList * * pList ) = 0; +}; + +struct __declspec(uuid("b282f975-ac68-41c1-bded-de683bb8e403")) +ICddbPLGenWeightedRank : ICddbPLGenRank +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_Weight ( + /*[out,retval]*/ unsigned int * pVal ) = 0; + virtual HRESULT __stdcall put_Weight ( + /*[in]*/ unsigned int pVal ) = 0; +}; + +struct __declspec(uuid("6e1eeee1-7227-4bad-b955-b84bea914a5a")) +ICddbPL25Generator : ICddbPLGenerator +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall put_WeightedRank ( + /*[in]*/ struct ICddbPLGenWeightedRank * _arg1 ) = 0; + virtual HRESULT __stdcall GetWeightedRankCount ( + /*[out,retval]*/ unsigned int * pCount ) = 0; + virtual HRESULT __stdcall get_WeightedRankByIndex ( + /*[in]*/ unsigned int Index, + /*[out,retval]*/ struct ICddbPLGenWeightedRank * * pVal ) = 0; + virtual HRESULT __stdcall get_WeightedRankByField ( + /*[in]*/ enum gnpl_crit_field_t Field, + /*[out,retval]*/ struct ICddbPLGenWeightedRank * * pVal ) = 0; + virtual HRESULT __stdcall DeleteWeightedRank ( + /*[in]*/ struct ICddbPLGenWeightedRank * pRank ) = 0; + virtual HRESULT __stdcall DeleteWeightedRankWithField ( + /*[in]*/ enum gnpl_crit_field_t Field ) = 0; + virtual HRESULT __stdcall ClearRanks ( ) = 0; + virtual HRESULT __stdcall ClearWeightedRanks ( ) = 0; +}; + +struct __declspec(uuid("3ffd3787-fe3a-4f44-be99-4289875eb925")) +ICddbPLGen25Criteria : ICddbPLGenCriteria +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_DevFieldNum ( + /*[out,retval]*/ int * pDevFieldNum ) = 0; + virtual HRESULT __stdcall put_DevFieldNum ( + /*[in]*/ int pDevFieldNum ) = 0; +}; + +struct __declspec(uuid("e0d26898-f166-4f42-9a6a-5d2e346ed6ed")) +ICddbPLInfo : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall GetCriteriaFieldType ( + /*[in]*/ enum gnpl_crit_field_t Field, + /*[out,retval]*/ enum gnpl_crit_field_type_t * pVal ) = 0; + virtual HRESULT __stdcall GetCriteriaFieldDescription ( + /*[in]*/ enum gnpl_crit_field_t Field, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall GetCriteriaFieldUnits ( + /*[in]*/ enum gnpl_crit_field_t Field, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall GetCriteriaOpDescription ( + /*[in]*/ enum gnpl_crit_op_t Op, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall GetCriteriaOpUnits ( + /*[in]*/ enum gnpl_crit_op_t Op, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall GetUserInfoDescription ( + /*[in]*/ enum gnpl_user_info_t Info, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall get_Language ( + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall put_Language ( + /*[in]*/ BSTR pVal ) = 0; + virtual HRESULT __stdcall GetCutoffFieldDescription ( + /*[in]*/ enum gnpl_crit_field_t Field, + /*[in]*/ enum gnpl_rank_order_t Order, + /*[out,retval]*/ BSTR * pVal ) = 0; + virtual HRESULT __stdcall SetDevFieldInfo ( + /*[in]*/ int fieldnum, + /*[in]*/ enum gnpl_crit_field_type_t FieldType ) = 0; +}; + +struct __declspec(uuid("f7bcb924-06da-41e2-af0c-c249c136303a")) +ICddbMLDBManager : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall Attach ( + /*[in]*/ struct ICddbPlaylist2Mgr * pMgr ) = 0; + virtual HRESULT __stdcall Detach ( + /*[in]*/ struct ICddbPlaylist2Mgr * pMgr ) = 0; + virtual HRESULT __stdcall GetOptions ( + /*[out]*/ long * flags, + /*[out]*/ BSTR * backup_path ) = 0; + virtual HRESULT __stdcall SetOptions ( + /*[in]*/ long flags, + /*[in]*/ BSTR backup_path ) = 0; + virtual HRESULT __stdcall CheckDB ( + /*[in]*/ long flags, + /*[in]*/ BSTR db_path ) = 0; + virtual HRESULT __stdcall RebuildDBIndex ( + /*[in]*/ long flags, + /*[in]*/ BSTR db_path ) = 0; + virtual HRESULT __stdcall BackupDBFiles ( + /*[in]*/ long flags, + /*[in]*/ BSTR db_path, + /*[in]*/ BSTR backup_path ) = 0; + virtual HRESULT __stdcall RestoreDBFiles ( + /*[in]*/ long flags, + /*[in]*/ BSTR db_path, + /*[in]*/ BSTR restore_path ) = 0; + virtual HRESULT __stdcall CheckInitFlag ( + /*[in]*/ long flags, + /*[in]*/ BSTR db_path, + /*[out]*/ long * exists ) = 0; + virtual HRESULT __stdcall ModifyInitFlag ( + /*[in]*/ long flags, + /*[in]*/ BSTR db_path ) = 0; + virtual HRESULT __stdcall CommitDB ( ) = 0; + virtual HRESULT __stdcall DeleteDBFiles ( + /*[in]*/ long flags, + /*[in]*/ BSTR db_path ) = 0; +}; + +struct __declspec(uuid("df17e91f-434a-4e75-8645-13dd56a4cc86")) +ICddbMLDBManager2 : ICddbMLDBManager +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall ExportMLDB ( + /*[in]*/ long flags, + /*[in]*/ long collection_id, + /*[in]*/ BSTR db_path, + /*[in]*/ BSTR export_path ) = 0; + virtual HRESULT __stdcall ImportMLDB ( + /*[in]*/ long flags, + /*[in]*/ long collection_id, + /*[in]*/ BSTR import_path, + /*[in]*/ BSTR db_path ) = 0; +}; + +struct __declspec(uuid("be4e7feb-ee3a-4a41-b370-ae37e656be29")) +ICddbPopularityRange : ICddbPLDataListItem +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_StartRange ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall get_EndRange ( + /*[out,retval]*/ long * pVal ) = 0; +}; + +struct __declspec(uuid("dbbc42ac-1409-4d95-98fc-7f6acb33ec15")) +ICddbPLMoreLikeThisCfg : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_TrackLimit ( + /*[out,retval]*/ unsigned int * pVal ) = 0; + virtual HRESULT __stdcall put_TrackLimit ( + /*[in]*/ unsigned int pVal ) = 0; + virtual HRESULT __stdcall get_MaxPerArtist ( + /*[out,retval]*/ unsigned int * pVal ) = 0; + virtual HRESULT __stdcall put_MaxPerArtist ( + /*[in]*/ unsigned int pVal ) = 0; + virtual HRESULT __stdcall get_MaxPerAlbum ( + /*[out,retval]*/ unsigned int * pVal ) = 0; + virtual HRESULT __stdcall put_MaxPerAlbum ( + /*[in]*/ unsigned int pVal ) = 0; + virtual HRESULT __stdcall get_Algorithm ( + /*[out,retval]*/ int * pVal ) = 0; + virtual HRESULT __stdcall put_Algorithm ( + /*[in]*/ int pVal ) = 0; + virtual HRESULT __stdcall get_Seed ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Seed ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_flags ( + /*[out,retval]*/ int * pVal ) = 0; + virtual HRESULT __stdcall put_flags ( + /*[in]*/ int pVal ) = 0; + virtual HRESULT __stdcall get_SortByField ( + /*[out,retval]*/ enum gnpl_crit_field_t * pVal ) = 0; + virtual HRESULT __stdcall put_SortByField ( + /*[in]*/ enum gnpl_crit_field_t pVal ) = 0; + virtual HRESULT __stdcall get_Option ( + /*[in]*/ BSTR optionName, + /*[out,retval]*/ unsigned int * pVal ) = 0; + virtual HRESULT __stdcall put_Option ( + /*[in]*/ BSTR optionName, + /*[in]*/ unsigned int pVal ) = 0; +}; + +struct __declspec(uuid("ba9a4ba6-1879-4a32-82c8-bd84d8fadf00")) +ICddbPlaylist25Mgr : ICddbPlaylist2Mgr +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall MoreLikeThisSong ( + /*[in]*/ BSTR filename, + /*[in]*/ struct ICddbPLMoreLikeThisCfg * pConfig, + /*[out,retval]*/ struct ICddbPL2ResultList * * ppPLResults ) = 0; + virtual HRESULT __stdcall MoreLikeTheseSongs ( + /*[in]*/ VARIANT filenamesArray, + /*[in]*/ struct ICddbPLMoreLikeThisCfg * pConfig, + /*[out,retval]*/ struct ICddbPL2ResultList * * ppPLResults ) = 0; + virtual HRESULT __stdcall MoreLikeThisArtist ( + /*[in]*/ BSTR artist_name, + /*[in]*/ struct ICddbPLMoreLikeThisCfg * pConfig, + /*[out,retval]*/ struct ICddbPL2ResultList * * ppPLResults ) = 0; + virtual HRESULT __stdcall MoreLikeThisAlbum ( + /*[in]*/ BSTR album_name, + /*[in]*/ BSTR artist_name, + /*[in]*/ struct ICddbPLMoreLikeThisCfg * pConfig, + /*[out,retval]*/ struct ICddbPL2ResultList * * ppPLResults ) = 0; + virtual HRESULT __stdcall MoreLikeThisDisc ( + /*[in]*/ struct ICddbDisc * pDisc, + /*[in]*/ struct ICddbPLMoreLikeThisCfg * pConfig, + /*[out,retval]*/ struct ICddbPL2ResultList * * ppPLResults ) = 0; + virtual HRESULT __stdcall MoreOfThisField ( + /*[in]*/ VARIANT filenamesArray, + enum gnpl_crit_field_t Field, + /*[in]*/ struct ICddbPLMoreLikeThisCfg * pConfig, + /*[out,retval]*/ struct ICddbPL2ResultList * * ppPLResults ) = 0; + virtual HRESULT __stdcall FileSetDevFieldValDate ( + /*[in]*/ BSTR filename, + /*[in]*/ int DevFieldNum, + /*[in]*/ struct ICddbPL2Timestamp * pTimestamp ) = 0; + virtual HRESULT __stdcall FileGetDevFieldValDate ( + /*[in]*/ BSTR filename, + /*[in]*/ int DevFieldNum, + /*[out,retval]*/ struct ICddbPL2Timestamp * * pDate ) = 0; + virtual HRESULT __stdcall LoadUserPLGensFromFile ( + /*[in]*/ BSTR bmlfile ) = 0; + virtual HRESULT __stdcall FileSetExtData ( + /*[in]*/ BSTR filename, + /*[in]*/ struct ICddbExtData * pExtData, + /*[in]*/ long lExtDataFlags ) = 0; + virtual HRESULT __stdcall FileGetExtData ( + /*[in]*/ BSTR filename, + /*[out]*/ struct ICddbExtData * * ppExtData, + /*[in]*/ long lExtDataFlags ) = 0; + virtual HRESULT __stdcall FileSetExtDataSerialized ( + /*[in]*/ BSTR filename, + /*[in]*/ BSTR bstrSerialized, + /*[in]*/ long lExtDataFlags ) = 0; + virtual HRESULT __stdcall FileGetExtDataSerialized ( + /*[in]*/ BSTR filename, + /*[out]*/ BSTR * pVal, + /*[in]*/ long lExtDataFlags ) = 0; + virtual HRESULT __stdcall AddFileWithTagEx ( + /*[in]*/ BSTR filename, + /*[in]*/ struct ICddbFileTag * pTag, + /*[in]*/ long lPlaylistLookupFlags ) = 0; + virtual HRESULT __stdcall AddFileWithDiscEx ( + /*[in]*/ BSTR filename, + /*[in]*/ struct ICddbDisc * pDisc, + /*[in]*/ long lTrackNum, + /*[in]*/ long lPlaylistLookupFlags ) = 0; + virtual HRESULT __stdcall RenameEntry ( + /*[in]*/ BSTR oldFilename, + /*[in]*/ BSTR newFilename ) = 0; +}; + +struct __declspec(uuid("dcf3b306-aa51-455c-9b39-51f8cb8590aa")) +ICddbPLMoreLikeThisCfg2 : ICddbPLMoreLikeThisCfg +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_MaxKilobytes ( + /*[out,retval]*/ unsigned int * pVal ) = 0; + virtual HRESULT __stdcall put_MaxKilobytes ( + /*[in]*/ unsigned int pVal ) = 0; + virtual HRESULT __stdcall get_MaxMinutes ( + /*[out,retval]*/ unsigned int * pVal ) = 0; + virtual HRESULT __stdcall put_MaxMinutes ( + /*[in]*/ unsigned int pVal ) = 0; +}; + +struct __declspec(uuid("59ce219f-46aa-4fc1-85b8-31290e454503")) +ICddbPLMoreLikeThisCfg25 : ICddbPLMoreLikeThisCfg2 +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall get_SelectionType ( + /*[out,retval]*/ gnpl_crit_selection_t * pVal ) = 0; + virtual HRESULT __stdcall put_SelectionType ( + /*[in]*/ gnpl_crit_selection_t pVal ) = 0; + virtual HRESULT __stdcall get_ExcludeList ( + /*[out,retval]*/ VARIANT * pVal ) = 0; + virtual HRESULT __stdcall put_ExcludeList ( + /*[in]*/ VARIANT pVal ) = 0; +}; + +struct __declspec(uuid("39c806ec-eb0a-4f6e-b40d-c41d92281b5e")) +CddbNSWinampPlaylist2Mgr; + // [ default ] interface ICddbPlaylist2Mgr + // [ default, source ] dispinterface DPlaylist2Events + +struct __declspec(uuid("d593724f-d0dc-431b-a395-8280d5aceccb")) +CddbPL2Criteria; + // [ default ] interface ICddbPL2Criteria + +struct __declspec(uuid("fe4c8bff-961f-42c2-bad8-808f76edde15")) +CddbPL2Timestamp; + // [ default ] interface ICddbPL2Timestamp + +struct __declspec(uuid("870a8c49-8935-430b-9ffe-175c47fb6b0b")) +CddbPL2FindData; + // [ default ] interface ICddbPL2FindData + +struct __declspec(uuid("1cb70589-414c-40a6-b108-a5f02ae4cb62")) +CddbPL2Result; + // [ default ] interface ICddbPL2Result + +struct __declspec(uuid("45f626aa-a0b4-4f3c-a173-64a7aac44670")) +CddbPL2ResultList; + // [ default ] interface ICddbPL2ResultList + +struct __declspec(uuid("684aa29d-14f5-4dd9-949f-c2ae96e7f9ac")) +CddbEra; + // [ default ] interface ICddbEra + // interface ICddbPLDataListItem + +struct __declspec(uuid("d7fbfb00-25ec-41f6-b64e-fab7668d5b75")) +CddbPLGeneratorList; + // [ default ] interface ICddbPLGeneratorList + +struct __declspec(uuid("7052a035-2aee-4d5d-be82-6b12437bfcba")) +CddbPLGenerator; + // [ default ] interface ICddbPLGenerator + +struct __declspec(uuid("b1f7d50c-a3fe-4bbb-9389-25b78d70b593")) +CddbPLGenCriteria; + // [ default ] interface ICddbPLGenCriteria + +struct __declspec(uuid("783dcf23-fde3-44e1-ad01-c8100596a81b")) +CddbPLGenLimit; + // [ default ] interface ICddbPLGenLimit + +struct __declspec(uuid("7f403f21-383b-4faf-94c7-e2c2f487f926")) +CddbPLGenCriteriaList; + // [ default ] interface ICddbPLGenCriteriaList + +struct __declspec(uuid("f78ae80a-3ef5-498e-bf16-7696f7d31fed")) +CddbPLGenLimitList; + // [ default ] interface ICddbPLGenLimitList + +struct __declspec(uuid("bf1caa94-1d1c-4ae7-b94c-10fdc05f493d")) +CddbPLGenRank; + // [ default ] interface ICddbPLGenRank + +struct __declspec(uuid("654e1149-060b-4fd1-af4b-07e1d2a83ae0")) +CddbPLInfo; + // [ default ] interface ICddbPLInfo + +struct __declspec(uuid("0f81de5a-2181-4b4a-af32-de4f21409bee")) +CddbPLDataList; + // [ default ] interface ICddbPLDataList + +struct __declspec(uuid("56fce24a-250a-4399-bb0c-f8c5a5169f86")) +CddbPLDataListItem; + // [ default ] interface ICddbPLDataListItem + +struct __declspec(uuid("671d0917-5346-4a5e-8100-0e75c423fdab")) +CddbPLIDList; + // [ default ] interface ICddbPLIDList + +struct __declspec(uuid("c367baf6-6587-45a8-b774-aa20d6aa5ce4")) +CddbArtistTypeList; + // [ default ] interface ICddbArtistTypeList + // interface ICddbPLDataList + +struct __declspec(uuid("642e727f-4ba8-4514-972b-d1d554d62d2f")) +CddbOriginsList; + // [ default ] interface ICddbOriginsList + // interface ICddbPLDataList + +struct __declspec(uuid("09e3539f-d0cc-4913-a025-104323c2caab")) +CddbGenreDisplayList; + // [ default ] interface ICddbGenreDisplayList + // interface ICddbPLDataList + +struct __declspec(uuid("f613382c-27f6-42ca-9b9b-1f1890c19c03")) +CddbEraDisplayList; + // [ default ] interface ICddbEraDisplayList + // interface ICddbPLDataList + +struct __declspec(uuid("52380d21-992d-416f-97d2-3a2dd46ad7ea")) +CddbPopularityRangeList; + // [ default ] interface ICddbPopularityRangeList + +struct __declspec(uuid("d374ceca-3e86-4ab4-87a9-3ff7e03e3cad")) +CddbMLDBManager; + // [ default ] interface ICddbMLDBManager + +struct __declspec(uuid("b0204aad-f796-4221-acf3-c24fcee9421a")) +CddbPopularityRange; + // [ default ] interface ICddbPopularityRange + // interface ICddbPLDataListItem + +struct __declspec(uuid("b3f484a1-e3b4-4ad5-a9a9-52592a08dbd2")) +CddbPLMoreLikeThisCfg; + // [ default ] interface ICddbPLMoreLikeThisCfg + +// +// Named GUID constants initializations +// + +extern "C" const GUID __declspec(selectany) LIBID_CDDBPLAYLIST2LibNSWinamp = + {0x7919d0ca,0x3043,0x4c02,{0xb7,0x78,0xab,0x2b,0xf4,0x93,0x1f,0x58}}; +extern "C" const GUID __declspec(selectany) DIID_DPlaylist2Events = + {0xa58522b9,0x6b50,0x4033,{0x92,0x46,0x1e,0xc5,0x70,0x1e,0xd8,0x5c}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPL2Criteria = + {0x223e85f1,0xb287,0x4571,{0xaa,0x1a,0xa6,0xd6,0x14,0x4d,0x06,0x96}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPL2Result = + {0x6ac694d3,0x4e30,0x47f3,{0x93,0xdd,0x23,0x6d,0xbb,0x30,0x87,0x15}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPL2ResultList = + {0x29327d31,0x2587,0x48c6,{0x8b,0x11,0x3f,0x57,0xb0,0x96,0xc2,0xea}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPL2Timestamp = + {0xc0e6e3a0,0x2fcf,0x4a33,{0x8e,0x55,0x19,0x92,0x0b,0x83,0xd7,0x59}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPL2FindData = + {0xb0c8851a,0x0209,0x419b,{0x84,0xbc,0x1d,0x03,0xe6,0xa0,0xdc,0x86}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPLGenCriteria = + {0x1754c0c9,0x24b5,0x4ed6,{0x8e,0xea,0x52,0x62,0x0e,0xd1,0x6e,0x58}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPLGenCriteriaList = + {0xa9f50e0f,0x859d,0x4397,{0x95,0x9e,0x3b,0xb7,0xaa,0xcb,0xb5,0x64}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPLGenLimit = + {0xd79ffaf8,0x1bc2,0x4bde,{0xb5,0xf7,0x1b,0xaa,0x89,0x98,0x65,0xd2}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPLGenLimitList = + {0x8d951c2e,0x56fb,0x4e0b,{0x90,0x3c,0xfe,0x73,0x8d,0xa5,0x73,0xc1}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPLGenRank = + {0x0281a5e7,0xbd75,0x4ed3,{0x98,0x72,0x33,0x31,0x15,0x7b,0x92,0x3d}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPLGenerator = + {0x5311019a,0x98c9,0x4377,{0xb8,0xcf,0x72,0xc0,0x0a,0x55,0x91,0x4a}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPLIDList = + {0x5a4471da,0x0283,0x449e,{0x8e,0xe2,0xb0,0x71,0x6e,0x3c,0x16,0x8b}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPLDataListItem = + {0x53881256,0x92a2,0x4292,{0x8e,0x24,0x68,0xca,0x39,0x92,0xe3,0x37}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPLDataList = + {0x5e484009,0x3e2b,0x426a,{0xb4,0x96,0xae,0xbc,0xac,0xd6,0xde,0xb7}}; +extern "C" const GUID __declspec(selectany) IID_ICddbGenreDisplayList = + {0x3bfa2b55,0x49a3,0x42a0,{0xbd,0x2d,0x4d,0x60,0xd9,0xb9,0xc9,0x3f}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPLGeneratorList = + {0xf8d8ee69,0xe17d,0x442f,{0xbb,0x11,0xd8,0xa1,0xa2,0x14,0xfe,0xba}}; +extern "C" const GUID __declspec(selectany) IID_ICddbArtistTypeList = + {0x84e284d8,0x34cc,0x4337,{0xb1,0xdc,0xd7,0xd6,0xf0,0xe4,0x31,0xcb}}; +extern "C" const GUID __declspec(selectany) IID_ICddbOriginsList = + {0xba5342dc,0x41d7,0x4954,{0x95,0x01,0xfd,0xc6,0xac,0xd0,0xdc,0x2f}}; +extern "C" const GUID __declspec(selectany) IID_ICddbEra = + {0xa2c6c4ee,0x32fe,0x4bb7,{0x8a,0x47,0xdc,0x61,0x50,0x34,0xbd,0x7c}}; +extern "C" const GUID __declspec(selectany) IID_ICddbEraDisplayList = + {0x15d93d1e,0x50f1,0x444c,{0x9e,0x76,0xe4,0xc8,0xac,0xa0,0xa2,0x9d}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPopularityRangeList = + {0x3580dee2,0xb1d1,0x46ae,{0x88,0xb0,0xcb,0xac,0x62,0xd1,0xe1,0x57}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPlaylist2Mgr = + {0x34655d2e,0x8550,0x421f,{0xa6,0x7d,0xa0,0x02,0xf1,0x4d,0x8d,0x5e}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPLGenWeightedRank = + {0xb282f975,0xac68,0x41c1,{0xbd,0xed,0xde,0x68,0x3b,0xb8,0xe4,0x03}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPL25Generator = + {0x6e1eeee1,0x7227,0x4bad,{0xb9,0x55,0xb8,0x4b,0xea,0x91,0x4a,0x5a}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPLGen25Criteria = + {0x3ffd3787,0xfe3a,0x4f44,{0xbe,0x99,0x42,0x89,0x87,0x5e,0xb9,0x25}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPLInfo = + {0xe0d26898,0xf166,0x4f42,{0x9a,0x6a,0x5d,0x2e,0x34,0x6e,0xd6,0xed}}; +extern "C" const GUID __declspec(selectany) IID_ICddbMLDBManager = + {0xf7bcb924,0x06da,0x41e2,{0xaf,0x0c,0xc2,0x49,0xc1,0x36,0x30,0x3a}}; +extern "C" const GUID __declspec(selectany) IID_ICddbMLDBManager2 = + {0xdf17e91f,0x434a,0x4e75,{0x86,0x45,0x13,0xdd,0x56,0xa4,0xcc,0x86}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPopularityRange = + {0xbe4e7feb,0xee3a,0x4a41,{0xb3,0x70,0xae,0x37,0xe6,0x56,0xbe,0x29}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPLMoreLikeThisCfg = + {0xdbbc42ac,0x1409,0x4d95,{0x98,0xfc,0x7f,0x6a,0xcb,0x33,0xec,0x15}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPlaylist25Mgr = + {0xba9a4ba6,0x1879,0x4a32,{0x82,0xc8,0xbd,0x84,0xd8,0xfa,0xdf,0x00}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPLMoreLikeThisCfg2 = + {0xdcf3b306,0xaa51,0x455c,{0x9b,0x39,0x51,0xf8,0xcb,0x85,0x90,0xaa}}; +extern "C" const GUID __declspec(selectany) IID_ICddbPLMoreLikeThisCfg25 = + {0x59ce219f,0x46aa,0x4fc1,{0x85,0xb8,0x31,0x29,0x0e,0x45,0x45,0x03}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbNSWinampPlaylist2Mgr = + {0x39c806ec,0xeb0a,0x4f6e,{0xb4,0x0d,0xc4,0x1d,0x92,0x28,0x1b,0x5e}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbPL2Criteria = + {0xd593724f,0xd0dc,0x431b,{0xa3,0x95,0x82,0x80,0xd5,0xac,0xec,0xcb}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbPL2Timestamp = + {0xfe4c8bff,0x961f,0x42c2,{0xba,0xd8,0x80,0x8f,0x76,0xed,0xde,0x15}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbPL2FindData = + {0x870a8c49,0x8935,0x430b,{0x9f,0xfe,0x17,0x5c,0x47,0xfb,0x6b,0x0b}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbPL2Result = + {0x1cb70589,0x414c,0x40a6,{0xb1,0x08,0xa5,0xf0,0x2a,0xe4,0xcb,0x62}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbPL2ResultList = + {0x45f626aa,0xa0b4,0x4f3c,{0xa1,0x73,0x64,0xa7,0xaa,0xc4,0x46,0x70}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbEra = + {0x684aa29d,0x14f5,0x4dd9,{0x94,0x9f,0xc2,0xae,0x96,0xe7,0xf9,0xac}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbPLGeneratorList = + {0xd7fbfb00,0x25ec,0x41f6,{0xb6,0x4e,0xfa,0xb7,0x66,0x8d,0x5b,0x75}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbPLGenerator = + {0x7052a035,0x2aee,0x4d5d,{0xbe,0x82,0x6b,0x12,0x43,0x7b,0xfc,0xba}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbPLGenCriteria = + {0xb1f7d50c,0xa3fe,0x4bbb,{0x93,0x89,0x25,0xb7,0x8d,0x70,0xb5,0x93}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbPLGenLimit = + {0x783dcf23,0xfde3,0x44e1,{0xad,0x01,0xc8,0x10,0x05,0x96,0xa8,0x1b}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbPLGenCriteriaList = + {0x7f403f21,0x383b,0x4faf,{0x94,0xc7,0xe2,0xc2,0xf4,0x87,0xf9,0x26}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbPLGenLimitList = + {0xf78ae80a,0x3ef5,0x498e,{0xbf,0x16,0x76,0x96,0xf7,0xd3,0x1f,0xed}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbPLGenRank = + {0xbf1caa94,0x1d1c,0x4ae7,{0xb9,0x4c,0x10,0xfd,0xc0,0x5f,0x49,0x3d}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbPLInfo = + {0x654e1149,0x060b,0x4fd1,{0xaf,0x4b,0x07,0xe1,0xd2,0xa8,0x3a,0xe0}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbPLDataList = + {0x0f81de5a,0x2181,0x4b4a,{0xaf,0x32,0xde,0x4f,0x21,0x40,0x9b,0xee}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbPLDataListItem = + {0x56fce24a,0x250a,0x4399,{0xbb,0x0c,0xf8,0xc5,0xa5,0x16,0x9f,0x86}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbPLIDList = + {0x671d0917,0x5346,0x4a5e,{0x81,0x00,0x0e,0x75,0xc4,0x23,0xfd,0xab}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbArtistTypeList = + {0xc367baf6,0x6587,0x45a8,{0xb7,0x74,0xaa,0x20,0xd6,0xaa,0x5c,0xe4}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbOriginsList = + {0x642e727f,0x4ba8,0x4514,{0x97,0x2b,0xd1,0xd5,0x54,0xd6,0x2d,0x2f}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbGenreDisplayList = + {0x09e3539f,0xd0cc,0x4913,{0xa0,0x25,0x10,0x43,0x23,0xc2,0xca,0xab}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbEraDisplayList = + {0xf613382c,0x27f6,0x42ca,{0x9b,0x9b,0x1f,0x18,0x90,0xc1,0x9c,0x03}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbPopularityRangeList = + {0x52380d21,0x992d,0x416f,{0x97,0xd2,0x3a,0x2d,0xd4,0x6a,0xd7,0xea}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbMLDBManager = + {0xd374ceca,0x3e86,0x4ab4,{0x87,0xa9,0x3f,0xf7,0xe0,0x3e,0x3c,0xad}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbPopularityRange = + {0xb0204aad,0xf796,0x4221,{0xac,0xf3,0xc2,0x4f,0xce,0xe9,0x42,0x1a}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbPLMoreLikeThisCfg = + {0xb3f484a1,0xe3b4,0x4ad5,{0xa9,0xa9,0x52,0x59,0x2a,0x08,0xdb,0xd2}}; + +#pragma pack(pop) diff --git a/Src/gracenote/cddbuiwinamp.tlh b/Src/gracenote/cddbuiwinamp.tlh new file mode 100644 index 00000000..219cfc89 --- /dev/null +++ b/Src/gracenote/cddbuiwinamp.tlh @@ -0,0 +1,268 @@ +// Created by Microsoft (R) C/C++ Compiler Version 15.00.30729.01 (1a958924). +// +// f:\sandbox\20131028_225933\winamp\release\cddbuiwinamp.tlh +// +// C++ source equivalent of Win32 type library ../gracenote/CDDBUIWinamp.dll +// compiler-generated file created 10/28/13 at 23:18:29 - DO NOT EDIT! + +#pragma once +#pragma pack(push, 8) + +#include <comdef.h> + +// +// Forward references and typedefs +// + +struct __declspec(uuid("49f3ccb6-3ba4-4b64-9451-ccf4d42581b1")) +/* LIBID */ __CDDBUICONTROLLibNSWinamp; +struct __declspec(uuid("92892c0b-8da6-49df-b484-d5571c7e48cd")) +/* dual interface */ ICddbUI; +struct __declspec(uuid("03396e62-5abb-4e75-af96-5cc6171354ba")) +/* dual interface */ ICddbInfoWindow2; +struct __declspec(uuid("c50aaf00-4954-405f-abf8-1ff32be762bb")) +/* dual interface */ ICddbUIOptions2; +struct __declspec(uuid("038841ae-24d2-4a27-a69d-21a58e4b1077")) +/* dual interface */ ICddbUI2; +struct /* coclass */ CddbNSWinampUI; +struct /* coclass */ CddbInfoWindow2; +struct /* coclass */ CddbUIOptions2; +struct /* coclass */ CddbUI2; + +// +// Smart pointer typedef declarations +// + +_COM_SMARTPTR_TYPEDEF(ICddbUI, __uuidof(ICddbUI)); +_COM_SMARTPTR_TYPEDEF(ICddbInfoWindow2, __uuidof(ICddbInfoWindow2)); +_COM_SMARTPTR_TYPEDEF(ICddbUIOptions2, __uuidof(ICddbUIOptions2)); +_COM_SMARTPTR_TYPEDEF(ICddbUI2, __uuidof(ICddbUI2)); + +// +// Type library items +// + +struct __declspec(uuid("92892c0b-8da6-49df-b484-d5571c7e48cd")) +ICddbUI : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall Initialize ( + /*[in]*/ IUnknown * Control, + /*[in]*/ long hWND, + /*[in]*/ long Flags ) = 0; + virtual HRESULT __stdcall SetParent ( + /*[in]*/ long hWND ) = 0; + virtual HRESULT __stdcall Shutdown ( ) = 0; + virtual HRESULT __stdcall InvokeInfoBrowser ( + /*[in]*/ IUnknown * Disc, + /*[in]*/ IUnknown * URL, + /*[in]*/ long Flags, + /*[in,out]*/ long * pHWND ) = 0; + virtual HRESULT __stdcall InvokeSubmitDisc ( + /*[in]*/ BSTR MediaToc, + /*[in]*/ long MciDeviceId, + /*[in]*/ long Flags, + /*[in,out]*/ long * pHWND, + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall DisplayDiscInfo ( + /*[in]*/ IUnknown * Disc, + /*[in]*/ long Flags, + /*[in,out]*/ long * pHWND, + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall InvokeDiscInfo ( + /*[in]*/ BSTR MediaToc, + /*[in]*/ BSTR MediaId, + /*[in]*/ BSTR MuiId, + /*[in]*/ long MciDeviceId, + /*[in]*/ long Flags, + /*[in,out]*/ long * pHWND, + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall InvokeNoMatchDialog ( + /*[in]*/ long Flags, + /*[in,out]*/ long * pHWND, + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall InvokeFuzzyMatchDialog ( + /*[in]*/ IUnknown * Discs, + /*[in]*/ BSTR Toc, + /*[in]*/ long Flags, + /*[in,out]*/ long * pHWND, + /*[out,retval]*/ IUnknown * * pVal ) = 0; + virtual HRESULT __stdcall InvokeOptionsDialog ( + /*[in]*/ IUnknown * Options, + /*[in]*/ long Flags, + /*[in,out]*/ long * pHWND, + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall InvokeUserRegDialog ( + /*[in]*/ IUnknown * UserInfo, + /*[in]*/ long Flags, + /*[in,out]*/ long * pHWND, + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall InvokePopupMenu ( + /*[in]*/ long Flags, + /*[in]*/ IUnknown * URLList, + /*[in]*/ IUnknown * DiscURLList, + /*[in,out]*/ long * pHWND ) = 0; + virtual HRESULT __stdcall InvokeAboutCddbDialog ( + /*[in]*/ long Flags, + /*[in,out]*/ long * pHWND ) = 0; + virtual HRESULT __stdcall DrawLogo ( + /*[in]*/ void * DrawInfo ) = 0; + virtual HRESULT __stdcall GetUrlFromMenu ( + /*[in]*/ long MenuId, + /*[out,retval]*/ IUnknown * * pVal ) = 0; + virtual HRESULT __stdcall StartConnectDlg ( + /*[in]*/ long Flags, + /*[in,out]*/ long * hWND ) = 0; + virtual HRESULT __stdcall StopConnectDlg ( + /*[in]*/ long Flags ) = 0; + virtual HRESULT __stdcall SetUILanguage ( + /*[in]*/ BSTR Id, + /*[in]*/ BSTR DllName, + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall GetUIResourceInstance ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall SetInfoDisc ( + /*[in]*/ IUnknown * Disc ) = 0; + virtual HRESULT __stdcall GetUIObject ( + /*[in]*/ long Id, + /*[out,retval]*/ void * * pVal ) = 0; +}; + +struct __declspec(uuid("03396e62-5abb-4e75-af96-5cc6171354ba")) +ICddbInfoWindow2 : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall Init ( + /*[in]*/ long hWND, + /*[in]*/ long Left, + /*[in]*/ long Top, + /*[in]*/ long Right, + /*[in]*/ long Bottom ) = 0; + virtual HRESULT __stdcall SetRawURL ( + /*[in]*/ BSTR RawURL ) = 0; + virtual HRESULT __stdcall GetHwnd ( + /*[out]*/ long * pHWND ) = 0; + virtual HRESULT __stdcall SetDisc ( + /*[in]*/ IUnknown * Disc ) = 0; + virtual HRESULT __stdcall SetURL ( + /*[in]*/ IUnknown * URL ) = 0; + virtual HRESULT __stdcall Refresh ( ) = 0; + virtual HRESULT __stdcall Shutdown ( ) = 0; + virtual HRESULT __stdcall SetAdPosition ( + /*[in]*/ BSTR Position ) = 0; +}; + +struct __declspec(uuid("c50aaf00-4954-405f-abf8-1ff32be762bb")) +ICddbUIOptions2 : IDispatch +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall GetCurrent ( + /*[in]*/ long Flags ) = 0; + virtual HRESULT __stdcall SetCurrent ( + /*[in]*/ long Flags ) = 0; + virtual HRESULT __stdcall get_ParentHWND ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_ParentHWND ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Left ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Left ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Top ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Top ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Right ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Right ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Bottom ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Bottom ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_ResourceHINSTANCE ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_ResourceHINSTANCE ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_ProgressResourceID ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_ProgressResourceID ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_StaticResourceID ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_StaticResourceID ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_Frames ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_Frames ( + /*[in]*/ long pVal ) = 0; + virtual HRESULT __stdcall get_BonusResourceID ( + /*[out,retval]*/ long * pVal ) = 0; + virtual HRESULT __stdcall put_BonusResourceID ( + /*[in]*/ long pVal ) = 0; +}; + +struct __declspec(uuid("038841ae-24d2-4a27-a69d-21a58e4b1077")) +ICddbUI2 : ICddbUI +{ + // + // Raw methods provided by interface + // + + virtual HRESULT __stdcall InvokeFuzzyMatchDialog2 ( + /*[in]*/ IUnknown * Discs, + /*[in,out]*/ long * Flags, + /*[in,out]*/ long * pHWND, + /*[out]*/ long * Selection ) = 0; +}; + +struct __declspec(uuid("75ae99c2-fe58-4aa4-8135-11d794adfd48")) +CddbNSWinampUI; + // [ default ] interface ICddbUI + +struct __declspec(uuid("4274782f-e631-487b-bc58-34f36a2b9203")) +CddbInfoWindow2; + // [ default ] interface ICddbInfoWindow2 + +struct __declspec(uuid("a68d109d-ab8e-4476-8ba8-bce0879c4f8f")) +CddbUIOptions2; + // [ default ] interface ICddbUIOptions2 + +struct __declspec(uuid("4d60fc87-14b0-48b3-93c2-5967b0fb6f96")) +CddbUI2; + // [ default ] interface ICddbUI2 + // interface ICddbUI + +// +// Named GUID constants initializations +// + +extern "C" const GUID __declspec(selectany) LIBID_CDDBUICONTROLLibNSWinamp = + {0x49f3ccb6,0x3ba4,0x4b64,{0x94,0x51,0xcc,0xf4,0xd4,0x25,0x81,0xb1}}; +extern "C" const GUID __declspec(selectany) IID_ICddbUI = + {0x92892c0b,0x8da6,0x49df,{0xb4,0x84,0xd5,0x57,0x1c,0x7e,0x48,0xcd}}; +extern "C" const GUID __declspec(selectany) IID_ICddbInfoWindow2 = + {0x03396e62,0x5abb,0x4e75,{0xaf,0x96,0x5c,0xc6,0x17,0x13,0x54,0xba}}; +extern "C" const GUID __declspec(selectany) IID_ICddbUIOptions2 = + {0xc50aaf00,0x4954,0x405f,{0xab,0xf8,0x1f,0xf3,0x2b,0xe7,0x62,0xbb}}; +extern "C" const GUID __declspec(selectany) IID_ICddbUI2 = + {0x038841ae,0x24d2,0x4a27,{0xa6,0x9d,0x21,0xa5,0x8e,0x4b,0x10,0x77}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbNSWinampUI = + {0x75ae99c2,0xfe58,0x4aa4,{0x81,0x35,0x11,0xd7,0x94,0xad,0xfd,0x48}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbInfoWindow2 = + {0x4274782f,0xe631,0x487b,{0xbc,0x58,0x34,0xf3,0x6a,0x2b,0x92,0x03}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbUIOptions2 = + {0xa68d109d,0xab8e,0x4476,{0x8b,0xa8,0xbc,0xe0,0x87,0x9c,0x4f,0x8f}}; +extern "C" const GUID __declspec(selectany) CLSID_CddbUI2 = + {0x4d60fc87,0x14b0,0x48b3,{0x93,0xc2,0x59,0x67,0xb0,0xfb,0x6f,0x96}}; + +#pragma pack(pop) diff --git a/Src/gracenote/gracenote.h b/Src/gracenote/gracenote.h new file mode 100644 index 00000000..c4f05b36 --- /dev/null +++ b/Src/gracenote/gracenote.h @@ -0,0 +1,24 @@ +#ifndef NULLSOFT_GRACENOTE_H +#define NULLSOFT_GRACENOTE_H + +//#pragma warning(disable: 4278) + +#ifdef DeleteFile +#undef DeleteFile +#endif + +#ifndef IGNORE_API_GRACENOTE +#include "cddbcontrolwinamp.tlh" +#include "cddbmusicidwinamp.tlh" +#include "cddbplaylist2winamp.tlh" +#include "cddbuiwinamp.tlh" +#endif + +/*#import "../gracenote/CDDBUIWinamp.dll" no_namespace, named_guids, raw_interfaces_only +#import "../gracenote/CDDBControlWinamp.dll" no_namespace, named_guids, raw_interfaces_only +#import "../gracenote/CddbPlaylist2Winamp.dll" no_namespace, named_guids, raw_interfaces_only +#import "../gracenote/CddbMusicIDWinamp.dll" no_namespace, named_guids, raw_interfaces_only*/ +//#import "../gracenote/CddbLinkWinamp.dll" no_namespace, named_guids, raw_interfaces_only +//#pragma warning(default: 4278) + +#endif
\ No newline at end of file diff --git a/Src/gracenote/gracenote.rc b/Src/gracenote/gracenote.rc new file mode 100644 index 00000000..094de932 --- /dev/null +++ b/Src/gracenote/gracenote.rc @@ -0,0 +1,114 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 5,6,4,0 + PRODUCTVERSION 5,6,4,0 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904e4" + BEGIN + VALUE "CompanyName", "Nullsoft, Inc." + VALUE "FileDescription", "Winamp 5.x System Component" + VALUE "FileVersion", "5, 6, 4, 0" + VALUE "InternalName", "gracenote.w5s" + VALUE "LegalCopyright", "Copyright © 2005-2013 Nullsoft, Inc." + VALUE "OriginalFilename", "gracenote.w5s" + VALUE "ProductName", "Winamp Gracenote Support Service" + VALUE "ProductVersion", "5, 6, 4, 0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// English (U.K.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + +#endif // English (U.K.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/Src/gracenote/gracenote.sln b/Src/gracenote/gracenote.sln new file mode 100644 index 00000000..1d47c886 --- /dev/null +++ b/Src/gracenote/gracenote.sln @@ -0,0 +1,30 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29613.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gracenote", "gracenote.vcxproj", "{7EF5B87B-0298-492A-B3BB-FAA8102A2274}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7EF5B87B-0298-492A-B3BB-FAA8102A2274}.Debug|Win32.ActiveCfg = Debug|Win32 + {7EF5B87B-0298-492A-B3BB-FAA8102A2274}.Debug|Win32.Build.0 = Debug|Win32 + {7EF5B87B-0298-492A-B3BB-FAA8102A2274}.Debug|x64.ActiveCfg = Debug|x64 + {7EF5B87B-0298-492A-B3BB-FAA8102A2274}.Debug|x64.Build.0 = Debug|x64 + {7EF5B87B-0298-492A-B3BB-FAA8102A2274}.Release|Win32.ActiveCfg = Release|Win32 + {7EF5B87B-0298-492A-B3BB-FAA8102A2274}.Release|Win32.Build.0 = Release|Win32 + {7EF5B87B-0298-492A-B3BB-FAA8102A2274}.Release|x64.ActiveCfg = Release|x64 + {7EF5B87B-0298-492A-B3BB-FAA8102A2274}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {6E4A6169-962E-436A-A498-F1A575FD4A3D} + EndGlobalSection +EndGlobal diff --git a/Src/gracenote/gracenote.vcxproj b/Src/gracenote/gracenote.vcxproj new file mode 100644 index 00000000..af2d048a --- /dev/null +++ b/Src/gracenote/gracenote.vcxproj @@ -0,0 +1,313 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{7EF5B87B-0298-492A-B3BB-FAA8102A2274}</ProjectGuid> + <RootNamespace>gracenote</RootNamespace> + <WindowsTargetPlatformVersion>10.0.19041.0</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>$(PlatformShortName)_$(Configuration)\</OutDir> + <IntDir>$(PlatformShortName)_$(Configuration)\</IntDir> + <TargetExt>.w5s</TargetExt> + <IncludePath>$(IncludePath)</IncludePath> + <LibraryPath>$(LibraryPath)</LibraryPath> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>$(PlatformShortName)_$(Configuration)\</OutDir> + <IntDir>$(PlatformShortName)_$(Configuration)\</IntDir> + <TargetExt>.w5s</TargetExt> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>$(PlatformShortName)_$(Configuration)\</OutDir> + <IntDir>$(PlatformShortName)_$(Configuration)\</IntDir> + <TargetExt>.w5s</TargetExt> + <IncludePath>$(IncludePath)</IncludePath> + <LibraryPath>$(LibraryPath)</LibraryPath> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>$(PlatformShortName)_$(Configuration)\</OutDir> + <IntDir>$(PlatformShortName)_$(Configuration)\</IntDir> + <TargetExt>.w5s</TargetExt> + </PropertyGroup> + <PropertyGroup Label="Vcpkg"> + <VcpkgEnableManifest>false</VcpkgEnableManifest> + </PropertyGroup> + <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <VcpkgInstalledDir> + </VcpkgInstalledDir> + <VcpkgUseStatic>false</VcpkgUseStatic> + <VcpkgConfiguration>Debug</VcpkgConfiguration> + <VcpkgTriplet>x86-windows-static-md</VcpkgTriplet> + </PropertyGroup> + <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <VcpkgInstalledDir> + </VcpkgInstalledDir> + <VcpkgUseStatic>false</VcpkgUseStatic> + <VcpkgTriplet>x86-windows-static-md</VcpkgTriplet> + </PropertyGroup> + <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <VcpkgInstalledDir> + </VcpkgInstalledDir> + <VcpkgUseStatic>false</VcpkgUseStatic> + <VcpkgTriplet>x86-windows-static-md</VcpkgTriplet> + <VcpkgConfiguration>Debug</VcpkgConfiguration> + </PropertyGroup> + <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <VcpkgInstalledDir> + </VcpkgInstalledDir> + <VcpkgUseStatic>false</VcpkgUseStatic> + <VcpkgTriplet>x86-windows-static-md</VcpkgTriplet> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>../Wasabi;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;GRACENOTE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>false</MinimalRebuild> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + </ClCompile> + <Link> + <AdditionalDependencies>shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile> + <SubSystem>Windows</SubSystem> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <ImportLibrary>$(ProjectDir)x86_Debug\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers> + <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + </Link> + <PostBuildEvent> + <Command>xcopy /Y /D $(OutDir)$(TargetName)$(TargetExt) ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\System\ +xcopy /Y /D $(ProjectDir)Cddbx1.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)Cddbx2.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)Cddbx3.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)Cddbx4.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)Cddbx5.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CddbWOManagerWinamp.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CDDBUIWinamp.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CddbPlaylist2Winamp.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CddbMusicIDWinamp.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CddbMusicIDUIWinamp.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CddbLinkWinamp.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CDDBControlWinamp.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +</Command> + <Message>Post build event: 'xcopy /Y /D $(OutDir)$(TargetName)$(TargetExt) ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\System\'</Message> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>../Wasabi;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN64;_DEBUG;_WINDOWS;_USRDLL;GRACENOTE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>false</MinimalRebuild> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + </ClCompile> + <Link> + <AdditionalDependencies>shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile> + <SubSystem>Windows</SubSystem> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <ImportLibrary>$(ProjectDir)x64_Debug\$(ProjectName).lib</ImportLibrary> + <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers> + <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + </Link> + <PostBuildEvent> + <Command>xcopy /Y /D $(OutDir)$(TargetName)$(TargetExt) ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\System\ +xcopy /Y /D $(ProjectDir)Cddbx1.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)Cddbx2.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)Cddbx3.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)Cddbx4.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)Cddbx5.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CddbWOManagerWinamp.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CDDBUIWinamp.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CddbPlaylist2Winamp.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CddbMusicIDWinamp.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CddbMusicIDUIWinamp.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CddbLinkWinamp.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CDDBControlWinamp.dll ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +</Command> + <Message>Post build event: 'xcopy /Y /D $(OutDir)$(TargetName)$(TargetExt) ..\..\Build\Winamp_$(PlatformShortName)_$(Configuration)\System\'</Message> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <Optimization>MinSpace</Optimization> + <FavorSizeOrSpeed>Size</FavorSizeOrSpeed> + <AdditionalIncludeDirectories>../Wasabi;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;GRACENOTE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <BufferSecurityCheck>true</BufferSecurityCheck> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>None</DebugInformationFormat> + <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <AdditionalDependencies>shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile> + <DelayLoadDLLs>ole32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> + <GenerateDebugInformation>false</GenerateDebugInformation> + <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <ImportLibrary>$(ProjectDir)x86_Release\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers> + <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + </Link> + <PostBuildEvent> + <Command> + </Command> + <Message> + </Message> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <Optimization>MinSpace</Optimization> + <FavorSizeOrSpeed>Size</FavorSizeOrSpeed> + <AdditionalIncludeDirectories>../Wasabi;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN64;NDEBUG;_WINDOWS;_USRDLL;GRACENOTE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <BufferSecurityCheck>true</BufferSecurityCheck> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>None</DebugInformationFormat> + <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <AdditionalDependencies>shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile> + <DelayLoadDLLs>ole32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> + <GenerateDebugInformation>false</GenerateDebugInformation> + <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <ImportLibrary>$(ProjectDir)x64_Release\$(ProjectName).lib</ImportLibrary> + <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers> + <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + </Link> + <PostBuildEvent> + <Command>xcopy /Y /D $(OutDir)*.w5s ..\..\..\Winamp_$(PlatformShortName)_$(Configuration)\System\ +xcopy /Y /D $(ProjectDir)Cddbx1.dll ..\..\..\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)Cddbx2.dll ..\..\..\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)Cddbx3.dll ..\..\..\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)Cddbx4.dll ..\..\..\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)Cddbx5.dll ..\..\..\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CddbWOManagerWinamp.dll ..\..\..\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CDDBUIWinamp.dll ..\..\..\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CddbPlaylist2Winamp.dll ..\..\..\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CddbMusicIDWinamp.dll ..\..\..\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CddbMusicIDUIWinamp.dll ..\..\..\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CddbLinkWinamp.dll ..\..\..\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +xcopy /Y /D $(ProjectDir)CDDBControlWinamp.dll ..\..\..\Winamp_$(PlatformShortName)_$(Configuration)\plugins\Gracenote\ +</Command> + <Message>Post build event: 'xcopy /Y /D $(OutDir)*.w5s ..\..\..\Winamp_$(PlatformShortName)_$(Configuration)\System\'</Message> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemGroup> + <ClInclude Include="api.h" /> + <ClInclude Include="api_gracenote.h" /> + <ClInclude Include="gracenote.h" /> + <ClInclude Include="GracenoteApi.h" /> + <ClInclude Include="GracenoteFactory.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="w5s.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="api_gracenote.cpp" /> + <ClCompile Include="GracenoteApi.cpp" /> + <ClCompile Include="GracenoteFactory.cpp" /> + <ClCompile Include="w5s.cpp" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="gracenote.rc" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\Wasabi\Wasabi.vcxproj"> + <Project>{3e0bfa8a-b86a-42e9-a33f-ec294f823f7f}</Project> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/Src/gracenote/gracenote.vcxproj.filters b/Src/gracenote/gracenote.vcxproj.filters new file mode 100644 index 00000000..627ebd36 --- /dev/null +++ b/Src/gracenote/gracenote.vcxproj.filters @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <ClCompile Include="GracenoteApi.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="api_gracenote.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="w5s.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="GracenoteFactory.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="api.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="api_gracenote.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="gracenote.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="GracenoteApi.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="GracenoteFactory.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="resource.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="w5s.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <Filter Include="Header Files"> + <UniqueIdentifier>{a4cb6f02-fd13-416b-a55e-2b940de4df0a}</UniqueIdentifier> + </Filter> + <Filter Include="Ressource Files"> + <UniqueIdentifier>{8b36e9e3-e90b-46a0-8833-0e2e16fc937a}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files"> + <UniqueIdentifier>{1bd96244-031a-47d3-87a2-5a97f1aaca68}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="gracenote.rc"> + <Filter>Ressource Files</Filter> + </ResourceCompile> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/Src/gracenote/resource.h b/Src/gracenote/resource.h new file mode 100644 index 00000000..bb27887c --- /dev/null +++ b/Src/gracenote/resource.h @@ -0,0 +1,14 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by gracenote.rc + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 101 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/Src/gracenote/w5s.cpp b/Src/gracenote/w5s.cpp new file mode 100644 index 00000000..f08e5077 --- /dev/null +++ b/Src/gracenote/w5s.cpp @@ -0,0 +1,74 @@ +#include "api.h" +#include "w5s.h" +#include "GracenoteFactory.h" +#include <bfc/platform/export.h> +#include <api/service/waservicefactory.h> +#include "GracenoteApi.h" + +template <class api_T> +void ServiceBuild(api_T *&api_t, GUID factoryGUID_t) +{ + if (WASABI_API_SVC) + { + waServiceFactory *factory = WASABI_API_SVC->service_getServiceByGuid(factoryGUID_t); + if (factory) + api_t = reinterpret_cast<api_T *>( factory->getInterface() ); + } +} + +template <class api_T> +void ServiceRelease(api_T *api_t, GUID factoryGUID_t) +{ + if (WASABI_API_SVC && api_t) + { + waServiceFactory *factory = WASABI_API_SVC->service_getServiceByGuid(factoryGUID_t); + if (factory) + factory->releaseInterface(api_t); + } + api_t = NULL; +} + +api_application *WASABI_API_APP = 0; +api_service *WASABI_API_SVC = 0; +api_config *AGAVE_API_CONFIG=0; +api_language *WASABI_API_LNG = 0; + +GracenoteFactory gracenoteFactory; + +void WA5_Gracenote::RegisterServices(api_service *service) +{ + WASABI_API_SVC = service; + + ServiceBuild(AGAVE_API_CONFIG, AgaveConfigGUID); + ServiceBuild(WASABI_API_APP, applicationApiServiceGuid); + ServiceBuild(WASABI_API_LNG, languageApiGUID); + WASABI_API_SVC->service_register(&gracenoteFactory); +} + +int WA5_Gracenote::RegisterServicesSafeModeOk() +{ + return 1; +} + +void WA5_Gracenote::DeregisterServices(api_service *service) +{ + gracenoteApi.Close(); + WASABI_API_SVC->service_deregister(&gracenoteFactory); + ServiceRelease(AGAVE_API_CONFIG, AgaveConfigGUID); + ServiceRelease(WASABI_API_APP, applicationApiServiceGuid); + ServiceRelease(WASABI_API_LNG, languageApiGUID); +} + +static WA5_Gracenote wa5_gracenote; +extern "C" DLLEXPORT ifc_wa5component *GetWinamp5SystemComponent() +{ + return &wa5_gracenote; +} + +#define CBCLASS WA5_Gracenote +START_DISPATCH; +VCB(API_WA5COMPONENT_REGISTERSERVICES, RegisterServices) + CB(15, RegisterServicesSafeModeOk) +VCB(API_WA5COMPONENT_DEREEGISTERSERVICES, DeregisterServices) +END_DISPATCH; +#undef CBCLASS
\ No newline at end of file diff --git a/Src/gracenote/w5s.h b/Src/gracenote/w5s.h new file mode 100644 index 00000000..66500d18 --- /dev/null +++ b/Src/gracenote/w5s.h @@ -0,0 +1,16 @@ +#ifndef __WASABI_WA5_GRACENOTE_H_ +#define __WASABI_WA5_GRACENOTE_H_ + +#include "../Agave/Component/ifc_wa5component.h" + +class WA5_Gracenote : public ifc_wa5component +{ +public: + void RegisterServices(api_service *service); + int RegisterServicesSafeModeOk(); + void DeregisterServices(api_service *service); +protected: + RECVS_DISPATCH; +}; + +#endif
\ No newline at end of file |