<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4897952968870231696</id><updated>2011-04-21T21:28:18.285-07:00</updated><title type='text'>Sending data vb2005</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sendingdata.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4897952968870231696/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sendingdata.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>vbnetcode</name><uri>http://www.blogger.com/profile/04926504053784281645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4897952968870231696.post-8122643753739657842</id><published>2009-02-04T03:26:00.001-08:00</published><updated>2009-02-04T03:26:42.336-08:00</updated><title type='text'></title><content type='html'>Sending data/commands between forms (by using events) vb 2005&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IDE : VS 2005, &lt;br /&gt;&lt;br /&gt;posted by Pidgeon&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Introduction &lt;br /&gt;&lt;br /&gt;It is easy to access the properties of a child form directly (as shown here ). Although this is sufficient for most circumstances, there are certain scenarios where it just won’t work. &lt;br /&gt;&lt;br /&gt;What happens if you want to keep the second form open, and access a property when a user clicks a button (e.g. Word’s Find/Replace form)? &lt;br /&gt;&lt;br /&gt;You can use a timer (on your first form), check if the value of the second form has changed at intervals, and then, if it has, use the value. But this seems like it is going to make a lot of unnecessary calls to the second form (and a LOT of work). &lt;br /&gt;&lt;br /&gt;A resolution for this is to overload the constructor of the second form, pass the first form as a variable to the second form, and “do whatever needs to be done with the first form” in the second form. &lt;br /&gt;&lt;br /&gt;But, once again, this has limitations. What happens if your first form is not always a form, but a different class? Or if you want to do different “stuff” depending on what your first form is. You can write a long case statement: &lt;br /&gt;VB: &lt;br /&gt;&lt;br /&gt;Code: Select Case MyForm.GetType.FullName &lt;br /&gt;            Case Form1.GetType.FullName &lt;br /&gt;                'Do Stuff &lt;br /&gt;            Case ControllerClass.GetType.FullName &lt;br /&gt;                'Do other Stuff &lt;br /&gt;End Select&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;C#: &lt;br /&gt;&lt;br /&gt;Code: switch (MyForm.GetType().FullName.ToString()) &lt;br /&gt;            { &lt;br /&gt;                case typeof(Form1).FullName.ToString(): &lt;br /&gt;                    { &lt;br /&gt;                        //do stuff &lt;br /&gt;                        break; &lt;br /&gt;                    } &lt;br /&gt;                 case typeof(ControllerClass).FullName.ToString() &lt;br /&gt;                    { &lt;br /&gt;                        //do stuff &lt;br /&gt;                        break; &lt;br /&gt;                    } &lt;br /&gt;                     &lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;But once again, this seems like a lot of work (and it doesn’t really seem like object orientated programming). &lt;br /&gt;&lt;br /&gt;Luckily, with .Net, there is a different way to handle this, called events. &lt;br /&gt;&lt;br /&gt;What is an event? &lt;br /&gt;I’m going to use a real life example to try and explain this (if you already know what events are, and how they are used, you can skip to the example at the end of this faq). &lt;br /&gt;&lt;br /&gt;Let’s say that I’m in a car accident. I need to let someone know that I’m in trouble, and where I am. I don’t really care who comes and save me (as long as they are qualified). The best thing in this situation would be to phone. The operators at 999 (Editor's Note: 911 in the US) has a list paramedics in the area. When I phone them (with my problem and location), they locate the paramedics, tell them where I am, and they respond to the emergency. &lt;br /&gt;&lt;br /&gt;An event is like the accident. It is something that happened and that someone needs to respond to. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Raising the event is when I phone 999 with my emergency. &lt;br /&gt;&lt;br /&gt;A delegate is like the 999 operators. They know who to phone, and what information to pass to them. &lt;br /&gt;&lt;br /&gt;An event handler is like the paramedics who respond to the event. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So what does this mean for passing information between forms? Basically, what we can do is raise an event when our information changes on our second form, and respond to that event in our first form. &lt;br /&gt;&lt;br /&gt;Implementing Custom Events &lt;br /&gt;Let’s take a look at how we do this: &lt;br /&gt;&lt;br /&gt;First, we need to decide what information the first form is going to require (my name, the type of emergency, and my location). Microsoft suggests that we use a class that inherits from the EventArgs class. For this example I’ll only return a string: &lt;br /&gt;&lt;br /&gt;VB: &lt;br /&gt;&lt;br /&gt;Code: Public Class CustDataEventArgs &lt;br /&gt;        Inherits System.EventArgs &lt;br /&gt;        Private _MyValue As String &lt;br /&gt;        Public Property MyValue() As String &lt;br /&gt;            Get &lt;br /&gt;                Return _MyValue &lt;br /&gt;            End Get &lt;br /&gt;            Set(ByVal value As String) &lt;br /&gt;                _MyValue = value &lt;br /&gt;            End Set &lt;br /&gt;        End Property &lt;br /&gt;&lt;br /&gt;        Public Sub New(ByVal MyValue As String) &lt;br /&gt;            _MyValue = MyValue &lt;br /&gt;        End Sub &lt;br /&gt;End Class&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;C#: &lt;br /&gt;&lt;br /&gt;Code: public class CustDataEventArgs : EventArgs &lt;br /&gt;        { &lt;br /&gt;            private String _MyValue; &lt;br /&gt;&lt;br /&gt;            public String MyValue &lt;br /&gt;            { &lt;br /&gt;                get { return _MyValue; } &lt;br /&gt;                set { _MyValue = value; } &lt;br /&gt;            } &lt;br /&gt;&lt;br /&gt;            public CustDataEventArgs(String MyValue) &lt;br /&gt;            { &lt;br /&gt;                _MyValue = MyValue; &lt;br /&gt;            } &lt;br /&gt;     &lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;Secondly, we will have to create a delegate (the 999 operator) and an event of the delegate's type, which defines its signature. In other words, an event type of CustDataEvent (accident) might happen, and if it does, we should invoke (call) the CustDataDelegate (999 operator). &lt;br /&gt;&lt;br /&gt;VB: &lt;br /&gt;&lt;br /&gt;Code: Public Delegate Sub CustDataDelegate(ByVal sender As Object, _ &lt;br /&gt;                   ByVal e As CustDataEventArgs) &lt;br /&gt;Public Event CustDataEvent As CustDataDelegate&lt;br /&gt;&lt;br /&gt;C#: &lt;br /&gt;&lt;br /&gt;Code: public delegate void CustDataDelegate(Object sender, CustDataEventArgs e); &lt;br /&gt;public event CustDataDelegate CustDataEvent;&lt;br /&gt;&lt;br /&gt;On our first form, we will need a function that responds to our event. This needs to have the same “signature” as the delegate (the paramedics need to be able to receive all the information that the 999 operators supply to them): &lt;br /&gt;&lt;br /&gt;VB: &lt;br /&gt;&lt;br /&gt;Code: Private Sub DoWork(ByVal sender As Object, ByVal e As Form2.CustDataEventArgs) &lt;br /&gt;        MsgBox("The accident happened at: " &amp; e.MyValue) &lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;C#: &lt;br /&gt;&lt;br /&gt;Code: private void DoWork(Object sender, Form2.CustDataEventArgs e) &lt;br /&gt;        { &lt;br /&gt;            MessageBox.Show("The accident happened at: " + e.MyValue); &lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;Next, we need to “subscribe” to the event. To use the accident example, the 999 operators need a list of paramedics that can respond to the emergency. So we need to add our function to the list (you can put this in the first form’s load event): &lt;br /&gt;&lt;br /&gt;VB: &lt;br /&gt;&lt;br /&gt;Code: AddHandler oForm.CustDataEvent, New Form2.CustDataDelegate(AddressOf DoWork)&lt;br /&gt;&lt;br /&gt;C#: &lt;br /&gt;&lt;br /&gt;Code: oForm.CustDataEvent += new Form2.CustDataDelegate(DoWork);&lt;br /&gt;&lt;br /&gt;This seems complicated, but all I’m really doing, is saying that should an event of type CustDataEvent happens, CustDataDelegate should call my DoWork function. &lt;br /&gt;&lt;br /&gt;And lastly (now that everything is in place to handle our event), we need to raise our event (phone 999 if an accident happens). The best place to do this is usually in the property that you want to return from your second form to your first form: &lt;br /&gt;&lt;br /&gt;VB: &lt;br /&gt;&lt;br /&gt;Code: Public Property MyLocation() As String &lt;br /&gt;        Get &lt;br /&gt;            Return _MyLocation &lt;br /&gt;        End Get &lt;br /&gt;        Set(ByVal value As String) &lt;br /&gt;            'if the value is different &lt;br /&gt;            If Not value = _MyLocation Then &lt;br /&gt;                RaiseEvent CustDataEvent(Me, New CustDataEventArgs(value)) &lt;br /&gt;            End If &lt;br /&gt;            _MyLocation = value &lt;br /&gt;        End Set &lt;br /&gt;    End Property&lt;br /&gt;&lt;br /&gt;C#: &lt;br /&gt;&lt;br /&gt;Code: private String _Location; &lt;br /&gt;&lt;br /&gt;        public String Location &lt;br /&gt;        { &lt;br /&gt;            get { return _Location; } &lt;br /&gt;            set { &lt;br /&gt;                if (value != _Location) &lt;br /&gt;                { &lt;br /&gt;                    //code to raise the event &lt;br /&gt;                    CustDataDelegate MyHandler = CustDataEvent; &lt;br /&gt;                    CustDataEventArgs e = new CustDataEventArgs(value); &lt;br /&gt;                    if (MyHandler != null) &lt;br /&gt;                    { &lt;br /&gt;                        MyHandler(this, e); &lt;br /&gt;                    } &lt;br /&gt;                } &lt;br /&gt;                _Location = value; &lt;br /&gt;            } &lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;Every time the property MyLocation changes on the second form, it will raise the CustDataEvent. CustDataDelegate will let all of its listeners (DoWork) know that the event took place, and send them an object of CustDataEventArgs. &lt;br /&gt;&lt;br /&gt;What makes this code really great, is the ability to use this for almost anything in multiple forms. We can raise our event from form2, then hide our form, and show form1 (all of this without form2 knowing, or caring who responds to their event) &lt;br /&gt;&lt;br /&gt;On Form2: &lt;br /&gt;&lt;br /&gt;VB: &lt;br /&gt;&lt;br /&gt;Code: RaiseEvent CustDataEvent(Me, New CustDataEventArgs(value)) &lt;br /&gt;Me.Close&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;C# &lt;br /&gt;&lt;br /&gt;Code:     //code to raise the event &lt;br /&gt;                    CustDataDelegate MyHandler = CustDataEvent; &lt;br /&gt;                    CustDataEventArgs e = new CustDataEventArgs(value); &lt;br /&gt;                    if (MyHandler != null) &lt;br /&gt;                    { &lt;br /&gt;                        MyHandler(this, e); &lt;br /&gt;                    } &lt;br /&gt;     this. Close ();&lt;br /&gt;&lt;br /&gt;and on Form1: &lt;br /&gt;&lt;br /&gt;VB: &lt;br /&gt;&lt;br /&gt;Code: Public Sub DoWork(ByVal sender As Object, ByVal e As Form2.CustDataEventArgs) &lt;br /&gt;        Me.Show &lt;br /&gt;        MsgBox("The accident happened at: " &amp; e.MyValue) &lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;C#: &lt;br /&gt;&lt;br /&gt;Code: private void DoWork(Object sender, Form2.CustDataEventArgs e) &lt;br /&gt;        { &lt;br /&gt;            this.Show(); &lt;br /&gt;            MessageBox.Show("The accident happened at: " + e.MyValue); &lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;Complete Code: &lt;br /&gt;The entire code will be (assuming that you have to forms called “form1” and “form2”, each with a button called “button1” on them): &lt;br /&gt;&lt;br /&gt;VB: &lt;br /&gt;&lt;br /&gt;Code: Public Class Form1 &lt;br /&gt;&lt;br /&gt;    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click &lt;br /&gt;        Dim oForm As Form2 = New Form2() &lt;br /&gt;        AddHandler oForm.CustDataEvent, New Form2.CustDataDelegate(AddressOf DoWork) &lt;br /&gt;        oForm.Show() &lt;br /&gt;    End Sub &lt;br /&gt;    Public Sub DoWork(ByVal sender As Object, ByVal e As Form2.CustDataEventArgs) &lt;br /&gt;        MsgBox("The accident happened at: " &amp; e.MyValue) &lt;br /&gt;    End Sub &lt;br /&gt;&lt;br /&gt;End Class &lt;br /&gt;&lt;br /&gt;Public Class Form2 &lt;br /&gt;&lt;br /&gt;    Public Class CustDataEventArgs &lt;br /&gt;        Inherits System.EventArgs &lt;br /&gt;        Private _MyValue As String &lt;br /&gt;        Public Property MyValue() As String &lt;br /&gt;            Get &lt;br /&gt;                Return _MyValue &lt;br /&gt;            End Get &lt;br /&gt;            Set(ByVal value As String) &lt;br /&gt;                _MyValue = value &lt;br /&gt;            End Set &lt;br /&gt;        End Property &lt;br /&gt;&lt;br /&gt;        Public Sub New(ByVal MyValue As String) &lt;br /&gt;            _MyValue = MyValue &lt;br /&gt;        End Sub &lt;br /&gt;    End Class &lt;br /&gt;&lt;br /&gt;    Public Delegate Sub CustDataDelegate(ByVal sender As Object, ByVal e As CustDataEventArgs) &lt;br /&gt;&lt;br /&gt;    Public Event CustDataEvent As CustDataDelegate &lt;br /&gt;&lt;br /&gt;Private _MyLocation As String &lt;br /&gt;    Public Property MyLocation() As String &lt;br /&gt;        Get &lt;br /&gt;            Return _MyLocation &lt;br /&gt;        End Get &lt;br /&gt;        Set(ByVal value As String) &lt;br /&gt;            'if the value is different &lt;br /&gt;            If Not value = _MyLocation Then &lt;br /&gt;                RaiseEvent CustDataEvent(Me, New CustDataEventArgs(value)) &lt;br /&gt;            End If &lt;br /&gt;            _MyLocation = value &lt;br /&gt;        End Set &lt;br /&gt;    End Property &lt;br /&gt;&lt;br /&gt;    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click &lt;br /&gt;      MyLocation = “London” &lt;br /&gt;    End Sub &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;End Class&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;C#: &lt;br /&gt;&lt;br /&gt;Code: namespace WindowsApplication1 &lt;br /&gt;{ &lt;br /&gt;    public partial class Form1 : Form &lt;br /&gt;    { &lt;br /&gt;        public Form1() &lt;br /&gt;        { &lt;br /&gt;            InitializeComponent(); &lt;br /&gt;        } &lt;br /&gt;&lt;br /&gt;        private void Form1_Load(object sender, EventArgs e) &lt;br /&gt;        { &lt;br /&gt;             &lt;br /&gt;             &lt;br /&gt;        } &lt;br /&gt;        private void DoWork(Object sender, Form2.CustDataEventArgs e) &lt;br /&gt;        { &lt;br /&gt;            MessageBox.Show("The accident happened at: " + e.MyValue); &lt;br /&gt;        } &lt;br /&gt;&lt;br /&gt;        private void button1_Click(object sender, EventArgs e) &lt;br /&gt;        { &lt;br /&gt;            Form2 oForm = new Form2(); &lt;br /&gt;            oForm.CustDataEvent += new Form2.CustDataDelegate(DoWork); &lt;br /&gt;            oForm.Show(); &lt;br /&gt;        } &lt;br /&gt;    } &lt;br /&gt;} &lt;br /&gt;namespace WindowsApplication1 &lt;br /&gt;{ &lt;br /&gt;    public partial class Form2 : Form &lt;br /&gt;    { &lt;br /&gt;        public class CustDataEventArgs : EventArgs &lt;br /&gt;        { &lt;br /&gt;            private String _MyValue; &lt;br /&gt;&lt;br /&gt;            public String MyValue &lt;br /&gt;            { &lt;br /&gt;                get { return _MyValue; } &lt;br /&gt;                set { _MyValue = value; } &lt;br /&gt;            } &lt;br /&gt;&lt;br /&gt;            public CustDataEventArgs(String MyValue) &lt;br /&gt;            { &lt;br /&gt;                _MyValue = MyValue; &lt;br /&gt;            } &lt;br /&gt;     &lt;br /&gt;        } &lt;br /&gt;&lt;br /&gt;        public delegate void CustDataDelegate(Object sender, CustDataEventArgs e); &lt;br /&gt;        public event CustDataDelegate CustDataEvent; &lt;br /&gt;&lt;br /&gt;        private String _Location; &lt;br /&gt;&lt;br /&gt;        public String MyLocation &lt;br /&gt;        { &lt;br /&gt;            get { return _Location; } &lt;br /&gt;            set { &lt;br /&gt;                if (value != _Location) &lt;br /&gt;                { &lt;br /&gt;                    CustDataDelegate MyHandler = CustDataEvent; &lt;br /&gt;                    CustDataEventArgs e = new CustDataEventArgs(value); &lt;br /&gt;                    if (MyHandler != null) &lt;br /&gt;                    { &lt;br /&gt;                        MyHandler(this, e); &lt;br /&gt;                    } &lt;br /&gt;                } &lt;br /&gt;                _Location = value; &lt;br /&gt;                this.Hide(); &lt;br /&gt;            } &lt;br /&gt;        } &lt;br /&gt;&lt;br /&gt;        public Form2() &lt;br /&gt;        { &lt;br /&gt;            InitializeComponent(); &lt;br /&gt;            &lt;br /&gt;        } &lt;br /&gt;&lt;br /&gt;        private void button1_Click(object sender, EventArgs e) &lt;br /&gt;        { &lt;br /&gt;            this.MyLocation = "London"; &lt;br /&gt;        } &lt;br /&gt;    } &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;source :http://www.vbcity.com&lt;br /&gt;&lt;br /&gt;-------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;a href="http://gambarbergerak-riaq.blogspot.com"&gt;Trik Gambar Bergerak&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;&lt;a href="http://gambar-dimouse.blogspot.com"&gt;Trik Gambar-dimouse&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;&lt;a href="http://hapuspwdmysql.blogspot.com"&gt;Trik hapus pwd mysql&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;&lt;a href="http://insertintodb.blogspot.com"&gt;Trik insertin to db&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;&lt;a href="http://jadirootdilinux.blogspot.com"&gt;Trik jadi root dilinux&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;&lt;a href="http://jam-distatus-bar.blogspot.com"&gt;Trik jam-distatus-bar&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;&lt;a href="http://koneksi-kedatabase.blogspot.com"&gt;Trik Koneksi-ke database&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;&lt;a href="http://koneksi-msql-php.blogspot.com"&gt;Trik Koneksi-msql-php&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;&lt;a href="http://lihat-database-mysql.blogspot.com"&gt;Trik lihat-database-mysql&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;&lt;a href="http://membahas-fungsi-else.blogspot.com"&gt;Trik membahas-fungsi-else&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;&lt;a href="http://member-area-riaq.blogspot.com"&gt;Trik member-area&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=woodworkin09c-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=B000FI73MA&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt; &lt;iframe src="http://rcm.amazon.com/e/cm?t=woodworkin09c-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=B000P9ZBFA&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4897952968870231696-8122643753739657842?l=sendingdata.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sendingdata.blogspot.com/feeds/8122643753739657842/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://sendingdata.blogspot.com/2009/02/sending-datacommands-between-forms-by.html#comment-form' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4897952968870231696/posts/default/8122643753739657842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4897952968870231696/posts/default/8122643753739657842'/><link rel='alternate' type='text/html' href='http://sendingdata.blogspot.com/2009/02/sending-datacommands-between-forms-by.html' title=''/><author><name>vbnetcode</name><uri>http://www.blogger.com/profile/04926504053784281645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
