From 98d0faa2eeddfe260bd337c69b00734b7cff2375 Mon Sep 17 00:00:00 2001 From: mataes2007 Date: Sat, 26 Nov 2011 15:54:11 +0000 Subject: added mBot git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@217 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb --- mBot/src/mbot/functions.cpp | 327 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 327 insertions(+) create mode 100644 mBot/src/mbot/functions.cpp (limited to 'mBot/src/mbot/functions.cpp') diff --git a/mBot/src/mbot/functions.cpp b/mBot/src/mbot/functions.cpp new file mode 100644 index 0000000..fbfa0ea --- /dev/null +++ b/mBot/src/mbot/functions.cpp @@ -0,0 +1,327 @@ +/* + +Miranda Scripting Plugin for Miranda-IM +Copyright 2004-2006 Piotr Pawluczuk (www.pawluczuk.info) + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ +#include "mbot.h" +#include "functions.h" +#include "config.h" + +const char* PHP_ERROR_MSG = "The number of parameters, or their values are incorrect! It's also possible that you called a function which isn't allowed in current stage!"; +const char* PHP_ERROR_EXECUTION = "An error occured while executing your PHP statement/script!\nThere might be some error info in /mbot/(profile)_dbg.txt"; +const char* PHP_ERROR_TITLE = "ERROR"; +const char* PHP_WARN_INVALID_PARAMS = "Invalid parameters given!"; + +/****************************************** + * Load/Unload * + ******************************************/ +PHP_MINIT_FUNCTION(mb_module_entry); + +/* function table */ +zend_function_entry mb_functions[] = +{ + PHP_FE(mb_SelfRegister,NULL) + PHP_FE(mb_SelfEnable,NULL) + PHP_FE(mb_SelfSetInfo,NULL) + //scheduler + PHP_FE(mb_SchReg,NULL) + PHP_FE(mb_SchModify,NULL) + PHP_FE(mb_SchUnreg,NULL) + PHP_FE(mb_SchEnable,NULL) + PHP_FE(mb_SchList,NULL) + //misc + PHP_FE(mb_MsgBox,NULL) + PHP_FE(mb_Echo,NULL) + //msgs + PHP_FE(mb_MsgSend,NULL) + PHP_FE(mb_MsgSetBody,NULL) + //menu + PHP_FE(mb_MenuAdd,NULL) + PHP_FE(mb_MenuModify,NULL) + //clist + PHP_FE(mb_CListEventAdd,NULL) + //system + PHP_FE(mb_SysEnumModules,NULL) + PHP_FE(mb_SysEnumProtocols,NULL) + PHP_FE(mb_SysEnumHandlers,NULL) + PHP_FE(mb_SysGetMirandaDir,NULL) + PHP_FE(mb_SysGetProfileName,NULL) + PHP_FE(mb_SysTranslate,NULL) + PHP_FE(mb_SysQuit,NULL) + PHP_FE(mb_SysCallService,NULL) + PHP_FE(mb_SysCallProtoService,NULL) + PHP_FE(mb_SysCallContactService,NULL) + PHP_FE(mb_SysGetString,NULL) + PHP_FE(mb_SysGetNumber,NULL) + PHP_FE(mb_SysGetPointer,NULL) + PHP_FE(mb_SysPutString,NULL) + PHP_FE(mb_SysPutNumber,NULL) + PHP_FE(mb_SysMalloc,NULL) + PHP_FE(mb_SysFree,NULL) + PHP_FE(mb_SysGlobalAlloc,NULL) + PHP_FE(mb_SysGlobalFree,NULL) + PHP_FE(mb_SysMemCpy,NULL) + PHP_FE(mb_SysBeginThread,NULL) + PHP_FE(mb_SysLoadModule,NULL) + PHP_FE(mb_SysUnLoadModule,NULL) + PHP_FE(mb_SysManageScript,NULL) + PHP_FE(mb_SysShallDie,NULL) + PHP_FE(mb_SysCreateService,NULL) + PHP_FE(mb_SysHookEvent,NULL) + PHP_FE(mb_SysGetProcAddr,NULL) + PHP_FE(mb_SysCallProc,NULL) + //console + PHP_FE(mb_ConsoleShow,NULL) + PHP_FE(mb_ConsoleClear,NULL) + //protocols + PHP_FE(mb_PGetMyStatus,NULL) + PHP_FE(mb_PSetMyStatus,NULL) + PHP_FE(mb_PSetMyAwayMsg,NULL) + PHP_FE(mb_PGetCaps,NULL) + //contact/settings + PHP_FE(mb_CSettingGet,NULL) + PHP_FE(mb_CSettingSet,NULL) + PHP_FE(mb_CGetAwayMsg,NULL) + PHP_FE(mb_CSettingAdd,NULL) + PHP_FE(mb_CSettingDel,NULL) + PHP_FE(mb_CSettingEnum,NULL) + PHP_FE(mb_CGetStatus,NULL) + PHP_FE(mb_CGetUIN,NULL) + PHP_FE(mb_CGetProto,NULL) + PHP_FE(mb_CDelete,NULL) + PHP_FE(mb_CGetDisplayName,NULL) + PHP_FE(mb_CIsOnList,NULL) + PHP_FE(mb_CFindFirst,NULL) + PHP_FE(mb_CFindNext,NULL) + PHP_FE(mb_CFindByUIN,NULL) + PHP_FE(mb_CSetApparentMode,NULL) + PHP_FE(mb_CAddNew,NULL) + PHP_FE(mb_CGetInfo,NULL) + PHP_FE(mb_CAddAuth,NULL) + PHP_FE(mb_CAddSearch,NULL) + PHP_FE(mb_CSendTypingInfo,NULL) + //auth + PHP_FE(mb_AuthGetInfo,NULL) + PHP_FE(mb_AuthDeny,NULL) + PHP_FE(mb_AuthAccept,NULL) + PHP_FE(mb_AuthStore,NULL) + //events + PHP_FE(mb_EventGetCount,NULL) + PHP_FE(mb_EventFindFirst,NULL) + PHP_FE(mb_EventFindFirstUnread,NULL) + PHP_FE(mb_EventFindNext,NULL) + PHP_FE(mb_EventFindPrev,NULL) + PHP_FE(mb_EventFindLast,NULL) + PHP_FE(mb_EventGetData,NULL) + PHP_FE(mb_EventDel,NULL) + PHP_FE(mb_EventMarkRead,NULL) + PHP_FE(mb_EventAdd,NULL) + //sounds + PHP_FE(mb_SoundPlay,NULL) + PHP_FE(mb_SoundAdd,NULL) + PHP_FE(mb_SoundAddEx,NULL) + PHP_FE(mb_SoundDel,NULL) + PHP_FE(mb_SoundSet,NULL) + //popups + PHP_FE(mb_PUMsg,NULL) + PHP_FE(mb_PUAdd,NULL) + PHP_FE(mb_PUAddEx,NULL) + PHP_FE(mb_PUSystem,NULL) + //icons + PHP_FE(mb_IconLoadSys,NULL) + PHP_FE(mb_IconLoadSkin,NULL) + PHP_FE(mb_IconLoadProto,NULL) + PHP_FE(mb_IconLoadSkinnedProto,NULL) + PHP_FE(mb_IconDestroy,NULL) + //search + PHP_FE(mb_SearchBasic,NULL) + PHP_FE(mb_SearchByEmail,NULL) + PHP_FE(mb_SearchByName,NULL) + //dialogs + PHP_FE(mb_DlgGetFile,NULL) + PHP_FE(mb_DlgGetFileMultiple,NULL) + //irc + PHP_FE(mb_IrcGetGuiDataIn,NULL) + PHP_FE(mb_IrcSetGuiDataIn,NULL) + PHP_FE(mb_IrcSetGuiDataOut,NULL) + PHP_FE(mb_IrcInsertRawIn,NULL) + PHP_FE(mb_IrcInsertRawOut,NULL) + PHP_FE(mb_IrcInsertGuiIn,NULL) + PHP_FE(mb_IrcInsertGuiOut,NULL) + PHP_FE(mb_IrcGetData,NULL) + PHP_FE(mb_IrcPostMessage,NULL) + + PHP_FE(mb_DlgCreate,NULL) + PHP_FE(mb_DlgRun,NULL) + PHP_FE(mb_DlgGet,NULL) + PHP_FE(mb_DlgAddControl,NULL) + PHP_FE(mb_DlgGetText,NULL) + PHP_FE(mb_DlgSetText,NULL) + PHP_FE(mb_DlgGetInt,NULL) + PHP_FE(mb_DlgGetIdByParam,NULL) + PHP_FE(mb_DlgSendMsg,NULL) + PHP_FE(mb_DlgSetCallbacks,NULL) + PHP_FE(mb_DlgSetTimer,NULL) + PHP_FE(mb_DlgKillTimer,NULL) + + PHP_FE(mb_DlgListAddItem,NULL) + PHP_FE(mb_DlgListDelItem,NULL) + PHP_FE(mb_DlgListSetItem,NULL) + PHP_FE(mb_DlgListGetItem,NULL) + PHP_FE(mb_DlgListGetSel,NULL) + PHP_FE(mb_DlgListAddCol,NULL) + + PHP_FE(mb_DlgComboAddItem,NULL) + PHP_FE(mb_DlgComboDelItem,NULL) + PHP_FE(mb_DlgComboGetItem,NULL) + PHP_FE(mb_DlgComboGetItemData,NULL) + PHP_FE(mb_DlgComboGetSel,NULL) + + PHP_FE(mb_DlgGetHWND,NULL) + PHP_FE(mb_DlgMove,NULL) + PHP_FE(mb_DlgGetString,NULL) + + //files + PHP_FE(mb_FileInitSend,NULL) + PHP_FE(mb_FileAccept,NULL) + PHP_FE(mb_FileDeny,NULL) + PHP_FE(mb_FileStore,NULL) + PHP_FE(mb_FileCancel,NULL) + PHP_FE(mb_FileGetInfo,NULL) + //asus + PHP_FE(mb_AsusExt,NULL) + + ZEND_FALIAS(mbox,mb_MsgBox,NULL) + {NULL, NULL, NULL} +}; +/* compiled module information */ +zend_module_entry mb_module_entry = +{ + STANDARD_MODULE_HEADER, + "Miranda Scripting Plugin", + mb_functions, + PHP_MINIT(mb_module_entry), + NULL,NULL,NULL,NULL, + NO_VERSION_YET, + STANDARD_MODULE_PROPERTIES +}; + +void* mv_module_entry = (void*)&mb_module_entry; + +/* init_function */ +PHP_MINIT_FUNCTION(mb_module_entry) +{ + extern DWORD g_mbot_version; + extern int g_res_dlg_id; + extern char* g_res_dlg_name; + + g_res_dlg_id = zend_register_list_destructors_ex(help_dlg_destruction_handler,NULL,(char*)g_res_dlg_name,module_number); + + try + { + //events + REGISTER_LONG_CONSTANT("MB_EVENT_MSG_IN",MB_EVENT_MSG_IN,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("MB_EVENT_MSG_OUT",MB_EVENT_MSG_OUT,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("MB_EVENT_URL_IN",MB_EVENT_URL_IN,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("MB_EVENT_AUTH_IN",MB_EVENT_AUTH_IN,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("MB_EVENT_AWAY_MSG_OUT",MB_EVENT_AWAY_MSG_OUT,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("MB_EVENT_AWAY_MSG_REQ",MB_EVENT_AWAY_MSG_REQ,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("MB_EVENT_NEW_CSTATUS",MB_EVENT_NEW_CSTATUS,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("MB_EVENT_NEW_MYSTATUS",MB_EVENT_NEW_MYSTATUS,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("MB_EVENT_COMMAND",MB_EVENT_COMMAND,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("MB_EVENT_STARTUP",MB_EVENT_STARTUP,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("MB_EVENT_SHUTDOWN",MB_EVENT_SHUTDOWN,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("MB_EVENT_USER_TYPING",MB_EVENT_USER_TYPING,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("MB_EVENT_AWAY_MSG_ICQ",MB_EVENT_AWAY_MSG_ICQ,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("MB_EVENT_MENU_COMMAND",MB_EVENT_MENU_COMMAND,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("MB_EVENT_DUMMY",MB_EVENT_MENU_COMMAND,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("MB_EVENT_EXTERNAL",MB_EVENT_EXTERNAL,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("MB_EVENT_FILE_IN",MB_EVENT_FILE_IN,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IRC_EVENT_GUI_IN",IRC_EVENT_GUI_IN,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IRC_EVENT_GUI_OUT",IRC_EVENT_GUI_OUT,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IRC_EVENT_RAW_IN",IRC_EVENT_RAW_IN,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IRC_EVENT_RAW_OUT",IRC_EVENT_RAW_OUT,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("MB_EVENT_CONFIG",MB_EVENT_CONFIG,CONST_CS|CONST_PERSISTENT); + //mbot version + REGISTER_LONG_CONSTANT("MBOT_VERSION",g_mbot_version,CONST_CS|CONST_PERSISTENT); + REGISTER_STRING_CONSTANT("MBOT_TIMESTAMP",__TIMESTAMP__,CONST_CS|CONST_PERSISTENT); + //event types + REGISTER_LONG_CONSTANT("EVENTTYPE_MESSAGE",EVENTTYPE_MESSAGE,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("EVENTTYPE_URL",EVENTTYPE_URL,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("EVENTTYPE_CONTACTS",EVENTTYPE_CONTACTS,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("EVENTTYPE_ADDED",EVENTTYPE_ADDED,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("EVENTTYPE_AUTHREQUEST",EVENTTYPE_AUTHREQUEST,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("EVENTTYPE_FILE",EVENTTYPE_FILE,CONST_CS|CONST_PERSISTENT); + //database types + REGISTER_LONG_CONSTANT("DBVT_BYTE",DBVT_BYTE,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DBVT_WORD",DBVT_WORD,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DBVT_DWORD",DBVT_DWORD,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DBVT_ASCIIZ",DBVT_ASCIIZ,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DBVT_BLOB",DBVT_BLOB,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DBVT_UTF8",DBVT_UTF8,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DBVT_WCHAR",DBVT_WCHAR,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("DBVTF_VARIABLELENGTH",DBVTF_VARIABLELENGTH,CONST_CS|CONST_PERSISTENT); + //status ids + REGISTER_LONG_CONSTANT("ID_STATUS_OFFLINE",40071,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("ID_STATUS_ONLINE",40072,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("ID_STATUS_AWAY",40073,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("ID_STATUS_DND",40074,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("ID_STATUS_NA",40075,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("ID_STATUS_OCCUPIED",40076,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("ID_STATUS_FREECHAT",40077,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("ID_STATUS_INVISIBLE",40078,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("ID_STATUS_ONTHEPHONE",40079,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("ID_STATUS_OUTTOLUNCH",40080,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("ID_STATUS_IDLE",40081,CONST_CS|CONST_PERSISTENT); + //icons + REGISTER_LONG_CONSTANT("IDI_APPLICATION",1,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDI_ASTERISK",2,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDI_ERROR",3,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDI_EXCLAMATION",4,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDI_HAND",5,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDI_INFORMATION",6,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDI_QUESTION",7,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDI_WARNING",8,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDI_WINLOGO",9,CONST_CS|CONST_PERSISTENT); + //skin icons + REGISTER_LONG_CONSTANT("SKINICON_EVENT_MESSAGE",SKINICON_EVENT_MESSAGE,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SKINICON_EVENT_URL",SKINICON_EVENT_URL,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SKINICON_EVENT_FILE",SKINICON_EVENT_FILE,CONST_CS|CONST_PERSISTENT); + //other icons + REGISTER_LONG_CONSTANT("SKINICON_OTHER_MIRANDA",SKINICON_OTHER_MIRANDA,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SKINICON_OTHER_EXIT",SKINICON_OTHER_EXIT,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SKINICON_OTHER_SHOWHIDE",SKINICON_OTHER_SHOWHIDE,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SKINICON_OTHER_GROUPOPEN",SKINICON_OTHER_GROUPOPEN,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SKINICON_OTHER_GROUPSHUT",SKINICON_OTHER_GROUPSHUT,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SKINICON_OTHER_USERONLINE",SKINICON_OTHER_USERONLINE,CONST_CS|CONST_PERSISTENT); + //status mode icons + REGISTER_LONG_CONSTANT("SKINICON_STATUS_OFFLINE",SKINICON_STATUS_OFFLINE,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SKINICON_STATUS_ONLINE",SKINICON_STATUS_ONLINE,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SKINICON_STATUS_AWAY",SKINICON_STATUS_AWAY,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SKINICON_STATUS_NA",SKINICON_STATUS_NA,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SKINICON_STATUS_OCCUPIED",SKINICON_STATUS_OCCUPIED,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SKINICON_STATUS_DND",SKINICON_STATUS_DND,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SKINICON_STATUS_FREE4CHAT",SKINICON_STATUS_FREE4CHAT,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SKINICON_STATUS_INVISIBLE",SKINICON_STATUS_INVISIBLE,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SKINICON_STATUS_ONTHEPHONE",SKINICON_STATUS_ONTHEPHONE,CONST_CS|CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SKINICON_STATUS_OUTTOLUNCH",SKINICON_STATUS_OUTTOLUNCH,CONST_CS|CONST_PERSISTENT); + return SUCCESS; + }catch(...){ + return FAILURE; + } +} \ No newline at end of file -- cgit v1.2.3