//--------------------------------------------------------------------------- #include "common.h" #include "options.h" PLUGINLINK *pluginLink; HINSTANCE hInst; PLUGININFO pluginInfo={ sizeof(PLUGININFO), "Random Message Changer", PLUGIN_MAKE_VERSION(0,0,2,2), "Loads a random Status-Message from a file.", "Christian Weihs & Scott Ellis", "mail@scottellis.com.au", "2003 Christian Weihs, 2006 Scott Ellis", "http://www.scottellis.com.au", 0, 0 }; //--------------------------------------------------------------------------- extern "C" BOOL APIENTRY DllMain(HMODULE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { hInst=hinstDLL; return TRUE; } //--------------------------------------------------------------------------- extern "C" __declspec(dllexport) PLUGININFO* MirandaPluginInfo(DWORD mirandaVersion) { return &pluginInfo; } UINT TimerId; void ChangeAllProtoMessages(int statusMode, char *msg) { int protoCount,i; PROTOCOLDESCRIPTOR **proto; CallService(MS_PROTO_ENUMPROTOCOLS,(WPARAM)&protoCount,(LPARAM)&proto); for(i=0;iszName,PS_SETAWAYMSG,statusMode,(LPARAM)msg); } // sucht eine neue Message heraus. char *GetRandomLine(char *file, char *buff, int bufflen) { if (file == 0 || file[0] == 0 || file[0] == ':') return 0; FILE *inFile = fopen(file, "rt"); if (!inFile){ KillTimer(NULL, TimerId); MessageBox(NULL, Translate("Can't open file!"), Translate("RMC Error"), MB_OK | MB_ICONERROR); return 0; } char *line[1000]; char zeile[2048]; int i=0; while( i < 1000 && !feof(inFile)) { fgets(zeile, sizeof(zeile), inFile); unsigned int x=0; bool test=false; while(x < sizeof(zeile) && zeile[x]!=0) { if(zeile[x] == '#' || zeile[x] == '\r' || zeile[x] == '\n') { zeile[x] = 0; x = sizeof(zeile); } else { if(zeile[x]!= ' ') test=true; if (zeile[x] == '\\' && zeile[x+1] == 'n') { zeile[x+1]= '\n'; zeile[x]= '\r'; } } x++; } if(test) line[i++]=strdup(zeile); } fclose(inFile); if(i != 0) { int num = rand()%i; strncpy(buff,line[num],bufflen); for(int x=0;x