| |
1 #define DBUS_API_SUBJECT_TO_CHANGE |
| |
2 |
| |
3 #include <stdio.h> |
| |
4 #include <stdlib.h> |
| |
5 |
| |
6 #include "gaim-client.h" |
| |
7 |
| |
8 /* |
| |
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 { |
| |
24 GList *alist, *node; |
| |
25 |
| |
26 gaim_init(); |
| |
27 |
| |
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); |
| |
37 |
| |
38 return 0; |
| |
39 } |