mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
Committing NowPlaying plugin. Because it requires VS2010 Pro to compile, it is not built by default.
This commit is contained in:
726
Plugins/PluginNowPlaying/SDKs/AIMP/aimp2_sdk.h
Normal file
726
Plugins/PluginNowPlaying/SDKs/AIMP/aimp2_sdk.h
Normal file
@ -0,0 +1,726 @@
|
||||
// Translated by Vitaliy Diatlov
|
||||
// AIMP2: SDK (02.07.2009), v2.60
|
||||
|
||||
#ifndef AIMP2_SDK_H
|
||||
#define AIMP2_SDK_H
|
||||
|
||||
#include <windows.h>
|
||||
#include <unknwn.h>
|
||||
|
||||
const char AIMP2_RemoteClass[] = "AIMP2_RemoteInfo";
|
||||
const int AIMP2_RemoteFileSize = 2048;
|
||||
|
||||
const int WM_AIMP_COMMAND = WM_USER + 0x75; // WParam = One of Command, LPARAM - Parameter
|
||||
|
||||
const int WM_AIMP_STATUS_GET = 1;
|
||||
const int WM_AIMP_STATUS_SET = 2;//HiWord of LParam - Command, LoWord of LParam - Parameter
|
||||
const int WM_AIMP_CALLFUNC = 3;// LPARAM - Func ID (see below Func ID for Addons)
|
||||
const int WM_AIMP_GET_VERSION = 4;
|
||||
const int WM_AIMP_STATUS_CHANGE = 5;
|
||||
|
||||
const int WM_LANG = WM_USER + 101;
|
||||
|
||||
// CallBack types
|
||||
const int AIMP_STATUS_CHANGE = 1;
|
||||
const int AIMP_PLAY_FILE = 2;
|
||||
const int AIMP_INFO_UPDATE = 5; // Update Info for current track
|
||||
const int AIMP_PLAYER_STATE = 11; // Play/Pause/Stop
|
||||
const int AIMP_EFFECT_CHANGED = 12; // Balance, Speed, Tempo, Pitch, Flanger and etc.
|
||||
const int AIMP_EQ_CHANGED = 13; // Sliders changed
|
||||
const int AIMP_TRACK_POS_CHANGED = 14;
|
||||
|
||||
// AIMP_Status_Set / AIMP_Status_Get
|
||||
const int AIMP_STS_VOLUME = 1;
|
||||
const int AIMP_STS_BALANCE = 2;
|
||||
const int AIMP_STS_SPEED = 3;
|
||||
const int AIMP_STS_Player = 4;
|
||||
const int AIMP_STS_MUTE = 5;
|
||||
const int AIMP_STS_REVERB = 6;
|
||||
const int AIMP_STS_ECHO = 7;
|
||||
const int AIMP_STS_CHORUS = 8;
|
||||
const int AIMP_STS_Flanger = 9;
|
||||
|
||||
const int AIMP_STS_EQ_STS = 10;
|
||||
const int AIMP_STS_EQ_SLDR01 = 11;
|
||||
const int AIMP_STS_EQ_SLDR02 = 12;
|
||||
const int AIMP_STS_EQ_SLDR03 = 13;
|
||||
const int AIMP_STS_EQ_SLDR04 = 14;
|
||||
const int AIMP_STS_EQ_SLDR05 = 15;
|
||||
const int AIMP_STS_EQ_SLDR06 = 16;
|
||||
const int AIMP_STS_EQ_SLDR07 = 17;
|
||||
const int AIMP_STS_EQ_SLDR08 = 18;
|
||||
const int AIMP_STS_EQ_SLDR09 = 19;
|
||||
const int AIMP_STS_EQ_SLDR10 = 20;
|
||||
const int AIMP_STS_EQ_SLDR11 = 21;
|
||||
const int AIMP_STS_EQ_SLDR12 = 22;
|
||||
const int AIMP_STS_EQ_SLDR13 = 23;
|
||||
const int AIMP_STS_EQ_SLDR14 = 24;
|
||||
const int AIMP_STS_EQ_SLDR15 = 25;
|
||||
const int AIMP_STS_EQ_SLDR16 = 26;
|
||||
const int AIMP_STS_EQ_SLDR17 = 27;
|
||||
const int AIMP_STS_EQ_SLDR18 = 28;
|
||||
|
||||
const int AIMP_STS_REPEAT = 29;
|
||||
const int AIMP_STS_ON_STOP = 30;
|
||||
const int AIMP_STS_POS = 31;
|
||||
const int AIMP_STS_LENGTH = 32;
|
||||
const int AIMP_STS_REPEATPLS = 33;
|
||||
const int AIMP_STS_REP_PLS_1 = 34;
|
||||
const int AIMP_STS_KBPS = 35;
|
||||
const int AIMP_STS_KHZ = 36;
|
||||
const int AIMP_STS_MODE = 37;
|
||||
const int AIMP_STS_RADIO = 38;
|
||||
const int AIMP_STS_STREAM_TYPE = 39; // Music / CDA / Radio
|
||||
const int AIMP_STS_TIMER = 40; // Reverse / Normal
|
||||
const int AIMP_STS_SHUFFLE = 41;
|
||||
|
||||
const int AIMP_STS_MAIN_HWND = 42;
|
||||
const int AIMP_STS_TC_HWND = 43;
|
||||
const int AIMP_STS_APP_HWND = 44;
|
||||
const int AIMP_STS_PL_HWND = 45;
|
||||
const int AIMP_STS_EQ_HWND = 46;
|
||||
|
||||
const int AIMP_STS_TRAY = 47;
|
||||
|
||||
// Support Exts Flags
|
||||
const int AIMP_PLS_EXTS = 1;
|
||||
const int AIMP_AUDIO_EXTS = 2;
|
||||
|
||||
// Menu IDs
|
||||
const int AIMP_MAIN_MENU_OPN = 0;
|
||||
const int AIMP_MAIN_MENU_UTILS = 1;
|
||||
const int AIMP_MAIN_MENU_FNC = 2;
|
||||
const int AIMP_MAIN_MENU_CFG = 3;
|
||||
const int AIMP_UTILS_MENU = 4;
|
||||
const int AIMP_PLS_MENU_ADD = 5;
|
||||
const int AIMP_PLS_MENU_JUMP = 6;
|
||||
const int AIMP_PLS_MENU_FNC = 7;
|
||||
const int AIMP_PLS_MENU_SEND = 8;
|
||||
const int AIMP_PLS_MENU_DEL = 9;
|
||||
const int AIMP_ADD_MENU = 10;
|
||||
const int AIMP_DEL_MENU = 11;
|
||||
const int AIMP_FND_MENU = 12;
|
||||
const int AIMP_SRT_MENU = 13;
|
||||
const int AIMP_MSC_MENU = 14;
|
||||
const int AIMP_PLS_MENU = 15;
|
||||
const int AIMP_TRAY_UTILS = 16;
|
||||
const int AIMP_TRAY = 17;
|
||||
const int AIMP_EQ_LIB = 18;
|
||||
// use AIMP_UTILS_MENU overthis:
|
||||
// + AIMP_MAIN_MENU_UTILS = 1;
|
||||
// + AIMP_TRAY_UTILS = 16;
|
||||
|
||||
// AIMP_CallFunction
|
||||
const int AIMP_OPEN_FILES = 0;
|
||||
const int AIMP_OPEN_DIR = 1;
|
||||
const int AIMP_ABOUT = 2;
|
||||
const int AIMP_SLEEP_TIMER = 3;
|
||||
const int AIMP_UTILS_AC = 4;
|
||||
const int AIMP_UTILS_SR = 5;
|
||||
const int AIMP_UTILS_TE = 6;
|
||||
const int AIMP_UTILS_CDB = 7;
|
||||
const int AIMP_OPTIONS = 8;
|
||||
const int AIMP_PLUGINS = 9;
|
||||
const int AIMP_QUIT = 10;
|
||||
const int AIMP_NEXT_VIS = 11;
|
||||
const int AIMP_PREV_VIS = 12;
|
||||
const int AIMP_EQ_ANALOG = 13;
|
||||
const int AIMP_TO_TRAY = 14;
|
||||
const int AIMP_PLAY = 15;
|
||||
const int AIMP_PAUSE = 16;
|
||||
const int AIMP_STOP = 17;
|
||||
const int AIMP_NEXT = 18;
|
||||
const int AIMP_PREV = 19;
|
||||
const int AIMP_ADD_FILES = 20;
|
||||
const int AIMP_ADD_DIR = 21;
|
||||
const int AIMP_ADD_PLS = 22;
|
||||
const int AIMP_ADD_URL = 23;
|
||||
const int AIMP_DEL_FILES = 24;
|
||||
const int AIMP_DEL_BAD = 25;
|
||||
const int AIMP_DEL_FROMHDD = 26;
|
||||
const int AIMP_DEL_OFF = 27;
|
||||
const int AIMP_DEL_OFF_HDD = 28;
|
||||
const int AIMP_RESCAN_PLS = 29;
|
||||
const int AIMP_SHOW_CURFILE = 30;
|
||||
const int AIMP_SORT_INVERT = 31;
|
||||
const int AIMP_SORT_RANDOM = 32;
|
||||
const int AIMP_SORT_TITLE = 33;
|
||||
const int AIMP_SORT_ARTIST = 34;
|
||||
const int AIMP_SORT_FOLDER = 35;
|
||||
const int AIMP_SORT_LENGTH = 36;
|
||||
const int AIMP_SORT_RATING = 37;
|
||||
const int AIMP_SEARCH = 38;
|
||||
const int AIMP_OPEN_PLS = 39;
|
||||
const int AIMP_SAVE_PLS = 40;
|
||||
const int AIMP_PLAY_LAST = 41;
|
||||
const int AIMP_OFF_SELECTED = 42;
|
||||
const int AIMP_ON_SELECTED = 43;
|
||||
const int AIMP_ADD2BOOKMARK = 44;
|
||||
const int AIMP_EDITBOOKMARK = 45;
|
||||
|
||||
|
||||
// For AIMP_GetPath
|
||||
const int AIMP_CFG_DATA = 0;
|
||||
const int AIMP_CFG_PLS = 1;
|
||||
const int AIMP_CFG_LNG = 2;
|
||||
const int AIMP_CFG_SKINS = 3;
|
||||
const int AIMP_CFG_PLUGINS = 4;
|
||||
const int AIMP_CFG_ICONS = 5;
|
||||
const int AIMP_CFG_ML = 6;
|
||||
|
||||
|
||||
// For AIMP_QueryObject
|
||||
const int IAIMP2PlayerID = 0x0001;
|
||||
const int IAIMP2PlaylistManagerID = 0x0003;
|
||||
const int IAIMP2ExtendedID = 0x0004;
|
||||
const int IAIMP2CoverArtManagerID = 0x0005;
|
||||
const int IAIMP2PlaylistManager2ID = 0x0006;
|
||||
const int IAIMPConfigFileID = 0x0010;
|
||||
const int IAIMPLanguageFileID = 0x0011;
|
||||
|
||||
|
||||
|
||||
// For AIMP_ObjectClass
|
||||
const int AIMP_EXT_LC_MESSAGE = 100;
|
||||
const int AIMP_EXT_ML_MESSAGE = 101;
|
||||
|
||||
|
||||
// Option Frame Position Flags
|
||||
const int AIMP_FRAME_POS_PLAY = 1;
|
||||
const int AIMP_FRAME_POS_PLAYLIST = 2;
|
||||
const int AIMP_FRAME_POS_PLAYER = 3;
|
||||
const int AIMP_FRAME_POS_TEMPLATE = 4;
|
||||
const int AIMP_FRAME_POS_SYSTEM = 5;
|
||||
const int AIMP_FRAME_POS_SKINS = 6;
|
||||
const int AIMP_FRAME_POS_LANGS = 7;
|
||||
|
||||
// AIMP_PLS_SORT_TYPE_XXX
|
||||
const int AIMP_PLS_SORT_TYPE_TITLE = 1;
|
||||
const int AIMP_PLS_SORT_TYPE_FILENAME = 2;
|
||||
const int AIMP_PLS_SORT_TYPE_DURATION = 3;
|
||||
const int AIMP_PLS_SORT_TYPE_ARTIST = 4;
|
||||
const int AIMP_PLS_SORT_TYPE_INVERSE = 5;
|
||||
const int AIMP_PLS_SORT_TYPE_RANDOMIZE = 6;
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct AIMP2FileInfo
|
||||
{
|
||||
DWORD cbSizeOf;
|
||||
//
|
||||
BOOL nActive;
|
||||
DWORD nBitRate;
|
||||
DWORD nChannels;
|
||||
DWORD nDuration;
|
||||
INT64 nFileSize;
|
||||
DWORD nRating;
|
||||
DWORD nSampleRate;
|
||||
DWORD nTrackID;
|
||||
//
|
||||
DWORD nAlbumLen;
|
||||
DWORD nArtistLen;
|
||||
DWORD nDateLen;
|
||||
DWORD nFileNameLen;
|
||||
DWORD nGenreLen;
|
||||
DWORD nTitleLen;
|
||||
//
|
||||
PWCHAR sAlbum;
|
||||
PWCHAR sArtist;
|
||||
PWCHAR sDate;
|
||||
PWCHAR sFileName;
|
||||
PWCHAR sGenre;
|
||||
PWCHAR sTitle;
|
||||
};
|
||||
#pragma pack(pop)
|
||||
typedef boolean (WINAPI *AIMPPlaylistDeleteProc)(AIMP2FileInfo AFileInfo, DWORD AUserData);
|
||||
typedef int (WINAPI *AIMPPlaylistSortProc)(AIMP2FileInfo AFileInfo1, AIMP2FileInfo AFileInfo2, DWORD AUserData);
|
||||
|
||||
typedef void (WINAPI *AIMPMenuProc)(DWORD User, void *Handle);
|
||||
|
||||
typedef void (WINAPI *AIMPStatusChange)(DWORD User, DWORD CallBackType);
|
||||
|
||||
typedef void (WINAPI *CallBackFunc)(DWORD User, DWORD dwCBType);
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct PLSInfo
|
||||
{
|
||||
PCHAR PLSName;
|
||||
DWORD FileCount;
|
||||
DWORD PLSDuration;
|
||||
INT64 PLSSize;
|
||||
int PlaylistID;
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct AIMPMenuInfo
|
||||
{
|
||||
boolean Checkbox;
|
||||
boolean RadioItem;
|
||||
boolean Checked;
|
||||
boolean Enabled;
|
||||
int ProcPtr; // TAIMPMenuProc;
|
||||
HBITMAP Bitmap; // 0 - no bmp
|
||||
PWCHAR Caption;
|
||||
DWORD User;
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
class IPLSStrings
|
||||
: public IUnknown
|
||||
{
|
||||
public:
|
||||
virtual boolean WINAPI AddFile(
|
||||
PWCHAR FileName,
|
||||
AIMP2FileInfo *FileInfo
|
||||
);
|
||||
virtual boolean WINAPI DelFile(
|
||||
int ID
|
||||
);
|
||||
virtual PWCHAR WINAPI GetFileName(
|
||||
int ID
|
||||
);
|
||||
virtual boolean WINAPI GetFileInfo(
|
||||
int ID,
|
||||
AIMP2FileInfo *FileInfo
|
||||
);
|
||||
virtual DWORD WINAPI GetFileObj(
|
||||
int ID
|
||||
);
|
||||
virtual int WINAPI GetCount();
|
||||
};
|
||||
|
||||
class IAIMP2Controller
|
||||
:public IUnknown
|
||||
{
|
||||
public:
|
||||
virtual boolean WINAPI IsUnicodeVersion();
|
||||
virtual boolean WINAPI AIMP_CallBack_Set(
|
||||
DWORD dwCBType,
|
||||
CallBackFunc CallBackFuncPtr,
|
||||
DWORD User
|
||||
);
|
||||
virtual boolean WINAPI AIMP_CallBack_Remove(
|
||||
DWORD dwCBType,
|
||||
int ProcPtr
|
||||
);
|
||||
// Status
|
||||
virtual DWORD WINAPI AIMP_Status_Get(
|
||||
DWORD StatusType
|
||||
);
|
||||
virtual boolean WINAPI AIMP_Status_Set(
|
||||
DWORD StatusType,
|
||||
DWORD Value
|
||||
);
|
||||
// Playlist
|
||||
virtual boolean WINAPI AIMP_PLS_Clear(
|
||||
int ID
|
||||
);
|
||||
virtual boolean WINAPI AIMP_PLS_Delete(
|
||||
int ID
|
||||
);
|
||||
virtual boolean WINAPI AIMP_PLS_New(
|
||||
PWCHAR Name
|
||||
);
|
||||
virtual boolean WINAPI AIMP_PLS_Info(
|
||||
int Index,
|
||||
PLSInfo *info
|
||||
);
|
||||
virtual short WINAPI AIMP_PLS_Count();
|
||||
virtual boolean WINAPI AIMP_PLS_GetFiles(
|
||||
int ID,
|
||||
IPLSStrings **Strings
|
||||
);
|
||||
virtual boolean WINAPI AIMP_PLS_GetSelFiles(
|
||||
int ID,
|
||||
IPLSStrings **Strings
|
||||
);
|
||||
virtual boolean WINAPI AIMP_PLS_AddFiles(
|
||||
int ID,
|
||||
IPLSStrings *Strings
|
||||
);
|
||||
virtual boolean WINAPI AIMP_PLS_SetPLS(
|
||||
int ID
|
||||
);
|
||||
// System
|
||||
virtual boolean WINAPI AIMP_NewStrings(
|
||||
IPLSStrings **Strings
|
||||
);
|
||||
virtual boolean WINAPI AIMP_GetCurrentTrack(
|
||||
AIMP2FileInfo *AInfo
|
||||
);
|
||||
virtual boolean WINAPI AIMP_QueryInfo(
|
||||
PWCHAR Filename,
|
||||
AIMP2FileInfo *AInfo
|
||||
);
|
||||
virtual DWORD WINAPI AIMP_GetSystemVersion();
|
||||
virtual boolean WINAPI AIMP_CallFunction(
|
||||
DWORD FuncID
|
||||
);
|
||||
virtual int WINAPI AIMP_GetLanguage(
|
||||
PWCHAR Str,
|
||||
int ACount
|
||||
);
|
||||
virtual int WINAPI AIMP_GetCfgPath(
|
||||
PWCHAR Str,
|
||||
int ACount
|
||||
);
|
||||
virtual int WINAPI AIMP_GetSupportExts(
|
||||
DWORD Flags,
|
||||
PWCHAR Str,
|
||||
int BufSize
|
||||
);
|
||||
// Menu
|
||||
virtual DWORD WINAPI AIMP_GetSupportExts(
|
||||
DWORD Parent,
|
||||
AIMPMenuInfo *MenuInfo
|
||||
);
|
||||
virtual DWORD WINAPI AIMP_Menu_Create(
|
||||
DWORD MenuID,
|
||||
AIMPMenuInfo *MenuInfo
|
||||
);
|
||||
virtual boolean WINAPI AIMP_Menu_Update(
|
||||
int Handle,
|
||||
AIMPMenuInfo *MenuInfo
|
||||
);
|
||||
virtual boolean WINAPI AIMP_Menu_Remove(
|
||||
int Handle
|
||||
);
|
||||
// extention
|
||||
virtual boolean WINAPI AIMP_QueryObject(
|
||||
DWORD ObjectID,
|
||||
void *Obj
|
||||
);
|
||||
};
|
||||
|
||||
class IAIMPAddonHeader
|
||||
:public IUnknown
|
||||
{
|
||||
public:
|
||||
virtual BOOL WINAPI GetHasSettingsDialog() = 0;
|
||||
virtual PWCHAR WINAPI GetPluginAuthor() = 0;
|
||||
virtual PWCHAR WINAPI GetPluginName() = 0;
|
||||
virtual void WINAPI Finalize() = 0;
|
||||
virtual void WINAPI Initialize(IAIMP2Controller *AController) = 0;
|
||||
virtual void WINAPI ShowSettingsDialog(HWND AParentWindow) = 0;
|
||||
};
|
||||
|
||||
typedef IAIMPAddonHeader *(WINAPI *AddonProc)();
|
||||
|
||||
typedef BOOL (WINAPI *AIMPAddonHeaderProc)(IAIMPAddonHeader *AHeader);
|
||||
// Export function name: AIMP_QueryAddonEx
|
||||
|
||||
//==============================================================================
|
||||
// Old Style Addon struct - don't use for new plugins
|
||||
//==============================================================================
|
||||
|
||||
typedef PCHAR (WINAPI *GetPlgNameFunc)();
|
||||
typedef PCHAR (WINAPI *GetAutorFunc)();
|
||||
typedef void (WINAPI *InitFunc)(IAIMP2Controller *AIMP);
|
||||
typedef void (WINAPI *ConfigFunc)(DWORD Handle, DWORD Win);
|
||||
typedef void (WINAPI *FreeFunc)();
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct AIMPAddonHeader
|
||||
{
|
||||
DWORD version;
|
||||
DWORD DllInstance;
|
||||
GetPlgNameFunc PlgNameFuncPtr;
|
||||
GetAutorFunc AutorFuncPtr;
|
||||
InitFunc InitFuncPtr;
|
||||
ConfigFunc ConfigFuncPtr;
|
||||
FreeFunc FreeFuncPtr;
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//==============================================================================
|
||||
|
||||
class IAIMP2OptionFrame
|
||||
:public IUnknown
|
||||
{
|
||||
public:
|
||||
virtual HWND WINAPI FrameCreate(
|
||||
HWND AParent
|
||||
);
|
||||
virtual void *WINAPI FrameData(
|
||||
); // reserved
|
||||
virtual int WINAPI FrameFlags(
|
||||
); // See FramePositionFlags
|
||||
virtual PWCHAR WINAPI FrameName(
|
||||
);
|
||||
virtual HWND WINAPI FrameFree(
|
||||
HWND AWindow
|
||||
);
|
||||
virtual void WINAPI FrameLoadConfigNotify(
|
||||
);
|
||||
virtual void WINAPI FrameSaveConfigNotify(
|
||||
);
|
||||
};
|
||||
|
||||
class IAIMP2Player
|
||||
: public IUnknown
|
||||
{
|
||||
public:
|
||||
virtual int WINAPI Version();
|
||||
virtual boolean WINAPI PlayTrack(
|
||||
int ID,
|
||||
int ATrackIndex
|
||||
);
|
||||
virtual void WINAPI PlayOrResume();
|
||||
virtual void WINAPI Pause();
|
||||
virtual void WINAPI Stop();
|
||||
virtual void WINAPI NextTrack();
|
||||
virtual void WINAPI PrevTrack();
|
||||
};
|
||||
|
||||
class IAIMP2PlaylistManager
|
||||
: public IUnknown
|
||||
{
|
||||
public:
|
||||
virtual int WINAPI AIMP_PLS_CreateFromFile(
|
||||
PWCHAR AFile,
|
||||
boolean AActivate,
|
||||
boolean AStartPlay
|
||||
);
|
||||
virtual int WINAPI AIMP_PLS_ID_ActiveGet();
|
||||
virtual boolean WINAPI AIMP_PLS_ID_ActiveSet(
|
||||
int ID
|
||||
);
|
||||
virtual int WINAPI AIMP_PLS_ID_PlayingGet();
|
||||
virtual int WINAPI AIMP_PLS_ID_PlayingGetTrackIndex(
|
||||
int ID
|
||||
);
|
||||
virtual int WINAPI AIMP_PLS_NewEx(
|
||||
PWCHAR AName,
|
||||
boolean AActivate
|
||||
);
|
||||
virtual boolean WINAPI AIMP_PLS_PlayFile(
|
||||
PWCHAR AFileName,
|
||||
boolean AFailIfNotExists
|
||||
);
|
||||
// Playlist Processing
|
||||
virtual boolean WINAPI AIMP_PLS_DeleteByFilter(
|
||||
int ID,
|
||||
DWORD AFilterProc,
|
||||
DWORD AUserData
|
||||
);
|
||||
virtual boolean WINAPI AIMP_PLS_SortByFilter(
|
||||
int ID,
|
||||
DWORD AFilterProc,
|
||||
DWORD AUserData
|
||||
);
|
||||
// Entries
|
||||
virtual boolean WINAPI AIMP_PLS_Entry_Delete(
|
||||
int ID,
|
||||
int AEntryIndex
|
||||
);
|
||||
virtual boolean WINAPI AIMP_PLS_Entry_DeleteAll(
|
||||
int ID
|
||||
);
|
||||
virtual boolean WINAPI AIMP_PLS_Entry_FileNameGet(
|
||||
int ID,
|
||||
int AEntryIndex,
|
||||
PWCHAR PBuf,
|
||||
DWORD ABufLen
|
||||
);
|
||||
virtual boolean WINAPI AIMP_PLS_Entry_FileNameSet(
|
||||
int ID,
|
||||
int AEntryIndex,
|
||||
PWCHAR PBuf
|
||||
);
|
||||
virtual int WINAPI AIMP_PLS_Entry_FocusedGet(
|
||||
int ID
|
||||
);
|
||||
virtual boolean WINAPI AIMP_PLS_Entry_FocusedSet(
|
||||
int ID,
|
||||
int AEntryIndex
|
||||
);
|
||||
virtual boolean WINAPI AIMP_PLS_Entry_InfoGet(
|
||||
int ID,
|
||||
int AEntryIndex,
|
||||
AIMP2FileInfo *PFileInfo
|
||||
);
|
||||
virtual boolean WINAPI AIMP_PLS_Entry_InfoSet(
|
||||
int ID,
|
||||
int AEntryIndex,
|
||||
AIMP2FileInfo *PFileInfo
|
||||
);
|
||||
virtual boolean WINAPI AIMP_PLS_Entry_PlayingSwitchGet(
|
||||
int ID,
|
||||
int AEntryIndex
|
||||
);
|
||||
virtual boolean WINAPI AIMP_PLS_Entry_PlayingSwitchSet(
|
||||
int ID,
|
||||
int AEntryIndex,
|
||||
boolean ASwitch
|
||||
);
|
||||
virtual boolean WINAPI AIMP_PLS_Entry_ReloadInfo(
|
||||
int ID,
|
||||
int AEntryIndex
|
||||
);
|
||||
// Load/Save Playlists
|
||||
virtual boolean WINAPI AIMP_PM_DestroyStream(
|
||||
DWORD AHandle
|
||||
);
|
||||
virtual DWORD WINAPI AIMP_PM_ReadItem(
|
||||
DWORD AHandle,
|
||||
AIMP2FileInfo *PItem
|
||||
);
|
||||
virtual DWORD WINAPI AIMP_PM_ReadStream(
|
||||
PWCHAR AFileName,
|
||||
int *Count
|
||||
);
|
||||
virtual DWORD WINAPI AIMP_PM_SaveStream(
|
||||
PWCHAR AFileName
|
||||
);
|
||||
virtual DWORD WINAPI AIMP_PM_WriteItem(
|
||||
DWORD AHandle,
|
||||
AIMP2FileInfo *PItem
|
||||
);
|
||||
// added in 2.50 B295
|
||||
virtual boolean WINAPI AIMP_PLS_ID_PlayingSetTrackIndex(
|
||||
int ID,
|
||||
int AEntryIndex
|
||||
);
|
||||
};
|
||||
|
||||
class IAIMP2PlaylistManager2
|
||||
: public IAIMP2PlaylistManager
|
||||
{
|
||||
public:
|
||||
// Count of loaded playlists
|
||||
virtual unsigned short WINAPI AIMP_PLS_Count();
|
||||
// Return = -1 - ID is not valid, otherthis - count of files in playlist
|
||||
virtual int WINAPI AIMP_PLS_GetFilesCount(int ID);
|
||||
virtual HRESULT WINAPI AIMP_PLS_GetInfo(int ID, INT64 *ADuration, INT64 *ASize);
|
||||
virtual HRESULT WINAPI AIMP_PLS_GetName(int ID, PWCHAR ABuffer, int ABufferSizeInChars);
|
||||
// Custom Sorting, see AIMP_PLS_SORT_TYPE_XXX
|
||||
virtual HRESULT WINAPI AIMP_PLS_Sort(int ID, int ASortType);
|
||||
virtual HRESULT WINAPI AIMP_PLS_SortByTemplate(int ID, PWCHAR ABuffer, int ABufferSizeInChars);
|
||||
// if Index = -1 returned ID of current playlist.
|
||||
virtual HRESULT WINAPI AIMP_PLS_ID_By_Index(int Index, int *ID);
|
||||
// Get Formated title for Entry
|
||||
virtual HRESULT WINAPI AIMP_PLS_Entry_GetTitle(int ID, int AEntryIndex,
|
||||
PWCHAR ABuffer, int ABufferSizeInChars);
|
||||
// Set Entry to playback queue
|
||||
virtual HRESULT WINAPI AIMP_PLS_Entry_QueueRemove(int ID, int AEntryIndex);
|
||||
virtual HRESULT WINAPI AIMP_PLS_Entry_QueueSet(int ID, int AEntryIndex, BOOL AInsertAtQueueBegining);
|
||||
// Moving Entry
|
||||
virtual HRESULT WINAPI AIMP_PLS_Entry_SetPosition(int ID, int AEntryIndex, int ANewEntryIndex);
|
||||
};
|
||||
|
||||
// See IAIMP2ExtendedID
|
||||
class IAIMP2Extended
|
||||
:public IUnknown
|
||||
{
|
||||
public:
|
||||
virtual int WINAPI AIMP_GetPath(
|
||||
int ID,
|
||||
PWCHAR buffer,
|
||||
int bufSize
|
||||
);
|
||||
virtual boolean WINAPI AIMP_ObjectClass(
|
||||
int ID,
|
||||
void *AData,
|
||||
boolean ARegister
|
||||
);
|
||||
// User Option Dialogs
|
||||
virtual DWORD WINAPI AIMP_Options_FrameAdd(
|
||||
IAIMP2OptionFrame *AFrame
|
||||
);
|
||||
virtual DWORD WINAPI AIMP_Options_FrameRemove(
|
||||
IAIMP2OptionFrame *AFrame
|
||||
);
|
||||
virtual DWORD WINAPI AIMP_Options_ModifiedChanged(
|
||||
IAIMP2OptionFrame *AFrame
|
||||
);
|
||||
};
|
||||
|
||||
class IAIMP2CoverArtManager
|
||||
:public IUnknown
|
||||
{
|
||||
public:
|
||||
// Return picture will be proportional stretched to ADisplaySize value
|
||||
virtual HBITMAP WINAPI GetCoverArtForFile(PWCHAR AFile, const SIZE *ADisplaySize);
|
||||
// Draw CoverArt of playing file, Return - cover art drawing successfuly
|
||||
// CoverArt will be proportional stretched to R value
|
||||
virtual HRESULT WINAPI CurrentCoverArtDraw(HDC DC, const RECT *R);
|
||||
// Return <> S_OK, CoverArt is empty or file are not playing
|
||||
virtual HRESULT WINAPI CurrentCoverArtGetSize(SIZE *ASize);
|
||||
// W, H - destination display sizes, function will correct sizes for proportional drawing
|
||||
// Return <> S_OK, CoverArt is empty or file are not playing
|
||||
virtual HRESULT WINAPI CurrentCoverArtCorrectSizes(int *W, int *H);
|
||||
};
|
||||
|
||||
// See IAIMPLanguageFileID
|
||||
class IAIMPLanguageFile
|
||||
:public IUnknown
|
||||
{
|
||||
public:
|
||||
virtual int AIMP_Lang_Version();
|
||||
virtual int AIMP_Lang_CurrentFile(PWCHAR ABuffer, int ABufferSizeInChars);
|
||||
virtual HRESULT AIMP_Lang_IsSectionExists(PWCHAR ASectionName, int ASectionNameSizeInChars);
|
||||
virtual HRESULT AIMP_Lang_ReadString(PWCHAR ASectionName, PWCHAR AItemName, PWCHAR AValueBuffer,
|
||||
int ASectionNameSizeInChars, int AItemNameSizeInChars, int AValueBufferSizeInChars);
|
||||
// When Language changed AIMP will send to window handle "WM_LANG" message
|
||||
virtual HRESULT AIMP_Lang_Notification(HWND AWndHandle, BOOL ARegister);
|
||||
};
|
||||
|
||||
// See IAIMPConfigFileID
|
||||
class IAIMPConfigFile
|
||||
:public IUnknown
|
||||
{
|
||||
// functions return null value, if value don't exists in configuration file
|
||||
virtual HRESULT AIMP_Config_ReadString(PWCHAR ASectionName, PWCHAR AItemName, PWCHAR AValueBuffer,
|
||||
int ASectionNameSizeInChars, int AItemNameSizeInChars, int AValueBufferSizeInChars);
|
||||
virtual HRESULT AIMP_Config_ReadInteger(PWCHAR ASectionName, PWCHAR AItemName,
|
||||
int ASectionNameSizeInChars, int AItemNameSizeInChars, int * AValue);
|
||||
//
|
||||
virtual HRESULT AIMP_Config_WriteString(PWCHAR ASectionName, PWCHAR AItemName, PWCHAR AValueBuffer,
|
||||
int ASectionNameSizeInChars, int AItemNameSizeInChars, int AValueBufferSizeInChars);
|
||||
virtual HRESULT AIMP_Config_WriteInteger(PWCHAR ASectionName, PWCHAR AItemName,
|
||||
int ASectionNameSizeInChars, int AItemNameSizeInChars, int AValue);
|
||||
//
|
||||
virtual HRESULT AIMP_Config_IsSectionExists(PWCHAR ASectionName, int ASectionNameSizeInChars);
|
||||
virtual HRESULT AIMP_Config_RemoveSection(PWCHAR ASectionName, int ASectionNameSizeInChars);
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
// V I S U A L S
|
||||
//==============================================================================
|
||||
|
||||
const int VIS_RQD_DATA_WAVE = 1;
|
||||
const int VIS_RQD_DATA_SPECTRUM = 2;
|
||||
const int VIS_RQD_NOT_SUSPEND = 4;
|
||||
|
||||
typedef short WaveForm[2][512];
|
||||
typedef short Spectrum[2][256];
|
||||
|
||||
struct AIMPVisualData
|
||||
{
|
||||
int LevelR;
|
||||
int LevelL;
|
||||
Spectrum spectrum;
|
||||
WaveForm waveForm;
|
||||
};
|
||||
|
||||
typedef AIMPVisualData *PAIMPVisualData;
|
||||
|
||||
class IAIMP2VisualPlugin
|
||||
:public IUnknown
|
||||
{
|
||||
public:
|
||||
virtual PWCHAR WINAPI AuthorName();
|
||||
virtual PWCHAR WINAPI PluginName();
|
||||
virtual PWCHAR WINAPI PluginInfo();
|
||||
virtual DWORD WINAPI PluginFlags();
|
||||
virtual BOOL WINAPI Initialize();
|
||||
virtual void WINAPI Deinitialize();
|
||||
virtual void WINAPI DisplayClick(int X, int Y);
|
||||
virtual void WINAPI DisplayRender(HDC DC, PAIMPVisualData AData);
|
||||
virtual void WINAPI DisplayResize(int AWidth, int AHeight);
|
||||
};
|
||||
|
||||
// Export function name: AIMP_QueryVisual
|
||||
typedef IAIMP2VisualPlugin *(WINAPI *AIMPVisualProc)();
|
||||
|
||||
#endif
|
97
Plugins/PluginNowPlaying/SDKs/Winamp/wa_cmd.h
Normal file
97
Plugins/PluginNowPlaying/SDKs/Winamp/wa_cmd.h
Normal file
@ -0,0 +1,97 @@
|
||||
#define WINAMP_STOPPED 0
|
||||
#define WINAMP_PLAYING 1
|
||||
#define WINAMP_PAUSED 3
|
||||
|
||||
#define WINAMP_FILE_QUIT 40001
|
||||
#define WINAMP_OPTIONS_PREFS 40012
|
||||
#define WINAMP_OPTIONS_AOT 40019
|
||||
#define WINAMP_FILE_REPEAT 40022
|
||||
#define WINAMP_FILE_SHUFFLE 40023
|
||||
#define WINAMP_HIGH_PRIORITY 40025
|
||||
#define WINAMP_FILE_PLAY 40029
|
||||
#define WINAMP_OPTIONS_EQ 40036
|
||||
#define WINAMP_OPTIONS_ELAPSED 40037
|
||||
#define WINAMP_OPTIONS_REMAINING 40038
|
||||
#define WINAMP_OPTIONS_PLEDIT 40040
|
||||
#define WINAMP_HELP_ABOUT 40041
|
||||
#define WINAMP_MAINMENU 40043
|
||||
#define WINAMP_REWIND 40044
|
||||
#define WINAMP_PLAY 40045
|
||||
#define WINAMP_PAUSE 40046
|
||||
#define WINAMP_STOP 40047
|
||||
#define WINAMP_FASTFWD 40048
|
||||
#define WINAMP_VOLUMEUP 40058
|
||||
#define WINAMP_VOLUMEDOWN 40059
|
||||
#define WINAMP_FFWD5S 40060
|
||||
#define WINAMP_REW5S 40061
|
||||
#define WINAMP_NEXT_WINDOW 40063
|
||||
#define WINAMP_OPTIONS_WINDOWSHADE 40064
|
||||
#define WINAMP_REWIND_SHIFT 40144
|
||||
#define WINAMP_PLAY_SHIFT 40145
|
||||
#define WINAMP_PAUSE_SHIFT 40146
|
||||
#define WINAMP_STOP_SHIFT 40147
|
||||
#define WINAMP_FASTFWD_SHIFT 40148
|
||||
#define WINAMP_REWIND_CTRL 40154
|
||||
#define WINAMP_PLAY_CTRL 40155
|
||||
#define WINAMP_PAUSE_CTRL 40156
|
||||
#define WINAMP_STOP_CTRL 40157
|
||||
#define WINAMP_FASTFWD_CTRL 40158
|
||||
#define WINAMP_OPTIONS_DSIZE 40165
|
||||
#define IDC_SORT_FILENAME 40166
|
||||
#define IDC_SORT_FILETITLE 40167
|
||||
#define IDC_SORT_ENTIREFILENAME 40168
|
||||
#define IDC_SELECTALL 40169
|
||||
#define IDC_SELECTNONE 40170
|
||||
#define IDC_SELECTINV 40171
|
||||
#define IDM_EQ_LOADPRE 40172
|
||||
#define IDM_EQ_LOADMP3 40173
|
||||
#define IDM_EQ_LOADDEFAULT 40174
|
||||
#define IDM_EQ_SAVEPRE 40175
|
||||
#define IDM_EQ_SAVEMP3 40176
|
||||
#define IDM_EQ_SAVEDEFAULT 40177
|
||||
#define IDM_EQ_DELPRE 40178
|
||||
#define IDM_EQ_DELMP3 40180
|
||||
#define IDC_PLAYLIST_PLAY 40184
|
||||
#define WINAMP_FILE_LOC 40185
|
||||
#define WINAMP_OPTIONS_EASYMOVE 40186
|
||||
#define WINAMP_FILE_DIR 40187
|
||||
#define WINAMP_EDIT_ID3 40188
|
||||
#define WINAMP_TOGGLE_AUTOSCROLL 40189
|
||||
#define WINAMP_VISSETUP 40190
|
||||
#define WINAMP_PLGSETUP 40191
|
||||
#define WINAMP_VISPLUGIN 40192
|
||||
#define WINAMP_JUMP 40193
|
||||
#define WINAMP_JUMPFILE 40194
|
||||
#define WINAMP_JUMP10FWD 40195
|
||||
#define WINAMP_JUMP10BACK 40197
|
||||
|
||||
#define WINAMP_OPTIONS_EQ 40036 // toggles the EQ window
|
||||
#define WINAMP_OPTIONS_PLEDIT 40040 // toggles the playlist window
|
||||
#define WINAMP_VOLUMEUP 40058 // turns the volume up a little
|
||||
#define WINAMP_VOLUMEDOWN 40059 // turns the volume down a little
|
||||
#define WINAMP_FFWD5S 40060 // fast forwards 5 seconds
|
||||
#define WINAMP_REW5S 40061 // rewinds 5 seconds
|
||||
|
||||
// the following are the five main control buttons, with optionally shift
|
||||
// or control pressed
|
||||
// (for the exact functions of each, just try it out)
|
||||
#define WINAMP_BUTTON1 40044
|
||||
#define WINAMP_BUTTON2 40045
|
||||
#define WINAMP_BUTTON3 40046
|
||||
#define WINAMP_BUTTON4 40047
|
||||
#define WINAMP_BUTTON5 40048
|
||||
#define WINAMP_BUTTON1_SHIFT 40144
|
||||
#define WINAMP_BUTTON2_SHIFT 40145
|
||||
#define WINAMP_BUTTON3_SHIFT 40146
|
||||
#define WINAMP_BUTTON4_SHIFT 40147
|
||||
#define WINAMP_BUTTON5_SHIFT 40148
|
||||
#define WINAMP_BUTTON1_CTRL 40154
|
||||
#define WINAMP_BUTTON2_CTRL 40155
|
||||
#define WINAMP_BUTTON3_CTRL 40156
|
||||
#define WINAMP_BUTTON4_CTRL 40157
|
||||
#define WINAMP_BUTTON5_CTRL 40158
|
||||
|
||||
#define WINAMP_FILE_PLAY 40029 // pops up the load file(s) box
|
||||
#define WINAMP_OPTIONS_PREFS 40012 // pops up the preferences
|
||||
#define WINAMP_OPTIONS_AOT 40019 // toggles always on top
|
||||
#define WINAMP_HELP_ABOUT 40041 // pops up the about box :)
|
353
Plugins/PluginNowPlaying/SDKs/Winamp/wa_dlg.h
Normal file
353
Plugins/PluginNowPlaying/SDKs/Winamp/wa_dlg.h
Normal file
@ -0,0 +1,353 @@
|
||||
/*
|
||||
** Copyright (C) 2003 Nullsoft, Inc.
|
||||
**
|
||||
** This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held
|
||||
** liable for any damages arising from the use of this software.
|
||||
**
|
||||
** Permission is granted to anyone to use this software for any purpose, including commercial applications, and to
|
||||
** alter it and redistribute it freely, subject to the following restrictions:
|
||||
**
|
||||
** 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software.
|
||||
** If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
|
||||
**
|
||||
** 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
|
||||
**
|
||||
** 3. This notice may not be removed or altered from any source distribution.
|
||||
**
|
||||
*/
|
||||
|
||||
#ifndef _WA_DLG_H_
|
||||
#define _WA_DLG_H_
|
||||
|
||||
#include "wa_ipc.h"
|
||||
|
||||
/*
|
||||
|
||||
dont know where to put this yet :)
|
||||
1) gen.bmp has a generic window frame for plugins to use.
|
||||
its format is similar to the minibrowser's.
|
||||
In addition gen.bmp includes a font for the titlebar, in both
|
||||
highlight and no-highlight modes. The font is variable width,
|
||||
and it uses the first color before the letter A as the delimiter.
|
||||
The no-highlight form of letter must be the same width as the
|
||||
highlight form.
|
||||
2) genex.bmp has button and scrollbar images, as well as some individual
|
||||
pixels that describe the colors for the dialog. The button and
|
||||
scrollbar images should be self explanatory (note that the buttons
|
||||
have 4 pixel sized edges that are not stretched, and the center is
|
||||
stretched), and the scrollbars do something similar.
|
||||
The colors start at (48,0) and run every other pixel. The meaning
|
||||
of each pixel is:
|
||||
x=48: item background (background to edits, listviews etc)
|
||||
x=50: item foreground (text color of edit/listview, etc)
|
||||
x=52: window background (used to set the bg color for the dialog)
|
||||
x=54: button text color
|
||||
x=56: window text color
|
||||
x=58: color of dividers and sunken borders
|
||||
x=60: selection color for listviews/playlists/etc
|
||||
x=62: listview header background color
|
||||
x=64: listview header text color
|
||||
x=66: listview header frame top color
|
||||
x=68: listview header frame middle color
|
||||
x=70: listview header frame bottom color
|
||||
x=72: listview header empty color
|
||||
x=74: scrollbar foreground color
|
||||
x=76: scrollbar background color
|
||||
x=78: inverse scrollbar foreground color
|
||||
x=80: inverse scrollbar background color
|
||||
x=82: scrollbar dead area color
|
||||
*/
|
||||
|
||||
|
||||
#define DCW_SUNKENBORDER 0x00010000
|
||||
#define DCW_DIVIDER 0x00020000
|
||||
|
||||
enum
|
||||
{
|
||||
WADLG_ITEMBG,
|
||||
WADLG_ITEMFG,
|
||||
WADLG_WNDBG,
|
||||
WADLG_BUTTONFG,
|
||||
WADLG_WNDFG,
|
||||
WADLG_HILITE,
|
||||
WADLG_SELCOLOR,
|
||||
WADLG_LISTHEADER_BGCOLOR,
|
||||
WADLG_LISTHEADER_FONTCOLOR,
|
||||
WADLG_LISTHEADER_FRAME_TOPCOLOR,
|
||||
WADLG_LISTHEADER_FRAME_MIDDLECOLOR,
|
||||
WADLG_LISTHEADER_FRAME_BOTTOMCOLOR,
|
||||
WADLG_LISTHEADER_EMPTY_BGCOLOR,
|
||||
WADLG_SCROLLBAR_FGCOLOR,
|
||||
WADLG_SCROLLBAR_BGCOLOR,
|
||||
WADLG_SCROLLBAR_INV_FGCOLOR,
|
||||
WADLG_SCROLLBAR_INV_BGCOLOR,
|
||||
WADLG_SCROLLBAR_DEADAREA_COLOR,
|
||||
WADLG_NUM_COLORS
|
||||
};
|
||||
|
||||
|
||||
|
||||
void WADlg_init(HWND hwndWinamp); // call this on init, or on WM_DISPLAYCHANGE
|
||||
void WADlg_close();
|
||||
|
||||
int WADlg_getColor(int idx);
|
||||
|
||||
int WADlg_handleDialogMsgs(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); //
|
||||
void WADlg_DrawChildWindowBorders(HWND hwndDlg, int *tab, int tabsize); // each entry in tab would be the id | DCW_*
|
||||
|
||||
HBITMAP WADlg_getBitmap();
|
||||
|
||||
|
||||
/// define WA_DLG_IMPLEMENT in one of your source files before including this .h
|
||||
// if you are making a media library plugin, you dont need to do this, look at view_ex for
|
||||
// an example of how to get the function *'s via an IPC message.
|
||||
|
||||
#ifdef WA_DLG_IMPLEMENT
|
||||
|
||||
static HBRUSH wadlg_lastbrush;
|
||||
static HBITMAP wadlg_bitmap; // load this manually
|
||||
static int wadlg_colors[WADLG_NUM_COLORS];
|
||||
static int wadlg_defcolors[WADLG_NUM_COLORS]=
|
||||
{
|
||||
RGB(0,0,0),
|
||||
RGB(0,255,0),
|
||||
RGB(36,36,60),
|
||||
RGB(57,56,66),
|
||||
RGB(255,255,255),
|
||||
RGB(132,148,165),
|
||||
RGB(0,0,198),
|
||||
RGB(36*2,36*2,60*2),
|
||||
RGB(255,255,255),
|
||||
RGB(36*3,36*3,60*3),
|
||||
RGB(36,36,60),
|
||||
RGB(36*0.5,36*0.5,60*0.5),
|
||||
RGB(36,36,60),
|
||||
RGB(36*1,36*1,60*1),
|
||||
RGB(36*1,36*1,60*1),
|
||||
RGB(121,130,150),
|
||||
RGB(78,88,110),
|
||||
RGB(36*1,36*1,60*1),
|
||||
};
|
||||
|
||||
int WADlg_getColor(int idx)
|
||||
{
|
||||
if (idx < 0 || idx >= WADLG_NUM_COLORS) return 0;
|
||||
return wadlg_colors[idx];
|
||||
}
|
||||
|
||||
HBITMAP WADlg_getBitmap()
|
||||
{
|
||||
return wadlg_bitmap;
|
||||
}
|
||||
|
||||
void WADlg_init(HWND hwndWinamp) // call this on init, or on WM_DISPLAYCHANGE
|
||||
{
|
||||
if (wadlg_bitmap) DeleteObject(wadlg_bitmap);
|
||||
wadlg_bitmap = (HBITMAP) SendMessage(hwndWinamp,WM_WA_IPC,0,IPC_GET_GENSKINBITMAP);
|
||||
if (wadlg_bitmap)
|
||||
{
|
||||
HDC tmpDC=CreateCompatibleDC(NULL);
|
||||
HGDIOBJ o=SelectObject(tmpDC,(HGDIOBJ)wadlg_bitmap);
|
||||
int x;
|
||||
for (x = 0; x < WADLG_NUM_COLORS; x ++)
|
||||
{
|
||||
int a=GetPixel(tmpDC,48+x*2,0);
|
||||
if (a == CLR_INVALID || a == RGB(0,198,255)) a=wadlg_defcolors[x];
|
||||
wadlg_colors[x]=a;
|
||||
}
|
||||
|
||||
SelectObject(tmpDC,o);
|
||||
DeleteDC(tmpDC);
|
||||
}
|
||||
}
|
||||
|
||||
void WADlg_close()
|
||||
{
|
||||
if (wadlg_bitmap) DeleteObject(wadlg_bitmap);
|
||||
wadlg_bitmap=0;
|
||||
if (wadlg_lastbrush) DeleteObject(wadlg_lastbrush);
|
||||
wadlg_lastbrush=0;
|
||||
}
|
||||
|
||||
void WADlg_dotLine(HDC hdc, int left, int top, int len, int vert)
|
||||
{
|
||||
for(int i=(top&1);i<len-1;i+=2)
|
||||
{
|
||||
if(vert) {
|
||||
MoveToEx(hdc,left,top+i,NULL);
|
||||
LineTo(hdc,left,top+i+1);
|
||||
} else {
|
||||
MoveToEx(hdc,left+i,top,NULL);
|
||||
LineTo(hdc,left+i+1,top);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int WADlg_handleDialogMsgs(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (uMsg == WM_DRAWITEM)
|
||||
{
|
||||
DRAWITEMSTRUCT *di = (DRAWITEMSTRUCT *)lParam;
|
||||
if (di->CtlType == ODT_BUTTON) {
|
||||
char wt[256];
|
||||
RECT r;
|
||||
GetDlgItemText(hwndDlg,wParam,wt,sizeof(wt));
|
||||
|
||||
HDC hdc = CreateCompatibleDC(di->hDC);
|
||||
SelectObject(hdc,wadlg_bitmap);
|
||||
|
||||
r=di->rcItem;
|
||||
SetStretchBltMode(di->hDC,COLORONCOLOR);
|
||||
|
||||
|
||||
int yoffs = (di->itemState & ODS_SELECTED) ? 15 : 0;
|
||||
|
||||
BitBlt(di->hDC,r.left,r.top,4,4,hdc,0,yoffs,SRCCOPY); // top left
|
||||
StretchBlt(di->hDC,r.left+4,r.top,r.right-r.left-4-4,4,hdc,4,yoffs,47-4-4,4,SRCCOPY); // top center
|
||||
BitBlt(di->hDC,r.right-4,r.top,4,4,hdc,47-4,yoffs,SRCCOPY); // top right
|
||||
|
||||
StretchBlt(di->hDC,r.left,r.top+4,4,r.bottom-r.top-4-4,hdc,0,4+yoffs,4,15-4-4,SRCCOPY); // left edge
|
||||
StretchBlt(di->hDC,r.right-4,r.top+4,4,r.bottom-r.top-4-4,hdc,47-4,4+yoffs,4,15-4-4,SRCCOPY); // right edge
|
||||
|
||||
// center
|
||||
StretchBlt(di->hDC,r.left+4,r.top+4,r.right-r.left-4-4,r.bottom-r.top-4-4,hdc,4,4+yoffs,47-4-4,15-4-4,SRCCOPY);
|
||||
|
||||
|
||||
BitBlt(di->hDC,r.left,r.bottom-4,4,4,hdc,0,15-4+yoffs,SRCCOPY); // bottom left
|
||||
StretchBlt(di->hDC,r.left+4,r.bottom-4,r.right-r.left-4-4,4,hdc,4,15-4+yoffs,47-4-4,4,SRCCOPY); // bottom center
|
||||
BitBlt(di->hDC,r.right-4,r.bottom-4,4,4,hdc,47-4,15-4+yoffs,SRCCOPY); // bottom right
|
||||
|
||||
|
||||
// draw text
|
||||
SetBkMode(di->hDC,TRANSPARENT);
|
||||
SetTextColor(di->hDC,wadlg_colors[WADLG_BUTTONFG]);
|
||||
if (di->itemState & ODS_SELECTED) {r.left+=2; r.top+=2;}
|
||||
DrawText(di->hDC,wt,-1,&r,DT_VCENTER|DT_SINGLELINE|DT_CENTER);
|
||||
DeleteDC(hdc);
|
||||
|
||||
if(GetFocus()==di->hwndItem) {
|
||||
HPEN pen=CreatePen(PS_SOLID,0,RGB(0,0,0));
|
||||
SelectObject(di->hDC,pen);
|
||||
WADlg_dotLine(di->hDC,r.left+2,r.top+2,r.right-r.left-3,0);
|
||||
WADlg_dotLine(di->hDC,r.right-3,r.top+2,r.bottom-r.top-3,1);
|
||||
WADlg_dotLine(di->hDC,r.left+2,r.top+2,r.bottom-r.top-3,1);
|
||||
WADlg_dotLine(di->hDC,r.left+2,r.bottom-3,r.right-r.left-3,0);
|
||||
DeleteObject(pen);
|
||||
}
|
||||
}
|
||||
}
|
||||
switch(uMsg)
|
||||
{
|
||||
case WM_CTLCOLORLISTBOX:
|
||||
case WM_CTLCOLORDLG:
|
||||
case WM_CTLCOLORBTN:
|
||||
case WM_CTLCOLORSTATIC:
|
||||
case WM_CTLCOLOREDIT:
|
||||
{
|
||||
int bgcolor=(uMsg == WM_CTLCOLOREDIT || uMsg == WM_CTLCOLORLISTBOX) ? wadlg_colors[WADLG_ITEMBG] : (uMsg == WM_CTLCOLORBTN ? wadlg_colors[WADLG_ITEMBG] : wadlg_colors[WADLG_WNDBG]);
|
||||
LOGBRUSH lb={BS_SOLID,GetNearestColor((HDC)wParam,bgcolor)};
|
||||
if (wadlg_lastbrush) DeleteObject(wadlg_lastbrush);
|
||||
wadlg_lastbrush=CreateBrushIndirect(&lb);
|
||||
SetTextColor((HDC)wParam,uMsg == WM_CTLCOLORSTATIC ? wadlg_colors[WADLG_WNDFG] : wadlg_colors[WADLG_ITEMFG]);
|
||||
SetBkColor((HDC)wParam,lb.lbColor);
|
||||
return (int)wadlg_lastbrush;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int RectInRect(RECT *rect1, RECT *rect2)
|
||||
{
|
||||
// this has a bias towards true
|
||||
|
||||
// this could probably be optimized a lot
|
||||
return ((rect1->top >= rect2->top && rect1->top <= rect2->bottom) ||
|
||||
(rect1->bottom >= rect2->top && rect1->bottom <= rect2->bottom) ||
|
||||
(rect2->top >= rect1->top && rect2->top <= rect1->bottom) ||
|
||||
(rect2->bottom >= rect1->top && rect2->bottom <= rect1->bottom)) // vertical intersect
|
||||
&&
|
||||
((rect1->left >= rect2->left && rect1->left <= rect2->right) ||
|
||||
(rect1->right >= rect2->left && rect1->right <= rect2->right) ||
|
||||
(rect2->left >= rect1->left && rect2->left <= rect1->right) ||
|
||||
(rect2->right >= rect1->left && rect2->right <= rect1->right)) // horiz intersect
|
||||
;
|
||||
}
|
||||
|
||||
static void WADlg_removeFromRgn(HRGN hrgn, int left, int top, int right, int bottom)
|
||||
{
|
||||
HRGN rgn2=CreateRectRgn(left,top,right,bottom);
|
||||
CombineRgn(hrgn,hrgn,rgn2,RGN_DIFF);
|
||||
DeleteObject(rgn2);
|
||||
}
|
||||
|
||||
void WADlg_DrawChildWindowBorders(HWND hwndDlg, int *tab, int tabsize)
|
||||
{
|
||||
PAINTSTRUCT ps;
|
||||
BeginPaint(hwndDlg,&ps);
|
||||
|
||||
HRGN hrgn=NULL;
|
||||
if(ps.fErase)
|
||||
{
|
||||
RECT r=ps.rcPaint;
|
||||
hrgn=CreateRectRgn(r.left,r.top,r.right,r.bottom);
|
||||
}
|
||||
|
||||
HPEN pen=CreatePen(PS_SOLID,0,wadlg_colors[WADLG_HILITE]);
|
||||
HGDIOBJ o=SelectObject(ps.hdc,pen);
|
||||
|
||||
while (tabsize--)
|
||||
{
|
||||
RECT r;
|
||||
int a=*tab++;
|
||||
GetWindowRect(GetDlgItem(hwndDlg,a&0xffff),&r);
|
||||
ScreenToClient(hwndDlg,(LPPOINT)&r);
|
||||
ScreenToClient(hwndDlg,((LPPOINT)&r)+1);
|
||||
|
||||
if (RectInRect(&ps.rcPaint,&r))
|
||||
{
|
||||
if ((a & 0xffff0000) == DCW_SUNKENBORDER)
|
||||
{
|
||||
MoveToEx(ps.hdc,r.left,r.bottom,NULL);
|
||||
LineTo(ps.hdc,r.right,r.bottom);
|
||||
LineTo(ps.hdc,r.right,r.top-1);
|
||||
if(hrgn)
|
||||
{
|
||||
WADlg_removeFromRgn(hrgn,r.left,r.bottom,r.right,r.bottom+1);
|
||||
WADlg_removeFromRgn(hrgn,r.right,r.top,r.right+1,r.bottom);
|
||||
}
|
||||
}
|
||||
else if ((a & 0xffff0000) == DCW_DIVIDER)
|
||||
{
|
||||
if (r.right - r.left < r.bottom - r.top) // vertical
|
||||
{
|
||||
int left=(r.left+r.right)/2;
|
||||
MoveToEx(ps.hdc,left,r.top,NULL);
|
||||
LineTo(ps.hdc,left,r.bottom+1);
|
||||
if(hrgn) WADlg_removeFromRgn(hrgn,left,r.top,left+1,r.bottom);
|
||||
}
|
||||
else // horiz
|
||||
{
|
||||
int top=(r.top+r.bottom)/2;
|
||||
MoveToEx(ps.hdc,r.left,top,NULL);
|
||||
LineTo(ps.hdc,r.right+1,top);
|
||||
if(hrgn) WADlg_removeFromRgn(hrgn,r.left,top,r.right,top+1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SelectObject(ps.hdc,o);
|
||||
DeleteObject(pen);
|
||||
|
||||
if(hrgn) {
|
||||
//erase bkgnd while clipping out our own drawn stuff (for flickerless display)
|
||||
HBRUSH b=CreateSolidBrush(wadlg_colors[WADLG_WNDBG]);
|
||||
FillRgn(ps.hdc,hrgn,b);
|
||||
DeleteObject(b);
|
||||
DeleteObject(hrgn);
|
||||
}
|
||||
EndPaint(hwndDlg,&ps);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif//_WA_DLG_H_
|
39
Plugins/PluginNowPlaying/SDKs/Winamp/wa_hotkeys.h
Normal file
39
Plugins/PluginNowPlaying/SDKs/Winamp/wa_hotkeys.h
Normal file
@ -0,0 +1,39 @@
|
||||
#ifndef WA_HOTKEYS
|
||||
#define WA_HOTKEYS
|
||||
|
||||
//#define IPC_GEN_HOTKEYS_ADD xxxx //pass a genHotkeysAddStruct * struct in data
|
||||
//
|
||||
//To get the IPC_GEN_HOTKEYS_ADD IPC number, do this:
|
||||
//
|
||||
// genhotkeys_add_ipc=SendMessage(winampWindow,WM_WA_IPC,(WPARAM)&"GenHotkeysAdd",IPC_REGISTER_WINAMP_IPCMESSAGE);
|
||||
//
|
||||
//Then you can use:
|
||||
//
|
||||
// PostMessage(winampWindow,WM_WA_IPC,(WPARAM)&myGenHotkeysAddStruct,genhotkeys_add_ipc);
|
||||
//
|
||||
|
||||
//flags for the genHotkeysAddStruct struct
|
||||
#define HKF_BRING_TO_FRONT 0x1 // calls SetForegroundWindow before sending the message
|
||||
#define HKF_HWND_WPARAM 0x2 // sets wParam with Winamp's window handle
|
||||
#define HKF_COPY 0x4 // copies returned text to the clipboard
|
||||
#define HKF_PLPOS_WPARAM 0x8 // sets wParam with current pledit position
|
||||
#define HKF_ISPLAYING_WL 0x10 // sets wParam to genHotkeysAddStruct's wParam if playing, lParam if not
|
||||
// uses IPC_ISPLAYING to check if playing
|
||||
#define HKF_SHOWHIDE 0x20 // brings Winamp to front or minimizes Winamp if already at front
|
||||
#define HKF_NOSENDMSG 0x40 // don't send any message to the winamp window
|
||||
|
||||
#define HKF_DISABLED 0x80000000
|
||||
|
||||
typedef struct {
|
||||
char *name; //name that will appear in the Global Hotkeys preferences panel
|
||||
DWORD flags; //one or more flags from above
|
||||
UINT uMsg; //message that will be sent to winamp's main window (must always be !=NULL)
|
||||
WPARAM wParam; //wParam that will be sent to winamp's main window
|
||||
LPARAM lParam; //lParam that will be sent to winamp's main window
|
||||
char *id; //unique string to identify this command - case insensitive
|
||||
HWND wnd; //set the HWND to send message (or 0 for main winamp window)
|
||||
|
||||
int extended[6]; //for future extension - always set to zero!
|
||||
} genHotkeysAddStruct;
|
||||
|
||||
#endif
|
1601
Plugins/PluginNowPlaying/SDKs/Winamp/wa_ipc.h
Normal file
1601
Plugins/PluginNowPlaying/SDKs/Winamp/wa_ipc.h
Normal file
File diff suppressed because it is too large
Load Diff
14384
Plugins/PluginNowPlaying/SDKs/iTunes/iTunesCOMInterface.h
Normal file
14384
Plugins/PluginNowPlaying/SDKs/iTunes/iTunesCOMInterface.h
Normal file
File diff suppressed because it is too large
Load Diff
175
Plugins/PluginNowPlaying/SDKs/iTunes/iTunesCOMInterface_i.c
Normal file
175
Plugins/PluginNowPlaying/SDKs/iTunes/iTunesCOMInterface_i.c
Normal file
@ -0,0 +1,175 @@
|
||||
|
||||
|
||||
/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
|
||||
|
||||
/* link this file in with the server and any clients */
|
||||
|
||||
|
||||
/* File created by MIDL compiler version 6.00.0366 */
|
||||
/* at Wed Jun 25 17:02:20 2008
|
||||
*/
|
||||
/* Compiler settings for iTunesCOMInterface.idl:
|
||||
Oicf, W1, Zp8, env=Win32 (32b run)
|
||||
protocol : dce , ms_ext, c_ext, robust
|
||||
error checks: allocation ref bounds_check enum stub_data
|
||||
VC __declspec() decoration level:
|
||||
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
|
||||
DECLSPEC_UUID(), MIDL_INTERFACE()
|
||||
*/
|
||||
//@@MIDL_FILE_HEADING( )
|
||||
|
||||
#pragma warning( disable: 4049 ) /* more than 64k source lines */
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
#endif
|
||||
|
||||
|
||||
#include <rpc.h>
|
||||
#include <rpcndr.h>
|
||||
|
||||
#ifdef _MIDL_USE_GUIDDEF_
|
||||
|
||||
#ifndef INITGUID
|
||||
#define INITGUID
|
||||
#include <guiddef.h>
|
||||
#undef INITGUID
|
||||
#else
|
||||
#include <guiddef.h>
|
||||
#endif
|
||||
|
||||
#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
|
||||
DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
|
||||
|
||||
#else // !_MIDL_USE_GUIDDEF_
|
||||
|
||||
#ifndef __IID_DEFINED__
|
||||
#define __IID_DEFINED__
|
||||
|
||||
typedef struct _IID
|
||||
{
|
||||
unsigned long x;
|
||||
unsigned short s1;
|
||||
unsigned short s2;
|
||||
unsigned char c[8];
|
||||
} IID;
|
||||
|
||||
#endif // __IID_DEFINED__
|
||||
|
||||
#ifndef CLSID_DEFINED
|
||||
#define CLSID_DEFINED
|
||||
typedef IID CLSID;
|
||||
#endif // CLSID_DEFINED
|
||||
|
||||
#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
|
||||
const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
|
||||
|
||||
#endif !_MIDL_USE_GUIDDEF_
|
||||
|
||||
MIDL_DEFINE_GUID(IID, LIBID_iTunesLib,0x9E93C96F,0xCF0D,0x43f6,0x8B,0xA8,0xB8,0x07,0xA3,0x37,0x07,0x12);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITObject,0x9FAB0E27,0x70D7,0x4e3a,0x99,0x65,0xB0,0xC8,0xB8,0x86,0x9B,0xB6);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITSource,0xAEC1C4D3,0xAEF1,0x4255,0xB8,0x92,0x3E,0x3D,0x13,0xAD,0xFD,0xF9);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITSourceCollection,0x2FF6CE20,0xFF87,0x4183,0xB0,0xB3,0xF3,0x23,0xD0,0x47,0xAF,0x41);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITEncoder,0x1CF95A1C,0x55FE,0x4f45,0xA2,0xD3,0x85,0xAC,0x6C,0x50,0x4A,0x73);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITEncoderCollection,0x8862BCA9,0x168D,0x4549,0xA9,0xD5,0xAD,0xB3,0x5E,0x55,0x3B,0xA6);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITEQPreset,0x5BE75F4F,0x68FA,0x4212,0xAC,0xB7,0xBE,0x44,0xEA,0x56,0x97,0x59);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITEQPresetCollection,0xAEF4D111,0x3331,0x48da,0xB0,0xC2,0xB4,0x68,0xD5,0xD6,0x1D,0x08);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITPlaylist,0x3D5E072F,0x2A77,0x4b17,0x9E,0x73,0xE0,0x3B,0x77,0xCC,0xCC,0xA9);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITOperationStatus,0x206479C9,0xFE32,0x4f9b,0xA1,0x8A,0x47,0x5A,0xC9,0x39,0xB4,0x79);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITConvertOperationStatus,0x7063AAF6,0xABA0,0x493b,0xB4,0xFC,0x92,0x0A,0x9F,0x10,0x58,0x75);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITLibraryPlaylist,0x53AE1704,0x491C,0x4289,0x94,0xA0,0x95,0x88,0x15,0x67,0x5A,0x3D);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITUserPlaylist,0x0A504DED,0xA0B5,0x465a,0x8A,0x94,0x50,0xE2,0x0D,0x7D,0xF6,0x92);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITTrack,0x4CB0915D,0x1E54,0x4727,0xBA,0xF3,0xCE,0x6C,0xC9,0xA2,0x25,0xA1);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITTrackCollection,0x755D76F1,0x6B85,0x4ce4,0x8F,0x5F,0xF8,0x8D,0x97,0x43,0xDC,0xD8);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITVisual,0x340F3315,0xED72,0x4c09,0x9A,0xCF,0x21,0xEB,0x4B,0xDF,0x99,0x31);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITVisualCollection,0x88A4CCDD,0x114F,0x4043,0xB6,0x9B,0x84,0xD4,0xE6,0x27,0x49,0x57);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITWindow,0x370D7BE0,0x3A89,0x4a42,0xB9,0x02,0xC7,0x5F,0xC1,0x38,0xBE,0x09);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITBrowserWindow,0xC999F455,0xC4D5,0x4aa4,0x82,0x77,0xF9,0x97,0x53,0x69,0x99,0x74);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITWindowCollection,0x3D8DE381,0x6C0E,0x481f,0xA8,0x65,0xE2,0x38,0x5F,0x59,0xFA,0x43);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IiTunes,0x9DD6680B,0x3EDC,0x40db,0xA7,0x71,0xE6,0xFE,0x48,0x32,0xE3,0x4A);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, DIID__IiTunesEvents,0x5846EB78,0x317E,0x4b6f,0xB0,0xC3,0x11,0xEE,0x8C,0x8F,0xEE,0xF2);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, DIID__IITConvertOperationStatusEvents,0x5C47A705,0x8E8A,0x45a1,0x9E,0xED,0x71,0xC9,0x93,0xF0,0xBF,0x60);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(CLSID, CLSID_iTunesApp,0xDC0C2640,0x1415,0x4644,0x87,0x5C,0x6F,0x4D,0x76,0x98,0x39,0xBA);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(CLSID, CLSID_iTunesConvertOperationStatus,0xD06596AD,0xC900,0x41b2,0xBC,0x68,0x1B,0x48,0x64,0x50,0xFC,0x56);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITArtwork,0xD0A6C1F8,0xBF3D,0x4cd8,0xAC,0x47,0xFE,0x32,0xBD,0xD1,0x72,0x57);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITArtworkCollection,0xBF2742D7,0x418C,0x4858,0x9A,0xF9,0x29,0x81,0xB0,0x62,0xD2,0x3E);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITURLTrack,0x1116E3B5,0x29FD,0x4393,0xA7,0xBD,0x45,0x4E,0x5E,0x32,0x79,0x00);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITAudioCDPlaylist,0xCF496DF3,0x0FED,0x4d7d,0x9B,0xD8,0x52,0x9B,0x6E,0x8A,0x08,0x2E);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITPlaylistCollection,0xFF194254,0x909D,0x4437,0x9C,0x50,0x3A,0xAC,0x2A,0xE6,0x30,0x5C);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITIPodSource,0xCF4D8ACE,0x1720,0x4fb9,0xB0,0xAE,0x98,0x77,0x24,0x9E,0x89,0xB0);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITFileOrCDTrack,0x00D7FE99,0x7868,0x4cc7,0xAD,0x9E,0xAC,0xFD,0x70,0xD0,0x95,0x66);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IITPlaylistWindow,0x349CBB45,0x2E5A,0x4822,0x8E,0x4A,0xA7,0x55,0x55,0xA1,0x86,0xF7);
|
||||
|
||||
#undef MIDL_DEFINE_GUID
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user