summaryrefslogtreecommitdiff
path: root/protocols/Icq10/src/icq_proto.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Icq10/src/icq_proto.cpp')
-rw-r--r--protocols/Icq10/src/icq_proto.cpp310
1 files changed, 310 insertions, 0 deletions
diff --git a/protocols/Icq10/src/icq_proto.cpp b/protocols/Icq10/src/icq_proto.cpp
new file mode 100644
index 0000000000..abb02d21d6
--- /dev/null
+++ b/protocols/Icq10/src/icq_proto.cpp
@@ -0,0 +1,310 @@
+// ---------------------------------------------------------------------------80
+// ICQ plugin for Miranda Instant Messenger
+// ________________________________________
+//
+// Copyright © 2000-2001 Richard Hughes, Roland Rabien, Tristan Van de Vreede
+// Copyright © 2001-2002 Jon Keating, Richard Hughes
+// Copyright © 2002-2004 Martin Öberg, Sam Kothari, Robert Rainwater
+// Copyright © 2004-2010 Joe Kucera, George Hazan
+// Copyright © 2012-2018 Miranda NG team
+//
+// 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+// -----------------------------------------------------------------------------
+// DESCRIPTION:
+//
+// Protocol Interface Implementation
+// -----------------------------------------------------------------------------
+
+#include "stdafx.h"
+
+#include "m_icolib.h"
+
+#pragma warning(disable:4355)
+
+CIcqProto::CIcqProto(const char* aProtoName, const wchar_t* aUserName) :
+ PROTO<CIcqProto>(aProtoName, aUserName)
+{
+}
+
+CIcqProto::~CIcqProto()
+{
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// OnModulesLoadedEx - performs hook registration
+
+void CIcqProto::OnModulesLoaded()
+{
+}
+
+void CIcqProto::OnShutdown()
+{
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// PS_AddToList - adds a contact to the contact list
+
+MCONTACT CIcqProto::AddToList(int flags, PROTOSEARCHRESULT *psr)
+{
+ return 0;
+}
+
+MCONTACT CIcqProto::AddToListByEvent(int flags, int iContact, MEVENT hDbEvent)
+{
+ return 0; // Failure
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// PS_AuthAllow - processes the successful authorization
+
+int CIcqProto::Authorize(MEVENT hDbEvent)
+{
+ return 1; // Failure
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// PS_AuthDeny - handles the unsuccessful authorization
+
+int CIcqProto::AuthDeny(MEVENT hDbEvent, const wchar_t* szReason)
+{
+ return 1; // Failure
+}
+
+
+////////////////////////////////////////////////////////////////////////////////////////
+// PSR_AUTH
+
+int CIcqProto::AuthRecv(MCONTACT hContact, PROTORECVEVENT* pre)
+{
+ return 0;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// PSS_AUTHREQUEST
+
+int CIcqProto::AuthRequest(MCONTACT hContact, const wchar_t* szMessage)
+{
+ return 1; // Failure
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// PS_FileAllow - starts a file transfer
+
+HANDLE CIcqProto::FileAllow(MCONTACT hContact, HANDLE hTransfer, const wchar_t* szPath)
+{
+ return nullptr; // Failure
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// PS_FileCancel - cancels a file transfer
+
+int CIcqProto::FileCancel(MCONTACT hContact, HANDLE hTransfer)
+{
+ return 1; // Failure
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// PS_FileDeny - denies a file transfer
+
+int CIcqProto::FileDeny(MCONTACT hContact, HANDLE hTransfer, const wchar_t* szReason)
+{
+ return 1; // Invalid contact
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// PS_FileResume - processes file renaming etc
+
+int CIcqProto::FileResume(HANDLE hTransfer, int* action, const wchar_t** szFilename)
+{
+ return 1; // Failure
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// GetCaps - return protocol capabilities bits
+
+INT_PTR CIcqProto::GetCaps(int type, MCONTACT hContact)
+{
+ INT_PTR nReturn = 0;
+
+ switch (type) {
+
+ case PFLAGNUM_1:
+ nReturn = PF1_IM | PF1_URL | PF1_AUTHREQ | PF1_BASICSEARCH | PF1_ADDSEARCHRES |
+ PF1_VISLIST | PF1_INVISLIST | PF1_MODEMSG | PF1_FILE | PF1_EXTSEARCH |
+ PF1_EXTSEARCHUI | PF1_SEARCHBYEMAIL | PF1_SEARCHBYNAME |
+ PF1_ADDED | PF1_CONTACT | PF1_SERVERCLIST;
+ break;
+
+ case PFLAGNUM_2:
+ return PF2_ONLINE | PF2_SHORTAWAY | PF2_LONGAWAY | PF2_LIGHTDND | PF2_HEAVYDND |
+ PF2_FREECHAT | PF2_INVISIBLE | PF2_ONTHEPHONE;
+
+ case PFLAGNUM_3:
+ return PF2_ONLINE | PF2_SHORTAWAY | PF2_LONGAWAY | PF2_LIGHTDND | PF2_HEAVYDND |
+ PF2_FREECHAT | PF2_INVISIBLE;
+
+ case PFLAGNUM_4:
+ nReturn = PF4_SUPPORTIDLE | PF4_IMSENDOFFLINE | PF4_INFOSETTINGSVC | PF4_SUPPORTTYPING | PF4_AVATARS;
+ break;
+
+ case PFLAGNUM_5:
+ return PF2_FREECHAT | PF2_ONTHEPHONE;
+
+ case PFLAG_UNIQUEIDTEXT:
+ return (INT_PTR)Translate("User ID");
+ }
+
+ return nReturn;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// GetInfo - retrieves a contact info
+
+int CIcqProto::GetInfo(MCONTACT hContact, int infoType)
+{
+ return 1; // Failure
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// SearchBasic - searches the contact by UID
+
+HANDLE CIcqProto::SearchBasic(const wchar_t *pszSearch)
+{
+ // Failure
+ return nullptr;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// SearchByEmail - searches the contact by its e-mail
+
+HANDLE CIcqProto::SearchByEmail(const wchar_t *email)
+{
+ return nullptr; // Failure
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// PS_SearchByName - searches the contact by its first or last name, or by a nickname
+
+HANDLE CIcqProto::SearchByName(const wchar_t *nick, const wchar_t *firstName, const wchar_t *lastName)
+{
+ return nullptr; // Failure
+}
+
+HWND CIcqProto::CreateExtendedSearchUI(HWND parent)
+{
+ return nullptr; // Failure
+}
+
+HWND CIcqProto::SearchAdvanced(HWND hwndDlg)
+{
+ return nullptr; // Failure
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// RecvContacts
+
+int CIcqProto::RecvContacts(MCONTACT hContact, PROTORECVEVENT* pre)
+{
+ return 0;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// RecvMsg
+
+MEVENT CIcqProto::RecvMsg(MCONTACT hContact, PROTORECVEVENT* pre)
+{
+ return 0;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// SendContacts
+
+int CIcqProto::SendContacts(MCONTACT hContact, int, int nContacts, MCONTACT *hContactsList)
+{
+ // Exit with Failure
+ return 0;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// SendFile - sends a file
+
+HANDLE CIcqProto::SendFile(MCONTACT hContact, const wchar_t* szDescription, wchar_t** ppszFiles)
+{
+ return nullptr; // Failure
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// PS_SendMessage - sends a message
+
+int CIcqProto::SendMsg(MCONTACT hContact, int, const char* pszSrc)
+{
+ return NULL;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// SendUrl
+
+int CIcqProto::SendUrl(MCONTACT hContact, int, const char* url)
+{
+ return 1; // Failure
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// PS_SetStatus - sets the protocol status
+
+int CIcqProto::SetStatus(int iNewStatus)
+{
+ return 0;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// PS_GetAwayMsg - returns a contact's away message
+
+HANDLE CIcqProto::GetAwayMsg(MCONTACT hContact)
+{
+ return nullptr; // Failure
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// PSR_AWAYMSG - processes received status mode message
+
+int CIcqProto::RecvAwayMsg(MCONTACT hContact, int, PROTORECVEVENT* evt)
+{
+ return 0;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// PS_SetAwayMsg - sets the away status message
+
+int CIcqProto::SetAwayMsg(int status, const wchar_t* msg)
+{
+ return 0; // Success
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// PS_UserIsTyping - sends a UTN notification
+
+int CIcqProto::UserIsTyping(MCONTACT hContact, int type)
+{
+ return 1;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// PS_SetApparentMode - sets the visibility status
+
+int CIcqProto::SetApparentMode(MCONTACT hContact, int mode)
+{
+ return 1; // Failure
+}