/* CmdLine plugin for Miranda IM Copyright © 2007 Cristian Libotean 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. */ #ifndef M_MIMCMD_DATA_H #define M_MIMCMD_DATA_H #define COMMAND_SIZE 64 #define HELP_SIZE 1024 #define REPLY_SIZE 8096 #define MIMFOLDER_SIZE 300 #define MAX_ARGUMENTS 20 #define ARGUMENT_SIZE 512 typedef char TArgument[ARGUMENT_SIZE]; struct TReply{ int code; char message[REPLY_SIZE]; static const int cMessage = REPLY_SIZE; }; typedef TReply *PReply; struct TCommand{ long ID; char command[COMMAND_SIZE]; char help[HELP_SIZE]; }; typedef TCommand *PCommand; struct TSharedData{ char mimFolder[MIMFOLDER_SIZE]; TCommand command; TArgument arguments[MAX_ARGUMENTS]; int cArguments; TReply reply; int instances; }; typedef TSharedData *PSharedData; //return codes #define MIMRES_SUCCESS 0 //command was successful #define MIMRES_FAILURE 1 //command was not successful #define MIMRES_NOTFOUND 2 //command not found #define MIMRES_UNKNOWNPARAM 3 //command parameter is unknown #define MIMRES_NOMIRANDA 4 //could not link to Miranda #define MIMRES_WRONGPARAMSCOUNT 5 //wrong number of parameters #define MIMCMD_UNKNOWN -1 //unknown command #define MIMCMD_STATUS 1 #define MIMCMD_AWAYMSG 2 #define MIMCMD_XSTATUS 3 #define MIMCMD_POPUPS 4 #define MIMCMD_SOUNDS 5 #define MIMCMD_CLIST 6 #define MIMCMD_QUIT 7 #define MIMCMD_HELP 8 #define MIMCMD_EXCHANGE 9 #define MIMCMD_YAMN 10 #define MIMCMD_CALLSERVICE 11 #define MIMCMD_MESSAGE 12 #define MIMCMD_DATABASE 13 #define MIMCMD_PROXY 14 #define MIMCMD_CONTACTS 15 #define MIMCMD_HISTORY 16 #define MIMCMD_VERSION 17 #define MIMCMD_SETNICKNAME 18 #define MIMCMD_IGNORE 19 #define MIMCMD_HELP_STATUS "Change account status either globally or per account.\nUsage: status [].\nPossible values for are: offline, online, away, dnd, na, occupied, freechat, invisible, onthephone, outtolunch.\n is the name of the account. If it's not specified then the command will issue a global status change." #define MIMCMD_HELP_AWAYMSG "Change away message either globally or per account.\nUsage: awaymsg [].\n is the new away message.\n is an optional parameter specifying the account to set the away message for. If not specified then the away message will be set globally." #define MIMCMD_HELP_XSTATUS "Change extended status either globally or per account.\nUsage xstatus [].\n is the new extended status to set. Possible values are:...\n is an optional parameter specifying the account for which extended status is set. If not specified then extended status for all accounts will be changed.\nNOTE: Not all accounts/protocols support extended status." #define MIMCMD_HELP_POPUPS "Disables or enables popups display.\nUsage popups (disable | enable | toggle).\nThe command will either enable or disable popups display." #define MIMCMD_HELP_SOUNDS "Disables or enables sounds.\nUsage: sounds (disable | enable | toggle).\nThe command will either disable or enable sounds." #define MIMCMD_HELP_CLIST "Hides or shows the contact list window.\nUsage: clist (show | hide | toggle).\nThe command will either show or hide the contact list window." #define MIMCMD_HELP_QUIT "Closes Miranda.\nUsage: quit [wait]. If wait is used then the command will return only when CmdLine plugin has been unloaded by Miranda." #define MIMCMD_HELP_HELP "Provides help on other commands.\nUsage: help [].\nThe command will print help information for other commands. If run without any parameters it will print available commands." #define MIMCMD_HELP_EXCHANGE "Notifies Exchange plugin to check for email.\nUsage: exchange check" #define MIMCMD_HELP_YAMN "Notifies YAMN plugin to check for email.\nUsage: yamn check." #define MIMCMD_HELP_CALLSERVICE "Calls a Miranda service.\nUsage: callservice (d|s) (d|s). The command will call Miranda service using wParam and lParam as arguments; the first letter of the paramater must be either 'd' if the parameter is a decimal number or 's' if the parameter is a string. Be careful when you use this function as you can only pass numbers and strings as data.\nNOTE:If you pass invalid data to a service Miranda might crash." #define MIMCMD_HELP_MESSAGE "Sends a message to the specified contact(s).\nUsage: message [ [ [...]]] . The command will send to the specified contact(s) - at least one contact must be specified - all parameters except the last one are considered recipients.\n has the following format:[:]. is the contact display name or unique ID and is an optional parameter representing the account of the contact (useful in case there is more than one contact with the same name).\nNOTE:The message string cannot exceed 512 characters." #define MIMCMD_HELP_DATABASE "Allows you to manage database settings.\nUsage:\n db set (b|i|d|s|w)\n db delete \n db get .\nThe command can set a database entry to the specified value (if the entry does not exist it will be created) as well as read or delete a specified database entry. is the name of the module where the key should be located, is the name of the key and is the value to be written. A character must be placed before in order to specify what kind of data to write: b - byte, i - integer (word), d - double word, s - string, w - wide string." #define MIMCMD_HELP_PROXY "Configures proxy settings either globally or per account.\nUsage: proxy (global|) [].\n is one of the following settings:\n status (disable | enable | toggle).\n server " #define MIMCMD_HELP_CONTACTS "Allows you to search/list contacts or open a message windows for specified contacts.\nUsage:\n contacts list [ [account:] [id:] [status:] [ [...]]]. The command will search all contacts and display the ones matching the search criteria. To search for a specific account use the keyword 'account:'. To search for contacts that have a certain id use the keyword 'id:'. To search for contacts that have a certain status use 'status:'.\n contacts open [ [account:] [id:] [status:] [ [...]]]. The command will open a message window for all contacts that match the search criteria. To search for a specific account use the keyword 'account:'. To search for contacts that have a certain id use the keyword 'id:'. To search for contacts that have a certain status use 'status:'. If no keyword is specified the command will open a message window for all contacts that have unread messages." #define MIMCMD_HELP_HISTORY "Shows history or unread messages for a contact.\nUsage:\n history .\n is one of the following commands:\n unread - show unread messages for that contact.\n show - show history from event number to . If any number is negative it is interpreted as a relative index from the last event number + 1 (so the last event for a contact is -1)." #define MIMCMD_HELP_VERSION "Shows version information for Miranda and CmdLine plugin. If VersionInfo plugin is installed it will use its report instead.\nUsage:\n version. The command will print Miranda's and CmdLine's version numbers or, if VersionInfo plugin is installed, it will show VersionInfo's report." #define MIMCMD_HELP_SETNICKNAME "Changes the user's nickname on the given protocol to the new name.\nUsage:\n setnickname new_nickname" #define MIMCMD_HELP_IGNORE "Ignores or removes ignore flags for specific contacts.\nUsage:\n ignore (block | unblock) [ [ [..]]]. Ignores or removes ignore flags for the specified contacts." #define MIMMEM_REPLY 1 //data is a PReply structure extern TCommand mimCommands[]; extern int cMimCommands; void InitCommandData(); void DestroyCommandData(); #endif //M_MIMCMD_DATA_H