// this is called by the db module to return all DBs plugins, then when it finds the one it likes the others are unloaded static INT_PTR PluginsEnum(WPARAM, LPARAM lParam) { PLUGIN_DB_ENUM * de = (PLUGIN_DB_ENUM *) lParam; pluginEntry * x = pluginListDb; if ( de == NULL || de->cbSize != sizeof(PLUGIN_DB_ENUM) || de->pfnEnumCallback == NULL ) return 1; while ( x != NULL ) { int rc = de->pfnEnumCallback(StrConvA(x->pluginname), x->bpi.dblink, de->lParam); if (rc == DBPE_DONE) { // this db has been picked, get rid of all the others pluginEntry * y = pluginListDb, * n; while ( y != NULL ) { n = y->nextclass; if ( x != y ) Plugin_Uninit(y); y = n; } // while x->pclass |= PCLASS_LOADED | PCLASS_OK | PCLASS_LAST; return 0; } else if ( rc == DBPE_HALT ) return 1; x = x->nextclass; } // while return pluginListDb != NULL ? 1 : -1; }
int __cdecl AuthDeny(HANDLE hDbEvent, const TCHAR* szReason) { return (int)ProtoCallService(m_szModuleName, PS_AUTHDENY, (WPARAM)hDbEvent, (LPARAM)StrConvA(szReason)); }
int __cdecl SetAwayMsg(int iStatus, const TCHAR* msg) { return (int)ProtoCallService(m_szModuleName, PS_SETAWAYMSG, iStatus, (LPARAM)StrConvA(msg)); }
HANDLE __cdecl SearchByEmail(const PROTOCHAR* email) { return (HANDLE)ProtoCallService(m_szModuleName, PS_SEARCHBYEMAIL, 0, (LPARAM)StrConvA(email)); }
HANDLE __cdecl SearchBasic(const PROTOCHAR* id) { return (HANDLE)ProtoCallService(m_szModuleName, PS_BASICSEARCH, 0, (LPARAM)StrConvA(id)); }
static void SetPluginOnWhiteList(TCHAR * pluginname, int allow) { DBWriteContactSettingByte(NULL, PLUGINDISABLELIST, StrConvA(pluginname), allow == 0); }
int __cdecl AuthDeny( HANDLE hContact, const TCHAR* szReason ) { return ( int )MyCallProtoService( m_szModuleName, PS_AUTHDENY, (WPARAM)hContact, (LPARAM)StrConvA(szReason)); }