11241
|
1 #define DBUS_API_SUBJECT_TO_CHANGE
|
|
2
|
|
3 #include <stdio.h>
|
|
4 #include <stdlib.h>
|
|
5
|
|
6 #include "gaim-client.h"
|
|
7
|
14035
|
8 /*
|
11241
|
9 This example demonstrates how to use libgaim-client to communicate
|
|
10 with gaim. The names and signatures of functions provided by
|
|
11 libgaim-client are the same as those in gaim. However, all
|
|
12 structures (such as GaimAccount) are opaque, that is, you can only
|
|
13 use pointer to them. In fact, these pointers DO NOT actually point
|
|
14 to anything, they are just integer identifiers of assigned to these
|
|
15 structures by gaim. So NEVER try to dereference these pointers.
|
|
16 Integer ids as disguised as pointers to provide type checking and
|
|
17 prevent mistakes such as passing an id of GaimAccount when an id of
|
|
18 GaimBuddy is expected. According to glib manual, this technique is
|
|
19 portable.
|
|
20 */
|
|
21
|
|
22 int main (int argc, char **argv)
|
|
23 {
|
14035
|
24 GList *alist, *node;
|
|
25
|
|
26 gaim_init();
|
11277
|
27
|
14035
|
28 alist = gaim_accounts_get_all();
|
|
29 for (node = alist; node != NULL; node = node->next)
|
|
30 {
|
|
31 GaimAccount *account = (GaimAccount*) node->data;
|
|
32 char *name = gaim_account_get_username(account);
|
|
33 g_print("Name: %s\n", name);
|
|
34 g_free(name);
|
|
35 }
|
|
36 g_list_free(alist);
|
11277
|
37
|
14035
|
38 return 0;
|
11241
|
39 }
|