<?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-2115493491181903915</id><updated>2011-07-30T09:01:04.338-07:00</updated><category term='Send'/><category term='WebConfigurationManager'/><category term='GetSection'/><category term='base64Binary'/><category term='Save'/><category term='DllImport'/><category term='COM'/><category term='appSettings'/><category term='LoadImage'/><category term='SendKeys'/><category term='keyboard events'/><category term='OpenWebConfiguration'/><category term='System.Configuration'/><category term='SaveAs'/><category term='Typed DataSet'/><category term='IntPtr'/><category term='code non managé'/><category term='User32.dll'/><category term='SetForegroundWindow'/><category term='code managé'/><category term='P/Invoke'/><category term='FindWindow'/><category term='SendWait'/><category term='Crystal report'/><category term='User32'/><category term='Load image'/><category term='Components Object Model'/><category term='ConnectionStringsSection'/><category term='Invoke'/><category term='connectionStrings'/><category term='AppSettingsSection'/><title type='text'>.Net Web and Windows Applications, C# and VB.net</title><subtitle type='html'>Partager c'est réussir.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mounafia.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2115493491181903915/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mounafia.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Redouane</name><uri>http://www.blogger.com/profile/12673443884194109225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_4J4qR-uwRXU/S7z3QsV56lI/AAAAAAAAADU/JDMH-bJZUJQ/S220/2812200902.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2115493491181903915.post-7703744422540808156</id><published>2010-04-07T13:17:00.000-07:00</published><updated>2010-04-22T03:03:55.465-07:00</updated><title type='text'></title><content type='html'>Dans mon espace de LinkedIn, j'ai 3 recommandations que j'apprécie beaucoup, des collègues avec qui j'ai travaillé.&lt;br /&gt;Avant de les citer, j'aimerais dire un grand merci à eux, c'étais un plaisir pour moi.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;De Oussama Dinia, Expert Technique .NET&lt;/strong&gt;&lt;br /&gt;et qui a travaillé directement avec moi&lt;br /&gt;“During the times I have worked with Redouane, I have always felt a certain complementarity. Redouane is very strong technically, especially when it comes to low level development, or development without UI. He's highly experience with the .NET framework, and has a very intensly positive attitude as a team member. You can rely on Redouane in just about all the "Mission Impossible" situations :). I did.” 7 avril 2010&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;De Jalal Mankach, Développeur Sharepoint, ONA Holding&lt;br /&gt;&lt;/strong&gt;qui a travaillé directement avec moi&lt;br /&gt;“Mr Radouan Mounafia a exercé au sein de Netopia Solution les fonctions de Développeur confirmé. Je peux vous assurer que Monsieur Radouan Mounafia a toujours su montrer un grand intérêt pour son travail et qu'il ma donné entière satisfaction en s'acquittant de ses tâches avec célérité. C'est, en effet, une personne très compétente qui maîtrise parfaitement son métier et l'exerce avec professionnalisme.” 18 janvier 2010&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;De Tarik Fadli, Lead Solutions Architect, Microsoft Middle East &amp;amp; Africa (relation professionnelle)&lt;/strong&gt;&lt;br /&gt;qui était employé par une autre entreprise quand j'ai travaillé avec son équipe&lt;br /&gt;“It is my pleasure to recommend Redouane. He worked as a developer in a team I worked with as an architect for a complex ticketing system. Readouane showed good work ethics and great commitment to completing his tasks and even taking on others. He established good relationships with his peers and with the end users. I look forward to working with him.” 18 janvier 2010&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2115493491181903915-7703744422540808156?l=mounafia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mounafia.blogspot.com/feeds/7703744422540808156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2115493491181903915&amp;postID=7703744422540808156' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2115493491181903915/posts/default/7703744422540808156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2115493491181903915/posts/default/7703744422540808156'/><link rel='alternate' type='text/html' href='http://mounafia.blogspot.com/2010/04/dans-mon-espace-de-linkedin-jai-3.html' title=''/><author><name>Redouane</name><uri>http://www.blogger.com/profile/12673443884194109225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_4J4qR-uwRXU/S7z3QsV56lI/AAAAAAAAADU/JDMH-bJZUJQ/S220/2812200902.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2115493491181903915.post-8446367062707638991</id><published>2010-01-18T06:54:00.000-08:00</published><updated>2010-01-21T02:40:44.528-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebConfigurationManager'/><category scheme='http://www.blogger.com/atom/ns#' term='SaveAs'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenWebConfiguration'/><category scheme='http://www.blogger.com/atom/ns#' term='AppSettingsSection'/><category scheme='http://www.blogger.com/atom/ns#' term='System.Configuration'/><category scheme='http://www.blogger.com/atom/ns#' term='Save'/><category scheme='http://www.blogger.com/atom/ns#' term='GetSection'/><category scheme='http://www.blogger.com/atom/ns#' term='ConnectionStringsSection'/><category scheme='http://www.blogger.com/atom/ns#' term='connectionStrings'/><category scheme='http://www.blogger.com/atom/ns#' term='appSettings'/><title type='text'>Modification du fichier de configuration .Net</title><content type='html'>&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="font-family:Calibri;"&gt;Avec la sortie du Framework 2.0, on pourrait gérer un fichier de configuration dynamiquement, chose qui n’était pas avant.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Calibri;"&gt;Depuis .Net 2.0, on a la possibilité de modifier, ajouter et/ou crypter des sections dans le fichier de configuration, en général on a des outils de configuration qui nous permettent de rendre nos applications flexibles et portables d’une façon aisée.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Calibri;"&gt;Ces outils on les trouve dans l’espace de nom &lt;b style="mso-bidi-font-weight: normal"&gt;System.Configuration.&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;br /&gt;&lt;span style="font-family:Calibri;"&gt;Ci-après un petit exemple pour vous montrer, comment modifier une clé de la section &lt;b style="mso-bidi-font-weight: normal"&gt;appSettings&lt;/b&gt; ou une chaîne de connexion de la section &lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="FONT-FAMILY: Calibri; mso-bidi-: yesfont-family:'Courier New';" &gt;connectionStrings.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="FONT-FAMILY: Calibri; mso-bidi-: yesfont-family:'Courier New';" &gt;&lt; &lt;span style="color:#660000;"&gt;&lt;strong&gt;configuration&lt;/strong&gt;&lt;/span&gt;&gt;&lt;br /&gt;&lt; &lt;span style="color:#660000;"&gt;&lt;strong&gt;appSettings&lt;/strong&gt;&lt;/span&gt;&gt;&lt;br /&gt;&lt; &lt;span style="color:#660000;"&gt;&lt;strong&gt;add&lt;/strong&gt;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;key&lt;/span&gt;="&lt;span style="color:#3333ff;"&gt;TestKey&lt;/span&gt;" &lt;span style="color:#ff0000;"&gt;value&lt;/span&gt;="&lt;span style="color:#3333ff;"&gt;Test Value&lt;/span&gt;" /&gt;&lt;br /&gt;&lt; /&lt;span style="color:#660000;"&gt;&lt;strong&gt;appSettings&lt;/strong&gt;&lt;/span&gt;&gt;&lt;br /&gt;&lt; &lt;span style="color:#660000;"&gt;&lt;strong&gt;connectionStrings&lt;/strong&gt;&lt;/span&gt;&gt;&lt;br /&gt;&lt; &lt;span style="color:#660000;"&gt;&lt;strong&gt;add&lt;/strong&gt;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;="&lt;span style="color:#3333ff;"&gt;ConnString&lt;/span&gt;" &lt;span style="color:#ff0000;"&gt;connectionString&lt;/span&gt;="&lt;span style="color:#3333ff;"&gt;Data Source=TestSource; DataBase=TestData; User ID=Login; Pwd=Passeword&lt;/span&gt;" &lt;span style="color:#ff0000;"&gt;providerName&lt;/span&gt;="&lt;span style="color:#3333ff;"&gt;System.Data.SqlServer&lt;/span&gt;" /&gt;&lt;br /&gt;&lt; /&lt;span style="color:#660000;"&gt;&lt;strong&gt;connectionStrings&lt;/strong&gt;&lt;/span&gt;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="FONT-FAMILY: Calibri; mso-bidi-: yesfont-family:'Courier New';" &gt;D’abord et avant de compiler le code, il faut ajouter une référence dans votre projet à System.Configuration.dll :&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-FAMILY: Calibri; mso-bidi-: yesfont-family:'Courier New';" &gt;&lt;span style="font-size:85%;"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';color:blue;"  &gt;Imports&lt;/span&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt; System.Configuration&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';color:blue;"  &gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Imports&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';font-size:85%;"  &gt; System.Web.Configuration&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span lang="EN-GB" style="mso-no-proof: yes; mso-ansi-language: EN-GBfont-family:Calibri;color:#000000;"  &gt;Et le code :&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="EN-GB" style="mso-no-proof: yes; mso-ansi-language: EN-GBfont-family:'Courier New';color:blue;"  &gt;Dim&lt;/span&gt;&lt;span lang="EN-GB" style="mso-no-proof: yes; mso-ansi-language: EN-GBfont-family:'Courier New';" &gt; config &lt;span style="color:blue;"&gt;As&lt;/span&gt; Configuration = WebConfigurationManager.OpenWebConfiguration(&lt;span style="color:#a31515;"&gt;"~"&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';font-size:85%;color:green;"   &gt;' Vérifier la présence d'un fichier de configuration&lt;/span&gt;&lt;span lang="EN-GB" style="mso-no-proof: yes; mso-ansi-language: EN-GBfont-family:'Courier New';color:blue;"  &gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;If&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB" style="mso-no-proof: yes; mso-ansi-language: EN-GBfont-family:'Courier New';" &gt;&lt;span style="font-size:85%;"&gt; (config.HasFile) &lt;span style="color:blue;"&gt;Then&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB" style="mso-no-proof: yes; mso-ansi-language: EN-GBfont-family:'Courier New';color:blue;"  &gt;&lt;br /&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';color:green;"  &gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;' AppSettingsSection =&gt; Fournit une prise en charge du système de configuration &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB" style="mso-no-proof: yes; mso-ansi-language: EN-GBfont-family:'Courier New';color:blue;"  &gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;&lt;span style="font-size:85%;color:green;"&gt;pour la section de configuration appSettings&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB" style="mso-no-proof: yes; mso-ansi-language: EN-GBfont-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes;font-size:85%;" &gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Dim&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; AppSet &lt;span style="color:blue;"&gt;As&lt;/span&gt; AppSettingsSection = &lt;span style="color:blue;"&gt;CType&lt;/span&gt;(config.GetSection(&lt;span style="color:#a31515;"&gt;"appSettings"&lt;/span&gt;), AppSettingsSection)&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB" style="mso-no-proof: yes; mso-ansi-language: EN-GBfont-family:'Courier New';" &gt;&lt;br /&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';color:green;"  &gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;' ConnectionStringsSection =&gt; Fournit l'accès par programme à la section &lt;/span&gt;&lt;/span&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;&lt;span style="font-size:85%;color:green;"&gt;des chaînes de connexion du fichier de configuration&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB" style="mso-no-proof: yes; mso-ansi-language: EN-GBfont-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes;font-size:85%;" &gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Dim&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; ConnSet &lt;span style="color:blue;"&gt;As&lt;/span&gt; ConnectionStringsSection = &lt;span style="color:blue;"&gt;CType&lt;/span&gt;(config.GetSection(&lt;span style="color:#a31515;"&gt;"connectionStrings"&lt;/span&gt;), ConnectionStringsSection)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span lang="EN-GB" style="mso-no-proof: yes; mso-ansi-language: EN-GBfont-family:'Courier New';" &gt;&lt;br /&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';color:green;"  &gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;'config.Save()&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;=&gt; Enregistre les paramètres courant&lt;br /&gt;de l’objet Configuration dans le fichier XML associé.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;'config.SaveAs(filename As String) =&gt; Enregistre les paramètres courant de l’objet Configuration dans un fichier XML indiqué&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-fareast-language: FR; mso-bidi-language: AR-SA; mso-fareast-: FRfont-family:'Times New Roman';" &gt;&lt;span style="color:green;"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;en paramètre.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span lang="EN-GB" style="mso-no-proof: yes; mso-ansi-language: EN-GBfont-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes;font-size:85%;" &gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;If&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; (&lt;span style="color:blue;"&gt;Not&lt;/span&gt; AppSet &lt;span style="color:blue;"&gt;Is&lt;/span&gt; &lt;span style="color:blue;"&gt;Nothing&lt;/span&gt;) &lt;span style="color:blue;"&gt;Then&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="EN-GB" style="mso-no-proof: yes; mso-ansi-language: EN-GBfont-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;AppSet.Settings(&lt;span style="color:#a31515;"&gt;"TestKey"&lt;/span&gt;).Value = &lt;span style="color:#a31515;"&gt;"Test Value"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span lang="EN-GB" style="mso-no-proof: yes; mso-ansi-language: EN-GBfont-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;config.Save()&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB" style="mso-no-proof: yes; mso-ansi-language: EN-GBfont-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes;font-size:85%;" &gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;End&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;span style="color:blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="EN-GB" style="mso-no-proof: yes; mso-ansi-language: EN-GBfont-family:'Courier New';" &gt;&lt;span style="color:blue;"&gt;If&lt;/span&gt; (&lt;span style="color:blue;"&gt;Not&lt;/span&gt; ConnSet &lt;span style="color:blue;"&gt;Is&lt;/span&gt; &lt;span style="color:blue;"&gt;Nothing&lt;/span&gt;) &lt;span style="color:blue;"&gt;Then&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span lang="EN-GB" style="mso-no-proof: yes; mso-ansi-language: EN-GBfont-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;ConnSet.ConnectionStrings(&lt;span style="color:#a31515;"&gt;"ConnString"&lt;/span&gt;).ConnectionString = &lt;span style="color:#a31515;"&gt;"La chaîne de connexion"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB" style="mso-no-proof: yes; mso-ansi-language: EN-GBfont-family:'Courier New';" &gt;ConnSet.ConnectionStrings(&lt;span style="color:#a31515;"&gt;"ConnString"&lt;/span&gt;).ProviderName = &lt;span style="color:#a31515;"&gt;"System.Data.SqlServer"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span lang="EN-GB" style="mso-no-proof: yes; mso-ansi-language: EN-GBfont-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;config.Save()&lt;/span&gt;&lt;br /&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;&lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;If&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-family:Courier New;color:#0000ff;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="mso-no-proof: yes;font-family:'Courier New';" &gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;If&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2115493491181903915-8446367062707638991?l=mounafia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mounafia.blogspot.com/feeds/8446367062707638991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2115493491181903915&amp;postID=8446367062707638991' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2115493491181903915/posts/default/8446367062707638991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2115493491181903915/posts/default/8446367062707638991'/><link rel='alternate' type='text/html' href='http://mounafia.blogspot.com/2010/01/avec-la-sortie-du-framework-2.html' title='Modification du fichier de configuration .Net'/><author><name>Redouane</name><uri>http://www.blogger.com/profile/12673443884194109225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_4J4qR-uwRXU/S7z3QsV56lI/AAAAAAAAADU/JDMH-bJZUJQ/S220/2812200902.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2115493491181903915.post-1191065745737722155</id><published>2010-01-13T07:53:00.000-08:00</published><updated>2010-01-13T08:26:56.884-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SetForegroundWindow'/><category scheme='http://www.blogger.com/atom/ns#' term='code non managé'/><category scheme='http://www.blogger.com/atom/ns#' term='SendKeys'/><category scheme='http://www.blogger.com/atom/ns#' term='DllImport'/><category scheme='http://www.blogger.com/atom/ns#' term='COM'/><category scheme='http://www.blogger.com/atom/ns#' term='User32'/><category scheme='http://www.blogger.com/atom/ns#' term='FindWindow'/><category scheme='http://www.blogger.com/atom/ns#' term='keyboard events'/><category scheme='http://www.blogger.com/atom/ns#' term='User32.dll'/><category scheme='http://www.blogger.com/atom/ns#' term='Components Object Model'/><category scheme='http://www.blogger.com/atom/ns#' term='P/Invoke'/><category scheme='http://www.blogger.com/atom/ns#' term='Send'/><category scheme='http://www.blogger.com/atom/ns#' term='code managé'/><category scheme='http://www.blogger.com/atom/ns#' term='SendWait'/><category scheme='http://www.blogger.com/atom/ns#' term='IntPtr'/><category scheme='http://www.blogger.com/atom/ns#' term='Invoke'/><title type='text'>Utilisation de code non managé sans les composants COM</title><content type='html'>• Les composants COM et le code non managé&lt;br /&gt;(Utilisation de code non managé sans les composants COM)&lt;br /&gt;&lt;br /&gt;On sait presque tous comment utilisé des objets COM (Components Object Model) dans nos assemblées (la plupart du temps à l’aide de l’outil d’importation Visual Studio) et ça permet aux applications qui fonctionnent avec le Framework .Net d’interagir avec des applications non-managées.&lt;br /&gt;&lt;br /&gt;Mais il peut arriver parfois que le composant COM qui englobe le code non managé n’existe pas, dans ce cas, nous allons utiliser d’autres outils du Framework pour importer et utiliser du code non managé.&lt;br /&gt;&lt;br /&gt;Parmi ces outils, il y a le principal qui est : P/Invoke (ou Platform Invoke) qu’on trouve dans l’espace de nom « System.Runtime.InteropServices » et qui invoque et fourni des fonctionnalités pour accéder à des fonctions, des structures et des callbacks dans des Dlls non managées.&lt;br /&gt;Essayons de comprendre bien ces fonctionnalités et comment utiliser le P/Invoke, avec un exemple :&lt;br /&gt;&lt;br /&gt; Nous allons nous servir de l’API Win32 qui permet à la manière des Windows Form d’afficher des fenêtres ou dessiner des formes mais avec du code non managé .NET. Parmi les Dlls fréquemment utilisées dans cet API :&lt;br /&gt;User32.dll (Fonctions de gestion Windows pour les messages, les minuteries, les menus et les communications).&lt;br /&gt;Pour utilise P/Invoke, nous allons utiliser conjointement un attribut et le mot clé extern (ou shared en vb.net) :&lt;br /&gt;&lt;br /&gt;• &lt;span style="color:#009900;"&gt;' VB&lt;/span&gt;&lt;br /&gt;• &lt;span&gt; &lt; DllImport(&lt;span style="color:#990000;"&gt;"USER32.DLL"&lt;/span&gt;)&gt; &lt;/span&gt;&lt;br /&gt;• &lt;span style="color:#3333ff;"&gt;Public Shared Function&lt;/span&gt; FindWindow(&lt;span style="color:#3333ff;"&gt;ByVal &lt;/span&gt;lpClassName &lt;span style="color:#3333ff;"&gt;As String&lt;/span&gt;, _&lt;br /&gt;• &lt;span style="color:#3333ff;"&gt;ByVal&lt;/span&gt; lpWindowName &lt;span style="color:#3333ff;"&gt;As String&lt;/span&gt;) &lt;span style="color:#3333ff;"&gt;As&lt;/span&gt; IntPtr&lt;br /&gt;&lt;br /&gt;• &lt;span style="color:#009900;"&gt;// C#&lt;/span&gt;&lt;br /&gt;• [DllImport(&lt;span style="color:#990000;"&gt;"USER32.DLL"&lt;/span&gt;)]&lt;br /&gt;• &lt;span style="color:#3333ff;"&gt;public static&lt;/span&gt; extern IntPtr FindWindow(&lt;span style="color:#3333ff;"&gt;string&lt;/span&gt; lpClassName, &lt;span style="color:#3333ff;"&gt;string&lt;/span&gt; lpWindowName);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;L’attribut va se charger d’importer un membre de la Dll (User32.dll), nous devons le placer devant la méthode ou un paramètre.&lt;br /&gt;Le mot clef extern/Shared lui permet de définir que nous allons utiliser une méthode externe à l’assembly et que celle‐ci se situe dans la dll importée. Nous devons impérativement respecter la signature de la méthode, nous devons donc connaître la signature de la méthode dans la dll importé.&lt;br /&gt;NB : La méthode FindWindow a deux paramètres (Class et Window Caption) qu’on trouve dans les propriétés de la fenêtre active à l’aide de l’outil Microsoft Spy++.&lt;br /&gt;&lt;br /&gt;Dans l’exemple ci-après (Référence msdn Microsoft : &lt;a href="http://msdn.microsoft.com/en-us/library/ms171548.aspx"&gt;How to: Simulate Mouse and Keyboard Events in Code&lt;/a&gt;), nous allons activer la fenêtre de l’application (calculatrice Windows) qui recevra une séquence de touches à l’aide de l’appel de la méthode Send ou SendWait (Méthodes Windows natives pour forcer le focus sur d’autres applications) :&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;// Get a handle to an application window.&lt;br /&gt;&lt;/span&gt;[DllImport("&lt;span style="color:#990000;"&gt;USER32.DLL&lt;/span&gt;")]&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;public static&lt;/span&gt; extern IntPtr FindWindow(&lt;span style="color:#3333ff;"&gt;string&lt;/span&gt; lpClassName,&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;string&lt;/span&gt; lpWindowName);&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;// Activate an application window.&lt;br /&gt;&lt;/span&gt;[DllImport("&lt;span style="color:#990000;"&gt;USER32.DLL&lt;/span&gt;")]&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;public static&lt;/span&gt; extern &lt;span style="color:#3333ff;"&gt;bool&lt;/span&gt; SetForegroundWindow(IntPtr hWnd);&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;// Send a series of key presses to the Calculator application.&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;private void&lt;/span&gt; button1_Click(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;&lt;span style="color:#009900;"&gt;// Get a handle to the Calculator application. The window class&lt;br /&gt;// and window name were obtained using the Spy++ tool.&lt;br /&gt;&lt;/span&gt;IntPtr calculatorHandle = FindWindow(&lt;span style="color:#990000;"&gt;"SciCalc"&lt;/span&gt;, &lt;span style="color:#990000;"&gt;"Calculator"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;// Verify that Calculator is a running process.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;if &lt;/span&gt;(calculatorHandle == IntPtr.Zero)&lt;br /&gt;{&lt;br /&gt;MessageBox.Show(&lt;span style="color:#990000;"&gt;"Calculator is not running."&lt;/span&gt;);&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;return&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;// Make Calculator the foreground application and send it&lt;br /&gt;// a set of calculations.&lt;br /&gt;&lt;/span&gt;SetForegroundWindow(calculatorHandle);&lt;br /&gt;SendKeys.SendWait(&lt;span style="color:#990000;"&gt;"111"&lt;/span&gt;);&lt;br /&gt;SendKeys.SendWait(&lt;span style="color:#990000;"&gt;"*"&lt;/span&gt;);&lt;br /&gt;SendKeys.SendWait(&lt;span style="color:#990000;"&gt;"11"&lt;/span&gt;);&lt;br /&gt;SendKeys.SendWait(&lt;span style="color:#990000;"&gt;"="&lt;/span&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Nous avons dans notre exemple encapsulé le code importé dans une méthode afin de simplifier la réutilisation du code non managé. C’est une bonne pratique car elle va nous permettre d’importer du code non managé sans perturber les autres développeurs qui pourront utiliser seulement du code managé et ne devront pas apprendre toutes les ficelles de P/Invoke.&lt;br /&gt;&lt;br /&gt;Référence : - &lt;a href="http://msdn.microsoft.com/en-us/default.aspx"&gt;msdn Microsoft&lt;/a&gt;&lt;br /&gt;                     - &lt;a href="http://www.dotnet-france.com/"&gt;http://www.dotnet-france.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2115493491181903915-1191065745737722155?l=mounafia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mounafia.blogspot.com/feeds/1191065745737722155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2115493491181903915&amp;postID=1191065745737722155' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2115493491181903915/posts/default/1191065745737722155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2115493491181903915/posts/default/1191065745737722155'/><link rel='alternate' type='text/html' href='http://mounafia.blogspot.com/2010/01/utilisation-de-code-non-manage-sans-les.html' title='Utilisation de code non managé sans les composants COM'/><author><name>Redouane</name><uri>http://www.blogger.com/profile/12673443884194109225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_4J4qR-uwRXU/S7z3QsV56lI/AAAAAAAAADU/JDMH-bJZUJQ/S220/2812200902.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2115493491181903915.post-7045241857844283597</id><published>2008-11-08T13:38:00.000-08:00</published><updated>2008-11-12T10:20:00.909-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Typed DataSet'/><category scheme='http://www.blogger.com/atom/ns#' term='base64Binary'/><category scheme='http://www.blogger.com/atom/ns#' term='Crystal report'/><category scheme='http://www.blogger.com/atom/ns#' term='LoadImage'/><category scheme='http://www.blogger.com/atom/ns#' term='Load image'/><title type='text'>How to Load images in Crystal Reports dynamically Using Visual Studio 2005</title><content type='html'>If you have imagepath that store in your database, Crystal Report .NET in Visual Studio 2003/2005 cannot display image file dynamically unless you use dynamic image location feature in Crystal Report XI.&lt;br /&gt;&lt;br /&gt;I searched in the Web, I found how to display it with some work around for this :&lt;br /&gt;&lt;br /&gt;* Sure we must have a field (imagepath) in our database. We need to create a new Dataset/XML Schema (xsd) (Typed DataSet) to use as resource data in creating report and add an additional field that is not in the table and which is of type base64Binary :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_4J4qR-uwRXU/SRYLQQrVY9I/AAAAAAAAAAo/UumACnOHJzU/s1600-h/Image_Byte.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5266409188238910418" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 456px; CURSOR: hand; HEIGHT: 270px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_4J4qR-uwRXU/SRYLQQrVY9I/AAAAAAAAAAo/UumACnOHJzU/s320/Image_Byte.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Or add it in xml :&lt;br /&gt;&lt; name="”image_stream”" type="”xs:base64Binary”" minoccurs="”0″"&gt;&lt;br /&gt;&lt;br /&gt;* When designing a report drag and drop the “image_stream” field in the region where you want it to appear.&lt;br /&gt;&lt;br /&gt;* Add CrystalReportViewer to your page aspx.&lt;br /&gt;&lt;br /&gt;* In Code Behind of your page Add the following method, to load the image:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;private void&lt;/span&gt; LoadImage(&lt;span style="color:#009900;"&gt;DataRow&lt;/span&gt; objDataRow, &lt;span style="color:#000099;"&gt;string&lt;/span&gt; strImageField, &lt;span style="color:#000099;"&gt;string&lt;/span&gt; FilePath)&lt;br /&gt;&lt;span style="color:#000000;"&gt;{&lt;br /&gt;&lt;span style="color:#000099;"&gt;try&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#009900;"&gt;FileStream&lt;/span&gt; fs = &lt;span style="color:#000099;"&gt;new&lt;/span&gt; &lt;span style="color:#009900;"&gt;FileStream&lt;/span&gt;(FilePath, System.IO.&lt;span style="color:#009900;"&gt;FileMode&lt;/span&gt;.Open, System.IO.&lt;span style="color:#009900;"&gt;FileAccess&lt;/span&gt;.Read);&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;byte&lt;/span&gt;[] Image =&lt;span style="color:#000099;"&gt; new byte&lt;/span&gt;[fs.Length];&lt;br /&gt;fs.Read(Image, 0, &lt;span style="color:#009900;"&gt;Convert&lt;/span&gt;.ToInt32(fs.Length));&lt;br /&gt;fs.Close();&lt;br /&gt;objDataRow[strImageField] = Image;&lt;br /&gt;}&lt;br /&gt;&lt;span style="color:#000099;"&gt;catch&lt;/span&gt; (&lt;span style="color:#009900;"&gt;Exception&lt;/span&gt; ex)&lt;br /&gt;&lt;span style="color:#000000;"&gt;{&lt;br /&gt;&lt;/span&gt;Response.Write(&lt;span style="color:#cc0000;"&gt;"&lt;span style="color:red;"&gt;"&lt;/span&gt; + ex.Message + &lt;span style="color:#cc0000;"&gt;"&lt;/span&gt;"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color:#000000;"&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;* We need to fill the Typed DataSet, and before assigning this dataset to the “SetDataSource” of our report, we need to add some lines of code:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;TypedDataSet&lt;/span&gt; ds = &lt;span style="color:#000099;"&gt;new&lt;/span&gt; &lt;span style="color:#009900;"&gt;TypedDataSet&lt;/span&gt;();&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;SqlConnection&lt;/span&gt; cn = &lt;span style="color:#000099;"&gt;new&lt;/span&gt; &lt;span style="color:#009900;"&gt;SqlConnection&lt;/span&gt;(&lt;span style="color:#cc0000;"&gt;"&lt;/span&gt;&lt;span style="color:#cc0000;"&gt;Data Source=ServerName;Initial Catalog=DataBaseName;User ID=UserName;Password=UserPassword&lt;/span&gt;&lt;span style="color:#cc0000;"&gt;"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color:#009900;"&gt;SqlCommand&lt;/span&gt; Cmd = &lt;span style="color:#000099;"&gt;new&lt;/span&gt; &lt;span style="color:#009900;"&gt;SqlCommand&lt;/span&gt;();&lt;br /&gt;&lt;span style="color:#009900;"&gt;SqlDataAdapter&lt;/span&gt; myAdapter = &lt;span style="color:#000099;"&gt;new&lt;/span&gt; &lt;span style="color:#009900;"&gt;SqlDataAdapter&lt;/span&gt;();&lt;br /&gt;&lt;br /&gt;Cmd.CommandText = &lt;span style="color:#cc0000;"&gt;" Select * From TableName"&lt;/span&gt;;&lt;br /&gt;Cmd.Connection = cn;&lt;br /&gt;myAdapter.SelectCommand = Cmd;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;try&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;cn.Open();&lt;br /&gt;myAdapter.Fill(ds.Tables[0]);&lt;br /&gt;cn.Close();&lt;br /&gt;}&lt;br /&gt;&lt;span style="color:#000099;"&gt;catch&lt;/span&gt; (&lt;span style="color:#009900;"&gt;Exception&lt;/span&gt; ex)&lt;br /&gt;{&lt;br /&gt;&lt;span style="color:#000099;"&gt;throw&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;for&lt;/span&gt; (&lt;span style="color:#000099;"&gt;int&lt;/span&gt; index = 0; index &lt; ds.Tables[0].Rows.Count; index++)&lt;br /&gt;{&lt;br /&gt;if&lt;/span&gt; (ds.Tables[0].Rows[index]["image_path"].ToString() != "")&lt;br /&gt;{&lt;br /&gt;&lt;span style="color:#000099;"&gt;string&lt;/span&gt; s = &lt;span style="color:#000099;"&gt;this&lt;/span&gt;.Server.MapPath(ds.Tables[0].Rows[index][&lt;span style="color:#cc0000;"&gt;"image_path"&lt;/span&gt;].ToString());&lt;br /&gt;&lt;span style="color:#000099;"&gt;if&lt;/span&gt; (&lt;span style="color:#006600;"&gt;File&lt;/span&gt;.Exists(s))&lt;br /&gt;{&lt;br /&gt;LoadImage(ds.Tables[0].Rows[index], &lt;span style="color:#cc0000;"&gt;"image_stream"&lt;/span&gt;, s);&lt;br /&gt;}&lt;br /&gt;&lt;span style="color:#000099;"&gt;else&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;LoadImage(ds.Tables[0].Rows[index], &lt;span style="color:#cc0000;"&gt;"image_stream"&lt;span style="color:#000000;"&gt;,&lt;/span&gt; @"C:\ImagePath\DefaultPicture.jpg"&lt;/span&gt;);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;span style="color:#000099;"&gt;else&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;LoadImage(ds.Tables[0].Rows[index], &lt;span style="color:#cc0000;"&gt;"image_stream"&lt;span style="color:#000000;"&gt;,&lt;/span&gt; @"C:\ImagePath\DefaultPicture.jpg"&lt;/span&gt;);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;try&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;&lt;span style="color:#009900;"&gt;ReportDocument&lt;/span&gt; crDoc = &lt;span style="color:#000099;"&gt;new&lt;/span&gt; &lt;span style="color:#009900;"&gt;ReportDocument&lt;/span&gt;();&lt;br /&gt;crDoc.Load(Server.MapPath(&lt;span style="color:#cc0000;"&gt;"CrystalReport.rpt"&lt;/span&gt;));&lt;br /&gt;crDoc.SetDataSource(ds.Tables[0]);&lt;br /&gt;CrystalReportViewer1.ReportSource = crDoc;&lt;br /&gt;}&lt;br /&gt;&lt;span style="color:#000099;"&gt;catch&lt;/span&gt; (&lt;span style="color:#009900;"&gt;Exception&lt;/span&gt; ex)&lt;br /&gt;{&lt;br /&gt;&lt;span style="color:#000099;"&gt;throw&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;?xml:namespace prefix = xs /&gt;&lt;xs:element type="”xs:base64Binary”" name="”image_stream”" minoccurs="”0″"&gt;&lt;/xs:element&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2115493491181903915-7045241857844283597?l=mounafia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mounafia.blogspot.com/feeds/7045241857844283597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2115493491181903915&amp;postID=7045241857844283597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2115493491181903915/posts/default/7045241857844283597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2115493491181903915/posts/default/7045241857844283597'/><link rel='alternate' type='text/html' href='http://mounafia.blogspot.com/2008/11/how-to-load-images-in-crystal-reports.html' title='How to Load images in Crystal Reports dynamically Using Visual Studio 2005'/><author><name>Redouane</name><uri>http://www.blogger.com/profile/12673443884194109225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='25' src='http://2.bp.blogspot.com/_4J4qR-uwRXU/S7z3QsV56lI/AAAAAAAAADU/JDMH-bJZUJQ/S220/2812200902.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_4J4qR-uwRXU/SRYLQQrVY9I/AAAAAAAAAAo/UumACnOHJzU/s72-c/Image_Byte.JPG' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
