int CAimProto::OnModulesLoaded(WPARAM wParam, LPARAM lParam) { HookProtoEvent(ME_USERINFO_INITIALISE, &CAimProto::OnUserInfoInit); HookProtoEvent(ME_IDLE_CHANGED, &CAimProto::OnIdleChanged); HookProtoEvent(ME_MSG_WINDOWEVENT, &CAimProto::OnWindowEvent); chat_register(); InitContactMenus(); return 0; }
int main(int argc, char *argv[]) { const char *host_default = "127.0.0.1"; static int op = 0; char *host = host_default; char *user = NULL; static struct option long_options[] = { {"host", required_argument, 0, 'h'}, {"user", required_argument, 0, 'u'}, {"register", no_argument, &op, 1}, {"send", no_argument, &op, 2}, {"receive", no_argument, &op, 3}, {"delete", no_argument, &op, 4}, {0, 0, 0, 0} }; int option_index = 0; int c; while (1) { c = getopt_long(argc, argv, "hu", long_options, &option_index); if (c == -1) break; switch (c) { case 0: break; case 'h': host = optarg; break; case 'u': user = optarg; break; default: abort(); } } if (user == NULL) user = getpwuid(getuid())->pw_name; int rc; const char *passwd; if (op > 0) printf("Working as %s@%s.\n", user, host); switch (op) { case 1: // register chat_register(host, user); break; case 2: // send if (argc - optind < 2) { printf("Please specify recipient and message.\n"); exit(EXIT_FAILURE); } char *recipient = argv[optind]; char *message = argv[optind+1]; rc = chat_sendmsg(host, recipient, user, message); printf("Send %s.\n", rc == 0 ? "OK" : "ERROR"); break; case 3: // receive passwd = readpasswd(); if (passwd == NULL) { printf("Can't find passwd file. Please register first.\n"); exit(EXIT_FAILURE); } const char *result = chat_recvmsg(host, user, passwd); if (result == NULL || strlen(result) == 0) printf("No messages for %s.\n", user); else printf("%s", result); break; case 4: // delete passwd = readpasswd(); if (passwd == NULL) { printf("Can't find passwd file. Please register first.\n"); exit(EXIT_FAILURE); } rc = chat_delmsg(host, user, passwd); printf("Delete %s.\n", rc == 0 ? "OK" : "ERROR"); break; } exit(EXIT_SUCCESS); }