<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DaVinci Unlimited Software &#187; library</title>
	<atom:link href="http://www.davinciunltd.com/category/library/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.davinciunltd.com</link>
	<description>Jim McKeeth's blog on creative and innovative Delphi programming.</description>
	<lastBuildDate>Tue, 06 Jul 2010 20:18:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Scripting Engine Unit Template</title>
		<link>http://www.davinciunltd.com/2008/04/scripting-engine-unit-template/</link>
		<comments>http://www.davinciunltd.com/2008/04/scripting-engine-unit-template/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 07:41:07 +0000</pubDate>
		<dc:creator>Jim McKeeth</dc:creator>
				<category><![CDATA[CodeGear]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[live templates]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://www.davinciunltd.com/?p=64</guid>
		<description><![CDATA[I must say, Delphi Live Templates and the Scripting Engines are REALLY amazing.  I wanted to make a new scripting engine, but then I got to thinking that my scripting engines had a lot of similar code, so I figured I would make a Live Template to create Scripting Engines.  I based it on Nick&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>I must say, Delphi Live Templates and the Scripting Engines are REALLY amazing.  I wanted to make a new scripting engine, but then I got to thinking that my scripting engines had a lot of similar code, so I figured I would make a Live Template to create Scripting Engines.  I based it on Nick&#8217;s BaseScriptingEngine from his article on <a href="http://dn.codegear.com/article/37468">Creating a Live Templates Scripting Engine</a>.</p>
<p>I then created a <a href="http://blogs.codegear.com/pawelglowacki/2007/10/29/38498">Template Project</a> for the Scripting Engine Package.  So I can pop out a scripting engine now faster then you can say &#8220;Delphi Rocks&#8221;.</p>
<p>I thought I would share my Scripting Engine Unit Template.  You will probably want to make your own Scripting Engine Package Template Project, but if there is enough interest I will share mine out.  You will most likely want to modify this template to suite your own framework.</p>
<p>[<a href="http://www.davinciunltd.com/download/ScriptingEngineUnit.zip">Scripting Engine Unit Template</a>]</p>
<p><em><strong>Note</strong></em>: This references my general scripting engine to create a new GUID.  You will need to do that manually until I dress up my general scripting engine for public consumption.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davinciunltd.com/2008/04/scripting-engine-unit-template/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>BITS TLB and Headers</title>
		<link>http://www.davinciunltd.com/2008/03/bits-tlb-and-headers/</link>
		<comments>http://www.davinciunltd.com/2008/03/bits-tlb-and-headers/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 07:43:42 +0000</pubDate>
		<dc:creator>Jim McKeeth</dc:creator>
				<category><![CDATA[CodeGear]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[]]></category>
		<category><![CDATA[BITS]]></category>
		<category><![CDATA[Delphi programming]]></category>
		<category><![CDATA[Downloads]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[Service]]></category>

		<guid isPermaLink="false">http://www.davinciunltd.com/2008/03/bits-tlb-and-headers/</guid>
		<description><![CDATA[If you want to program with Microsoft&#8217;s Background Intelligent Transfer Service (BITS) then you will need the TLB or header files. These can be generated from the IDL files that come with the Windows XP SP2 Platform SDK, or any of the subsequent platform SDKs, the latest being Windows SDK for Windows Server 2008 and [...]]]></description>
			<content:encoded><![CDATA[<p>If you want to program with Microsoft&#8217;s Background Intelligent Transfer Service (BITS) then you will need the TLB or header files. These can be generated from the IDL files that come with the Windows XP SP2 Platform SDK, or any of the subsequent platform SDKs, the latest being Windows SDK for Windows Server 2008 and .NET Framework 3.5. You will need MIDL to generate the needed files. It is rather a pain to download that whole SDK and then generate the useful files.To make your life easier I have generated the useful files, and also ran them through Delphi RAD Studio 2007 for Win32 to create Object Pascal wrappers for your Delphi programming pleasure. Then I wrapped it all up in a zip for easy downloading. Much quicker to download.</p>
<p>As a note, you do not need to deploy any of these files, or the files in the SDK with your application. You just need to ensure that the Background Transfer Service is running on the target machine.</p>
<p>For more information, I have created a hub page on <a href="http://www.davinciunltd.com/code/advanced-downloads-with-delphi/">Advanced Downloads with Delphi</a> that I will update with more information as I gather it.</p>
<p>Enjoy!</p>
<p>[<a href="http://www.davinciunltd.com/download/bits-tbl,c,header,pas(3.0).zip">Download C, TBL, H, PAS archive</a>]</p>
<p><font size="1">Technorati Tags: </font><a href="http://technorati.com/tags/BITS" rel="tag"><font size="1">BITS</font></a><font size="1">, </font><a href="http://technorati.com/tags/Downloads" rel="tag"><font size="1">Downloads</font></a><font size="1">, </font><a href="http://technorati.com/tags/Service" rel="tag"><font size="1">Service</font></a><font size="1">, </font><a href="http://technorati.com/tags/SDK" rel="tag"><font size="1">SDK</font></a><font size="1">, </font><a href="http://technorati.com/tags/Library" rel="tag"><font size="1">Library</font></a><font size="1">, </font><a href="http://technorati.com/tags/Delphi%20programming" rel="tag"><font size="1">Delphi programming</font></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davinciunltd.com/2008/03/bits-tlb-and-headers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>BITSAdmin</title>
		<link>http://www.davinciunltd.com/2007/11/bitsadmin/</link>
		<comments>http://www.davinciunltd.com/2007/11/bitsadmin/#comments</comments>
		<pubDate>Fri, 02 Nov 2007 17:01:57 +0000</pubDate>
		<dc:creator>Jim McKeeth</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[library]]></category>

		<guid isPermaLink="false">http://www.davinciunltd.com/2007/11/bitsadmin/</guid>
		<description><![CDATA[If you are doing much development with BITS, then I suggest you download the BITSAdmin tool.  It comes with Vista and the XP SP 2 Platform SDK, or you can download it in a smaller tools pack.  It gives you complete command line control over BITS, which is really cool.
You will also want to write [...]]]></description>
			<content:encoded><![CDATA[<p>If you are doing much <a href="http://www.davinciunltd.com/2007/03/programming-with-bits-in-delphi/">development with BITS</a>, then I suggest you download <a href="http://msdn2.microsoft.com/en-us/library/aa362813.aspx">the BITSAdmin tool</a>.  It comes with Vista and the <a href="http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm">XP SP 2 Platform SDK</a>, or you can download it in a <a href="http://go.microsoft.com/fwlink/?linkid=84085">smaller tools pack</a>.  It gives you complete command line control over BITS, which is really cool.</p>
<p>You will also want to write a utility to clear your Queue of dead jobs that will get left behind as you are developing.  Trust me, you will need it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davinciunltd.com/2007/11/bitsadmin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MREWS and Threading in the Night</title>
		<link>http://www.davinciunltd.com/2007/10/mrews-and-threading-in-the-night/</link>
		<comments>http://www.davinciunltd.com/2007/10/mrews-and-threading-in-the-night/#comments</comments>
		<pubDate>Mon, 08 Oct 2007 17:47:42 +0000</pubDate>
		<dc:creator>Jim McKeeth</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[reference]]></category>

		<guid isPermaLink="false">http://www.davinciunltd.com/2007/10/mrews-and-threading-in-the-night/</guid>
		<description><![CDATA[So I wanted to look up what exactly MREWS is (I had a vague idea) and found this great resource:  Multithreading &#8211; The Delphi Way by Martin Harvey version 1.1.
The introduction states:
 This guide is intended for anyone who is interested in improving performance and responsiveness in their Delphi applications by using threads. It [...]]]></description>
			<content:encoded><![CDATA[<p>So I wanted to look up what exactly MREWS is (I had a vague idea) and found this great resource: <a href="http://www.eonclash.com/Tutorials/Multithreading/MartinHarvey1.1/" title="Multithreading - The Delphi Way" target="_blank"> Multithreading &#8211; The Delphi Way by Martin Harvey version 1.1</a>.</p>
<p>The introduction states:</p>
<blockquote><p> This guide is intended for anyone who is interested in improving performance and responsiveness in their Delphi applications by using threads. It covers a range of topics from absolute beginner to intermediate level, and some of the real world examples raise issues bordering on the advanced. It assumes that the reader has a reasonable knowledge of Object Pascal programming, including simple object orientation, and a working understanding of event based programming.</p></blockquote>
<p>A lot of really good information on threading there, and <a href="http://www.eonclash.com/Tutorials/Multithreading/MartinHarvey1.1/Ch11.html" title="Chapter 11 - Synchronizers and Events">Chapter 11 even covers MREWS</a>.  Despite being last updated in 2000, I would say it is still a good reference.</p>
<p>It would appear that Martin Harvey originally published his paper elsewhere, but then the original site went down.  Now it is mirrored on another server.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davinciunltd.com/2007/10/mrews-and-threading-in-the-night/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>FTP Chunker</title>
		<link>http://www.davinciunltd.com/2007/03/ftp-chunker/</link>
		<comments>http://www.davinciunltd.com/2007/03/ftp-chunker/#comments</comments>
		<pubDate>Mon, 19 Mar 2007 04:10:01 +0000</pubDate>
		<dc:creator>Jim McKeeth</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[library]]></category>

		<guid isPermaLink="false">http://www.davinciunltd.com/2007/03/ftp-chunker/</guid>
		<description><![CDATA[This is the FTP Chunker class and example I wrote for my Code Rage 2007 presentation.
It allows the retrieval of any part of a file via FTP.  The FTP server must support the REST command, which most do.
Uses Indy 9 &#8211; Written and tested on Delphi 2007.
ftpChunk.zip
]]></description>
			<content:encoded><![CDATA[<p>This is the FTP Chunker class and example I wrote for my Code Rage 2007 presentation.</p>
<p>It allows the retrieval of any part of a file via FTP.  The FTP server must support the REST command, which most do.</p>
<p>Uses Indy 9 &#8211; Written and tested on Delphi 2007.</p>
<p><a href="http://www.davinciunltd.com/download/ftpChunk.zip" title="4.18 KB (4,281 bytes)">ftpChunk.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davinciunltd.com/2007/03/ftp-chunker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming with BITS in Delphi</title>
		<link>http://www.davinciunltd.com/2007/03/programming-with-bits-in-delphi/</link>
		<comments>http://www.davinciunltd.com/2007/03/programming-with-bits-in-delphi/#comments</comments>
		<pubDate>Mon, 19 Mar 2007 03:48:29 +0000</pubDate>
		<dc:creator>Jim McKeeth</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[BITS]]></category>
		<category><![CDATA[Downloader]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SDK]]></category>

		<guid isPermaLink="false">http://www.davinciunltd.com/2007/03/programming-with-bits-in-delphi/</guid>
		<description><![CDATA[BITS is Microsoft&#8217;s Background Intelligent Download Service.  It was added in XP to allow downloading of security patches in the background.  In the Platform SDK Microsoft provided a COM interface to allow developers to work with BITS.  Unfortunately it is a bit of a pain to actually get to the interface, especially [...]]]></description>
			<content:encoded><![CDATA[<p>BITS is Microsoft&#8217;s Background Intelligent Download Service.  It was added in XP to allow downloading of security patches in the background.  In the Platform SDK Microsoft provided a COM interface to allow developers to work with BITS.  Unfortunately it is a bit of a pain to actually get to the interface, especially if you are not using Visual Studio.  To make it easier for Delphi developers to work with BITS, I am providing my imported <a href="http://www.davinciunltd.com/download/DelphiBits1.5tlb.zip" title="46.2 KB (47,407 bytes)">Type Library for the BackgroundCopyManager</a>.</p>
<p>Alternatively you can use the <a href="http://sourceforge.net/project/showfiles.php?group_id=121894&amp;package_id=139979">JEDI Win32 API Library</a> available on Sourceforge.  It has the Bits interface (version 1.5) split into a few different files (JwaBits1_5.pas, JwaBits.pas, JwaBitscfg.pas, and JwaBitsMsg.pas [although they reference other included files]) and cleaned up a little bit. In addition it includes a number of other useful Delphi wrappers for Win32 API&#8217;s.  I recommend this library over the raw TLB import.  My demo will work with either one.</p>
<p><strong>UPDATE</strong>: I <a href="http://www.davinciunltd.com/2007/11/the-missing-delphi-bits-demo/">recreated the demo</a> and added it to the <a href="http://www.davinciunltd.com/download/DelphiBits1.5tlb.zip">archive</a>!</p>
<p><span id="more-4"></span></p>
<p>Contents of the BITS-README.txt included in the zip</p>
<p><strong>Microsoft BITS &#8211; Background Intelligent Transfer Service<br />
Delphi Type Library wrapper</strong></p>
<p>The only real file you need is BackgroundCopyManager_TLB.pas.  The other files are intermediary files created in the generation process and are only included in case you want to regenerated the TLB wrapper.</p>
<p>The Windows XP SP2 Platform SDK includes the BITS.IDL.  To get the TLB file (which I have included for you) you must use the MIDL compiler.  I have also included the BackgroundCopyManager_TLB.pas file which Delphi generates.  You DO NOT need the IDL or the Platform SDK installed to develop with the Background Copy Manager.  All you need is the Background Intelligent Transfer Service version 1.5 or greater installed and running.  This comes pre-installed on Windows XP SP2 and Vista.  I believe you can also get it for Windows 2000, but I wouldn&#8217;t guarantee that.</p>
<p>I did not include any of the files that are included in the Platform SDK, only files that are generated from those.  Therefor this should not be in violation of and copyrights.</p>
<p>Files:</p>
<pre>Generated by the MIDL from the BITS.IDL file
Bits.tlb    &lt;-- If you want to regenerate BackgroundCopyManager_TLB.pas
Bits.h      &lt;-- C header file
Bits_i.c    &lt;--
Bits_p.c    &lt;----- Other C related files - Not needed for Delphi.
dlldata.c   &lt;--/Generated by Delphi from the TLB file
BackgroundCopyManager_TLB.pas  &lt;-- This is the only one Delphi needs</pre>
<p><strong>UPDATE</strong>: Get the <a href="http://www.davinciunltd.com/2008/03/bits-tlb-and-headers/">BITS 3.0 header files</a>.<a href="http://www.davinciunltd.com/" title="Here!"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davinciunltd.com/2007/03/programming-with-bits-in-delphi/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
