diff options
author | Kirill Volinsky <mataes2007@gmail.com> | 2012-08-01 13:18:09 +0000 |
---|---|---|
committer | Kirill Volinsky <mataes2007@gmail.com> | 2012-08-01 13:18:09 +0000 |
commit | 16b3108be10c20c54d8ad47e2dac5b7cd908e3eb (patch) | |
tree | 07e460298ad22f92765dd6dd6bc84b44544e00bf /plugins/SimpleAR/src | |
parent | 1aa6b664f3ba7574673a1ff9735f2264fefa04ee (diff) |
folders renames
git-svn-id: http://svn.miranda-ng.org/main/trunk@1300 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/SimpleAR/src')
-rw-r--r-- | plugins/SimpleAR/src/Common.h | 49 | ||||
-rw-r--r-- | plugins/SimpleAR/src/Main.cpp | 350 | ||||
-rw-r--r-- | plugins/SimpleAR/src/Options.cpp | 160 | ||||
-rw-r--r-- | plugins/SimpleAR/src/Resource.h | 25 | ||||
-rw-r--r-- | plugins/SimpleAR/src/Version.h | 21 |
5 files changed, 605 insertions, 0 deletions
diff --git a/plugins/SimpleAR/src/Common.h b/plugins/SimpleAR/src/Common.h new file mode 100644 index 0000000000..ca873cb2ae --- /dev/null +++ b/plugins/SimpleAR/src/Common.h @@ -0,0 +1,49 @@ +#define MIRANDA_VER 0x0A00
+#define _CRT_SECURE_NO_WARNINGS
+
+// Windows Header Files
+#include <windows.h>
+#include <commctrl.h>
+#include <stdio.h>
+#include <time.h>
+#include <stddef.h>
+#include <process.h>
+#include <string.h>
+#include <winsock.h>
+#include <string>
+#include <winbase.h>
+
+//Miranda SDK headers
+#include "newpluginapi.h"
+#include "m_clist.h"
+#include "m_clui.h"
+#include "m_skin.h"
+#include "m_langpack.h"
+#include "m_protomod.h"
+#include "m_database.h"
+#include "m_system.h"
+#include "m_protocols.h"
+#include "m_userinfo.h"
+#include "m_options.h"
+#include "m_protosvc.h"
+#include "m_utils.h"
+#include "m_ignore.h"
+#include "m_clc.h"
+#include <m_variables.h>
+
+#include "Resource.h"
+#include "Version.h"
+
+#define protocolname "SimpleAutoReplier" //no spaces here :)
+
+#define KEY_ENABLED "Enabled"
+#define KEY_HEADING "Heading"
+#define KEY_REPEATINTERVAL "RepeatInterval"
+
+//General
+extern HINSTANCE hinstance;
+extern BOOL fEnabled;
+extern INT interval;
+extern TCHAR* ptszDefaultMsg[6];
+
+extern INT OptInit(WPARAM wParam,LPARAM lParam);
diff --git a/plugins/SimpleAR/src/Main.cpp b/plugins/SimpleAR/src/Main.cpp new file mode 100644 index 0000000000..62c5a34ce6 --- /dev/null +++ b/plugins/SimpleAR/src/Main.cpp @@ -0,0 +1,350 @@ +/*
+Plugin of miranda IM(ICQ) for Communicating with users of the baseProtocol.
+Copyright (C) 2004 Daniel Savi (dss@brturbo.com)
+
+-> Based on J. Lawler BaseProtocol <-
+
+Added:
+ - plugin option window
+ - make.bat (vc++)
+ - tinyclib http://msdn.microsoft.com/msdnmag/issues/01/01/hood/default.aspx
+ - C++ version
+
+Miranda ICQ: the free icq client for MS Windows
+Copyright (C) 2000-2 Richard Hughes, Roland Rabien & Tristan Van de Vreede
+*/
+
+#include "Common.h"
+
+HINSTANCE hinstance;
+
+HANDLE hPreBuildHook = NULL, hAddEventHook = NULL, hOptHook = NULL, hCheckDefHook = NULL, hOnPreShutdown = NULL, hToggleEnable = NULL, hToggleAutoanswer = NULL;
+HANDLE hToggle = NULL, hEnableMenu = NULL;
+CLISTMENUITEM mi;
+BOOL fEnabled, gbVarsServiceExist = FALSE;
+INT interval;
+int hLangpack;
+
+TCHAR* ptszDefaultMsg[]={
+ _T("I am currently away. I will reply to you when I am back."),
+ _T("I am currently very busy and can't spare any time to talk with you. Sorry..."),
+ _T("I am not available right now."),
+ _T("I am now doing something, I will talk to you later."),
+ _T("I am on the phone right now. I will get back to you very soon."),
+ _T("I am having meal right now. I will get back to you very soon.")
+};
+
+PLUGININFOEX pluginInfoEx = {
+ sizeof(PLUGININFOEX),
+ __PLUGIN_NAME,
+ PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM),
+ __DESCRIPTION,
+ __AUTHOR,
+ __AUTHOREMAIL,
+ __COPYRIGHT,
+ __AUTHORWEB,
+ UNICODE_AWARE,
+ // {46BF191F-8DFB-4656-88B2-4C20BE4CFA44}
+ {0x46bf191f, 0x8dfb, 0x4656, { 0x88, 0xb2, 0x4c, 0x20, 0xbe, 0x4c, 0xfa, 0x44}}
+};
+
+extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion)
+{
+ return &pluginInfoEx;
+}
+
+BOOL WINAPI DllMain(HINSTANCE hinst,DWORD fdwReason,LPVOID lpvReserved)
+{
+ hinstance=hinst;
+ return TRUE;
+}
+
+INT_PTR ToggleEnable(WPARAM wParam, LPARAM lParam)
+{
+ mi.cbSize=sizeof(mi);
+ mi.flags=CMIM_NAME|CMIM_ICON|CMIF_TCHAR;
+ fEnabled=!fEnabled;
+ if (fEnabled)
+ {
+ mi.ptszName = _T("Disable Auto&reply");
+ mi.hIcon = LoadIcon(hinstance, MAKEINTRESOURCE(IDI_ON));
+ }
+ else
+ {
+ mi.ptszName = _T("Enable Auto&reply");
+ mi.hIcon = LoadIcon(hinstance, MAKEINTRESOURCE(IDI_OFF));
+ }
+ CallService(MS_CLIST_MODIFYMENUITEM,(WPARAM)hEnableMenu,(LPARAM)&mi);
+ return 0;
+}
+
+INT_PTR Toggle(WPARAM w, LPARAM l)
+{
+ HANDLE hContact = (HANDLE)w;
+ BOOL on = 0;
+ on = !DBGetContactSettingByte(hContact, protocolname, "TurnedOn", 0);
+ DBWriteContactSettingByte(hContact, protocolname, "TurnedOn", on?1:0);
+ on = on?0:1;
+ mi.cbSize=sizeof(mi);
+ mi.flags = CMIM_NAME |CMIM_ICON | CMIF_TCHAR;
+ mi.ptszName=on?_T("Turn off Autoanswer"):_T("Turn on Autoanswer");
+ mi.hIcon = on?LoadIcon(hinstance, MAKEINTRESOURCE(IDI_OFF)):LoadIcon(hinstance, MAKEINTRESOURCE(IDI_ON));
+ CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hToggle, (LPARAM)&mi);
+ return 0;
+}
+
+INT OnPreBuildContactMenu(WPARAM w, LPARAM l)
+{
+ HANDLE hContact = (HANDLE)w;
+ mi.cbSize=sizeof(mi);
+ mi.flags = CMIM_NAME | CMIM_ICON | CMIF_TCHAR;
+ BOOL on = !DBGetContactSettingByte(hContact, protocolname, "TurnedOn", 0);
+ mi.ptszName = on?_T("Turn off Autoanswer"):_T("Turn on Autoanswer");
+ mi.hIcon = on?LoadIcon(hinstance, MAKEINTRESOURCE(IDI_OFF)):LoadIcon(hinstance, MAKEINTRESOURCE(IDI_ON));
+ CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hToggle, (LPARAM)&mi);
+ return 0;
+}
+
+INT CheckDefaults(WPARAM, LPARAM)
+{
+ DBVARIANT dbv;
+ TCHAR* ptszDefault;
+ char szStatus[6]={0};
+
+ UnhookEvent(hCheckDefHook);
+
+ fEnabled=!DBGetContactSettingByte(NULL,protocolname,KEY_ENABLED,1)==1;
+ interval=DBGetContactSettingWord(NULL,protocolname,KEY_REPEATINTERVAL,300);
+
+ if (DBGetContactSettingTString(NULL,protocolname,KEY_HEADING,&dbv))
+ // Heading not set
+ DBWriteContactSettingTString(NULL,protocolname,KEY_HEADING,TranslateT("Dear %user%, the owner left the following message:"));
+ else
+ DBFreeVariant(&dbv);
+
+ for (int c=ID_STATUS_ONLINE; c<ID_STATUS_IDLE; c++)
+ {
+ mir_snprintf(szStatus,SIZEOF(szStatus),"%d",c);
+ if (c == 40072 || c == 40077 || c == 40078)
+ continue;
+ else
+ {
+ if (DBGetContactSettingTString(NULL,protocolname,szStatus,&dbv))
+ {
+ if (c < 40077)
+ // This mode does not have a preset message
+ ptszDefault=TranslateTS(ptszDefaultMsg[c-ID_STATUS_ONLINE-1]);
+ else if(c > 40078)
+ ptszDefault=TranslateTS(ptszDefaultMsg[c-ID_STATUS_ONLINE-3]);
+ if (ptszDefault)
+ DBWriteContactSettingTString(NULL,protocolname,szStatus,ptszDefault);
+ }
+ else
+ DBFreeVariant(&dbv);
+ }
+ }
+ hPreBuildHook = HookEvent(ME_CLIST_PREBUILDCONTACTMENU, OnPreBuildContactMenu);
+ if (ServiceExists(MS_VARS_FORMATSTRING))
+ gbVarsServiceExist = TRUE;
+
+ ToggleEnable(0,0);
+ return 0;
+}
+
+TCHAR* StrReplace (TCHAR* Search, TCHAR* Replace, TCHAR* Resource)
+{
+ int i = 0;
+ int SearchLen = (int)_tcslen(Search);
+ TCHAR* Work = mir_tstrdup(Replace);
+ int ReplaceLen = (int)_tcslen(Work);
+
+ TCHAR* Pointer = _tcsstr(Resource, Search);
+
+ while (Pointer != NULL)
+ {
+ int PointerLen = (int)_tcslen(Pointer);
+ int ResourceLen = (int)_tcslen(Resource);
+
+ TCHAR* NewText = (TCHAR*)mir_calloc((ResourceLen - SearchLen + ReplaceLen + 1)*sizeof(TCHAR));
+
+ _tcsncpy(NewText, Resource, ResourceLen - PointerLen);
+ _tcscat(NewText, Work);
+ _tcscat(NewText, Pointer + SearchLen);
+
+ Resource = (TCHAR*)mir_realloc(Resource, (ResourceLen - SearchLen + ReplaceLen + 1)*sizeof(TCHAR));
+
+ for (i = 0; i < (ResourceLen - SearchLen + ReplaceLen); i++)
+ Resource[i] = NewText[i];
+ Resource[i] = 0;
+ mir_free(NewText);
+
+ Pointer = _tcsstr(Resource + (ResourceLen - PointerLen + ReplaceLen), Search);
+ }
+ mir_free(Work);
+
+ return Resource;
+}
+
+INT addEvent(WPARAM wParam, LPARAM lParam)
+{
+ HANDLE hContact = (HANDLE)wParam;
+ HANDLE hDBEvent = (HANDLE)lParam;
+ DBEVENTINFO dbei = {sizeof(dbei)};
+
+ if (!fEnabled || !hContact || !hDBEvent)
+ return FALSE; /// unspecifyed error
+
+ char* pszProto = (char*)CallService(MS_PROTO_GETCONTACTBASEPROTO, (WPARAM)hContact, 0);
+ int status = CallProtoService(pszProto, PS_GETSTATUS, 0, 0);
+ if (status == 40072 || status == 40077 || status == 40078)
+ return FALSE;
+
+ CallService(MS_DB_EVENT_GET, (WPARAM)hDBEvent, (LPARAM)&dbei); /// detect size of msg
+
+ if ((dbei.eventType != EVENTTYPE_MESSAGE) || (dbei.flags == DBEF_READ))
+ return FALSE; /// we need EVENTTYPE_MESSAGE event..
+ else
+ { /// needed event has occured..
+ DBVARIANT dbv;
+
+ if (!dbei.cbBlob) /// invalid size
+ return FALSE;
+
+ if (DBGetContactSettingTString(hContact,"Protocol","p",&dbv))
+ // Contact with no protocol ?!!
+ return FALSE;
+ else
+ DBFreeVariant(&dbv);
+
+ if(DBGetContactSettingByte(hContact, "CList", "NotOnList", 0))
+ return FALSE;
+
+ if(DBGetContactSettingByte(hContact, protocolname, "TurnedOn", 0))
+ return FALSE;
+
+ if (!( dbei.flags & DBEF_SENT))
+ {
+ int timeBetween=time(NULL)-DBGetContactSettingDword(hContact,protocolname,"LastReplyTS",0);
+ if (timeBetween>interval || DBGetContactSettingWord(hContact,protocolname,"LastStatus",0)!=status)
+ {
+ char szStatus[6]={0};
+ int msgLen=1;
+ int isQun=DBGetContactSettingByte(hContact,pszProto,"IsQun",0);
+ if (isQun)
+ return FALSE;
+
+ mir_snprintf(szStatus,SIZEOF(szStatus),"%d",status);
+ if (!DBGetContactSettingTString(NULL,protocolname,szStatus,&dbv))
+ {
+ if (*dbv.ptszVal)
+ {
+ DBVARIANT dbvHead={0}, dbvNick={0};
+ TCHAR *ptszTemp, *ptszTemp2;
+
+ DBGetContactSettingTString(hContact,pszProto,"Nick",&dbvNick);
+ if (lstrcmp(dbvNick.ptszVal, NULL) == 0)
+ {
+ DBFreeVariant(&dbvNick);
+ return FALSE;
+ }
+
+ msgLen += (int)_tcslen(dbv.ptszVal);
+ if (!DBGetContactSettingTString(NULL,protocolname,KEY_HEADING,&dbvHead))
+ {
+ ptszTemp = (TCHAR*)mir_alloc(sizeof(TCHAR) * (_tcslen(dbvHead.ptszVal)+1));
+ _tcscpy(ptszTemp, dbvHead.ptszVal);
+ ptszTemp = StrReplace(_T("%user%"), dbvNick.ptszVal, ptszTemp);
+ msgLen += (int)(_tcslen(ptszTemp));
+ }
+ ptszTemp2 = (TCHAR*)mir_alloc(sizeof(TCHAR) * (msgLen+5));
+ mir_sntprintf(ptszTemp2, msgLen+5, _T("%s\r\n\r\n%s"), ptszTemp, dbv.ptszVal);
+ if (ServiceExists(MS_VARS_FORMATSTRING))
+ {
+ FORMATINFO fi;
+
+ ZeroMemory(&fi, sizeof(fi));
+ fi.cbSize = sizeof(fi);
+ fi.flags = FIF_TCHAR;
+ fi.tszFormat = ptszTemp2;
+ ptszTemp = (TCHAR*)CallService(MS_VARS_FORMATSTRING, (WPARAM)&fi, 0);
+ }else
+ ptszTemp = Utils_ReplaceVarsT(ptszTemp2);
+ char* pszUtf = mir_utf8encodeT(ptszTemp);
+ CallContactService(hContact, PSS_MESSAGE, PREF_UTF, (LPARAM)pszUtf);
+
+ dbei.cbSize = sizeof(dbei);
+ dbei.eventType = EVENTTYPE_MESSAGE;
+ dbei.flags = DBEF_UTF | DBEF_SENT; //DBEF_READ;
+ dbei.szModule = pszProto;
+ dbei.timestamp = time(NULL);
+ dbei.cbBlob = lstrlenA(pszUtf) + 1;
+ dbei.pBlob = (PBYTE)pszUtf;
+ CallService(MS_DB_EVENT_ADD, (WPARAM)hContact, (LPARAM)&dbei);
+
+ if (ServiceExists(MS_VARS_FORMATSTRING))
+ CallService(MS_VARS_FREEMEMORY, (WPARAM)ptszTemp, 0);
+ else
+ mir_free(ptszTemp);
+ mir_free(ptszTemp2);
+ mir_free(pszUtf);
+ if (dbvNick.ptszVal)
+ DBFreeVariant(&dbvNick);
+ if (dbvHead.ptszVal)
+ DBFreeVariant(&dbvHead);
+ }
+ DBFreeVariant(&dbv);
+ }
+ }
+ }
+
+ DBWriteContactSettingDword(hContact,protocolname,"LastReplyTS",time(NULL));
+ DBWriteContactSettingWord(hContact,protocolname,"LastStatus",status);
+ }
+ return 0;
+}
+
+INT OnPreShutdown(WPARAM wParam, LPARAM lParam)
+{
+ UnhookEvent(hAddEventHook);
+ UnhookEvent(hPreBuildHook);
+ UnhookEvent(hOptHook);
+ UnhookEvent(hOnPreShutdown);
+ return 0;
+}
+
+extern "C" int __declspec(dllexport)Load(void)
+{
+
+ mir_getLP(&pluginInfoEx);
+
+ hToggleEnable = CreateServiceFunction(protocolname"/ToggleEnable", ToggleEnable);
+ ZeroMemory(&mi, sizeof(mi));
+ mi.cbSize = sizeof(mi);
+ mi.position = 500090000;
+ mi.ptszName = _T("");
+ mi.pszService = protocolname"/ToggleEnable";
+ hEnableMenu = Menu_AddMainMenuItem(&mi);
+
+ hToggleAutoanswer = CreateServiceFunction(protocolname"/ToggleAutoanswer",Toggle);
+ ZeroMemory(&mi, sizeof(mi));
+ mi.cbSize=sizeof(mi);
+ mi.position=-0x7FFFFFFF;
+ mi.ptszName=_T("");
+ mi.pszService=protocolname"/ToggleAutoanswer";
+ hToggle = Menu_AddContactMenuItem(&mi);
+
+ //add hook
+ hOptHook = HookEvent(ME_OPT_INITIALISE, OptInit);
+ hAddEventHook = HookEvent(ME_DB_EVENT_ADDED, addEvent);
+ hCheckDefHook = HookEvent(ME_SYSTEM_MODULESLOADED, CheckDefaults);
+ hOnPreShutdown = HookEvent(ME_SYSTEM_PRESHUTDOWN, OnPreShutdown);
+
+ return 0;
+}
+
+extern "C" __declspec(dllexport)int Unload(void)
+{
+ DestroyServiceFunction(hToggleEnable);
+ DestroyServiceFunction(hToggleAutoanswer);
+ return 0;
+}
\ No newline at end of file diff --git a/plugins/SimpleAR/src/Options.cpp b/plugins/SimpleAR/src/Options.cpp new file mode 100644 index 0000000000..e53236d22c --- /dev/null +++ b/plugins/SimpleAR/src/Options.cpp @@ -0,0 +1,160 @@ +#include "Common.h"
+
+TCHAR* ptszMessage[6]={0};
+INT lastIndex=-1;
+
+INT_PTR CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ switch (msg)
+ {
+ case WM_INITDIALOG:
+ {
+ DBVARIANT dbv;
+ TranslateDialogDefault(hwndDlg);
+ TCHAR* pszStatus;
+ char tszStatus[6]={0};
+
+ CheckDlgButton(hwndDlg,IDC_ENABLEREPLIER,DBGetContactSettingByte(NULL,protocolname,KEY_ENABLED,1)==1);
+ SetDlgItemInt(hwndDlg,IDC_INTERVAL,DBGetContactSettingWord(NULL,protocolname,KEY_REPEATINTERVAL,300)/60,FALSE);
+
+ if (!DBGetContactSettingTString(NULL,protocolname,KEY_HEADING,&dbv))
+ {
+ SetDlgItemText(hwndDlg,IDC_HEADING,dbv.ptszVal);
+ DBFreeVariant(&dbv);
+ }
+
+ for (INT c = ID_STATUS_ONLINE; c < ID_STATUS_IDLE; c++)
+ {
+ mir_snprintf(tszStatus, SIZEOF(tszStatus), "%d", c);
+ pszStatus=(TCHAR*)CallService(MS_CLIST_GETSTATUSMODEDESCRIPTION,(WPARAM)c,GSMDF_TCHAR);
+ if (c == 40072 || c == 40077 || c == 40078)
+ continue;
+ else
+ {
+ SendDlgItemMessage(hwndDlg,IDC_STATUSMODE,CB_ADDSTRING,0,(LPARAM)pszStatus);
+
+ if (!DBGetContactSettingTString(NULL, protocolname, tszStatus, &dbv))
+ {
+ if (c < 40077)
+ ptszMessage[c-ID_STATUS_ONLINE-1] = _tcsdup(dbv.ptszVal);
+ else if (c > 40078)
+ ptszMessage[c-ID_STATUS_ONLINE-3] = _tcsdup(dbv.ptszVal);
+ DBFreeVariant(&dbv);
+ }
+ }
+ }
+
+ SendDlgItemMessage(hwndDlg,IDC_STATUSMODE,CB_SETCURSEL,0,0);
+
+ lastIndex=0;
+ SetDlgItemText(hwndDlg,IDC_MESSAGE,ptszMessage[lastIndex]);
+
+ return TRUE;
+ }
+
+ case WM_COMMAND:
+ switch (LOWORD(wParam))
+ {
+ case IDC_ENABLEREPLIER:
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ break;
+ case IDC_STATUSMODE:
+ // First, save last, then load current
+ if (lastIndex>-1)
+ {
+ INT size=SendDlgItemMessage(hwndDlg,IDC_MESSAGE,WM_GETTEXTLENGTH,0,0)+1;
+ GetDlgItemText(hwndDlg,IDC_MESSAGE,ptszMessage[lastIndex],size);
+ }
+ lastIndex=SendDlgItemMessage(hwndDlg,IDC_STATUSMODE,CB_GETCURSEL,0,0);
+ SetDlgItemText(hwndDlg,IDC_MESSAGE,ptszMessage[lastIndex]);
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ break;
+ case IDC_DEFAULT:
+ SetDlgItemText(hwndDlg,IDC_MESSAGE,TranslateTS(ptszDefaultMsg[lastIndex]));
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ break;
+ case IDC_INTERVAL:
+ case IDC_HEADING:
+ case IDC_MESSAGE:
+ if ((HIWORD(wParam) == BN_CLICKED || HIWORD(wParam) == EN_CHANGE) && (HWND)lParam == GetFocus())
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ break;
+ }
+ break;
+
+ case WM_NOTIFY:
+ switch (((LPNMHDR)lParam)->code)
+ {
+ case PSN_APPLY:
+ {
+ INT size;
+ TCHAR ptszText[1024];
+ char szStatus[6]={0};
+ BOOL translated;
+
+ fEnabled=IsDlgButtonChecked(hwndDlg,IDC_ENABLEREPLIER)==1;
+ DBWriteContactSettingByte(NULL,protocolname,KEY_ENABLED,(BYTE)fEnabled);
+
+ GetDlgItemText(hwndDlg,IDC_HEADING,ptszText,SIZEOF(ptszText));
+ DBWriteContactSettingTString(NULL,protocolname,KEY_HEADING,ptszText);
+
+ size=GetDlgItemInt(hwndDlg,IDC_INTERVAL,&translated,FALSE);
+ if (translated)
+ interval=size*60;
+ DBWriteContactSettingWord(NULL,protocolname,KEY_REPEATINTERVAL,interval);
+
+ size=SendDlgItemMessage(hwndDlg,IDC_MESSAGE,WM_GETTEXTLENGTH,0,0)+1;
+ GetDlgItemText(hwndDlg,IDC_MESSAGE,ptszMessage[lastIndex],size);
+
+ for (int c=ID_STATUS_ONLINE; c<ID_STATUS_IDLE; c++)
+ {
+ if (c == 40072 || c == 40077 || c == 40078)
+ continue;
+ else
+ {
+ mir_snprintf(szStatus,SIZEOF(szStatus),"%d",c);
+
+ if (c<40077 && ptszMessage[c-ID_STATUS_ONLINE-1])
+ DBWriteContactSettingTString(NULL,protocolname,szStatus,ptszMessage[c-ID_STATUS_ONLINE-1]);
+ else if (c>40078 && ptszMessage[c-ID_STATUS_ONLINE-3])
+ DBWriteContactSettingTString(NULL,protocolname,szStatus,ptszMessage[c-ID_STATUS_ONLINE-3]);
+ else
+ DBDeleteContactSetting(NULL,protocolname,szStatus);
+ }
+ }
+ return TRUE;
+ }
+ }
+ break;
+ case WM_DESTROY:
+ for (int c=ID_STATUS_ONLINE; c<ID_STATUS_IDLE; c++)
+ {
+ if (c == 40072 || c == 40077 || c == 40078)
+ continue;
+ else
+ {
+ if (c<40077)
+ ptszMessage[c-ID_STATUS_ONLINE-1]=NULL;
+ else if (c>40078)
+ ptszMessage[c-ID_STATUS_ONLINE-3]=NULL;
+ }
+ }
+ break;
+ }
+ return FALSE;
+}
+
+INT OptInit(WPARAM wParam,LPARAM lParam)
+{
+ OPTIONSDIALOGPAGE odp = { 0 };
+ odp.cbSize = sizeof(odp);
+ odp.position = -790000000;
+ odp.hInstance = hinstance;
+ odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPTION);
+ odp.pszTitle = LPGEN("Simple Auto Replier");
+ odp.pszGroup = LPGEN("Plugins");
+ odp.flags = ODPF_BOLDGROUPS;
+ odp.pfnDlgProc = DlgProcOpts;
+ Options_AddPage(wParam, &odp);
+ return 0;
+}
\ No newline at end of file diff --git a/plugins/SimpleAR/src/Resource.h b/plugins/SimpleAR/src/Resource.h new file mode 100644 index 0000000000..384930dd39 --- /dev/null +++ b/plugins/SimpleAR/src/Resource.h @@ -0,0 +1,25 @@ +//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by resource.rc
+//
+#define IDD_OPTION 102
+#define IDC_ENABLEREPLIER 1001
+#define IDC_HEADING 1002
+#define IDC_STATUSMODE 1004
+#define IDC_MESSAGE 1005
+#define IDC_INTERVAL 1006
+#define IDC_DEFAULT 1007
+#define IDI_ON 103
+#define IDI_OFF 104
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NO_MFC 1
+#define _APS_NEXT_RESOURCE_VALUE 101
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1008
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/plugins/SimpleAR/src/Version.h b/plugins/SimpleAR/src/Version.h new file mode 100644 index 0000000000..8312d378b1 --- /dev/null +++ b/plugins/SimpleAR/src/Version.h @@ -0,0 +1,21 @@ +#define __MAJOR_VERSION 2
+#define __MINOR_VERSION 0
+#define __RELEASE_NUM 2
+#define __BUILD_NUM 6
+
+#define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM
+#define __FILEVERSION_DOTS __MAJOR_VERSION.__MINOR_VERSION.__RELEASE_NUM.__BUILD_NUM
+
+#define __STRINGIFY_IMPL(x) #x
+#define __STRINGIFY(x) __STRINGIFY_IMPL(x)
+#define __VERSION_STRING __STRINGIFY(__FILEVERSION_DOTS)
+
+
+#define __PLUGIN_NAME "SimpleAR"
+#define __INTERNAL_NAME "Simple Auto Replier"
+#define __FILENAME "SimpleAR.dll"
+#define __DESCRIPTION "Simple Auto Replier."
+#define __AUTHOR "Stark Wong, Mataes, Mikel-Ard-Ri"
+#define __AUTHOREMAIL "mikelardri@gmail.com"
+#define __AUTHORWEB "http://miranda-ng.org/"
+#define __COPYRIGHT "© 2012"
|