<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Coding for Office Accounting</title><subtitle type="html">Martha Arellano&amp;#39;s blog about coding and using Office Accounting.</subtitle><id>http://blogs.msdn.com/b/martha/atom.aspx</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/martha/" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/b/martha/atom.aspx" /><generator uri="http://telligent.com" version="5.6.50428.7875">Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><updated>2006-08-17T17:32:00Z</updated><entry><title>Creating Add-ins from Visual Studio for Office Accounting 2007</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/martha/archive/2006/11/10/creating-add-ins-from-visual-studio-for-office-accounting-2007.aspx" /><id>http://blogs.msdn.com/b/martha/archive/2006/11/10/creating-add-ins-from-visual-studio-for-office-accounting-2007.aspx</id><published>2006-11-11T06:10:00Z</published><updated>2006-11-11T06:10:00Z</updated><content type="html">&lt;P&gt;Wow, the number of bloggers on the team is growing exponentially!!! I was alone for quite some time and then &lt;A class="" href="http://blogs.msdn.com/bizideas/" mce_href="http://blogs.msdn.com/bizideas/"&gt;Isaias&lt;/A&gt; started. This week I already linked to &lt;A class="" href="http://blogs.msdn.com/jesperbirkolsen" mce_href="http://blogs.msdn.com/jesperbirkolsen"&gt;Jesper's blog&lt;/A&gt; and today I just found out that Jorn also started his blog at &lt;A href="http://blogs.msdn.com/jorn"&gt;http://blogs.msdn.com/jorn&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;Hey guys, you should let me know about this so I'm not caught off guard. Well, anyway hopefully Jorn will blog about our Reports. I know that I'm going to read his blog as he has a very amusing writing style. Actually, his &lt;A class="" href="http://blogs.msdn.com/jorn/archive/2006/11/09/creating-add-ins-simply-use-the-templates.aspx" mce_href="http://blogs.msdn.com/jorn/archive/2006/11/09/creating-add-ins-simply-use-the-templates.aspx"&gt;second post&lt;/A&gt; about creating Add-ins from Visual Studio is great! I didn't know about it until now and it's great because I'll be able to use that for my next blog idea (keep posted).&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1056954" width="1" height="1"&gt;</content><author><name>martha</name><uri>http://blogs.msdn.com/martha/ProfileUrlRedirect.ashx</uri></author><category term="Office Accounting" scheme="http://blogs.msdn.com/b/martha/archive/tags/Office+Accounting/" /></entry><entry><title>A week after releasing Office Accounting 2007</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/martha/archive/2006/11/08/a-week-after-releasing-office-accounting-2007.aspx" /><id>http://blogs.msdn.com/b/martha/archive/2006/11/08/a-week-after-releasing-office-accounting-2007.aspx</id><published>2006-11-09T10:56:00Z</published><updated>2006-11-09T10:56:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;So what is going on right now? Well, last Monday Oct 30&lt;SUP&gt;th&lt;/SUP&gt; we shipped &lt;A class="" href="http://www.ideawins.com/" mce_href="http://www.ideawins.com/"&gt;Office Accounting 2007&lt;/A&gt; and made express available as a free download. Tuesday I got to see the videos of our launch in &lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:place w:st="on"&gt;&lt;A class="" href="http://blogs.msdn.com/rajattaneja/archive/2006/10/30/willows-spring-il.aspx" mce_href="http://blogs.msdn.com/rajattaneja/archive/2006/10/30/willows-spring-il.aspx"&gt;&lt;st1:City w:st="on"&gt;Willow Springs&lt;/st1:City&gt;, &lt;st1:State w:st="on"&gt;IL&lt;/st1:State&gt;&lt;/A&gt;&lt;/st1:place&gt;. Wednesday we started to think about our next release. We got Monday off and Tuesday we had a small celebration by going to &lt;A class="" href="http://www.parlorbilliards.com/" mce_href="http://www.parlorbilliards.com/"&gt;the Parlor Billiards&lt;/A&gt;. It was a very nice event; unfortunately there was a raffle but I didn’t get any prize. The rest of the week we are doing customer visits, which is very interesting because not everyone on the product team gets to interact with customers on a daily basis. Unfortunately we only get to visit one customer. I would like to talk to customers that are just starting to use our product, probably they'll have great insight about what we are missing and what we did right.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;So what happens next? Well, there are a lot of things I am planning to blog about. Another developer from our team, Jesper, started blogging about the Loader (you can read his blog &lt;A class="" href="http://blogs.msdn.com/jesperbirkolsen/archive/2006/10/27/what-do-you-get-when-using-the-loader.aspx" mce_href="http://blogs.msdn.com/jesperbirkolsen/archive/2006/10/27/what-do-you-get-when-using-the-loader.aspx"&gt;here&lt;/A&gt;). I’m doing a brownbag next week about blogging to our team, so hopefully we’ll get more bloggers about Office Accounting, especially PMs that are underrepresented in this space. Other than that, it is an interesting time when we have time to innovate for our next release.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1043034" width="1" height="1"&gt;</content><author><name>martha</name><uri>http://blogs.msdn.com/martha/ProfileUrlRedirect.ashx</uri></author><category term="Office Accounting" scheme="http://blogs.msdn.com/b/martha/archive/tags/Office+Accounting/" /></entry><entry><title>Are you thinking about selling on eBay using Office Accounting 2007?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/martha/archive/2006/10/31/are-you-thinking-about-selling-on-ebay-using-office-accounting-2007.aspx" /><id>http://blogs.msdn.com/b/martha/archive/2006/10/31/are-you-thinking-about-selling-on-ebay-using-office-accounting-2007.aspx</id><published>2006-11-01T04:27:00Z</published><updated>2006-11-01T04:27:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://blogs.msdn.com/bizideas/" mce_href="http://blogs.msdn.com/bizideas/"&gt;&lt;FONT face=Calibri size=3&gt;Isaias blogs&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; about how to sell on &lt;/FONT&gt;&lt;A href="http://www.ebay.com/" mce_href="http://www.ebay.com/"&gt;&lt;FONT face=Calibri size=3&gt;eBay&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt; from Office Accounting 2007&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Isaias is probably one of the experts on this, as he owned this feature from early own and worked very hard on seeing this through. It really is a great feature to have linked to your accounting system. I worked on bits and pieces of this and since I have used eBay before, but it was always interesting to see how this feature (and its UI) evolved into what it is now. I’m very interested in hearing feedback about this, and I know that the entire feature is too, so go ahead and comment about it. To get started, don’t forget to check out the step by step process in this &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/bizideas/archive/2006/10/31/selling-online-on-office-accounting-2007.aspx" mce_href="http://blogs.msdn.com/bizideas/archive/2006/10/31/selling-online-on-office-accounting-2007.aspx"&gt;&lt;FONT face=Calibri size=3&gt;post&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=916448" width="1" height="1"&gt;</content><author><name>martha</name><uri>http://blogs.msdn.com/martha/ProfileUrlRedirect.ashx</uri></author><category term="Office Accounting" scheme="http://blogs.msdn.com/b/martha/archive/tags/Office+Accounting/" /><category term="eBay" scheme="http://blogs.msdn.com/b/martha/archive/tags/eBay/" /></entry><entry><title>Office Accounting Express 2007</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/martha/archive/2006/10/30/office-accounting-express-2007.aspx" /><id>http://blogs.msdn.com/b/martha/archive/2006/10/30/office-accounting-express-2007.aspx</id><published>2006-10-31T03:34:00Z</published><updated>2006-10-31T03:34:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://news.zdnet.com/2100-3513_22-6130582.html"&gt;&lt;FONT face=Calibri size=3&gt;Microsoft tries to lure ‘mom and pop’ companies&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;. Interesting title which I don’t really agree that we want to ‘lure’ but well, it got my attention so I decided to blog about it. First of all, I’m glad that we shipped v 2.0 or our product on time! Second, we just announced about Office Accounting Express 2007 which is a free download, so many small businesses can benefit from this and give it a try. Third, we are using a very cool marketing campaign. Unfortunately I can’t give more details about the campaign because I don’t know anything other than what is at the &lt;/FONT&gt;&lt;A href="http://www.ideawins.com/"&gt;&lt;FONT face=Calibri size=3&gt;ideawins&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; website, but you’d have to admit that an electric spinning fork, a caffeinated salad, climate-control socks or fruit favored coffee do sound cool. I probably can’t participate but it’s something I’ll be watching. The &lt;/FONT&gt;&lt;A href="http://ideawins.com/faq.html"&gt;&lt;FONT face=Calibri size=3&gt;FAQ&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt; on the site looks to be very good, for anyone that is wondering about our product.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Here are links to the articles talking about Office Accounting 2007 that I could find:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Articles&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://www.crn.com/sections/custom/custom.jhtml?articleId=193500093"&gt;&lt;FONT face=Calibri size=3&gt;CRN&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt; (this is probably the most in-depth article I could find)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://www.eweek.com/article2/0,1895,2047399,00.asp"&gt;&lt;FONT face=Calibri size=3&gt;eWeek&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://www.techweb.com/wire/software/193500278"&gt;&lt;FONT face=Calibri size=3&gt;TechWeb&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://www.techworld.com/midsizedbusiness/news/index.cfm?newsID=7207&amp;amp;pagtype=all"&gt;&lt;FONT face=Calibri size=3&gt;Techworld&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://www.infoworld.com/article/06/10/30/HNmssmb_1.html"&gt;&lt;FONT face=Calibri size=3&gt;InfoWorld&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Blog posts&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://www.downloadsquad.com/2006/10/30/microsoft-is-offering-office-accounting-express-2007-for-free/"&gt;&lt;FONT face=Calibri size=3&gt;Microsoft is offering Office Accounting Express 2007 for free&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://www.accmanpro.com/2006/10/30/microsoft-office-accounting-express-2007-free/"&gt;&lt;FONT face=Calibri size=3&gt;Microsoft Office Accounting Express 2007 free&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://msmvps.com/blogs/bradley/archive/2006/10/30/Hey_2100_--There_2700_s-a-free-SBA-Express-_2800_US_2900_.aspx"&gt;&lt;FONT face=Calibri size=3&gt;Free Download: Office Accounting 2007 Express&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/o:p&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=905089" width="1" height="1"&gt;</content><author><name>martha</name><uri>http://blogs.msdn.com/martha/ProfileUrlRedirect.ashx</uri></author><category term="Office Accounting" scheme="http://blogs.msdn.com/b/martha/archive/tags/Office+Accounting/" /></entry><entry><title>UI Add-in close events don’t fire when SBA is closed</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/martha/archive/2006/10/20/ui-add-in-close-events-don-t-fire-when-sba-is-closed.aspx" /><id>http://blogs.msdn.com/b/martha/archive/2006/10/20/ui-add-in-close-events-don-t-fire-when-sba-is-closed.aspx</id><published>2006-10-21T02:30:00Z</published><updated>2006-10-21T02:30:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;When a UI Add-in form is open and SBA 2006/Office Accounting 2007 is closed, the UI Add-in form closes without firing the Closed or Closing events.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This prevents the developer from asking if the user would like to save their changes before the form closes. SBA forms, if the SBA shell is closed, ask the user if they'd like to save changes before exiting and ISV's would like this behavior as well.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Ok, so I found about this thanks to &lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:country-region w:st="on"&gt;&lt;st1:place w:st="on"&gt;Chad&lt;/st1:place&gt;&lt;/st1:country-region&gt;. He helps ISVs and users in our newsgroup and in this case, it seems that addressing this issue in my blog will be helpful. So to start with, this problem happens if you show a modeless form, but you want to ask the user if they want to save the changes to the form, before the form is closed. If you handle the Closing event, you can do this when the user closes your form. But if the user tries to close the SBA shell directly, your form will close automatically because you will not get the Closing event. Ok, so I hope you understand the problem now.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;To solve this, we will use the IWin32Window owner parameter that you get from the DoAction callback:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;TABLE class=MsoNormalTable style="WIDTH: 100%; mso-cellspacing: 0in; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 width="100%" border=0 class="MsoNormalTable"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;Visual Basic&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 1; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;PRE&gt;&lt;FONT face="Courier New"&gt;Sub DoAction( _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ByVal &lt;SPAN id=parameterToolTip title="" tabIndex=0&gt;&lt;SPAN class=tip&gt;ID&lt;/SPAN&gt;&lt;/SPAN&gt; As &lt;B&gt;String&lt;/B&gt;, _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ByVal &lt;SPAN id=parameterToolTip title="" tabIndex=0&gt;&lt;SPAN class=tip&gt;entity&lt;/SPAN&gt;&lt;/SPAN&gt; As &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;IBaseMasterEntity&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;, _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ByVal &lt;SPAN id=parameterToolTip title="" tabIndex=0&gt;&lt;SPAN class=tip&gt;instance&lt;/SPAN&gt;&lt;/SPAN&gt; As &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;ISmallBusinessInstance&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;, _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ByVal &lt;SPAN id=parameterToolTip title="" tabIndex=0&gt;&lt;SPAN class=tip&gt;formsFactory&lt;/SPAN&gt;&lt;/SPAN&gt; As &lt;B&gt;Object&lt;/B&gt;, _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ByVal &lt;SPAN id=parameterToolTip title="" tabIndex=0&gt;&lt;SPAN class=tip&gt;owner&lt;/SPAN&gt;&lt;/SPAN&gt; As &lt;B&gt;IWin32Window&lt;/B&gt; _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;)&lt;/FONT&gt;&lt;/PRE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;SPAN codeLanguage="CSharp"&gt;
&lt;TABLE class=MsoNormalTable style="WIDTH: 100%; mso-cellspacing: 0in; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 width="100%" border=0 class="MsoNormalTable"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;C#&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 1; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"&gt;&lt;PRE&gt;&lt;FONT face="Courier New"&gt;&lt;B&gt;void&lt;/B&gt; DoAction(&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;B&gt;string&lt;/B&gt; &lt;SPAN id=parameterToolTip title="" tabIndex=0&gt;&lt;SPAN class=tip&gt;ID&lt;/SPAN&gt;&lt;/SPAN&gt;, &lt;BR&gt;&lt;/FONT&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face="Courier New"&gt;IBaseMasterEntity&lt;/FONT&gt;&lt;FONT face="Courier New"&gt; &lt;SPAN id=parameterToolTip title="" tabIndex=0&gt;&lt;SPAN class=tip&gt;entity&lt;/SPAN&gt;&lt;/SPAN&gt;, &lt;BR&gt;&lt;/FONT&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face="Courier New"&gt;ISmallBusinessInstance&lt;/FONT&gt;&lt;FONT face="Courier New"&gt; &lt;SPAN id=parameterToolTip title="" tabIndex=0&gt;&lt;SPAN class=tip&gt;instance&lt;/SPAN&gt;&lt;/SPAN&gt;, &lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;B&gt;object&lt;/B&gt; &lt;SPAN id=parameterToolTip title="" tabIndex=0&gt;&lt;SPAN class=tip&gt;formsFactory&lt;/SPAN&gt;&lt;/SPAN&gt;, &lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;B&gt;IWin32Window&lt;/B&gt; &lt;SPAN id=parameterToolTip title="" tabIndex=0&gt;&lt;SPAN class=tip&gt;owner&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;The IWin32Window is the handle to the window where the menu or toolbar button was pressed, so you can do the following:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;this&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;.sbaForm = owner &lt;SPAN style="COLOR: blue"&gt;as&lt;/SPAN&gt; Form;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;if&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; (&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.sbaForm != &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.sbaForm.Closing += &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; CancelEventHandler(sbaForm_Closing);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;}&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Then, you can handle the closing event of the SBA Form and prompt the user to save. Since it is a CancelEventHandler you can also cancel the event so the application will not close. Here is a quick example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;private&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; sbaForm_Closing(&lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; sender, CancelEventArgs e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (MessageBox.Show("Do you want to close?","Customer Invoices",&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;MessageBoxButtons.YesNo) == DialogResult.No)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;e.Cancel = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.BringToFront();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.Close();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;}&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;This is just a quick sample where I simply ask the user to confirm they want to hide my form and if they say no, then I set the Cancel property to true so the form doesn’t close. This content is provided as-is, implies no warranties and confers no rights.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;There is a quick catch, if you add this handler for the Closing event, don’t forget to unsubscribe from it when your form is disposed:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;protected&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;SPAN style="COLOR: blue"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; Dispose( &lt;SPAN style="COLOR: blue"&gt;bool&lt;/SPAN&gt; disposing )&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt;( disposing )&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt;(components != &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;components.Dispose();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.sbaForm != &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.sbaForm.Closing -= &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; CancelEventHandler(sbaForm_Closing);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;base&lt;/SPAN&gt;.Dispose( disposing );&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=851481" width="1" height="1"&gt;</content><author><name>martha</name><uri>http://blogs.msdn.com/martha/ProfileUrlRedirect.ashx</uri></author><category term="SBA AddIns" scheme="http://blogs.msdn.com/b/martha/archive/tags/SBA+AddIns/" /><category term="Office Small Business Accounting" scheme="http://blogs.msdn.com/b/martha/archive/tags/Office+Small+Business+Accounting/" /><category term="Office Accounting" scheme="http://blogs.msdn.com/b/martha/archive/tags/Office+Accounting/" /><category term="IUIAddInDriver" scheme="http://blogs.msdn.com/b/martha/archive/tags/IUIAddInDriver/" /></entry><entry><title>Moving SBA SDK 1.0 Add-ins to SBA SDK 2.0 (Office Accounting 2007)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/martha/archive/2006/10/18/moving-sba-sdk-1-0-add-ins-to-sba-sdk-2-0-office-accounting-2007.aspx" /><id>http://blogs.msdn.com/b/martha/archive/2006/10/18/moving-sba-sdk-1-0-add-ins-to-sba-sdk-2-0-office-accounting-2007.aspx</id><published>2006-10-18T21:25:00Z</published><updated>2006-10-18T21:25:00Z</updated><content type="html">&lt;P&gt;The next version of &lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?familyid=2dae9876-27b4-4103-97b4-4cd1d6c809d4&amp;amp;displaylang=en" target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=2dae9876-27b4-4103-97b4-4cd1d6c809d4&amp;amp;displaylang=en"&gt;SBA SDK&lt;/A&gt; is coming (under a different product name) and it's time to start looking at some of the changes in the Add-ins area.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Referencing SBAAPI.dll&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;First of all, we found out that our 1.0 SDK sample for UIAddIn, we were referencing SBAAPI (when we are always telling you not to do it).&amp;nbsp;So now that 2.0 is coming I can show you why this is bad. The problem with this is that it references the v1 sbaapi.dll which is not going to be there for 2.0, so if you try to install this add-in in our 2.0 product you will get the following error when you try to click on the "Invoices" button.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 929px; HEIGHT: 126px" height=126 src="http://martha.members.winisp.net/images/AddInReferencingSBAAPI.PNG" width=929 mce_src="http://martha.members.winisp.net/images/AddInReferencingSBAAPI.PNG"&gt;&lt;/P&gt;
&lt;P&gt;If you don't want your add-in to work with Office Accounting 2007 then this is ok, but in case you do, here is what you need to do to remove the reference to SBAAPI.&lt;BR&gt;&lt;STRONG&gt;1.&lt;/STRONG&gt; In the UIAddIn project, remove the reference to SBAAPI.&lt;BR&gt;&lt;STRONG&gt;2.&lt;/STRONG&gt; You'll get the following build error:&lt;/P&gt;
&lt;P&gt;CustomerInvoices.cs(63): The type or namespace name 'CustomerAccount' could not be found (are you missing a using directive or an assembly reference?)&lt;/P&gt;
&lt;P&gt;The problem goes away if you use the ICustomerAccount instead of the CustomerAccount class that exists in SBAAPI. Here is the corrected line of code:&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;this&lt;/FONT&gt;&lt;FONT size=2&gt;.customerName = ((ICustomerAccount)smallBusinessInstance.CustomerAccounts.GetByPrimaryKey(customerID)).Name;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;This&amp;nbsp;problem has&amp;nbsp;been fixed in our SBA SDK 2.0. You can find the SBA SDK 2.0 beta &lt;A class="" href="http://connect.microsoft.com/OfficeAccountingBeta/Downloads/DownloadDetails.aspx?DownloadID=1814" target=_blank mce_href="http://connect.microsoft.com/OfficeAccountingBeta/Downloads/DownloadDetails.aspx?DownloadID=1814"&gt;here&lt;/A&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;Business Logic Add-ins&lt;/STRONG&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;If you tried using my sample code from my ISdkAddInDriver Sample that I posted in &lt;A class="" href="http://blogs.msdn.com/martha/archive/2006/07/16/667639.aspx" mce_href="http://blogs.msdn.com/martha/archive/2006/07/16/667639.aspx"&gt;C#&lt;/A&gt; or in &lt;A class="" href="http://blogs.msdn.com/martha/archive/2006/10/02/SBA-Business-Logic-Add_2D00_in-Sample-in-VB.NET-_2800_ISdkAddInDriver_2900_.aspx" mce_href="http://blogs.msdn.com/martha/archive/2006/10/02/SBA-Business-Logic-Add_2D00_in-Sample-in-VB.NET-_2800_ISdkAddInDriver_2900_.aspx"&gt;VB.NET&lt;/A&gt;, there are changes that you need to make if you want to remove the reference to SBAAPI.dll. If you want to do validation, you need to throw an ApplicationException instead of a SmallBusinessException, for example the new code will be:&lt;/FONT&gt;&lt;FONT size=2&gt; 
&lt;P&gt;&lt;STRONG&gt;C# -&amp;gt;&lt;/STRONG&gt; &lt;FONT color=#0000ff size=2&gt;throw&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; ApplicationException("EMAIL MISSING");&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;VB.NET -&amp;gt;&lt;/STRONG&gt; &lt;FONT color=#0000ff size=2&gt;Throw&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;FONT size=2&gt; ApplicationException("EMAIL MISSING")&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;One of the improvements we've made for Office Accounting 2007 in validation is the error message that users will see when the business logic add-in throws an ApplicationException.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;In Small Business Accounting 2006 you will see this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;IMG style="WIDTH: 371px; HEIGHT: 192px" height=192 src="http://martha.members.winisp.net/images/BusinessLogicAddInV1.PNG" width=371 mce_src="http://martha.members.winisp.net/images/BusinessLogicAddInV1.PNG"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;In Office Accounting 2007 you will see this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;IMG style="WIDTH: 360px; HEIGHT: 165px" height=165 src="http://martha.members.winisp.net/images/BusinessLogicAddInV2.PNG" width=360 mce_src="http://martha.members.winisp.net/images/BusinessLogicAddInV2.PNG"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;As you can see, the error message now is shorter and more helpful. First, we show the Add-in name and we show whatever Message the Add-in specifies in the ApplicationException. You can find Office Accounting 2007 beta &lt;A class="" href="http://connect.microsoft.com/OfficeAccountingBeta" target=_blank mce_href="http://connect.microsoft.com/OfficeAccountingBeta"&gt;here&lt;/A&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;UI Add-ins&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;One of the improvements we made here is the ability to have cascading menus (up to 3 levels), so now you can organize your menus better. We have updated the UI Add-in sample in SBA SDK 2.0 to show cascading menus. You can find the SBA SDK 2.0 beta &lt;A class="" href="http://connect.microsoft.com/OfficeAccountingBeta/Downloads/DownloadDetails.aspx?DownloadID=1814" target=_blank mce_href="http://connect.microsoft.com/OfficeAccountingBeta/Downloads/DownloadDetails.aspx?DownloadID=1814"&gt;here&lt;/A&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;IMG style="WIDTH: 537px; HEIGHT: 123px" height=123 src="http://martha.members.winisp.net/images/CascadingMenus.PNG" width=537 mce_src="http://martha.members.winisp.net/images/CascadingMenus.PNG"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=840210" width="1" height="1"&gt;</content><author><name>martha</name><uri>http://blogs.msdn.com/martha/ProfileUrlRedirect.ashx</uri></author><category term="SBA AddIns" scheme="http://blogs.msdn.com/b/martha/archive/tags/SBA+AddIns/" /><category term="ISdkAddInDriver" scheme="http://blogs.msdn.com/b/martha/archive/tags/ISdkAddInDriver/" /><category term="Business Logic Add-in" scheme="http://blogs.msdn.com/b/martha/archive/tags/Business+Logic+Add_2D00_in/" /><category term="Office Accounting" scheme="http://blogs.msdn.com/b/martha/archive/tags/Office+Accounting/" /><category term="IUIAddInDriver" scheme="http://blogs.msdn.com/b/martha/archive/tags/IUIAddInDriver/" /></entry><entry><title>SBA Business Logic Add-in Sample in VB.NET (ISdkAddInDriver)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/martha/archive/2006/10/02/sba-business-logic-add_2D00_in-sample-in-vb.net-_2800_isdkaddindriver_2900_.aspx" /><id>http://blogs.msdn.com/b/martha/archive/2006/10/02/sba-business-logic-add_2D00_in-sample-in-vb.net-_2800_isdkaddindriver_2900_.aspx</id><published>2006-10-02T19:42:00Z</published><updated>2006-10-02T19:42:00Z</updated><content type="html">&lt;P&gt;A couple months ago I posted a step by step process for doing a Business Logic Add-in Sample in C#, so finally here is the second part for doing this in VB.NET. The instructions are pretty much copied from the &lt;A class="" href="http://blogs.msdn.com/martha/archive/2006/07/16/667639.aspx" target=_blank mce_href="http://blogs.msdn.com/martha/archive/2006/07/16/667639.aspx"&gt;original post&lt;/A&gt; but I have translated the code to VB and verified it.&lt;/P&gt;
&lt;P&gt;Let's start.&lt;/P&gt;
&lt;P&gt;1. Open the UIAddIn project (from VB.NET Samples)&lt;BR&gt;2. Add a new class that implements the &lt;STRONG&gt;ISdkAddInDriver&lt;/STRONG&gt; interface. I got the basic code from the Concepts Manual of our SDK. I'm going to post the code here:&lt;/P&gt;
&lt;DIV class=code&gt;&lt;FONT color=blue&gt;Imports&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;Microsoft.BusinessSolutions.SmallBusinessAccounting&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=blue&gt;Public&amp;nbsp;Class&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;BusinessLogic&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Implements&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ISdkAddInDriver&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Private&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;m_contextObject&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;IBaseMasterEntity&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Private&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;instance&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ISmallBusinessInstance&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Public&amp;nbsp;Sub&amp;nbsp;New&lt;/FONT&gt;&lt;FONT color=black&gt;(&lt;/FONT&gt;&lt;FONT color=blue&gt;ByVal&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;contextObject&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;IBaseMasterEntity)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;MyBase&lt;/FONT&gt;&lt;FONT color=black&gt;.&lt;/FONT&gt;&lt;FONT color=blue&gt;New&lt;/FONT&gt;&lt;FONT color=black&gt;()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Me&lt;/FONT&gt;&lt;FONT color=black&gt;.m_contextObject&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;contextObject&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Me&lt;/FONT&gt;&lt;FONT color=black&gt;.instance&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;contextObject.SmallBusinessInstance&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;End&amp;nbsp;Sub&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Public&amp;nbsp;ReadOnly&amp;nbsp;Property&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ContextObject()&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;IBaseMasterEntity&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Get&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Return&amp;nbsp;Me&lt;/FONT&gt;&lt;FONT color=black&gt;.m_contextObject&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;End&amp;nbsp;Get&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End&amp;nbsp;Property&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Public&amp;nbsp;Sub&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;RunPreSave()&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Implements&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ISdkAddInDriver.RunPreSave&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=darkgreen&gt;'&amp;nbsp;Do&amp;nbsp;Pre-Save&amp;nbsp;work&amp;nbsp;here&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;End&amp;nbsp;Sub&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Public&amp;nbsp;Sub&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;RunPostSave()&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Implements&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ISdkAddInDriver.RunPostSave&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=darkgreen&gt;'&amp;nbsp;Do&amp;nbsp;Post-Save&amp;nbsp;work&amp;nbsp;here&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;End&amp;nbsp;Sub&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Public&amp;nbsp;Sub&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;RunPreDelete()&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Implements&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ISdkAddInDriver.RunPreDelete&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=darkgreen&gt;'&amp;nbsp;Do&amp;nbsp;Pre-Delete&amp;nbsp;work&amp;nbsp;here&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;End&amp;nbsp;Sub&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Public&amp;nbsp;Sub&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;RunPostDelete()&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Implements&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ISdkAddInDriver.RunPostDelete&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=darkgreen&gt;'&amp;nbsp;Do&amp;nbsp;Post-Delete&amp;nbsp;work&amp;nbsp;here&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;End&amp;nbsp;Sub&lt;BR&gt;End&amp;nbsp;Class&lt;/FONT&gt; &lt;/DIV&gt;
&lt;P&gt;3. Now we need to hook the business logic addin so it can be registered and instantiated by SBA. Here's what I have to do: &lt;/P&gt;
&lt;P&gt;In DriverRegistration.vb we need to return a new myDriverInfo for the business logic addin. I added this code in line 37 (in the&amp;nbsp;GetDriverInfos method)&amp;nbsp;&lt;/P&gt;
&lt;DIV class=code&gt;&lt;FONT color=black&gt;myDriverInfo&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;New&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;MyDriverInfo(&lt;/FONT&gt;&lt;FONT color=blue&gt;New&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;Guid(&lt;/FONT&gt;&lt;FONT color=#808080&gt;"6EF926D5-79B8-476e-8847-3AE0BCCBF28F"&lt;/FONT&gt;&lt;FONT color=black&gt;),&amp;nbsp;DriverType.SdkAddIn,&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;False&lt;/FONT&gt;&lt;FONT color=black&gt;,&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#808080&gt;""&lt;/FONT&gt;&lt;FONT color=black&gt;,&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#808080&gt;"Validate&amp;nbsp;Customer&amp;nbsp;Email&amp;nbsp;Business&amp;nbsp;Logic&amp;nbsp;Addin"&lt;/FONT&gt;&lt;FONT color=black&gt;,&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#808080&gt;"This&amp;nbsp;is&amp;nbsp;a&amp;nbsp;test&amp;nbsp;business&amp;nbsp;logic&amp;nbsp;to&amp;nbsp;validate&amp;nbsp;email&amp;nbsp;on&amp;nbsp;customers."&lt;/FONT&gt;&lt;FONT color=black&gt;,&amp;nbsp;Guid.Empty,&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;GetType&lt;/FONT&gt;&lt;FONT color=black&gt;(BusinessLogic).FullName)&lt;BR&gt;&lt;BR&gt;driverInfo.Add(myDriverInfo)&lt;/FONT&gt; &lt;/DIV&gt;
&lt;P&gt;I'm just creating a new guid because I will only have one business logic on this assembly. The last parameter uses BusinessLogic which is the name of my class implementing the ISdkAddInDriver.&lt;/P&gt;
&lt;P&gt;In DriverRegistration.vb I need to instantiate my business logic addin. I change the LoadSdkAddInDriver to return a new instance of my BusinessLogic class. This is my new implementation:&lt;/P&gt;
&lt;DIV class=code&gt;&lt;FONT color=blue&gt;Public&amp;nbsp;Function&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;LoadSdkAddInDriver(&lt;/FONT&gt;&lt;FONT color=blue&gt;ByVal&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;driverGuid&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;Guid,&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;ByVal&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ownerEntity&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;IBaseMasterEntity)&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ISdkAddInDriver&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Implements&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;IDriverFactory.LoadSdkAddInDriver&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Return&amp;nbsp;New&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;BusinessLogic(ownerEntity)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=blue&gt;End&amp;nbsp;Function&lt;/FONT&gt; &lt;/DIV&gt;
&lt;P&gt;Finally, in MyDriverInfo.vb we need to support the AppliedTypes property. In this case, I'm simple going to change the property directly just to make this addin work.&lt;/P&gt;
&lt;DIV class=code&gt;&lt;FONT color=blue&gt;Public&amp;nbsp;ReadOnly&amp;nbsp;Property&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;AppliedTypes()&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;Type&lt;/FONT&gt;&lt;FONT color=black&gt;()&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Implements&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;IDriverInfo.AppliedTypes&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Get&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Return&amp;nbsp;New&amp;nbsp;Type&lt;/FONT&gt;&lt;FONT color=black&gt;()&amp;nbsp;{&lt;/FONT&gt;&lt;FONT color=blue&gt;GetType&lt;/FONT&gt;&lt;FONT color=black&gt;(ICustomerAccount)}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;End&amp;nbsp;Get&lt;BR&gt;End&amp;nbsp;Property&lt;/FONT&gt; &lt;/DIV&gt;
&lt;P&gt;4. I'm going to put a simple validation for customers so we can test this business logic addin. If the addin wants to cancel the save event (from the PreSave handler), it needs to throw an exception. The message shown to the user will be an ugly technical message, so I would personally suggest to show a friendly message before that. Here is my code:&lt;/P&gt;
&lt;DIV class=code&gt;&lt;BR&gt;&lt;FONT color=blue&gt;Public&amp;nbsp;Sub&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;RunPreSave()&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Implements&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ISdkAddInDriver.RunPreSave&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Dim&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;customer&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ICustomerAccount&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;CType&lt;/FONT&gt;&lt;FONT color=black&gt;(ContextObject,&amp;nbsp;ICustomerAccount)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Dim&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;email&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;ICustomerVendorEmail&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;customer.CustomerVendorEmails.GetByType(CustomerVendorEmailType.Email1)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;If&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;((email.EmailAddress&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;Nothing)&amp;nbsp;_&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;OrElse&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;(email.EmailAddress.Length&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=maroon&gt;0&lt;/FONT&gt;&lt;FONT color=black&gt;))&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Throw&amp;nbsp;New&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;SmallBusinessException(ErrorCases.EmailTypeInvalid,&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#808080&gt;"EMAIL&amp;nbsp;MISSING"&lt;/FONT&gt;&lt;FONT color=black&gt;)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;End&amp;nbsp;If&lt;BR&gt;End&amp;nbsp;Sub&lt;/FONT&gt; &lt;/DIV&gt;
&lt;P&gt;&lt;STRONG&gt;Gotchas&lt;BR&gt;&lt;/STRONG&gt;Each time you modify the code in the UIAddIn project, the assembly version will change so you would need to reinstall you addin again or change the AssemblyInfo.cs to have a fixed version number. This was the only issue I ran into. Then,&amp;nbsp;I just have to copy the UIAddin.dll to the SBA location and install it. If you were to ship a business logic, I would suggest you add it to your GAC and install in a separate folder.&lt;/P&gt;
&lt;P&gt;You can download my sample &lt;A class="" href="http://martha.members.winisp.net/samples/BusinessLogicAddinVB.zip" target=_blank mce_href="http://martha.members.winisp.net/samples/BusinessLogicAddinVB.zip"&gt;here&lt;/A&gt;.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=781215" width="1" height="1"&gt;</content><author><name>martha</name><uri>http://blogs.msdn.com/martha/ProfileUrlRedirect.ashx</uri></author><category term="SBA AddIns" scheme="http://blogs.msdn.com/b/martha/archive/tags/SBA+AddIns/" /><category term="Office Small Business Accounting" scheme="http://blogs.msdn.com/b/martha/archive/tags/Office+Small+Business+Accounting/" /><category term="ISdkAddInDriver" scheme="http://blogs.msdn.com/b/martha/archive/tags/ISdkAddInDriver/" /><category term="Business Logic Add-in" scheme="http://blogs.msdn.com/b/martha/archive/tags/Business+Logic+Add_2D00_in/" /><category term="Office Accounting" scheme="http://blogs.msdn.com/b/martha/archive/tags/Office+Accounting/" /></entry><entry><title>How to programmatically verify if an Add-in is installed</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/martha/archive/2006/09/12/how-to-programmatically-verify-if-an-add-in-is-installed.aspx" /><id>http://blogs.msdn.com/b/martha/archive/2006/09/12/how-to-programmatically-verify-if-an-add-in-is-installed.aspx</id><published>2006-09-12T20:20:00Z</published><updated>2006-09-12T20:20:00Z</updated><content type="html">&lt;P&gt;I wanted to post a quick sample that I think might be useful. The escenario that I ran into is when you have two Add-ins that complement each other, a UI Add-in and a &lt;A href="http://blogs.msdn.com/martha/archive/2006/07/16/667639.aspx"&gt;Business Logic Add-in&lt;/A&gt;. Since the user can enable only one of them and disable the other, you might want to check for this and then ask the user to enable both of them to have all the functionality. To check the status of a particular Add-in, you need the &lt;STRONG&gt;IDriverInfo.DriverGuid&lt;/STRONG&gt; (since that is unique) that you used when you registered your Add-in.&lt;/P&gt;
&lt;DIV class=code&gt;&lt;FONT color=black&gt;System.Data.DataView&amp;nbsp;dataView&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;instance.DriverRegistrations.DataView&lt;/FONT&gt;&lt;FONT color=blue&gt;;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=darkgreen&gt;//&amp;nbsp;We&amp;nbsp;look&amp;nbsp;for&amp;nbsp;the&amp;nbsp;DriverGuid&amp;nbsp;of&amp;nbsp;our&amp;nbsp;known&amp;nbsp;addin&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=black&gt;dataView.RowFilter&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#808080&gt;"DriverGuid&amp;nbsp;=&amp;nbsp;'DF7ADD4C-BE62-42e5-9F30-44EAD462AC62'"&lt;/FONT&gt;&lt;FONT color=blue&gt;;&lt;BR&gt;&lt;BR&gt;if&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;(dataView.Count&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;==&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=maroon&gt;1&lt;/FONT&gt;&lt;FONT color=black&gt;)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IDriverRegistration&amp;nbsp;driverRegistration&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;instance.DriverRegistrations.GetByDataRow(dataView[&lt;/FONT&gt;&lt;FONT color=maroon&gt;0&lt;/FONT&gt;&lt;FONT color=black&gt;].Row)&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;as&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;IDriverRegistration&lt;/FONT&gt;&lt;FONT color=blue&gt;;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;Console.WriteLine(String.Format(&lt;/FONT&gt;&lt;FONT color=#808080&gt;"Addin&amp;nbsp;{0}&amp;nbsp;is&amp;nbsp;&amp;nbsp;registered&amp;nbsp;and&amp;nbsp;is&amp;nbsp;{1}."&lt;/FONT&gt;&lt;FONT color=black&gt;,&amp;nbsp;driverRegistration.AddinName,&amp;nbsp;driverRegistration.DriverStatus.ToString()))&lt;/FONT&gt;&lt;FONT color=blue&gt;;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=black&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=blue&gt;else&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=black&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(&lt;/FONT&gt;&lt;FONT color=#808080&gt;"Addin&amp;nbsp;not&amp;nbsp;found"&lt;/FONT&gt;&lt;FONT color=black&gt;)&lt;/FONT&gt;&lt;FONT color=blue&gt;;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=black&gt;}&lt;/FONT&gt; &lt;/DIV&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=750855" width="1" height="1"&gt;</content><author><name>martha</name><uri>http://blogs.msdn.com/martha/ProfileUrlRedirect.ashx</uri></author><category term="SBA AddIns" scheme="http://blogs.msdn.com/b/martha/archive/tags/SBA+AddIns/" /><category term="Office Small Business Accounting" scheme="http://blogs.msdn.com/b/martha/archive/tags/Office+Small+Business+Accounting/" /><category term="Office Accounting" scheme="http://blogs.msdn.com/b/martha/archive/tags/Office+Accounting/" /></entry><entry><title>MS Accounting Tool Gets a New Name, New Beta</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/martha/archive/2006/09/11/ms-accounting-tool-gets-a-new-name-new-beta.aspx" /><id>http://blogs.msdn.com/b/martha/archive/2006/09/11/ms-accounting-tool-gets-a-new-name-new-beta.aspx</id><published>2006-09-12T00:34:00Z</published><updated>2006-09-12T00:34:00Z</updated><content type="html">&lt;P&gt;Yes, last week we announced the public beta of Office Accounting 2007, which is pretty cool because we've been working very hard on this version (since before the previous version was on the shelves). The biggest news is the product name change (does that mean I should change the name of my blog?) and I really can't say much about that because I'm a developer and for some reason we don't name products (marketing people do). Our General Manager, Rajat Taneja talks about this on &lt;A href="http://blogs.msdn.com/rajattaneja/archive/2006/09/08/746712.aspx"&gt;his blog&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;To download Office Accounting 2007 beta go &lt;A href="http://connect.microsoft.com/OfficeAccountingBeta"&gt;here&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;The closest thing to a list of what's new in this new version is &lt;A href="http://sba.microsoft.com/release.html?txg=ed64cace-bfaa-4f10-bbf8-b525fe2de6f2"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;For developers:&lt;/P&gt;
&lt;P&gt;We don't have the Software Development Kit for this version yet, but you can always look into our new API once you install the products. The most insteresting feature is probably our versioning and our Loader interfaces, and once you understand that, you'll be ready to start using the API of the new version. I will try to get into more detail in the future. Send your feedback!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=749951" width="1" height="1"&gt;</content><author><name>martha</name><uri>http://blogs.msdn.com/martha/ProfileUrlRedirect.ashx</uri></author><category term="Office Small Business Accounting" scheme="http://blogs.msdn.com/b/martha/archive/tags/Office+Small+Business+Accounting/" /><category term="Office Accounting" scheme="http://blogs.msdn.com/b/martha/archive/tags/Office+Accounting/" /></entry><entry><title>SBA SDK : Finding the Kits that contain my Item in VB.NET</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/martha/archive/2006/08/17/sba-sdk-finding-the-kits-that-contain-my-item-in-vb-net.aspx" /><id>http://blogs.msdn.com/b/martha/archive/2006/08/17/sba-sdk-finding-the-kits-that-contain-my-item-in-vb-net.aspx</id><published>2006-08-18T03:32:00Z</published><updated>2006-08-18T03:32:00Z</updated><content type="html">&lt;P&gt;I must confess I'm a little rusty in my VB because I don't use it often enough. But I wanted to post this sample in Visual Basic .NET. I used&amp;nbsp;the &lt;A href="http://carlosag.net/Tools/CodeTranslator/Default.aspx"&gt;Code Translator from CarlosAg&lt;/A&gt; and it worked&amp;nbsp;perfectly, except that it couldn't&amp;nbsp;translate the implicit convertion of an int to a string when this is used in a string operation.&amp;nbsp;In my &lt;A href="http://blogs.msdn.com/martha/archive/2006/07/31/684371.aspx"&gt;original post&lt;/A&gt; I explain about what this sample does and here is the code:&lt;/P&gt;
&lt;DIV class=code&gt;&lt;FONT color=blue size=2&gt;Public&amp;nbsp;Sub&amp;nbsp;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=black&gt;FindKitsThatContainMyItem()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Debug.WriteLine(&lt;/FONT&gt;&lt;FONT color=#808080&gt;"Finding&amp;nbsp;Kits&amp;nbsp;that&amp;nbsp;contain&amp;nbsp;'Snow&amp;nbsp;Sports&amp;nbsp;Helmet,&amp;nbsp;Adult'"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=black size=2&gt;)&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=darkgreen&gt;'&amp;nbsp;use&amp;nbsp;DataView&amp;nbsp;to&amp;nbsp;find&amp;nbsp;all&amp;nbsp;Kit&amp;nbsp;Items&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Dim&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;itemsDataView&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;DataView&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=black&gt;utilitiesInstance.SbaInstance.ItemAccounts.DataView&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;itemsDataView.RowFilter&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;(&lt;/FONT&gt;&lt;FONT color=#808080&gt;"AccountTypeID="&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;+&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;CType&lt;/FONT&gt;&lt;FONT color=black&gt;(AccountType.KitItemAccount,&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=black&gt;).ToString)&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;For&amp;nbsp;Each&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;dataRowView&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;DataRowView&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;In&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=black&gt;itemsDataView&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Dim&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;kit&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;IKitItemAccount&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;CType&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=black&gt;(utilitiesInstance.SbaInstance.ItemAccounts.GetByDataRow(dataRowView.Row),&amp;nbsp;IKitItemAccount)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;For&amp;nbsp;Each&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;kitMember&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;As&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;IKitMember&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;In&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=black&gt;kit.KitMembers.ChildList&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;If&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;((&lt;/FONT&gt;&lt;FONT color=blue&gt;Not&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;(kitMember.NonKitItemAccount)&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;Is&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=black&gt;Nothing)&amp;nbsp;_&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;AndAlso&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;(kitMember.NonKitItemAccount.Name&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=blue&gt;=&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#808080&gt;"Snow&amp;nbsp;Sports&amp;nbsp;Helmet,&amp;nbsp;Adult"&lt;/FONT&gt;&lt;FONT color=black&gt;))&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=blue size=2&gt;Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black size=2&gt;Debug.WriteLine(kit.Name)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=blue&gt;End&amp;nbsp;If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Next&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Next&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=black&gt;Debug.WriteLine(&lt;/FONT&gt;&lt;FONT color=#808080&gt;"-------"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=black&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=blue&gt;End&amp;nbsp;Sub&lt;/FONT&gt; &lt;/FONT&gt;&lt;/DIV&gt;
&lt;P&gt;You can get the sample from &lt;A href="http://martha.members.winisp.net/samples/FindingKitsVB.zip"&gt;here&lt;/A&gt;. I hope you find this useful.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=705021" width="1" height="1"&gt;</content><author><name>martha</name><uri>http://blogs.msdn.com/martha/ProfileUrlRedirect.ashx</uri></author><category term="SBA AddIns" scheme="http://blogs.msdn.com/b/martha/archive/tags/SBA+AddIns/" /><category term="Office Small Business Accounting" scheme="http://blogs.msdn.com/b/martha/archive/tags/Office+Small+Business+Accounting/" /><category term="Office Accounting" scheme="http://blogs.msdn.com/b/martha/archive/tags/Office+Accounting/" /></entry></feed>