0 Members and 1 Guest are viewing this topic.
#include <vcl.h>#include <windows.h>#pragma hdrstop#include "aimp2_sdk.h"IAIMP2Controller *aimp;char * WINAPI __stdcall GetPluginName() { ShowMessage("plg name"); return "plug in ";}char * WINAPI __stdcall GetPluginAuthor() { ShowMessage("plg aut"); return "zoonman@gmail.com";}void WINAPI Initialize(IAIMP2Controller *AController) { unsigned int ver = AController->AIMP_GetSystemVersion(); ShowMessage(IntToStr(ver)); aimp = AController; ShowMessage("init");}void WINAPI ShowSettingsDialog(HWND AParentWindow){ ShowMessage("sett");}void WINAPI Finalize() { ShowMessage("fin");}BOOL WINAPI GetHasSettingsDialog() { ShowMessage("ghsd"); return 0;}extern "C" __declspec(dllexport) IAIMPAddonHeader* AIMP_QueryAddon(AIMPAddonHeader *str) { str->version = 0; str->InitFuncPtr = Initialize; str->PlgNameFuncPtr = GetPluginName; str->AutorFuncPtr = GetPluginAuthor; str->FreeFuncPtr = Finalize; ShowMessage("query"); return (IAIMPAddonHeader*)str;}#pragma argsusedint WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved){ //ShowMessage("reason:" + IntToStr(reason)); return 1;}
typedef BOOL (WINAPI *AIMPAddonHeaderProc)(IAIMPAddonHeader *AHeader);// Export function name: AIMP_QueryAddonEx
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;};
TAIMPAddonHeader plugin ={ PLUGIN_VERSION, 0, GetPlgName, GetAuthor, Init, Config, Free};...extern "C" __declspec( dllexport ) PAIMPAddonHeader AIMP_QueryAddon(){ return &plugin;}
struct AIMPAddonHeader{ DWORD version; DWORD DllInstance; GetPlgNameFunc PlgNameFuncPtr; GetAutorFunc AutorFuncPtr; InitFunc InitFuncPtr; ConfigFunc ConfigFuncPtr; FreeFunc FreeFuncPtr;};
#include <vcl.h>#include <windows.h>#pragma hdrstop#include "aimp2_sdk.h"#include <alloc.h>#define PLUGIN_VERSION 1IAIMP2Controller *aimp;PCHAR WINAPI __stdcall GetPlgName() { return "My Plugin";}PCHAR WINAPI __stdcall GetAuthor() { return "zoonman";}// callback функция при смене трекаvoid __stdcall TrackPlay(DWORD User, DWORD dwCBType) {AIMP2FileInfo *aif;bool r; r = aimp->AIMP_GetCurrentTrack(aif); if (r) ShowMessage("True!"); AnsiString a; a = WideCharToString(aif->sArtist); ShowMessage(a);}void WINAPI Init(IAIMP2Controller *AController) { AController->AIMP_CallBack_Set(AIMP_PLAY_FILE,TrackPlay, 1); // функция, вызывается при смене состояния aimp = AController;}void WINAPI Config(DWORD Handle, DWORD Win) {// }void WINAPI Free() { //ShowMessage("fin");};/*Инициализация структуры плагина*/AIMPAddonHeader plugin = { PLUGIN_VERSION, 0, GetPlgName, GetAuthor, Init, Config, Free};extern "C" __declspec( dllexport ) AIMPAddonHeader* AIMP_QueryAddon(){ return &plugin;}#pragma argsusedint WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved){// ShowMessage("reason:" + IntToStr(reason)); return 1;}
var APls: TAIMP2FileInfo; ATitleBuf: array[0..127] of WideChar; // Buffer for restore title of trackbegin // Собственно это и есть запрос информации о файле FillChar(APls, SizeOF(APls), 0); APls.cbSizeOF := SizeOF(APls); // Инициализация буфера APls.sTitle := @ATitleBuf; APls.nTitleLen := 128; // if AIMPController.AIMP_GetCurrentTrack(@APls) then
ZeroMemory(&aif, sizeof(AIMP2FileInfo));
void WINAPI __stdcall TrackPlay(DWORD User, DWORD dwCBType) { AIMP2FileInfo *aif; WCHAR sArt[128]={101}; bool r; /* allocate memory */ if ((aif = (AIMP2FileInfo *) malloc(1024)) == NULL) { MessageBox(NULL, "no memory","--",MB_OK ); // exit(1); /* terminate program if out of memory */ } //_wmemset((void *)aif, 0, sizeof(aif) ); aif->cbSizeOf = 1024; aif->sArtist = sArt; aif->nArtistLen=64;// _wmemset((void *)aif, 0, sizeof(aif) ); ZeroMemory(&aif, sizeof(aif)); r = aimp->AIMP_GetCurrentTrack(aif); if (r) ShowMessage("True!"); AnsiString a; a = WideCharToString(aif->sArtist); ShowMessage(a);}
IAIMP2Controller *cnt;int lng=cnt->AIMP_Status_Get(AIMP_STS_LENGTH);Edit3->Text=lng;
#include <vcl.h>#include <windows.h>#include <winsock2.h>#include <stdio.h>#include <stdlib.h>#include <time.h>#pragma hdrstop#include "aimp2_sdk.h"#include "unit1.h"#define PLUGIN_VERSION 1int s;WSADATA lpWSAData;IAIMP2Controller *aimp;PCHAR WINAPI __stdcall GetPlgName() { return "My Plugin";}PCHAR WINAPI __stdcall GetAuthor() { return "zoonman";}// функция, которая вызывается, когда начинает проигрываться трекvoid WINAPI __stdcall TrackPlay(DWORD User, DWORD dwCBType) { AIMP2FileInfo aif; WCHAR sArt[256]={L""}; WCHAR sTit[256]={L""}; bool r;// чистим память ZeroMemory(&aif, sizeof(aif)); aif.cbSizeOf = sizeof(aif); aif.sArtist = sArt; aif.nArtistLen=256; aif.sTitle = sTit; aif.nTitleLen = 256; r = aimp->AIMP_GetCurrentTrack(&aif); if (r) {// ShowMessage(WideCharToString(aif.sArtist) + '=' + WideCharToString(aif.sTitle)); } AnsiString st,str,rstr; str = WideCharToString(aif.sTitle); // теперь в str строчка с заголовком трека}// ---void WINAPI Init(IAIMP2Controller *AController) {// связываем функцию-обработчик TrackPlay() с событием AIMP_PLAY_FILE AController->AIMP_CallBack_Set(AIMP_PLAY_FILE,TrackPlay, 1); aimp = AController;}void WINAPI Config(DWORD Handle, DWORD Win) {// тут надо бы поместить код для настройки св-в модуля}void WINAPI Free() {// а тут по-хорошему грохнуть структуру aimp };/*Инициализация структуры плагина*/AIMPAddonHeader plugin = { PLUGIN_VERSION, 0, GetPlgName, GetAuthor, Init, Config, Free};extern "C" __declspec( dllexport ) AIMPAddonHeader* AIMP_QueryAddon(){ return &plugin;}#pragma argsusedint WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved){ return 1;}//---------------------------------------------------------------------------