<?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-27509539</id><updated>2011-06-30T02:58:08.663-04:00</updated><category term='firefox'/><category term='add-ons'/><title type='text'>Technical stuff you probably wouldn't understand.</title><subtitle type='html'>Rather than cluttering up other blogs with my musings, I made my own.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://programteama.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27509539/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://programteama.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Bob C</name><uri>http://www.blogger.com/profile/12539524150423049312</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_luLoemIm9S8/S8cd7qmolZI/AAAAAAAABz4/YpZeQVLW5xg/S220/chauvinr_sm.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-27509539.post-898238594946803907</id><published>2007-03-29T15:44:00.000-04:00</published><updated>2007-03-29T15:51:34.801-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='add-ons'/><title type='text'>My Favorite FireFox AddIns</title><content type='html'>Just a list of links.  This is kind of a selfish post, as I can use this to install the add-ons from one page.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/file/2181/flashblock-1.5.2-fx+fl.xpi"&gt;FlashBlock&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/file/6293/ie_tab-1.3.1.20070126-fx+fl+mz+zm-windows.xpi"&gt;ieTab&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/file/9456/permatabs-1.4.0-fx.xpi"&gt;PermaTabs&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/file/4835/all-in-one_sidebar-0.7.1-fx+fl.xpi"&gt;All in one Sidebar&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/file/1969/forecastfox-0.9.5.2-fx+fl+mz+ns+zm.xpi"&gt;Forecastfox&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/file/14119/download%20statusbar-0.9.4.6-firefox.xpi"&gt;Download Status Bar&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;That's it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27509539-898238594946803907?l=programteama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programteama.blogspot.com/feeds/898238594946803907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27509539&amp;postID=898238594946803907' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27509539/posts/default/898238594946803907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27509539/posts/default/898238594946803907'/><link rel='alternate' type='text/html' href='http://programteama.blogspot.com/2007/03/my-favorite-firefox-addins.html' title='My Favorite FireFox AddIns'/><author><name>Bob C</name><uri>http://www.blogger.com/profile/12539524150423049312</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_luLoemIm9S8/S8cd7qmolZI/AAAAAAAABz4/YpZeQVLW5xg/S220/chauvinr_sm.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27509539.post-115526349055963936</id><published>2006-08-10T22:26:00.000-04:00</published><updated>2006-08-10T22:31:40.013-04:00</updated><title type='text'>Providing feedback for textbox controls using Datawindow.Net</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;div&gt;&lt;table border="0" style="border-collapse:collapse"&gt;&lt;colgroup&gt;&lt;col style="width:588px"/&gt;&lt;/colgroup&gt;&lt;tbody vAlign="top"&gt;&lt;tr&gt;&lt;td style="PADDING-TOP: 14px; PADDING-LEFT: 8px; PADDING-BOTTOM: 14px; PADDING-RIGHT: 8px; BORDER-LEFT:  solid #4f81bd 2.25pt"&gt;&lt;p&gt;Microsoft&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-LEFT:  solid #4f81bd 2.25pt"&gt;&lt;p&gt;&lt;span style="color:#4f81bd; font-size:40"&gt;Feedback&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="PADDING-TOP: 14px; PADDING-LEFT: 8px; PADDING-BOTTOM: 14px; PADDING-RIGHT: 8px; BORDER-LEFT:  solid #4f81bd 2.25pt"&gt;&lt;p&gt;Note, this blog post was delivered via Microsoft Word 2007 using it’s new Blog publishing feature.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="PADDING-TOP: 14px; PADDING-LEFT: 8px; PADDING-BOTTOM: 14px; PADDING-RIGHT: 8px"&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color:#4f81bd"&gt;8/10/2006&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.codeproject.com/aspnet/TextBoxCounter.asp?df=100&amp;amp;forumid=247992&amp;amp;exp=0&amp;amp;select=1393971"&gt;http://www.codeproject.com/aspnet/TextBoxCounter.asp?df=100&amp;amp;forumid=247992&amp;amp;exp=0&amp;amp;select=1393971&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;http://www.dmxzone.com/forum/topic.asp?topic_id=21084&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27509539-115526349055963936?l=programteama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programteama.blogspot.com/feeds/115526349055963936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27509539&amp;postID=115526349055963936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27509539/posts/default/115526349055963936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27509539/posts/default/115526349055963936'/><link rel='alternate' type='text/html' href='http://programteama.blogspot.com/2006/08/providing-feedback-for-textbox.html' title='Providing feedback for textbox controls using Datawindow.Net'/><author><name>Bob C</name><uri>http://www.blogger.com/profile/12539524150423049312</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_luLoemIm9S8/S8cd7qmolZI/AAAAAAAABz4/YpZeQVLW5xg/S220/chauvinr_sm.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27509539.post-115153008675133717</id><published>2006-06-28T17:05:00.000-04:00</published><updated>2006-06-28T17:32:50.376-04:00</updated><title type='text'>Sharepoint document uploads with support for versioning.</title><content type='html'>This post is a continuation/addition to the post by &lt;a href="http://blogs.msdn.com/erikaehrli/archive/2006/05/04/SharePointUploadHelper.aspx?CommentPosted=true#commentmessage"&gt;Erika Ehrli &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I successfully implemented the sample, and with some small modifications came up with an enhancment to allow the document to be uploaded from a stream instead of a file on the file system.&lt;br /&gt;&lt;br /&gt;One tidbit that I added to my client app was to pass the credentials from the client to the web service.  Now when I call &lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;"&gt;iMJContactWebService.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;UploadDocumentToSharePoint &lt;span style="font-size:100%;"&gt;my credentials are passed on. &lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   ...&lt;br /&gt;&lt;span style="font-size:78%;"&gt;                iMJContactWebService = New wsMJ_ContactServices.Service&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;"&gt; iMJContactWebService.Credentials = System.Net.CredentialCache.DefaultCredentials &lt;/span&gt;    ' see Setting credentials http://support.microsoft.com/default.aspx?scid=kb;en-us;813834&lt;/span&gt;&lt;br /&gt;     ...&lt;br /&gt;&lt;br /&gt;Heres the modified ws code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;    &lt;br /&gt;Public Function UploadDocumentToSharePoint(ByRef asDocName As String, ByVal asdocumentContents As String) As String&lt;br /&gt;   ' 20060601 R.Chauvin bob_chauvin@yahoo.com&lt;br /&gt;   ' adapted from http://blogs.msdn.com/erikaehrli/archive/2006/05/04/SharePointUploadHelper.aspx?CommentPosted=true#commentmessage&lt;br /&gt;   Dim svcDocLoader As DocumentLoader.SPFiles = New DocumentLoader.SPFiles()&lt;br /&gt;   svcDocLoader.PreAuthenticate = True&lt;br /&gt;   svcDocLoader.Credentials = CredentialCache.DefaultCredentials&lt;br /&gt;&lt;br /&gt;   'Dim strPath As String = asdocumentContents&lt;br /&gt;   'Dim strFile As String = strPath.Substring(strPath.LastIndexOf("\\") + 1)&lt;br /&gt;   Dim strDestination As String = _sharepointDocumentLibrary&lt;br /&gt;   If as_doclibpath = "" Then as_doclibpath = _sharepointDocumentLibrary&lt;br /&gt;&lt;br /&gt;  &lt;span style="font-weight: bold;"&gt; Dim binFile() As [Byte] = System.Text.Encoding.UTF8.GetBytes(asdocumentContents)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   Dim result As String = svcDocLoader.UploadDocument(asDocName, binFile, strDestination)&lt;br /&gt;   asDocName = strDestination &amp; "/" &amp;amp; asDocName&lt;br /&gt;&lt;br /&gt;   Return (result)&lt;br /&gt;&lt;br /&gt;End Function&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Finally, I needed to modify the WSCheckout sample webservice from Microsoft to allow for document updates as well as adds.  After some research, I found the WSS v2 SDK had all the methods laid out for the &lt;span style="font-weight: bold;"&gt;SPFile &lt;/span&gt;class, including the Add method with it's optional &lt;span style="font-weight: bold;"&gt;overwrite &lt;/span&gt;parameter.&lt;br /&gt;&lt;br /&gt;After a simple change (with some enhanced return value code), the method now Adds &lt;span style="font-style: italic;"&gt;and &lt;/span&gt;Updates to the document library.  If you have enabled versioning in the sharepoint document library, updates will create a new version of the file.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;   &lt;br /&gt;   public string UploadDocument(string fileName, byte[] fileContents, string targetFolder)&lt;br /&gt;   {&lt;br /&gt;&lt;br /&gt;       string ls_Return, ls_fileURL;&lt;br /&gt;       bool lb_Found = false;&lt;br /&gt;&lt;br /&gt;       if (fileContents == null)&lt;br /&gt;       {&lt;br /&gt;           return "Null Attachment";&lt;br /&gt;       }&lt;br /&gt;       try&lt;br /&gt;       {&lt;br /&gt;           SPFolder folder = targetWebSite.GetFolder(targetFolder);&lt;br /&gt;           ls_fileURL = targetFolder + '\\' + fileName;&lt;br /&gt;&lt;br /&gt;           try&lt;br /&gt;           {&lt;br /&gt;               SPFile file = GetFile(ls_fileURL);&lt;br /&gt;               lb_Found = true;&lt;br /&gt;           }&lt;br /&gt;           catch (Exception ex)&lt;br /&gt;           {&lt;br /&gt;               // file not found exception&lt;br /&gt;         &lt;br /&gt;           }                //try&lt;br /&gt;&lt;br /&gt;           if (lb_Found)&lt;br /&gt;           {&lt;br /&gt;               SPFile newFile = folder.Files.Add(fileName, fileContents, true);&lt;br /&gt;               ls_Return = newFile.Title + "; Updated " + newFile.TimeCreated.ToLongDateString(); //+ "; guid=" + newFile.UniqueID();;&lt;br /&gt;           }&lt;br /&gt;           else&lt;br /&gt;           {&lt;br /&gt;               SPFile newFile = folder.Files.Add(fileName, fileContents);&lt;br /&gt;               ls_Return = newFile.Title + "; Created " + newFile.TimeLastModified.ToLongDateString(); //+ "; guid=" + newFile.UniqueID();;&lt;br /&gt;&lt;br /&gt;           }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;           return ls_Return;&lt;br /&gt;       }&lt;br /&gt;       catch (System.Exception ee)&lt;br /&gt;       {&lt;br /&gt;           return "Exception:  " + ee.Message + "; " + ee.Source;&lt;br /&gt;       }&lt;br /&gt;   }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;Thanks again to Erika Ehril for getting me started...&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/webmethod(description:="upload&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27509539-115153008675133717?l=programteama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programteama.blogspot.com/feeds/115153008675133717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27509539&amp;postID=115153008675133717' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27509539/posts/default/115153008675133717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27509539/posts/default/115153008675133717'/><link rel='alternate' type='text/html' href='http://programteama.blogspot.com/2006/06/sharepoint-document-uploads-with.html' title='Sharepoint document uploads with support for versioning.'/><author><name>Bob C</name><uri>http://www.blogger.com/profile/12539524150423049312</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_luLoemIm9S8/S8cd7qmolZI/AAAAAAAABz4/YpZeQVLW5xg/S220/chauvinr_sm.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27509539.post-115083032539171297</id><published>2006-06-16T15:54:00.000-04:00</published><updated>2006-06-28T17:05:21.616-04:00</updated><title type='text'>VSTO v2 and v3, Cypress, Version Compatability?</title><content type='html'>I'm just starting to review these apps.  Some starting points:&lt;br /&gt;&lt;br /&gt;) My current environment includes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Office 2003&lt;/li&gt;&lt;li&gt;VSTO 2005 for Office 2003&lt;/li&gt;&lt;li&gt;Outlook 2003 Add-in&lt;/li&gt;&lt;li&gt;Infopath 2003 forms with managed code.&lt;/li&gt;&lt;li&gt;Infopath 2007 Beta&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;) The "preferred"MSDN Newsgroup for VSTO Questions.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;) When I try to install the Cypress release, the installer complains with:&lt;br /&gt;"The Microsoft Office InfoPath 2003 Toolkit for Visual Studio 2005 must be uninstalled."&lt;br /&gt;&lt;br /&gt;) I have &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=482487&amp;amp;SiteID=1"&gt;posted &lt;/a&gt;to the newsgroup trying to verify that I wont loose compatability with my Office 2003 development efforts.  The initial feedback indicates that cypress is NOT backward compatable..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27509539-115083032539171297?l=programteama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programteama.blogspot.com/feeds/115083032539171297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27509539&amp;postID=115083032539171297' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27509539/posts/default/115083032539171297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27509539/posts/default/115083032539171297'/><link rel='alternate' type='text/html' href='http://programteama.blogspot.com/2006/06/vsto-v2-and-v3-cypress-version.html' title='VSTO v2 and v3, Cypress, Version Compatability?'/><author><name>Bob C</name><uri>http://www.blogger.com/profile/12539524150423049312</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_luLoemIm9S8/S8cd7qmolZI/AAAAAAAABz4/YpZeQVLW5xg/S220/chauvinr_sm.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27509539.post-115034064181707212</id><published>2006-06-14T23:01:00.000-04:00</published><updated>2006-06-14T23:04:01.826-04:00</updated><title type='text'>This is MUST HAVE in your toolbox.  C# to VB.Net</title><content type='html'>Check out this site http://www.KamalPatel.net/ .&lt;br /&gt;&lt;br /&gt;The C# to VB.NET saved me many hours.  Many thanks  &lt;b&gt;Kamal Patel!&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27509539-115034064181707212?l=programteama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programteama.blogspot.com/feeds/115034064181707212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27509539&amp;postID=115034064181707212' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27509539/posts/default/115034064181707212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27509539/posts/default/115034064181707212'/><link rel='alternate' type='text/html' href='http://programteama.blogspot.com/2006/06/this-is-must-have-in-your-toolbox-c-to.html' title='This is MUST HAVE in your toolbox.  C# to VB.Net'/><author><name>Bob C</name><uri>http://www.blogger.com/profile/12539524150423049312</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_luLoemIm9S8/S8cd7qmolZI/AAAAAAAABz4/YpZeQVLW5xg/S220/chauvinr_sm.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27509539.post-114831563953759977</id><published>2006-05-22T12:33:00.000-04:00</published><updated>2006-05-22T13:42:24.996-04:00</updated><title type='text'>Infopath "The file is in use by another application or user."</title><content type='html'>Interesting error... Confusing... Not at all helpful or accurate.  What to do?&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;This issue is not consistant across all users.&lt;br /&gt;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;One user with the issue is on XP Pro, sp1&lt;/li&gt;&lt;li&gt;Another without the issues is on XP Pro, sp2... need to investigate.&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;br /&gt;Related threads:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://groups.google.com/group/microsoft.public.infopath/browse_thread/thread/b28acbd77e073251/5a2ecab4d768a197%235a2ecab4d768a197"&gt;&lt;a href="http://msdn.microsoft.com/newsgroups/default.aspx?dg=microsoft.public.infopath&amp;tid=e32a670f-f9ca-410a-b0f6-25f85c954f46&amp;amp;cat=en-us-msdn-officedev-infopath&amp;lang=en&amp;amp;cr=US&amp;sloc=en-us&amp;amp;m=1&amp;amp;p=1"&gt;microsoft.infopath via google groups - Unresolved&lt;/a&gt;&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27509539-114831563953759977?l=programteama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programteama.blogspot.com/feeds/114831563953759977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27509539&amp;postID=114831563953759977' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27509539/posts/default/114831563953759977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27509539/posts/default/114831563953759977'/><link rel='alternate' type='text/html' href='http://programteama.blogspot.com/2006/05/infopath-file-is-in-use-by-another.html' title='Infopath &quot;The file is in use by another application or user.&quot;'/><author><name>Bob C</name><uri>http://www.blogger.com/profile/12539524150423049312</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_luLoemIm9S8/S8cd7qmolZI/AAAAAAAABz4/YpZeQVLW5xg/S220/chauvinr_sm.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27509539.post-114831432256217853</id><published>2006-05-22T10:47:00.000-04:00</published><updated>2006-05-22T12:12:03.060-04:00</updated><title type='text'>Infopath Security - Certificates</title><content type='html'>Seems like creating a certificate for your managed code will be the way to go.   I'm retracing my steps and will document the process here.  Note that I'm using VS2005 and Infopath 2003 sp2:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwinforms/html/clickoncetrustpub.asp"&gt;&lt;span style="text-decoration: underline;"&gt;MSDN Article&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Certmgr in C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin&lt;/li&gt;&lt;ol&gt;&lt;li&gt;One tool for visualizing your certificates.&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;&lt;a href="http://infotech.wsu.edu/communications/services/data/vpn/Windows_xp/CertificateSetup/xp_certificates.htm"&gt;Certificate Management Console&lt;/a&gt;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;This is a more comprehensive tool for managing certificates.&lt;/li&gt;&lt;li&gt;Infopath requires (it seems) your certificate to be in the Personal section.&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Keep it secret, keep it safe.  Really.  Once you create your key and start deploying signed documents that use it, you MUST have a safe and secure location to store it.&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Export the key, put it on a cd and lock it up.&lt;/li&gt;&lt;li&gt;If you want to develop on another machine, you'll need to install this key.  You cannot simply recreate a key with the same name.  Keep it safe.&lt;/li&gt;&lt;li&gt;As an example using Infopath and a Sharepoint Forms lib:&lt;/li&gt;&lt;ol&gt;&lt;li&gt;You publish an IP form with your new cert.&lt;/li&gt;&lt;li&gt;Users create forms (they accept the certificate), and save the forms.&lt;/li&gt;&lt;li&gt;You lose the cert, and create a new one.&lt;/li&gt;&lt;li&gt;You republish the form with the new certificate.&lt;/li&gt;&lt;li&gt;A new user tries to open an old form, created with the old certificate.  At best, you've got a confusing situation, since you now have two certificates with the same name, but different keys.  One doc uses the old, another uses the new.&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;I guess that's it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27509539-114831432256217853?l=programteama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programteama.blogspot.com/feeds/114831432256217853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27509539&amp;postID=114831432256217853' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27509539/posts/default/114831432256217853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27509539/posts/default/114831432256217853'/><link rel='alternate' type='text/html' href='http://programteama.blogspot.com/2006/05/infopath-security-certificates.html' title='Infopath Security - Certificates'/><author><name>Bob C</name><uri>http://www.blogger.com/profile/12539524150423049312</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_luLoemIm9S8/S8cd7qmolZI/AAAAAAAABz4/YpZeQVLW5xg/S220/chauvinr_sm.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27509539.post-114740603929624587</id><published>2006-05-04T01:14:00.000-04:00</published><updated>2006-05-12T16:26:39.500-04:00</updated><title type='text'>Infopath Timer</title><content type='html'>I found some good tips on this issue, and built a little bit-o code to make a timer for a detail record.  Needs to be broken down into reusable classes, but the concept is usable as-is.&lt;br /&gt;&lt;br /&gt;I'll clear it and shoot the code.  Psudo-code to follow.&lt;br /&gt;&lt;br /&gt;Note:  Infopath SP1, using VB.Net Form Code.&lt;br /&gt;&lt;br /&gt;1) Add the following fields to the level of your doc that can be timed.  (For example if you have a heder with multiple details, you may want to start a timer at each detail item, so each would need these fields):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;TimerRunning, Boolean, False&lt;/li&gt;&lt;li&gt;TimerStartTime, DateTime&lt;/li&gt;&lt;li&gt;ElapsedDuration, Decimal&lt;/li&gt;&lt;/ul&gt;2) Add a button control, and and click "Edit Form Code" to create an event.&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;  &lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;    Test&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt; e.Source.selectSingleNode("ActTimerRunning").text = "true".  Then true, the timer is running for this item, and the stop and accumulate code executes&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt; Turn the timer flag to off&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;Calculate Elapsed time by comparing the current system time to our timer flag&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;                    e.Source.selectSingleNode("ActTimerRunning").text = "false"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;                    ldc_elapsed = Math.Round(System.DateTime.Now().Subtract(Iso8601ToDate(e.Source.selectSingleNode("ActStopDateTime").text)).TotalHours, 2) ' Calc elapsed and Round to two decimal places.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;                    ldc_currentActDuration = CType(e.Source.selectSingleNode("ActDuration").text, Decimal)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;                    e.Source.selectSingleNode("ActDuration").text = (ldc_currentActDuration + ldc_elapsed).ToString&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;                    e.Source.selectSingleNode("ActStopDateTime").text = DateToIso8601(DateTime.Now)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;Timer is not running, exec Start Timer logic&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;e.Source.selectSingleNode("ActTimerRunning").text = "true"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="font-size:85%;"&gt;e.Source.selectSingleNode("ActStopDateTime").text = DateToIso8601(DateTime.Now)&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;) Date Util functions for Infopath VB.Net&lt;br /&gt;These two functions allow you to convert dates to/from infopath friendly date formats.  &lt;span style="font-size:78%;"&gt;(Note, this date format is an ISO standard imposed by the XML Consortium, not by MS or Infopath)&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;       Private Function Iso8601ToDate(ByVal iso8601Date As String) As DateTime&lt;br /&gt;&lt;br /&gt;            Dim provider As IFormatProvider&lt;br /&gt;&lt;br /&gt;            If (iso8601Date Is DBNull.Value) Then&lt;br /&gt;&lt;br /&gt;                Throw New ArgumentNullException("iso8601Date")&lt;br /&gt;            End If&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            Return DateTime.ParseExact(iso8601Date, "yyyy-MM-ddTHH:mm:ss", provider)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        End Function&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        Private Function DateToIso8601(ByVal adtdateTime As DateTime) As String&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            Return adtdateTime.ToString("yyyy-MM-ddTHH:mm:ss")&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        End Function&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27509539-114740603929624587?l=programteama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programteama.blogspot.com/feeds/114740603929624587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27509539&amp;postID=114740603929624587' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27509539/posts/default/114740603929624587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27509539/posts/default/114740603929624587'/><link rel='alternate' type='text/html' href='http://programteama.blogspot.com/2006/05/infopath-timer.html' title='Infopath Timer'/><author><name>Bob C</name><uri>http://www.blogger.com/profile/12539524150423049312</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_luLoemIm9S8/S8cd7qmolZI/AAAAAAAABz4/YpZeQVLW5xg/S220/chauvinr_sm.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27509539.post-114671831613830808</id><published>2006-05-04T00:48:00.000-04:00</published><updated>2006-05-04T00:51:56.146-04:00</updated><title type='text'>Boring computer stuff...</title><content type='html'>Some may find it boring, others, with time on their hands or issues similar to mine may find the discussions mildy amusing.&lt;br /&gt;&lt;br /&gt;/bob&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27509539-114671831613830808?l=programteama.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programteama.blogspot.com/feeds/114671831613830808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27509539&amp;postID=114671831613830808' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27509539/posts/default/114671831613830808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27509539/posts/default/114671831613830808'/><link rel='alternate' type='text/html' href='http://programteama.blogspot.com/2006/05/boring-computer-stuff.html' title='Boring computer stuff...'/><author><name>Bob C</name><uri>http://www.blogger.com/profile/12539524150423049312</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_luLoemIm9S8/S8cd7qmolZI/AAAAAAAABz4/YpZeQVLW5xg/S220/chauvinr_sm.gif'/></author><thr:total>0</thr:total></entry></feed>
