summaryrefslogtreecommitdiff
path: root/include/m_protoint.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/m_protoint.h')
-rw-r--r--include/m_protoint.h169
1 files changed, 169 insertions, 0 deletions
diff --git a/include/m_protoint.h b/include/m_protoint.h
new file mode 100644
index 0000000000..9133309a4c
--- /dev/null
+++ b/include/m_protoint.h
@@ -0,0 +1,169 @@
+/*
+
+Miranda IM: the free IM client for Microsoft* Windows*
+
+Copyright 2000-2008 Miranda ICQ/IM project,
+all portions of this codebase are copyrighted to the people
+listed in contributors.txt.
+
+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_PROTOINT_H__
+#define M_PROTOINT_H__ 1
+
+typedef enum
+{
+ EV_PROTO_ONLOAD,
+ EV_PROTO_ONREADYTOEXIT,
+ EV_PROTO_ONEXIT,
+ EV_PROTO_ONRENAME,
+ EV_PROTO_ONOPTIONS,
+ EV_PROTO_ONERASE,
+ EV_PROTO_ONMENU,
+ EV_PROTO_ONCONTACTDELETED,
+ EV_PROTO_DBSETTINGSCHANGED,
+}
+ PROTOEVENTTYPE;
+
+#if MIRANDA_VER >= 0x0900
+ #define PROTOCHAR TCHAR
+ #define PROTOFILEEVENT PROTORECVFILET
+#else
+ #define PROTOCHAR char
+ #define PROTOFILEEVENT PROTORECVFILE
+#endif
+
+#ifndef __cplusplus
+typedef struct tagPROTO_INTERFACE_VTBL
+{
+ HANDLE ( *AddToList )( struct tagPROTO_INTERFACE*, int flags, PROTOSEARCHRESULT* psr );
+ HANDLE ( *AddToListByEvent )( struct tagPROTO_INTERFACE*, int flags, int iContact, HANDLE hDbEvent );
+
+ int ( *Authorize )( struct tagPROTO_INTERFACE*, HANDLE hContact );
+ int ( *AuthDeny )( struct tagPROTO_INTERFACE*, HANDLE hContact, const TCHAR* szReason );
+ int ( *AuthRecv )( struct tagPROTO_INTERFACE*, HANDLE hContact, PROTORECVEVENT* );
+ int ( *AuthRequest )( struct tagPROTO_INTERFACE*, HANDLE hContact, const TCHAR* szMessage );
+
+ HANDLE ( *ChangeInfo )( struct tagPROTO_INTERFACE*, int iInfoType, void* pInfoData );
+
+ HANDLE ( *FileAllow )( struct tagPROTO_INTERFACE*, HANDLE hContact, HANDLE hTransfer, const PROTOCHAR* szPath );
+ int ( *FileCancel )( struct tagPROTO_INTERFACE*, HANDLE hContact, HANDLE hTransfer );
+ int ( *FileDeny )( struct tagPROTO_INTERFACE*, HANDLE hContact, HANDLE hTransfer, const PROTOCHAR* szReason );
+ int ( *FileResume )( struct tagPROTO_INTERFACE*, HANDLE hTransfer, int* action, const PROTOCHAR** szFilename );
+
+ DWORD_PTR ( *GetCaps )( struct tagPROTO_INTERFACE*, int type, HANDLE hContact );
+ HICON ( *GetIcon )( struct tagPROTO_INTERFACE*, int iconIndex );
+ int ( *GetInfo )( struct tagPROTO_INTERFACE*, HANDLE hContact, int infoType );
+
+ HANDLE ( *SearchBasic )( struct tagPROTO_INTERFACE*, const PROTOCHAR* id );
+ HANDLE ( *SearchByEmail )( struct tagPROTO_INTERFACE*, const PROTOCHAR* email );
+ HANDLE ( *SearchByName )( struct tagPROTO_INTERFACE*, const PROTOCHAR* nick, const PROTOCHAR* firstName, const PROTOCHAR* lastName );
+ HWND ( *SearchAdvanced )( struct tagPROTO_INTERFACE*, HWND owner );
+ HWND ( *CreateExtendedSearchUI )( struct tagPROTO_INTERFACE*, HWND owner );
+
+ int ( *RecvContacts )( struct tagPROTO_INTERFACE*, HANDLE hContact, PROTORECVEVENT* );
+ int ( *RecvFile )( struct tagPROTO_INTERFACE*, HANDLE hContact, PROTOFILEEVENT* );
+ int ( *RecvMsg )( struct tagPROTO_INTERFACE*, HANDLE hContact, PROTORECVEVENT* );
+ int ( *RecvUrl )( struct tagPROTO_INTERFACE*, HANDLE hContact, PROTORECVEVENT* );
+
+ int ( *SendContacts )( struct tagPROTO_INTERFACE*, HANDLE hContact, int flags, int nContacts, HANDLE* hContactsList );
+ HANDLE ( *SendFile )( struct tagPROTO_INTERFACE*, HANDLE hContact, const PROTOCHAR* szDescription, PROTOCHAR** ppszFiles );
+ int ( *SendMsg )( struct tagPROTO_INTERFACE*, HANDLE hContact, int flags, const char* msg );
+ int ( *SendUrl )( struct tagPROTO_INTERFACE*, HANDLE hContact, int flags, const char* url );
+
+ int ( *SetApparentMode )( struct tagPROTO_INTERFACE*, HANDLE hContact, int mode );
+ int ( *SetStatus )( struct tagPROTO_INTERFACE*, int iNewStatus );
+
+ HANDLE ( *GetAwayMsg )( struct tagPROTO_INTERFACE*, HANDLE hContact );
+ int ( *RecvAwayMsg )( struct tagPROTO_INTERFACE*, HANDLE hContact, int mode, PROTORECVEVENT* evt );
+ int ( *SendAwayMsg )( struct tagPROTO_INTERFACE*, HANDLE hContact, HANDLE hProcess, const char* msg );
+ int ( *SetAwayMsg )( struct tagPROTO_INTERFACE*, int iStatus, const PROTOCHAR* msg );
+
+ int ( *UserIsTyping )( struct tagPROTO_INTERFACE*, HANDLE hContact, int type );
+
+ int ( *OnEvent )( struct tagPROTO_INTERFACE*, PROTOEVENTTYPE iEventType, WPARAM wParam, LPARAM lParam );
+}
+ PROTO_INTERFACE_VTBL;
+#endif
+
+typedef struct tagPROTO_INTERFACE
+{
+ #ifndef __cplusplus
+ PROTO_INTERFACE_VTBL* vtbl;
+ #endif
+
+ int m_iStatus,
+ m_iDesiredStatus,
+ m_iXStatus,
+ m_iVersion; // version 2 or higher designate support of Unicode services
+ TCHAR* m_tszUserName;
+ char* m_szProtoName;
+ char* m_szModuleName;
+
+ DWORD reserved[ 40 ];
+
+ #ifdef __cplusplus
+ virtual HANDLE __cdecl AddToList( int flags, PROTOSEARCHRESULT* psr ) = 0;
+ virtual HANDLE __cdecl AddToListByEvent( int flags, int iContact, HANDLE hDbEvent ) = 0;
+
+ virtual int __cdecl Authorize( HANDLE hDbEvent ) = 0;
+ virtual int __cdecl AuthDeny( HANDLE hDbEvent, const PROTOCHAR* szReason ) = 0;
+ virtual int __cdecl AuthRecv( HANDLE hContact, PROTORECVEVENT* ) = 0;
+ virtual int __cdecl AuthRequest( HANDLE hContact, const PROTOCHAR* szMessage ) = 0;
+
+ virtual HANDLE __cdecl ChangeInfo( int iInfoType, void* pInfoData ) = 0;
+
+ virtual HANDLE __cdecl FileAllow( HANDLE hContact, HANDLE hTransfer, const PROTOCHAR* szPath ) = 0;
+ virtual int __cdecl FileCancel( HANDLE hContact, HANDLE hTransfer ) = 0;
+ virtual int __cdecl FileDeny( HANDLE hContact, HANDLE hTransfer, const PROTOCHAR* szReason ) = 0;
+ virtual int __cdecl FileResume( HANDLE hTransfer, int* action, const PROTOCHAR** szFilename ) = 0;
+
+ virtual DWORD_PTR __cdecl GetCaps( int type, HANDLE hContact = NULL ) = 0;
+ virtual HICON __cdecl GetIcon( int iconIndex ) = 0;
+ virtual int __cdecl GetInfo( HANDLE hContact, int infoType ) = 0;
+
+ virtual HANDLE __cdecl SearchBasic( const PROTOCHAR* id ) = 0;
+ virtual HANDLE __cdecl SearchByEmail( const PROTOCHAR* email ) = 0;
+ virtual HANDLE __cdecl SearchByName( const PROTOCHAR* nick, const PROTOCHAR* firstName, const PROTOCHAR* lastName ) = 0;
+ virtual HWND __cdecl SearchAdvanced( HWND owner ) = 0;
+ virtual HWND __cdecl CreateExtendedSearchUI( HWND owner ) = 0;
+
+ virtual int __cdecl RecvContacts( HANDLE hContact, PROTORECVEVENT* ) = 0;
+ virtual int __cdecl RecvFile( HANDLE hContact, PROTOFILEEVENT* ) = 0;
+ virtual int __cdecl RecvMsg( HANDLE hContact, PROTORECVEVENT* ) = 0;
+ virtual int __cdecl RecvUrl( HANDLE hContact, PROTORECVEVENT* ) = 0;
+
+ virtual int __cdecl SendContacts( HANDLE hContact, int flags, int nContacts, HANDLE* hContactsList ) = 0;
+ virtual HANDLE __cdecl SendFile( HANDLE hContact, const PROTOCHAR* szDescription, PROTOCHAR** ppszFiles ) = 0;
+ virtual int __cdecl SendMsg( HANDLE hContact, int flags, const char* msg ) = 0;
+ virtual int __cdecl SendUrl( HANDLE hContact, int flags, const char* url ) = 0;
+
+ virtual int __cdecl SetApparentMode( HANDLE hContact, int mode ) = 0;
+ virtual int __cdecl SetStatus( int iNewStatus ) = 0;
+
+ virtual HANDLE __cdecl GetAwayMsg( HANDLE hContact ) = 0;
+ virtual int __cdecl RecvAwayMsg( HANDLE hContact, int mode, PROTORECVEVENT* evt ) = 0;
+ virtual int __cdecl SendAwayMsg( HANDLE hContact, HANDLE hProcess, const char* msg ) = 0;
+ virtual int __cdecl SetAwayMsg( int iStatus, const PROTOCHAR* msg ) = 0;
+
+ virtual int __cdecl UserIsTyping( HANDLE hContact, int type ) = 0;
+
+ virtual int __cdecl OnEvent( PROTOEVENTTYPE iEventType, WPARAM wParam, LPARAM lParam ) = 0;
+ #endif
+}
+ PROTO_INTERFACE;
+
+#endif // M_PROTOINT_H__