<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Comic Sans MS";
        panose-1:3 15 7 2 3 3 2 2 2 4;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
p
        {mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Comic Sans MS";
        color:windowtext;
        font-weight:normal;
        font-style:normal;
        text-decoration:none none;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>Hi, Dear developers<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>I&#8217;m new to DBUS world, and I&#8217;m
trying to get the NameOwnerChanged Signal from org.freedesktop.Dbus<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>But It seems I can&#8217;t get my callback
be invoked.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>Could you please help? Below is the code
that I&#8217;m using.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>Thanks a lot!!!!!<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>#include &lt;memory.h&gt;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>#include &lt;stdio.h&gt;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>#include &lt;stdlib.h&gt;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>#include &lt;stdio.h&gt;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>#include &lt;unistd.h&gt;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>#include &lt;glib.h&gt;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>#include &lt;dbus/dbus.h&gt;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>#include &lt;dbus/dbus-glib.h&gt;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>GError *error;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>DBusGConnection *fdb_connection;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>DBusGProxy *fdb_proxy = NULL;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>/* Connect to am dbus server<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;* return 0 means failed<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;* return 1 means succeeded<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;* */<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>gint dbus_init() {<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; char *fdb_name = &quot;org.freedesktop.Dbus&quot;;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; char *fdb_path = &quot;/org/freedesktop/Dbus&quot;;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; char *fdb_interface = &quot;org.freedesktop.Dbus&quot;;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; fdb_connection = dbus_g_bus_get(DBUS_BUS_SESSION,
&amp;error);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; if (fdb_connection == NULL) {<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g_printerr(&quot;Failed to open
connection to bus: %s\n&quot;,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error-&gt;message);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g_error_free(error);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; fdb_proxy = dbus_g_proxy_new_for_name(fdb_connection,
fdb_name,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fdb_path,
fdb_interface);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; if (fdb_proxy == NULL) {<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g_print(&quot;connect to
freedesktop dbus server failed\n&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; } <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; else {<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g_print(&quot;connect to
freedesktop dbus server succeeded\n&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; return 1;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>}<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>static void fdb_signal_handler (DBusGProxy*
p, const gchar* str, const gchar* str1, const gchar* str2, gpointer userData) {<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; g_print(&quot;fdb_signal_handler\n&quot;);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; g_print(&quot;Got signal %s\n&quot;, str);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; g_print(&quot;Got signal %s\n&quot;, str1);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; g_print(&quot;Got signal %s\n&quot;, str2);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>}<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>/* Signal connection initialization<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;* */<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>void connect_signals() {<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; dbus_g_proxy_add_signal(fdb_proxy, &quot;NameOwnerChanged&quot;,
G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; dbus_g_proxy_connect_signal(fdb_proxy, &quot;NameOwnerChanged&quot;,
G_CALLBACK(fdb_signal_handler), NULL, NULL);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>}<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>int main(int argc, char* argv[]) {<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; g_type_init();<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; if (dbus_init() == 0)<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -1;&nbsp;&nbsp; <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; connect_signals();<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; static GMainLoop *loop = NULL;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; loop = g_main_loop_new(NULL, FALSE);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>&nbsp;&nbsp;&nbsp; g_main_loop_run(loop);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'>}<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Comic Sans MS"><span style='font-size:
10.0pt;font-family:"Comic Sans MS"'><o:p>&nbsp;</o:p></span></font></p>

<p style='margin:0in;margin-bottom:.0001pt'><font size=1 face="Comic Sans MS"><span
style='font-size:7.5pt;font-family:"Comic Sans MS"'>Best Regards, Zheng,
Huan(ZBT)<o:p></o:p></span></font></p>

<p style='margin:0in;margin-bottom:.0001pt'><font size=1 face="Comic Sans MS"><span
style='font-size:7.5pt;font-family:"Comic Sans MS"'>OTC/SSD/SSG</span></font><o:p></o:p></p>

<p style='margin:0in;margin-bottom:.0001pt'><font size=1 face="Comic Sans MS"><span
style='font-size:7.5pt;font-family:"Comic Sans MS"'>Intel Aisa-Pacific Research
&amp; Developement Ltd</span></font><o:p></o:p></p>

<p style='margin:0in;margin-bottom:.0001pt'><font size=1 face="Comic Sans MS"><span
style='font-size:7.5pt;font-family:"Comic Sans MS"'>Tel: 021-6116 6435</span></font><o:p></o:p></p>

<p style='margin:0in;margin-bottom:.0001pt'><font size=1 face="Comic Sans MS"><span
style='font-size:7.5pt;font-family:"Comic Sans MS"'>Inet: 8821 6435</span></font><o:p></o:p></p>

<p style='margin:0in;margin-bottom:.0001pt'><font size=1 face="Comic Sans MS"><span
style='font-size:7.5pt;font-family:"Comic Sans MS"'>Cub: 3W035</span></font><o:p></o:p></p>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

</body>

</html>