Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define AQQ_SYSTEM_MSGCOMPOSING L"AQQ/System/MsgComposing"
- #define AQQ_SYSTEM_ERROR L"AQQ/System/Error"
- #define AQQ_SYSTEM_MODULESLOADED L"AQQ/System/ModulesLoaded"
- #define AQQ_SYSTEM_ADDSMSGATE L"AQQ/System/AddSMSGate"
- #define AQQ_SYSTEM_REMOVESMSGATE L"AQQ/System/RemoveSMSGate"
- #define AQQ_SYSTEM_GETAGENTS L"AQQ/System/GetAgents"
- #define AQQ_SYSTEM_SETAGENT L"AQQ/System/SetAgent"
- #define AQQ_SYSTEM_ISAGENTENABLED L"AQQ/System/IsAgentEnabled"
- #define AQQ_SYSTEM_REMOVEAGENT L"AQQ/System/RemoveAgent"
- #define AQQ_SYSTEM_GETIMPEXP L"AQQ/System/GetImpExp"
- #define AQQ_SYSTEM_ADDIMPEXP L"AQQ/System/AddImpExp"
- #define AQQ_SYSTEM_QUERY L"AQQ/System/Query"
- #define AQQ_SYSTEM_QUERYEX L"AQQ/System/QueryEx"
- #define AQQ_SYSTEM_SMSSUPPORTED L"AQQ/System/SMSSupported"
- #define AQQ_SYSTEM_SMSCONFIG L"AQQ/System/SMSConfig"
- #define AQQ_SYSTEM_SMSSEND L"AQQ/System/SMSSend"
- #define AQQ_SYSTEM_SETNOTE L"AQQ/System/SetNote"
- //#define AQQ_SYSTEM_DESTROYSERIVCEFUNCTION L"AQQ/System/DestroyServiceFunction"
- #define AQQ_SYSTEM_STATECHANGE L"AQQ/System/StateChange"
- #define AQQ_SYSTEM_SETLASTSTATE L"AQQ/System/SetLastState"
- #define AQQ_SYSTEM_RUNACTION L"AQQ/System/RunAction"
- #define AQQ_SYSTEM_SENDXML L"AQQ/System/SendXML"
- #define AQQ_SYSTEM_XMLIDDEBUG L"AQQ/System/XMLIDDebug"
- #define AQQ_SYSTEM_ONLINECHECK L"AQQ/System/OnlineCheck"
- #define AQQ_SYSTEM_DEBUG_XML L"AQQ/System/Debug/XML"
- #define AQQ_SYSTEM_DISCONNECT L"AQQ/System/Disconnect"
- #define AQQ_SYSTEM_AUTOMATION_AUTOAWAY_ON L"AQQ/System/Automation/AutoAway/On"
- #define AQQ_SYSTEM_AUTOMATION_AUTOAWAY_OFF L"AQQ/System/Automation/AutoAway/Off"
- #define AQQ_SYSTEM_ONCONNECT_SILENCE L"AQQ/System/OnConnect/Silence"
- #define AQQ_SYSTEM_GETCURRENTSHOWTYPE_PATH L"AQQ/System/GetCurrentShowType/Path"
- #define AQQ_SYSTEM_GETCURRENTJID L"AQQ/System/GetCurrentJID"
- #define AQQ_SYSTEM_THEMECHANGED L"AQQ/System/ThemeChanged"
- #define AQQ_SYSTEM_MAXSTATUSLENGTH L"AQQ/System/MaxStatusLength"
- #define AQQ_SYSTEM_MAXMSGLENGTH L"AQQ/System/MaxMsgLength"
- #define AQQ_SYSTEM_GETNEWCACHEITEMPATH L"AQQ/System/GetNewCacheItemPath"
- #define AQQ_SYSTEM_PERFORM_COPYDATA L"AQQ/System/Perform/CopyData"
- #define AQQ_SYSTEM_FORCESTATUS L"AQQ/System/ForceStatus"
- #define AQQ_SYSTEM_CLIPBOARD_JID L"AQQ/System/Clipboard/JID"
- #define AQQ_SYSTEM_TABCHANGE L"AQQ/System/TabChange"
- #define AQQ_SYSTEM_INTERPRET_XML L"AQQ/System/Interpret/XML"
- #define AQQ_SYSTEM_TRANSFER_STATUS_CHANGE L"AQQ/System/Transfer/Status/Change"
- #define AQQ_SYSTEM_AUTOMATION_AUTOSECURE L"AQQ/System/Automation/AutoSecure"
- #define AQQ_SYSTEM_AUTOSECURE_ON L"AQQ/System/AutoSecure/On"
- #define AQQ_SYSTEM_AUTOSECURE_OFF L"AQQ/System/AutoSecure/Off"
- #define AQQ_SYSTEM_MSGCONTEXT_POPUP L"AQQ/System/OnMsgContent/Popup"
- #define AQQ_SYSTEM_MSGCONTEXT_CLOSE L"AQQ/System/OnMsgContent/Close"
- //#define AQQ_SYSTEM_PLUGIN_NETWORKS L"AQQ/System/GetPlugin/Networks"
- //Tabs
- #define TAB_JABBER 1
- //Windows
- #define AQQ_WINDOW_SETNOTE_PUTNOTE L"AQQ/Window/SetNote/PutNote"
- #define AQQ_WINDOW_SETNOTE_NOTE L"AQQ/Window/SetNote/Note"
- #define AQQ_WINDOW_SETNOTE_CLOSE L"AQQ/Window/SetNote/Close"
- //Services
- #define AQQ_CONTROLS_TOOLBAR L"AQQ/Controls/Toolbar/"
- #define AQQ_CONTROLS_CREATEBUTTON L"/CreateButton"
- #define AQQ_CONTROLS_DESTROYBUTTON L"/DestroyButton"
- #define AQQ_CONTROLS_UPDATEBUTTON L"/UpdateButton"
- #define AQQ_CONTROLS_GETPOPUPMENUITEM L"AQQ/Controls/GetPopupMenuItem"
- #define AQQ_CONTROLS_CREATEPOPUPMENU L"AQQ/Controls/CreatePopUpMenu"
- #define AQQ_CONTROLS_CREATEPOPUPMENUITEM L"AQQ/Controls/CreatePopUpMenuItem"
- #define AQQ_CONTROLS_DESTROYPOPUPMENU L"AQQ/Controls/DestroyPopUpMenu"
- #define AQQ_CONTROLS_DESTROYPOPUPMENUITEM L"AQQ/Controls/DestroyPopUpMenuItem"
- #define AQQ_CONTROLS_MAINSTATUS_SETPANELTEXT L"AQQ/Controls/MainStatus/SetPanelText"
- #define AQQ_CONTROLS_WEBBROWSER_CREATE L"AQQ/Controls/WebBrowser/Create"
- #define AQQ_CONTROLS_WEBBROWSER_NAVIGATE L"AQQ/Controls/WebBrowser/Navigate"
- #define AQQ_CONTROLS_WEBBROWSER_NAVCOMPLETE L"AQQ/Controls/WebBrowser/NavComplete"
- #define AQQ_CONTROLS_WEBBROWSER_SETID L"AQQ/Controls/WebBrowser/SetID"
- #define AQQ_CONTROLS_WEBBROWSER_BEFORENAV L"AQQ/Controls/WebBrowser/BeforeNav"
- #define AQQ_CONTROLS_WEBBROWSER_STATUSCHANGE L"AQQ/Controls/WebBrowser/StatusChange"
- #define AQQ_CONTROLS_WEBBROWSER_TITLECHANGE L"AQQ/Controls/WebBrowser/TitleChange"
- #define AQQ_CONTROLS_WEBBROWSER_DESTROY L"AQQ/Controls/WebBrowser/Destroy"
- #define AQQ_CONTACTS_ADD L"AQQ/Contacts/Add"
- #define AQQ_CONTACTS_CREATE L"AQQ/Contacts/Create"
- #define AQQ_CONTACTS_UPDATEGROUPS L"AQQ/Contacts/UpdateGroups"
- #define AQQ_CONTACTS_DELETE L"AQQ/Contacts/Delete"
- #define AQQ_CONTACTS_DESTROYDOMAIN L"AQQ/Contacts/DestroyDomain"
- #define AQQ_CONTACTS_UPDATE L"AQQ/Contacts/Update"
- #define AQQ_CONTACTS_MESSAGE L"AQQ/Contacts/Message"
- #define AQQ_CONTACTS_PRESENDMSG L"AQQ/Contacts/PreSendMsg"
- #define AQQ_CONTACTS_SENDMSG L"AQQ/Contacts/SendMsg"
- #define AQQ_CONTACTS_RECVMSG L"AQQ/Contacts/RecvMsg"
- #define AQQ_CONTACTS_SENDPIC L"AQQ/Contacts/SendPic"
- #define AQQ_CONTACTS_SENDPIC_SIZECHECK L"AQQ/Contacts/SendPic/SizeCheck"
- #define AQQ_CONTACTS_SENDFILE L"AQQ/Contacts/SendFile"
- #define AQQ_CONTACTS_ICONSHOWTYPE_PATH L"AQQ/Contacts/IconShowType/Path"
- #define AQQ_CONTACTS_ICONSHOWTYPE_INDEX L"AQQ/Contacts/IconShowType/Index"
- #define AQQ_CONTACTS_SETOFFLINE L"AQQ/Contacts/SetOffline"
- #define AQQ_CONTACTS_OFFLINE L"AQQ/Contacts/Offline"
- #define AQQ_CONTACTS_GETSEARCHXML L"AQQ/Contacts/GetSearchXML"
- #define AQQ_CONTACTS_SETSEARCHXML L"AQQ/Contacts/SetSearchXML"
- #define AQQ_CONTACTS_RESSEARCHXML L"AQQ/Contacts/ResSearchXML"
- #define AQQ_CONTACTS_ERRSEARCHXML L"AQQ/Contacts/ErrSearchXML"
- #define AQQ_CONTACTS_LASTSEARCHID L"AQQ/Contacts/LastSearchID"
- #define AQQ_CONTACTS_CHANGENAME L"AQQ/Contacts/ChangeName"
- #define AQQ_CONTACTS_CHANGEGROUPNAME L"AQQ/Contacts/ChangeGroupName"
- #define AQQ_CONTACTS_GETVCARD L"AQQ/Contacts/GetVCard"
- #define AQQ_CONTACTS_RESVCARD L"AQQ/Contacts/ResVCard"
- #define AQQ_CONTACTS_BUDDY_SELECTED L"AQQ/Contacts/Buddy/Selected"
- #define AQQ_CONTACTS_BUDDY_ACTIVETAB L"AQQ/Contacts/Buddy/ActiveTab"
- #define AQQ_ICONS_LOADPNGICON L"AQQ/Icons/LoadPNGIcon"
- #define AQQ_ICONS_REPLACEPNGICON L"AQQ/Icons/ReplacePNGIcon"
- #define AQQ_ICONS_DESTROYPNGICON L"AQQ/Icons/DestroyPNGIcon"
- #define AQQ_FUNCTION_GETPLUGINDIR L"AQQ/Function/GetPluginDir"
- #define AQQ_FUNCTION_GETUSERDIR L"AQQ/Function/GetUserDir"
- #define AQQ_FUNCTION_GETPLUGINUSERDIR L"AQQ/Function/GetPluginUserDir"
- #define AQQ_FUNCTION_GETLANGSTR L"AQQ/Function/GetLangStr"
- #define AQQ_FUNCTION_GETTOKEN L"AQQ/Function/GetToken"
- #define AQQ_FUNCTION_GETSTRID L"AQQ/Function/GetStrID"
- #define AQQ_FUNCTION_GETNUMID L"AQQ/Function/GetNumID"
- #define AQQ_FUNCTION_GETUSERUID L"AQQ/Function/GetUserUID"
- #define AQQ_FUNCTION_GETTHEMEDIRRW L"AQQ/Function/GetThemeDirRW"
- #define AQQ_FUNCTION_GETTHEMEDIR L"AQQ/Function/GetThemeDir"
- #define AQQ_FUNCTION_GETPROXY L"AQQ/Function/GetProxy"
- #define AQQ_FUNCTION_GETAPPPATH L"AQQ/Function/GetAppPath"
- #define AQQ_FUNCTION_GETAPPFILEPATH L"AQQ/Function/GetAppFilePath"
- #define AQQ_FUNCTION_EXECUTEMSG L"AQQ/Function/ExecuteMsg"
- #define AQQ_FUNCTION_OPENURL L"AQQ/Function/OpenURL"
- #define AQQ_FUNCTION_GETEXTERNALIP L"AQQ/Function/GetExternalIP"
- #define AQQ_FUNCTION_GETUSEREXCOUNT L"AQQ/Function/GetUserExCount"
- #define AQQ_FUNCTION_GETNETWORKINFO L"AQQ/Function/GetNetworkInfo"
- #define AQQ_FUNCTION_CONVERTTOXML L"AQQ/Function/ConvertToXML"
- #define AQQ_CACHE_ITEM L"AQQ_CACHE_ITEM"
- #define AQQ_QUERY_DELETE 1
- #define AQQ_QUERY_MESSAGE 2
- #define AQQ_QUERY_SENDFILE 3
- #define AQQ_QUERY_AUTHREQUEST 4
- #define AQQ_QUERY_SENDPIC 5
- #define AQQ_QUERY_AUTH 6
- #define AQQ_QUERY_CANCELAUTH 7
- #define AQQ_QUERY_SMS 8
- #define AQQ_QUERY_VCARD 9
- #define AQQ_QUERY_ARCHIVE 10
- #define AQQ_QUERY_NETWORK 11
- #define AQQ_QUERY_HAVEVCARD 12
- #define SOCKS_5 0
- #define SOCKS_4A 1
- #define SOCKS_4 2
- #define CONTACT_OFFLINE 0
- #define CONTACT_ONLINE 1
- #define CONTACT_FFC 2
- #define CONTACT_AWAY 3
- #define CONTACT_NA 4
- #define CONTACT_DND 5
- #define CONTACT_INV 6
- #define DEBUG_XMLIN 0
- #define DEBUG_XMLOUT 1
- #define ONCHECK_COPYTO 1
- #define ONCHECK_DELETE 2
- #define ONCHECK_MOVETO 3
- #define ONCHECK_CHANGENAME 4
- #define ONCHECK_SENDMESSAGE 5
- #define ONCHECK_SENDIMAGE 6
- #define ONCHECK_SETGROUPS 7
- #define ONCHECK_VCARD 8
- #define CHAT_NONE 0
- #define CHAT_ACTIVE 1
- #define CHAT_COMPOSING 2
- #define CHAT_GONE 3
- #define CHAT_INACTIVE 4
- #define CHAT_PAUSED 5
- #define SMS_STATUS_FAILED 0
- #define SMS_STATUS_OK 1
- #define SMS_STATUS_DELIVERED 2
- #define SMS_SEND_OK 1
- #define SMS_SEND_FAILED 2
- #define SMS_SEND_FAILED_SET 3
- #define SMS_SEND_FAILED_AUTH 4
- #define SMS_SEND_FAILED_CONNECT 5
- #define SMS_SEND_FAILED_LIMIT 6
- #define SMS_SEND_FAILED_TOKEN 7
- #define SMS_SEND_FAILED_NOSUPPORT 8
- #define SMS_SEND_FAILED_UNKNOWN 9
- #define SMS_SEND_OK_SILENT 10
- #define SOUND_FIRSTIN 0
- #define SOUND_IN 1
- #define SOUND_OUT 2
- #define SOUND_STATUS 3
- #define SOUND_TRANSFER 4
- #define SOUND_ENDTRANSFER 5
- #define SOUND_LOCK 6
- #define IMP_TYPE_EXPORT 0
- #define IMP_TYPE_IMPORT 1
- #define IMP_TYPE_OTHER 2
- #define ALIGN_TOP 0
- #define ALIGN_BOTTOM 1
- #define ALIGN_LEFT 2
- #define ALIGN_RIGHT 3
- #define ALIGN_CLIENT 4
- #define TRANSFER_DECLINE 0
- #define TRANSFER_ACCEPT 1
- #define TRANSFER_CONNECTING 2
- #define TRANSFER_ACTIVE 3
- #define TRANSFER_DISCONNECT 4
- #define TRANSFER_FINISHED 5
- #define TRANSFER_PAUSED 6
- struct TPluginItemDescriber
- {
- int cbSize;
- unsigned int FormHandle;
- wchar_t* ParentName;
- wchar_t* Name;
- };
- struct TPluginTriple
- {
- int cbSize;
- unsigned int Handle1;
- unsigned int Handle2;
- unsigned int Handle3;
- int Param1;
- int Param2;
- };
- struct TPluginError
- {
- int cbSize;
- wchar_t* ID;
- wchar_t* Desc;
- wchar_t* LangID;
- int ErrorCode;
- };
- struct TPluginTransfer
- {
- int cbSize;
- wchar_t* ID;
- wchar_t* FileName;
- wchar_t* Location;
- int Status;
- wchar_t* TextInfo;
- unsigned int FileSize;
- unsigned int Position;
- unsigned int LastDataSize;
- };
- struct TPluginChatState
- {
- int cbSize;
- wchar_t* Text;
- int Length;
- int SelStart;
- int SelLength;
- unsigned int ParentHandle;
- unsigned int Handle;
- int ChatState;
- };
- struct TPluginWebItem
- {
- int cbSize;
- wchar_t* ID;
- wchar_t* Text;
- };
- struct TPluginWebBeforeNavEvent
- {
- int cbSize;
- unsigned int Handle;
- wchar_t* URL;
- wchar_t* Flags;
- wchar_t* TargetFrameName;
- wchar_t* PostData;
- wchar_t* Headers;
- };
- struct TPluginWebBrowser
- {
- int cbSize;
- unsigned int Handle;
- int Top, Left, Width, Height;
- int Align;
- int RegisterAsDropTarget;
- bool SetVisible;
- bool SetEnabled;
- };
- struct TPluginDebugInfo
- {
- int cbSize;
- wchar_t* JID;
- wchar_t* XML;
- char Mode;
- };
- struct TPluginMaxStatus
- {
- int cbSize;
- int IconIndex;
- wchar_t* Name;
- int Max;
- };
- struct TPluginProxy
- {
- int cbSize;
- bool ProxyEnabled;
- wchar_t* ProxyServer;
- int ProxyPort;
- int ProxyType;
- bool ProxyAuth;
- wchar_t* ProxyLogin;
- wchar_t* ProxyPass;
- };
- struct TPluginImpExp
- {
- int cbSize;
- int ImportType;
- wchar_t* Name;
- wchar_t* Service;
- int IconIndex;
- };
- struct TPluginAutomation
- {
- int cbSize;
- int Flags;
- int NewState;
- double LastActive;
- };
- struct TPluginStateChange
- {
- int cbSize;
- int OldState;
- int NewState;
- wchar_t* Status;
- bool ByHand;
- int UserIdx;
- wchar_t* JID;
- bool Force;
- wchar_t* Server;
- bool Authorized;
- bool FromPlugin;
- };
- struct TPluginSMS
- {
- int cbSize;
- wchar_t* CellPhone;
- wchar_t* Msg;
- wchar_t* Sign;
- int GateID;
- };
- struct TPluginTwoFlagParams
- {
- int cbSize;
- wchar_t* Param1;
- wchar_t* Param2;
- int Flag1;
- int Flag2;
- };
- struct TPluginAddUser
- {
- int cbSize;
- wchar_t* UID;
- wchar_t* Server;
- wchar_t* Nick;
- wchar_t* Group;
- wchar_t* Reason;
- };
- struct TPluginSMSGate
- {
- int cbSize;
- wchar_t* Name;
- wchar_t* Prompt;
- bool IsConfig;
- int MaxLength;
- int SignMaxLength;
- };
- struct TPluginAgent
- {
- int cbSize;
- wchar_t* JID;
- wchar_t* Name;
- wchar_t* Prompt;
- int Transport;
- bool Search;
- bool Groupchat;
- bool Agents;
- wchar_t* Service;
- bool CanRegister;
- wchar_t* Description;
- bool RequiredID;
- int IconIndex;
- };
- struct TPluginMessage
- {
- int cbSize;
- wchar_t* JID;
- double Date;
- int ChatState;
- wchar_t* Body;
- bool Offline;
- wchar_t* DefaultNick;
- bool Store;
- };
- struct TPluginMsgPic
- {
- int cbSize;
- wchar_t* FilePath;
- wchar_t* Description;
- wchar_t* ID;
- };
- struct TPluginFileTransfer
- {
- int cbSize;
- wchar_t* FilePath;
- wchar_t* Description;
- wchar_t* ID;
- };
- struct TPluginInfo
- {
- int cbSize;
- wchar_t* ShortName;
- int Version;
- wchar_t* Description;
- wchar_t* Author;
- wchar_t* AuthorMail;
- wchar_t* Copyright;
- wchar_t* Homepage;
- char Flag;
- int ReplaceDefaultModule;
- };
- struct TPluginAction
- {
- int cbSize;
- wchar_t* Action;
- wchar_t* pszName;
- wchar_t* pszCaption;
- int Flags;
- int Position;
- int IconIndex;
- wchar_t* pszService;
- wchar_t* pszPopupName;
- int popupPosition;
- int hotKey;
- wchar_t* pszContactOwner;
- int GroupIndex;
- int Grouped;
- bool AutoCheck;
- bool Checked;
- unsigned int Handle;
- wchar_t* ShortCut;
- };
- struct TPluginContact
- {
- int cbSize;
- wchar_t* JID;
- wchar_t* Nick;
- wchar_t* Resource;
- wchar_t* Groups;
- int State;
- wchar_t* Status;
- bool Temporary;
- bool FromPlugin;
- int UserIdx;
- };
- #define CMIF_GRAYED 1
- #define CMIF_CHECKED 2
- #define CMIF_HIDDEN 4
- #define CMIF_NOTOFFLINE 8
- #define CMIF_NOTONLINE 16
- typedef int (*TAQQHook) (int wParam, int lParam);
- typedef int (*TAQQService) (int wParam, int lParam);
- #define CALLSERVICE_NOTFOUND 0x80000000
- #define MAXMODULELABELLENGTH 64
- typedef int THandle;
- typedef THandle (*CreateHookableEventHandler) (const wchar_t* Name);
- typedef int (*DestroyHookableEventHandler) (THandle hEvent);
- typedef int (*NotifyEventHooksHandler) (THandle hEvent, int wParam, int lParam);
- typedef THandle (*HookEventHandler) (const wchar_t* Name, TAQQHook HookProc);
- typedef THandle (*HookEventMessageHandler) (const wchar_t* Name, int Handle, unsigned int Msg);
- typedef int (*UnhookEventHandler) (THandle hHook);
- typedef THandle (*CreateServiceFunctionHandler) (const wchar_t* Name, TAQQService ServiceProc);
- typedef int (*DestroyServiceFunctionHandler) (THandle hService);
- typedef int (*CallServiceHandler) (const wchar_t* Name, int wParam, int lParam);
- typedef int (*ServiceExistsHandler) (const wchar_t* Name);
- struct TPluginLink
- {
- wchar_t* Path;
- CreateHookableEventHandler CreateHookableEvent;
- DestroyHookableEventHandler DestroyHookableEvent;
- NotifyEventHooksHandler NotifyEventHooks;
- HookEventHandler HookEvent;
- HookEventMessageHandler HookEventMessage;
- UnhookEventHandler UnhookEvent;
- CreateServiceFunctionHandler CreateServiceFunction;
- void* CreateTransientServiceFunction;
- DestroyServiceFunctionHandler DestroyServiceFunction;
- CallServiceHandler CallService;
- ServiceExistsHandler ServiceExists;
- };
- struct TVersionInfo
- {
- int a, b, c, d;
- TVersionInfo (): a(0), b(0), c(0), d(0) { }
- TVersionInfo (int _a, int _b, int _c, int _d): a(_a), b(_b), c(_c), d(_d) { }
- };
- #define PLUGIN_MAKE_VERSION(a,b,c,d) (((a & 0xFF) << 24) | ((b & 0xFF) << 16) | ((c & 0xFF) << 8) | (d & 0xFF))
- TVersionInfo PLUGIN_GET_VERSION (int ver)
- {
- return TVersionInfo (
- (ver & 0xFF000000) >> 24,
- (ver & 0x00FF0000) >> 16,
- (ver & 0x0000FF00) >> 8,
- (ver & 0x000000FF));
- }
- int CompareVersion (int vera, int verb)
- {
- TVersionInfo v1 = PLUGIN_GET_VERSION (vera);
- TVersionInfo v2 = PLUGIN_GET_VERSION (verb);
- if (v1.a < v2.a) return -1;
- else if (v1.a > v2.a) return 1;
- if (v1.b < v2.b) return -1;
- else if (v1.b > v2.b) return 1;
- if (v1.c < v2.c) return -1;
- else if (v1.c > v2.c) return 1;
- if (v1.d < v2.d) return -1;
- else if (v1.d > v2.d) return 1;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment