<?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-5993491677117710581</id><updated>2011-09-03T13:53:02.729-07:00</updated><category term='Dev'/><category term='media'/><category term='system'/><category term='AntiVirus'/><category term='pocket PC'/><category term='App'/><category term='Crack'/><category term='Hack'/><category term='Game'/><category term='dav'/><category term='security'/><category term='webSites'/><category term='freewarepocketpc.net'/><category term='language'/><category term='communication'/><category term='enhancement'/><category term='tests'/><category term='iPhone'/><category term='Coding_PPC'/><category term='Mix'/><category term='internet'/><category term='PPL Tutorials'/><category term='RingTone'/><category term='warezForum'/><category term='Torrents'/><category term='Health'/><category term='Pack'/><category term='utilities'/><category term='backup'/><title type='text'>iTouch</title><subtitle type='html'>For Touch Screen Fone users ....</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default?start-index=101&amp;max-results=100'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>183</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-7656500459759698348</id><published>2009-03-17T15:53:00.000-07:00</published><updated>2009-03-17T15:54:09.606-07:00</updated><title type='text'>Moved to iPhoneOS.tk</title><content type='html'>Join us here on&lt;div&gt;&lt;a href="http://iPhoneOS.tk"&gt;http://iPhoneOS.tk&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-7656500459759698348?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/7656500459759698348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=7656500459759698348' title='39 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7656500459759698348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7656500459759698348'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2009/03/moved-to-iphoneostk.html' title='Moved to iPhoneOS.tk'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>39</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-8646705675844518248</id><published>2009-03-11T12:51:00.000-07:00</published><updated>2009-03-13T07:30:17.842-07:00</updated><title type='text'>Sarat's iPod : Upgrade from 1.1.4 to 2.2.1 and JailBreak</title><content type='html'>This was seems less tedious task, as it is &lt;div&gt;I thought putting just few hours will be enough (Frankly speaking)&lt;/div&gt;&lt;div&gt;But it does not seem like that ..&lt;/div&gt;&lt;div&gt;Competibility issues of FW(FirmWare), with the tools&lt;/div&gt;&lt;div&gt;Now, I have alomost every tools available for Mac and Windows, on  my Mac and PC desktop.&lt;/div&gt;&lt;div&gt;right now  5 to 6 restore IPSWs&lt;/div&gt;&lt;div&gt;:)&lt;/div&gt;&lt;div&gt;I have used latest version of Pwnage tool, QuickPwn(Mac) and QuickPwn(win), date is 11th March 2009.&lt;/div&gt;&lt;div&gt;Now just got QuickPwn 2.0 from my Brother, which is old and should support the FW 1.1.4.&lt;/div&gt;&lt;div&gt;Lets See ....&lt;/div&gt;&lt;div&gt;Sad as i opened the app, it was the same..&lt;/div&gt;&lt;div&gt;now looking over the the net if i see earlier version of QuickPwn :|&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Using the WinPwn 2.5 Beta&lt;/div&gt;&lt;div&gt;After an hour or more after writing the above line, nothing happened, absolutely NOTHING...&lt;br /&gt;at last I m feeling that neither any restore nor any tool will, until I m upgrading to FW 2.0, TTF (Thats The F*CK) it is not available.. at least I can say no direct link, no RapidShare link, NO weblink.. I m able to find to find on the torrent only, and in the torrent also it is almost dying stage. I have added 4 diffrent torrents, one is now working good....&lt;br /&gt;SO it shows this file is critical...&lt;br /&gt;finished above para 6:00 AM 12 March 2009..&lt;br /&gt;Waiting for the FW 2.0 to get download ... Lets see That is working or not, if that is not working I will must say that One should give $9.95 to apple and purchase the update...&lt;br /&gt;If I m successfull, I will say your many many hours of work, As I m going to hit 10th hours or working on the same issue...&lt;br /&gt;&lt;br /&gt;1:12 PM 12 March 09&lt;br /&gt;Volia.... I got FW 2.0 on the ipod touch...&lt;br /&gt;aaaah at last ...ufffff&lt;br /&gt;this was the problem...&lt;br /&gt;So guys if you are on 1.1.4 FirmaWare and want to upgrade on 2.x.x or want to come to the series 2.o, you need 2.0 FW ( As it is paid ) hahhaha&lt;br /&gt;Anyways&lt;br /&gt;Now I m on FW 2.0..&lt;br /&gt;getting ready for 2.2.1 hahahhah...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4:01 PM&lt;br /&gt;ahhh but great apps are not taking 2.0&lt;/div&gt;&lt;div&gt;but that is not an issue i have offcial 2.2.1 updates i will take them&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4:37 PM 12 March 2009&lt;/div&gt;&lt;div&gt;After having the FW 2.0, I cant update with IPSW 2.2.1, reason is still unknown, but not so long.&lt;/div&gt;&lt;div&gt;The final plan is to have update through iTune.. hehehee...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3:24 AM 13 March 2009&lt;br /&gt;The myth about the iPod generation cleared completly.. I guess, Now I have all the FirmWare for iPod touch 1G,&lt;br /&gt;Again I restored iPod Touch with FW 2.0..&lt;br /&gt;Now going to upgrade to 2.0.1 Let see if that is successfull..&lt;br /&gt;Waiting for my IBM Thinkpad to reboot, I have all the FirmWare in that :)&lt;br /&gt;&lt;br /&gt;3:33 AM 13 MAR 09&lt;br /&gt;I have 2.o on my iPod very much.&lt;br /&gt;I have 2 way to upgrade it till 2.2.1, either via iTunes or manual.&lt;br /&gt;iTunes is again on network dependent as it does not store the partial downloads.&lt;br /&gt;I m again and again getting the network error.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4:30 AM Mar 09&lt;br /&gt;Updating to  FW 2.0.2,&lt;br /&gt;Lets see what is waiting for me...&lt;br /&gt;YAHOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO&lt;br /&gt;We did it again, hahahhahaaaa&lt;br /&gt;&lt;br /&gt;4:33 AM Mar 09&lt;br /&gt;Now Heading to update with 2.2.1 5h11 THE LATEST UPDATE ....&lt;br /&gt;Let see what is the next...&lt;br /&gt;4:36 updating now ... Clenched my teeth together...&lt;br /&gt;WOW ... revolving Gear is changed as a rounded Progress Bar...&lt;br /&gt;4:39 Verifying the updated software..&lt;br /&gt;I guess we are going to hit again...&lt;br /&gt;But still we have not got through.. :)&lt;br /&gt;oye lucky, lucky oye&lt;br /&gt;we are super duper hit, paape.. :) :D&lt;br /&gt;&lt;br /&gt;Now the Risky part comes, Pwning the iPod touch...&lt;br /&gt;&lt;br /&gt;At last iPod is jailBroken...&lt;br /&gt;It was a tedious Job any...&lt;br /&gt;It is having 2.2.1 and jailbroken, but not yet ready for Mobile installation.&lt;br /&gt;Let a mobile installation another post... ;)&lt;br /&gt;At last but not the least, many many thanks to Sarat for providing his iPod Touch...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-8646705675844518248?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/8646705675844518248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=8646705675844518248' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8646705675844518248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8646705675844518248'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2009/03/sarats-ipod-upgrade-from-114-to-221-and.html' title='Sarat&apos;s iPod : Upgrade from 1.1.4 to 2.2.1 and JailBreak'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-6002355209065017309</id><published>2009-03-10T16:58:00.000-07:00</published><updated>2009-03-10T17:10:10.436-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>FIrst Attempt to JailBreak iPod touch</title><content type='html'>Here was a task to Jailbreak the iPod touch having FW 1.1.4&lt;br /&gt;The very first attempt was failed&lt;br /&gt;I need to restore the FW with the same version 1.1.4..&lt;br /&gt;Right now downloading the FW 2.2.1&lt;br /&gt;Pwnage tool was failed to jailbreak it although it was the latest version..&lt;br /&gt;Now looking for QuickPwn's latest version.&lt;br /&gt;Let see what happens..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-6002355209065017309?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/6002355209065017309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=6002355209065017309' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6002355209065017309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6002355209065017309'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2009/03/first-attempt-to-jailbreak-ipod-touch.html' title='FIrst Attempt to JailBreak iPod touch'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-3331016727180699359</id><published>2009-03-04T06:28:00.000-08:00</published><updated>2009-03-04T06:29:07.618-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>here is How to get cracked iPA's on iPhone/iPod Touch</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 12px; line-height: 15px; "&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red; "&gt;&lt;span style="font-size: 18px; line-height: normal; "&gt;After you have jailbroken your ipod touch 2.x what you wanna do is&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;1.Log into WinSCP (windows) or Cyberduck (Mac) &lt;br /&gt;If you don't know how to do this -&lt;table width="90%" cellspacing="1" cellpadding="3" border="0" align="center"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="font: normal normal normal 12px/normal Verdana, Arial, Helvetica, sans-serif; "&gt;&lt;span class="genmed" style="font-size: 11px; "&gt;&lt;strong&gt;Code:&lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="code" style="font: normal normal normal 12px/normal Verdana, Arial, Helvetica, sans-serif; font-family: Courier, 'Courier New', Verdana, Arial; color: rgb(70, 85, 132); background-color: rgb(250, 252, 254); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: rgb(0, 0, 0); border-right-color: rgb(0, 0, 0); border-bottom-color: rgb(0, 0, 0); border-left-color: rgb(0, 0, 0); padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px; width: 98%; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; "&gt;http://www.youtube.com/watch?v=YtfjDHfqXWQ&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;2.Create a folder called Documents in &lt;span style="text-decoration: underline; "&gt;/var/mobile/&lt;/span&gt; and set permission to &lt;span style="text-decoration: underline; "&gt;777&lt;/span&gt;. &lt;br /&gt;3.Create a folder called Documents in the &lt;span style="text-decoration: underline; "&gt;/Applications&lt;/span&gt; folder and set permissions to &lt;span style="text-decoration: underline; "&gt;777&lt;/span&gt;. &lt;br /&gt;4.Now go to root &lt;span style="text-decoration: underline; "&gt;/System/Library/PrivateFrameworks/Mobile Installation.framework&lt;/span&gt; &lt;br /&gt;5.Replace the MobileInstallation file and set the permissions 775 for the file &lt;br /&gt;6.Reboot your iPhone/iPod Touch-IMPORTANT! &lt;br /&gt;7.Download cracked Games and Apps. &lt;br /&gt;8.Download at least one App from t he App Store(Free or Paid) &lt;br /&gt;IMPORTANT: Otherwise you will get an error! (Only need to do this once] &lt;br /&gt;9.Double click on the cracked .ipa you downloaded, and iTunes Should Open And Then Just Sync your iPhone/iPod Touch and enjoy! &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; "&gt;&lt;span style="text-decoration: underline; "&gt;&lt;span style="color: blue; "&gt;You Set Permission by right clicking and choosing properties, you wont miss it&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;&lt;span style="font-size: 18px; line-height: normal; "&gt;&lt;span style="color: red; "&gt;&lt;span style="text-decoration: underline; "&gt;HERE IS THE MOBILEINSTALLATION FILE:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;&lt;table width="90%" cellspacing="1" cellpadding="3" border="0" align="center"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="font: normal normal normal 12px/normal Verdana, Arial, Helvetica, sans-serif; "&gt;&lt;span class="genmed" style="font-size: 11px; "&gt;&lt;strong&gt;Code:&lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="code" style="font: normal normal normal 12px/normal Verdana, Arial, Helvetica, sans-serif; font-family: Courier, 'Courier New', Verdana, Arial; color: rgb(70, 85, 132); background-color: rgb(250, 252, 254); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: rgb(0, 0, 0); border-right-color: rgb(0, 0, 0); border-bottom-color: rgb(0, 0, 0); border-left-color: rgb(0, 0, 0); padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px; width: 98%; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; "&gt;http://rapidshare.com/files/148053500/MobileInstallation.rar&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Enjoy &lt;img src="http://img5.warez-bb.org/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-color: initial; " /&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-3331016727180699359?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/3331016727180699359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=3331016727180699359' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/3331016727180699359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/3331016727180699359'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2009/03/here-is-how-to-get-cracked-ipas-on.html' title='here is How to get cracked iPA&apos;s on iPhone/iPod Touch'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-8364149196961912252</id><published>2009-03-01T23:20:00.000-08:00</published><updated>2009-03-01T23:21:53.516-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>Install cracked ipa's using iTunes</title><content type='html'>Install cracked ipa's using iTunes. Change your Mobile Installation File without computer support. &lt;br /&gt;&lt;br /&gt;1. Go to your pawned iPhone, open Cydia.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. Go to Manage and choose Sources&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. Press the Edit Button and then the Add button&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. Add the following sources:&lt;br /&gt;&lt;br /&gt;4.1. OpenSSH:&lt;br /&gt;Code:&lt;br /&gt;http://apt.saurik.com/&lt;br /&gt;Don't need to add this one, it's already installed by default, just search for the app.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4.2. Erica Utilities: www.ModMyi.com&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4.3. Mobile Instalation File: http://iphone.org.hk/apt/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The installation has to be made the way above, leave Mobile Installation file for last. &lt;br /&gt;&lt;br /&gt;Restart the iPhone and install first a legit app, download a free app from the appstore [VERY IMPORTANT STEPS] and it's done! Now you can install any cracked ipa using iTunes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-8364149196961912252?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/8364149196961912252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=8364149196961912252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8364149196961912252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8364149196961912252'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2009/03/install-cracked-ipas-using-itunes.html' title='Install cracked ipa&apos;s using iTunes'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-4806841979628169032</id><published>2009-02-07T07:00:00.001-08:00</published><updated>2009-02-07T07:00:58.691-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Crack'/><title type='text'>CRACKULOUS v.9</title><content type='html'>SaladFork make Crackulous. People use Crackulous. Angel Take over. Crackulous good. We release Crackulous today.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CRACKULOUS v.9&lt;br /&gt;We at Hackulous have decided to open up the beta version of Crackulous for the entire community. If you haven't already heard about Crackulous, it's an amazing application dedicated to the iPhone community to cracking apps. Crackulous was first started by SaladFork, and now the application is being developed by Angel. We've decided to release Crackulous v.9 as an Open Beta, so anyone can try it out!&lt;br /&gt;&lt;br /&gt;Features:&lt;br /&gt;&lt;br /&gt;   * Full GUI version of xCrack! No Complications!&lt;br /&gt;   * Crack Applications from the App Store! Share them with the community!&lt;br /&gt;   * The ONLY Application of its kind!&lt;br /&gt;   * The most POWERFUL and EASIEST to use application!&lt;br /&gt;   * Crack multiple apps at one time!&lt;br /&gt;   * It's free! Why would we charge?&lt;br /&gt;&lt;br /&gt;Read more at: What is Crackulous?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So where do we get it? From the Hackulous Cydia Repo of course!&lt;br /&gt;http://cydia.hackulo.us&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Known Bugs (Major):&lt;br /&gt;&lt;br /&gt;   * You must have at least one legitimate app from the App Store&lt;br /&gt;   * If any of your apps begin with a #, Crackulous will crash (Bug fix on the way)&lt;br /&gt;&lt;br /&gt;If you have more bugs to share, tell us at: Crackulous Forum&lt;br /&gt;&lt;br /&gt;Issues:&lt;br /&gt;&lt;br /&gt;   * If You cannot see Crackulous in the repo, restart your cydia (or your device) and have it update it's sources&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Kyek's FAQ&lt;br /&gt;We're getting a lot of common questions in this thread -- so I posted this on page 4, but it might be better served here in the original post smile.gif&lt;br /&gt;&lt;br /&gt;Crackulous crashing on startup?&lt;br /&gt;Many people are saying that it crashes when you have an app with a number in it. It's not necessarily numbers IN apps, it's apps that START WITH a number. This is a known bug, and it's mentioned in the original post. There should be a fix soon, so don't feel the need to delete your precious apps right away ;-). There's also a rare bug report about apps with 3 or more digits in the name causing a problem with Crackulous, but so far that's not been confirmed.&lt;br /&gt;&lt;br /&gt;Make sure you address your crashing in the official Crackulous crashing topic.&lt;br /&gt;&lt;br /&gt;But how do I crack apps without buying them?&lt;br /&gt;You don't. Every single app that's ever been cracked has been legitimately purchased by the cracker. Part of the cracking method requires you to run the app on your iDevice before it's cracked, and the only way to do that is by buying it and downloading it legitimately. Makes you think twice before you start spamming the requests board, doesn't it? ;-)&lt;br /&gt;&lt;br /&gt;I cracked an app but how do I get it?&lt;br /&gt;Crackulous tells you exactly where to find the app once it's cracked -- all you need to do is log into your phone via SFTP (you need OpenSSH from Cydia for this). Don't know how to do that? This, my friends, is why we have a Tutorials section here at Hackulous ;-) Take some initiative and search for it!&lt;br /&gt;&lt;br /&gt;Where do I upload the app?!?!?!?!?!1cos(0)1&lt;br /&gt;If your goal is to get the app posted on Appulous (and it should be!) you'll need to upload it to a filehost. Actually, if you want your app to stick around for awhile, you'll want to upload to a few filehosts! The ones that work on Appulous are listed here. Then, if you don't already have one, register for an account at Appulo.us, verify your E-mail (see here if you have problems with that), log in, then use the "Submit an App" link at the top of Appulous.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-4806841979628169032?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/4806841979628169032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=4806841979628169032' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/4806841979628169032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/4806841979628169032'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2009/02/crackulous-v9.html' title='CRACKULOUS v.9'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-6408471161409594808</id><published>2009-02-07T06:40:00.000-08:00</published><updated>2009-02-07T06:42:52.708-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>How to add cracked apps to your iPhone</title><content type='html'>This tutorial will show you how to install cracked .app applications on your iPhone. Although very easy and convenient, this is not the best way to add cracked apps. Given that most cracked iPhone apps are .ipa files, I recommend you have a look at guide on &lt;a href="http://ihtc.blogspot.com/2009/02/how-to-add-ipa-files-to-your-iphone.html"&gt;how to install .ipa files &lt;/a&gt;on your iPhone instead.&lt;br /&gt;&lt;br /&gt;I assume that you’re on a jailbroken 2.X iPhone and that you have installed OpenSSH from Cydia.&lt;br /&gt;&lt;br /&gt;1. Download cracked application.&lt;br /&gt;&lt;br /&gt;2. Unzip the cracked application folder to your desktop.&lt;br /&gt;&lt;br /&gt;3. SSH into iphone.&lt;br /&gt;&lt;br /&gt;4. In WinSCP, navigate to /Applications.&lt;br /&gt;&lt;br /&gt;5. Drag the cracked application folder over the /Applications folder and drop it in there.&lt;br /&gt;&lt;br /&gt;6. Right click on the cracked application folder and change permissions to 0755 and select the box beside “set owner group and permissions recursively” (or go inside the folder, select everything, and set properties to 0755 as well), then hit ok.&lt;br /&gt;&lt;br /&gt;7. In the /Applications folder, make a new folder called “Documents”, with a capital D. Change the permissions on the “Documents” folder you just created to 0777.&lt;br /&gt;&lt;br /&gt;8. Navigate to /var/mobile/ and make a new folder called “Documents”, with a capital D. Change the permissions on the “Documents” folder you just created to 0777.&lt;br /&gt;&lt;br /&gt;9. Reboot your device&lt;br /&gt;&lt;br /&gt;Note: Some applications require you set permission to 0775. It seems to be kinda random so if 0755 doesn’t work, try 0775.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-6408471161409594808?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/6408471161409594808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=6408471161409594808' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6408471161409594808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6408471161409594808'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2009/02/how-to-add-cracked-apps-to-your-iphone.html' title='How to add cracked apps to your iPhone'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-8703676069910791425</id><published>2009-02-07T06:38:00.000-08:00</published><updated>2009-02-07T06:43:52.677-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>How to add ipa files to your iPhone</title><content type='html'>Hello to you, iPhone hacker! Hello to you too, iPod Touch hacker…&lt;br /&gt;&lt;br /&gt;So it’s not a secret anymore… many iPhone games and applications have been cracked (and still are). Basically, you can get 2 types of files. The “normal” .app file, and the cracked ipa file. We already covered the method to &lt;a href="http://ihtc.blogspot.com/2009/02/how-to-add-cracked-apps-to-your-iphone.html"&gt;install .app files on your iPhone&lt;/a&gt;. Now here is the other method, the most popular one, to install cracked .ipa files such as games and applications on your iPhone or iPod Touch.&lt;br /&gt;&lt;br /&gt;As a reminder, this is illegal! I do not encourage anyone to hack or crack iPhone games. Some developpers spend quite some time working on them and they don’t want to see their work ripped off. If you see an iPhone game or application that you like, download it legally through the App Store.&lt;br /&gt;&lt;br /&gt;This method works for all firmwares from 2.0 to the current firmware available. The only thing that changes is the MobileInstallation file that you have to install. Each device (iPhone/iPod Touch) has its own MobileInstallation file for each version of the firmware. I started tracking these MobileInstallation files from iPhone 2.1. I do not have them for older firmwares and I do not have them for iPod Touch, although they might be the same as the iPhone’s. I don’t own an iPod Touch, thus I never tried this before on one but some users reported to me it worked great.&lt;br /&gt;&lt;br /&gt;By the way, you may want to check my list of cracked iPhone games and applications.&lt;br /&gt;&lt;br /&gt;So, how to install ipa files on an iPhone or iPod Touch?&lt;br /&gt;&lt;br /&gt;1. You need to be on jailbroken iPhone with Cydia installed. For this, you may use QuickPwn, PwnageTool, or WinPwn. See my tutorials for on how to jailbreak your iPhone or iPod Touch using any of these tools.&lt;br /&gt;&lt;br /&gt;2. Install OpenSSH from Cydia on your iPhone. Click on Cydia and then click Install (Sections)&gt;Networking&gt;OpenSSH then click Install&gt;Confirm (if you get a running out of disk space error click “ok”).&lt;br /&gt;&lt;br /&gt;3. Log into WinSCP. The first time you try to login you may get a connection timeout error, click retry several times (up to 20 times!) and it should work. If you still get an error, reboot your iPod/iPhone and try again.&lt;br /&gt;&lt;br /&gt;4. Navigate to /private/var/mobile/ folder&lt;br /&gt;&lt;br /&gt;5. Set the permission of the Applications folder to 777 (make sure reclusive is checked).&lt;br /&gt;&lt;br /&gt;6. Stay in the /private/var/mobile/ folder.&lt;br /&gt;&lt;br /&gt;7. Create a folder called “Documents” in the /private/var/mobile/ folder. Make sure to spell “Documents” correctly, with a capital “D”.&lt;br /&gt;&lt;br /&gt;8. Set the permission to 777.&lt;br /&gt;&lt;br /&gt;9. Navigate to the root level and open the /Applications folder.&lt;br /&gt;&lt;br /&gt;10. Create a folder called “Documents” inside the /Applications folder and set permission to 777.&lt;br /&gt;&lt;br /&gt;———Note: You will only need to create these two Documents folders once———&lt;br /&gt;&lt;br /&gt;11. Go to &lt;root&gt; /System/Library/PrivateFrameworks/MobileInstallation.framework&lt;br /&gt;&lt;br /&gt;12. Rename the file “MobileInstallation” to “MobileInstallation.bak”&lt;br /&gt;&lt;br /&gt;13. Download this patched MobileInstallation file from HERE. Note that you have to download the patched file for the firmware you are running. ie. if you are running 2.1, you need the MobileInstallation 2.1 patched file.&lt;br /&gt;&lt;br /&gt;14. Place the patched file into the /System/Library/PrivateFrameworks/MobileInstallation.framework folder and set the permissions 775 for the patched MobileInstallation file. If there is some type of extension (ie .dylib), then you need to remove that extension.&lt;br /&gt;&lt;br /&gt;15. Reboot your iPhone/iPod Touch&lt;br /&gt;&lt;br /&gt;16. Download cracked api Games and Apps from Here.&lt;br /&gt;&lt;br /&gt;17. Download at least one App from Apple App Store (Free or Paid). What I do is I download one app from the App Store using iTunes, then I sync my iPhone and reboot it. Then I download one app from the App Store on the iPhone and reboot the phone. THIS IS VERY IMPORTANT: Otherwise you will get an error! [Only need to do this once]&lt;br /&gt;&lt;br /&gt;18. Drag and drop the .ipa file you downloaded into the iTunes Application library.&lt;br /&gt;&lt;br /&gt;19. Sync your iPhone/iPod Touch and enjoy!&lt;br /&gt;&lt;br /&gt;Errors:&lt;br /&gt;&lt;br /&gt;The application “XXXXXXX” cannot be opened&lt;br /&gt;Fix: Reboot your iPhone or iPod&lt;br /&gt;&lt;br /&gt;0xE800001 Error:&lt;br /&gt;&lt;br /&gt;FIX: Change usb port and reboot your iphone/ipod Touch.&lt;br /&gt;If this doesn’t work try going into: Control panel-&gt;System-&gt;Device Manager-&gt;Universal Serie Bus Controller-&gt;Right click Apple Mobile Device USB Driver and update driver.&lt;br /&gt;&lt;br /&gt;0xE800013 Error:&lt;br /&gt;&lt;br /&gt;You get this error when you already have the app&lt;br /&gt;FIX: Simply delete the .app folder that u have ssh’d and reboot.&lt;/root&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-8703676069910791425?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/8703676069910791425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=8703676069910791425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8703676069910791425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8703676069910791425'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2009/02/how-to-add-ipa-files-to-your-iphone.html' title='How to add ipa files to your iPhone'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-6519207585404525014</id><published>2009-02-06T22:42:00.000-08:00</published><updated>2009-02-06T22:43:02.403-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>Term you will hear, when looking for unlocked iPhone</title><content type='html'>&lt;p&gt;&lt;b&gt;&lt;u&gt;Baseband 101&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The ‘baseband’ is the generic name given to the internal components of the iPhone that handle the phone calls and Internet access. This ‘baseband’ is a tiny and unique independent computer system that runs inside your iPhone, it is separate to the main system that handles the applications (such as email and google maps) and it talks to the main part of the phone over an internal communications network. Think of it like a cable modem or other peripheral that is attached to your home PC that needs occasional updates. When a software update is released and presented to you within iTunes the baseband is sometimes updated (to fix bugs or add new features). The 2.2.1 update for the iPhone 3G contains such an update, so running the vanilla updater straight away with iTunes will reprogram and update the baseband. This could be bad for certain people, depending on your ultimate aim.&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;u&gt;SIM Free/SP Unlocked/Factory Unlocked iPhone 3G&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;This applies if you bought your iPhone 3G for &lt;i&gt;$$$$$$$.&lt;/i&gt; This model of iPhone 3G doesn’t have an Service Provider lock (aka factory unlocked) and you are able to put any SIM card into the phone and get service. Your phone is already unlocked so you do not need to worry about baseband updates, simply upgrade to 2.2.1 using iTunes and then use QuickPwn to Pwn and Jailbreak. This will add Cydia and Installer too.&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;u&gt;Locked iPhone 3G - Preserve Baseband&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This applies if you have a locked iPhone 3G and you wish to update to 2.2.1 but preserve the iPhone’s current baseband software. Preserving the baseband will ensure that you can still use “yellowsn0w” the iPhone 3G unlock application. To upgrade your phone to 2.2.1 and preserve the state of the baseband you need to create a custom .ipsw with PwnageTool. This custom .ipsw will not contain the baseband update but of course will still give you any new stuff from 2.2.1&lt;br /&gt;&lt;br /&gt;There are plenty of tutorials about this process on the web, but PwnageTool contains intuitive graphics and easy to follow prompts that should have you up and running in no time at all. Please note: PwnageTool is only available for Mac OS X.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Locked iPhone 3G&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;If you are using your iPhone with one carrier and have no interest in the possibility of an iPhone 3G unlock in the near future then just restore or upgrade to 2.2.1 using iTunes and use QuickPwn to Jailbreak and add Cydia and Installer.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;iPhone 2G (1st Generation)&lt;/b&gt;&lt;br /&gt;&lt;/u&gt;&lt;/p&gt; &lt;p&gt;Update or Restore your iPhone 2G with iTunes then run QuickPwn to do the magic, ‘nuff said, you don’t need to worry about anything.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;u&gt;iPod Touch 1G (Original iPod Touch)&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Update to 2.2.1 with iTunes and run QuickPwn.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;u&gt;iPod Touch 2G (New iPod Touch)&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Sorry, no support at this time, but Redsn0w &lt;i&gt;&lt;b&gt;is&lt;/b&gt;&lt;/i&gt; being actively researched and developed.&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;u&gt;Fixing DFU mode on 10.5.6&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;As noted previously OS X 10.5.6 introduced a bug that affected the use of DFU mode. with some Macs. There have been previously published hacks and techniques to fix this, but here is another method that can be used to temporarily restore DFU functionality in order to use QuickPwn or PwnageTool.&lt;/p&gt; &lt;ol&gt;&lt;li&gt;You will need an account with ADC (Apple Developer Connection) this is free and takes a few minutes to sign up, you should read the terms and conditions carefully and you should only sign up if you are thinking of developing applications in the future - http://&lt;a href="http://is.gd/hN26" target="_blank"&gt;developer.apple.com/mac/ &lt;/a&gt; &lt;/li&gt;&lt;li&gt;Download the disk image &lt;a href="http://is.gd/hQrP" target="_blank"&gt;“IOUSBFamily-315.4-log.dmg”  for Mac OS X &lt;b&gt;10.5.5&lt;/b&gt; Build 9F33&lt;/a&gt;” (yes, that is a “&lt;b&gt;5&lt;/b&gt;” in &lt;i&gt;10.5.5&lt;/i&gt; - this is a developer debug package of the USB kernel extension).&lt;/li&gt;&lt;li&gt;Unplug non-vital USB equipment, such as external DVD writers, USB scanners, USB mass storage devices, at the most leave a Keyboard and Mouse connected.&lt;/li&gt;&lt;li&gt;Install IOUSBFamily-315.4.1.pkg from within the disk image&lt;/li&gt;&lt;li&gt;Reboot your system!&lt;/li&gt;&lt;li&gt;Perform necessary DFU activity with QuickPwn or PwnageTool.&lt;/li&gt;&lt;li&gt;Download the disk image &lt;a href="http://is.gd/hQrP" target="_blank"&gt;“&lt;/a&gt;&lt;a href="http://is.gd/hQrP" target="_blank"&gt;IOUSBFamily-327.4.0-log.dmg” for Mac OS X 10.5.6 Build 9G55”&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Intall  IOUSBFamily-327.4.0.pkg from within the disk image&lt;/li&gt;&lt;li&gt;Reboot your system!&lt;/li&gt;&lt;li&gt;Reattach your USB peripherals. &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/5993491677117710581-6519207585404525014?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/6519207585404525014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=6519207585404525014' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6519207585404525014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6519207585404525014'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2009/02/term-you-will-hear-when-looking-for.html' title='Term you will hear, when looking for unlocked iPhone'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-2306534910772730455</id><published>2009-02-06T22:36:00.000-08:00</published><updated>2009-02-06T22:37:04.964-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>Jailbreaking your iPhone for Dummies.</title><content type='html'>&lt;table border="0" cellpadding="0" cellspacing="0" width="150"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="left" background="templates/Macinscott2/images/topic_right.gif" valign="top" width="13"&gt;&lt;br /&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;    &lt;td align="left" valign="top"&gt;&lt;img name="topic_bttm_left" src="http://beta.macnbits.com/forum/templates/Macinscott2/images/topic_bttm_left.gif" alt="" border="0" height="13" width="12" /&gt;&lt;/td&gt;    &lt;td align="left" background="templates/Macinscott2/images/topic_bttm.gif" valign="top"&gt;&lt;img src="http://beta.macnbits.com/forum/templates/Macinscott2/images/spacer.gif" height="13" width="1" /&gt;&lt;/td&gt;    &lt;td align="left" valign="top"&gt;&lt;img name="topic_bttm_right" src="http://beta.macnbits.com/forum/templates/Macinscott2/images/topic_bttm_right.gif" alt="" border="0" height="13" width="13" /&gt;&lt;/td&gt;   &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;         &lt;table border="0" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;   &lt;td colspan="2"&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;     &lt;td colspan="2"&gt;&lt;span class="postbody"&gt;&lt;br /&gt;Ok, so you see these *.ipa files on this and other trackers and want to know how to get them on your iPhone without having to be a Unix command line expert. There are tons of tutorials on YouTube, but I'd say 90% of them are poorly done and outdated with old Unix commands for setting permissions and creating directories. Bleh! &lt;img src="http://beta.macnbits.com/forum/images/smiles/icon_rolleyes.gif" alt="Rolling Eyes" border="0" /&gt; &lt;br /&gt;&lt;br /&gt;First you'll need to Jailbreak your iPhone. First worry that comes up for noobs is "Will it ruin my iPhone, void the warranty, and piss Steve Jobs off?" &lt;img src="http://beta.macnbits.com/forum/images/smiles/icon_rolleyes.gif" alt="Rolling Eyes" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;The short answer is no. You can always reformat your phone and go back to the normal firmware. When you hear the "scary" brick term, it just means some app locked up the phone and now they have to reformat it back to normal.&lt;br /&gt;&lt;br /&gt;To Jailbreak your iPhone (rather easy process), visit:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.iphone-dev.org/" target="_blank"&gt;http://blog.iphone-dev.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Get the QuickPwn software for your firmware. As of this writing it was 2.1. The app will tell you with cartoons and movies EXACTLY what to do. A complete idiot could do it in about four minutes.&lt;br /&gt;&lt;br /&gt;To put on [k]'d apps with the ipa extension, do this step (only need to do once. Also notice there there are no complicated Unix commands you have to enter.)&lt;br /&gt;&lt;ol type="1"&gt;&lt;br /&gt;&lt;li&gt;Make sure you've installed at least one free app from iTunes.  It somehow preps the iPhone for more apps.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Run QuickPwn on your iPhone if you haven't already.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Open Cydia on your device and let it download its stuff. If this is your first time running Cydia, it will download a bunch of updates and restart a couple of times.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tap on Manage and go to Sources.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tap Edit. Tap Add. Type in "http://www.iphone.org.hk/apt/" into the text box. Tap on Add Source.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Let it do its thing and when you get back to Cydia tap on Search.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Find and install Link Identity Editor.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Find and install MobileInstallation Patch.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Restart your device. (hold the top power button down for 5 seconds) Congratulations, you can now sync unsigned IPA packages to your device.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Now simply double click any *.ipa file and iTunes will boot up and add it to your library so that it will sync.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Where to get [k]'d IPA files:&lt;br /&gt;&lt;br /&gt;Bittorrent Trackers:&lt;br /&gt;&lt;ol type="1"&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.demonoid.com/files/?uid=0&amp;amp;category=5&amp;amp;subcategory=277&amp;amp;language=0&amp;amp;seeded=0&amp;amp;quality=0&amp;amp;query=iphone&amp;amp;sort=" target="_blank" class="postlink"&gt;Demonoid's Iphone Section&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://thepiratebay.org/search/CrackedAppleStore/0/99/0" target="_blank" class="postlink"&gt;Weekly archives of the most popular apps on the AppleStore&lt;/a&gt;&lt;span style="color: green;"&gt; Great way to download the best apps quickly to get started&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;By the way, you can get IPA files directly from these websites rather than bittorrent.&lt;br /&gt;&lt;ol type="1"&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.megaupload.com/?f=TQ2I5VP6" target="_blank" class="postlink"&gt;http://www.megaupload.com/?f=TQ2I5VP6&lt;/a&gt;&lt;span style="color: green;"&gt;Good&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://iparepo.com/" target="_blank" class="postlink"&gt;http://iparepo.com/&lt;/a&gt;&lt;span style="color: red;"&gt;No download links yet...&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://appulo.us/appdb/" target="_blank" class="postlink"&gt;http://appulo.us/appdb/&lt;/a&gt;&lt;span style="color: green;"&gt;Looks really good.&lt;/span&gt; &lt;a href="http://www.xsellize.com/forumdisplay.php?f=93" target="_blank" class="postlink"&gt;RSS Feed for any new apps that get added to Appulo.us[/ur]&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.themonkeysball.com/" target="_blank" class="postlink"&gt;http://www.themonkeysball.com/&lt;/a&gt; &lt;span style="color: red;"&gt;Site destroyed by Apple's lawyers... oh well&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://themobileapps.com/" target="_blank" class="postlink"&gt;http://themobileapps.com/&lt;/a&gt; &lt;span style="color: yellow;"&gt;Site has not been updated for a couple of months&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.4shared.com/dir/8492007/8d1e19ab/sharing.html" target="_blank" class="postlink"&gt;http://www.4shared.com/dir/8492007/8d1e19ab/sharing.html&lt;/a&gt;&lt;span style="color: red;"&gt;Oct 1 - Site is down&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.freewebs.com/iauzy/crackedipas.htm" target="_blank" class="postlink"&gt;http://www.freewebs.com/iauzy/crackedipas.htm&lt;/a&gt;&lt;span style="color: red;"&gt;Dec 9 - Site shut down&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sendspace.com/folder/l1rq06" target="_blank" class="postlink"&gt;http://www.sendspace.com/folder/l1rq06&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Piratebay will often have large archives of them.&lt;br /&gt;&lt;br /&gt;In addition, two things that I love about a Jailbroken phone:  &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.junefabrics.com/iphone/" target="_blank" class="postlink"&gt;PdaNet&lt;/a&gt; - Free tethering -- use AT&amp;amp;T's internet connection for free on your laptop!&lt;br /&gt;&lt;a href="http://jamesisbored.com/iphone/adblock" target="_blank" class="postlink"&gt;Adblock for Safari.&lt;/a&gt; - You'll need Cyberduck (free) but it's an easy drag and drop step.&lt;br /&gt;&lt;br /&gt;If you have any links or criticisms of this post, please reply here.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: green;"&gt;New!&lt;/span&gt;PdaNet is now crippleware after two weeks.  To get the full version of many jailbroken apps do this:&lt;br /&gt;1. Open Cydia and Add Source: &lt;a href="http://xsellize.com/cydia/" target="_blank"&gt;http://xsellize.com/cydia/&lt;/a&gt;&lt;br /&gt;2. Install PdaNet 1.4.0 from the source you just added.&lt;br /&gt;3. You now have PdaNet 1.4.0 cracked &lt;img src="http://beta.macnbits.com/forum/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;In general, any information on warezing Jailbroken apps can be found here:&lt;br /&gt;&lt;a href="http://www.xsellize.com/forumdisplay.php?f=47" target="_blank"&gt;http://www.xsellize.com/forumdisplay.php?f=47&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hackulo.us/forums/index.php?showtopic=5041&amp;amp;st=60" target="_blank" class="postlink"&gt;Installing cracked apps directly on to your iPhone without having to use a computer&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-2306534910772730455?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/2306534910772730455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=2306534910772730455' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/2306534910772730455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/2306534910772730455'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2009/02/jailbreaking-your-iphone-for-dummies.html' title='Jailbreaking your iPhone for Dummies.'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-6017632719352346982</id><published>2007-11-16T10:48:00.000-08:00</published><updated>2007-11-16T10:49:13.847-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 42 - Pointers</title><content type='html'>&lt;h2&gt;Tutorial 42 - Pointers&lt;/h2&gt;   &lt;strong&gt;Pointers&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Ah, the wonderful world of pointers! Have you ever read about them or heard about them? The cause of programmer's nightmares all around the world. Even if PPL allow you to live without them, you still can use them to expand the power of your programs.&lt;br /&gt;&lt;br /&gt;Lets start with string pointers. Strings in PPL are stored pretty much like any other strings in other programming languages. Each byte represents a character. If you define a string, you can later on access its pointer value and go to a specific character by adding a value to it.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;s$ = "HELLO WORLD";&lt;br /&gt;i$ = &amp;amp;s$ + 3;&lt;br /&gt;ShowMessage(@i$);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The following code will display "LO WORLD" in a dialog. The value of variable i$ will be the pointer location of s$ in memory plus the value 3. Now i$ is a simple numerical variable, nothing more. We need to convert it back into a string. The @ operator is used to convert a numerical value into memory content.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-6017632719352346982?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/6017632719352346982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=6017632719352346982' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6017632719352346982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6017632719352346982'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-42-pointers.html' title='Tutorial 42 - Pointers'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-4192634628961984922</id><published>2007-11-16T10:47:00.000-08:00</published><updated>2007-11-16T10:48:27.665-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 41 - The physic engine</title><content type='html'>&lt;h2&gt;Tutorial 41 - The physic engine&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;strong&gt;The physic engine&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Our world is made of physic, everything is physic! Gravity pushes every object to the ground, every step we take involves friction with the surface our shoes come in contact with, wind blows and pushes leaves around and balls bounces from the ground and walls with different elasticity. When applied to a game, physics can add more realism and can add possibilities you thought were too hard to code. PPL comes with a 2D automated physic engine. When I say automated I mean it, you only need to set the mass of a sprite, set the global gravity and the physic will take care of pushing the object down. Objects can bounce back and forth by simply assigning an elasticity value. The physic is far from an advanced one that supports object deformation on collision and such but it can do a very good job simplifying your life while developing your game.&lt;br /&gt;Lets first start by reviewing the principal functions used by the physic engine:&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;br /&gt;SetSpriteMass(Sprite$, Mass);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The mass is a percentage value that is compared to the other sprites with physic. A sprite with 0.5 mass will weight half the weight of a sprite with a mass of 1.0.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;SetSpriteElasticity(Sprite$, Elasticity);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The elasticity value is a percentage compared to the other sprites. The bigger the value the more rebound will be applied when the sprite collides with another sprite.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;SetSpriteFriction(Sprite$, Friction);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The friction is the amount of friction in percentage applied to reduce the movement speed of the sprite when it collides with another sprite.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;SetGravity(Gravity);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This function will set the global gravity of the sprite engine, the value of the gravity is applied to the sprites movement speed each cycle. Default gravity is around 0.1.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;SetFriction(Friction);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Set the global friction that is applied to sprite's movement speed each cycle. The default friction value is 0.00025.&lt;br /&gt;&lt;br /&gt;There are options that need to be activated for the physic engine to consider moving the objects around. The first one is the SO_KINETIC to active the physic engine on the sprite itself. The second one is the SO_BOUNCE, it will make the sprite bounce around from other sprites. The bounce force is calculated based on the Elasticity of the sprite. Sprites must have the SO_COLLIDECHECK option set to them for bouncing to occur. You can have your sprites bounce from the screen edges by setting the SO_BORDER option. Most of the sprites you will want to bounce around will be of oval shape, you will want to set the SO_OVAL option for the physic engine to bounce the sprite like a real oval shaped object.&lt;br /&gt;&lt;br /&gt;Lets review the bounce.ppl demo that comes with PPL. This demo involves 5 basketball balls bouncing around from the screen edges and from each other. In this example we create 5 sprites with the basketball ball image and the we set the options of each sprite to oval shape, collision checking, pixel checking and border collision check.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;// Set global gravity.&lt;br /&gt;SetGravity(0.1);&lt;br /&gt;// Set global friction.&lt;br /&gt;SetFriction(0.005);&lt;br /&gt;&lt;br /&gt;i$ = 0;&lt;br /&gt;while (i$ &lt; 5)&lt;br /&gt;  // Load ball sprite from disk.&lt;br /&gt;  s$ = loadsprite(AppPath$ + "ball.bmp", G_RGB(255, 0, 255), 1, 0, NULL);&lt;br /&gt;&lt;br /&gt;  // Activate pixel perfect collision detection.&lt;br /&gt;  AddSpriteOption(s$, SO_OVAL | SO_CHECKCOLLIDE | SO_PIXELCHECK | SO_BORDER | SO_KINETIC);&lt;br /&gt;&lt;br /&gt;  // Make the balls collide and never go over another.&lt;br /&gt;  SetSpriteCollide(s$, "BALL");&lt;br /&gt;  SetSpriteId(s$, "BALL");&lt;br /&gt;&lt;br /&gt;  repeat&lt;br /&gt;    MoveSprite(s$, random(g_width - 40), random(64));&lt;br /&gt;    ProcessSprites(1, 0);&lt;br /&gt;  until (Collide(s$, SpriteX(s$), SpriteY(s$), nx$, ny$) == NULL);&lt;br /&gt;&lt;br /&gt;  // Set ball elasticity.&lt;br /&gt;  SetSpriteElasticity(s$, 0.01);&lt;br /&gt;&lt;br /&gt;  // Set some friction when the balls collide.&lt;br /&gt;  SetSpriteFriction(s$, 0.01);&lt;br /&gt;&lt;br /&gt;  // Set sprite's weight.&lt;br /&gt;  SetSpriteMass(s$, 0.5);&lt;br /&gt;&lt;br /&gt;  // Set the maximum velocity to 10 pixels.&lt;br /&gt;  SetSpriteVelLimits(s$, 0, 10);&lt;br /&gt;&lt;br /&gt;  i$++;&lt;br /&gt;end;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-4192634628961984922?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/4192634628961984922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=4192634628961984922' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/4192634628961984922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/4192634628961984922'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-41-physic-engine.html' title='Tutorial 41 - The physic engine'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-7038460903411678396</id><published>2007-11-16T10:46:00.001-08:00</published><updated>2007-11-16T10:46:51.486-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 40 - Form Options Quick Reference</title><content type='html'>&lt;h2&gt;Tutorial 40 - Form Options Quick Reference&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;strong&gt;Form Options Quick Reference (by Brad Manske)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Each of the options are listed below along with the effect that it has on the form.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Dialog Form&lt;/strong&gt;&lt;br /&gt;Default: Off&lt;br /&gt;When selected, the form will be created using a call to NewDlg to create the window. If not selected, then NewForm will be used to create the window if it is full screen, DefaultForm is selected in styles and there are no extended styles. If these conditions are not met, then the NewFormEx function will be used to create the window.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Generate Library&lt;/strong&gt;&lt;br /&gt;Default: Off&lt;br /&gt;When selected, the form will create PPL source code that can be included in with a larger project. If not selected, the form will have a WinMain function indicating the entry point for the project. It is possible to create a stand alone program in a single form file with this option deselected.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Simplified Event Handling&lt;/strong&gt;&lt;br /&gt;Default: On&lt;br /&gt;When selected, PPL will route the windows messages to the correct handler functions. If not selected, then the more traditional case table type logic is needed to decode and process the messages sent to the handler functions.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Extended Event Code&lt;/strong&gt;&lt;br /&gt;Default: On&lt;br /&gt;When selected, PPL will include code in the Simplified Event Handlers to do some of the more&lt;br /&gt;common decoding of the windows messages. If not selected, the code will be left off. To find the included code look in SWAPI.PPL for the #define for HandleEventParms.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Use Namespace&lt;/strong&gt;&lt;br /&gt;Default: On&lt;br /&gt;When selected, the form will include the #NameSpace command in the generated PPL code. This will force global variables and controls into their own namespace to avoid items named the same on multiple forms. If not selected, then all global variables and controls will be placed into the global NameSpace.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-7038460903411678396?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/7038460903411678396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=7038460903411678396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7038460903411678396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7038460903411678396'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-40-form-options-quick.html' title='Tutorial 40 - Form Options Quick Reference'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-3740278286183641248</id><published>2007-11-16T10:45:00.000-08:00</published><updated>2007-11-16T10:46:18.974-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 39 - PPL Assembler</title><content type='html'>&lt;h2&gt;Tutorial 39 - PPL Assembler&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;strong&gt;PASM from the Beginning (by Brad Manske)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;"PASM can wait till after 1.0" was my reaction when I heard the plans to include a cross platform assembler with PPL. While it was not a lot of code, the complexity was way up there. So that it could run on multiple processors it had to be a virtual processor that was compiled to. There were 36 addressing modes for 22 assembly instructions that would potentially compile to a series of instructions for 2 different processors. The project required complex and intimate knowledge of the processors and the testing challenge was not going to be easy.&lt;br /&gt;&lt;br /&gt;My earliest e-mail on this project (that I kept) is dated the 20th of March 2004. We had already worked together for almost 2 years when the topic came up. There is no backing down from a complex technical challenge, so even though the pressure to release 1.0 was high, PASM went forward. This article will introduce you to PASM and it just may be the raw speed boost your code needs. I will start off with some explanation for the people who have not had much exposure to assembly language. Assembly is a text representation of the 1s and 0s that the computer actually executes. For example:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;X$ = 10;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This would be an instruction to move the value 10 into the variable X$:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;move x, 10&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sound simple? Well, yes, if the processor supports moving a value into memory without going through a register first. And if the value fits in a 32 bit register (Windows CE requires a 32 bit processor). And, etc...&lt;br /&gt;&lt;br /&gt;This is the reason that PASM uses a virtual processor internally. We couldn't guarantee that these conditions would be met for each processor since all of the code written for PASM must run on all of our supported platforms.&lt;br /&gt;&lt;br /&gt;The PASM virtual processor is made up of 4 general purpose registers named R0, R1, R2 and R3. There are more specialized registers like the Stack Pointer (SP) and the Stack Frame (SF). The Arithmetic and Logic unit of our processor is a simplified RISC (Reduced Instruction Set Computing) like design. The instruction set consists of about 22 different assembly operations. This isn't much compared to the hundreds of instructions supported by some processors, but there are 36 addressing modes to offset the simplicity of the instruction set.Here is a quick look at the MOV instruction and the addressing modes that it supports. For 32 bit values:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;mov Register, Value&lt;/strong&gt; move from Value to Register&lt;br /&gt;&lt;strong&gt;mov Absolute, Value&lt;/strong&gt; move from Value to Absolute address&lt;br /&gt;&lt;strong&gt;mov [Register], Value&lt;/strong&gt; move from Value to Indexed Register&lt;br /&gt;&lt;strong&gt;mov [Absolute], Value&lt;/strong&gt; move from Value to Indexed Absolute address&lt;br /&gt;&lt;strong&gt;mov Register, Register&lt;/strong&gt; move from Register to Register&lt;br /&gt;&lt;strong&gt;mov Register, [Register]&lt;/strong&gt; move from Indexed Register to Register&lt;br /&gt;&lt;strong&gt;mov [Register], Register&lt;/strong&gt; move from Register to Indexed Register&lt;br /&gt;&lt;strong&gt;mov [Register], [Register]&lt;/strong&gt; move from Indexed Register to Indexed Register&lt;br /&gt;&lt;strong&gt;mov Absolute, Register&lt;/strong&gt; move from Register to Absolute address&lt;br /&gt;&lt;strong&gt;mov [Absolute], Register&lt;/strong&gt; move from Register to Indexed Absolute address&lt;br /&gt;&lt;strong&gt;mov Register, [Register+offset]&lt;/strong&gt; move from Index+Offset Register to Register&lt;br /&gt;&lt;strong&gt;mov [Register+offset], Register&lt;/strong&gt; move from Register to Index+Offset Register&lt;br /&gt;&lt;strong&gt;mov [Register+offset], [Register+offset]&lt;/strong&gt; move from Index+Offset Register to Index+Offset Register&lt;br /&gt;&lt;strong&gt;mov Absolute+offset, Register&lt;/strong&gt; move from Register to Absolute+Offset address&lt;br /&gt;&lt;strong&gt;mov Absolute+offset, Value&lt;/strong&gt; move from Value to Absolute+Offset address&lt;br /&gt;&lt;strong&gt;mov [Absolute+offset], Register&lt;/strong&gt; move from Register to Index+Offset Absolute address&lt;br /&gt;&lt;strong&gt;mov [Absolute+offset], Value&lt;/strong&gt; move from Value to Index+Offset Absolute address&lt;br /&gt;&lt;strong&gt;mov [Register+offset], Value&lt;/strong&gt; move from Value to Index+Offset Register&lt;br /&gt;&lt;br /&gt;MOV also supports a size modifier for 8 bits (byte) and 16 bit (word) values:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;mov size Register, Register&lt;/strong&gt; move size from Register to Register&lt;br /&gt;&lt;strong&gt;mov size Register, [Register]&lt;/strong&gt; move size from Indexed Register to Register&lt;br /&gt;&lt;strong&gt;mov size [Register], Register&lt;/strong&gt; move size from Register to Indexed Register&lt;br /&gt;&lt;strong&gt;mov size [Register], [Register]&lt;/strong&gt; move size from Indexed Register to Indexed Register&lt;br /&gt;&lt;strong&gt;mov size Absolute, Register&lt;/strong&gt; move size from Register to Absolute address&lt;br /&gt;&lt;strong&gt;mov size Absolute, Value&lt;/strong&gt; move size from Value to Absolute address&lt;br /&gt;&lt;strong&gt;mov size [Absolute], Register&lt;/strong&gt; move size from Register to Indexed Absolute address&lt;br /&gt;&lt;strong&gt;mov size [Absolute], Value&lt;/strong&gt; move size from Value to Indexed Absolute address&lt;br /&gt;&lt;strong&gt;mov size Register, Value&lt;/strong&gt; move size from Value to Register&lt;br /&gt;&lt;strong&gt;mov size [Register], Value&lt;/strong&gt; move size from Value to Indexed Register&lt;br /&gt;&lt;strong&gt;mov size Register, [Register+offset]&lt;/strong&gt; move size from Index+Offset Register to Register&lt;br /&gt;&lt;strong&gt;mov size [Register+offset], Register&lt;/strong&gt; move size from Register to Index+Offset Register&lt;br /&gt;&lt;strong&gt;mov size [Register+offset], [Register+offset]&lt;/strong&gt; move size from Index+Offset Register to Index+Offset Register&lt;br /&gt;&lt;strong&gt;mov size Absolute+offset, Register&lt;/strong&gt; move size from Register to Absolute+Offset address&lt;br /&gt;&lt;strong&gt;mov size Absolute+offset, Value&lt;/strong&gt; move size from Value to Absolute+Offset address&lt;br /&gt;&lt;strong&gt;mov size [Absolute+offset], Register&lt;/strong&gt; move size from Register to Index+Offset Absolute address&lt;br /&gt;&lt;strong&gt;mov size [Absolute+offset], Value&lt;/strong&gt; move size from Value to Index+Offset Absolute address&lt;br /&gt;&lt;strong&gt;mov size [Register+offset], Value&lt;/strong&gt; move size from Value to Index+Offset Register&lt;br /&gt;&lt;br /&gt;A few quick note about the notation above. The brackets [] above mean that the value of the expression inside the brackets is the memory location that will be operated on. Register is a register R0 to R3 or one of the special registers. Absolute, is a number representing a specific memory location. Offset an integer value that allows you to adjust the value of the memory address operated on without the need to modify the base.&lt;br /&gt;Here is a very simple example:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#include "console.ppl"&lt;br /&gt;&lt;br /&gt;func WinMain;&lt;br /&gt;  InitConsole;&lt;br /&gt;  ShowConsole;&lt;br /&gt;&lt;br /&gt;  new(startVal$, tint);&lt;br /&gt;  new(endVal$, tint);&lt;br /&gt;&lt;br /&gt;  StartVal$ = 0;&lt;br /&gt;  EndVal$ = 0;&lt;br /&gt;&lt;br /&gt;  asmCall$ = asm(1024, );&lt;br /&gt;&lt;br /&gt;  callasm(asmCall$, 20, 30);&lt;br /&gt;&lt;br /&gt;  writeln("Test "+ startVal$ + ", "+ endVal$);&lt;br /&gt;&lt;br /&gt;  freeasm(asmCall$);&lt;br /&gt;&lt;br /&gt;  free(startVal$, endVal$);&lt;br /&gt;&lt;br /&gt;  return(true);&lt;br /&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you read my previous articles, you know that I'm a fan of using the console for my examples, so it should be no surprise that I first include the console. Next I declare some variables in the PPL memory space outside of PASM. Next is the assembly code followed by the CallASM instruction. Some values are written and the assembly code and variables are freed. When compiled, the call to ASM takes 2 arguments the first being the size of the byte buffer that holds the assembled code and the second is the string of assembly instructions. The buffer is specified in bytes and a multiplier is used on the buffer size depending on what you are doing.&lt;br /&gt;&lt;br /&gt;For example, by running your code under debug, it is possible to step through and break on assembly instructions. In order to do this, extra machine code instructions are inserted to support doing this so the buffer must be expanded. It also means that your code will execute slower under debug than it will in run mode. The buffer is created at run time and the assembler runs against the 2nd argument which is the text with all of the assembly instructions. So keep in mind that if you make a change to the assembly code, any errors will not be found until run time. It also means if you plan on using the assembler you may want&lt;br /&gt;to place your ASM instructions at startup and keep them for the duration of the program so that the code is not reassembled during the execution of your program when you really need the speed.&lt;br /&gt;&lt;br /&gt;The CallASM instruction invokes the code created in the buffer by the ASM command. CallASM can take additional arguments that will be passed into the assembly code as parameters. The parameters are placed into an AARGS$ array and the size of the array is placed into AARGSCOUNT$. Each of the parameters are treated as a 4 byte (32 bit) value. So the value of 20 is at [AARGS$] and the value of 30 is at [AARGS$+4].&lt;br /&gt;&lt;br /&gt;The line ":main" above indicates the entry point to your assembly code. This is a label and is used as the target in jump instructions. The line "#DEASM" above instructs the ASM instruction place the actual assembly instruction for your processor to be placed into the DebugLog file. This does take extra time, so it shouldn't be used in production programs. The #debugoff pragma can be used to disable this for the entire project. Here is a simple example when using #DEASM. The 2 lines from above:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;mov StartVal$, 1&lt;br /&gt;mov EndVal$, 2&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;On Intel processors are translated into:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;mov edi, D45B28h(STARTVAL$)&lt;br /&gt;mov [edi], 01h&lt;br /&gt;mov edi, D45B98h(ENDVAL$)&lt;br /&gt;mov [edi], 02h&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;On Arm processors are translated into:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ldr r9, 34C9B0h(STARTVAL$)&lt;br /&gt;ldr r10, #01h&lt;br /&gt;str r10, [r9]&lt;br /&gt;str r10, #01h&lt;br /&gt;ldr r9, 34CA40h(ENDVAL$)&lt;br /&gt;ldr r10, #02h&lt;br /&gt;str r10, [r9]&lt;br /&gt;str r10, #02h&lt;/span&gt;&lt;br /&gt;The lines from the PASM example above:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;savesp&lt;br /&gt;pplpush [AARGSCOUNT$]&lt;br /&gt;ppl showmessage&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Show an example of saving the position on the stack pushing some arguments onto the stack where ppl can get to it then calling a PPL function. Here is another example:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;savesp&lt;br /&gt;pplpushstr tstStr1$&lt;br /&gt;pplpushstr tstStr2$&lt;br /&gt;pplpushstr tstStr3$&lt;br /&gt;ppl concat&lt;br /&gt;pplpull&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In this example, the stack pointer is saved, all of the required arguments are placed onto the stack and the PPL concat function is called to concatenate the strings together. The stack is restored to its previous state after the PPL call, then the address of the new string is pulled from the stack. The new string is created in a new memory space that the garbage collector will automatically clean up from. I'll leave you with one more example. This example demonstrates the usage of Jump instructions and the use of an assembly procedure. The entry point is at ":main". It tests the number of arguments passed into the assembly code to see if there is only one. In this case there is only one so the value of 20 is passed to the function "!asmCalc". As in high level code, the string in parenthesis becomes a variable for the function. The "Var FinSum" instructions declares a local var for use within the function. The function then calculates the Fibonacci series on the number passed to it adding all of the numbers from n + (n-1) + ... + 2 + 1.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#include "console.ppl"&lt;br /&gt;&lt;br /&gt;func WinMain;&lt;br /&gt;  InitConsole;&lt;br /&gt;  ShowConsole;&lt;br /&gt;&lt;br /&gt;  new(startVal$, tint);&lt;br /&gt;  new(endVal$, tint);&lt;br /&gt;&lt;br /&gt;asmFib$ = asm(1024, );&lt;br /&gt;&lt;br /&gt;  t$ = tick;&lt;br /&gt;&lt;br /&gt;  callasm(asmFib$, 20);&lt;br /&gt;&lt;br /&gt;  writeln("Fibbon("+ startVal$ + ")="+ endVal$ + " time =" + (tick - t$));&lt;br /&gt;&lt;br /&gt;  freeasm(asmFib$);&lt;br /&gt;&lt;br /&gt;  free(startVal$, endVal$);&lt;br /&gt;&lt;br /&gt;  return(true);&lt;br /&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Play with PASM a while and let us know what you think in the Forums. In the next newsletter, I will address some more advanced examples.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-3740278286183641248?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/3740278286183641248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=3740278286183641248' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/3740278286183641248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/3740278286183641248'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-39-ppl-assembler.html' title='Tutorial 39 - PPL Assembler'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-4539531166267154322</id><published>2007-11-16T10:44:00.002-08:00</published><updated>2007-11-16T10:45:21.366-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='dav'/><title type='text'>Tutorial 38 - Encryption strings easily.</title><content type='html'>&lt;h2&gt;Tutorial 38 - Encryption strings easily.&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;strong&gt;Encrypting strings in PPL.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;What if you want to protect a file from sneaky eyes? The best solution is to encrypt the file using a very strong password that only you know about. PPL comes with a nice function called Encrypt() that can do this for you very easily.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;s$ = "HELLO WORLD!";&lt;br /&gt;Encrypt(s$, -1, "MYKEY", True);&lt;br /&gt;ShowMessage(s$);&lt;br /&gt;Encrypt(s$, -1, "MYKEY", False);&lt;br /&gt;ShowMessage(s$);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;In the following example we encrypt the string “HELLO WORLD!” using an encryption algorythm that uses the key “MYKEY” to encode the result string. The last parameter of the Encryt() function specify if we are encrypting or decrypting the string, true means encryt and false means decrypt. It is always a good idea idea never to leave a key as a regular string in your code even though the .ppc file that PPL generates is encrypted and compressed, it can be easier for a hacker to decode. Try to build your key string using code with mathematical code if possible.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-4539531166267154322?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/4539531166267154322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=4539531166267154322' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/4539531166267154322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/4539531166267154322'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-38-encryption-strings-easily.html' title='Tutorial 38 - Encryption strings easily.'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-7770837790836376565</id><published>2007-11-16T10:44:00.001-08:00</published><updated>2007-11-16T10:44:49.433-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 37 - Compressing strings in PPL.</title><content type='html'>&lt;h2&gt;Tutorial 37 - Compressing strings in PPL.&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;strong&gt;Compressing strings.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The Pro version of PPL comes fully loaded with different compression and decompression methods from two simple functions: Compress() and UnCompress(). Here are the different compression methods supported by PPL:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;_RLE&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;RLE, or Run Length Encoding, is a very simple method for lossless compression. It simply replaces repeated bytes with a short description of which byte to repeat, and how many times to repeat it.&lt;br /&gt;&lt;br /&gt;Though simple and obviously very inefficient fore general purpose compression, it can be very useful at times (it is used in JPEG compression, for instance).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;_HUFFMAN&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Huffman encoding is one of the best methods for lossless compression. It replaces each symbol with an alternate binary representation, whose length is determined by the frequency of the particular symbol.&lt;br /&gt;&lt;br /&gt;Common symbols are represented by few bits, while uncommon symbols are represented by many bits.&lt;br /&gt;&lt;br /&gt;The Huffman algorithm is optimal in the sense that changing any of the binary codings of any of the symbols will result in a less compact representation. However, it does not deal with the ordering or repetition of symbols or sequences of symbols.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;_LZ&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;There are many different variants of the Lempel-Ziv compression scheme. The Basic Compression Library has a fairly straight forward implementation of the LZ77 algorithm (Lempel-Ziv, 1977) that performs very well, while the source code should be quite easy to follow. The LZ coder can be used for general purpose compression, and performs exceptionally well for compressing text. It can also be used in combination with the provided RLE and Huffman coders (in the order: RLE, LZ, Huffman) to gain some extra compression in most situations.&lt;br /&gt;&lt;br /&gt;Lets take the following code:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;in$ = LoadStr(AppPath$+ “MyFile.txt”, insize$);&lt;br /&gt;New(out$, insize$ * 2);&lt;br /&gt;outsize$ = Compress(_RLE, in$, out$, insize$);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This code will load file MyFile.txt into variable in$, return the size in bytes in variable insize$. We then need to create an output buffer that is at least equal or preferably greater that the original input buffer. We then apply the RLE compression method to in$ and outputting the result in the out$ variable returning the new size of the out$ variable in outsize$.&lt;br /&gt;&lt;br /&gt;You can then decompress the out$ buffer to a new newin$ buffer with the following:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;New(newin$, outsize$ * 2);&lt;br /&gt;newinsize$ = Compress(_RLE, out$, newinsize$, outsize$);&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-7770837790836376565?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/7770837790836376565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=7770837790836376565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7770837790836376565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7770837790836376565'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-37-compressing-strings-in-ppl.html' title='Tutorial 37 - Compressing strings in PPL.'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-8071388600747713423</id><published>2007-11-16T10:43:00.003-08:00</published><updated>2007-11-16T10:44:18.931-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 36 - Regular Expressions in PPL</title><content type='html'>&lt;h2&gt;Tutorial 36 - Regular Expressions in PPL&lt;/h2&gt;   &lt;div class="contentbody"&gt;Regular Expressions (Regex):&lt;br /&gt;&lt;br /&gt;From &lt;a href="http://www.regular-expres%3cb%3e%3c/b%3Esions.info/"&gt;www.regular-expressions.info&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;“A regular expression (regex or regexp for short) is a special text string for describing a search pattern. You can think of regular expressions as wildcards on steroids. You are probably familiar with wildcard notations such as *.txt to find all text files in a file manager. The regex equivalent is .*\.txt . But you can do much more with regular expressions. In a text editor like EditPad Pro or a specialized text processing tool like PowerGREP, you could use the regular expression \b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]\b to search for an email address. Any email address, to be exact. A very similar regular expression (replace the first \b with ^ and the last one with $) can be used by a programmer to check if the user entered a properly formatted email address. In just one line of code, whether that code is written in Perl, PHP, Java, a .NET language or a multitude of other languages.”&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;PPL supports a variety of expressions like:&lt;br /&gt;&lt;br /&gt;\Quote the next metacharacter&lt;br /&gt;^ Match the beginning of the string&lt;br /&gt;. Match any character&lt;br /&gt;$ Match the end of the string&lt;br /&gt;| Alternation&lt;br /&gt;() Grouping (creates a capture)&lt;br /&gt;[] Character class&lt;br /&gt;&lt;br /&gt;==GREEDY CLOSURES==&lt;br /&gt;&lt;br /&gt;* Match 0 or more times&lt;br /&gt;+ Match 1 or more times&lt;br /&gt;? Match 1 or 0 times&lt;br /&gt;Match at least n times&lt;br /&gt;Match at least n but not more than m times&lt;br /&gt;&lt;br /&gt;==ESCAPE CHARACTERS==&lt;br /&gt;&lt;br /&gt;\t tab (HT, TAB)&lt;br /&gt;\n newline (LF, NL)&lt;br /&gt;\r return (CR)&lt;br /&gt;\f form feed (FF)&lt;br /&gt;&lt;br /&gt;==PREDEFINED CLASSES==&lt;br /&gt;&lt;br /&gt;\l lowercase next char&lt;br /&gt;\u uppercase next char&lt;br /&gt;\a letters&lt;br /&gt;\A non letters&lt;br /&gt;\w alphanimeric [0-9a-zA-Z]&lt;br /&gt;\W non alphanimeric&lt;br /&gt;\s space&lt;br /&gt;\S non space&lt;br /&gt;\d digits&lt;br /&gt;\D non nondigits&lt;br /&gt;\x exadecimal digits&lt;br /&gt;\X non exadecimal digits&lt;br /&gt;\c control charactrs&lt;br /&gt;\C non control charactrs&lt;br /&gt;\p punctation&lt;br /&gt;\P non punctation&lt;br /&gt;&lt;br /&gt;To search a string using regular expression in PPL you will use the Search() function. You can also make sure that the string is an exact match of the regular expression you are providing with the Match() function.&lt;br /&gt;&lt;br /&gt;Let's take the following example:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;string$ = "Bill Clinton";&lt;br /&gt;expr$ = "^(Bill|George|Renald) (Clinton|Bush|Reagan)$";&lt;br /&gt;Search(expr$, string$, b$, e$);&lt;br /&gt;ShowMessage(b$ + "," + e$);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The expr$ variable contains an expression that says, if the first word is either Bill, George or Renald and that the string ends with Clinton, Bush or Reagan, we have a match. “Bill Clinton” will be the beginning of our result string, b$ and “” will be our ending string e$.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;i$ = 0;&lt;br /&gt;while(i$ &lt;= subexpcount - 1)&lt;br /&gt;  subexp(string$, i$, begin$, len$);&lt;br /&gt;  ShowMessage("SubExp " + i$ + " = " + begin$ + "," + len$);&lt;br /&gt;  i$++;&lt;br /&gt;end;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;In the previous example, we check each sub expression to see what matched in the string string$ and where it started and how many characters the sub expression took from string$.&lt;br /&gt;Sub expression 0 will return “Bill Clinton” for a length of 12 because it do the whole expression. Sub expression 1 will return “Bill Clinton” but for 4 characters only, the first sub expression “^(Bill|George|Renald)” is analyzed. Sub expression 2 will return “Clinton” for 7 characters, the second sub expression “(Clinton|Bush|Reagan)$” is analyzed.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-8071388600747713423?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/8071388600747713423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=8071388600747713423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8071388600747713423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8071388600747713423'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-36-regular-expressions-in-ppl_16.html' title='Tutorial 36 - Regular Expressions in PPL'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-4363385620962534986</id><published>2007-11-16T10:43:00.002-08:00</published><updated>2007-11-16T10:44:10.754-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'></title><content type='html'>&lt;h2&gt;Tutorial 36 - Regular Expressions in PPL&lt;/h2&gt;   &lt;div class="contentbody"&gt;Regular Expressions (Regex):&lt;br /&gt;&lt;br /&gt;From &lt;a href="http://www.regular-expres%3cb%3e%3c/b%3Esions.info/"&gt;www.regular-expressions.info&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;“A regular expression (regex or regexp for short) is a special text string for describing a search pattern. You can think of regular expressions as wildcards on steroids. You are probably familiar with wildcard notations such as *.txt to find all text files in a file manager. The regex equivalent is .*\.txt . But you can do much more with regular expressions. In a text editor like EditPad Pro or a specialized text processing tool like PowerGREP, you could use the regular expression \b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]\b to search for an email address. Any email address, to be exact. A very similar regular expression (replace the first \b with ^ and the last one with $) can be used by a programmer to check if the user entered a properly formatted email address. In just one line of code, whether that code is written in Perl, PHP, Java, a .NET language or a multitude of other languages.”&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;PPL supports a variety of expressions like:&lt;br /&gt;&lt;br /&gt;\Quote the next metacharacter&lt;br /&gt;^ Match the beginning of the string&lt;br /&gt;. Match any character&lt;br /&gt;$ Match the end of the string&lt;br /&gt;| Alternation&lt;br /&gt;() Grouping (creates a capture)&lt;br /&gt;[] Character class&lt;br /&gt;&lt;br /&gt;==GREEDY CLOSURES==&lt;br /&gt;&lt;br /&gt;* Match 0 or more times&lt;br /&gt;+ Match 1 or more times&lt;br /&gt;? Match 1 or 0 times&lt;br /&gt;Match at least n times&lt;br /&gt;Match at least n but not more than m times&lt;br /&gt;&lt;br /&gt;==ESCAPE CHARACTERS==&lt;br /&gt;&lt;br /&gt;\t tab (HT, TAB)&lt;br /&gt;\n newline (LF, NL)&lt;br /&gt;\r return (CR)&lt;br /&gt;\f form feed (FF)&lt;br /&gt;&lt;br /&gt;==PREDEFINED CLASSES==&lt;br /&gt;&lt;br /&gt;\l lowercase next char&lt;br /&gt;\u uppercase next char&lt;br /&gt;\a letters&lt;br /&gt;\A non letters&lt;br /&gt;\w alphanimeric [0-9a-zA-Z]&lt;br /&gt;\W non alphanimeric&lt;br /&gt;\s space&lt;br /&gt;\S non space&lt;br /&gt;\d digits&lt;br /&gt;\D non nondigits&lt;br /&gt;\x exadecimal digits&lt;br /&gt;\X non exadecimal digits&lt;br /&gt;\c control charactrs&lt;br /&gt;\C non control charactrs&lt;br /&gt;\p punctation&lt;br /&gt;\P non punctation&lt;br /&gt;&lt;br /&gt;To search a string using regular expression in PPL you will use the Search() function. You can also make sure that the string is an exact match of the regular expression you are providing with the Match() function.&lt;br /&gt;&lt;br /&gt;Let's take the following example:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;string$ = "Bill Clinton";&lt;br /&gt;expr$ = "^(Bill|George|Renald) (Clinton|Bush|Reagan)$";&lt;br /&gt;Search(expr$, string$, b$, e$);&lt;br /&gt;ShowMessage(b$ + "," + e$);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The expr$ variable contains an expression that says, if the first word is either Bill, George or Renald and that the string ends with Clinton, Bush or Reagan, we have a match. “Bill Clinton” will be the beginning of our result string, b$ and “” will be our ending string e$.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;i$ = 0;&lt;br /&gt;while(i$ &lt;= subexpcount - 1)&lt;br /&gt;  subexp(string$, i$, begin$, len$);&lt;br /&gt;  ShowMessage("SubExp " + i$ + " = " + begin$ + "," + len$);&lt;br /&gt;  i$++;&lt;br /&gt;end;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;In the previous example, we check each sub expression to see what matched in the string string$ and where it started and how many characters the sub expression took from string$.&lt;br /&gt;Sub expression 0 will return “Bill Clinton” for a length of 12 because it do the whole expression. Sub expression 1 will return “Bill Clinton” but for 4 characters only, the first sub expression “^(Bill|George|Renald)” is analyzed. Sub expression 2 will return “Clinton” for 7 characters, the second sub expression “(Clinton|Bush|Reagan)$” is analyzed.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-4363385620962534986?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/4363385620962534986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=4363385620962534986' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/4363385620962534986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/4363385620962534986'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-36-regular-expressions-in-ppl.html' title=''/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-2405590346542847592</id><published>2007-11-16T10:43:00.001-08:00</published><updated>2007-11-16T10:43:37.211-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 35 - Structures in Linked-Lists</title><content type='html'>&lt;h2&gt;Tutorial 35 - Structures in Linked-Lists&lt;/h2&gt;   &lt;div class="contentbody"&gt;Structures in Linked-Lists&lt;br /&gt;&lt;br /&gt;Linked-lists are very powerful and can allow for very complicated data storage. Now let's see how it possible to store a different structure type inside each list node.First we need to create our list node:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;List(l$);&lt;br /&gt;Add(l$);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;We now have one list node in l$ and our current internal pointer is placed on that first node.&lt;br /&gt;&lt;br /&gt;We can now define the variable type like we would with any other variable:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;struct(l$, “a”, “b”);&lt;br /&gt;l.a$ = 10;&lt;br /&gt;l.b$ = 20;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;We can now add a new node and store another structure into it:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Add(l$);&lt;br /&gt;struct(l$, “c”, “d”);&lt;br /&gt;l.c$ = 30;&lt;br /&gt;l.d$ = 40;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Now let's iterate through the list and output the structure's element values:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ForEach(l$)&lt;br /&gt;  if (Lpos(l$) == 0)&lt;br /&gt;    ShowMessage(l.a$);&lt;br /&gt;    ShowMessage(l.b$);&lt;br /&gt;  else if (Lpos(l$) == 1)&lt;br /&gt;    ShowMessage(l.c$);&lt;br /&gt;    ShowMessage(l.d$);&lt;br /&gt;  end;&lt;br /&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Lpos() function returns the current pointer position of the list always starting with 0.&lt;br /&gt;&lt;br /&gt;Imagine the possibilities offered by such flexibility.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-2405590346542847592?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/2405590346542847592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=2405590346542847592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/2405590346542847592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/2405590346542847592'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-35-structures-in-linked-lists.html' title='Tutorial 35 - Structures in Linked-Lists'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-7061884866130113320</id><published>2007-11-16T10:42:00.001-08:00</published><updated>2007-11-16T10:42:52.499-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 34 - Linked-lists</title><content type='html'>&lt;h2&gt;Tutorial 34 - Linked-lists&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;strong&gt;Linked-Lists&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Finally a chance to talk about the linked-lists. You have probably heard or learnt about them in school while studying C or maybe you've read about them on the internet or a magazine.&lt;br /&gt;&lt;br /&gt;Here is a great explanation from the great wikipedia.com:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;“In computer science, a linked list is one of the fundamental data structures used in computer programming. It consists of a sequence of nodes, each containing arbitrary data fields and one or two references ("links") pointing to the next and/or previous nodes. A linked list is a self-referential datatype because it contains a pointer or link to another data of the same type. Linked lists permit insertion and removal of nodes at any point in the list in constant time, but do not allow random access.”&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;In PPL linked-lists variables are extremely powerful and versatile. In each node you can have a different type of variable, structures or arrays. This opens up unlimited data storage in memory that is simply unmatched.&lt;br /&gt;&lt;br /&gt;To create a list variable, there many ways, here is how you declare a list variable and how you add nodes to it:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;List(l$);&lt;br /&gt;Add(l$, 1, 2, 3, 4, 5);&lt;br /&gt;Add(l$, “A”, “B”, “C”, “D”);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This new linked-list variable now contains 9 nodes with different values and types. Let's see how you can move through the nodes like other languages would allow you to:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;First(l$);&lt;br /&gt;while (1 == 1)&lt;br /&gt;  ShowMessage(l$);&lt;br /&gt;  if (Next(l$) == false)&lt;br /&gt;    break;&lt;br /&gt;  end;&lt;br /&gt;end;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Here is how we iterate through the list in reverse order:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Last(l$);&lt;br /&gt;while (1 == 1)&lt;br /&gt;  ShowMessage(l$);&lt;br /&gt;  if (Prev(l$) == false)&lt;br /&gt;    break;&lt;br /&gt;  end;&lt;br /&gt;end;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The First() function moves the list internal pointer to the first node, Next() moves to the next node returning true if succeeded or false is past the end of the node list. The Last() function moves the internal list pointer to the last node in the list and the Prev() function moves to the previous node.&lt;br /&gt;&lt;br /&gt;In PPL you can use the ForEach() statement to iterate through a list, an array, a structure or a matrix type variable:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ForEach(l$)&lt;br /&gt;  ShowMessage(l$);&lt;br /&gt;end;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ForEachRev(l$)&lt;br /&gt;  ShowMessage(l$);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;If you need to store the list node value into another variable, you can place a second variable as a target in the ForEach() statement:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ForEach(l$, v$)&lt;br /&gt;  ShowMessage(v$);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Let's see how PPL can access nodes at random order, PPL can access list's nodes just like regular arrays:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ShowMessage(l$[0]);  // display 1&lt;br /&gt;ShowMessage(l$[5]);  // display A&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;How do we go to a specific node position? Simple, by using the Goto() function. How do we know what node is the current one? Use the Lpos() function. How many nodes are in the list? Use the Count() function.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Goto(l$, 0); // Like First()&lt;br /&gt;ShowMessage(LPos(l$));&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Goto(l$, Count(l$)-1); // Like Last()&lt;br /&gt;ShowMessage(LPos(l$));&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;We can also move nodes around using the Lmove() function:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Lmove(l$, 3, 1); // This moves node 3 to node 1.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;You can also insert nodes using the Ins() function:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Ins(l$, 0, 0);  // Insert value 0 at node 0.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;To delete a node from the list, you can use the Del() function, if you want to empty the whole list, just use Empty().&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;First(l$); // Move to first node.&lt;br /&gt;Del(l$); // Deletes first node.&lt;br /&gt;Goto(l$, 5); // Goto 5th node.&lt;br /&gt;Del(l$); // Deletes 5th node.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Empty(l$); // Empty the whole list of all of its nodes.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;In the next tutorial we will see how you can store different variable types like arrays and structures inside a list node.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-7061884866130113320?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/7061884866130113320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=7061884866130113320' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7061884866130113320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7061884866130113320'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-34-linked-lists.html' title='Tutorial 34 - Linked-lists'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-5556433029638369525</id><published>2007-11-16T10:30:00.002-08:00</published><updated>2007-11-16T10:42:15.357-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 33 - Creating dynamic PPL libraries.</title><content type='html'>&lt;h2&gt;Tutorial 33 - Creating dynamic PPL libraries.&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;strong&gt;Creating dynamic PPL libraries.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;PPL comes with some very powerful functions that looks very plain simple at first but when you start using them, only then can you understand their real power.&lt;br /&gt;&lt;br /&gt;The Run() function does exactly what it is suppose to, it runs a PPL program. However you can run a program but keep it in memory to access its internal functions. To keep a program from being freed from memory after it is ran, you need to use the following as your main code.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;func WinMain&lt;br /&gt;  // Initialization code&lt;br /&gt;  return (true); // keep the program in memory&lt;br /&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You must also note, that since PPL comes with a built-in linker, all unused functions will be removed from the compiled code in memory. You must then force the functions not to be removed by the linker using the forcelink statement.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;forcelink func MyFunction (a$, b$)&lt;br /&gt;  // My function code&lt;br /&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Once all your functions, procedures and main code are all setup it is time to load the library in memory.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;MyLib$ = Run(AppPath$ + "MyLibrary");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;MyLib$ will contain the handle pointing to the compiled library. Notice that we didn't specify an extension to our file "MyLibrary". It is because PPL will detect if a .ppl or .ppc exists and use the right one. While developing your project leave the .ppl file there so that the code is recompiled as needed. When you distribute your program, just use the .ppc (compiled) file.&lt;br /&gt;&lt;br /&gt;Now it is time to call one of the library's function.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;result$ = Call(MyLib$, "MyFunction", 10, 20);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Call() function is very powerful, it can accept as many parameters as are needed by the called function or procedure and can return a value. In our case here, we call the function named "MyFunction" inside the program pointed to by MyLib$, passing the values 10 and 20.&lt;br /&gt;&lt;br /&gt;Once we are finished with the library, we can free it from memory using the KillApp() function. This will unload the program from memory.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;KillApp(MyLib$);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here is our library file &lt;strong&gt;MyLibrary.ppl&lt;/strong&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;forcelink func MyFunction(a$, b$)&lt;br /&gt;  return (a$ + b$);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;func WinMain&lt;br /&gt;  return (true);&lt;br /&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here is our main program file &lt;strong&gt;Main.ppl&lt;/strong&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;proc main&lt;br /&gt;  MyLib$ = Run(AppPath$ + "MyLibrary");&lt;br /&gt;  ShowMessage(Call(MyLib$, "MyFunction", 10, 20));  // Should show 30&lt;br /&gt;  KillApp(MyLib$);&lt;br /&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How do we use variables between libraries?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The first and easiest way would be to use global variables with the % sign.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;MyLibrary.ppl:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;forcelink func MyFunction&lt;br /&gt;  return (GlobalVar1% + GlobalVar2%);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;func WinMain&lt;br /&gt;  return (true);&lt;br /&gt;end;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;Main.ppl:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;proc main&lt;br /&gt;  GlobalVar1% = 10;&lt;br /&gt;  GlobalVar2% = 20;&lt;br /&gt;  MyLib$ = Run(AppPath$ + "MyLibrary");&lt;br /&gt;  ShowMessage(Call(MyLib$, "MyFunction"));  // Should show 30&lt;br /&gt;  KillApp(MyLib$);&lt;br /&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The second way to do this would be to have a DownloadVars and UploadVars procedures to transfer variables from and to a library.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;MyLibrary.ppl:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;forcelink proc DownloadVars(v1$, v2$);&lt;br /&gt;  LibVar1$ = v1$;&lt;br /&gt;  LibVar2$ = v2$;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;forcelink proc UploadVars$(v$)&lt;br /&gt;  v$ = result$;&lt;br /&gt;end;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;forcelink proc MyFunction&lt;br /&gt;  result$ = LibVar1$ + LibVar2$;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;func WinMain&lt;br /&gt;  Global(Result$);&lt;br /&gt;  return (true);&lt;br /&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Main.ppl:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;proc main&lt;br /&gt;  MyLib$ = Run(AppPath$ + "MyLibrary");&lt;br /&gt;  Call(MyLib$, "DownloadVars", 10, 20);&lt;br /&gt;  Call(MyLib$, "MyFunction");&lt;br /&gt;  Call(MyLib$, "UploadVars", &amp;amp;result$);&lt;br /&gt;  ShowMessage(result$);  // Should show 30.&lt;br /&gt;  KillApp(MyLib$);&lt;br /&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We hope this tutorial will give you a good idea on how to split your program into dynamic modules that you can load and unload when needed.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-5556433029638369525?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/5556433029638369525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=5556433029638369525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/5556433029638369525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/5556433029638369525'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-33-creating-dynamic-ppl.html' title='Tutorial 33 - Creating dynamic PPL libraries.'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-5942503694544590939</id><published>2007-11-16T10:30:00.001-08:00</published><updated>2007-11-16T10:30:44.146-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 32 - Multiple Windows</title><content type='html'>&lt;h2&gt;Tutorial 32 - Multiple Windows&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;Using Multiple Windows (by Brad Manske)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;I'd want to address issues dealing with the creation of multiple windows in your PPL programs. This is not a tutorial on creating windows. It is more a collection of tips for when you do create multiple windows. ShowMessage is the most simple way to create a second window. It is useful for debugging and simple informational pop-up windows.&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ShowMessage("Hello World" + #13#10 + "and Country");&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Take a look at the #13#10 added above. This is a Carriage Return/Line Feed added to produce a second line. By formatting the text, you can make this simple command very useful. The Windows MessageBox is the next step up in complexity. It allows you to set the owner, the text in the message box, the caption and some flags. In the example below, there is no owner, the question about saving, "Save" is placed into the caption bar, finally the "yes", "no" and "cancel" buttons are created inside the dialog box.&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;i$ = MessageBox(NULL, "Do you want to save " + FileName$ + "?", "Save", MB_YESNOCANCEL);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;It is pretty obvious from the names below, which buttons get created when you use these constants.&lt;/p&gt;&lt;p&gt;MB_OK&lt;br /&gt;MB_OKCANCEL&lt;br /&gt;MB_ABORTRETRYIGNORE&lt;br /&gt;MB_YESNOCANCEL&lt;br /&gt;MB_YESNO&lt;br /&gt;MB_RETRYCANCEL&lt;/p&gt;&lt;p&gt;You can also specify an Icon to be placed in the MessageBox from the list below. Simply use the "|" OR operator. &lt;/p&gt;&lt;p&gt;For example MB_YESNOCANCEL | MB_ICONQUESTION &lt;/p&gt;&lt;p&gt;MB_ICONHAND&lt;br /&gt;MB_ICONQUESTION&lt;br /&gt;MB_ICONEXCLAMATION&lt;br /&gt;MB_ICONASTERISK&lt;br /&gt;MB_ICONWARNING = MB_ICONEXCLAMATION&lt;br /&gt;MB_ICONERROR = MB_ICONHAND&lt;br /&gt;MB_ICONINFORMATION = MB_ICONASTERISK&lt;br /&gt;MB_ICONSTOP = MB_ICONHAND&lt;/p&gt;&lt;p&gt;MessageBox has additional features. Refer to MSDN for all of them. MessageBox can return a value based when the button is pressed. These values are defined in Dialog.PPL.&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#define IDOK 1&lt;br /&gt;#define IDCANCEL 2&lt;br /&gt;#define IDABORT 3&lt;br /&gt;#define IDRETRY 4&lt;br /&gt;#define IDIGNORE 5&lt;br /&gt;#define IDYES 6&lt;br /&gt;#define IDNO 7&lt;/span&gt;&lt;/p&gt;&lt;p&gt;I try to use these values when returning from displaying a dialog box. When using ShowModal to display a dialog any value less than 100 can be use for a button and it will return automatically, I try to avoid confusion and not change the meaning of the defined values. Going back to my MessageBox example from above, "Yes" and "No" are pretty clear answers, but what about "Cancel"? If you are asking to save the file in response to a command to exit the program, the program flow go like this. User selects the Exit menu item. The menu exit handler would send a&lt;br /&gt;WM_CLOSE command. Then you need a handler for the close event. In the Close event handler, call the MessageBox function and if you receive the "Cancel" ID, then return a FALSE from the OnClose event to stop the program from closing. The operation of the OnClose event is a little different in windows than it is in PPL. Windows will only send you an OnClose event when the entire application is closing. PPL allows you to open multiple windows per application and will send you an OnClose event for each window. This makes it easy in PPL to implement the ability to "Cancel" for each window. The next step is having more than one fully functional window for your application. For each new window that you create with the Form Editor, you need to:&lt;/p&gt;&lt;p&gt;• Select the Generate Library option in the Form -&gt; Options menu.&lt;br /&gt;• Change the form name so that a new windows class is created.&lt;br /&gt;• Give each control on the forms a unique name.&lt;br /&gt;• Give each control on the forms a unique ID. (required if getting the handles from the IDs)&lt;/p&gt;&lt;p&gt;For most forms you will probably want to select the "FormDefault" property. This property enables the use of the SIP (Soft Input Panel) on the PPC. You may open several windows for your program at the same time, then manage input by selectively showing the window that is needed. To Hide or Show a window use:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ShowWindow(FormHandle$, SW_HIDE); // or SW_SHOW&lt;/span&gt;&lt;/p&gt;&lt;p&gt;In creating more complex windows, you need to be careful about which styles are selected. The example below is how I added styles in the creation code for a window. This was necessary because the WS_EX_CaptionOKBtn style prevented my window from displaying on the PC as it is a PPC only style. So if your window refuses to display at all, you should review the styles that you have used and isolate the trouble-maker.&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ExStyles$ = GetWindowLong(SizeDlgHandle$, GWL_EXSTYLE);&lt;br /&gt;#ifdef _WIN32_WCE&lt;br /&gt;  // WS_EX_CAPTIONOKBTN is added here and not on the form because if added to&lt;br /&gt;  // the form then the form will not display on the PC&lt;br /&gt;  SetWindowLong(SizeDlgHandle$, GWL_EXSTYLE, ExStyles$ | WS_EX_CAPTIONOKBTN);&lt;br /&gt;#else&lt;br /&gt;  // WS_EX_TOOLWINDOW is added here for the same reason as above except it will&lt;br /&gt;  // not show on the PPC if present.&lt;br /&gt;  SetWindowLong(SizeDlgHandle$, GWL_EXSTYLE, ExStyles$ | WS_EX_TOOLWINDOW);&lt;br /&gt;#endif&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;I hope that this collection of tips has helped.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-5942503694544590939?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/5942503694544590939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=5942503694544590939' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/5942503694544590939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/5942503694544590939'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-32-multiple-windows.html' title='Tutorial 32 - Multiple Windows'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-6658424465020744128</id><published>2007-11-16T10:29:00.001-08:00</published><updated>2007-11-16T10:29:54.693-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 31 - Packages</title><content type='html'>&lt;h2&gt;Tutorial 31 - Packages&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;Packages Come In All Sizes (by Eric Pankoke)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;There will be very few instances where you will need to distribute an application without some sort of supporting file set. Whether you’re building a database system or a multimedia application, you might have one or more directories filled with extra material that you don’t necessarily want the user to see outside of the application itself. PPL provides a nice mechanism for this through the use of a Package file. A package file is a file that can contain one or more files of any type all bundled up together into one file with a .pkg extension. You can create a package file pro grammatically or you can use the Package Manager supplied with PPL to do so. Run the PPL console (it’s called PPL.EXE, and resides under the RUNTIME directory of your PPL install). From the File menu, select Package Manger. You can use this tool to view, create and manage package files. It’s pretty self explanatory, so I won’t really go into details here. Once you’ve created a package file, you’ll of course want to use it in your program. To open a package&lt;br /&gt;file, you simply call:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;handle$ = OpenPackage(AppPath$ + “mydata.pkg”, key$);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The first parameter is a full path and name to the file you wish to open, and the second parameter is the key used to unlock the package file. If a file with the name you’ve specified does not exist, OpenPackage will create it and use the value specified in key$ as the password. When creating a package file in the Package Manager you do not get the opportunity to supply a key, so key$ would be an empty string (“”). If you want a key, you will need to create the package pragmatically. You must be sure to keep track of the return value, as this is the handle that will be passed to all other package functions.&lt;/p&gt;&lt;p&gt;To retrieve the contents of a package file, call:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;PackageFiles(&amp;amp;lst$, handle$);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This will provide you with a list containing the names of all of the files contained in the package. Of course, you will probably know all of these names already, so let’s get to the heart of the matter: extracting and using the files. There are currently two ways of retrieving a file. The quickest way is to call the following:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;data$ = LoadPackageFile(handle$, “filename”);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This returns the contents of the file as a string in memory, which you can then display or manipulate however you choose. Currently, if the file is some sort of multimedia file or a database, this won’t be of much use to you. Starting in PPL v1.1, however, there are two new functions that will work in conjunction with LoadPackageFile called LoadSpriteFromMem and LoadSoundFromMem. These will be discussed more after 1.1 is released. For cases where you need to interact with the file in some way, you’ll want to call:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;tmpfile$ = ExtractFileFromPackage(handle$, “filename”);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This function will retrieve the contents of the requested file and store it in a temporary file. The return value is the name of the temporary file where the data is stored. So let’s say you wanted to retrieve a database, do some work on it, then store the database back to the package. The code would look something like this:&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;dbfile$ = ExtractFileFromPackage(handle$, “MyData.db”);&lt;br /&gt;dbhandle$ = sql_open(dbfile$);&lt;br /&gt;if(dbhandle$ &gt; 0)&lt;br /&gt;  //Check out the October newsletter for an SQLite primer&lt;br /&gt;end;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;dbnew$ = ExtractFilePath(dbfile$) % "aviator.db";&lt;br /&gt;MoveFile(dbfile$, dbnew$);&lt;br /&gt;AddFileToPackage(package$, dbnew$);&lt;br /&gt;DeleteFile(dbnew$);&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;If you will need to place the file back into the package after you’ve done your work with it, the 3 lines following end; are necessary. ExtractFileFromPackage creates a random name for the file, and AddFileToPackage takes the name of the file you’re adding and uses that as the name inside of the package. So, if you want to replace the file that exists in the package with the version your application has just modified, you need to rename it to match the name that exists in the package. ExtractFilePath returns the path portion of a path / file name string, so if you use that on the file path returned from ExtractFileFromPackage, then use the file name that was used to add the file to the package initially, you can rename the temp file so that it will be stored correctly in the package again. The final step to updating the package is:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;AddFileToPackage(handle$, “filename”);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The first parameter is that wonderful handle that was retrieved on your call to OpenPackage. filename is a string containing the full path and name of the file you wish to add. As mentioned before, the actual name of the file (no path) will be used to reference the file within the package. If you call AddFileToPackage with a file that already exists in the package, the file in the package will be replaced with the one you are adding. Finally, when all of your work is done and you don’t need the package any more, simply call:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ClosePackage(handle$);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This will make sure that the contents of the package have been updated and the handle will be released from memory.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-6658424465020744128?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/6658424465020744128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=6658424465020744128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6658424465020744128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6658424465020744128'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-31-packages.html' title='Tutorial 31 - Packages'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-8135303387743112095</id><published>2007-11-16T10:28:00.001-08:00</published><updated>2007-11-16T10:28:51.485-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 30 - Arrays in Structures</title><content type='html'>&lt;h2&gt;Tutorial 30 - Arrays in Structures&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;Arrays in structures.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;We have seen that structures can be defined as arrays using the TDIM() function. But what about having one element of the structure being an array of values? PPL offers a transparent way to do just this using the DIM() function. It will create an array from Lets first start by defining our variable structure:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;struct(s$, "a", "b");&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Now lets dimension our element, in our case we will use s.a$:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;dim(s.a$, 10);&lt;br /&gt;s.a$[0] = 1;&lt;br /&gt;s.a$[1] = 2;&lt;br /&gt;s.b$ = 3;&lt;br /&gt;ShowMessage(s.a$[0] % "," % s.a$[1] % "," % s.b$);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;You can even use strings with your array element, don't forget to use the @ operator to convert array elements to string since they only point to a pointer:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;s.a$[2] = "Hello World!";&lt;br /&gt;ShowMessage(@s.a$[2]);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;As you see, structures are very flexible and quite efficient too. They can support multiple type of data, even arrays of double type values and even strings.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-8135303387743112095?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/8135303387743112095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=8135303387743112095' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8135303387743112095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8135303387743112095'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-30-arrays-in-structures.html' title='Tutorial 30 - Arrays in Structures'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-7422271004888658796</id><published>2007-11-16T10:26:00.002-08:00</published><updated>2007-11-16T10:27:26.531-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 29 - Arrays of Structures</title><content type='html'>&lt;h2&gt;Tutorial 29 - Arrays of Structures&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;Arrays of structures.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;There comes a time when you need to store a series of data in the same format. Storing values in a structure will help clarify your code and your programming task as well. However, you might want to store more of the same data in multiple structures. This is where arrays of structures become very handy.&lt;/p&gt;&lt;p&gt;Lets first define our structure variable format:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;struct(s$, "a", "b");&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Next we will make this structure an array but keeping the structure information at the same time. Notice we use TDIM() and not the regular DIM() function? The TDIM() function is a special function that can be used with structures only.&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;tdim(s$, 10);&lt;br /&gt;s.a$[0] = 1;&lt;br /&gt;s.a$[1] = 2;&lt;br /&gt;ShowMessage(s.a$[0] % "," % s.a$[1]);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Arrays of structures are very ressemblant to lists of structures but offers an a great alternative is lists are too complicated for you.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-7422271004888658796?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/7422271004888658796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=7422271004888658796' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7422271004888658796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7422271004888658796'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-29-arrays-of-structures.html' title='Tutorial 29 - Arrays of Structures'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-3990878525351788332</id><published>2007-11-16T10:26:00.001-08:00</published><updated>2007-11-16T10:26:53.793-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 28 - List of Structures</title><content type='html'>&lt;h2&gt;Tutorial 28 - List of Structures&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;List of structures.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Now that we know about structures, how can we store multiple structures into one single variable? The best solution is either:&lt;/p&gt;&lt;p&gt;1. An array of structures&lt;br /&gt;2. List of structures.&lt;/p&gt;&lt;p&gt;Let's take a look at list of structures and later array of structures. Everytime you add a new item to a linked-list, the variable type is initialized, therefore you need to restructure the item.&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;For (i$, 1, 10)&lt;br /&gt;  Add(l$);&lt;br /&gt;  struct(l$, "a", "b");&lt;br /&gt;  l.a$ = i$;&lt;br /&gt;  l.b$ = i$ + 10;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;ForEach(l$)&lt;br /&gt;  ShowMessage(l.a$ % "," % l.b$);&lt;br /&gt;end;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;There is nothing more to add here other than the fact that you can define different types of structures for each list item. Powerful isn't it?&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-3990878525351788332?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/3990878525351788332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=3990878525351788332' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/3990878525351788332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/3990878525351788332'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-28-list-of-structures.html' title='Tutorial 28 - List of Structures'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-2688018974098546649</id><published>2007-11-16T10:25:00.002-08:00</published><updated>2007-11-16T10:26:21.780-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 27 - Structures 2</title><content type='html'>&lt;h2&gt;Tutorial 27 - Structures 2&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;Structures revisited!&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Structures offers enormous flexibility when you design a program. They allow to store information in a nice clean way into your variables. I like to explain structures as a single record database. A structure is like a series of fields that can be stored in one record (the variable). Take the following example:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;struct (s$, "a", "b");&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The variable s$ has two elements, a and b. Each element can contain a separate value. The default type for structure's elements is a TINT (4 bytes) value. You can also specify which value type the element will be holding.You have multiple choices here:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;TBYTE&lt;/strong&gt; 1 byte&lt;br /&gt;&lt;strong&gt;TSHORT&lt;/strong&gt; 2 bytes&lt;br /&gt;&lt;strong&gt;TINT&lt;/strong&gt; 4 bytes&lt;br /&gt;&lt;strong&gt;TUINT&lt;/strong&gt; 4 bytes (unsigned)&lt;br /&gt;&lt;strong&gt;TWIDE&lt;/strong&gt; 4 bytes (unicode character string)&lt;br /&gt;&lt;strong&gt;TDOUBLE&lt;/strong&gt; 8 bytes&lt;br /&gt;&lt;strong&gt;TLONG&lt;/strong&gt; 8 bytes (no decimal)&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;struct (s$, "a", tbyte, "b", tdouble);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The following structure s$ would be 9 bytes in size. 1 byte for element a and 8 bytes for element b. If you need to specify your own size in bytes you can also easily do it:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;struct (s$, "a", tbyte, "b", 50);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Element b contains 50 bytes. Now how do you access the structure variable elements you ask? Noting is easier:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;s.a$ = 10;&lt;br /&gt;s.b$ = 20;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;What about strings in structures? You will see that PPL is very flexible but can also be a little more complex to use in some cases. You will need to be careful when using strings in structures. PPL either stores a pointer of the string that is assigned to the structure's element in the case where the element size is TINT, TUINT, TWIDE, TDOUBLE or TLONG. If the element size is a user-defined length, then the string is copied directly to the structure's element memory location.&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;struct (s$, "a", "b", 50);&lt;br /&gt;s.a$ = "Hello World!";&lt;br /&gt;s.b$ = "Hello Again!";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The main difference here is that the string "Hello World!" is not stored in s.a$ but rather stored somewhere in memory and only its pointer address is stored in s.a$. "Hello Again!" is stored directly into s.b$.&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ShowMessage(s.a$);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;If we try to access s.a$ like the previous code, only its pointer address value will be printed. To access s.a$ as a string we need to use the @ operator to convert a pointer to a string.&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ShowMessage(@s.a$);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Now "Hello World!" will be printed in the dialog message. To access s.b$ no need to do anything special.&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ShowMessage(s.b$);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This will display "Hello Again!".&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-2688018974098546649?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/2688018974098546649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=2688018974098546649' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/2688018974098546649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/2688018974098546649'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-27-structures-2.html' title='Tutorial 27 - Structures 2'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-8104320650974354211</id><published>2007-11-16T10:25:00.001-08:00</published><updated>2007-11-16T10:25:37.403-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 26- Arrays</title><content type='html'>&lt;h2&gt;Tutorial 26- Arrays&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;Introducing Arrays.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;When it comes time to store multiple values into a single variable, we have two choices:&lt;/p&gt;&lt;p&gt;1. Use an array variable&lt;br /&gt;2. Use a linked-list variable&lt;/p&gt;&lt;p&gt;We will use the array variable for now since we will review the linked-list variable type in a later tutorial. PPL offers many ways to work with array variables, including arrays of different sizes and arrays of strings.&lt;/p&gt;&lt;p&gt;Arrays can be defined on local or global variables. To define an array, PPL comes with multiple functions to help you do this.&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Dim(var$, 10);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This will create an array of 10 elements of the default type TDOUBLE (8 bytes) for variable var$. To declare multi-dimensional arrays, do the following:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Dim(var$, 10, 10, 10);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;You can later access arrays just like other variables by specifying an offset within brakets [].&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Dim(var$, 10, 10);&lt;br /&gt;var$[0, 0] = 102.24;&lt;br /&gt;var$[9, 9] = 23.2873;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Notice that we use 0,0. Arrays offsets start at 0 and goes to the array size – 1. If your array size is 10, 10, then the minimum offset if 0,0 and the maximum offset is 9,9. To create arrays with custom element sizes, use SDIM().&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;SDIM(var$, TBYTE, 10, 10);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This will create an array of 10, 10 elements of type TBYTE (1 byte).&lt;/p&gt;&lt;p&gt;Now, what about strings? You will be happy to hear that PPL handles strings transparently with just a little twist. PPL stores only the string pointer address in the array's elements. Therefore the use of the @ operator is required to retrieve the string when accessing an array element.&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Dim(var$, 10);&lt;br /&gt;var$[2] = "Jack Bower";&lt;br /&gt;var$[3] = "Joe Bloe";&lt;br /&gt;ShowMessage(@var$[2] % " " % @var$[3]);&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-8104320650974354211?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/8104320650974354211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=8104320650974354211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8104320650974354211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8104320650974354211'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-26-arrays.html' title='Tutorial 26- Arrays'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-9169620538773379808</id><published>2007-11-16T10:23:00.000-08:00</published><updated>2007-11-16T10:25:00.742-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 25 - Screen origin</title><content type='html'>&lt;h2&gt;Tutorial 25 - Screen origin&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;What are your origins?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The screen display can be moved around. The starting origins are at coordinates (0, 0). You can move the screen in any direction. All the sprites will move according to the screen origins. You can design maps with lots of sprites on them, then scroll the whole map just changing the origin values.&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;SetOriginX(10);&lt;br /&gt;SetOriginY(-10);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;If you need sprites such as interface icons to remain at certain physical screen coordinates (always visible), rather than coordinates that are relative to the origin, you will need to add the following options to the sprites:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;SO_FIXED, SO_FIXEDX or SO_FIXEDY.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;SO_FIXED will keep the sprite at the pixels they are assigned to, even if the origins of the screen are changed. SO_FIXEDX will keep the X axis of the sprite fixed while the SO_FIXEDY will keep the Y axis location of the sprite fixed.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-9169620538773379808?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/9169620538773379808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=9169620538773379808' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/9169620538773379808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/9169620538773379808'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-25-screen-origin.html' title='Tutorial 25 - Screen origin'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-1264467131712195071</id><published>2007-11-16T10:20:00.001-08:00</published><updated>2007-11-16T10:20:52.242-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 24 - Sprites</title><content type='html'>&lt;h2&gt;Tutorial 24 - Sprites&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;Refresh your game with a sprite!&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Now is the time to spice up your game knowledge and get into something really cool: Sprites. Remember the old days of the Nintendo (NES) or the Super Nintendo (SNES) video game consoles? Most games you played back then were using sprites. Sprites are basically just an image you can move around and animate. In PPL sprites are pretty advanced. You can stretch them, tint them, tile them, automatically animate them, and so much more...&lt;/p&gt;&lt;p&gt;Let’s first start by loading an image from disk as a sprite:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;MySprite$ = LoadSprite(AppPath$ + "mysprite.bmp", G_RGB(255, 0, 255), 4, 150, NULL);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;You always need to retrieve the sprite handle from the LoadSprite() function to be able to access it later on. The sprite handle is just a unique integer value.&lt;/p&gt;&lt;p&gt;The first parameter of the LoadSprite() function is the pathname of the image you wish to use. The image file can be a bitmap (.bmp), a jpeg (.jpg), a Portable Image (.png) or a gif (.gif). The image file can be made of multiple images grouped together in one image file.&lt;/p&gt;&lt;p&gt;The second parameter is the transparent color to use. Sprites can be drawn on the screen with a transparent background to make them blend with the scenery.&lt;/p&gt;&lt;p&gt;The third parameter is the number of frames (images) the image file has.  The images must be sequential (one after the other) horizontally within the file, and they all must be the same width and height in pixels.&lt;/p&gt;&lt;p&gt;The fourth parameter is the speed in milliseconds at which the animation will be played. The default animation will swap between each frame one after the other from the left to the right.&lt;/p&gt;&lt;p&gt;The last parameter is the sprite procedure to use for the sprite. We will get into more advanced sprite handling in a later article.&lt;/p&gt;&lt;p&gt;The image is by default visible on the screen at position (0, 0). You can hide or show the sprite using the following:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;DelSpriteOption(MySprite$, SO_VISIBLE); // Hide the sprite by removing the SO_VISIBLE flag from the sprite's options.&lt;br /&gt;AddSpriteOption(MySprite$, SO_VISIBLE); // Show the sprite by adding the SO_VISIBLE flag to the sprite's options.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Each sprite has a series of special options that can be removed or added at any time.&lt;/p&gt;&lt;p&gt;Now let's move our sprite on the screen, to move the sprite all you need to do is call the MoveSprite() function and pass a new coordinate. In our case we will move the sprite to where the stylus touches the screen.&lt;/p&gt;&lt;p&gt;In the MainProc of our code we will add a WM_LBUTTONDOWN event that will be triggered whenever the stylus touches the screen:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;WM_LBUTTONDOWN:&lt;br /&gt;  MoveSprite (MySprite$, wParam$ - (SpriteWidth(MySprite$) / 2), lParam$ - (SpriteHeight(MySprite$) / 2));&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Here we center the sprite MySprite$ - which we should have made global at the time of loading (LoadSprite) - around the stylus position. SpriteWidth() returns the width in pixels of the sprite and SpriteHeight() return its height in pixels.&lt;/p&gt;&lt;p&gt;The WM_LBUTTONDOWN uses the wParam$ variable to store the X coordinate position and the lParam$ variable for the Y coordinate position the stylus was pointing to. You can write code for the following events:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;WM_LBUTTONDOWN&lt;/strong&gt;: The stylus is pressed.&lt;br /&gt;&lt;strong&gt;WM_LBUTTONUP&lt;/strong&gt;: The stylus is released from the screen.&lt;br /&gt;&lt;strong&gt;WM_MOUSEMOVE&lt;/strong&gt;: The stylus is being moved around while pressed.&lt;/p&gt;&lt;p&gt;You can stretch a sprite's display by doing the following:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;SetSpriteWidth (MySprite$, 100);  // Makes the sprite 100 pixels wide.&lt;br /&gt;SetSpriteHeight (MySprite$, 200);  // Makes the sprite 200 pixels high.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;You can change the animation speed and sequence of a sprite, lets say you have frames for jumping at frame 6 to 10:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;SetSpriteFrames (MySprite$, 6, 10, 250, true);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This will set the current animation for MySprite$ from frames 6 to 10, animating at 250 milliseconds. The last parameter specifies if PPL should wait for the current animation timer to expire before going to the new animation frames or change right away.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-1264467131712195071?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/1264467131712195071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=1264467131712195071' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/1264467131712195071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/1264467131712195071'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-24-sprites.html' title='Tutorial 24 - Sprites'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-3831712600187708411</id><published>2007-11-16T10:15:00.001-08:00</published><updated>2007-11-16T10:15:57.166-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 23 - GameAPI 2</title><content type='html'>&lt;h2&gt;Tutorial 23 - GameAPI 2&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;Draw me a picture I don't get it!&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The GameAPI screen is represented by a series of pixels organized on an x and y axis. Position (0, 0) is the top left of the screen and (240, 320) is the bottom right for the typical QVGA display on a PocketPC and (480, 640) is the bottom right for a typical VGA display device.&lt;/p&gt;&lt;p&gt;Drawing to the screen is very simple with the GameAPI, you just need to know where to place the drawing code. Since the first part of our series of articles on the GameAPI talked about a basic code template to create a GameAPI program, we need to focus a little more on the WM_PAINT event here. The WM_PAINT event is called every frame the GameAPI needs to draw to the screen. The WM_PAINT is placed in the game procedure code, like this:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;func GameProc(hWnd$, Msg$, wParam$, lParam$)&lt;br /&gt;  case (Msg$)&lt;br /&gt;    WM_PAINT:&lt;br /&gt;      G_Clear(0);&lt;br /&gt;  end;&lt;br /&gt;end;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;When you initialize the GameAPI you pass the GameProc pointer to the InitGameApiEx() function. PPL will then use this function to trigger custom events like WM_PAINT, WM_TIMER and WM_COLLIDE.&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;InitGameAPIEx(h$, &amp;amp;GameProc, 240, 320, false, 5, 60);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Inside the WM_PAINT code you can put any type of drawing code you want, like g_clear(0) to clear the screen with a color you like, g_textout() to draw informative text and g_fillrect() to draw a rectangle. PPL comes loaded with a ton of drawing functions. PPL clears the screen in black by default if no WM_PAINT event is defined.&lt;/p&gt;&lt;p&gt;What if you want to draw something on the screen outside the WM_PAINT event code? It’s easy, but you need to follow some guidelines. You need to prepare the screen to be drawn to and when done you need to update the screen. Here is simple code to draw a rectangle, wait 5 seconds and then return to normal drawing of the screen either by triggering the WM_PAINT code or by simply clearing the screen with black.&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;g_beginscene;&lt;br /&gt;g_fillrect(10, 10, 100, 100, g_rgb(100, 100, 100));&lt;br /&gt;g_update;&lt;br /&gt;delay(5000);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Be careful not to call g_beginscene() without calling a corresponding g_update(). Follow this rule and you will never have any problems.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-3831712600187708411?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/3831712600187708411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=3831712600187708411' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/3831712600187708411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/3831712600187708411'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-23-gameapi-2.html' title='Tutorial 23 - GameAPI 2'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-9016532076118726533</id><published>2007-11-16T10:12:00.002-08:00</published><updated>2007-11-16T10:15:20.203-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 22 - Launch programs</title><content type='html'>&lt;h2&gt;Tutorial 22 - Launch programs&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;How to launch an executable from PPL (by Eric Pankoke)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;For any number of reasons, you might want to launch an external program from your PPL application.  It’s actually rather simple to do.  First of all, if you’re not writing a GUI application, you need to include the following file:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#include "windows.ppl"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;If you want to launch a program and have it open normally, here’s a quick function to do so:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;proc LaunchProgram(path$)&lt;br /&gt;  #ifdef _WIN32_WCE&lt;br /&gt;    path$ = wide(path$);&lt;br /&gt;    verb$ = wide("open");&lt;br /&gt;  #else&lt;br /&gt;    verb$ = "open";&lt;br /&gt;  #endif&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  struct(info$, SHELLEXECUTEINFO);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  info.cbSize$ = sizeof(info$);&lt;br /&gt;  info.lpFile$ = &amp;amp;path$;&lt;br /&gt;  info.nShow$ = SW_SHOWNORMAL;&lt;br /&gt;  info.fMask$ = SEE_MASK_NOCLOSEPROCESS;&lt;br /&gt;  info.lpVerb$ = &amp;amp;verb$;&lt;br /&gt;  result$ = ShellExecuteEx(&amp;amp;info$);&lt;br /&gt;end;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;For more details on how this works, look up the ShellExecuteEx() function on MSDN.  To launch an application, you use “open” for the lpVerb member of the SHELLEXECUTEINFO structure.  Other supported verbs are dependent on the program that you are attempting to launch, and it will be up to you to figure those out.  Path$ should be a fully qualified path / file name combination.  Below is a quick demonstration that you can use in a non-GUI application to see how this works:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;func WinMain()&lt;br /&gt;  #ifdef _WIN32_WCE&lt;br /&gt;    LaunchProgram(GetWinDir() + "addrbook.exe");&lt;br /&gt;  #else&lt;br /&gt;    LaunchProgram(GetWinDir() + "&lt;/span&gt;&lt;a href="file://notepad.exe/"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;\\notepad.exe&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;");&lt;br /&gt;  #endif&lt;br /&gt;&lt;br /&gt;  return(false);&lt;br /&gt;end;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-9016532076118726533?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/9016532076118726533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=9016532076118726533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/9016532076118726533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/9016532076118726533'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-22-launch-programs.html' title='Tutorial 22 - Launch programs'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-3175651282171226278</id><published>2007-11-16T10:12:00.001-08:00</published><updated>2007-11-16T10:12:42.323-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 21 - The Console</title><content type='html'>&lt;h2&gt;Tutorial 21 - The Console&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;The PPL Console (by Brad Manske)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;A Console Program is a text only interface.  It is still a windows program but it eschews the Graphical User Interface (GUI) and event oriented programming for the sake of simplicity.  This is just the kind of program you want if your program just processes data and return results.  In most cases, when testing the compiler it is quicker and simpler to use the PPL console than to write a Windows GUI program.&lt;/p&gt;&lt;p&gt;To see an example of a console program open the "PPL IDE" link in the PPL program group.  Then select "Console..." from the file menu.  The PPL console will evaluate what you type on the input line at the bottom and display the results in the output window.&lt;/p&gt;&lt;p&gt;Typing:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  10+10&lt;enter&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;for example, will display 20&lt;/p&gt;&lt;p&gt;It will also work with variables.  Try this example:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  a$=10&lt;br /&gt;  b$=20&lt;br /&gt;  a$+b$&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The output window will display&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&gt; a$=10&lt;br /&gt;10&lt;br /&gt;&gt; b$=20&lt;br /&gt;20&lt;br /&gt;&gt; a$+b$&lt;br /&gt;30&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The expressions that PPL can evaluate can be quite complex in this mode and it makes for a handy tool.  The real value in the console is using it in your own code.  "Hello World" looks like this for a console program:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#include "console.ppl"&lt;br /&gt;func WinMain&lt;br /&gt;   InitConsole;&lt;br /&gt;   ShowConsole;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;   write("Hello World");&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;   return (true);&lt;br /&gt;end;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Notice that this is a windows program, so it begins with WinMain.  The Console is created and then made visible on the screen.  The Write() statement sends the string to the console to be displayed.  A Writeln() command also exists that will start a new line after the string has printed.  The program ends by returning "true" so that the Console window stays open until the user closes it.&lt;/p&gt;&lt;p&gt;All that remains is to add your code in place of the write statement and you have a way to do unit testing on small pieces of your code.  Here are a few string handling operations to get you going:&lt;/p&gt;&lt;p&gt;Write  - Send a string to the console&lt;br /&gt;Writeln - Send a string to the console then start a new line&lt;br /&gt;+  - Concatenate 2 strings if alphanumeric ("ab"+"12"="ab12")&lt;br /&gt;+  - add the value of 2 strings if numeric ("10"+"10"="20")&lt;br /&gt;%  - Concatenate 2 strings ("ab"+"12"="ab12" or "10"+"10"="1010")&lt;br /&gt;"\n"  - advance to the next line on the console&lt;/p&gt;&lt;p&gt;If you want even more control over how the console displays your data, then consult the manual for the "sprintf" statement.  C language programmers will recognize this powerful formatting statement.  For example:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;MyValue$ = 1234;&lt;br /&gt;sprintf(tmpString$, "Value printed in an 8 char field %8d", MyValue$);&lt;br /&gt;write(tmpString$);  // "    1234"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;If you've followed along so far, you get rewarded with the best tip for using the console, which I have saved for last.  ShowMessage() is often used to show the state of the program at some point to help with debugging.  But sometimes it doesn't work or you spend all day clicking "OK" because you have to go through a large amount of data before you get to the point in the data where it  doesn't work.  Instead of dealing with all of that hassle, use the Console.&lt;/p&gt;&lt;p&gt;Create your window, and after the User Interface has been created add InitConsole() &amp;amp; ShowConsole().  Write out the debug statements and before exiting save the console to a file.  Now you can search for the case you’re interested in with a text editor.&lt;/p&gt;&lt;p&gt;You should enclose all of the Console calls in #ifdef statements so that they can easily be removed for a production build.&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#undefine ProductionBuild   // change to #define for no console&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#ifndef ProductionBuild&lt;br /&gt;#include "console.ppl"&lt;br /&gt;#endif&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;func WinProc&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  // your code - create UI or call the form creation.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#ifndef ProductionBuild&lt;br /&gt;  InitConsole;&lt;br /&gt;  ShowConsole;&lt;br /&gt;#endif&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  // your code&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#ifndef ProductionBuild&lt;br /&gt;  Writeln("Show interesting data in your code.");&lt;br /&gt;#endif&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  return(true);&lt;br /&gt;end;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;That is the quick run down on the console.  I've never tried using the Console to log the progress inside a game.  I'm hoping that some game designer out there will give this a try.  If you do, please tell us all about it in the Forums at &lt;a href="http://www.arianesoft.ca/forum.php"&gt;http://www.arianesoft.ca/forum.php&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-3175651282171226278?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/3175651282171226278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=3175651282171226278' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/3175651282171226278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/3175651282171226278'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-21-console.html' title='Tutorial 21 - The Console'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-6100684072284799476</id><published>2007-11-16T10:11:00.001-08:00</published><updated>2007-11-16T10:11:55.996-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 20 - Structures</title><content type='html'>&lt;h2&gt;Tutorial 20 - Structures&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;Put some structure in your life!&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Life can be a real succession of disorder sometimes. Don't let this way of life turn your programs into nightmares. Put some structure into your code. Variables are a great way to organize and store information, but you need to classify this information into clean and organized structures to be able to keep your code expandable for the future.&lt;/p&gt;&lt;p&gt;A typical variable can be declared and accessed quite easily in PPL. You declare its scope (local or global) if wanted and then you assign values into it. Nothing new here. What if you have a whole lot of information you want to store into variables? Are you going to create one variable for each value you need to store? If you have answered yes to this question, you need to read further as you will discover that structured variables will give you benefits you probably never considered.&lt;/p&gt;&lt;p&gt;Let’s pretend we need to write a simple three questions survey program. We need to gather user information first and then the user’s answers to three questions. You could do the following:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Name$ = "Alain Deschenes";&lt;br /&gt;Address$ = "Somewhere somehow";&lt;br /&gt;Tel$ = "555-555-5555";&lt;br /&gt;Age$ = "32";&lt;br /&gt;Occupation$ = "Too busy";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Question1$ = "His answer #1";&lt;br /&gt;Question2$ = "His answer #2";&lt;br /&gt;Question3$ = "His answer #3";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This will probably turn into a real nightmare when you reach 500 lines of code or more. What if you spell a variable wrong? What if you need to add user information and questions?&lt;/p&gt;&lt;p&gt;With structured variables (called structures), you can group a series of variables into what you might call categories. In our scenario here, we would need a user$ structure and a questions$ structure. Each structure will hold a series of variables.&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;struct(user$, "Name", "Address", "Tel", "Age", "Occupation");&lt;br /&gt;struct(questions$, "Question1", "Question2", "Question3");&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;User.Name$ = "Alain Deschenes";&lt;br /&gt;User.Address$ = "Somewhere somehow";&lt;br /&gt;User.Tel$ = "555-555-5555";&lt;br /&gt;User.Age$ = "32";&lt;br /&gt;User.Occupation$ = "Too busy";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Questions.Question1$ = "His answer #1";&lt;br /&gt;Questions.Question2$ = "His answer #2";&lt;br /&gt;Questions.Question3$ = "His answer #3";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Yes it is longer to write but if you use this technique you are guaranteed to get great benefits in the long run.&lt;/p&gt;&lt;p&gt;You can declare as many structure elements as you want inside the Struct() function. Each element you declare is by default a double type variable that can hold pretty much any numerical value. However you can change the type of element you need. There are multiple variable types that PPL can support including:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;TBYTE&lt;/strong&gt; : 1 byte value. Range from 0 to 255.&lt;br /&gt;&lt;strong&gt;TSHORT&lt;/strong&gt; : 2 bytes value. Range from 0 to 65535.&lt;br /&gt;&lt;strong&gt;TINT&lt;/strong&gt; : 4 bytes value.&lt;br /&gt;&lt;strong&gt;TUINT&lt;/strong&gt; : 4 bytes unsigned value.&lt;br /&gt;&lt;strong&gt;TDOUBLE&lt;/strong&gt; : 8 bytes value. Support decimal point.&lt;/p&gt;&lt;p&gt;You can create a structure that will hold 4 bytes with 4 elements of 1 byte each.&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;struct(mystruct$, "a", tbyte, "b", tbyte, "c", tbyte, "d", tbyte);&lt;br /&gt;mystruct.a$ = 1;&lt;br /&gt;mystruct.b$ = 2;&lt;br /&gt;mystruct.c$ = 3;&lt;br /&gt;mystruct.d$ = 4;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;You can also define a custom number of bytes the element will hold. You can then access each byte of the element variable using [x] array syntax.&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;struct(mystruct$, "element", 256);&lt;br /&gt;mystruct.element$[34] = 20;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;You can also copy one structure to another variable by doing the following:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;newstruct$ = mystruct$;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;You can also pass structures as parameters of funcs or procs like this:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;proc MyProc (s$)&lt;br /&gt;  s.a$ = 10;&lt;br /&gt;  s.b$ = 20;&lt;br /&gt;  s.c$ = 30;&lt;br /&gt;end;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;proc main&lt;br /&gt;  struct(mystruct$, "a", "b", "c");&lt;br /&gt;  MyProc (&amp;amp;mystruct$);&lt;br /&gt;  ShowMessage(mystruct.a$ + ", " + mystruct.b$ + ", " + mystruct.c$);&lt;br /&gt;end;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-6100684072284799476?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/6100684072284799476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=6100684072284799476' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6100684072284799476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6100684072284799476'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-20-structures.html' title='Tutorial 20 - Structures'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-7386857984449192378</id><published>2007-11-16T10:10:00.002-08:00</published><updated>2007-11-16T10:11:18.183-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 19 - Keep your code separate</title><content type='html'>&lt;h2&gt;Tutorial 19 - Keep your code separate&lt;/h2&gt;   &lt;p&gt;&lt;strong&gt;Keep your code separate&lt;/strong&gt; &lt;em&gt;by Richard Gamester&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Following on from All About Forms, I would like to tell you about keeping your code safe.&lt;br /&gt;No, not backup's - that should be normal practice, but the best way to control your ever expanding code, but first we need to understand this bit of the PPL window:&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Project.gif" style="border: 0px solid black; width: 257px; height: 82px;" alt="Project.gif" /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;This is your friend the Project Manager, this is where you can list all the parts of your project. As before, I will be using my Test project, in the folder Test. The first thing you need to do is add your form. Click the green plus icon and open the Test.frm file. Do not be tempted to add the Test.ppl file of the same name, it will only confuse you later. This file is the one auto-generated by PPL.&lt;/p&gt;&lt;p&gt;The Project Manager is the quickest way to open your form (frm) or code file (ppl) if you close them in the main window. To be safe, you should place all your main-line code in additional .ppl files.&lt;br /&gt;Doing this is quite simple:&lt;/p&gt;&lt;p&gt;Click &lt;strong&gt;File &gt; New&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;You now have a blank form to put your code in! But I suggest you do the housekeeping first and..&lt;/p&gt;&lt;p&gt;Click &lt;strong&gt;File &gt; Save&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Save  your new file and call it something meaningful like Test2.ppl, save it in the project folder with the Test.frm file, then add it to the project list in the same way as you loaded the form.&lt;/p&gt;&lt;p&gt;The next thing to do is tell PPL about your file. &lt;/p&gt;&lt;p&gt;This is quite simple, just add a statement like this to the Form &gt; Initalization Section Code area..&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#include "Test2.ppl"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;You can then cut and paste your code as procedures or functions in the new file &lt;/p&gt;&lt;p&gt;Here is one last thought. If your routine Test2.ppl relies on several sub routines, these can be put in Test3.ppl.&lt;/p&gt;&lt;p&gt;But this time put the #include for it at the top of the Test2.ppl file.&lt;/p&gt;This has the advantage that your sub-routines are defined before the calling code, so you will not need to use forward statements.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-7386857984449192378?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/7386857984449192378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=7386857984449192378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7386857984449192378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7386857984449192378'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-19-keep-your-code-separate.html' title='Tutorial 19 - Keep your code separate'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-4288105702385570336</id><published>2007-11-16T10:10:00.001-08:00</published><updated>2007-11-16T10:10:39.650-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 18 - All about forms</title><content type='html'>&lt;h2&gt;Tutorial 18 - All about forms&lt;/h2&gt;   &lt;p&gt;&lt;strong&gt;All About Forms&lt;/strong&gt; &lt;em&gt;by Richard Gamester&lt;/em&gt;&lt;/p&gt;&lt;p&gt;By now you have had a play with PPL., tried creating a form, maybe even started to write a program!&lt;br /&gt;So now is the time to learn a bit more about forms and how the compiler keeps track of all your code!&lt;/p&gt;&lt;p&gt;Start PPL and click &lt;strong&gt;Project &gt; New&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;In the new project window. select &lt;strong&gt;Blank Project&lt;/strong&gt;, then type a different name where it says project name. In this document I will use "Test" but the choice is yours. Click the Ok button.&lt;/p&gt;&lt;p&gt;PPL will create a new folder of that name in your project folder.&lt;/p&gt;&lt;p&gt;Click &lt;strong&gt;Tools &gt; Visual Editor&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;A new form will then be created and displayed in the window.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Click an item in the "controls" tool bar, lets say a button (OK).&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Tool.gif" style="border: 0px solid black; width: 68px; height: 121px;" alt="Tool.gif" /&gt;&lt;/p&gt;&lt;p&gt;Now it is time to save your form, click &lt;strong&gt;File &gt; Save&lt;/strong&gt; and save the file in your new folder as &lt;strong&gt;Test.frm&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;Double click your button. PPL will create a procedure for the (default) &lt;strong&gt;OnClick&lt;/strong&gt; event&lt;br /&gt;Type in a ShowMessage command like this:&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.arianesoft.ca/e107_images/ShowMsg.gif" style="border: 0px solid black; width: 457px; height: 84px;" alt="ShowMsg.gif" /&gt;&lt;/p&gt;&lt;p&gt;Right click the &lt;strong&gt;#button101&lt;/strong&gt; tab and select close. When asked, say Yes to save it. &lt;/p&gt;&lt;p&gt;With the form showing, click the &lt;strong&gt;Form &gt; Initalization Section Code&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Form.gif" style="border: 0px solid black; width: 200px; height: 274px;" alt="Form.gif" /&gt; &lt;/p&gt;&lt;p&gt;In the new window type a comment like&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;// Initalization code here!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Right click on the #%init tab and select close, when asked say yes to save.&lt;/p&gt;&lt;p&gt;Now click &lt;strong&gt;Form &gt; Form Creation Code&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;In the new window type a comment like&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;// Form code in here!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Right click on the &lt;strong&gt;#%create&lt;/strong&gt; tab and select &lt;strong&gt;close&lt;/strong&gt;, when asked say yes to save.&lt;br /&gt;&lt;br /&gt;Let's see the result&lt;/p&gt;&lt;p&gt;Click &lt;strong&gt;Form &gt; Create Source&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;What you see now is the PPL file generated from your work so far. On about line 10 you will see your comment:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;// Initalization code here!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This is where you would put the &lt;strong&gt;#include&lt;/strong&gt; statements for other PPL files that you needed in your project.&lt;/p&gt;&lt;p&gt;Following this are the button events (the close menu item is created for you) and the one in which you typed the ShowMessage. In fact, the events for all your controls will be in this area.&lt;/p&gt;&lt;p&gt;Then we get into the form creation code, it starts:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;func WinMain&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This is where PPL writes all the code required to create your form. Right down at the bottom, you will see:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#code&lt;br /&gt;  // Form code in here!&lt;br /&gt;  return (true);&lt;br /&gt;end;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;You will see that the "form creation code" is just an extension of the PPL generated WinMain function code. The return (true) is added by PPL.&lt;/p&gt;&lt;p&gt;Note that what you are seeing is code generated by PPL. &lt;strong&gt;Do NOT try to edit this as your changes will be lost!&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;PPL keeps the all the events for initialization, form creation and form components separate. This makes it far easier for the user (honest)!  It also allows PPL to remove the code if you delete the component.&lt;/p&gt;&lt;p&gt;If you want to edit the form sections you have to return to the form and use the Form menu. For control events double click the control or use the events menu.&lt;/p&gt;&lt;p&gt;Lines like this&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#code &lt;/span&gt;&lt;/p&gt;are just commands to the compiler to include your text from the Test.frm file.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-4288105702385570336?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/4288105702385570336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=4288105702385570336' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/4288105702385570336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/4288105702385570336'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-18-all-about-forms.html' title='Tutorial 18 - All about forms'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-1186025494404610277</id><published>2007-11-16T10:09:00.002-08:00</published><updated>2007-11-16T10:10:03.226-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 17 - Handling double-clicks in PPL</title><content type='html'>&lt;h2&gt;Tutorial 17 - Handling double-clicks in PPL&lt;/h2&gt;   &lt;p&gt;&lt;strong&gt;Handling double-clicks in PPL&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Windows doesn't simplify the task of handling double-clicks. It makes hard for us. Here is a piece of code to simplify your life a little.#declare GetDoubleClickTime apidll GetDoubleClickTime 0 1&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#declare GetDoubleClickTime apidll GetDoubleClickTime 0 1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;func mainproc(hWnd$, Msg$, wParam$, lParam$)&lt;br /&gt;  // Make ClickCount$ global&lt;br /&gt;  global(ClickCount$);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  ok$ = true;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  case (Msg$)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;    WM_CLOSE: // Window is closed&lt;br /&gt;      ShutGameAPI(hWnd$);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;    WM_LBUTTONDOWN: // Stylus is pressed.&lt;br /&gt;      // Get double click time set in milliseconds in Windows.&lt;br /&gt;      t$ = GetDoubleClickTime;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;      // Add 1 to our clickcount variable.&lt;br /&gt;      ClickCount$++;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;      // Loop for double-click time processing windows messages.&lt;br /&gt;      lasttime$ = tick;&lt;br /&gt;      while (tick - lasttime$ &lt; t$)&lt;br /&gt;        HandleMessage;&lt;br /&gt;      end;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;      // If only one click is used it is a single-click.&lt;br /&gt;      if (ClickCount$ == 1)&lt;br /&gt;        g_ShowMessage("Single-click");&lt;br /&gt;        ClickCount$ = 0;&lt;br /&gt;      else&lt;br /&gt;        g_ShowMessage("Double-click");&lt;br /&gt;        ClickCount$ = 0;&lt;br /&gt;      end;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;    WM_KEYDOWN: // A hardware key or software key is pressed.&lt;br /&gt;      PostMessage(hWnd$, WM_CLOSE, 0, 0);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  end;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  return (ok$);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;You can apply this to sprite functions as well on the WM_LBUTTONDOWN event.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-1186025494404610277?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/1186025494404610277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=1186025494404610277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/1186025494404610277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/1186025494404610277'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-17-handling-double-clicks-in.html' title='Tutorial 17 - Handling double-clicks in PPL'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-1099607802836167004</id><published>2007-11-16T10:09:00.001-08:00</published><updated>2007-11-16T10:09:27.556-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 16 - Getting a list of all files in a folder</title><content type='html'>&lt;h2&gt;Tutorial 16 - Getting a list of all files in a folder&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;How do I get the list of files in a folder?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;You need to extract all the possible information from a folder but don't know where to start? Look no further, PPL offers a great flexibility when it comes to using Windows API functions.&lt;/p&gt;&lt;p&gt;The following code will open up the console and output all the files that are contained in the C:\Program Files\PPL\Runtime\ folder.&lt;/p&gt;&lt;p&gt;A new list item is created to store all the filenames.&lt;/p&gt;&lt;p&gt;Imagine the possibilities... The fd$ structure contains important information about each file scanned, like: File attributes, Creation Time, Last Access Time, Last Write Time, File Size and Filename.&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#include "console"&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;func WinMain&lt;br /&gt;  InitConsole;&lt;br /&gt;  ShowConsole;&lt;br /&gt;&lt;br /&gt;  List(files$);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  struct(fd$, WIN32_FIND_DATA);&lt;br /&gt;  i$ = FindFirstFile("c:\\Program Files\\PPL\\*.*", &amp;amp;fd$);&lt;br /&gt;  if (i$ != INVALID_HANDLE_VALUE)&lt;br /&gt;    repeat&lt;br /&gt;      Add(files$, char(fd.cFilename$));&lt;br /&gt;    until (FindNextFile(i$, &amp;amp;fd$) == false);&lt;br /&gt;    FindClose(i$);&lt;br /&gt;  end;&lt;br /&gt;&lt;br /&gt;  ForEach(Files$);&lt;br /&gt;    Writeln(Files$);&lt;br /&gt;  end;&lt;br /&gt;&lt;br /&gt;  return (true);&lt;br /&gt;end;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-1099607802836167004?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/1099607802836167004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=1099607802836167004' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/1099607802836167004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/1099607802836167004'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-16-getting-list-of-all-files.html' title='Tutorial 16 - Getting a list of all files in a folder'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-5234605802486713704</id><published>2007-11-16T10:08:00.001-08:00</published><updated>2007-11-16T10:08:45.341-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 15 - Installing PPL manually</title><content type='html'>&lt;h2&gt;Tutorial 15 - Installing PPL manually&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;Installing PPL manually on your PDA / Smartphone&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The beauty of PPL is that it can run on most StrongARM or XScale powered devices running under PocketPC 2000, 2002, Windows Mobile 2003, 2003se and 2005. However the installer can give you a hard time if your device is not recognized.&lt;/p&gt;&lt;p&gt;There is a solution for you. Install PPL manually. Sounds complicated? Not at all. Here are the steps you will need to follow.&lt;/p&gt;&lt;p&gt;1. Install the latest version of PPL on your desktop PC.&lt;br /&gt;&lt;br /&gt;2. Copy the files inside the RUNTIME folder over to your phone using ActiveSync. Copy all the files inside C:\Program Files\PPL\Runtime\*.* to \Program Files\PPL\.&lt;br /&gt;&lt;br /&gt;3. Copy PPL.EXE from your PC at the location: C:\Program Files\PPL\PPC\WM2003\PPL.EXE to your phone at \Program Files\PPL\PPL.EXE&lt;br /&gt;&lt;br /&gt;4. Now copy \Program Files\PPL\PPC\WM2005\gsgetfile.dll to \ProgramFiles\PPL\gsgetfile.dll&lt;br /&gt;&lt;br /&gt;5. On your phone, go into the File Manager application and run \Program Files\PPL\PPL.EXE.  The device might ask questions about whether to trust this application, answer yes.  It will come up eventually and setup. When done, exit the application.&lt;br /&gt;&lt;br /&gt;6. On your PC, start up the PIDE application.  At the far right, there is a dropdown box for the target, set the target to Target-&gt;Pocket PC.&lt;br /&gt;&lt;br /&gt;7. Now compile and run.  Again, the first time (or few times) you do this, the device might complain about untrusted applications, continue to answer yes to running them.  After answering yes you will see your application run.&lt;br /&gt;&lt;br /&gt;If you want to make a standalone application that runs on your device, go to the menus in PIDE, and select&lt;br /&gt;Run / Make Executable. This will make an executable of your project file into the \My Documents directory on your device. The first time you run it, you'll get the untrusted application message, but after that it will just run.&lt;br /&gt;&lt;br /&gt;NOTE: The IDE does not run properly on the Motorola Q at this moment due to the screen size, in the meantime you can use the PIDE on your desktop.&lt;/p&gt;&lt;p&gt;&lt;em&gt;Thanks to Rick Eesley for his instructions and patience!&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-5234605802486713704?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/5234605802486713704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=5234605802486713704' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/5234605802486713704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/5234605802486713704'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-15-installing-ppl-manually.html' title='Tutorial 15 - Installing PPL manually'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-5902070591510006511</id><published>2007-11-16T10:07:00.000-08:00</published><updated>2007-11-16T10:08:03.296-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 14 - Distributing your PPL application.</title><content type='html'>&lt;h2&gt;Tutorial 14 - Distributing your PPL application.&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;Distributing your PPL applications.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;You are now done testing and debugging your application. It is time to distribute it to your clients or sell it. PPL offers a multitude of ways to do this.&lt;/p&gt;&lt;p&gt;The first method of distribution is to create an executable file (.exe), pack all your files in a zip file and send it over. The second method is to distribute the PPL compiled file (.ppc) file. It is a compressed and encrypted bytecode version of your source code. If you do this you will need to distribute the PPL.EXE application that you can rename to your liking ex: MyApp.exe. You will now need to rename the MyApp.ppc file to Autorun.ppc. PPL looks for Autorun.ppl or Autorun.ppc file at launch time.&lt;/p&gt;&lt;p&gt;Let's review each method one by one:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Create an executable.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;There are two ways to generate an executable file in PPL. First you need Pro version to do this. You can use the PIDE by selecting Run / Make Executable. You have a couple choices here:&lt;/p&gt;&lt;p&gt;1. Type of executable you want to generate.&lt;/p&gt;&lt;p&gt;Desktop PC executable.&lt;br /&gt;PocketPC 2000, 2002 compatible executable.&lt;br /&gt;Windows Mobile 2003, 2003se and 2005 compatible executable.&lt;/p&gt;&lt;p&gt;2. Icon file. Allow you to select an icon for your executable file.&lt;/p&gt;&lt;p&gt;3. Use compressed library. This will use the compressed libraries to build your executable. Compressed libraries are about 3 times smaller than normal library files but they can be a little slower to load on some machines.&lt;/p&gt;&lt;p&gt;The second way is to use the main PPL interface on the PocketPC. Here the options you can set:&lt;/p&gt;&lt;p&gt;1. Root file. This is the PPL file to create an executable with.&lt;/p&gt;&lt;p&gt;2. Exe type. Select the executable format to generate. These are the same settings as on the PIDE above.&lt;/p&gt;&lt;p&gt;3. Compressed runtimes. Same as the PIDE.&lt;/p&gt;&lt;p&gt;Once your executable is created you will need to include the external support files that will be used by your application. That is bitmap image files, sound files, text files, data files, etc... It is good practice to keep all files within the same folder or in seperate folders within the root folder of your application.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;Extra files that will need to be distributed with your application:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;gsgetfile.dll&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;If you plan on using the GetFile() or PutFile() functions, you might want to distrbute this file along with your application. This .dll file will provide a nice file dialog selection that is an improvement over the standard Windows Mobile or PocketPC OS default dialog.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;sqlite_pc.dll&lt;/strong&gt; or &lt;strong&gt;sqlite_ppc.dll&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;If you use any SQLite functions within your application, these two files will need to be included in the root folder of your application. Be careful because there are two seperate sqlite_dll.dll files. One is for the PC and the other is for the PocketPC. The SQL.PPL library file will load the correct one depending on the version of the executable. It's preferable to provide the correct one for each platform.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;vgarom.fnt&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;This is the default font used by the GameAPI. If you make a game or an application that uses the GameAPI you will need to include this file in the root folder of your application else the FPS and default fonts won't appear on the screen.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-5902070591510006511?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/5902070591510006511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=5902070591510006511' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/5902070591510006511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/5902070591510006511'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-14-distributing-your-ppl.html' title='Tutorial 14 - Distributing your PPL application.'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-8308711524253902621</id><published>2007-11-16T10:06:00.002-08:00</published><updated>2007-11-16T10:07:23.166-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>PIDE Shortcut Keys</title><content type='html'>&lt;h2&gt;PIDE Shortcut Keys&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;Shortcut keys in the PIDE by Brad Manske&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;By now you've opened up PIDE and used it for a while.  Hopefully everyone has noticed the&lt;br /&gt;keyboard shortcuts placed in the menus.  Here are a few that are very helpful, but not so&lt;br /&gt;obvious.&lt;/p&gt;&lt;p&gt;In PIDE's Game Level Editor try &lt;shift&gt;+&lt;mouse&gt; while a sprite is selected, this will&lt;br /&gt;Create a new sprite copying the original sprites properties.&lt;/p&gt;&lt;p&gt;In PIDE's Visual Form Builder:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The &lt;esc&gt; key will select the Form Control.&lt;/li&gt;&lt;li&gt;If you need a little help, F1 will bring up VFB Help and &lt;ctrl&gt;+F1 will bring up the MSDN help for the selected control.&lt;/li&gt;&lt;li&gt;Hold down the &lt;ctrl&gt; key and move the mouse over the form.  This will show dashed lines from the mouse position to the ruler to help align controls on the form.&lt;/li&gt;&lt;li&gt;Arrow keys can move a control by 1 pixel at a time to get things lined up perfectly.&lt;/li&gt;&lt;li&gt;When editing controls that can use a list (GroupBox, ListBox, TabControl, etc...) select "Caption" in the properties and then press F5.  You can enter values to preload into these control.&lt;/li&gt;&lt;li&gt;If you need to select a color for the properties, use F4.&lt;/li&gt;&lt;li&gt;If you need to select a filename for the properties, use F3.&lt;/li&gt;&lt;li&gt;If you need to select a true/false value for properties, &lt;ctrl&gt;+T will enter true and &lt;ctrl&gt;+F will enter false.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;For those of you that are not keyboard jockies, right click on the properties to bring up the context&lt;br /&gt;menu with the options for the properties.&lt;/p&gt;&lt;p&gt;Here is a reference card for those who could use it&lt;/p&gt;&lt;p&gt;&lt;strong&gt;PIDE Editor ShortCut Keys:&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;  &lt;ctrl&gt;-N           New&lt;br /&gt;  &lt;ctrl&gt;-O           Open&lt;br /&gt;  &lt;ctrl&gt;-S           Save file&lt;br /&gt;  &lt;ctrl&gt;-P           Print&lt;br /&gt;  &lt;ctrl&gt;-Z           Undo&lt;br /&gt;  &lt;shift&gt;&lt;ctrl&gt;-Z    Redo&lt;br /&gt;  &lt;ctrl&gt;-X           Cut&lt;br /&gt;  &lt;ctrl&gt;-C           Copy&lt;br /&gt;  &lt;ctrl&gt;-V           Paste&lt;br /&gt;  &lt;ctrl&gt;&lt;del&gt;        Delete&lt;br /&gt;  &lt;shift&gt;&lt;ctrl&gt;-C    Comment Code&lt;br /&gt;  &lt;ctrl&gt;-R           RGB color&lt;br /&gt;  &lt;ctrl&gt;-D           Format Code&lt;br /&gt;  &lt;ctrl&gt;-G           Goto Line Number&lt;br /&gt;  &lt;ctrl&gt;-F           Find&lt;br /&gt;  &lt;shift&gt;&lt;ctrl&gt;-F    Find in Files&lt;br /&gt;  &lt;ctrl&gt;-F3          Find Again&lt;br /&gt;  &lt;ctrl&gt;-H           Replace&lt;br /&gt;  &lt;ctrl&gt;-F11         Find Definition&lt;br /&gt;  &lt;shift&gt;-F11        Open Selected File&lt;br /&gt;  &lt;shift&gt;-F8         Line Profile Result&lt;br /&gt;  &lt;ctrl&gt;-F7          Run&lt;br /&gt;  &lt;ctrl&gt;-F9          Dedicated Run&lt;br /&gt;  F7                 Compile&lt;br /&gt;  F5                 Debug&lt;br /&gt;  F10                Step Over&lt;br /&gt;  F11                Step Into&lt;br /&gt;  &lt;ctrl&gt;-F10         Run to Cursor&lt;br /&gt;  &lt;shift&gt;-F5         Stop&lt;br /&gt;  F9                 Toggle Breakpoints&lt;br /&gt;  &lt;ctrl&gt;-B           Breakpoint Window&lt;br /&gt;  &lt;ctrl&gt;-F7          Watches Window&lt;br /&gt;  &lt;ctrl&gt;-F12         File Manager&lt;br /&gt;  F12                Visual Form Builder&lt;br /&gt;  &lt;ctrl&gt;-G           Procedures List&lt;br /&gt;  F4                 Goto Map...&lt;br /&gt;  &lt;shift&gt;&lt;ctrl&gt;&lt;del&gt; Clear a controls code.&lt;br /&gt;  F1                 Help&lt;br /&gt;  &lt;ctrl&gt;-F1          MSDN Help&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;PIDE VFB ShortCut Keys:&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;  F1                 VFB Help&lt;br /&gt;  &lt;ctrl&gt;+F1          MSDN help on selected control&lt;br /&gt;  F3                 Select FileName for properties&lt;br /&gt;  F4                 Select Color for properties&lt;br /&gt;  F5                 Edit List of values for control&lt;br /&gt;  &lt;esc&gt;              Focus on the Form Control&lt;br /&gt;  &lt;ctrl&gt;             Show Alignment lines&lt;br /&gt;  &lt;ctrl&gt;+T           Enter True for properties&lt;br /&gt;  &lt;ctrl&gt;+F           Enter False for properties&lt;br /&gt;  &lt;arrow&gt;       Move selected control by one pixel.&lt;/pre&gt;&lt;p&gt;PIDE Game Level Editor ShortCut Keys:&lt;/p&gt;&lt;pre&gt;  &lt;shift&gt;+&lt;click&gt;    create a copy of the selected sprite.&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-8308711524253902621?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/8308711524253902621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=8308711524253902621' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8308711524253902621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8308711524253902621'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/pide-shortcut-keys.html' title='PIDE Shortcut Keys'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-8422857490892538200</id><published>2007-11-16T10:06:00.001-08:00</published><updated>2007-11-16T10:06:37.349-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 13 - Game API #1</title><content type='html'>&lt;h2&gt;Tutorial 13 - Game API #1&lt;/h2&gt;   &lt;p&gt;&lt;strong&gt;PPL Game Programming - Part 1 - Game code structure.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;PPL comes with a very powerful set of gaming functions called the GameAPI. The GameAPI comes in two different flavors. The first is the standard edition which does not contain the physic engine and the particles engine. You can create very nice games without them as well. In this first article of the series, we will concentrate on how games are handled in PPL.&lt;/p&gt;&lt;p&gt;Designing a game is a long and tedious process. You have to lay down your plan well in advance before even writing a single line of code. When it comes time to write the game you are often presented with low-level functions where you have to create custom routines to handle your particular kind of game. Writing a game engine requires good knowledge and time. With PPL, you can cut this step, saving days, weeks even months of hard work. The GameAPI will offer plenty of power for any type of 2D game programming.&lt;/p&gt;&lt;p&gt;The first step when you write a game with PPL is to start with a solid code structure that you will use as your starting template for all your future projects, unless you use the Game Level Editor that comes with the PIDE, the code generated by the GLE (Game Level Editor) has the same basic code structure as you will have here.&lt;/p&gt;&lt;p&gt;Let's review our code structure:&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#include "GameAPI.ppl"&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;func mainproc(hWnd$, Msg$, wParam$, lParam$)&lt;br /&gt;  ok$ = true;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  case (Msg$)&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;    WM_CLOSE:&lt;br /&gt;      ShutGameAPI(hWnd$);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;    WM_KEYDOWN:&lt;br /&gt;      g_KeyEvent(wParam$, True);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;    WM_KEYUP:&lt;br /&gt;      g_KeyEvent(wParam$, False);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  end;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  return (ok$);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;end;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;func GameProc(hWnd$, Msg$, wParam$, lParam$)&lt;br /&gt;  case (Msg$)&lt;br /&gt;    WM_PAINT:&lt;br /&gt;      G_Clear(0);&lt;br /&gt;      RenderSprites;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;    WM_TIMER:&lt;br /&gt;      if (g_key.vkA$)&lt;br /&gt;        PostMessage(hWnd$, WM_CLOSE, 0, 0);&lt;br /&gt;      end;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  end;&lt;br /&gt;  return (true);&lt;br /&gt;end;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;func WinMain&lt;br /&gt;  h$ = newform(, , &amp;amp;mainproc);&lt;br /&gt;  ShowWindow(h$, SW_SHOW);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  InitGameAPIEx(h$, &amp;amp;GameProc, 240, 320, false, 5, 60);&lt;br /&gt;  ShowFPS(true, G_RGB(255, 255, 255));&lt;br /&gt;&lt;br /&gt;  return (true);&lt;br /&gt;end;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;At the first line of code we include the GameAPI library into our project. This is where most of the GameAPI constants are defined. Some really handy functions are defined in as well. The mainproc function is where all GameAPI events are handled. The first event we will handle by default is the WM_CLOSE, which is triggered when the GameAPI main form is closed. Here we need to shutdown the GameAPI by calling ShutGameAPI(hWnd$). It is generally here that you will free all global objects. Sprites are freed by the function automatically. If you load surfaces manually, it is a good place to free them. Next we handle the WM_KEYDOWN and WM_KEYUP events. When a key is pressed (hardware keys on the PocketPC device), a keydown is triggered, then when the key is released, the keyup event is triggered. This code is pretty standard, a special function is called to set the g_key$ structure values, then you can easily check to see which key is being pressed and it supports multiple key presses too.&lt;/p&gt;&lt;p&gt;Next, every game as to have a main code function. At every internal cycle this function will be called. This is where you will handle game specific events like painting and timer. The painting can be handled manually using the WM_PAINT event or if you set the G_AutoDraw(True) right after the InitGameAPIEx() line, PPL will handle the drawing of sprites for you. If you use manual painting, the whole screen as to be repainted, that is why we clear the screen with G_Clear(0). Zero is the color of the background, black in this case. The RenderSprites() function will paint all sprites on screen with the correct layer order and everything. The WM_TIMER is called every game code cycle. We will see later how to change the cycle rate with the SetAISpeed() function. Here is a good place to check for key pressed. In our case if the hardware A key is pressed, we send a close message to the main game form.&lt;/p&gt;&lt;p&gt;The WinMain function is where PPL will start executing instructions for this program. Here we need to create a new form, display it using the ShowWindow() function. Next we need to initialize the GameAPI and the sound engine. InitGameAPIEx() will do all this work for us. We need to tell it what form will be used for the game display (h$), which main game code function to use (&amp;amp;GameProc), the resolution of the game (240x320 QVGA), the fullscreen parameter as to be false. Next is the cycle rate at which to call the WM_TIMER event in the main game function (&amp;amp;GameProc). Every 5 milliseconds PPL will try to trigger the WM_TIMER event. The last parameter is the maximum frames per second to display. 60 is a good generic value, it's smooth, gives time to the main game code to be executed and won't slow down the game by trying to draw unnecessary frames. Next we want to display the FPS (frames per second) information on screen. You might want to turn this off when your game is finished and you are ready to distribute it.&lt;/p&gt;&lt;p&gt;Finally we return a value of true to tell PPL to keep the application alive that it hasn't been closed.&lt;/p&gt;This is a very basic game code structure. We will get into more details with sprites and their internal functions, pixel-perfect collision detection, sprite's mass, friction and velocity, particles and so much more as the series evolve. See you next month and happy game creation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-8422857490892538200?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/8422857490892538200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=8422857490892538200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8422857490892538200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8422857490892538200'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-13-game-api-1.html' title='Tutorial 13 - Game API #1'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-2249399676339662891</id><published>2007-11-16T10:05:00.001-08:00</published><updated>2007-11-16T10:05:37.673-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 12 - SQL</title><content type='html'>&lt;h2&gt;Tutorial 12 - SQL&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;An SQL Primer by Eric Pankoke.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;SQLite is a nice, lightweight database available for both the PC and PocketPC, and can be accessed through PPL using the Sql.ppl header.  If you are interested in adding database support to your applications, I strongly suggest giving SQLite a try, since the database format is identical between the Windows and Windows CE platforms.  Here’s a quick look at how to use SQLite.&lt;/p&gt;&lt;p&gt;Of course, you’ll first want to open the database.  You must keep in mind that SQLite’s open function will create a database if one with the specified name does not exist, so if your application should not run unless using a database supplied with the install, make sure you check for the existence of the file before calling the open function.&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if not (FileExists(AppPath$ + “mydata.db”))&lt;br /&gt;  ShowMessage(“Data does not exist.  Please reinstall application”);&lt;br /&gt;  //Exit function or possibly application&lt;br /&gt;end;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;db$ = SqlOpen(AppPath$ + “mydata.db”);&lt;br /&gt;if(db$ == 0)&lt;br /&gt;  ShowMessage(“error opening database”);&lt;br /&gt;  //Exit function or possibly application&lt;br /&gt;end;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Now you have a variable called db$ that holds a reference to your database.  To retrieve data from a table, simply do the following:&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;rs$ = SqlExec(db$, “SELECT * FROM tblName”, &amp;amp;data$, &amp;amp;rows$, &amp;amp;cols$);&lt;br /&gt;if(rs$ &lt;&gt; SQLITE_OK)&lt;br /&gt;  ShowMessage(“Error retrieving data”);&lt;br /&gt;  //Exit function or possibly application&lt;br /&gt;end;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;If rows$ is greater than 0, data was found in the table.  Data$ is a list containing all of the elements retrieved from the SqlExec command.  The first “row” in the list contains the name of each column.  To navigate through the data, you could do something like the following:&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;for(row_cnt$, 1, row$)&lt;br /&gt;  for(col_cnt$, 1, cols$)&lt;br /&gt;    goto(data$, col_cnt$ - 1);&lt;br /&gt;    data_name$ = data$;&lt;br /&gt;    goto(data$, (row_cnt$ * cols$) – 1 + (col_cnt$ - 1));&lt;br /&gt;    data_value$ = data$;&lt;br /&gt;    ShowMessage(data_name$ + “ = “ + data_value$);&lt;br /&gt;  end;&lt;br /&gt;end;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Finally, you need to make sure you close the database.  To do this, simply call the following:&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;SqlClose(db$);&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;A demo called SqlDemo.ppl comes with PPL, demonstrating some more SQLite commands, such as creating tables and inserting data.  For a comprehensive list of the commands supported by SQLite, check out this web site: &lt;a href="http://www.sqlite.org/"&gt;http://www.sqlite.org&lt;/a&gt;.  Remember that PPL currently supports version 2.8.x of SQLite, so information specific to version 3.x of SQLite don’t apply here.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-2249399676339662891?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/2249399676339662891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=2249399676339662891' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/2249399676339662891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/2249399676339662891'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-12-sql.html' title='Tutorial 12 - SQL'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-2891882444952697639</id><published>2007-11-16T10:04:00.000-08:00</published><updated>2007-11-16T10:05:05.055-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 11 - Arrays</title><content type='html'>&lt;h2&gt;11 - Arrays&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;The world of Arrays&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;PPL has a very strong array system. Just like a good programming language PPL offers multi-dimensional arrays but arrays in PPL can store about anything. There is a big difference.&lt;/p&gt;&lt;p&gt;Arrays in PPL are like C arrays, the base index is 0 and not 1. The first element of an array is always 0 and the last is the size of array - 1.&lt;/p&gt;&lt;p&gt;You can store numbers or strings in arrays. Strings are a little special since they are stored as pointers only. You can have strings of any size in each element of an array. Since strings are stored as pointers you will need to convert them to strings in order to use them with functions in PPL. The good news is that PPL offers an easy-to-use operator that will do just that. The @ operator must be used with an expression (usually a variable) and will convert the result value to the string pointed by the pointer value.&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Dim (a$, 10);  // Creates an array of 10 elements&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;a$[0] = 10.4567;  // Set first array element to value of 10.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;a$[1] = "HELLO";  // Set second array element to&lt;br /&gt;                            the pointer of string "HELLO".&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ShowMessage (a$[0]);  // Shows 10.4567&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ShowMessage (a$[1]);  // Shows the pointer value of&lt;br /&gt;                                   the string and not the string itself.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ShowMessage (@a$[1]);  // Shows "HELLO".&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ShowMessage (@(a$[1] + 2));  // Shows "LLO";&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;There is way to obtain the size of the array by using the sizeof() function:&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ShowMessage (sizeof(a$));  // Shows 80. 10 elements * 8 bytes each.&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Remember that arrays uses double type values to store eveything? Double type values are 8 bytes long.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Multi-dimensional arrays are created and uses the following way:&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Dim (a$, 10, 10, 10);&lt;br /&gt;a$[1,1,2] = 293.42;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;You can also create arrays using your own element type.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;To get an array of bytes:&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;SDIM (a$, TBYTE, 20);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;amp;a$ = "ARRAY OF BYTES";&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ShowMessage(a$[3]);  // Shows 65.&lt;br /&gt;ShowMessage(chr(a$[3]));  // Shows "A".&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;What about an array of integer values?&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;SDIM(a$, TINT, 10, 10);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;a$[5,5] = 1023;&lt;br /&gt;a$[0,0] = 1983;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;How do you iterate through an array?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;There are multiple ways to iterate through a list. The first and easiest is to use the &lt;strong&gt;For&lt;/strong&gt; loop.&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Dim(a$, 10, 10);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;For (x$, 0, 9)&lt;br /&gt;  For (y$, 0, 9)&lt;br /&gt;    a$[x$, y$] = x$ * y$;&lt;br /&gt;  end;&lt;br /&gt;end;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;The second is to use the &lt;strong&gt;ForEach&lt;/strong&gt;.&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Dim(a$, 5, 5);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;i$ = 0;&lt;br /&gt;ForEach (a$, s$);&lt;br /&gt;  s$ = i$++;&lt;br /&gt;end;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Another way is to use the &lt;strong&gt;While &lt;/strong&gt;or the &lt;strong&gt;Repeat&lt;/strong&gt; loops:&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Dim (a$, 10);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;x$ = 0;&lt;br /&gt;i$ = 0;&lt;br /&gt;while (x$ &lt; 10)&lt;br /&gt;  a$[x$] = i$++;&lt;br /&gt;end;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;x$ = 0;&lt;br /&gt;i$ = 0;&lt;br /&gt;repeat&lt;br /&gt;  a$[x$] = i$++;&lt;br /&gt;until (x$ &gt;= 10);&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Remember that arrays can be used to store Structs and Objects. We will see in future tutorials how to do this.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-2891882444952697639?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/2891882444952697639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=2891882444952697639' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/2891882444952697639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/2891882444952697639'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-11-arrays.html' title='Tutorial 11 - Arrays'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-2595295539379227900</id><published>2007-11-16T10:02:00.000-08:00</published><updated>2007-11-16T10:03:20.347-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 9 - Strings</title><content type='html'>&lt;h2&gt;Tutorial 9 - Strings&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;&lt;img src="http://www.arianesoft.ca/e107_images/abecedaire.jpg" style="border: 0px solid black; width: 112px; height: 150px;" alt="abecedaire.jpg" /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;No strings attached!&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Ha! the wonderful world of strings. PPL is the language of choice for strings. It is very versatile, flexible and support many operators you won't see in many languages.&lt;/p&gt;&lt;p&gt;Strings are also managed by an intelligent garbage collector that will create and free the memory as needed.&lt;/p&gt;&lt;p&gt;Variables containing a string are zero-based indexed and are always terminated by a character 0. They can be accessed as arrays to obtain specific characters:&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;s$ = "ABCDEFG";&lt;br /&gt;c$ = s$[0];  // c$ = "A"&lt;br /&gt;c$ = s$[0, 2];  // c$ = "AB"&lt;br /&gt;c$ = s$[2, 0];  // c$ = "FG"&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;If the second array element is 0, it will take x characters from the end of the string, where x is the first array element specified.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Some operators support strings just like numbers.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"Hello " + "World!"&lt;/span&gt;&lt;br /&gt;This will add two strings together. The result string will now be "Hello World!"&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"10" + "20"&lt;/span&gt;&lt;br /&gt;Since both strings contain numbers, PPL will convert them to numbers and add them, the result will be a value of 30. It won't be a string anymore. How do I add them as a string to give a result of "1020" you ask?&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"10" % "20"&lt;/span&gt;&lt;br /&gt;This will concatenate two strings no matter what type they are. The result will be a string "1020". The same thing would have happen by doing "10" % 20 or 10 % 20, the result will be a string "1020".&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"ABC" - "B"&lt;/span&gt;&lt;br /&gt;This will remove all B's from the "ABC" string. In this example the resulting string will be "AC".&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"ABC" - 2&lt;/span&gt;&lt;br /&gt;This will truncate the string by 2 characters from the right. The resulting string will be "A".&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"ABC" * 2&lt;/span&gt;&lt;br /&gt;The string "ABC" will be multiplied two times, the resulting string will be "ABCABC".&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"ABC" / 3&lt;/span&gt;&lt;br /&gt;This will divide the string "ABC" in three parts. In our case the strings "A", "B" and "C" will be returned to the stack and will need to be stored into variables, to do this do the following:&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;A$, B$, C$ = "ABC" / 3;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Variable A$ will contain string "A", variable B$ "B" and C$ "C".&lt;/p&gt;&lt;p&gt;It does not stop here. PPL comes with a full set of string functions.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Conversion&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;PPL variables can store either a string value or a numeric value (double type). You can switch between the two types by doing the following:&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;a$ = 10;&lt;br /&gt;a$ = str(a$);&lt;br /&gt;a$ = int(a$);&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;PPL will take care of using the appropriate type when needed you won't have to worry about variable type conversion but sometimes having a little bit of control helps. The following code is perfectly valid:&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;a$ = 10;&lt;br /&gt;ShowMessage (a$);&lt;br /&gt;a$ = "2";&lt;br /&gt;ShowMessage (mid ("ABCDEF", a$, 2));&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-2595295539379227900?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/2595295539379227900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=2595295539379227900' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/2595295539379227900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/2595295539379227900'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-9-strings.html' title='Tutorial 9 - Strings'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-5857562134642308234</id><published>2007-11-16T10:01:00.002-08:00</published><updated>2007-11-16T10:02:33.293-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 8 - Multiple Forms in a project</title><content type='html'>&lt;h2&gt;Tutorial 8 - Multiple Forms in a project&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;&lt;img src="http://www.arianesoft.ca/e107_images/MultipleWindows_preview.jpg" style="border: 0px solid black; width: 184px; height: 120px;" alt="MultipleWindows_preview.jpg" /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Using multiple forms in a project&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The first thing you should know about forms in PPL is that they are auto-converted to a .ppl file at compile time and if you don't specify the form is a library type form PPL will generate code to create and display the form within a &lt;strong&gt;WinMain&lt;/strong&gt; function. This is perfectly fine for a single form project but in a multi-form project it will cause the compiler to give you an error that you have duplicate WinMain functions.&lt;/p&gt;&lt;p&gt;The solution is very simple. First you need to make sure that your non-main forms will be generated as library type forms, to do this in the PIDE, go to &lt;strong&gt;Form -&gt; Form Options -&gt; Generate Library&lt;/strong&gt; and make sure this menu item is checked. For this example we will save our form file to &lt;strong&gt;MyForm.frm&lt;/strong&gt;. At compile time PPL will generate a new MyForm.ppl file and it will create a new function called &lt;strong&gt;Form100Create ()&lt;/strong&gt; instead of a &lt;strong&gt;WinMain&lt;/strong&gt;. Notice that our form name needs to be &lt;strong&gt;Form100&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;You will now need to include this .ppl file in the code or form you want to call this new form from. A simple &lt;strong&gt;#include "myform"&lt;/strong&gt; will do the trick. Now where to place it you ask? The Initialization section code is the best place, go to &lt;strong&gt;Form -&gt; Initialization section code&lt;/strong&gt; and add the following line:&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#include "myform"&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Once the form file is included in your main form, it is time to create Form100 in memory and display it. In your code where you want to do this, you will need to do the following:&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;f$ = Form100Create;&lt;br /&gt;Form_Show (f$);&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Once you don't need the form anymore, this could be done in the MyForm code, you need to destroy the form from memory by doing the following:&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Form_Close (f$);&lt;br /&gt;Form_Destroy (f$);&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Make sure f$ is valid. You will probably need to call this code from another form. Just closing the form won't destroy it from memory.&lt;/p&gt;&lt;p&gt;If you want MyForm to be a dialog box type form, in the PIDE, make sure Form -&gt; Form Options -&gt; Dialog Form is also checked. This will make the form a special dialog box type form when created. Your calling code will look something like this:&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;f$ = Form100Create;&lt;br /&gt;if (ShowModal (f$, NULL, false) == 1)&lt;br /&gt;  // do some code here&lt;br /&gt;end;&lt;br /&gt;Form_Destroy (f$);&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;The &lt;strong&gt;ShowModal()&lt;/strong&gt; function takes three parameters. The first one is the form handle of the dialog to show, the second is the control to set the focus on when the dialog is shown, this value can be left to NULL, the first control that can get focus will get it and finally the last parameter is whether you want the dialog to be fullscreen or not on the PocketPC, this last value is generally false.&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;How do I set buttons to close my dialog form and return a specific value?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;PPL offers a very easy way to do this. The trick is in the ID of the button. If you want to create an &lt;strong&gt;OK&lt;/strong&gt; button, set the button ID to a value of &lt;strong&gt;1&lt;/strong&gt;. To create a &lt;strong&gt;Cancel&lt;/strong&gt; button, set the ID to a value &lt;strong&gt;2&lt;/strong&gt;. All buttons with an ID less than a value of 100 will close the dialog form and return the ID has a result to the &lt;strong&gt;ShowModal()&lt;/strong&gt; function. This way you are not limited and can create up to 99 buttons that can close a dialog form and each return a specific value. You can create &lt;strong&gt;Ignore&lt;/strong&gt;, &lt;strong&gt;Retry&lt;/strong&gt;, &lt;strong&gt;Yes To All&lt;/strong&gt;, &lt;strong&gt;No To All&lt;/strong&gt; buttons with ease.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-5857562134642308234?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/5857562134642308234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=5857562134642308234' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/5857562134642308234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/5857562134642308234'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-8-multiple-forms-in-project.html' title='Tutorial 8 - Multiple Forms in a project'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-1129823740076017456</id><published>2007-11-16T10:01:00.001-08:00</published><updated>2007-11-16T10:01:48.350-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 7 - SWAPI</title><content type='html'>&lt;h2&gt;Tutorial 7 - SWAPI&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;&lt;img src="http://www.arianesoft.ca/e107_images/align.jpg" style="border: 0px solid black; width: 175px; height: 118px;" alt="align.jpg" /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Using the Simplified Windows API library.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The Windows API is the very low-level basic of all you see on your screen when using Windows. Forms, buttons, comboboxes, etc... are all windows really just painted differently. To move windows around, resize them, change their caption or text, the Windows API is versatile but very complex to use for beginners. The best reference site is the venerable MSDN (Microsoft Developer Network) which can be reached at &lt;a href="http://www.msdn.com/"&gt;www.msdn.com&lt;/a&gt;&lt;/p&gt;&lt;p&gt;PPL is meant to be an easy-to-use language. The SWAPI (Simplified Windows API) is a library that we have created to simplify interaction with windows controls and forms. There are many sets of functions that are grouped in categories each function name following a naming convention.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;For listbox controls, we have ListBox_Add to add an item to the list and for comboboxes we have ComboBox_Add to add an item to the list as well.&lt;/p&gt;&lt;p&gt;We have already learned how to design a form using the PIDE we will now learn how to interact with the controls on our form using the SWAPI library.&lt;/p&gt;&lt;p&gt;If you use the Visual Form Builder in the PIDE or the VFB on the PocketPC the SWAPI library is automatically included in your code file but if you are designing the form with code only, you will need to include the SWAPI.PPL library file in your code, here is how to do it:&lt;/p&gt;&lt;p&gt;#include "swapi"&lt;/p&gt;&lt;p&gt;We think the best way to learn how to use the SWAPI is to give you situations followed by an answer.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;How I hide or show my forms?&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;Form_Show (FormHandle$)&lt;br /&gt;Form_Hide (FormHandle$) &lt;/pre&gt;&lt;p&gt;&lt;strong&gt;How do I move my form around?&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;Form_Move (FormHandle$, x$, y$)&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;How do I resize my form?&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;Form_Resize (FormHandle$, Width$, Height$)&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;How do I close a form?&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;Form_Close (FormHandle$)&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;How do I change the caption of a form?&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;Form_Set (FormHandle$, Caption$)&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;How do I move a control around?&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;Control_Move (ControlHandle$, x$, y$)&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;How do I resize a control?&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;Control_Resize (ControHandle$, Width$, Height$)&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;How do I hide or show a control?&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;Control_Show (ControlHandle$)&lt;br /&gt;Control_Hide (ControlHandle$)&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;How do I set the text from an edit control?&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;Edit_Set (EditHandle$, NewText$)&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;How do I get all list items from a listbox?&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;ListBox_SaveToList (ListHandle$, List$)&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;How do I save all the list items from a listbox?&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;ListBox_SaveToFile (ListHandle$, Filename$)&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;How do I load list items from a file?&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;ListBox_LoadFromFile (ListHandle$, Filename$)&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;How do I change the font of a control?&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;Control_SetFont (ControlHandle$, FormHandle$, FontName$,&lt;br /&gt;FontSize$, Bold$, Italic$, Underline$)&lt;/pre&gt;&lt;p&gt;By now you should get the idea. Review the SWAPI.PPL file from the Lib\ folder to get the full list of functions.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-1129823740076017456?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/1129823740076017456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=1129823740076017456' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/1129823740076017456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/1129823740076017456'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-7-swapi.html' title='Tutorial 7 - SWAPI'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-136334386185975321</id><published>2007-11-16T10:00:00.000-08:00</published><updated>2007-11-16T10:01:01.983-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial - Enable VGA/WM2005 in PPL</title><content type='html'>&lt;h2&gt;Tutorial - Enable VGA/WM2005 in PPL&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;Enabling VGA in PPL and Window Mobile 5.0 compatibility&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;To enable VGA, you will a third-party program like Force Hi-Resolution Tool. Check the following article from the PocketPC Magazine: &lt;a href="http://www.pocketpcmag.com/forum/topic.asp?TOPIC_ID=15471"&gt;http://www.pocketpcmag.com/forum/ topic.asp?TOPIC_ID=15471&lt;/a&gt; to download and install the application.&lt;/p&gt;&lt;p&gt;You can then add PPL.EXE or your own program's executable file generated with PPL to the list.&lt;/p&gt;&lt;p&gt;You can also use Tweaks2k2 to create an .MUI file that you can distribute with your application to enable VGA display. We recommend this solution for an easier distribution. Force Hi-Resolution Tool needs to be installed on the target device to enable VGA. With Tweaks2k2 solution you don't need to install anything other than distributing the .MUI file.&lt;/p&gt;&lt;p&gt;For VGA game development you will need to change the GameAPI InitGameAPIEx resolution to 480 x 640 for normal display or 640 x 480 for landscape display.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Ex:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;InitGameAPIEx&lt;/strong&gt; (h$, NULL, &lt;strong&gt;480&lt;/strong&gt;, &lt;strong&gt;640&lt;/strong&gt;, false, 0, 0);&lt;/p&gt;&lt;p&gt;The last step is to replace the gsgetfile.dll file with a Windows Mobile 5.0 compatible version.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Rename the file gsgetfile.dll from \Program Files\PPL\ to gsgetfile_ppc2000.dll &lt;/li&gt;&lt;li&gt;Copy the file gsgetfile_wm2005.dll to \Program Files\PPL\&lt;/li&gt;&lt;li&gt;Rename the file gsgetfile_wm2005.dll to \Program Files\PPL\ to gsgetfile.dll&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Et voila, the file selection dialog will look correct on Windows Mobile 2005.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-136334386185975321?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/136334386185975321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=136334386185975321' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/136334386185975321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/136334386185975321'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-enable-vgawm2005-in-ppl.html' title='Tutorial - Enable VGA/WM2005 in PPL'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-7189517306668230252</id><published>2007-11-16T09:55:00.000-08:00</published><updated>2007-11-16T09:56:40.577-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>PPL Tech Notes</title><content type='html'>&lt;h2&gt;PPL Tech Notes&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;&lt;img src="http://www.arianesoft.ca/e107_images/technotesLogo.gif" style="border: 0px solid black; width: 250px; height: 53px;" alt="technotesLogo.gif" /&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;How to use strings in arrays?&lt;br /&gt;&lt;/strong&gt;Each element of an array is by default a double type value (8 bytes). Strings cannot be stored directly in an array element, therefore only the string pointer is stored in the array. If you get the value of an array element that is pointing to a string, all you will get is a memory address location where the string is located. You need to use the @ operator to convert the pointer to a string.:&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;proc main dim(array$, 10);&lt;br /&gt;  array$[0] = "THIS IS A STRING";&lt;br /&gt;  array$[1] = "THIS IS ANOTHER STRING";&lt;br /&gt;  ShowMessage(@array$[0]);&lt;br /&gt;  ShowMessage(@array$[1]);&lt;br /&gt;end;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;How do return an array from a func?&lt;br /&gt;&lt;/strong&gt;Returning an array from a function is quite easy but to assign the new array returned to a variable can be tricky if you don't know how. You need to use the &amp;amp; operator to assign a new pointer to the variable.:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;func mytest&lt;br /&gt;  dim(array$, 10);&lt;br /&gt;  Fill(array$, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);&lt;br /&gt;  return (array$);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;proc main&lt;br /&gt;  dim(newarray$, 10);&lt;br /&gt;  &amp;amp;newarray$ = mytest;&lt;br /&gt;  For(i$, 0, 9)&lt;br /&gt;    ShowMessage(newarray$[i]);&lt;br /&gt;  end;&lt;br /&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How do I use linked-list as parameters?&lt;br /&gt;&lt;/strong&gt;Linked-list variables are very special. They are usually perceived as single values to the PPL interpreter unless you use special list functions with them. Passing linked-lists as parameters can only be done by passing them as pointers.&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;proc test(l$)&lt;br /&gt;  add(l$, 10, 20, 30);&lt;br /&gt;end;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;proc main&lt;br /&gt;  list(l$);&lt;br /&gt;  test(&amp;amp;l$);&lt;br /&gt;  ForEach(l$)&lt;br /&gt;    ShowMessage(l$);&lt;br /&gt;  end;&lt;br /&gt;end;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;What if you don't know the size of an array returned from a func?&lt;br /&gt;&lt;/strong&gt;In order to return an array from a function, you have to make sure you have declared an array that is large enough to hold the data that gets returned.The ForEach statement works, but it loops over all elements of the target array. Make sure that you process your subset of values and not the garbage at the end of the array.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;How do I create a linked-list?&lt;br /&gt;&lt;/strong&gt;A linked-list is made of a infinite (memory capacity is your only limit) number of elements linked together. You can build lists by adding elements, inserting element and removing elements. You can access elements of a list directly by it's index location or by moving forward or backward within the list.:&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;List(l$);&lt;br /&gt;Add(l$, 1, 2, 3, 4, 5, 6, 7);&lt;br /&gt;Goto(l$, 2);&lt;br /&gt;ShowMessage(l$);&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;The list variable will always contain the value of the list element the list cursor is on. You can move this cursor by using the Goto() function or the First(), Last(), Next() or Prior() functions.:&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;First(l$);&lt;br /&gt;ShowMessage(l$);&lt;br /&gt;Next(l$);&lt;br /&gt;ShowMessage(l$);&lt;br /&gt;Prior(l$);&lt;br /&gt;ShowMessage(l$);&lt;br /&gt;Goto(l$, 2);&lt;br /&gt;ShowMessage(l$);&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;How do I move elements within the list?&lt;br /&gt;&lt;/strong&gt;You can move elements to different position within the list by using the LMove() function.:&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;List(l$);&lt;br /&gt;Add(l$, 1, 2, 3, 4, 5, 6);&lt;br /&gt;LMove(l$, 0, 3);&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;The list will now contain the following elements:&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;2, 3, 4, 1, 5, 6&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;How do I copy a list to an array?&lt;br /&gt;&lt;/strong&gt;In PPL it is possible to copy a list to an array by doing the following:&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;list(l$);&lt;br /&gt;add(l$, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);&lt;br /&gt;Dim(a$, 10);&lt;br /&gt;ListToArray(l$, a$);&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Can I use a WIN32 API function?&lt;br /&gt;&lt;/strong&gt;The #declare statement can be used to map WIN32 API functions to PPL.  The syntax is:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#declare PPL_Alias DLL_Name Win32API_Nam&lt;br /&gt;e #InputParams #OutputParms&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;You can use this to call an API function that hasn't been declared yet. Most declares are in Windows.PPL. Here is an example:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#declare GetWindow apidll GetWindow 2 1&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;The DLL_Name parameter (apidll in the above example) is an alias.  This is so that when switching platforms, the different DLL names among platforms can be taken into account. You can find these names declared in DEFS.PPL.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The #declareapi keyword solves a similar platform problem; the selection of the ASCII or the Unicode version of the function automatically.  Using SetWindowsText as an example. Look in Windows.ppl and you'll see:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#declareapi SetWindowText apidll SetWind&lt;br /&gt;owText 2 1&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;The PPC uses Unicode text and XP uses Ascii text. The Windows OS accomplishes this by having 2 functions SetWindowTextW and SetWindowTextA. A macro exists to map the function you need to SetWindowText. In PPL, this is done by #declareapi. It really looks for SetWindowTextW and SetWindowTextA within the referenced DLL.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;How to use objects in a linked-list?&lt;/strong&gt;&lt;br /&gt;It is possible to store objects in linked-list offering a wide range of possibilities to your applications. You don't need to store objects using their pointers. All you need to do is to assign the current list element with an object and PPL will take care of the rest.&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#class myclass&lt;br /&gt;  public (z$);&lt;br /&gt;  private (x$);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  nproc create&lt;br /&gt;    x$ = args$[0];&lt;br /&gt;  end;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  func getx&lt;br /&gt;    return(x$);&lt;br /&gt;  end;&lt;br /&gt;&lt;br /&gt;  proc m&lt;br /&gt;    ShowMessage(x$ + "," + z$);&lt;br /&gt;  end;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#endclass&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;proc main&lt;br /&gt;  Local(l$, i$);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  List(l$);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  for(i$, 1, 5)&lt;br /&gt;    Add(l$);&lt;br /&gt;    #object myclass l$(i$);&lt;br /&gt;  end;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  foreach(l$)&lt;br /&gt;    l.z$ = l.getx * 2;&lt;br /&gt;    l.m;&lt;br /&gt;  end;&lt;br /&gt;end;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;How to use objects in an array?&lt;/strong&gt;&lt;br /&gt;Support for objects in arrays is supported by default in PPL. All you need to do is to assign an object to an array using the = operator. You cannot directly store an object into an array element using the #object statement, you need to assign it after with the = operator.&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#class myclass&lt;br /&gt;  public(v$, x$);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  public proc m&lt;br /&gt;    ShowMessage(v$ + "," + x$);&lt;br /&gt;  end;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#endclass&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#class myclass2&lt;br /&gt;  public(v$);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;  public proc m&lt;br /&gt;    ShowMessage(v$);&lt;br /&gt;  end;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#endclass&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;proc main&lt;br /&gt;  dim(o$, 10);&lt;br /&gt;&lt;br /&gt;  For (i$, 1, 5)&lt;br /&gt;    #object myclass z$;&lt;br /&gt;    o$[i] = z$;&lt;br /&gt;    o$[i].x$ = i$ * 2;&lt;br /&gt;    myclass2(o$[i]).v$ = i$;  // Classtyping&lt;br /&gt;  end;&lt;br /&gt;&lt;br /&gt;  For (i$, 1, 5)&lt;br /&gt;    o$[i].m;&lt;br /&gt;    myclass2(o$[i]).m;  // Classtyping&lt;br /&gt;  end;&lt;br /&gt;end;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;How to create a memory allocation and return the pointer from a function?&lt;br /&gt;&lt;/strong&gt;In function MyTest we create a new variable based on the size of the variable string$ adding 10 to the new length. We use the static(n$) to make sure the pointer of ptr$ will not be destroyed when the function MyTest exit. We then concatenate string$ to the string " New" and put the result into n$. We then have to return the pointer of n$ by doing return(&amp;amp;n$);.&lt;/p&gt;&lt;p&gt;When we call MyTest from the Main procedure, the return value is a pointer value assigned to variable ptr$. We then need to output the memory content of that pointer. We use @ptr$. The @ will convert the pointer to the memory content. We display it as a string. Then we need to free the memory allocated in MyTest of ptr$ because PPL cannot do it anymore since ptr$ contains a numerical value (a pointer address value).&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;func mytest (string$)&lt;br /&gt;  new(n$, sizeof(string$)+10);&lt;br /&gt;  static(n$);&lt;br /&gt;  n$  = string$ % " new";&lt;br /&gt;  return(&amp;amp;n$);&lt;br /&gt;end;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;proc main&lt;br /&gt;  ptr$ = mytest("Old ");&lt;br /&gt;  ShowMessage(@ptr$);&lt;br /&gt;  free(ptr$);&lt;br /&gt;end;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;How to use lists as parameters and return list values?&lt;br /&gt;&lt;/strong&gt;Lists are handled as normal variables by the PPL interpreter. It means that the current list position index value is used by the interpreter at all time. If you assign a value to a list, the current list position value is set, the same for returning a list variable from a func. Only the current list position value will be returned. The best way to return list variables to a proc or func is to pass the parameter variable as a pointer with the &amp;amp; operator. In the example above, we first pass l$ as a non-pointer value, therefore the values 4, 5 and 6 are not added to the list. The second time we call the test procedure, we pass the list variable as pointer, therefore the 4, 5 and 6 values are properly added to the list on return.&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;proc test(l$)&lt;br /&gt;  add(l$, 4, 5, 6);&lt;br /&gt;end;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;proc main&lt;br /&gt;  list(l$);&lt;br /&gt;  add(l$, 1, 2, 3);&lt;br /&gt;  test(l$);&lt;br /&gt;  ForEach (l$)&lt;br /&gt;    ShowMessage(l$);&lt;br /&gt;  end;&lt;br /&gt;  test(&amp;amp;l$);&lt;br /&gt;  ForEach (l$)&lt;br /&gt;    ShowMessage(l$);&lt;br /&gt;  end;&lt;br /&gt;end;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-7189517306668230252?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/7189517306668230252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=7189517306668230252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7189517306668230252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7189517306668230252'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/ppl-tech-notes.html' title='PPL Tech Notes'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-4626291378967154792</id><published>2007-11-15T01:28:00.000-08:00</published><updated>2007-11-15T01:29:32.362-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Tutorial 3 - Create a game visually</title><content type='html'>&lt;h2&gt;Tutorial 3 - Create a game visually&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;Create a game visually&lt;/p&gt;&lt;p&gt;Ever wanted to create a game easily without too much coding? Well you know it cannot be done without coding but things can certainly be simpler. PPL offers a nice solution to help you design the game levels and reduce coding to a minimum.&lt;/p&gt;&lt;p&gt;The Game Level Editor that ships with the PIDE is a unique tool that will allow you to design each levels of your game visually, just like designing a form. Each object is represented as a sprite, each sprite has it's own set of styles, properties and events.&lt;/p&gt;&lt;p&gt;The first step is to launch the Game Level Editor, press the Game Level Editor button on the toolbar:&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Tutorial12.png" style="border: 0px solid black; width: 134px; height: 63px;" alt="Tutorial12.png" /&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt; &lt;/p&gt;&lt;p&gt;Once this is done you will be presented with an empty map. Since the GLE (Game Level Editor) is a multi-map editor you are now presented with map #1. We will use map from now on instead of level, they are the same. Now it's time to save the game to make sure that all images you will insert into the game will have a pathname that is relative to the game's current folder. If you don't save your game now, the images will be treated as static pathname and if you try to play the game on the PocketPC or from another target folder location the images won't be found. Save the game to C:\Program Files\PPL\Tutorials\MyGame.gam.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Tutorial13.png" style="border: 0px solid black; width: 426px; height: 264px;" alt="Tutorial13.png" /&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt; &lt;/p&gt;&lt;p&gt;By now you are probably thinking, "What kind of game are going to create?". I will tell right now. We will create a demo of two basketballs that will fall from the middle of screen and bounce from the screen edges acting like real balls in the real world using the GameAPI proprietary physic engine. We will assign each ball a mass, friction, shape and collision id's and let the physic engine do the rest.&lt;/p&gt;&lt;p&gt;Now it is time to add our first sprite. The first sprite we will add will be a basketball. Here is the important step, you will need to copy the ball.bmp image file from the C:\Program Files\PPL\Demos folder to C:\Program Files\PPL\Tutorials. This step will ensure that the image is always available to your game nomatter where the game is ran from.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Tutorial15.png" style="border: 0px solid black; width: 498px; height: 375px;" alt="Tutorial15.png" /&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt; &lt;/p&gt;&lt;p&gt;To add a new sprite to our game, click the sprite button in the toolbar on the left.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Tutorial14.png" style="border: 0px solid black; width: 65px; height: 138px;" alt="Tutorial14.png" /&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt; &lt;/p&gt;&lt;p&gt;Now, let's double-click on the sprite that was just created, it's the green empty screen on your map screen. Let's now select the ball.bmp image file from the C:\Program Files\PPL\Tutorials folder.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Tutorial16.png" style="border: 0px solid black; width: 428px; height: 266px;" alt="Tutorial16.png" /&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt; &lt;/p&gt;&lt;p&gt;The ball sprite will look like this:&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Tutorial17.png" style="border: 0px solid black; width: 64px; height: 57px;" alt="Tutorial17.png" /&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt; &lt;/p&gt;&lt;p&gt;The fuschia color around the ball needs to be removed. In order to do this, we will need to change the sprite's &lt;strong&gt;TransparentColor&lt;/strong&gt; property to the fuschia color. Scroll the properties list until you find the &lt;strong&gt;TransparentColor&lt;/strong&gt; property then right click on it and select color fuschia. The ball sprite will now show without the borders.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Tutorial18.png" style="border: 0px solid black; width: 263px; height: 258px;" alt="Tutorial18.png" /&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt; &lt;/p&gt;&lt;p&gt;It is now time to set some properties to the sprite. We will first set the ball &lt;strong&gt;Mass&lt;/strong&gt; to the value 0.5. Scroll the properties list until you find the &lt;strong&gt;Mass&lt;/strong&gt; line. Change the value to 0.5. Let's apply some friction to make sure the ball slows down after a little while. Change the &lt;strong&gt;Friction&lt;/strong&gt; property to 0.01. The ball needs to bounce from the screen edges, it needs to be elastic. Change the &lt;strong&gt;Elasticity&lt;/strong&gt; property to 0.01. Now let's make sure the ball will not go too fast in case the rebound gets too great or too low. Change the &lt;strong&gt;VelLimitLow&lt;/strong&gt; to 0 and &lt;strong&gt;VelLimitHigh&lt;/strong&gt; to 10. This will make sure the ball's velocity will not go over a value of 10 pixels. The ball will need to collide with the other ball will insert later. In order to do this we need to define the ball's Id and with which &lt;strong&gt;Id&lt;/strong&gt; it will collide with. Change the ball &lt;strong&gt;Id&lt;/strong&gt; to BALL and the &lt;strong&gt;Collide&lt;/strong&gt; value to BALL also. This will make sure two balls will collide with each other as long as their id's are both BALL.&lt;/p&gt;&lt;p&gt;Now that we are done with the changing the ball's properties, we need to set some of styles. We need to make sure the ball will check for collision, check the &lt;strong&gt;SO_CHECKCOLLIDE&lt;/strong&gt; style. The ball will need to bounce off of screen edges (borders), check the &lt;strong&gt;SO_BORDER&lt;/strong&gt; style. We also need to apply physics to the ball, check the &lt;strong&gt;SO_KINETIC&lt;/strong&gt; to make sure the physic engine handles the properties we've set earlier. The collision detection needs to be done on a per-pixel basis so that only the pixels of ball will collide, check the &lt;strong&gt;SO_PIXELCHECK&lt;/strong&gt; style. And lastly we need to define the ball as an oval shape for the physic engine to calculate the physical attributes accordingly, check the &lt;strong&gt;SO_OVAL&lt;/strong&gt; style.&lt;/p&gt;&lt;p&gt;It's time to test our game, save your game and select the Run -&gt; Run menu item.&lt;/p&gt;&lt;p&gt;Nice isn't it? What about we put two more balls in there and look at them bouncing off each others? Copy the first ball sprite by selecting it and selecting Edit -&gt; Copy. Now paste the second ball, select Edit -&gt; Paste. Do another Edit -&gt; Paste command. Move the balls to position them in the same way the following picture shows.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Tutorial20.png" style="border: 0px solid black; width: 239px; height: 322px;" alt="Tutorial20.png" /&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt; &lt;/p&gt;&lt;p&gt;Run the program again, select Run -&gt; Run.&lt;/p&gt;&lt;p&gt;Without a single line of code you have just created a nice demo with physics that you could not even imagine you could do. Image what you can do next...&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-4626291378967154792?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/4626291378967154792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=4626291378967154792' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/4626291378967154792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/4626291378967154792'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-3-create-game-visually.html' title='Tutorial 3 - Create a game visually'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-4923750982163195553</id><published>2007-11-14T11:58:00.000-08:00</published><updated>2007-11-15T01:19:37.106-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><title type='text'>Tutorial #2</title><content type='html'>&lt;h2&gt;Tutorial #2 - Form based Hello World&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p&gt;&lt;strong&gt;Form based Hello World&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;An Hello World program is great to learn the basics of a language but anyone knows that a good looking program using forms is what sells. PPL offers an easy to use visual form builder to simplify this task. Lets design a form based Hello World program that will do a little bit than the usual message on screen.&lt;/p&gt;&lt;p&gt;Lets first start by creating a new form. Click the form builder icon in the toolbar.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Tutorial6.png" alt="Tutorial6.png" /&gt;&lt;/p&gt;&lt;p&gt;Save the form to C:\Program Files\PPL\Tutorials\Hello World Form.frm. Click the save button.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Tutorial9.png" style="border: 0px solid black; width: 426px; height: 264px;" alt="Tutorial9.png" /&gt;&lt;/p&gt;&lt;p&gt;Now design the following form.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Tutorial8.png" style="border: 0px solid black; width: 241px; height: 322px;" alt="Tutorial8.png" /&gt;&lt;/p&gt;&lt;p&gt;Add a Label component. Change the caption property with "Click the button".&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Tutorial7.png" style="border: 0px solid black; width: 209px; height: 106px;" alt="Tutorial7.png" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Add an EDIT component on the form. that is the text box, and that name should be replaced with "&lt;span style="font-family:courier new,courier;"&gt;EDIT103".&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Add a new BUTTON component and change the caption to "Click Me!". Now double-click on the button to edit its onClick event code. Type the following line:&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new,courier;"&gt;Edit_Set(EDIT103$, "Hello World!");&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The complete code should look like this:&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Tutorial11.png" style="border: 0px solid black; width: 472px; height: 81px;" alt="Tutorial11.png" /&gt;&lt;/p&gt;&lt;p&gt;Now select Run -&gt; Run. Here the result form after pushing the Click Me! button.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Tutorial10.png" style="border: 0px solid black; width: 242px; height: 308px;" alt="Tutorial10.png" /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-4923750982163195553?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/4923750982163195553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=4923750982163195553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/4923750982163195553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/4923750982163195553'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-2.html' title='Tutorial #2'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-1386962898711518362</id><published>2007-11-14T11:45:00.000-08:00</published><updated>2007-11-14T11:46:11.414-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPL Tutorials'/><title type='text'>Tutorial #1 - Hello World</title><content type='html'>&lt;h2&gt;Tutorial #1 - Hello World&lt;/h2&gt;   &lt;div class="contentbody"&gt;&lt;p align="center"&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt;Hello World&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Pocket Programming Language's syntax is very easy to learn. It is simple, clean and very efficient. The syntax is a mixture of the best features of the most common programming languages like C, C++, Pascal and Basic. If you know just little bit of programming, chances are you will pickup PPL in no time.&lt;/p&gt;&lt;p&gt;Now it is time to write your first program in PPL. You can now show your friends that you can write programs on the PocketPC and the PC with just one source code.&lt;/p&gt;&lt;p&gt;Open up the PIDE (short for PPL IDE) and select &lt;strong&gt;File -&gt; New&lt;/strong&gt;. A new source code window will open. Write the following line inside that text:&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;ShowMessage("Hello World!");&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Now let's save our program. To  do this, simply select &lt;strong&gt;File -&gt; Save as...&lt;/strong&gt; Save it to &lt;strong&gt;C:\Program Files\PPL\Tutorials\Hello World.ppl&lt;/strong&gt; You will have create the folder Tutorials first.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Tutorial1.png" style="border: 0px solid black; width: 495px; height: 289px;" alt="Tutorial1.png" /&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt; &lt;/p&gt;&lt;p&gt;It's time to see if we have made any errors typing this code. Select &lt;strong&gt;Run -&gt; Compile&lt;/strong&gt;. The first PPL will do is to ask you where you want to run the current program from and the location where PPL runtime has been installed. Every new file you run or compile will need this value entered the first time. If you use a project, PPL will save the locations for you in the project file, you won't have to do it again.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Tutorial2.jpg" style="border: 0px solid black; width: 392px; height: 175px;" alt="Tutorial2.jpg" /&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt; &lt;/p&gt;&lt;p&gt;Compiling your code first will produce a compilation report. If there are any errors, simply double-click on the line in error on the report and it will bring you right where the error occurred in your source code.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Tutorial3.png" style="border: 0px solid black; width: 488px; height: 127px;" alt="Tutorial3.png" /&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt; &lt;/p&gt;&lt;p&gt;Finally it's time to run this nice little program. Select &lt;strong&gt;Run -&gt; Run&lt;/strong&gt;. Voila you will have a nice little dialog with Hello World! in it.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Tutorial4.png" style="border: 0px solid black; width: 104px; height: 100px;" alt="Tutorial4.png" /&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt; &lt;/p&gt;&lt;p&gt;Let's now run it on the PocketPC. Go to the top right side of the PIDE in the toolbar, change the Target Device to PocketPC. Select &lt;strong&gt;Run -&gt; Run&lt;/strong&gt;, enter the default location where you want the program to run from. In this case we will use the default &lt;strong&gt;\My Documents\&lt;/strong&gt;. The source code will be transfered to &lt;strong&gt;\My Documents\Hello World.ppl&lt;/strong&gt; and run from there on the PocketPC.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;What if we would go step further and make this Hello World program a little more sophisticated?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Change the source code to this:&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;proc DisplayMessage (message$)&lt;br /&gt;  ShowMessage (message$);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;proc Main&lt;br /&gt;  DisplayMessage ("Hello World!");&lt;br /&gt;end;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This program will give you the same result but we can now see how to use procedures and pass parameters to them. Select File -&gt; Save to save the file. Compile it, then run it.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;What about the console you ask?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Let's rewrite the program again but this time, we will output the Hello World! line to the console. Change the program to the following code:&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;#include "console"&lt;br /&gt;&lt;br /&gt;func WinMain&lt;br /&gt;  InitConsole;&lt;br /&gt;  ShowConsole;&lt;br /&gt;&lt;br /&gt;  Writeln ("Hello World!");&lt;br /&gt;&lt;br /&gt;  return (true);&lt;br /&gt;end;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;It is a little different this time. PPL needs to run in window mode since a new console window will be created. You need to return a false value to tell PPL not to free the application from memory when the function WinMain finish executing. The first line is to include the console.ppl library in our program. Next we need to initialize the console and then we display it with ShowConsole. All we need to do now is display our Hello World! line using the Writeln function.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.arianesoft.ca/e107_images/Tutorial5.png" style="border: 0px solid black; width: 373px; height: 253px;" alt="Tutorial5.png" /&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt; &lt;/p&gt;&lt;p&gt;If you would like to review the functions and procedures of the console.ppl library, click on the console world in the #include line of your program and press SHIFT+F11 to open the console.ppl file in the editor.&lt;/p&gt;&lt;p&gt;So there we are. Our first &lt;span class="searchhighlight"&gt;tutorial&lt;/span&gt;, a simple program but one that works and both platforms with any modifications and that can be a good start to expand your ideas. Have fun and see you next time.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-1386962898711518362?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/1386962898711518362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=1386962898711518362' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/1386962898711518362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/1386962898711518362'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/tutorial-1-hello-world.html' title='Tutorial #1 - Hello World'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-5606956046134149965</id><published>2007-11-11T09:42:00.000-08:00</published><updated>2007-11-11T09:45:30.613-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><title type='text'>MSDict v5.60</title><content type='html'>&lt;span class="postdetails"&gt;       &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;MSDict v5.60&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Requirements:&lt;/span&gt; WM 2003, WM 2005,2006&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Overview:&lt;/span&gt; The MSDict Viewer is a shell program for various high quality dictionaries,Oxford,Cambridge,Collins...&lt;br /&gt;&lt;img src="http://forum.ppcwarez.org/download/file.php?id=2809" alt="Image" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;More Info:&lt;/span&gt;   &lt;br /&gt;&lt;div class="codewrapper"&gt;&lt;div class="codetitle"&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/div&gt;&lt;div class="codecontent"&gt;  http://www.mobisystems.com/ &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Download Instructions:&lt;/span&gt;&lt;br /&gt;Download the patch here &lt;!-- m --&gt;&lt;a class="postlink" target="_new" href="http://anonym.to/?http://www.megaupload.com/?d=L9TMFUZV"&gt;http://www.megaupload.com/?d=L9TMFUZV&lt;/a&gt;&lt;!-- m --&gt; - instructions included.&lt;br /&gt;Next, download the Cambridge Advanced Dic + the MSDictViewer here &lt;!-- m --&gt;&lt;a class="postlink" target="_new" href="http://anonym.to/?http://rapidshare.com/files/64073374/Cambridge_Advanced_Learners_Dictionary_PPC_5.60.20.rar.html"&gt;http://rapidshare.com/files/64073374/Cambridge_Advanced_Learners_Dictionar ... 0.rar.html&lt;/a&gt;&lt;!-- m --&gt; &lt;br /&gt;Use the patch, enter 10 digit number in the reg box.&lt;br /&gt;&lt;br /&gt;Mirror for the patch: &lt;a href="http://rapidshare.com/files/64070445/Patcher.zip.html" class="postlink"&gt;http://rapidshare.com/files/64070445/Patcher.zip.html&lt;/a&gt;&lt;br /&gt;Mirror for the application :&lt;a href="http://www.megaupload.com/?d=4HWZNFXG" class="postlink"&gt;http://www.megaupload.com/?d=4HWZNFXG&lt;/a&gt;&lt;br /&gt;Mirrors for MSDict v5.60 + Patcher:&lt;br /&gt;&lt;!-- m --&gt;&lt;a class="postlink" target="_new" href="http://anonym.to/?http://www.sendspace.com/file/7rpdep"&gt;http://www.sendspace.com/file/7rpdep&lt;/a&gt;&lt;!-- m --&gt;&lt;br /&gt;&lt;!-- m --&gt;&lt;a class="postlink" target="_new" href="http://anonym.to/?http://www.zshare.net/download/4384975f992dbe/"&gt;http://www.zshare.net/download/4384975f992dbe/&lt;/a&gt;&lt;!-- m --&gt;&lt;br /&gt;&lt;!-- m --&gt;&lt;a class="postlink" target="_new" href="http://anonym.to/?http://www.4shared.com/file/27178889/d5a6ffc8/CambridgeAdvancedLearnersDictionaryPPC_56020Patcher.html"&gt;http://www.4shared.com/file/27178889/d5a6ffc8/CambridgeAdvancedLearnersDic ... tcher.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-5606956046134149965?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/5606956046134149965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=5606956046134149965' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/5606956046134149965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/5606956046134149965'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/msdict-v560.html' title='MSDict v5.60'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-34020479711172712</id><published>2007-11-10T23:22:00.000-08:00</published><updated>2007-11-11T09:41:50.948-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev'/><title type='text'>Pelles C v4.50 (freeware)</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Pelles C v4.50&lt;/span&gt; (freeware)&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Requirements:&lt;/span&gt; PC and/or PPC (CE 2.0 â€¢ CE 3.0 â€¢ CE 4.0 â€¢ CE 5.0)&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Overview:&lt;/span&gt; Pelles C for Windows is a complete development kit for Windows and Pocket PC. It contains among other things an optimizing C compiler, a linker, a resource compiler, a message compiler, a make utility and install builders for both Windows and Pocket PC.&lt;br /&gt;&lt;br /&gt;New project dialog:&lt;br /&gt;&lt;img src="http://www.smorgasbordet.com/pellesc/images/screen4.png" alt="Image" /&gt;&lt;br /&gt;&lt;br /&gt;ARM debugger:&lt;br /&gt;&lt;img src="http://www.smorgasbordet.com/pellesc/images/screen13.png" alt="Image" /&gt;&lt;br /&gt;&lt;br /&gt;It also contains an integrated development environment (IDE) with project management, debugger, source code editor and resource editors for dialogs, menus, string tables, accelerator tables, bitmaps, icons, cursors, animated cursors, animation videos (AVI's without sound), versions and XP manifests.&lt;br /&gt;&lt;br /&gt;The compiler is based on LCC (by Chris Fraser and David Hanson), and the install builder for Windows is based on NSIS. Both are heavily modified.&lt;br /&gt;&lt;br /&gt;Features:&lt;br /&gt;&lt;br /&gt; * Integrated resource editor.&lt;br /&gt; * Integrated bitmap, icon and cursor editor.&lt;br /&gt; * Integrated animated cursor and video editor.&lt;br /&gt; * Integrated hex-dump editor.&lt;br /&gt; * Integrated source-level debugger.&lt;br /&gt; * Integrated source code editor with Win32 API call tips.&lt;br /&gt; * Project management.&lt;br /&gt; * Inline assembler with Intel syntax.&lt;br /&gt; * Support for custom controls in the dialog editor.&lt;br /&gt; * Support for additional project wizards.&lt;br /&gt; * Support for Microsoft's exception handling: __try, __except, __finally, __leave.&lt;br /&gt; * Support for Microsoft's new import libraries.&lt;br /&gt; * Support for delayed loading of DLL's, much like Microsoft.&lt;br /&gt; * Support for most C99 features.&lt;br /&gt; * Support for Pocket PC.&lt;br /&gt; * Pelles C is free! (but this site, and all the work, isn't - so donations are welcome)&lt;br /&gt;&lt;br /&gt;More Info:&lt;br /&gt;&lt;div class="codewrapper"&gt;&lt;div class="codetitle"&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/div&gt;&lt;div class="codecontent"&gt;http://www.christian-heffner.de/&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;or&lt;br /&gt;&lt;div class="codewrapper"&gt;&lt;div class="codetitle"&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/div&gt;&lt;div class="codecontent"&gt;http://www.smorgasbordet.com/pellesc/&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Download Instructions:&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-34020479711172712?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/34020479711172712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=34020479711172712' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/34020479711172712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/34020479711172712'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/pelles-c-v450-freeware.html' title='Pelles C v4.50 (freeware)'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-8229379178394716472</id><published>2007-11-10T23:21:00.000-08:00</published><updated>2007-11-10T23:22:17.878-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Health'/><category scheme='http://www.blogger.com/atom/ns#' term='App'/><title type='text'>BioBody Personal Trainer Edition 2.11</title><content type='html'>&lt;div class="postbody"&gt;&lt;span style="font-weight: bold;"&gt;BioBody Personal Trainer Edition 2.11&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Requirements:&lt;/span&gt; Window 2002/2003SE/WM5&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Overview:&lt;/span&gt; New! More flexibility for different exercise programs! Track your food and workout information. Powerful graphs and views.&lt;br /&gt;&lt;img src="http://trials2.pocketgear.com/Product_images/5/538/biotodayanim2.gif" alt="Image" /&gt;&lt;br /&gt;&lt;br /&gt;New! BioBody 2 is here! Offers improved performance, and the ability to track multiple users. See BioBody Personal Trainer Edition if you wish to use multiple users on the same device.&lt;br /&gt;&lt;br /&gt;BioBody still works great with the Body For Life program, but was redesigned to accomodate just about any type of exercise program. Now you can enter as many as three aerobic workouts and 144 different sets of strength exercises a day! See the change log at the biomobility.com web site for what is new. BioBody can help you keep track of your strength and aerobic workouts and food intake. BioBody begins with a display of your workout and diet information on its own "Today" screen (which is separate from your Pocket PC's built-in today screen) for at-a-glance viewing of your overall plan for the day.&lt;br /&gt;&lt;br /&gt;Log your upper body, lower body, and aerobic workouts at their individual views. BioBody can automatically bring in the data from your last workout for easy data entry. BioBody also allows you to customize the drop down lists to include your own favorite exercises! Entering your data only takes seconds! Leave those thick paper exercise and food logs behind!&lt;br /&gt;&lt;br /&gt;Logging your food intake is a snap. Just pick out your foods from the protein, carbohydrate, vegetable, and other/supplement lists! The format of the food page will look very familiar to people following the Body For Life program&lt;br /&gt;&lt;br /&gt;BioBody Reports View gives you a great way to view your progress. View graphs of your weight, body fat, water intake, workouts completed, weight used, blood pressure, resting heart rate, measurements, and more! The new graphing functions in BioBody 2 include over 600 different combinations of graphs!&lt;br /&gt;&lt;br /&gt;Store a photo to view for inspiration. A great place for your "before" photo or whatever motivates you!&lt;br /&gt;&lt;br /&gt;Month view allows an at-a-glance view of your completed workouts, a month at a time. Use the new integrated utilities functions to back up your data, import from a prior version of BioBody, or export to .csv format for analysis on the desktop.&lt;br /&gt;&lt;br /&gt;For a more detailed look at BioBody, see the online user guide at biomobility.com. Your suggestions for BioBody are welcomed. Plese mail mailto:support@biomobility.com with your suggestions&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Download Instructions:&lt;/span&gt; Unzip, Install, Register with keygen&lt;br /&gt;&lt;div class="codewrapper"&gt;&lt;div class="codetitle"&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/div&gt;&lt;div class="codecontent"&gt;http://rapidshare.com/files/5000184/apbbv211.zip&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-8229379178394716472?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/8229379178394716472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=8229379178394716472' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8229379178394716472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8229379178394716472'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/biobody-personal-trainer-edition-211.html' title='BioBody Personal Trainer Edition 2.11'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-1323414167061377086</id><published>2007-11-10T22:24:00.000-08:00</published><updated>2007-11-10T22:35:16.881-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='tests'/><title type='text'>Personality Psychology Pro v1.6</title><content type='html'>&lt;div class="postbody"&gt;&lt;span style="font-weight: bold;"&gt;Personality Psychology Pro v1.6&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Requirements:&lt;/span&gt; WM 2002-2006 &lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Overview:&lt;/span&gt; A huge pack of personality test &amp;amp; games presented in a pleasant / funny way. By these Psychology tests &amp;amp; games you can realize much more about yourself and about your companion (Sexual partner). You can analyze your personality and find out what is on your mind. You can use this program to understand yourself, to find more about a close person or to have fun with your friends. You can even impress someone by its accurate results.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://forum.ppcwarez.org/files/images/15156_ppcpersonalitylong_1.gif" alt="Image" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Features:&lt;/span&gt;&lt;br /&gt;This program is a pack of:&lt;br /&gt;* personality tests (&gt; 1000 ques.),&lt;br /&gt;* personality statistics and outcome&lt;br /&gt;* games/fun (Graph., text, stories etc)&lt;br /&gt;* birthday analysis  (What tree did you fall from? etc)&lt;br /&gt;* you can set up to 3 completely different users at the same time!&lt;br /&gt;â€¦and much more that will make you realize about your character learn more about psychology and of course have fun.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DETAILS:&lt;/span&gt;&lt;br /&gt;The program consists of three major parts:     &lt;br /&gt;  &lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1) FUN / GAMES:&lt;/span&gt;&lt;br /&gt;Graphical tests:&lt;br /&gt;* Paint Test&lt;br /&gt;* Image Test&lt;br /&gt;Textual tests:&lt;br /&gt;* Dalai Lama personality test&lt;br /&gt;* Put the story in the right order&lt;br /&gt;* Choose one animal&lt;br /&gt;* Choose one colour&lt;br /&gt;* Psychological question - Funeral&lt;br /&gt;* Psychological question - Order&lt;br /&gt;Interactive Stories:&lt;br /&gt;* Luna Park&lt;br /&gt;* Stolen Strawberries&lt;br /&gt;* Blue Bird&lt;br /&gt;* The bat&lt;br /&gt;* The camel&lt;br /&gt;* Sudden rain&lt;br /&gt;* The museum&lt;br /&gt;* Volcano explosion&lt;br /&gt;* The concert&lt;br /&gt;* The mountain&lt;br /&gt;* Under the blue sky&lt;br /&gt;* The garbage&lt;br /&gt;* Soap bubbles&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) UPDATES:&lt;/span&gt;&lt;br /&gt;* Birthday Analisys&lt;br /&gt;* Chinese test&lt;br /&gt;* What were you in your past life?&lt;br /&gt;* The Color Test&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3) PERSONALITY TESTS:&lt;/span&gt;&lt;br /&gt;Sexuality:&lt;br /&gt;* Sexual Libido&lt;br /&gt;* Sexual Satisfaction&lt;br /&gt;* Sexual Permissiveness&lt;br /&gt;* Sexual Stereotype&lt;br /&gt;Emotional Stability:&lt;br /&gt;* Self-Esteem&lt;br /&gt;* Happiness&lt;br /&gt;* Anxiety&lt;br /&gt;* Obsessiveness&lt;br /&gt;* Independence&lt;br /&gt;* Hypochondria&lt;br /&gt;* Guilt&lt;br /&gt;Introversion /&lt;br /&gt;extraversion:&lt;br /&gt;* Activity&lt;br /&gt;* Sociability&lt;br /&gt;* Risk-Taking&lt;br /&gt;* Impulsiveness&lt;br /&gt;* Expressiveness   &lt;br /&gt;* Reflectiveness&lt;br /&gt;* Responsibility&lt;br /&gt;Mastery / Sympathy:&lt;br /&gt;* Aggressiveness&lt;br /&gt;* Assertiveness&lt;br /&gt;* Ambition&lt;br /&gt;* Manipulation&lt;br /&gt;* Sensation-Seeking&lt;br /&gt;* Dogmatism&lt;br /&gt;* Masculinity / Femininity&lt;br /&gt;Social &amp;amp; Political&lt;br /&gt;Attitudes:&lt;br /&gt;* Social Permissiveness&lt;br /&gt;* Racism&lt;br /&gt;* Belief&lt;br /&gt;* Socialism / Capitalism&lt;br /&gt;* Libertarianism&lt;br /&gt;* Reactionism&lt;br /&gt;* Pacifism&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;More Info:&lt;/span&gt;&lt;br /&gt;&lt;div class="codewrapper"&gt;&lt;div class="codetitle"&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/div&gt;&lt;div class="codecontent"&gt;http://www.crazysoft.gr/Pocket_PC_PPC/Programs/personality_psychology_pro.asp&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Download Instructions:&lt;/span&gt;&lt;br /&gt;&lt;!-- m --&gt;&lt;a class="postlink" target="_new" href="http://anonym.to/?http://rapidshare.com/files/36117917/personality_psychology_pro_v1.zip.html"&gt;http://rapidshare.com/files/36117917/personality_psychology_pro_v1.zip.html&lt;/a&gt;&lt;!-- m --&gt;&lt;br /&gt;&lt;!-- m --&gt;&lt;a class="postlink" target="_new" href="http://anonym.to/?http://www.sharebig.com/share.php?id=s14ggvknvmuiVG5Gh"&gt;http://www.sharebig.com/share.php?id=s14ggvknvmuiVG5Gh&lt;/a&gt;&lt;!-- m --&gt;&lt;br /&gt;&lt;!-- m --&gt;&lt;a class="postlink" target="_new" href="http://anonym.to/?http://www.megaupload.com/?d=JORMP14R"&gt;http://www.megaupload.com/?d=JORMP14R&lt;/a&gt;&lt;!-- m --&gt;&lt;/div&gt;             &lt;!--//SD-REWARD-MOD BEGIN --&gt;&lt;!--//SD-REWARD-MOD END --&gt;                                                &lt;a href="http://forum.ppcwarez.org/report.php?f=37&amp;amp;p=109284"&gt;&lt;img src="http://forum.ppcwarez.org/styles/ppcw/imageset/en/icon_post_report.gif" alt="Report this post" title="Report this post" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-1323414167061377086?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/1323414167061377086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=1323414167061377086' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/1323414167061377086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/1323414167061377086'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/personality-psychology-pro-v16.html' title='Personality Psychology Pro v1.6'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-8620522170684451371</id><published>2007-11-10T11:03:00.000-08:00</published><updated>2007-11-10T18:51:33.000-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='enhancement'/><title type='text'>SPB Phone Suite v1.1.1 Build 1309</title><content type='html'>&lt;span style="font-weight: bold;"&gt;SPB Phone Suite v1.1.1 Build 1309&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Requirements:&lt;/span&gt; wm5, wm6 phone edition&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Overview:&lt;/span&gt; Spb Phone Suite is a collection of useful tools for Windows Mobile Pocket PCs and Smartphones with integrated telephone and Touchscreen. The program covers functions like profile, call filtering, messages about missed calls, decline and answer with SMS, and much more&lt;br /&gt;&lt;img src="http://pocketland.net/images/screenshots/screenshot.36234.gif" alt="Image" /&gt;&lt;br /&gt;&lt;br /&gt;Functions:&lt;br /&gt;Enter and manage a profile&lt;br /&gt;Today Screen Plugin&lt;br /&gt;Messages about missed calls&lt;br /&gt;Messages about unread SMS&lt;br /&gt;Call filtering&lt;br /&gt;Automatic decline and answer with SMS&lt;br /&gt;Quick select by image&lt;br /&gt;Call history with images&lt;br /&gt;Wireless Manager&lt;br /&gt;Automatic profile&lt;br /&gt;Wireless settings in profile&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;More Info:&lt;/span&gt;&lt;br /&gt;&lt;div class="codewrapper"&gt;&lt;div class="codetitle"&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/div&gt;&lt;div class="codecontent"&gt;http://forum.ppcwarez.org/viewtopic.php?f=47&amp;amp;t=24866&amp;amp;hilit=spb+phone+suite&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Download Instructions:&lt;/span&gt;&lt;br /&gt;&lt;!-- m --&gt;&lt;a class="postlink" target="_new" href="http://anonym.to/?http://rapidshare.com/files/51811767/SPB.Phone.Suite.v1.1.1.Build.1309.PPC.regged.rar"&gt;http://rapidshare.com/files/51811767/SPB.Phone.Suite.v1.1.1.Build.1309.PPC.regged.rar&lt;/a&gt;&lt;!-- m --&gt;&lt;br /&gt;Mirror: &lt;!-- m --&gt;&lt;a class="postlink" target="_new" href="http://anonym.to/?http://depositfiles.com/files/1611626"&gt;http://depositfiles.com/files/1611626&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-8620522170684451371?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/8620522170684451371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=8620522170684451371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8620522170684451371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8620522170684451371'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/spb-phone-suite-v111-build-1309.html' title='SPB Phone Suite v1.1.1 Build 1309'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-1660547867988441793</id><published>2007-11-10T10:53:00.000-08:00</published><updated>2007-11-10T10:54:58.165-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><title type='text'>PIM Backup v2.5 (Freeware)</title><content type='html'>&lt;span style="font-weight: bold;"&gt;PIM Backup v2.5 (Freeware)&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Requirements:&lt;/span&gt; Windows Mobile 2003/SE/WM5 PocketPc&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Overview:&lt;/span&gt; This tool allows to backup/restore appointments,call logs,contacts,messages (SMS, Mails, ...),speed dials AND tasks.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://forum.ppcwarez.org/download/file.php?id=273" alt="Image" /&gt;&lt;br /&gt;&lt;br /&gt;PIM Backup v2.4 (Release date 06/07/2007)&lt;br /&gt;- fix a crash bug during restore of a text backup for messages having no&lt;br /&gt;subject&lt;br /&gt;- fix a bug in scheduled backup&lt;br /&gt;- add one instance only&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;More Info:&lt;/span&gt;&lt;br /&gt;&lt;div class="codewrapper"&gt;&lt;div class="codetitle"&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/div&gt;&lt;div class="codecontent"&gt;http://forum.xda-developers.com/showthread.php?t=299705&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Download Instructions:&lt;br /&gt;&lt;/span&gt;New V2.5&lt;br /&gt;WM5:&lt;br /&gt;&lt;!-- m --&gt;&lt;a class="postlink" target="_new" href="http://anonym.to/?http://forum.xda-developers.com/attachment.php?attachmentid=44328&amp;amp;d=1184802894"&gt;http://forum.xda-developers.com/attachment.php?attachmentid=44328&amp;amp;d=1184802894&lt;/a&gt;&lt;!-- m --&gt;&lt;br /&gt;WM2003&lt;br /&gt;&lt;!-- m --&gt;&lt;a class="postlink" target="_new" href="http://anonym.to/?http://forum.xda-developers.com/attachment.php?attachmentid=44327&amp;amp;d=1184802881"&gt;http://forum.xda-developers.com/attachment.php?attachmentid=44327&amp;amp;d=1184802881&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-1660547867988441793?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/1660547867988441793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=1660547867988441793' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/1660547867988441793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/1660547867988441793'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/pim-backup-v25-freeware.html' title='PIM Backup v2.5 (Freeware)'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-6398758860109869720</id><published>2007-11-10T09:11:00.000-08:00</published><updated>2007-11-10T09:41:49.555-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>bluetooth Wizard (Pocket PC) 1.0 For Eng</title><content type='html'>&lt;span class="tpc_title"&gt;bluetooth Wizard (Pocket PC) 1.0 For Eng&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="tpc_content"&gt;  Bluezard - Bluetooth Wizard (Pocket PC) 1.0&lt;span style="font-size: 0pt;"&gt; d[(AC59t!o &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; 7&gt;U.=6pE&gt;4 &lt;/span&gt;&lt;br /&gt;Bluezard (also know as The Real Bluejack) is an application for Windows Mobile Pocket PC devices that extends Bluetooth features and functions! It’s a complete Bluetooth connection manager with lot’s of abilities! With Bluezard you would be able to: - Browse remote device filesystem, download, upload and delete files on a remote-device, create folders.&lt;span style="font-size: 0pt;"&gt; ?p_tA &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; :Sh:8qB2 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; )&amp;amp;CO'R!"v &lt;/span&gt;&lt;br /&gt;&lt;img src="http://handheld.softpedia.com/images/software/screens/Bluezard-Bluetooth-Wizard-Smartphone-0.jpg" onclick="" /&gt;screen.width-461) window.open('http://handheld.softpedia.com/images/software/screens/Bluezard-Bluetooth-Wizard-Smartphone-0.jpg');" border="0"&gt;&lt;span style="font-size: 0pt;"&gt; Y@Gqg0N &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; * A1hXS7 &lt;/span&gt;&lt;br /&gt;Bluezard (also know as The Real Bluejack) is an application for Windows Mobile Pocket PC devices that extends Bluetooth features and functions! It’s a complete Bluetooth connection manager with lot’s of abilities!&lt;span style="font-size: 0pt;"&gt; .c'$*M@%5@ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; }d`AOW._R &lt;/span&gt;&lt;br /&gt;With Bluezard you would be able to: &lt;span style="font-size: 0pt;"&gt; o.5am{\&amp;amp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; Q(7;p.}a^= &lt;/span&gt;&lt;br /&gt;- Browse remote device filesystem, download, upload and delete files on a remote-device, create folders. &lt;span style="font-size: 0pt;"&gt; %$k#yr &lt;/span&gt;&lt;br /&gt;- Control remote-device by sending AT-commands. It has built-in terminal. &lt;span style="font-size: 0pt;"&gt; n'$}%tcHC &lt;/span&gt;&lt;br /&gt;- Send SMS from remote-device. &lt;span style="font-size: 0pt;"&gt; 'R@fME|M &lt;/span&gt;&lt;br /&gt;- Download SMS from remote-device. &lt;span style="font-size: 0pt;"&gt; &amp;amp;WObX X_ &lt;/span&gt;&lt;br /&gt;- Download phonebook from remote-device. &lt;span style="font-size: 0pt;"&gt; mBvV)W, l &lt;/span&gt;&lt;br /&gt;- Send files to the remote-device up to several times faster than filemanagers! &lt;span style="font-size: 0pt;"&gt; wR! &lt;/span&gt;&lt;br /&gt;- Receive files sent via Bluetooth. It can save files directly to storage card, file size is unlimited and it is done on a really high speed! &lt;span style="font-size: 0pt;"&gt; 8&gt;n]2 &lt;/span&gt;&lt;br /&gt;- You can choose where to save incoming file. &lt;span style="font-size: 0pt;"&gt; Y&amp;amp;o'\Zs &lt;/span&gt;&lt;br /&gt;- You can set filters for auto-sorting incoming files to different folders. &lt;span style="font-size: 0pt;"&gt; )8|SNTOd &lt;/span&gt;&lt;br /&gt;- Get extended info about remote-devices: bluetooth manufacturer, avaible services, bluetooth address. &lt;span style="font-size: 0pt;"&gt; -xTW'QEq&lt; &lt;/span&gt;&lt;br /&gt;- Get invisible device status. &lt;span style="font-size: 0pt;"&gt; \5}#E(:Y"L &lt;/span&gt;&lt;br /&gt;- Bluezard is using system device list, so you don’t need to scan for devices every time! &lt;span style="font-size: 0pt;"&gt; TX=E{EbX &lt;/span&gt;&lt;br /&gt;- Bluejack remote-device with a message! &lt;span style="font-size: 0pt;"&gt; dUU)6= z+| &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; }.abvw &lt;/span&gt;&lt;br /&gt;Other features of Bluezard: &lt;span style="font-size: 0pt;"&gt; \%`R[O&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; [L9i  &lt;/span&gt;&lt;br /&gt;- Bluesnarfing (only for security testing) &lt;span style="font-size: 0pt;"&gt; V2;CWUr &lt;/span&gt;&lt;br /&gt;- Hellomoto (only for security testing) &lt;span style="font-size: 0pt;"&gt; #,h) 1nr &lt;/span&gt;&lt;br /&gt;- Fast and easy-to-use interface. &lt;span style="font-size: 0pt;"&gt; sUC8 ##bZ &lt;/span&gt;&lt;br /&gt;- And many-many other features!Limitations:&lt;span style="font-size: 0pt;"&gt; T{Y g,]^ &lt;/span&gt;&lt;br /&gt;Some features are disabled in demo.&lt;span style="font-size: 0pt;"&gt; &amp;amp;S0h9V~Ba &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; VeIYLLW &lt;/span&gt;&lt;br /&gt;Requirements:&lt;span style="font-size: 0pt;"&gt; L3K7Q/.)* &lt;/span&gt;&lt;br /&gt;Microsoft Bluetooth stack and .NET Compact Framework 2.0&lt;span style="font-size: 0pt;"&gt; O~mMwFg &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; x@?&gt;J| &lt;/span&gt;&lt;br /&gt;Pocket PC 2003/2005&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=54288&amp;amp;aid=100116" target="_blank"&gt; &lt;span style="color:red;"&gt;Bluezard Eng PPC Full.rar&lt;/span&gt;&lt;/a&gt; (1012 K) Downloads:291&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-6398758860109869720?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/6398758860109869720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=6398758860109869720' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6398758860109869720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6398758860109869720'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/bluetooth-wizard-pocket-pc-10-for-eng.html' title='bluetooth Wizard (Pocket PC) 1.0 For Eng'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-8246559144726122494</id><published>2007-11-09T11:36:00.001-08:00</published><updated>2007-11-09T11:36:51.936-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>HushSMS - zero message&amp;stealthy PING message</title><content type='html'>&lt;span class="tpc_title"&gt;HushSMS - zero message&amp;amp;stealthy PING message&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="tpc_content"&gt;  &lt;img src="http://www.silentservices.de/HushSMSL.PNG" onclick="" /&gt;screen.width-461) window.open('http://www.silentservices.de/HushSMSL.PNG');" border="0"&gt;&lt;span style="font-size: 0pt;"&gt; Rm[MV_!" &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; @V*,a62s &lt;/span&gt;&lt;br /&gt;HushSMS is a tool to sent a class zero message (aka Flash-SMS) or a stealthy PING message to another cellphone.&lt;span style="font-size: 0pt;"&gt; &lt;ey5w@$v&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; s5qq3?93 &lt;/span&gt;&lt;br /&gt;The "Silent Ping" enables you to sent a message to another cellphone without the owner getting knowledge about.&lt;span style="font-size: 0pt;"&gt; kHxGSy|T &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; EC9tQ &lt;/span&gt;&lt;br /&gt;The message is discarded on the owners phone and no trace exists. You will get back a message from the operator that your message has been delivered, proving that your message has been received, and thus you can know that the owners phone is switched on.&lt;span style="font-size: 0pt;"&gt;  t{hQl &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; &lt;mw.@e5_&gt;&lt;br /&gt;This is not some kind of hack or whatever. It's a normal function per standard and works on any phone.&lt;span style="font-size: 0pt;"&gt; l#5c6JDg &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; {#]aP$ &lt;/span&gt;&lt;br /&gt;Q: Why such a software? A: I regulary need it in my job. Sometimes I have to be sure a specific phone is switched on and I can send information to that phone without it beeing stored (class zero message).&lt;span style="font-size: 0pt;"&gt; C'=y_B h &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; ~PI;J2zvi &lt;/span&gt;&lt;br /&gt;It runs on Windows Mobile 5 and 6 based PocketPCs.&lt;span style="font-size: 0pt;"&gt; @P{}|&amp;amp;p6 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; B=[H 9K/ &lt;/span&gt;&lt;br /&gt;developer: &lt;a href="http://www.silentservices.de/HushSMS.html" target="_blank"&gt;http://www.silentservices.de/HushSMS.html&lt;/a&gt;&lt;span style="font-size: 0pt;"&gt; c l37 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; #us%E &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; H5|u=&lt; &lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.4shared.com/file/27242726/1a23a5f4/HushSMS-01.html" target="_blank"&gt;http://www.4shared.com/file/27242726/1a23a5f4/HushSMS-01.html&lt;/a&gt;&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=52773&amp;amp;aid=96957" target="_blank"&gt; &lt;span style="color:red;"&gt;HushSMS-0.1.zip&lt;/span&gt;&lt;/a&gt; (7 K) Downloads:179&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-8246559144726122494?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/8246559144726122494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=8246559144726122494' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8246559144726122494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8246559144726122494'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/hushsms-zero-message-ping-message.html' title='HushSMS - zero message&amp;stealthy PING message'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-8244433889796376677</id><published>2007-11-09T11:23:00.001-08:00</published><updated>2007-11-09T11:27:50.505-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>HTC Sim Manager 6.25</title><content type='html'>&lt;span style="font-weight: bold;" class="tpc_title"&gt;HTC Sim Manager 6.25&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="tpc_content"&gt;&lt;img src="http://www.imageturk.com/img/bf28210bee011dd53e73z.JPG" onclick="" /&gt;screen.width-461) window.open('http://www.imageturk.com/img/bf28210bee011dd53e73z.JPG');" border="0"&gt;&lt;span style="font-size: 0pt;"&gt; 8EHL+ So &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; Bsl NJ &lt;/span&gt;&lt;br /&gt;More Info:&lt;span style="font-size: 0pt;"&gt; *}"VBo* &lt;/span&gt;&lt;br /&gt;- Calling Contacts from your SIM Card&lt;span style="font-size: 0pt;"&gt; "9sH!0 &lt;/span&gt;&lt;br /&gt;- Creating a Contacts on your SIM Card&lt;span style="font-size: 0pt;"&gt; q�]),g6}0 &lt;/span&gt;&lt;br /&gt;- Transferring All SIM Card Contacts to your Device&lt;span style="font-size: 0pt;"&gt; M?VkI: &lt;/span&gt;&lt;br /&gt;- Saving Personal Number&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=49549&amp;amp;aid=91571" target="_blank"&gt; &lt;span style="color:red;"&gt;HTC_SIM Manager 6.25.zip&lt;/span&gt;&lt;/a&gt; (60 K) Downloads:453&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-8244433889796376677?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/8244433889796376677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=8244433889796376677' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8244433889796376677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8244433889796376677'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/htc-sim-manager-625.html' title='HTC Sim Manager 6.25'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-311317456298368621</id><published>2007-11-09T09:00:00.000-08:00</published><updated>2007-11-09T09:16:43.901-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>birthday boy v2.1</title><content type='html'>&lt;span style="font-weight: bold;"&gt;birthday boy v2.1&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Requirements:&lt;/span&gt; PPC2002, WM2003&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Overview:&lt;/span&gt; Birthday Boy is fantastic application for the Pocket PC which will scan your database of contacts and report any birthdays or anniversaries coming up.&lt;br /&gt;&lt;img src="http://www.gigabytesol.com/images/BBoy2.gif" alt="Image" /&gt;&lt;br /&gt;&lt;br /&gt;Features include:-&lt;br /&gt;Check dates upto 1 year ahead (new)&lt;br /&gt;Events picked up from contacts database&lt;br /&gt;Click an event to be taken directly to contact details&lt;br /&gt;Customize color scheme and number of display lines&lt;br /&gt;Today screen plug-in for high visibility&lt;br /&gt;Optionally display Age and Anniversary number&lt;br /&gt;Shrinks when no events present&lt;br /&gt;Tiny, takes less thank 64k of storage&lt;br /&gt;Fully skinable on Pocket PC 2002 / 2003(new)&lt;br /&gt;Direct database access for incredible speed&lt;br /&gt;Selectable viewing dates&lt;br /&gt;Selectable date display formats&lt;br /&gt;Full help included&lt;br /&gt;Now compatible with PPC 2003(new)&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;More Info:&lt;/span&gt;&lt;br /&gt;&lt;div class="codewrapper"&gt;&lt;div class="codetitle"&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/div&gt;&lt;div class="codecontent"&gt;http://www.gigabytesol.com/bboy.htm&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Download Instructions:&lt;/span&gt;&lt;br /&gt;&lt;!-- m --&gt;&lt;a class="postlink" target="_new" href="http://anonym.to/?http://rapidshare.com/files/58267716/birthday.boy.2.1.pocketpc.full-tsrh.zip"&gt;http://rapidshare.com/files/58267716/birthday.boy.2.1.pocketpc.full-tsrh.zip&lt;/a&gt;&lt;!-- m --&gt;&lt;br /&gt;Mirrors: &lt;!-- m --&gt;&lt;a class="postlink" target="_new" href="http://anonym.to/?http://depositfiles.com/files/1878586"&gt;http://depositfiles.com/files/1878586&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-311317456298368621?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/311317456298368621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=311317456298368621' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/311317456298368621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/311317456298368621'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/birthday-boy-v21.html' title='birthday boy v2.1'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-361246921262199548</id><published>2007-11-09T08:54:00.000-08:00</published><updated>2007-11-09T08:59:25.158-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='enhancement'/><title type='text'>birthday boy for dashboard v2.0</title><content type='html'>&lt;span style="font-weight: bold;"&gt;birthday boy for dashboard v2.0&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Requirements:&lt;/span&gt; PPC2002, WM2003&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Overview:&lt;/span&gt; BirthdayBoy for Dashboard is a plugin for Snoopsoft's popular Today Screen replacement. It adds many features to the original release of BirthdayBoy to make viewing your upcoming events even easier.&lt;br /&gt;&lt;img src="http://www.gigabytesol.com/images/BBoyDash2.gif" alt="Image" /&gt;&lt;br /&gt;&lt;br /&gt;Features include:-&lt;br /&gt;Check dates upto 1 year ahead (new)&lt;br /&gt;Events picked up from contacts database&lt;br /&gt;Click an event to be taken directly to contact details&lt;br /&gt;Click execute to create a new contact&lt;br /&gt;Customize color scheme (chosen from skin)&lt;br /&gt;Click the clock to select a viewing date to check events months in advance&lt;br /&gt;Change font size to suit the screen space available in the skin.&lt;br /&gt;Optionally display Age and Anniversary number&lt;br /&gt;Tiny, takes less thank 64k of storage&lt;br /&gt;Direct database access for incredible speed&lt;br /&gt;Can be displayed in any Dashboard view (new)&lt;br /&gt;Selectable date display formats (new)&lt;br /&gt;Full help included (new)&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;More Info:&lt;/span&gt;&lt;br /&gt;&lt;div class="codewrapper"&gt;&lt;div class="codetitle"&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;/div&gt;&lt;div class="codecontent"&gt;http://www.gigabytesol.com/bboydash.htm&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Download Instructions:&lt;/span&gt;&lt;br /&gt;&lt;!-- m --&gt;&lt;a class="postlink" target="_new" href="http://anonym.to/?http://rapidshare.com/files/58267995/birthday.boy.for.dashboard.2.0.pocketpc.full-tsrh.zip"&gt;http://rapidshare.com/files/58267995/birthday.boy.for.dashboard.2.0.pocketpc.full-tsrh.zip&lt;/a&gt;&lt;!-- m --&gt;&lt;br /&gt;Mirror: &lt;!-- m --&gt;&lt;a class="postlink" target="_new" href="http://anonym.to/?http://www.2xupload.de/file/232e58ea4425ce891da1bad90a7121f1/birthday.boy.for.dashboard.2.0.pocketpc.full-tsrh.zip.html"&gt;http://www.2xupload.de/file/232e58ea4425ce891da1bad90a7121f1/birthday.boy. ... h.zip.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-361246921262199548?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/361246921262199548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=361246921262199548' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/361246921262199548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/361246921262199548'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/birthday-boy-for-dashboard-v20.html' title='birthday boy for dashboard v2.0'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-3991765923366397486</id><published>2007-11-08T05:57:00.000-08:00</published><updated>2007-11-08T05:58:14.888-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>MyPersonalDiet v2.5.0</title><content type='html'>&lt;img src="http://www.pxdxa.com/image/post/emotion/12.gif" align="left" border="0" /&gt; &lt;span class="tpc_title"&gt;MyPersonalDiet v2.5.0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_070731/65_256269_27ece_pxdxa.diet1.gif" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_070731/65_256269_27ece_pxdxa.diet1.gif');" border="0"&gt; &lt;br /&gt;&lt;span class="tpc_content"&gt; MyPersonalDiet is the most comprehensive diet software for Pocket PC that gives you the tools to reach you weight goal by providing simple means of tracking your food and workouts, monitor your health and get clear assessments of your efforts and results. MyPersonalDiet will not burn calories for you, but it will eliminate any guesswork and help you make the right decisions to reach your objectives. It is also equipped with features to monitor specific nutrients, which is essential for people with food restrictions.&lt;span style="font-size: 0pt;"&gt; q)J\l~q &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; vb[v pB &lt;/span&gt;&lt;br /&gt;&lt;b&gt;Version 2.5.0 (June 19, 2007)&lt;/b&gt;&lt;span style="font-size: 0pt;"&gt; \-#F9{XO[ &lt;/span&gt;&lt;br /&gt;* Compatibility with VidaOne &amp;amp; Diet Fitness.&lt;span style="font-size: 0pt;"&gt; ($#U9  ( &lt;/span&gt;&lt;br /&gt;* Custom categories can be used when creating food items.&lt;span style="font-size: 0pt;"&gt; w/[8vn% &lt;/span&gt;&lt;br /&gt;* The number of entries in the Favorites list can now be customized.&lt;span style="font-size: 0pt;"&gt; "b0f4x  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; &lt;=&lt;[UG&amp;amp; &lt;/span&gt;&lt;br /&gt;Download Instruction&lt;span style="font-size: 0pt;"&gt; #wm( i&lt;1&gt;&lt;br /&gt;&lt;div style="font-size: 9px; margin-left: 5px;"&gt;&lt;b&gt;CODE:&lt;/b&gt;&lt;/div&gt;&lt;div class="quote" id="code1"&gt;http://rapidshare.com/files/46067284/VidaOne_MyPersonalDiet_v2_5.rar.html&lt;br /&gt;&lt;br /&gt;&lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=695203&amp;amp;tid=44797&amp;amp;aid=83364" target="_blank"&gt; &lt;span style="color:red;"&gt;VidaOne_MyPersonalDiet_v2_5.rar&lt;/span&gt;&lt;/a&gt; (818 K) Downloads:180&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-3991765923366397486?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/3991765923366397486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=3991765923366397486' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/3991765923366397486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/3991765923366397486'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/mypersonaldiet-v250.html' title='MyPersonalDiet v2.5.0'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-7264875092270493678</id><published>2007-11-08T05:55:00.000-08:00</published><updated>2007-11-08T05:56:18.387-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>HTC Plus</title><content type='html'>&lt;span class="tpc_title"&gt;HTC Plus&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; 描述：Home page with Clock&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_070901/65_103894_4e247_pxdxa.70901-025354-00.jpg" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_070901/65_103894_4e247_pxdxa.70901-025354-00.jpg');" border="0"&gt; &lt;br /&gt;&lt;br /&gt; 描述：Configuation Page&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_070901/65_103894_52d57_pxdxa.70901-025410-04.jpg" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_070901/65_103894_52d57_pxdxa.70901-025410-04.jpg');" border="0"&gt; &lt;br /&gt;&lt;br /&gt; 描述：Home page without Clock&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_070901/65_103894_65531_pxdxa.70901-025455-15.jpg" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_070901/65_103894_65531_pxdxa.70901-025455-15.jpg');" border="0"&gt; &lt;br /&gt;&lt;span class="tpc_content"&gt;HTC Plus Home Plug-in&lt;span style="font-size: 0pt;"&gt; ~x%6b$'8g &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; X }YYNT &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; Go&gt;w?n/ 1 &lt;/span&gt;&lt;br /&gt;Remember to backup your device before trying the software, I saw other post where people need to hard rest after installation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:gray;"&gt;[ 此贴被y2smc在2007-09-01 19:20重新编辑 ]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; 描述：HTC plus&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=47939&amp;amp;aid=88877" target="_blank"&gt; &lt;span style="color:red;"&gt;HTCPlus.zip&lt;/span&gt;&lt;/a&gt; (346 K) Downloads:1281&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-7264875092270493678?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/7264875092270493678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=7264875092270493678' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7264875092270493678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7264875092270493678'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/htc-plus.html' title='HTC Plus'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-6263309714656816222</id><published>2007-11-08T05:47:00.001-08:00</published><updated>2007-11-08T05:47:50.771-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>Inesoft Cash Organizer 2007 Premium v7.29.1 [20070930]</title><content type='html'>&lt;span class="tpc_title"&gt;Inesoft Cash Organizer 2007 Premium v7.29.1 [20070930]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_071002/65_103276_1da3b_pxdxa.2007_account.gif" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_071002/65_103276_1da3b_pxdxa.2007_account.gif');" border="0"&gt; &lt;br /&gt;&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_071002/65_103276_83730_pxdxa.2007_express.gif" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_071002/65_103276_83730_pxdxa.2007_express.gif');" border="0"&gt; &lt;br /&gt;&lt;span class="tpc_content"&gt;&lt;b&gt;Title:&lt;/b&gt;Inesoft Cash Organizer 2007 Premium v7.29.1&lt;span style="font-size: 0pt;"&gt; hJKH0e, &lt;/span&gt;&lt;br /&gt;&lt;u&gt;Requirements:&lt;/u&gt;&lt;span style="font-size: 0pt;"&gt; Y,VCM4 &lt;/span&gt;&lt;br /&gt;&lt;u&gt;Overview:&lt;/u&gt;&lt;span style="font-size: 0pt;"&gt; :&gt;2w/C+GA &lt;/span&gt;&lt;br /&gt;Inesoft Cash Organizer 2007 Premium helps you take control of your finances at any time. Cash Organizer unites all your accounts in one place, watches your budget and reminds you of planned payments. &lt;span style="font-size: 0pt;"&gt; jI1,5Z*~P= &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; sG:�.FG &lt;/span&gt;&lt;br /&gt;Info:&lt;span style="font-size: 0pt;"&gt; m~)BG'B3U &lt;/span&gt;&lt;br /&gt;* Completely Redesign Interface; New!&lt;span style="font-size: 0pt;"&gt; 7&lt;y{~a&gt;&lt;br /&gt;* Express module for fast register input NEW&lt;span style="font-size: 0pt;"&gt; %,_|�0# &lt;/span&gt;&lt;br /&gt;* MS Money 2007 data synchronization NEW&lt;span style="font-size: 0pt;"&gt; *J ~'  &lt;/span&gt;&lt;br /&gt;* Intuit Quicken 2007 data synchronization NEW&lt;span style="font-size: 0pt;"&gt; ?%nUSe &lt;/span&gt;&lt;br /&gt;* Import data from Spb Finance NEW&lt;span style="font-size: 0pt;"&gt; ?'BTjYb &lt;/span&gt;&lt;br /&gt;* Budget overflow alarms&lt;span style="font-size: 0pt;"&gt; p4)3+ e &lt;/span&gt;&lt;br /&gt;* Loan calculator NEW&lt;span style="font-size: 0pt;"&gt; oz54pMv &lt;/span&gt;&lt;br /&gt;* Payee manager NEW&lt;span style="font-size: 0pt;"&gt; MdKd5'D( &lt;/span&gt;&lt;br /&gt;....&lt;span style="font-size: 0pt;"&gt; Uv4Rw!k &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; kqBU.K &lt;/span&gt;&lt;br /&gt;ANYWAY: the installer said the version is 7.29.3 but after installed, I've found out that the real version is 7.29.1.&lt;span style="font-size: 0pt;"&gt; 4`of9r'"U &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; ]hhJ7~AP[ &lt;/span&gt;&lt;br /&gt;&lt;u&gt;Homepage:&lt;/u&gt; &lt;a href="http://www.inesoft.com/eng/index.php?in=premium.htm" target="_blank"&gt;http://www.inesoft.com/eng/index.php?in=premium.htm&lt;/a&gt;&lt;span style="font-size: 0pt;"&gt; n+Q-jm2][ &lt;/span&gt;&lt;br /&gt;&lt;u&gt;Download Instructions:&lt;/u&gt; &lt;a href="http://www.inesoft.com/beta/CashOrgEnPremium.exe" target="_blank"&gt;http://www.inesoft.com/beta/CashOrgEnPremium.exe&lt;/a&gt;&lt;span style="font-size: 0pt;"&gt; \v: b to &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; z!Kga/_&amp;amp; &lt;/span&gt;&lt;br /&gt;&lt;u&gt;Cㄒαcк Information:&lt;/u&gt;&lt;span style="font-size: 0pt;"&gt; :\%DBlI &lt;/span&gt;&lt;br /&gt;Using the patcher (by hdf) for all version 2007 v7.2x attached&lt;span style="font-size: 0pt;"&gt; %Q�1ZZ[W2 &lt;/span&gt;&lt;br /&gt;-- Install the software&lt;span style="font-size: 0pt;"&gt; ;sy3@{&amp;amp;%p &lt;/span&gt;&lt;br /&gt;-- Copy corg.exe from PPC to PC&lt;span style="font-size: 0pt;"&gt; EfTomO o &lt;/span&gt;&lt;br /&gt;-- Using patcher to patch the file&lt;span style="font-size: 0pt;"&gt; T@(=e^;gC &lt;/span&gt;&lt;br /&gt;-- Overwrite that patched file onto PPC.&lt;span style="font-size: 0pt;"&gt; ;ub`7H. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; +)7U$t= &lt;/span&gt;&lt;br /&gt;OR&lt;span style="font-size: 0pt;"&gt; x?V=xLu &lt;/span&gt;&lt;br /&gt;Using the patched file I attached (corg.exe).&lt;span style="font-size: 0pt;"&gt; j_OPr~jy8m &lt;/span&gt;&lt;br /&gt;-- Overwrite my patched file onto PPC.&lt;span style="font-size: 0pt;"&gt; N-lZ0A &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; Prg -rH &lt;/span&gt;&lt;br /&gt;OR&lt;span style="font-size: 0pt;"&gt; Yh5Tn[eb &lt;/span&gt;&lt;br /&gt;Using the cab in the .rar file I attached (due to someone's request)&lt;span style="font-size: 0pt;"&gt; d1e{XA2 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; {9"A{2r &lt;/span&gt;&lt;br /&gt;FINALLY, IF THE PROGRAM ASK FOR ANY δεrial NUMBER, PUT ANYTHING YOU WANT. AND YOU WILL BE REGISTERED (maybe I forgot to tell you that thing, sorry &lt;img src="http://www.pxdxa.com/image/post/smile/redface.gif" /&gt; )&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:gray;"&gt;[ 此贴被gnuzilla在2007-10-10 19:12重新编辑 ]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=50987&amp;amp;aid=93920" target="_blank"&gt; &lt;span style="color:red;"&gt;CarhOrganizer 7.2x patcher by hdf.rar&lt;/span&gt;&lt;/a&gt; (15 K) Downloads:799  &lt;br /&gt;&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=50987&amp;amp;aid=93921" target="_blank"&gt; &lt;span style="color:red;"&gt;corg.rar&lt;/span&gt;&lt;/a&gt; (1124 K) Downloads:795  &lt;br /&gt;&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=50987&amp;amp;aid=94570" target="_blank"&gt; &lt;span style="color:red;"&gt;CashOrgEnPremium.arm.rar&lt;/span&gt;&lt;/a&gt; (1572 K) Downloads:638&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-6263309714656816222?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/6263309714656816222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=6263309714656816222' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6263309714656816222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6263309714656816222'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/inesoft-cash-organizer-2007-premium.html' title='Inesoft Cash Organizer 2007 Premium v7.29.1 [20070930]'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-6593196644320829383</id><published>2007-11-08T05:28:00.000-08:00</published><updated>2007-11-08T05:39:33.615-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>PontiSoftware Sniffi v2.1</title><content type='html'>&lt;img src="http://www.pxdxa.com/image/post/emotion/10.gif" align="left" border="0" /&gt; &lt;span class="tpc_title"&gt;PontiSoftware Sniffi v2.1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="tpc_content"&gt;  &lt;img src="http://img170.imageshack.us/img170/8246/sniffizz8.gif" onclick="" /&gt;screen.width-461) window.open('http://img170.imageshack.us/img170/8246/sniffizz8.gif');" border="0"&gt;&lt;span style="font-size: 0pt;"&gt; &lt;4eg!&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt;  $&gt;�cI'4% &lt;/span&gt;&lt;br /&gt;Sniffi is an advanced WiFi networks manager. It may be used for WiFi networks searching, as a connection manager or as network parameters monitor. &lt;span style="font-size: 0pt;"&gt; wQk?&gt;Y &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt;  VKE2Aw &lt;/span&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;&lt;span style="font-size: 0pt;"&gt; H� X"bK0 &lt;/span&gt;&lt;br /&gt;* New network status indications&lt;span style="font-size: 0pt;"&gt;  @/8 1%~ &lt;/span&gt;&lt;br /&gt;* Two types of Channel-Signal graphs&lt;span style="font-size: 0pt;"&gt; 1 ^&gt;cBtF &lt;/span&gt;&lt;br /&gt;* GPS Signal Map presentation&lt;span style="font-size: 0pt;"&gt; cE!T~VGZM &lt;/span&gt;&lt;br /&gt;* Day/Night color profile&lt;span style="font-size: 0pt;"&gt; *~ol.5L=&amp;amp; &lt;/span&gt;&lt;br /&gt;* Fullscreen switch&lt;span style="font-size: 0pt;"&gt; ip[/^b'L &lt;/span&gt;&lt;br /&gt;* Context help&lt;span style="font-size: 0pt;"&gt; fF]*33RgJ4 &lt;/span&gt;&lt;br /&gt;* Vertical/Horizontal screen compatibility&lt;span style="font-size: 0pt;"&gt; 9/^F'X9M` &lt;/span&gt;&lt;br /&gt;* PDA IP info&lt;span style="font-size: 0pt;"&gt; !MMSR)j&lt;` &lt;/span&gt;&lt;br /&gt;* Ping utility&lt;span style="font-size: 0pt;"&gt; fyV,kY6 &lt;/span&gt;&lt;br /&gt;* Traceroute utility&lt;span style="font-size: 0pt;"&gt; {Qc#6 l: &lt;/span&gt;&lt;br /&gt;* Connecting to network ability&lt;span style="font-size: 0pt;"&gt; z.Y(r]^_T &lt;/span&gt;&lt;br /&gt;* Network settings database&lt;span style="font-size: 0pt;"&gt; eP:9MdQ &lt;/span&gt;&lt;br /&gt;* TCP/IP statistics&lt;span style="font-size: 0pt;"&gt; RO*)b0 &lt;/span&gt;&lt;br /&gt;* Two types of transfer charts&lt;span style="font-size: 0pt;"&gt; 1*VX�E'{$ &lt;/span&gt;&lt;br /&gt;* Logging to a file&lt;span style="font-size: 0pt;"&gt; 70~07iQL &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; &gt; 1#C &lt;/span&gt;&lt;br /&gt;&lt;b&gt;What's new in version 2.1&lt;/b&gt;&lt;span style="font-size: 0pt;"&gt; p7 4;XImO &lt;/span&gt;&lt;br /&gt;- Fixed frequency bar rate problem,&lt;span style="font-size: 0pt;"&gt; &lt;-:$liY*v &lt;/span&gt;&lt;br /&gt;- Fixed some minor bugs in Speedo Charts.&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=46265&amp;amp;aid=85796" target="_blank"&gt; &lt;span style="color:red;"&gt;PontiSoftware_Sniffi_v2_1.zip&lt;/span&gt;&lt;/a&gt; (878 K) Downloads:501&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-6593196644320829383?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/6593196644320829383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=6593196644320829383' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6593196644320829383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6593196644320829383'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/pontisoftware-sniffi-v21.html' title='PontiSoftware Sniffi v2.1'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-4491111494734309034</id><published>2007-11-08T05:14:00.000-08:00</published><updated>2007-11-08T05:26:05.979-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>Group sms</title><content type='html'>&lt;span class="tpc_title"&gt;Group sms&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; 描述：menu&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_070908/65_231794_99513_pxdxa.menu.jpg" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_070908/65_231794_99513_pxdxa.menu.jpg');" border="0"&gt; &lt;br /&gt;&lt;br /&gt; 描述：groups&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_070908/65_231794_720e2_pxdxa.groups.jpg" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_070908/65_231794_720e2_pxdxa.groups.jpg');" border="0"&gt; &lt;br /&gt;&lt;br /&gt; 描述：contacts&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_070908/65_231794_57342_pxdxa.contacts.jpg" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_070908/65_231794_57342_pxdxa.contacts.jpg');" border="0"&gt; &lt;br /&gt;&lt;br /&gt; 描述：message&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_070908/65_231794_7a153_pxdxa.message.jpg" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_070908/65_231794_7a153_pxdxa.message.jpg');" border="0"&gt; &lt;br /&gt;&lt;span class="tpc_content"&gt;hop u all like&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:gray;"&gt;[ 此贴被kkkoaymy在2007-09-08 11:28重新编辑 ]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; 描述：group sms 1.41&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=48593&amp;amp;aid=89905" target="_blank"&gt; &lt;span style="color:red;"&gt;GroupSMS_v1.4.1.zip&lt;/span&gt;&lt;/a&gt; (42 K) Downloads:346&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-4491111494734309034?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/4491111494734309034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=4491111494734309034' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/4491111494734309034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/4491111494734309034'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/group-sms.html' title='Group sms'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-6457456579832447507</id><published>2007-11-08T02:44:00.000-08:00</published><updated>2007-11-08T05:14:25.624-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><title type='text'>LingvoSoft Talking Dictionary 2007 (Ver. 4 and above) - All Languages</title><content type='html'>&lt;img src="http://www.pxdxa.com/image/post/emotion/14.gif" align="left" border="0" /&gt; &lt;span class="tpc_title"&gt;LingvoSoft Talking Dictionary 2007 (Ver. 4 and above) - All Languages&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_070720/65_206916_3419b_pxdxa.untitled.jpg" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_070720/65_206916_3419b_pxdxa.untitled.jpg');" border="0"&gt;&lt;br /&gt;&lt;span class="tpc_content"&gt;&lt;b&gt;LingvoSoft Talking Dictionary 2007 (Version 4 and above)&lt;/b&gt;&lt;span style="font-size:0;"&gt; J.mO)-6G &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; }{,[ ]g &lt;/span&gt;&lt;br /&gt;&lt;b&gt;System requirements:&lt;/b&gt;&lt;span style="font-size:0;"&gt; }"\)bqqO &lt;/span&gt;&lt;br /&gt;PPC Windows Mobile 2003&lt;span style="font-size:0;"&gt; m`FV{h.r &lt;/span&gt;&lt;br /&gt;PPC Windows Mobile Version 5.0 &amp;amp; 6.0&lt;span style="font-size:0;"&gt; 5;eMg.:Y &lt;/span&gt;&lt;br /&gt;RAM: 6 MB for the main application (work)&lt;span style="font-size:0;"&gt; {MK&lt;r5. &lt;/span&gt;&lt;br /&gt;5 MB for the databases (storage)&lt;span style="font-size:0;"&gt; t6[ko];P &lt;/span&gt;&lt;br /&gt;TrueType font file for complex eastern languages takes from 3 to 5 MB&lt;span style="font-size:0;"&gt; H?ZV$m. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; Ps2t%Q&lt;g&gt;&lt;br /&gt;&lt;b&gt;Overview: &lt;/b&gt; &lt;span style="font-size:0;"&gt; $G80'^&gt;kg &lt;/span&gt;&lt;br /&gt;LingvoSoft Talking Dictionary 2007 English &lt;-&gt; Vietnamese for Pocket PC is a fast and convenient translating dictionary that travels with you wherever you go. Translating instantly between English and Vietnamese it lets your Pocket PC speak English translations out loud by employing state-of-the-art TTS (text-to-speech) technology. LingvoSoft Dictionary 2007 is a core component of a complete language solution called LingvoSoft Suite.&lt;span style="font-size:0;"&gt; lGrYX6M &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; t&lt;rx@l7gy&gt;&lt;br /&gt;&lt;b&gt;More Info:&lt;/b&gt;&lt;span style="font-size:0;"&gt; VkXwp &lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.lingvosoft.com/" target="_blank"&gt;www.lingvosoft.com&lt;/a&gt;&lt;span style="font-size:0;"&gt; o6rIuq5 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; Z[ZX` &lt;/span&gt;&lt;br /&gt;&lt;b&gt;How To Install:&lt;/b&gt;&lt;span style="font-size:0;"&gt; oVYu`O# &lt;/span&gt;&lt;br /&gt;- Download any Talking Dictionary from Developer page Link.&lt;span style="font-size:0;"&gt; y]@&lt;s&gt;&lt;k&gt;&lt;br /&gt;- Install in PPC.&lt;span style="font-size:0;"&gt; 2f,OM�)r &lt;/span&gt;&lt;br /&gt;- Copy Cㄒαcкed LD_2007.exe to PPC&lt;span style="font-size:0;"&gt; WSv[k5?!0 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; x}sps&lt;h &lt;/span&gt;&lt;br /&gt;&lt;b&gt;Warning:&lt;/b&gt;&lt;span style="font-size:0;"&gt; YY]n8%e &lt;/span&gt;&lt;br /&gt;&lt;u&gt;During installation, do not install language keyboard as this Cㄒαcк works only for the dictionary.&lt;/u&gt; &lt;img src="http://www.pxdxa.com/image/post/smile/cool.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:gray;"&gt;[ 此贴被rickkywong在2007-07-20 23:47重新编辑 ]&lt;/span&gt;&lt;/k&gt;&lt;/s&gt;&lt;/span&gt;&lt;br /&gt;&lt;!--  &lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;   &lt;br /&gt;&lt;br /&gt;&lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=43692&amp;amp;aid=81269" target="_blank"&gt; &lt;span style="color:red;"&gt;Talking Dictionary Crack.rar&lt;/span&gt;&lt;/a&gt; (310 K) Downloads:1513&lt;/rx@l7gy&gt;&lt;/span&gt;&lt;/g&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-6457456579832447507?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/6457456579832447507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=6457456579832447507' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6457456579832447507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6457456579832447507'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/lingvosoft-talking-dictionary-2007-ver.html' title='LingvoSoft Talking Dictionary 2007 (Ver. 4 and above) - All Languages'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-7537037030500242775</id><published>2007-11-08T02:18:00.000-08:00</published><updated>2007-11-08T02:21:23.179-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>Resco Pocket Radio v1.71</title><content type='html'>&lt;img src="http://www.pxdxa.com/image/post/emotion/1.gif" align="left" border="0" /&gt; &lt;span class="tpc_title"&gt;Resco Pocket Radio v1.71&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_070807/65_256269_49ed6_pxdxa.screen01s.png" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_070807/65_256269_49ed6_pxdxa.screen01s.png');" border="0"&gt; &lt;br /&gt;&lt;span class="tpc_content"&gt;  Key features&lt;span style="font-size: 0pt;"&gt; N[Y/q[q &lt;/span&gt;&lt;br /&gt;   * MP3 or Ogg Vorbis format player for internet streaming radios.&lt;span style="font-size: 0pt;"&gt; Up /: &amp;amp; &lt;/span&gt;&lt;br /&gt;   * Extensive lists of radio stations from a wide variety of musical genres.&lt;span style="font-size: 0pt;"&gt; +QKV3=F7J &lt;/span&gt;&lt;br /&gt;   * Easy radio importing lets you manually enter other radio streams.&lt;span style="font-size: 0pt;"&gt; a%#b} UKO &lt;/span&gt;&lt;br /&gt;   * Convenient skin-enabled user interface with 9 preset buttons for fast radio tuning.&lt;span style="font-size: 0pt;"&gt; s&gt;lY-`F&gt; &lt;/span&gt;&lt;br /&gt;   * Scheduled recording lets you record broadcasts while you're away.&lt;span style="font-size: 0pt;"&gt; 2t0z   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; ZNkS8( &lt;/span&gt;&lt;br /&gt;Download&lt;span style="font-size: 0pt;"&gt; iIU\"J &lt;/span&gt;&lt;br /&gt;&lt;div style="font-size: 9px; margin-left: 5px;"&gt;&lt;b&gt;CODE:&lt;/b&gt;&lt;/div&gt;&lt;div class="quote" id="code1"&gt;http://www.resco.net/downloads/cab/radio_p.arm.cab&lt;/div&gt;&lt;div style="font-size: 11px; margin-left: 5px;"&gt;&lt;a href="javascript:" onclick="CopyCode(document.getElementById('code1'));"&gt;[Copy to clipboard]&lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=45418&amp;amp;aid=84514" target="_blank"&gt; &lt;span style="color:red;"&gt;Resco_Poclet_Radio_v1_7_1.rar&lt;/span&gt;&lt;/a&gt; (557 K) Downloads:1780&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-7537037030500242775?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/7537037030500242775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=7537037030500242775' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7537037030500242775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7537037030500242775'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/resco-pocket-radio-v171.html' title='Resco Pocket Radio v1.71'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-1052483489949938512</id><published>2007-11-07T23:20:00.001-08:00</published><updated>2007-11-08T02:15:27.375-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>Bluetooth Sniper   V1.3.469- CRACKED!</title><content type='html'>&lt;img src="http://www.pxdxa.com/image/post/emotion/13.gif" align="left" border="0" /&gt; &lt;span class="tpc_title"&gt;Bluetooth Sniper   V1.3.469- CRACKED! (蓝牙狙击手)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="tpc_content"&gt;&lt;b&gt;Title:&lt;/b&gt; Sniper   V1.3.469&lt;span style="font-size: 0pt;"&gt; Gh[O]k-} &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; u()@\cpr &lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.divshare.com/download/1141177-18c" target="_blank"&gt;&lt;img src="http://www.divshare.com/img/1141177-18c.gif" onclick="" /&gt;screen.width-461) window.open('http://www.divshare.com/img/1141177-18c.gif');" border="0"&gt;&lt;/a&gt;&lt;a href="http://www.divshare.com/download/1141178-a73" target="_blank"&gt;&lt;img src="http://www.divshare.com/img/1141178-a73.jpg" onclick="" /&gt;screen.width-461) window.open('http://www.divshare.com/img/1141178-a73.jpg');" border="0"&gt;&lt;/a&gt;&lt;span style="font-size: 0pt;"&gt; |SFSHkf9 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; ;4R4gb: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; wU%Ljs `N &lt;/span&gt;&lt;br /&gt;&lt;b&gt;Requirements:&lt;/b&gt; WM 5.0, PPC 2003/SE&lt;span style="font-size: 0pt;"&gt; {`?s~2C &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; ~(MpX5,v5 &lt;/span&gt;&lt;br /&gt;&lt;b&gt;Overview: &lt;/b&gt; &lt;span style="font-size: 0pt;"&gt; "%!uH3T &lt;/span&gt;&lt;br /&gt;Sniper - Chat, Messaging, FileSharing, BlueJacking, Social Networking over BlueTooth.&lt;span style="font-size: 0pt;"&gt; b.t|&lt;"v &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; 9?uZwLvS &lt;/span&gt;&lt;br /&gt;&lt;b&gt;Info:&lt;/b&gt;&lt;span style="font-size: 0pt;"&gt; SATy|" &lt;/span&gt;&lt;br /&gt;Do you like chatting with people you don’t know? Do you want to be able easily share multimedia files with your friends? Do you hate the cost of MMS? Well now you can do it all via BlueTooth ? &lt;span style="font-size: 0pt;"&gt; }=8k\Dk $ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; |v_XeV8R &lt;/span&gt;&lt;br /&gt;Find your target, take aim and let Sniper do the rest! &lt;span style="font-size: 0pt;"&gt; 2sj ?Neb &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; M1=9eS 6$ &lt;/span&gt;&lt;br /&gt;Using Sniper you can send/receive and reply to text messages from other BlueTooth equipped phones (including non Windows Mobile devices such as Nokias and Sony-Ericssons). Sniper also contains a BlueTooth scanner which will locate discoverable BlueTooth devices in your vicinity to start socializing with. Sniper will also allow you to transfer files between devices as well as messages. With just a few clicks you can designate folders (on the storage card if you wish) for Music, pictures or any kind of file. Sniper is skinnable and comes with a range of cool skins. More skins may be easily added. Sniper also includes a Bluejacking feature which means you can send files or messages to all devices within range at the same time. A useful feature for sending out Business cards at meetings! Since BlueTooth is short range 10-12 meters and does not use a Wireless carriers data network, all this messaging and data transfer is FREE.&lt;span style="font-size: 0pt;"&gt; RhZ[8-n &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; aV(&lt;nvz&gt;&lt;br /&gt;&lt;b&gt;Compatibility:&lt;/b&gt;&lt;span style="font-size: 0pt;"&gt; gUCj2k*26 &lt;/span&gt;&lt;br /&gt;Pocket PC Windows Mobile 5.0&lt;span style="font-size: 0pt;"&gt; FF"e{pc; &lt;/span&gt;&lt;br /&gt;Pocket PC VGA resolution (fullscreen 640x480)&lt;span style="font-size: 0pt;"&gt; #bn$R;RO &lt;/span&gt;&lt;br /&gt;Pocket PC Square VGA resolution (480x480)&lt;span style="font-size: 0pt;"&gt; *D6R1e &lt;/span&gt;&lt;br /&gt;Pocket PC Square QVGA resolution (240x240)&lt;span style="font-size: 0pt;"&gt; !PQk1]w &lt;/span&gt;&lt;br /&gt;Pocket PC QVGA resolution (320x240)&lt;span style="font-size: 0pt;"&gt; K�&gt;m}7)B &lt;/span&gt;&lt;br /&gt;Smartphone Windows Mobile 5.0&lt;span style="font-size: 0pt;"&gt; [&amp;amp;g3dd &lt;/span&gt;&lt;br /&gt;Smartphone Standard resolution (176x220)&lt;span style="font-size: 0pt;"&gt;  C�0= &lt;/span&gt;&lt;br /&gt;Smartphone Smartphone 2003 SE&lt;span style="font-size: 0pt;"&gt; _@\ |H]P &lt;/span&gt;&lt;br /&gt;Smartphone Smartphone 2003&lt;span style="font-size: 0pt;"&gt; %F"ey�g + &lt;/span&gt;&lt;br /&gt;Smartphone Smartphone 2002&lt;span style="font-size: 0pt;"&gt; q!Rm%jP &lt;/span&gt;&lt;br /&gt;Smartphone QVGA resolution (windowed at 176x220)&lt;span style="font-size: 0pt;"&gt; &gt;"\bnN~ &lt;/span&gt;&lt;br /&gt;Smartphone QVGA resolution (fullscreen 240x320) &lt;span style="font-size: 0pt;"&gt; Bg{/E`WCg &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; &lt;.heQ"Cg &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; BjVk1@vW &lt;/span&gt;&lt;br /&gt;&lt;b&gt;Homepage:&lt;/b&gt; &lt;a href="http://www.gadgetapps.net/" target="_blank"&gt;http://www.gadgetapps.net&lt;/a&gt;&lt;span style="font-size: 0pt;"&gt; /nawB% &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; -C*%"x &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; tTL.ZgJ}s &lt;/span&gt;&lt;br /&gt;&lt;b&gt;Download Instructions:&lt;/b&gt;&lt;span style="font-size: 0pt;"&gt; %T#E,4E &lt;/span&gt;&lt;br /&gt;Just unzip the "Bluetooth Sniper" folder and click the "setup.exe" or copy the "Sniper.1.3.469.PPC.FULL.CAB" to your device and install it.&lt;span style="font-size: 0pt;"&gt; u|/2^zEYMm &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; +S |[dk^ &lt;/span&gt;&lt;br /&gt;&lt;b&gt;Important Note:&lt;/b&gt;&lt;span style="font-size: 0pt;"&gt; &gt;Wnm $&lt;c&gt;&lt;br /&gt;Your device must set the language to english (under regional setting).&lt;span style="font-size: 0pt;"&gt; pC&gt;t5nW&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; /oP 9$LN &lt;/span&gt;&lt;br /&gt;&lt;b&gt;Registering the software:&lt;/b&gt;&lt;span style="font-size: 0pt;"&gt; T.oc^fF�  &lt;/span&gt;&lt;br /&gt;After installed, you must follow the instructions below:&lt;span style="font-size: 0pt;"&gt; tuj{49^ &lt;/span&gt;&lt;br /&gt;a)open the application&lt;span style="font-size: 0pt;"&gt; J;n|H5 &lt;/span&gt;&lt;br /&gt;b)click "option" and then click "setting"&lt;span style="font-size: 0pt;"&gt; P%|1Bb &lt;/span&gt;&lt;br /&gt;c)from the "setting" you click on "register"&lt;span style="font-size: 0pt;"&gt; :}IQ%@e} &lt;/span&gt;&lt;br /&gt;d)finally just simply key in any 5 numbers for completing the registration!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:gray;"&gt;[ 此贴被samwong79在2007-07-05 22:38重新编辑 ]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=41745&amp;amp;aid=77877" target="_blank"&gt; &lt;span style="color:red;"&gt;Bluetooth Sniper.rar&lt;/span&gt;&lt;/a&gt; (665 K) Downloads:3612&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-1052483489949938512?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/1052483489949938512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=1052483489949938512' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/1052483489949938512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/1052483489949938512'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/bluetooth-sniper-v13469-cracked.html' title='Bluetooth Sniper   V1.3.469- CRACKED!'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-530226461910941319</id><published>2007-11-07T23:05:00.000-08:00</published><updated>2007-11-07T23:14:10.303-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><title type='text'>HNHSoft English-English Dictionary v3.0 *Regged*</title><content type='html'>&lt;span class="tpc_title"&gt;HNHSoft English-English Dictionary v3.0 *Regged*&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_070818/65_90081_041c7_pxdxa.hnhsoft.gif" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_070818/65_90081_041c7_pxdxa.hnhsoft.gif');" border="0"&gt;&lt;br /&gt;&lt;span class="tpc_content"&gt;  ...&lt;span style="font-size:0;"&gt; ],'\kU{Gr &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; 80LZZ:A~7 &lt;/span&gt;&lt;br /&gt;HNHSoft English Dictionary:&lt;span style="font-size:0;"&gt; )fU^+3 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; tPyNS^U &lt;/span&gt;&lt;br /&gt;HNHSoft English Dictionary is a comprehensive English dictionary and thesaurus.&lt;span style="font-size:0;"&gt;  -|Pq&amp;amp;4T &lt;/span&gt;&lt;br /&gt;Powered by Wordnet data, it contains over 150,000+ English head words. If printed,&lt;span style="font-size:0;"&gt; qehLe#aCk &lt;/span&gt;&lt;br /&gt;it would be equivalent to an incredibly huge reference book of over 1,800 pages!&lt;span style="font-size:0;"&gt; 1naFYVqj &lt;/span&gt;&lt;br /&gt;The dictionary provides a great study tool that allows you to organize your own&lt;span style="font-size:0;"&gt; cj8gn3 6 &lt;/span&gt;&lt;br /&gt;list of words. You can review the words any time you want, as often as you want,&lt;span style="font-size:0;"&gt; egV9)$fT &lt;/span&gt;&lt;br /&gt;and even test if you have memorized your words. No matter you are a language scholar&lt;span style="font-size:0;"&gt;  X NooPK8 &lt;/span&gt;&lt;br /&gt;or an English language student, you will find this dictionary extremely useful!&lt;span style="font-size:0;"&gt; V W&gt;f&gt;W &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt;  &lt;g!+e&gt;&lt;i8i&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; Z2X5duPD &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; lrx- 2+Xm &lt;/span&gt;&lt;br /&gt;Key Features:&lt;span style="font-size:0;"&gt; HZvo6=yj8 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; 9)'p^-`B &lt;/span&gt;&lt;br /&gt;150,000+ entries, 1.8 million words. Equivalent to a huge book of 1,800 pages&lt;span style="font-size:0;"&gt;  D `dWD &lt;/span&gt;&lt;br /&gt;Text to speech engine to speak head words out loud&lt;span style="font-size:0;"&gt; l/&lt;i�!&gt;&lt;br /&gt;Provides word links related words such as synonym, antonym, etc.&lt;span style="font-size:0;"&gt; "MPOf &lt;/span&gt;&lt;br /&gt;Great study tool allows you to organize your own word list so you can revisit&lt;span style="font-size:0;"&gt; :NIIX)X &lt;/span&gt;&lt;br /&gt;Recently viewed words&lt;span style="font-size:0;"&gt; d VEf13_ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; LcS@k`*@1P &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; hYb}4~T &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; T|l9zM. &lt;/span&gt;&lt;br /&gt;Supported Windows Mobile Pocket PC Platforms:&lt;span style="font-size:0;"&gt; W I?Ch|[ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; g?d7 mPd &lt;/span&gt;&lt;br /&gt;All Pocket PC 2000, Pocket PC 2002, Pocket PC 2003, Pocket PC 2003 SE, Windows Mobile 5.0 Pocket PC,&lt;span style="font-size:0;"&gt; uczC h~,  &lt;/span&gt;&lt;br /&gt;Windows Mobile 6 Professional, and Windows Mobile 6 Classic devices, including HP iPAQ, Dell Axim,&lt;span style="font-size:0;"&gt; ]}Sym?t$ &lt;/span&gt;&lt;br /&gt;Dopod, HTC, and many more.&lt;span style="font-size:0;"&gt; ^%JLLXl &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; +q0PY" &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; _%hPJ'jn, &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; &gt;g&lt;w{~-C &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; {7C&gt;S$r &lt;/span&gt;&lt;br /&gt;Download program (17MB) &amp;amp; more info:&lt;span style="font-size:0;"&gt; IqMW[EYD &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; 8&lt;s^11|�&gt;&lt;br /&gt;htxp://www.hnhsoft.com/English-Dictionary&lt;/s^11|�&gt;&lt;/span&gt;&lt;br /&gt;&lt;!--  &lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;  &lt;br /&gt;&lt;br /&gt;&lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=46594&amp;amp;aid=86396" target="_blank"&gt; &lt;span style="color:red;"&gt;HNHSoft English-English Dictionary v3.0_PPC200x - Serial Only.rar&lt;/span&gt;&lt;/a&gt; (35 K) Downloads:513&lt;/i�!&gt;&lt;/span&gt;&lt;/i8i&gt;&lt;/g!+e&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-530226461910941319?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/530226461910941319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=530226461910941319' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/530226461910941319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/530226461910941319'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/hnhsoft-english-english-dictionary-v30.html' title='HNHSoft English-English Dictionary v3.0 *Regged*'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-5498436980836756840</id><published>2007-11-07T22:37:00.000-08:00</published><updated>2007-11-07T22:38:14.512-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='enhancement'/><title type='text'>Emotional Clock v1.0</title><content type='html'>&lt;span class="tpc_title"&gt;Emotional Clock v1.0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="tpc_content"&gt;&lt;b&gt;Emotional Clock v1.0&lt;/b&gt;&lt;span style="font-size: 0pt;"&gt; _KxGUuY &lt;/span&gt;&lt;br /&gt;&lt;u&gt;Requirements:&lt;/u&gt; Requires Pocket PC 2002 or later. (Only ARM/XScale CPU's are supported.)&lt;span style="font-size: 0pt;"&gt;   96+zx=o &lt;/span&gt;&lt;br /&gt;&lt;u&gt;Overview:&lt;/u&gt; Emotional Clock is a simple clock and timer which express your emotion. &lt;span style="font-size: 0pt;"&gt; dqA&amp;amp;*CII &lt;/span&gt;&lt;br /&gt;&lt;img src="http://www.pocketgear.com/en_US/html/images/software/screenshots/vol01/9h/sku9654328-update/eclock.gif" onclick="" /&gt;screen.width-461) window.open('http://www.pocketgear.com/en_US/html/images/software/screenshots/vol01/9h/sku9654328-update/eclock.gif');" border="0"&gt;&lt;span style="font-size: 0pt;"&gt; 8&amp;amp;7:n|sX] &lt;/span&gt;&lt;br /&gt;[break]&lt;span style="font-size: 0pt;"&gt;  A()gB4vvy &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; +0t(|&amp;amp;-c &lt;/span&gt;&lt;br /&gt;Complete description:&lt;span style="font-size: 0pt;"&gt; \YjW^N &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; Q�Npx@' &lt;/span&gt;&lt;br /&gt;Emotional Clock is a simple clock and timer which express your emotion. You can choose an emotion among predefined emotion images. You can also choose your own bitmap images. Emotional Clock may be a cute and funny communication tools.&lt;span style="font-size: 0pt;"&gt; /uLn)F  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; &lt;t%]ru&gt;&lt;br /&gt;&lt;u&gt;More Info:&lt;/u&gt;&lt;span style="font-size: 0pt;"&gt; ~51'&lt;|kx &lt;/span&gt;&lt;br /&gt;&lt;div style="font-size: 9px; margin-left: 5px;"&gt;&lt;b&gt;CODE:&lt;/b&gt;&lt;/div&gt;&lt;div class="quote" id="code1"&gt;http://www.pocketgear.com/en_US/html/display_product.jsp;jsessionid=GxvKVn31XmvYxHKhJtt157bmvz63FpFyrhVT1MQgDqZQ1nQrCQgL!274031929?categoryId=cat3880122&amp;amp;srcPage=category&amp;amp;id=prod6276663&amp;amp;sf=48190044&lt;/div&gt;&lt;div style="font-size: 11px; margin-left: 5px;"&gt;&lt;a href="javascript:" onclick="CopyCode(document.getElementById('code1'));"&gt;[Copy to clipboard]&lt;/a&gt;&lt;/div&gt;&lt;span style="font-size: 0pt;"&gt; VjU\,tEA &lt;/span&gt;&lt;br /&gt;&lt;u&gt;Download Instructions:&lt;/u&gt;&lt;span style="font-size: 0pt;"&gt; LlF w7e1 &lt;/span&gt;&lt;br /&gt;&lt;a href="http://rapidshare.com/files/63350042/Emotional.Clock.v1.0.ARM.PPC.Regged.rar.html" target="_blank"&gt;http://rapidshare.com/files/63350042/Emotional.Clock.v1.0.ARM.PPC.Regged.rar.html&lt;/a&gt;&lt;span style="font-size: 0pt;"&gt; 9NcxI]4 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; WJy;304 &lt;/span&gt;&lt;br /&gt;Mirror:&lt;span style="font-size: 0pt;"&gt; &amp;amp;8'j0gS:� &lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.megaupload.com/?d=F0IURYUM" target="_blank"&gt;http://www.megaupload.com/?d=F0IURYUM&lt;/a&gt;&lt;span style="font-size: 0pt;"&gt; VSe42gGu &lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.filefactory.com/file/83d0be/" target="_blank"&gt;http://www.filefactory.com/file/83d0be/&lt;/a&gt;&lt;span style="font-size: 0pt;"&gt; =H @$f &lt;/span&gt;&lt;br /&gt;&lt;a href="http://depositfiles.com/files/2084419" target="_blank"&gt;http://depositfiles.com/files/2084419&lt;/a&gt;&lt;span style="font-size: 0pt;"&gt; hZ&lt;}b` &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; StNJW)y &lt;/span&gt;&lt;br /&gt;δεrial No:&lt;span style="font-size: 0pt;"&gt; (9R9YJI &lt;/span&gt;&lt;br /&gt;Name: aSxPDA&lt;span style="font-size: 0pt;"&gt; pLeOD9&amp;amp;t &lt;/span&gt;&lt;br /&gt;Code: aSxPDA-RF7BR5&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:gray;"&gt;[ 此贴被bathrinath在2007-10-18 18:29重新编辑 ]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=52283&amp;amp;aid=96138" target="_blank"&gt; &lt;span style="color:red;"&gt;Emotional.Clock.v1.0.ARM.PPC.Regged.rar&lt;/span&gt;&lt;/a&gt; (104 K) Downloads:234&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-5498436980836756840?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/5498436980836756840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=5498436980836756840' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/5498436980836756840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/5498436980836756840'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/emotional-clock-v10.html' title='Emotional Clock v1.0'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-6755841723996440222</id><published>2007-11-07T22:35:00.000-08:00</published><updated>2007-11-07T22:36:27.146-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>Microsoft DeepFish.1.0+sn</title><content type='html'>&lt;img src="http://www.pxdxa.com/image/post/emotion/1.gif" align="left" border="0" /&gt; &lt;span class="tpc_title"&gt;Microsoft DeepFish.1.0+sn&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_070918/65_55294_8b9f9_pxdxa.Mars_main_image.jpg" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_070918/65_55294_8b9f9_pxdxa.Mars_main_image.jpg');" border="0"&gt; &lt;br /&gt;&lt;span class="tpc_content"&gt;The Deepfish Technology Preview enhances existing mobile browsing technologies by displaying content in a view that is closer to the desktop experience. Our zoom-able interface and cue map allow you to quickly access the information you care about over the web without ever losing track of where you are. &lt;span style="font-size: 0pt;"&gt; G"Y;ID�@ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; +`('D&gt;{v &lt;/span&gt;&lt;br /&gt;Note : Deepfish is currently only available by invite only to a small number of beta users. Please visit &lt;a href="http://labs.live.com/deepfish" target="_blank"&gt;http://labs.live.com/deepfish&lt;/a&gt; page to keep informed of future updates and availability. &lt;span style="font-size: 0pt;"&gt; h2vN3Ao^:p &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; C:23~/*o @ &lt;/span&gt;&lt;br /&gt;&lt;a href="http://labs.live.com/deepfish/" target="_blank"&gt;http://labs.live.com/deepfish/&lt;/a&gt;&lt;span style="font-size: 0pt;"&gt; &gt;htH.gLw &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; ?�k)J  &lt;/span&gt;&lt;br /&gt;Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:gray;"&gt;[ 此贴被moonmoon在2007-09-19 07:28重新编辑 ]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=49556&amp;amp;aid=91581" target="_blank"&gt; &lt;span style="color:red;"&gt;Microsoft[1].DeepFish.1.0+sn(2).zip&lt;/span&gt;&lt;/a&gt; (153 K) Downloads:2123&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-6755841723996440222?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/6755841723996440222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=6755841723996440222' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6755841723996440222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6755841723996440222'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/microsoft-deepfish10sn.html' title='Microsoft DeepFish.1.0+sn'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-3899700123419237251</id><published>2007-11-07T20:34:00.000-08:00</published><updated>2007-11-07T22:28:46.580-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>Mundu IM v4 Smartphone or WM5</title><content type='html'>&lt;span class="tpc_title"&gt;Mundu IM v4 Smartphone or WM5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_071103/65_55294_23de1_pxdxa.mundu.jpg" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_071103/65_55294_23de1_pxdxa.mundu.jpg');" border="0"&gt; &lt;br /&gt;&lt;span class="tpc_content"&gt;MUNDU IM&lt;span style="font-size: 0pt;"&gt; Sc0Fgub&lt;5)&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; h (7*@p0  &lt;/span&gt;&lt;br /&gt;Take your friends, colleagues and clients with you wherever you go. Chat, conference, share photos, transfer files and do a whole lot more, all within a single, easy-to-use interface. &lt;span style="font-size: 0pt;"&gt; &amp;amp;)!Pcs7q &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; ( `*{ 8 &lt;/span&gt;&lt;br /&gt;Interoperability.  &lt;span style="font-size: 0pt;"&gt; m)`B'@cXQ &lt;/span&gt;&lt;br /&gt;View and chat with all your contacts across AIM®, Yahoo®, MSN®, Google® Talk, ICQ® and Jabber® within a single, easy-to-use interface.   &lt;span style="font-size: 0pt;"&gt; &amp;amp;6#x)LAy &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; 4A,fnCN &lt;/span&gt;&lt;br /&gt;Cross Conferencing&lt;span style="font-size: 0pt;"&gt; s_2bf+! &lt;/span&gt;&lt;br /&gt;Invite friends, colleagues or clients across AOL, Yahoo and MSN to conference within a single chat window.   &lt;span style="font-size: 0pt;"&gt; J''?eu; &lt;/span&gt;&lt;br /&gt; &lt;span style="font-size: 0pt;"&gt; Ln$h]em^ &lt;/span&gt;&lt;br /&gt;Photo Sharing &lt;span style="font-size: 0pt;"&gt; "jk_$f) &lt;/span&gt;&lt;br /&gt;Share photos taken from your camera phone with friends and colleagues.  &lt;span style="font-size: 0pt;"&gt; #Gc;DL &lt;/span&gt;&lt;br /&gt; &lt;span style="font-size: 0pt;"&gt; [TX"XRB*` &lt;/span&gt;&lt;br /&gt;File Transfer &lt;span style="font-size: 0pt;"&gt; )cbgNn{g  &lt;/span&gt;&lt;br /&gt;Transfer files from your mobile device to friends and colleagues.  &lt;span style="font-size: 0pt;"&gt; wr|FsE &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; \#U+ d&gt; &lt;/span&gt;&lt;br /&gt;Email Notifications&lt;span style="font-size: 0pt;"&gt; DU\zm�TXF &lt;/span&gt;&lt;br /&gt;Receive email notifications for your Yahoo, MSN or Google Talk accounts on the move. &lt;span style="font-size: 0pt;"&gt; "0dM']K^O &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; 2&amp;amp;?&gt;QkHW` &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; $T' g$' &lt;/span&gt;&lt;br /&gt;Smart Group Management &lt;span style="font-size: 0pt;"&gt; kS`"P0! &lt;/span&gt;&lt;br /&gt;Organize your contacts by services. &lt;span style="font-size: 0pt;"&gt; fC.0- &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; zz E0`De� &lt;/span&gt;&lt;br /&gt;Multi-lingual Chat &lt;span style="font-size: 0pt;"&gt; d2Ad?kb,^ &lt;/span&gt;&lt;br /&gt;Chat with your contacts in European or Asian languages. &lt;span style="font-size: 0pt;"&gt; ^JaytZIh &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; mDDAg- &lt;/span&gt;&lt;br /&gt;Expressive Chat Using Rich Text, Emoticons &amp;amp; Customizable Status&lt;span style="font-size: 0pt;"&gt; G2=&lt;:RH &lt;/span&gt;&lt;br /&gt;Customize the color and style of your chat text with a range of exciting rich text options and the ability to set customizable presence status across IM services.&lt;span style="font-size: 0pt;"&gt; GF{l0H &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; NpGF8Ye_ &lt;/span&gt;&lt;br /&gt;Background Mode Support&lt;span style="font-size: 0pt;"&gt; `QP7LGw &lt;/span&gt;&lt;br /&gt;Stay connected on IM while you are on the phone or accessing other phone functions. Choose to be alerted by sound, pop-up, or vibration when your contacts come online or when you receive an IM.&lt;span style="font-size: 0pt;"&gt; e|_,9P&amp;amp;n &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; q9@UT DaZ &lt;/span&gt;&lt;br /&gt;Message Archiving and Chat History tEeJ.)&lt;span style="font-size: 0pt;"&gt; =&gt; eO!}7 &lt;/span&gt;&lt;br /&gt;Save your important chat conversations and view them later. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:gray;"&gt;[ 此贴被moonmoon在2007-11-04 00:38重新编辑 ]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=53792&amp;amp;aid=98967" target="_blank"&gt; &lt;span style="color:red;"&gt;munduim4.rar&lt;/span&gt;&lt;/a&gt; (1265 K) Downloads:94&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-3899700123419237251?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/3899700123419237251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=3899700123419237251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/3899700123419237251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/3899700123419237251'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/mundu-im-v4-smartphone-or-wm5.html' title='Mundu IM v4 Smartphone or WM5'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-2779521009344706912</id><published>2007-11-07T20:31:00.000-08:00</published><updated>2007-11-07T20:33:04.163-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='enhancement'/><title type='text'>HTC Home Extra (6tabs) + HTC Home Customizer for WM5/6</title><content type='html'>&lt;span class="tpc_title"&gt;HTC Home Extra (6tabs) + HTC Home Customizer for WM5/6&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_070830/65_232092_d10af_pxdxa.NewForce-HTC-Home-copy.png" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_070830/65_232092_d10af_pxdxa.NewForce-HTC-Home-copy.png');" border="0"&gt; &lt;br /&gt;&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_070830/65_232092_87600_pxdxa.NewForce-HTC-Home-Extra-copy.png" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_070830/65_232092_87600_pxdxa.NewForce-HTC-Home-Extra-copy.png');" border="0"&gt; &lt;br /&gt;&lt;span class="tpc_content"&gt;HTC Home Extra (6tabs) + HTC Home Customizer for WM5/6&lt;span style="font-size: 0pt;"&gt; 47yL:v"4 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; q?x[79t[X &lt;/span&gt;&lt;br /&gt;Has just spent some time to re-packaged into new cab file&lt;span style="font-size: 0pt;"&gt; 6WQcrOjfj &lt;/span&gt;&lt;br /&gt;"Helmi - HTC Home (6tabs)", "emunutz - HTC Home Customizer 0.8b"&lt;span style="font-size: 0pt;"&gt; H�637Mg &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; RwU[I�8} &lt;/span&gt;&lt;br /&gt;In the re-packaged,&lt;span style="font-size: 0pt;"&gt; T+&gt;kB:_S &lt;/span&gt;&lt;br /&gt;1. Has merged some extra program executable files.&lt;span style="font-size: 0pt;"&gt; @F\2&amp;amp;*sR &lt;/span&gt;&lt;br /&gt;2. Self-created some Windows Mobile control panel link files.&lt;span style="font-size: 0pt;"&gt; &lt;GeNa\M3 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; !K%qe &lt;/span&gt;&lt;br /&gt;So I've decided to call my re-packaged version as "HTC Home Extra"&lt;span style="font-size: 0pt;"&gt; 0E:qooF_ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; I'M6sB#u &lt;/span&gt;&lt;br /&gt;Both program has running fine on my Asus P535 on WM5 and the free upgraded to WM6 operating system.&lt;span style="font-size: 0pt;"&gt; weW[KB{^ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; 7z4f|] &lt;/span&gt;&lt;br /&gt;HTC Home Extra function :&lt;span style="font-size: 0pt;"&gt; *{[c)=yp &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; `J87A &lt;/span&gt;&lt;br /&gt;1. Can be installed on WM5 and WM6&lt;span style="font-size: 0pt;"&gt; ]R!x{Vc] &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; k-/~&amp;amp;]xKs@ &lt;/span&gt;&lt;br /&gt;2. Created a new "HTC Home extra" folder in "Start Menu &gt; Programs" folder&lt;span style="font-size: 0pt;"&gt; O P&gt;/2t6* &lt;/span&gt;&lt;br /&gt;   Inside this folder contained some self created WM5/6 control panel Settings links.&lt;span style="font-size: 0pt;"&gt; S=`K45q2 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; %mmj*Z &lt;/span&gt;&lt;br /&gt;  These including the very useful "Running Programs" link that belong to, "Memory" function has been inserted onto the HTC Home "Launher" tab.&lt;span style="font-size: 0pt;"&gt; c-4}u�w=:a &lt;/span&gt;&lt;br /&gt;  Activate this link will provide you the "Running Programs" function that allow you to instant stop a selective or all running programs in the background which most of the WM programs could not stop from running by pressing the X button in the program windows.&lt;span style="font-size: 0pt;"&gt; j_ b (|n &lt;/span&gt;&lt;br /&gt;    This has similarity function as the "HTC X-Button, Task Manager" closing program action.&lt;span style="font-size: 0pt;"&gt; u&amp;amp;OLG$, &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; $8 �lQL: &lt;/span&gt;&lt;br /&gt;3. Has merged the "SoftReset and TaskManger v2.7.0.1" program into "HTC Home extra" folder too.&lt;span style="font-size: 0pt;"&gt; w[rb &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; 89Ct5u^| &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; .�WVE?SaJ &lt;/span&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Attention :&lt;/b&gt;&lt;/u&gt;&lt;span style="font-size: 0pt;"&gt; k+2�Q* &lt;/span&gt;&lt;br /&gt;For Chinese language ROM WM device,&lt;span style="font-size: 0pt;"&gt; aUJEgX[&lt; &lt;/span&gt;&lt;br /&gt;After installation, please go to "\Windows" folder and change 3 files name as,&lt;span style="font-size: 0pt;"&gt; ] rTI -= &lt;/span&gt;&lt;br /&gt;0804 (中国简体机 )&lt;span style="font-size: 0pt;"&gt; ,MjYlxzb &lt;/span&gt;&lt;br /&gt;0c04 (香港区简/繁体机?)&lt;span style="font-size: 0pt;"&gt; c\lQ?x� &lt;/span&gt;&lt;br /&gt;0404 (台湾区繁体机)&lt;span style="font-size: 0pt;"&gt; 1+'Jz?T &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; m_# ^ &lt;/span&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Example for Chinese (Taiwan) devices change,&lt;/b&gt;&lt;/u&gt;&lt;span style="font-size: 0pt;"&gt; rnTL1. &lt;/span&gt;&lt;br /&gt;&lt;b&gt;"HTC HDlg.exe.0409.mui" as "HTC HDlg.exe.0404.mui"&lt;span style="font-size: 0pt;"&gt;  &lt;}tQ1 &lt;/span&gt;&lt;br /&gt;"HTCHome.dll.0409.mui" as "HTCHome.dll.0404.mui"&lt;span style="font-size: 0pt;"&gt; ?'zd]]I &lt;/span&gt;&lt;br /&gt;"HH_0409_WeatherCities.xml" as "HH_0404_WeatherCities.xml"&lt;/b&gt; &lt;span style="font-size: 0pt;"&gt; a^\l)HXdW&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; B-f\vLbMj &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; @eYvpfz &lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Tested below PDA can use&lt;span style="font-size: 0pt;"&gt; Jx7M8~ &lt;/span&gt;&lt;br /&gt;Working on (updated on 02/10/2007): &lt;/u&gt; &lt;/b&gt;&lt;span style="font-size: 0pt;"&gt; 73yPtg(Q&amp;amp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; 6JUp%c &lt;/span&gt;&lt;br /&gt;&lt;b&gt;Asus :&lt;/b&gt;&lt;span style="font-size: 0pt;"&gt; tu~&lt;;ZDb &lt;/span&gt;&lt;br /&gt;Asus P535&lt;span style="font-size: 0pt;"&gt; M 5A]&lt;u6&gt;&lt;br /&gt;Asus P525&lt;span style="font-size: 0pt;"&gt; "^$}Gq1I &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; Nr!v^'* &lt;/span&gt;&lt;br /&gt;&lt;b&gt;HTC/Dopod :&lt;/b&gt;&lt;span style="font-size: 0pt;"&gt; w[K*3S$? &lt;/span&gt;&lt;br /&gt;Dopod D810 WM6&lt;span style="font-size: 0pt;"&gt; A!gUA+4t &lt;/span&gt;&lt;br /&gt;Dopod D810 WM6 (CHT)&lt;span style="font-size: 0pt;"&gt; q3I[mQ &lt;/span&gt;&lt;br /&gt;Dopod D810 WM5&lt;span style="font-size: 0pt;"&gt; Q&amp;amp;{WXc5a &lt;/span&gt;&lt;br /&gt;Dopod CHT9100 WM5 &lt;span style="font-size: 0pt;"&gt; #:f�&lt;ob}�&gt;&lt;br /&gt;Dopod D810 (HK version)&lt;span style="font-size: 0pt;"&gt; ,6y0@ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; rB? ?IG &lt;/span&gt;&lt;br /&gt;Dopod P800w (Artemis) WM5&lt;span style="font-size: 0pt;"&gt; H/)U37U &lt;/span&gt;&lt;br /&gt;Dopod D818C&lt;span style="font-size: 0pt;"&gt; y3omv)=%I &lt;/span&gt;&lt;br /&gt;Dopod D600 (Chinese)&lt;span style="font-size: 0pt;"&gt; nZcX21L &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; 2~k%e&amp;amp;~ &lt;/span&gt;&lt;br /&gt;Dopod 838 Pro (English Rom)&lt;span style="font-size: 0pt;"&gt; "j5 g(Qw &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; &amp;amp;mXNcms"8 &lt;/span&gt;&lt;br /&gt;Dopod U1000 with Real VGA @ 128dpi &lt;span style="font-size: 0pt;"&gt; N%Hb8\mA &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; w8~q:yf &lt;/span&gt;&lt;br /&gt;HTC 3300 running WM6&lt;span style="font-size: 0pt;"&gt; Vdp ( 8T &lt;/span&gt;&lt;br /&gt;HTC-Softbank (Chinese)&lt;span style="font-size: 0pt;"&gt; 6l�+s]\ &lt;/span&gt;&lt;br /&gt;HTC TyTH II (Chinese)&lt;span style="font-size: 0pt;"&gt; 7Js&gt;*kH0 &lt;/span&gt;&lt;br /&gt;HTC P3600i&lt;span style="font-size: 0pt;"&gt; w+{Ak_sm &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; ps=O(_z-r &lt;/span&gt;&lt;br /&gt;&lt;b&gt;O2 :&lt;/b&gt;&lt;span style="font-size: 0pt;"&gt; /Qqx2r &lt;/span&gt;&lt;br /&gt;Atom Exec&lt;span style="font-size: 0pt;"&gt; lJ26Y aa� &lt;/span&gt;&lt;br /&gt;Atom wm5&lt;span style="font-size: 0pt;"&gt; Z\cM]2U &lt;/span&gt;&lt;br /&gt;Stealth&lt;span style="font-size: 0pt;"&gt; 8KY+SsZRw &lt;/span&gt;&lt;br /&gt;XDA II (HTC Himalaya) on WM5&lt;span style="font-size: 0pt;"&gt; C&amp;amp;[B[&lt;;w &lt;/span&gt;&lt;br /&gt;Zinc wm6 &lt;span style="font-size: 0pt;"&gt; 1!CCX_XO &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; hU8T| ut! &lt;/span&gt;&lt;br /&gt;&lt;b&gt;MIO :&lt;/b&gt;&lt;span style="font-size: 0pt;"&gt; [.(b4g7R*% &lt;/span&gt;&lt;br /&gt;MIO A501&lt;span style="font-size: 0pt;"&gt; s5j Ot$R &lt;/span&gt;&lt;br /&gt;MIO A701&lt;span style="font-size: 0pt;"&gt; {:G&amp;amp;6SF &lt;/span&gt;&lt;br /&gt;MIO A700&lt;span style="font-size: 0pt;"&gt; ?wAgFfe &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt;  m.DeW&amp;amp;  &lt;/span&gt;&lt;br /&gt;&lt;b&gt;HP :&lt;/b&gt;&lt;span style="font-size: 0pt;"&gt;  (8K&lt;f[&gt;&lt;br /&gt;HP rw6828&lt;span style="font-size: 0pt;"&gt; "lM L( &lt;/span&gt;&lt;br /&gt;HP rw6828 CH 0409 to 0404 &lt;span style="font-size: 0pt;"&gt; 3q+!"7l   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; u#_cbNH &lt;/span&gt;&lt;br /&gt;&lt;b&gt;Qtek&lt;/b&gt;&lt;span style="font-size: 0pt;"&gt; uQS+xR&amp;amp; &lt;/span&gt;&lt;br /&gt;9100&lt;span style="font-size: 0pt;"&gt; ;C-S  L*I &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; @r':\"*3{ &lt;/span&gt;&lt;br /&gt;********************************************************************&lt;span style="font-size: 0pt;"&gt; q}`.ZOO] &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt;  L~"?L &lt;/span&gt;&lt;br /&gt;HTC Home Customizer 0.8b extra files :&lt;span style="font-size: 0pt;"&gt; 9&lt;gk^%uy&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; wuxV}So_R &lt;/span&gt;&lt;br /&gt;1. I've gotten almost all the "Background, Clock, Icons and Weather Icons" files integrated into my re-packaged version.&lt;span style="font-size: 0pt;"&gt; ,H)eS(# &lt;/span&gt;&lt;br /&gt;    But everybody can always use the "Download Apperances" function in this program to select individual "Background, Clock, Icons and Weather Icons" files to download, or select "Download all" to download all the mentioned files.&lt;span style="font-size: 0pt;"&gt; AcZkD-qhs &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; K[YX#n &lt;/span&gt;&lt;br /&gt;2. The first start-up of this application would perform 1 time unzipping of all the zip files created during installation, so it would take a little longer to unzip all of them. Subsequent start-up no more files unzipping operation so would be faster.&lt;span style="font-size: 0pt;"&gt; UOy\~ Y} &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; 8^v [NrY\ &lt;/span&gt;&lt;br /&gt;3. If you have any question or features request, you can contact this software originator, Mr. emunutz at below thread link,&lt;span style="font-size: 0pt;"&gt; bdUKd8S  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; Y_@KL +EZ] &lt;/span&gt;&lt;br /&gt;&lt;a href="http://forum.xda-developers.com/showthread.php?t=319308" target="_blank"&gt;http://forum.xda-developers.com/showthread.php?t=319308&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:gray;"&gt;[ 此贴被newforce在2007-10-13 20:08重新编辑 ]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; 描述：HTC Home Extra&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=47789&amp;amp;aid=88634" target="_blank"&gt; &lt;span style="color:red;"&gt;HTC Home.NewForce Extra.rar&lt;/span&gt;&lt;/a&gt; (1450 K) Downloads:3893  &lt;br /&gt;&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=47789&amp;amp;aid=90048" target="_blank"&gt; &lt;span style="color:red;"&gt;emunutz.HTC Home Customizer.0.8b.NewForce.rar&lt;/span&gt;&lt;/a&gt; (2702 K) Downloads:2933  &lt;br /&gt;&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=47789&amp;amp;aid=90049" target="_blank"&gt; &lt;span style="color:red;"&gt;Windows.rar&lt;/span&gt;&lt;/a&gt; (190 K) Downloads:2060&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-2779521009344706912?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/2779521009344706912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=2779521009344706912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/2779521009344706912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/2779521009344706912'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/htc-home-extra-6tabs-htc-home_07.html' title='HTC Home Extra (6tabs) + HTC Home Customizer for WM5/6'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-5755638317856563901</id><published>2007-11-07T19:51:00.000-08:00</published><updated>2007-11-07T20:29:28.391-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>[NEW]Paragon Technologie Handy Safe v1.2</title><content type='html'>&lt;span class="tpc_title"&gt;[NEW]Paragon Technologie Handy Safe v1.2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="tpc_content"&gt;Paragon Technologie Handy Safe v1.2&lt;span style="font-size: 0pt;"&gt; 8{}x1�qXY &lt;/span&gt;&lt;br /&gt;Requirements: Window Mobile 2003/SE/WM5 PocketPc.&lt;span style="font-size: 0pt;"&gt; 'KBiFrq&gt; &lt;/span&gt;&lt;br /&gt;Overview: Handy Safe software for Windows Mobile is a perfect assistant for secure and convenient data managing. Keep your mind free from countless numbers and letters. Have all of your important information in one place, safe, easy to access, and always with you with Handy Safe software for Windows Mobile Smartphone. Handy Safe Desktop agent included enables you to synchronize your information between your device and PC.&lt;span style="font-size: 0pt;"&gt;  +zy� &lt;/span&gt;&lt;br /&gt;Store passwords, credit cards details, user names, codes, PINs, accounts (email, Internet, shopping, bank), web pages, addresses, travel info, insurance policies, software keys and much more.&lt;span style="font-size: 0pt;"&gt; H&gt;A^~XML &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; C}Bk�-o[@E &lt;/span&gt;&lt;br /&gt;Handy Safe software for Windows Mobile Pocket PC is a perfect assistant for secure and convenient data managing. Keep your mind free from countless numbers and letters. Have all of your important information in one place, safe, easy to access, and always with you with Handy Safe software for Windows Mobile Pocket PC. Handy Safe Desktop agent included enables you to synchronize your information between your device and PC.&lt;span style="font-size: 0pt;"&gt; -6&gt;d)% &lt;/span&gt;&lt;br /&gt;Store passwords, credit cards details, user names, codes, PINs, accounts (email, Internet, shopping, bank), web pages, addresses, travel info, insurance policies, software keys and much more.&lt;span style="font-size: 0pt;"&gt; ^0}=2#-*&lt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; *.6/ApUe5 &lt;/span&gt;&lt;br /&gt;Screenshot:&lt;span style="font-size: 0pt;"&gt; xV,{"h 1[ &lt;/span&gt;&lt;br /&gt;&lt;img src="http://i6.photobucket.com/albums/y207/freedom_zaft/HandySafe.gif" onclick="" /&gt;screen.width-461) window.open('http://i6.photobucket.com/albums/y207/freedom_zaft/HandySafe.gif');" border="0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:gray;"&gt;[ 此贴被freedom_zaft在2007-09-05 14:08重新编辑 ]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; 描述：Handy Safe v1.2&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=48280&amp;amp;aid=89415" target="_blank"&gt; &lt;span style="color:red;"&gt;Handysafe v1.2.rar&lt;/span&gt;&lt;/a&gt; (1755 K) Downloads:204&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-5755638317856563901?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/5755638317856563901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=5755638317856563901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/5755638317856563901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/5755638317856563901'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/newparagon-technologie-handy-safe-v12.html' title='[NEW]Paragon Technologie Handy Safe v1.2'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-5534760896871788043</id><published>2007-11-07T11:39:00.001-08:00</published><updated>2007-11-07T11:39:54.367-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='enhancement'/><title type='text'>Spb Full Screen Keyboard 3.0.1</title><content type='html'>&lt;span class="tpc_title"&gt;Spb Full Screen Keyboard 3.0.1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="tpc_content"&gt;  Heya,&lt;span style="font-size: 0pt;"&gt; 9}@%x) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; 62j"e0~ &lt;/span&gt;&lt;br /&gt;Spb Full Screen Keyboard 3.0.1:&lt;span style="font-size: 0pt;"&gt; } q!i*^` &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; Tz`)Zk#Od &lt;/span&gt;&lt;br /&gt;This is not a new release [Oct 07, 2005], but I did a search and couldn’t find it. &lt;span style="font-size: 0pt;"&gt; sM_J:h &lt;/span&gt;&lt;br /&gt;I run it on my HTC-touch and I have found it of great value for me, so I though I’d share it. It comes with a key.&lt;span style="font-size: 0pt;"&gt; D[FOT &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; 7mG=M+yG� &lt;/span&gt;&lt;br /&gt;For description and screen shots:&lt;span style="font-size: 0pt;"&gt; AS+xDE &lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.spbsoftwarehouse.com/products/fsk/?en" target="_blank"&gt;http://www.spbsoftwarehouse.com/products/fsk/?en&lt;/a&gt;&lt;span style="font-size: 0pt;"&gt; JoM*bW)r &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; J~)jEP~ &lt;/span&gt;&lt;br /&gt;Enjoy!&lt;span style="font-size: 0pt;"&gt; qJ.&gt;5K0&lt; &lt;/span&gt;&lt;br /&gt;/TmN&lt;span style="font-size: 0pt;"&gt; 5cZ17-3[z &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; lEZBawGO &lt;/span&gt;&lt;br /&gt;============================&lt;span style="font-size: 0pt;"&gt; BK9VD2 G &lt;/span&gt;&lt;br /&gt;Summary:&lt;span style="font-size: 0pt;"&gt; zOnm;1++� &lt;/span&gt;&lt;br /&gt;Spb Full Screen Keyboard is a unique text input tool for Pocket PC. Unlike other input methods it covers the entire screen area and has keys large enough to be typed with finger-tips rather than with a stylus. The dictionary-based correction algorithms allow users to reduce the number of misprints significantly.&lt;span style="font-size: 0pt;"&gt; 78-w+[ &lt;/span&gt;&lt;br /&gt;=============================&lt;span style="font-size: 0pt;"&gt; %}||@xTY/ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; ]|8/~[ &lt;/span&gt;&lt;br /&gt;P.S&lt;span style="font-size: 0pt;"&gt; thgns8aW &lt;/span&gt;&lt;br /&gt;This is my first upload here, so please be nice &lt;img src="http://www.pxdxa.com/image/post/smile/wink.gif" /&gt;&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=53503&amp;amp;aid=98451" target="_blank"&gt; &lt;span style="color:red;"&gt;Spb Full Screen Keyboard 3.0.1.zip&lt;/span&gt;&lt;/a&gt; (1041 K) Downloads:293&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-5534760896871788043?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/5534760896871788043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=5534760896871788043' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/5534760896871788043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/5534760896871788043'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/spb-full-screen-keyboard-301.html' title='Spb Full Screen Keyboard 3.0.1'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-4337925424391407555</id><published>2007-11-07T11:15:00.000-08:00</published><updated>2007-11-07T11:38:09.005-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>PocketMusic Player Bundle v5 with keygen</title><content type='html'>&lt;span class="tpc_title"&gt;PocketMusic Player Bundle v5 with keygen&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_071024/65_64284_a785e_pxdxa.PocketMusic5.0.png" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_071024/65_64284_a785e_pxdxa.PocketMusic5.0.png');" border="0"&gt; &lt;br /&gt;&lt;span class="tpc_content"&gt;Requirements: WM2003 - WM6 (improved WM6 compatibility)&lt;span style="font-size: 0pt;"&gt; j7h&amp;amp;) &lt;/span&gt;&lt;br /&gt;Overview: PocketMusic Bundle - MP3, OGG, WMA Player for Pocket PC with Winamp skins support, Playlist Organizer, Bookmark features, and more.&lt;span style="font-size: 0pt;"&gt;  ^/eka4*e &lt;/span&gt;&lt;br /&gt;Info: &lt;span style="font-size: 0pt;"&gt; 0X@�gs &lt;/span&gt;&lt;br /&gt;PocketMusic Player Bundle includes PocketMusic and PocketMusic Feature Pack. &lt;span style="font-size: 0pt;"&gt;  Z$24` &lt;/span&gt;&lt;br /&gt; * NEW! Version 5.0. &lt;span style="font-size: 0pt;"&gt;  iAc3xu &lt;/span&gt;&lt;br /&gt; * New skins &lt;span style="font-size: 0pt;"&gt; !B[%M~7 &lt;/span&gt;&lt;br /&gt; * Improved support for Bluetooth remote controls and stereo headphones &lt;span style="font-size: 0pt;"&gt; ~EInP1fKUJ &lt;/span&gt;&lt;br /&gt; * Optimized for one-hand operation &lt;span style="font-size: 0pt;"&gt; #?fil{if &lt;/span&gt;&lt;br /&gt; * Greatly improved equalizer performance &lt;span style="font-size: 0pt;"&gt; a14} / &lt;/span&gt;&lt;br /&gt; * Alarm settings is now available from main window &lt;span style="font-size: 0pt;"&gt; j_RMkIy &lt;/span&gt;&lt;br /&gt; * Adjustable alarm volume &lt;span style="font-size: 0pt;"&gt; (&gt;1"AKt7Y &lt;/span&gt;&lt;br /&gt; * Special support for square screens and landscape mode &lt;span style="font-size: 0pt;"&gt; 4HMGMx? &lt;/span&gt;&lt;br /&gt; * Improved HTTP, Windows Network, Shoutcast, Icecast streaming &lt;span style="font-size: 0pt;"&gt; `wZl^^O |R &lt;/span&gt;&lt;br /&gt; * Best compatibility with Windows Mobile 6   &lt;span style="font-size: 0pt;"&gt; ([[E&lt;qs-&gt;&lt;br /&gt;* The interface and User\'s Guide are available in following languages: Chinese (Simplified), Chinese (Traditional), Danish, Dutch, English, French, German, Italian, Norwegian, Russian, Spanish, Swedish.   &lt;span style="font-size: 0pt;"&gt; f`mmV| &lt;/span&gt;&lt;br /&gt; * AAC plugin will add AAC Plus and AAC (iTunes) music support to your Pocket PC.   &lt;span style="font-size: 0pt;"&gt; ^+zg; &gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; }bK (+k" &lt;/span&gt;&lt;br /&gt;Key features of PocketMusic Bundle: &lt;span style="font-size: 0pt;"&gt; w/ZhZL3}j &lt;/span&gt;&lt;br /&gt; * WMA file support. PocketMusic is the first alternative Pocket PC player to Windows Media player with WMA support. &lt;span style="font-size: 0pt;"&gt; v%{L'13 &lt;/span&gt;&lt;br /&gt; * MP3 and OGG Vorbis support. &lt;span style="font-size: 0pt;"&gt; v|H3;$AX &lt;/span&gt;&lt;br /&gt; * Alarm feature - wake up with your favorite music! &lt;span style="font-size: 0pt;"&gt; Q&amp;amp;zNdAEe &lt;/span&gt;&lt;br /&gt; * HTTP streaming audio support for MP3 and Ogg internet radio broadcast. Title streaming also supported (ShoutCast, IceCast). &lt;span style="font-size: 0pt;"&gt;  5%KD(O! &lt;/span&gt;&lt;br /&gt; * Audible audio books support. &lt;span style="font-size: 0pt;"&gt; f=8p2@z6 &lt;/span&gt;&lt;br /&gt; * Winamp 2.x skins support (More than 9500 skins are available in the Internet). &lt;span style="font-size: 0pt;"&gt; W1F,(n, &lt;/span&gt;&lt;br /&gt;* Bookmark feature. This feature is especially useful for those who use the player for listening to audiobooks, recorded radio programs, lectures, DJ sets, and other long-time audio files. &lt;span style="font-size: 0pt;"&gt; 5#�`KpY &lt;/span&gt;&lt;br /&gt; * Extra Bass feature. &lt;span style="font-size: 0pt;"&gt; l_;/@9,Ln &lt;/span&gt;&lt;br /&gt; * Landscape Mode with large buttons and controls for using in the car. &lt;span style="font-size: 0pt;"&gt; ;Q&lt;u&gt;&lt;br /&gt; * PocketMusic Today item – control music playback directly from the Today screen! &lt;span style="font-size: 0pt;"&gt; Zd2Y2V05 &lt;/span&gt;&lt;br /&gt; * Various Sound Presets for Equalizer and the capability to create your own presets. &lt;span style="font-size: 0pt;"&gt; AN&amp;amp;�c,U &lt;/span&gt;&lt;br /&gt; * Possibility to change ID3 tags of MP3 files (set track title, artist, album, etc.). ID3 and ID3 v.2 tags support.&lt;span style="font-size: 0pt;"&gt; ~)K\'bX- &lt;/span&gt;&lt;br /&gt; * Advanced Playlist Organizer (great for managing song library and playlists! &lt;span style="font-size: 0pt;"&gt;  -PSN)gT &lt;/span&gt;&lt;br /&gt; * Fast forward/rewind track by adjustable steps from 5 to 120 seconds – useful for audio books. &lt;span style="font-size: 0pt;"&gt; A!,&gt;;K &lt;/span&gt;&lt;br /&gt; * Capability to search for songs in a playlist by specific words or quickly find needed entry by number.   &lt;span style="font-size: 0pt;"&gt; 63gUR V &lt;/span&gt;&lt;br /&gt; * Powerful player control with hardware buttons (Map any action to any hardware button). &lt;span style="font-size: 0pt;"&gt; jE7z6w"n-1 &lt;/span&gt;&lt;br /&gt; * Function of mapping +-10 sec rewind action to hardware buttons. &lt;span style="font-size: 0pt;"&gt; lFM*eR5 &lt;/span&gt;&lt;br /&gt;* Optional screen AUTO-TURN OFF fea ture to automatically turn off the screen while music is playing (timer from 5 seconds to 3 minutes). Ability to automatically block hardware buttons when the screen is off. &lt;span style="font-size: 0pt;"&gt; &amp;amp;2#?^&lt;h &lt;/span&gt;&lt;br /&gt; * Ability to block hardware buttons from main menu or even assign one hardware button to lock other keys. &lt;span style="font-size: 0pt;"&gt; Ie9T=$r0Y &lt;/span&gt;&lt;br /&gt;* Feature of scanning all folders (local content) or selected folder on device to find all supported media files and add them to playlist.&lt;span style="font-size: 0pt;"&gt; %j$~{v1  &lt;/span&gt;&lt;br /&gt;download from Homepage: &lt;a href="http://www.pocketmind.com/pmfp.htm" target="_blank"&gt;http://www.pocketmind.com/pmfp.htm&lt;/a&gt;&lt;span style="font-size: 0pt;"&gt; H57j12v$2 &lt;/span&gt;&lt;br /&gt;and use кεygεn here:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:gray;"&gt;[ 此贴被tieumi在2007-10-24 21:43重新编辑 ]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=52855&amp;amp;aid=97114" target="_blank"&gt; &lt;span style="color:red;"&gt;PocketMusic.v5.0_keygen.rar&lt;/span&gt;&lt;/a&gt; (83 K) Downloads:1050&lt;br /&gt;&lt;span class="tpc_content"&gt;&lt;/span&gt;&lt;a href="http://rapidshare.com/files/64842465/PocketMusic5_full.rar" target="_blank"&gt;http://rapidshare.com/files/64842465/PocketMusic5_full.rar&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-4337925424391407555?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/4337925424391407555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=4337925424391407555' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/4337925424391407555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/4337925424391407555'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/pocketmusic-player-bundle-v5-with.html' title='PocketMusic Player Bundle v5 with keygen'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-7360066313547712338</id><published>2007-11-07T11:11:00.000-08:00</published><updated>2007-11-07T11:12:59.708-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>NEW - RJV SMS Scheduler v1.2 - Updated 11-03-2007</title><content type='html'>&lt;span class="tpc_title"&gt;NEW - RJV SMS Scheduler v1.2 - Updated 11-03-2007&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="tpc_content"&gt;  RJV SMS Scheduler v1.2&lt;span style="font-size: 0pt;"&gt; vI7khd &lt;/span&gt;&lt;br /&gt;Updated 11-03-2007&lt;span style="font-size: 0pt;"&gt; 2kjITl:}K &lt;/span&gt;&lt;br /&gt;Freeware!!!&lt;span style="font-size: 0pt;"&gt; $(p+|d &lt;/span&gt;&lt;br /&gt;For PPC (WM2003, WM5, WM6) &lt;span style="font-size: 0pt;"&gt; g0yhS0 &lt;/span&gt;&lt;br /&gt;by Rey Vegafria&lt;span style="font-size: 0pt;"&gt; OQ kPS- &lt;/span&gt;&lt;br /&gt; &lt;span style="font-size: 0pt;"&gt; kN&gt;tT8p &lt;/span&gt;&lt;br /&gt;Free SMS scheduler for your Pocket PC. Now works with Windows Mobile 6.0 (QVGA and VGA).&lt;span style="font-size: 0pt;"&gt; +8n 9F &lt;/span&gt;&lt;br /&gt;&lt;img src="http://airfagev.com/images/SMS_Scheduler_PPC_v1.2.gif" onclick="" /&gt;screen.width-461) window.open('http://airfagev.com/images/SMS_Scheduler_PPC_v1.2.gif');" border="0"&gt;&lt;span style="font-size: 0pt;"&gt; {/=^%y?N{' &lt;/span&gt;&lt;br /&gt;Features:&lt;span style="font-size: 0pt;"&gt; S&gt;aik5 &lt;/span&gt;&lt;br /&gt;• Unlimited number of scheduled SMS&lt;span style="font-size: 0pt;"&gt; s _:Ew__) &lt;/span&gt;&lt;br /&gt;• Unlimited recipients (individual contacts and groups)&lt;span style="font-size: 0pt;"&gt; Q ":_uIa &lt;/span&gt;&lt;br /&gt;• Send to Group facilty (scheduled or outright)&lt;span style="font-size: 0pt;"&gt; bC1 UotO5 &lt;/span&gt;&lt;br /&gt;• Program doesn't run in the background&lt;span style="font-size: 0pt;"&gt; /&lt;b#h56&gt;&lt;br /&gt;• Schedule resumes even when screen is OFF or after doing a soft reset&lt;span style="font-size: 0pt;"&gt; OIy%^/c &lt;/span&gt;&lt;br /&gt;• Notification for each sent message&lt;span style="font-size: 0pt;"&gt; %;Zmr &lt;/span&gt;&lt;br /&gt;• Supports landscape (QVGA) screen mode&lt;span style="font-size: 0pt;"&gt; u#r2Zj'N(% &lt;/span&gt;&lt;br /&gt;• Best of all it's FREE!!!&lt;span style="font-size: 0pt;"&gt; XiOv]wv'M &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt;  Ro|YFEGS &lt;/span&gt;&lt;br /&gt;&lt;a href="http://airfagev.com/" target="_blank"&gt;http://airfagev.com/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=53911&amp;amp;aid=99236" target="_blank"&gt; &lt;span style="color:red;"&gt;SMS_Scheduler_PPC_v1.2_11032007.CAB.zip&lt;/span&gt;&lt;/a&gt; (170 K) Downloads:160&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-7360066313547712338?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/7360066313547712338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=7360066313547712338' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7360066313547712338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7360066313547712338'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/new-rjv-sms-scheduler-v12-updated-11-03.html' title='NEW - RJV SMS Scheduler v1.2 - Updated 11-03-2007'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-3988568085308224258</id><published>2007-11-07T11:09:00.000-08:00</published><updated>2007-11-07T11:10:40.375-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>WinMobile Download Accelerator 1.8</title><content type='html'>&lt;span class="tpc_title"&gt;WinMobile Download Accelerator 1.8&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; 描述：Screenshot&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_071103/65_304322_253c3_pxdxa.WinMobileDA_ANI.gif" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_071103/65_304322_253c3_pxdxa.WinMobileDA_ANI.gif');" border="0"&gt; &lt;br /&gt;&lt;span class="tpc_content"&gt;Description：&lt;span style="font-size: 0pt;"&gt;  C6i7W+ ] &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; O ;gG]O@ &lt;/span&gt;&lt;br /&gt;WinMobile Download Accelerator (WMDA) is an optimized Internet file download manager for Windows Mobile 2003/SE/WM5 (Pocket PC). The multithreaded technology implemented in this application will deliver to you a total new download experience and bringing you to the next level of Internet downloading. WMDA improves the speed with which you can download files from HTTP/HTTPS/FTP servers; It provides simultaneous and smart download and it is integrated fully with Pocket Internet Explorer. &lt;span style="font-size: 0pt;"&gt; .)XXsDz{=&amp;amp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; DT}U`w� &lt;/span&gt;&lt;br /&gt;Seamless Integration with Pocket Internet Explorer&lt;span style="font-size: 0pt;"&gt; n&gt;g`yw &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; Mko_?c &lt;/span&gt;&lt;br /&gt;WMDA is fully integrated into the Pocket Internet Explorer (PIE). It intercepts PIE download and provides additional features such as multiple files download, smart download that supports suspend-resume and restart an interrupted download from the point at which it was interrupted. WMDA will let you take advantage of a more reliable, faster, and optimized download. &lt;span style="font-size: 0pt;"&gt; {nK&gt;TvGM@ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; lXWrMX &lt;/span&gt;&lt;br /&gt;Accelerated Downloads &lt;span style="font-size: 0pt;"&gt;  n$$~z=s &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; $d@`d~Ef &lt;/span&gt;&lt;br /&gt;WMDA splits a file into segments and download them simultaneously. This process noticeably increases the download speed. It supports up to eight segments per file.&lt;span style="font-size: 0pt;"&gt; k -paH[ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; VX&gt;,6{b &lt;/span&gt;&lt;br /&gt;Simultaneous Downloads&lt;span style="font-size: 0pt;"&gt; RB" jp{Qm &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; Y:e$$HT[ &lt;/span&gt;&lt;br /&gt;WMDA is capable of simultaneously downloading up to ten different files. However, the number of simultaneous files defined in the transfer manager affects the download speed. The processor power of your mobile device and your connection bandwidth also define how many simultaneous download that could be implemented.&lt;span style="font-size: 0pt;"&gt; yQ  dP+V(J &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; S=dTQl &lt;/span&gt;&lt;br /&gt;Here are some key features of "WinMobile Download Accelerator":&lt;span style="font-size: 0pt;"&gt; GALHY&lt; ze &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; vDda9dfF &lt;/span&gt;&lt;br /&gt;· Suspend, resume and recover interrupted download&lt;span style="font-size: 0pt;"&gt; eO5@ }Jc &lt;/span&gt;&lt;br /&gt;· Tight integration with Pocket Internet Explorer.&lt;span style="font-size: 0pt;"&gt; 'qtBS:5 &lt;/span&gt;&lt;br /&gt;· Intercept Pocket Internet Explorer download manager. &lt;span style="font-size: 0pt;"&gt; }J A?f,?gS &lt;/span&gt;&lt;br /&gt;· Accelerated Downloads by splitting file into segments and download them simultaneously. &lt;span style="font-size: 0pt;"&gt; 2qn440nX &lt;/span&gt;&lt;br /&gt;· Support for multiple indirection.&lt;span style="font-size: 0pt;"&gt; !"Dvv7tpEg &lt;/span&gt;&lt;br /&gt;· Support keep-alive feature to avoid device suspension while downloading.&lt;span style="font-size: 0pt;"&gt; UHXQY#(t &lt;/span&gt;&lt;br /&gt;· Manage downloaded file using categories.&lt;span style="font-size: 0pt;"&gt; (8mF+qR &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; npG^1 &lt;/span&gt;&lt;br /&gt;Requirements:&lt;span style="font-size: 0pt;"&gt; p04r 8%XM &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; v%F?;^s~ &lt;/span&gt;&lt;br /&gt;· Windows Mobile 2003/SE/WM5/WM6&lt;span style="font-size: 0pt;"&gt; 4[o\mK+#J  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; C6Ty&amp;amp;(I &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; 0MJ?BK~? &lt;/span&gt;&lt;br /&gt;Link:-&lt;span style="font-size: 0pt;"&gt;  [N L4" &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; |rtN|1 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; xW _LmML% &lt;/span&gt;&lt;br /&gt;&lt;a href="http://handheld.softpedia.com/get/Internet-Utilities/Browsers/WinMobile-Download-Accelerator-4350.shtml" target="_blank"&gt;http://handheld.softpedia.com/get/Internet-Utilities/Browsers/WinMobile-Download-Accelerator-4350.shtml&lt;/a&gt;&lt;span style="font-size: 0pt;"&gt; }U &lt;-YUIV[ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; h"a8R%'c &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; R\8y|9.IP &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; 81x.]VLN &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; aM=CaGP &lt;/span&gt;&lt;br /&gt;enjoy:)&lt;span style="font-size: 0pt;"&gt; W$.`A^g)  &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-3988568085308224258?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/3988568085308224258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=3988568085308224258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/3988568085308224258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/3988568085308224258'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/winmobile-download-accelerator-18.html' title='WinMobile Download Accelerator 1.8'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-574185415144097962</id><published>2007-11-07T10:48:00.000-08:00</published><updated>2007-11-07T10:51:18.408-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>WithMp3 Music Player</title><content type='html'>&lt;img src="http://www.pxdxa.com/image/post/emotion/4.gif" align="left" border="0" /&gt; &lt;span class="tpc_title"&gt;WithMp3 Music Player (Update 13-09-07)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="tpc_content"&gt;Picture :  &lt;a href="http://www.geocities.com/piray2000/WithMp3.jpg" target="_blank"&gt;http://www.geocities.com/piray2000/WithMp3.jpg&lt;/a&gt;&lt;span style="font-size: 0pt;"&gt; {40NTUT{ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; foZ@9[ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; Nx?.T\QJ1 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; &gt;9#5`#/ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; @$d_h(jbo &lt;/span&gt;&lt;br /&gt;&lt;img src="http://www.pxdxa.com/image/post/smile/crazy.gif" /&gt; .......................... &lt;img src="http://www.pxdxa.com/image/post/smile/crazy.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:gray;"&gt;[ 此贴被monstercyber在2007-09-13 15:51重新编辑 ]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; 描述：withMp3&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=47053&amp;amp;aid=90669" target="_blank"&gt; &lt;span style="color:red;"&gt;withMP3.zip&lt;/span&gt;&lt;/a&gt; (251 K) Downloads:275&lt;br /&gt;&lt;br /&gt;&lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/txt.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=709507&amp;amp;tid=47053&amp;amp;aid=87451" target="_blank"&gt; &lt;span style="color:red;"&gt;withMP3 v1.52SP2 Patch 2 SERIAL.txt&lt;/span&gt;&lt;/a&gt; (1 K) Downloads:459&lt;br /&gt;&lt;br /&gt;&lt;span class="tpc_content"&gt;&lt;/span&gt;&lt;a href="http://classic.pocketgear.com/software_detail.asp?id=6989&amp;amp;associateid=17" target="_blank"&gt;http://classic.pocketgear.com/software_detail.asp?id=6989&amp;amp;associateid=17&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-574185415144097962?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/574185415144097962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=574185415144097962' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/574185415144097962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/574185415144097962'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/withmp3-music-player.html' title='WithMp3 Music Player'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-7712767361258938670</id><published>2007-11-07T10:47:00.001-08:00</published><updated>2007-11-07T10:48:16.329-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='enhancement'/><title type='text'>Magic Button Version 2.1 for WM6 updated!</title><content type='html'>&lt;span class="tpc_title"&gt;Magic Button Version 2.1 for WM6 updated!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_071015/65_144453_01e50_pxdxa.mbutton.gif" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_071015/65_144453_01e50_pxdxa.mbutton.gif');" border="0"&gt;&lt;br /&gt;&lt;span class="tpc_content"&gt;  Magic Button - Pocket PC Task Manager&lt;span style="font-size:0;"&gt; N8 G@ &lt;/span&gt;&lt;br /&gt;There are plenty of Task Managers available for Pocket PC. However if you are still searching for the right one, try this software.&lt;span style="font-size:0;"&gt; 8(o[e"J^Y/ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; k KH5�e &lt;/span&gt;&lt;br /&gt;Why Magic Button worth considering to download and replace your existing one:&lt;span style="font-size:0;"&gt; {9@NLH3=)b &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; tT{:L d &lt;/span&gt;&lt;br /&gt;It is free. &lt;span style="font-size:0;"&gt; ad!&gt;w3c &lt;/span&gt;&lt;br /&gt;Does not take up any of your screen real estate, yet easy to access. &lt;span style="font-size:0;"&gt; RLX&gt;f{0} &lt;/span&gt;&lt;br /&gt;Located on title bar but does not cover any standard info, i.e. Sound icon, notification icon. &lt;span style="font-size:0;"&gt; #^'xaG#3% &lt;/span&gt;&lt;br /&gt;Very small foot print (memory usage). Only 80 KB executable file does it all (help file is 8 KB extra). &lt;span style="font-size:0;"&gt; R$Q`f.L: &lt;/span&gt;&lt;br /&gt;Makes close button really close applications. Just in case you haven't noticed, the default one only minimizes them. &lt;span style="font-size:0;"&gt; j@*O?K}OyX &lt;/span&gt;&lt;br /&gt;Compatible with latest and greatest Windows Mobile 6.0 (new in version 2.1). &lt;span style="font-size:0;"&gt; Az|uy0`I &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; k'etqf &lt;/span&gt;&lt;br /&gt;Magic Button looks clean and blends surprisingly well with the Pocket PC theme. For those who do not want too fancy or too complicated Task Manager, this is for you.&lt;span style="font-size:0;"&gt; &gt;W\GB["[ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; MAXl?]j &lt;/span&gt;&lt;br /&gt;If you have installed the software, here is how to master the tool:&lt;span style="font-size:0;"&gt; ",IGcw)&lt;&amp;amp;D &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; 4HO B'" &lt;/span&gt;&lt;br /&gt;To unload (shutdown) Magic Button: Tap and hold on Close button, then tap and hold on Home icon. &lt;span style="font-size:0;"&gt;  5`0Y^# &lt;/span&gt;&lt;br /&gt;To show/hide the taskbar: tap and hold the OK/Minimize/Close button. &lt;span style="font-size:0;"&gt; y |s.aa &lt;/span&gt;&lt;br /&gt;To show the application menu that has Settings and Exit menu items: tap and hold Today (Home) icon when it is visible. &lt;span style="font-size:0;"&gt; l:&amp;amp;Kn\_R &lt;/span&gt;&lt;br /&gt;Map a PocketPC application button to Magic Button software then you can show/hide the bar easier by pressing the button. &lt;span style="font-size:0;"&gt; E\'Lp'bi &lt;/span&gt;&lt;br /&gt;To close an individual window: tap and hold its window icon on the task bar. &lt;span style="font-size:0;"&gt; ybo;?=5  &lt;/span&gt;&lt;br /&gt;To change Close Button behaviour (Close instead of Minimize) for an application: tap and hold on the app icon and select "Keep Alive" option. &lt;span style="font-size:0;"&gt; lqP LSf &lt;/span&gt;&lt;br /&gt;Magic Button runs on Pocket PC 2002, 2003, 2003SE, Windows Mobile 5.0 and 6.0. VGA screen is supported.&lt;span style="font-size:0;"&gt; qMJlp6V) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; 9516-t$:, &lt;/span&gt;&lt;br /&gt;* Dictionary Lookup feature requires external TranCreative WordBook Dictionary to work. Turn Off feature will include Log Off and Restart if Nice Start installed.&lt;span style="font-size:0;"&gt; 1l55K\U�V &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; N6~vU#u?* &lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.trancreative.com/mb.aspx" target="_blank"&gt;Magic Button Website&lt;/a&gt;&lt;span style="font-size:0;"&gt; Yf9F!3: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; 5eZbO'R &lt;/span&gt;&lt;br /&gt;Magic Button - Product Update History&lt;span style="font-size:0;"&gt; )&lt;,y &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; #MNHQ;} &lt;/span&gt;&lt;br /&gt;9/17/2007  Version 2.1 Build 70912 &lt;span style="font-size:0;"&gt; fEY&gt;&lt;v3&gt;&lt;br /&gt;Updated to blend the color with Windows Mobile 6.0 gradient color.&lt;span style="font-size:0;"&gt; P&lt;g2%a&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; R3(&amp;amp;C p &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; JcoQDQzL &lt;/span&gt;&lt;br /&gt;10/23/2005  Version 2.0 Build 51023 &lt;span style="font-size:0;"&gt; (^&gt;hd}u &lt;/span&gt;&lt;br /&gt;Updated to blend the color with Windows Mobile 5.0 gradient color.&lt;span style="font-size:0;"&gt; Q =j�wdW &lt;/span&gt;&lt;br /&gt;Added 2 menu items to soft-reset and open Running Programs list.&lt;span style="font-size:0;"&gt; w$~$J.~&amp;amp;w &lt;/span&gt;&lt;br /&gt;Fixed some very minor bugs.&lt;span style="font-size:0;"&gt; 'sgga$i &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; CqV{5]z^ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; DTK2&amp;amp;m}op &lt;/span&gt;&lt;br /&gt;02/13/2005  Version 1.8 Build 50213 &lt;span style="font-size:0;"&gt; R";#s)Y@ &lt;/span&gt;&lt;br /&gt;Bug Fix: This release fixed the crash problem when an item in the extended task popup menu is selected.&lt;span style="font-size:0;"&gt; )R}A|F  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; PzUbvE(U &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; ,OoW 6lA &lt;/span&gt;&lt;br /&gt;02/06/2005  Version 1.8 Build 50206 &lt;span style="font-size:0;"&gt;  Ni"bYoZ &lt;/span&gt;&lt;br /&gt;Added: New option in popup menu to hide inactive task.&lt;span style="font-size:0;"&gt; )-p ;}h &lt;/span&gt;&lt;br /&gt;Changed: Pocket PC Phone user can see more notification icons.&lt;span style="font-size:0;"&gt; !7fKOUZl &lt;/span&gt;&lt;br /&gt;And some very minor improvements.&lt;span style="font-size:0;"&gt; UA"OZRs~ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; o\4M{69x\ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt;  I7\Aq}ng &lt;/span&gt;&lt;br /&gt;10/09/2004  Version 1.7 Build 41009 &lt;span style="font-size:0;"&gt; TvB ~t!Psk &lt;/span&gt;&lt;br /&gt;Updated: Hi-res icons in VGA screen.&lt;span style="font-size:0;"&gt; �1E?"pqW &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; Z\j"t.F&gt;{ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; $:yK#!K".. &lt;/span&gt;&lt;br /&gt;8/20/2004  Version 1.6 Build 40820 &lt;span style="font-size:0;"&gt; Ulw��"*~ &lt;/span&gt;&lt;br /&gt;Added: Supports for Windows Mobile 2003 SE.&lt;span style="font-size:0;"&gt; aT_&gt;7tw' &lt;/span&gt;&lt;br /&gt;Fixed: Recognizes Phone application. &lt;span style="font-size:0;"&gt; #�z+pj@R&amp;amp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; $Uk..OD &lt;/span&gt;&lt;br /&gt;11/03/2003  Version 1.5 Build 31103 &lt;span style="font-size:0;"&gt; "7ov/F(N* &lt;/span&gt;&lt;br /&gt;Added option to reveal notification icon (icon of WiFi connection or battery low message...) &lt;span style="font-size:0;"&gt; Z&gt;:F}|$ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; ?Q ?64qB &lt;/span&gt;&lt;br /&gt;11/02/2003  Version 1.5 Build 31102 &lt;span style="font-size:0;"&gt; w!.ty1zu &lt;/span&gt;&lt;br /&gt;"Keep Alive" option on individual app to switch to Minimize behaviour.&lt;span style="font-size:0;"&gt; 8&amp;amp;&lt;&lt;&gt;&lt;br /&gt;New menu for app icons that are not visible (no more icon scrolling).&lt;span style="font-size:0;"&gt; -sM #`S7Y &lt;/span&gt;&lt;br /&gt;"Close All But Active" menu item.&lt;span style="font-size:0;"&gt; ZbWV�#Zi &lt;/span&gt;&lt;br /&gt;Some other very minor improvements. &lt;span style="font-size:0;"&gt; /uX NA) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; )?)2T{du &lt;/span&gt;&lt;br /&gt;8/28/2003  Version 1.1 Build 30828 &lt;span style="font-size:0;"&gt; &gt;&lt;'"3/9@ &lt;/span&gt;&lt;br /&gt;Fix problem when closing Pocket Word and group multiple icons of the same application to one. &lt;span style="font-size:0;"&gt; Bn2Ln&gt;-c &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; \R$RTAi}! &lt;/span&gt;&lt;br /&gt;7/26/2003  Version 1.1 Build 30726 &lt;span style="font-size:0;"&gt; "dd%l! &lt;/span&gt;&lt;br /&gt;Auto-adjusted home icon to the size of clock (so it will not overlap the sound icon). &lt;span style="font-size:0;"&gt; $"[oPv)C &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; vq]J\&gt;E,0 &lt;/span&gt;&lt;br /&gt;7/8/2003  Version 1.1 Build 30708 &lt;span style="font-size:0;"&gt; m4$-i78t^ &lt;/span&gt;&lt;br /&gt;Remove menu icon. Now you need to tap/hold on Home/Today icon to bring up the menu. &lt;span style="font-size:0;"&gt; H?c|$t~2y &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; 2o2{ nO  &lt;/span&gt;&lt;br /&gt;5/8/2003  Version 1.1 Build 30508 &lt;span style="font-size:0;"&gt; wHCm2#5 &lt;/span&gt;&lt;br /&gt;Added option to show the clock &lt;span style="font-size:0;"&gt; 0T &gt;s}XO4 &lt;/span&gt;&lt;br /&gt;Changed Today (Home), Menu icon to match with other title button style &lt;span style="font-size:0;"&gt; b8xmmsj# &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; =t);W &lt;/span&gt;&lt;br /&gt;3/24/2003  Version 1.0 Build 30324 &lt;span style="font-size:0;"&gt; q%@~m`g@ &lt;/span&gt;&lt;br /&gt;Fixed: battery status is not updated correctly after started &lt;span style="font-size:0;"&gt; 5l@S+;dF &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt; kIk&amp;amp; K &lt;/span&gt;&lt;br /&gt;1/28/2003  Version 1.0 Build 30128 &lt;span style="font-size:0;"&gt; KWE;1s &lt;/span&gt;&lt;br /&gt;Added sticky menu item (when checked, the task bar will stick until a tap n hold)&lt;/g2%a&gt;&lt;/span&gt;&lt;br /&gt;&lt;!--  &lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;   &lt;br /&gt;&lt;br /&gt;&lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=52064&amp;amp;aid=95790" target="_blank"&gt; &lt;span style="color:red;"&gt;mbutton.PPC_ARM.zip&lt;/span&gt;&lt;/a&gt; (39 K) Downloads:372&lt;/v3&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-7712767361258938670?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/7712767361258938670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=7712767361258938670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7712767361258938670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/7712767361258938670'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/magic-button-version-21-for-wm6-updated.html' title='Magic Button Version 2.1 for WM6 updated!'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-6799816399681909897</id><published>2007-11-07T10:42:00.000-08:00</published><updated>2007-11-07T10:47:01.265-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><title type='text'>Call Block for Pocket PC 1.16a</title><content type='html'>&lt;span class="tpc_title"&gt;Call Block for Pocket PC 1.16a&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; 描述：pic&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_070829/65_166038_64234_pxdxa.1.gif" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_070829/65_166038_64234_pxdxa.1.gif');" border="0"&gt; &lt;br /&gt;&lt;span class="tpc_content"&gt;Overview: Call Block is a simple yet effective tool to block unsolicited incoming calls. With Call Block, all your unwanted calls will be taken care of!&lt;span style="font-size: 0pt;"&gt; ,R$ a &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; }qnrR{.Q &lt;/span&gt;&lt;br /&gt;&lt;b&gt;Requirements: PDA Phone with Windows Mobile 5 or 6.&lt;/b&gt;&lt;span style="font-size: 0pt;"&gt; =$/"mTO|- &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; ltI{^|@S~: &lt;/span&gt;&lt;br /&gt;Features&lt;span style="font-size: 0pt;"&gt; Z=&gt;a* &lt;/span&gt;&lt;br /&gt;- Call Block Mode - Choose modes like 'Enable Call Block', 'Disable Call Block' or 'Block All'.&lt;span style="font-size: 0pt;"&gt; MfojyK &lt;/span&gt;&lt;br /&gt;- Auto Mode Switching (AMS) - Preset to automatically switch between Call Block modes at scheduled time.&lt;span style="font-size: 0pt;"&gt; #G-{%nn9 &lt;/span&gt;&lt;br /&gt;- Block List - User friendly block list maintenance. Lookup and add from Contacts database into block list.&lt;span style="font-size: 0pt;"&gt; v`&gt;:mS ; &lt;/span&gt;&lt;br /&gt;- Allow List - Add VIP numbers so that they can get in touch with you anytime regardless of Call Block Mode.&lt;span style="font-size: 0pt;"&gt; @a\*'~i&lt;+ &lt;/span&gt;&lt;br /&gt;- Group Blocking - Ability to block group of callers based on Contacts category.&lt;span style="font-size: 0pt;"&gt; /NW&gt;vwcG&amp;amp; &lt;/span&gt;&lt;br /&gt;- Block Unknown Callers - Block incoming numbers not in your Contacts list.&lt;span style="font-size: 0pt;"&gt; 6$uj&amp;amp;zN6z &lt;/span&gt;&lt;br /&gt;- Block Private Number - Option to block incoming calls with no identity.&lt;span style="font-size: 0pt;"&gt; @RA# h.) &lt;/span&gt;&lt;br /&gt;- Wildcard Number Blocking - block incoming calls beginning or ending with pre-defined numbers.&lt;span style="font-size: 0pt;"&gt; Md!I}Po6v &lt;/span&gt;&lt;br /&gt;- Block Notification - Get instant alert on blocked calls.&lt;span style="font-size: 0pt;"&gt; jN|16r|3 &lt;/span&gt;&lt;br /&gt;- Call Logging - View blocked calls detail so you know who and when the call was blocked.&lt;span style="font-size: 0pt;"&gt; jKg,H  . &lt;/span&gt;&lt;br /&gt;- Auto Start - Option to automatically start up Call Block after phone reset.&lt;span style="font-size: 0pt;"&gt; uBkxh&lt;Y$ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; g29FHz &lt;/span&gt;&lt;br /&gt;Update Description:&lt;span style="font-size: 0pt;"&gt; G9_3;a z &lt;/span&gt;&lt;br /&gt;1.16a - Windows Mobile 6 compatible.&lt;span style="font-size: 0pt;"&gt; H3|l}p{ &lt;/span&gt;&lt;br /&gt;1.16 - Better compatibility for WM5 phones and added Hide Incoming Call Screen feature.&lt;span style="font-size: 0pt;"&gt; iwa46H9 &lt;/span&gt;&lt;br /&gt;1.14a - Added Call Logging and Delay Ring option.&lt;span style="font-size: 0pt;"&gt; imYk4NZN &lt;/span&gt;&lt;br /&gt;1.13c - Fix Pickup+hangup blocking on call waiting.&lt;span style="font-size: 0pt;"&gt; c-VF3\W &lt;/span&gt;&lt;br /&gt;1.13b - Added Group Blocking and Block Callers Not in Contacts feature&lt;span style="font-size: 0pt;"&gt; &lt;f,B&gt;l" &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; _Iu!0E0 &lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.wishsolutions.com/core.html" target="_blank"&gt;http://www.wishsolutions.com/core.html&lt;/a&gt;&lt;span style="font-size: 0pt;"&gt; l4Q4C#^ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; ze0�&gt;LY(S &lt;/span&gt;&lt;br /&gt;Some extra info: &lt;a href="http://www.pxdxa.com/read.php?tid=35565&amp;amp;keyword=Call%20Block" target="_blank"&gt;http://www.pxdxa.com/read.php?tid=35565&amp;amp;keyword=Call%20Block&lt;/a&gt;&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; 描述：file&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=47613&amp;amp;aid=88263" target="_blank"&gt; &lt;span style="color:red;"&gt;Call.Block.v1.16a.Inc.Keygen.rar&lt;/span&gt;&lt;/a&gt; (487 K) Downloads:904&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-6799816399681909897?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/6799816399681909897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=6799816399681909897' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6799816399681909897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/6799816399681909897'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/call-block-for-pocket-pc-116a.html' title='Call Block for Pocket PC 1.16a'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-1639050959613799215</id><published>2007-11-07T10:40:00.000-08:00</published><updated>2007-11-07T10:41:12.214-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='enhancement'/><title type='text'>Kaiser HTC Home v.2.0.814.722</title><content type='html'>&lt;strong&gt;link to post (http://forum.xda-developers.com/showthread.php?t=327646)&lt;br /&gt;[NEW] Kaiser HTC Home v.2.0.814.722&lt;/strong&gt;        &lt;hr style="color: rgb(255, 255, 204);" size="1"&gt;    &lt;!-- / icon and title --&gt;         &lt;!-- message --&gt;   &lt;div id="post_message_1487018"&gt;Kaiser HTCHome v2.0.814.722&lt;br /&gt;&lt;br /&gt;What is NEW:&lt;br /&gt;- Better Quickdial Status Icons&lt;br /&gt;- Tab Setting enabled through Settings/Today/HTCHome(you dont need to edit registry anymore)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What I did:&lt;br /&gt;- Patch HTCHome to fix the Brightness Shortcut&lt;br /&gt;- Patch HTCHome to move the graphics to \HTCHome instead of \Windows&lt;br /&gt;&lt;br /&gt;Installation:&lt;br /&gt;- Uninstall previous version&lt;br /&gt;- Copy the Cab to your device and run. Then Softreset.&lt;br /&gt;&lt;br /&gt;Important Note:&lt;br /&gt;- If not working properly, Try to install sdkcerts.cab.&lt;br /&gt;- If still not working properly, Try to Install cert_SPCS.cab&lt;br /&gt;- If you still cannot get it to work, READ first HTCHome v1.5 Thread,&lt;br /&gt;- READ HTCHome v2.0.720719. Use "Search" To find the thread&lt;br /&gt;- This is BW version. If you want a colored version, make one yourself or wait I am sure someone will make one shortly.&lt;br /&gt;- This is 0409 English version.&lt;br /&gt;&lt;br /&gt;I am sorry that I cannot provide any support for this anymore. I create this for my own use. Tested on my Dopod 838Pro running Dopod WM6 Official with the two certificates installed on my PPC.&lt;br /&gt;&lt;br /&gt;Update 1 October 2007&lt;br /&gt;&lt;br /&gt;1. Install on HTCHome WITHOUT Brightness shortcut fix&lt;br /&gt;&lt;br /&gt;&lt;a href="http://rapidshare.com/files/59418302/Kaiser.HTC.Home.v2.0.814.722.HTCHome.Dir.Without.Brightness.Fix.Updated.01OCT2007-schen.cab.zip" target="_blank"&gt;http://rapidshare.com/files/59418302...-schen.cab.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Install on HTCHome WITH Brightness shortcut fix&lt;br /&gt;&lt;br /&gt;&lt;a href="http://rapidshare.com/files/59418145/Kaiser.HTC.Home.v2.0.814.722.HTCHome.Dir.With.Brightness.Fix.Updated.01OCT2007-schen.cab.zip" target="_blank"&gt;http://rapidshare.com/files/59418145...-schen.cab.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3. Install on Windows without any fix&lt;br /&gt;&lt;br /&gt;&lt;a href="http://rapidshare.com/files/59029433/Kaiser.HTC.Home.v2.0.814.722.Original.Without.Fix-schen.cab.zip" target="_blank"&gt;http://rapidshare.com/files/59029433...-schen.cab.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For OEM get it from here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forum.xda-developers.com/showpost.php?p=1550330&amp;amp;postcount=95" target="_blank"&gt;http://forum.xda-developers.com/show...0&amp;amp;postcount=95&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy&lt;br /&gt;schen 2007&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-1639050959613799215?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/1639050959613799215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=1639050959613799215' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/1639050959613799215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/1639050959613799215'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/kaiser-htc-home-v20814722.html' title='Kaiser HTC Home v.2.0.814.722'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-392296010994375401</id><published>2007-11-07T10:23:00.000-08:00</published><updated>2007-11-07T10:24:32.499-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='enhancement'/><title type='text'>MyLife Organized v1.9.0</title><content type='html'>&lt;span class="tpc_title"&gt;MyLife Organized v1.9.0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_070906/66_55294_857d8_pxdxa.myLife-ssh030-ppc.gif" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_070906/66_55294_857d8_pxdxa.myLife-ssh030-ppc.gif');" border="0"&gt; &lt;br /&gt;&lt;span class="tpc_content"&gt;Anyone have the patched for this version?&lt;span style="font-size: 0pt;"&gt; 0cFZJ5) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; BrqUR3@w~ &lt;/span&gt;&lt;br /&gt;2007-07-28 version 1.9.0&lt;span style="font-size: 0pt;"&gt; bD DaY &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; ;}H%`lp4T &lt;/span&gt;&lt;br /&gt;feature: support of new MLO Windows Mobile Sync Manager which replaced ActiveSync provider to sync with MLO-PocketPC edition&lt;span style="font-size: 0pt;"&gt; hGLyeU2m &lt;/span&gt;&lt;br /&gt;IMPORTANT: if you are using MLO ActiveSync provider to sync with MLO-PPC edition you will need to recreate your sync pairs after upgrade to version 1.9.0 from previous versions. &lt;span style="font-size: 0pt;"&gt; maVC!"mGb &lt;/span&gt;&lt;br /&gt;feature: record based conflict resolution during sync with MLO-PocketPC edition &lt;span style="font-size: 0pt;"&gt; Xo!8PYhl &lt;/span&gt;&lt;br /&gt;feature: synchronization with mlo data files located on local computer, removable drive, LAN or FTP. &lt;span style="font-size: 0pt;"&gt; |xp,Z &lt;/span&gt;&lt;br /&gt;feature: COLLABORATION! MLO enables small and medium-sized teams to efficiently collaborate on projects and tasks by providing the synchronization feature &lt;span style="font-size: 0pt;"&gt; 6"18t3"* &lt;/span&gt;&lt;br /&gt;feature: Hotkeys editor in options. Assign your own hotkeys to many MLO commands. &lt;span style="font-size: 0pt;"&gt; AX6ir; &lt;/span&gt;&lt;br /&gt;feature: autocomplete while assigning places to a task. Just start typing the place name and you will see the suggestions or just type *any* part of place name and press Alt-K &lt;span style="font-size: 0pt;"&gt; ^ SrQPP`P &lt;/span&gt;&lt;br /&gt;feature: Hide completed tasks older than. There are three states of hide completed tasks option now: 1) Show all completed tasks 2) Hide all completed tasks 3) Hide completed tasks older than... &lt;span style="font-size: 0pt;"&gt; 'yd`o~kZ~ &lt;/span&gt;&lt;br /&gt;feature: after pressing Alt+Enter in task outline the parsing result is shown in status bar &lt;span style="font-size: 0pt;"&gt; ) HUb%c(&amp;amp; &lt;/span&gt;&lt;br /&gt;feature: The abbreviation "rmd" can be used instead of "remind" in parsing &lt;span style="font-size: 0pt;"&gt; ap2us', &lt;/span&gt;&lt;br /&gt;feature: check for updates &lt;span style="font-size: 0pt;"&gt;  RZ&amp;amp;Ub &lt;/span&gt;&lt;br /&gt;change: menu "File-&gt;Quick Outlook sync" moved to "Tools-&gt;Synchronize Outlook" &lt;span style="font-size: 0pt;"&gt; $s&gt;nE[4" &lt;/span&gt;&lt;br /&gt;change: default hotkey F9 is reassigned from "Synchronize Outlook" to "Synchronize" command. Use Hotkey editor to reassign it back if needed. &lt;span style="font-size: 0pt;"&gt; gGE=Tu5y� &lt;/span&gt;&lt;br /&gt;change: the hotkeys for command "Show level 1-4" (Ctrl+Alt+1..4) have been removed to avoid conflicts with Alt Gr combinations. You can still use hotkey editor to assign shortcuts to these and other actions. &lt;span style="font-size: 0pt;"&gt; m+U.SQ &lt;/span&gt;&lt;br /&gt;bugfix: links to files did not work sometimes &lt;span style="font-size: 0pt;"&gt; GL2&lt;6vvv@&gt;&lt;br /&gt;bugfix: if you cut a task and try to past it to itself or to its child task the task might disappear &lt;span style="font-size: 0pt;"&gt; N;S`XL &lt;/span&gt;&lt;br /&gt;bugfix: MLO crashes if pressing Esc while Search tool tip is shown &lt;span style="font-size: 0pt;"&gt; )GA?1{l2 &lt;/span&gt;&lt;br /&gt;bugfix: if a task contains char "%" in caption or notes there might be an error message during sync &lt;span style="font-size: 0pt;"&gt; fx gT{. &lt;/span&gt;&lt;br /&gt;bugfix: if Windows taskbar is docked to left hand edge or top of the screen the saved MLO window position was wrong on startup &lt;span style="font-size: 0pt;"&gt;  5\NfLsn+ &lt;/span&gt;&lt;br /&gt;bugfix: number of minor bug fixes&lt;span style="font-size: 0pt;"&gt; yt;b+X&lt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; Y^FVIX+n &lt;/span&gt;&lt;br /&gt;Thank you!&lt;span style="font-size: 0pt;"&gt; g?kU0ktjZ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt;  02e,Uw)D &lt;/span&gt;&lt;br /&gt;&lt;u&gt;Download Link :&lt;/u&gt;&lt;span style="font-size: 0pt;"&gt; }zzq"P&gt;Q &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; Ywi:r( &lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.mylifeorganized.net/downloads/index.htm" target="_blank"&gt;http://www.mylifeorganized.net/downloads/index.htm&lt;/a&gt;&lt;span style="font-size: 0pt;"&gt; d5&gt;u#ELwR &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; '!+YTeMl &lt;/span&gt;&lt;br /&gt;&lt;span style="color:crimson;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Patch on Floor 3&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:gray;"&gt;[ 此贴被moonmoon在2007-09-06 22:03重新编辑 ]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; 描述：PocketPC 2003/2003SE/WM2005&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=47444&amp;amp;aid=89637" target="_blank"&gt; &lt;span style="color:red;"&gt;MLO.PPC2003SE_Arm.rar&lt;/span&gt;&lt;/a&gt; (503 K) Downloads:231&lt;br /&gt;&lt;br /&gt;&lt;span class="tpc_content"&gt;Try this.&lt;span style="font-size: 0pt;"&gt; YdP=`X' &lt;/span&gt;&lt;br /&gt;DRT&lt;span style="font-size: 0pt;"&gt; +wU@^ &lt;/span&gt;&lt;br /&gt;(Cㄒαcкed file only !!)&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=716756&amp;amp;tid=47444&amp;amp;aid=89607" target="_blank"&gt; &lt;span style="color:red;"&gt;MLO v1.9.0 Cracked by DRT.rar&lt;/span&gt;&lt;/a&gt; (299 K) Downloads:327&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-392296010994375401?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/392296010994375401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=392296010994375401' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/392296010994375401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/392296010994375401'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/mylife-organized-v190.html' title='MyLife Organized v1.9.0'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-8218056891887188794</id><published>2007-11-07T10:22:00.001-08:00</published><updated>2007-11-07T10:22:47.400-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='enhancement'/><title type='text'>GREAT - FTouchFlo 1.4.1 HOTFIX WORKS - 25.10.07 - WM5 &amp; 6</title><content type='html'>&lt;span class="tpc_title"&gt;GREAT - FTouchFlo 1.4.1 HOTFIX WORKS - 25.10.07 - WM5 &amp;amp; 6&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; 描述：Image 1&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_071025/65_29240_b705c_pxdxa.FTouchFlo_Screen_DownUp_small.jpg" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_071025/65_29240_b705c_pxdxa.FTouchFlo_Screen_DownUp_small.jpg');" border="0"&gt; &lt;br /&gt;&lt;br /&gt; 描述：Image 2&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_071025/65_29240_f5438_pxdxa.FTouchFlo_Screen_small.jpg" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_071025/65_29240_f5438_pxdxa.FTouchFlo_Screen_small.jpg');" border="0"&gt; &lt;br /&gt;&lt;span class="tpc_content"&gt;Hi, all.&lt;span style="font-size: 0pt;"&gt; @zOmgfdC? &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; \`u@7J &lt;/span&gt;&lt;br /&gt;&lt;b&gt;I pleased to announce that has been released another version of one of the best freewares of the year - FTouchFlo. &lt;/b&gt; &lt;span style="font-size: 0pt;"&gt; 6vb8%rf  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; PFgjXdG�d &lt;/span&gt;&lt;br /&gt;The rules are the same as explained in this other pxdxa link - &lt;a href="http://www.pxdxa.com/read.php?tid=52498&amp;amp;page=e&amp;amp;#a." target="_blank"&gt;http://www.pxdxa.com/read.php?tid=52498&amp;amp;page=e&amp;amp;#a.&lt;/a&gt;&lt;span style="font-size: 0pt;"&gt; &lt;v]3i%E &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; Jq7K;=3 &lt;/span&gt;&lt;br /&gt;You can find other very nice things about it in the read me file, which I advise you to read, because it will expplain most of your doughts.&lt;span style="font-size: 0pt;"&gt; u-a&gt;ZY6'z &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; strUv^SJ &lt;/span&gt;&lt;br /&gt;Attached you can find - Cab file, read me file, 2 pictures.&lt;span style="font-size: 0pt;"&gt; :koOcpnU &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; i@f&gt;Gc~ &lt;/span&gt;&lt;br /&gt;Give it a try, you won't regret it. But for security, please backup first.&lt;span style="font-size: 0pt;"&gt; 8| Ic; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; i%"j/RdSF &lt;/span&gt;&lt;br /&gt;If you have questions maybe I can help. &lt;span style="font-size: 0pt;"&gt; gdPc,,Iq &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; _&lt;- xXc &lt;/span&gt;&lt;br /&gt;&lt;b&gt;IF YOU LIKE THE APPLICATION GIVE SOME DONATION.&lt;span style="font-size: 0pt;"&gt; 4gB7!Oj &lt;/span&gt;&lt;br /&gt;hxxp://forum.xda-developers.com/showthread.php?t=338143&lt;span style="font-size: 0pt;"&gt; rl'-G+t! &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; &gt;P'b+gLo  &lt;/span&gt;&lt;br /&gt;IF YOU LIKE THIS POST PLEASE CLICK THANK YOU.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:gray;"&gt;[ 此贴被godzilla在2007-10-26 05:46重新编辑 ]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; 描述：READ ME FILE&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/txt.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=53008&amp;amp;aid=97431" target="_blank"&gt; &lt;span style="color:red;"&gt;FtouchFlo readme.txt&lt;/span&gt;&lt;/a&gt; (5 K) Downloads:793  &lt;br /&gt;&lt;br /&gt; 描述：CAB FILE&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=53008&amp;amp;aid=97434" target="_blank"&gt; &lt;span style="color:red;"&gt;FTouchFlo_v1.4.1.CAB.zip&lt;/span&gt;&lt;/a&gt; (25 K) Downloads:693&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-8218056891887188794?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/8218056891887188794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=8218056891887188794' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8218056891887188794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8218056891887188794'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/great-ftouchflo-141-hotfix-works-251007.html' title='GREAT - FTouchFlo 1.4.1 HOTFIX WORKS - 25.10.07 - WM5 &amp; 6'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-8196510534927882551</id><published>2007-11-07T10:17:00.000-08:00</published><updated>2007-11-07T10:21:04.416-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='enhancement'/><title type='text'>TouchFlo 3D Cube (flash version)</title><content type='html'>&lt;span class="tpc_title"&gt;TouchFlo 3D Cube (flash version)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Pic：&lt;br /&gt;&lt;img src="http://www.pxdxa.com/attachmentes/Day_070907/65_177210_f1faf_pxdxa.20070904_f55f6bc6162476e5e7dfMFKglk5ZuTRI.jpg" onclick="" /&gt;screen.width-461) window.open('http://www.pxdxa.com/attachmentes/Day_070907/65_177210_f1faf_pxdxa.20070904_f55f6bc6162476e5e7dfMFKglk5ZuTRI.jpg');" border="0"&gt; &lt;br /&gt;&lt;span class="tpc_content"&gt;The credit goes to Szabó Szabolcs. I found this software from a foreign website. If the author does not want me to post the software, I will remove it immediately.&lt;span style="font-size: 0pt;"&gt; 2X8/gOV &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 0pt;"&gt; }{&gt;QF D &lt;/span&gt;&lt;br /&gt;It is a flash app, you don't need to change any .dll files.&lt;span style="font-size: 0pt;"&gt; y;7{8&gt;&gt; &lt;/span&gt;&lt;br /&gt;Try to save and exit after enter each cube screen ( there's a bug in the config tool).&lt;/span&gt;&lt;br /&gt; &lt;!--&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; --&gt;&lt;!-- google_ad_client = "pub-3313139143977671"; google_alternate_ad_url = "http://www.pxdxa.com/google_adsense_script.html"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel ="2583046568"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--&gt;&lt;!-- &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt; &lt;/script&gt; --&gt;    &lt;br /&gt;&lt;br /&gt; &lt;span class="style5"&gt;Attachment&lt;/span&gt;： &lt;img src="http://www.pxdxa.com/image/wind/file/zip.gif" align="absbottom" /&gt;   &lt;a href="http://www.pxdxa.com/job.php?action=download&amp;amp;pid=tpc&amp;amp;tid=48490&amp;amp;aid=89744" target="_blank"&gt; &lt;span style="color:red;"&gt;Szabi CubeLauncherICON.rar&lt;/span&gt;&lt;/a&gt; (995 K) Downloads:758&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5993491677117710581-8196510534927882551?l=ihtc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ihtc.blogspot.com/feeds/8196510534927882551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5993491677117710581&amp;postID=8196510534927882551' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8196510534927882551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5993491677117710581/posts/default/8196510534927882551'/><link rel='alternate' type='text/html' href='http://ihtc.blogspot.com/2007/11/touchflo-3d-cube-flash-version.html' title='TouchFlo 3D Cube (flash version)'/><author><name>Akki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://4.bp.blogspot.com/_uUnuAveok-M/TD27ieBj7lI/AAAAAAAAE2M/jnGGIWVwBFo/S220/Picture+9.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5993491677117710581.post-1823841125694336415</id><published>2007-11-07T10:12:00.000-08:00</published><updated>2007-11-07T10:13:59.054-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='enhancement'/><title type='text'>HTC Home Plugin Customizer v0.8b (Live Downloads!)</title><content type='html'>&lt;strong&gt;HTC Home Plugin Customizer v0.8b (Live Downloads!)&lt;/strong&gt;        &lt;hr style="color: rgb(255, 255, 204);" size="1"&gt;    &lt;!-- / icon and title --&gt;         &lt;!-- message --&gt;   &lt;div id="post_message_1392814"&gt;This program will let you customize, backup and restore the HTC Home Plugin. Currently it lets you customize the background, clock, tab icons, and weather icons separately. Please leave your feedback as I am constantly trying to add/update the feature set. Please view the readme for details.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;ATTENTION&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;The install cab has been removed from the package, however you now have the option to download the home plugin based on your WM version. This is NOT guaranteed to work, but seems to work for the vast majority. You may still install your own version prior to running the customizer, however only the downloaded versions are guaranteed to work with all options.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Also, there is now a 2.0 version of the Kaiser Home plugin with several fixes (working profiles, contact # selection, etc.), however it's only available for WM6. This is the version the customizer will download and install for you if the plugin is not detected (on WM6). The links below are the 1.5 version if anyone would like to use that instead.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;v0.8 *UPDATED 8/19/2007*&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;FEATURES&lt;/b&gt;&lt;br /&gt;-New cab installer and two versions, HHC and HHC Lite!&lt;br /&gt;-Change the "appearance" of the Home Plugin (background, clock, icons, weather icons)&lt;br /&gt;-Options to change tab order, music player, and today postition locking&lt;br /&gt;-Backup/restore of your appearance and settings (launcher shortcuts, contacts, weather settings, cities database, plugin options)&lt;br /&gt;-Option for alternate weather selection (custom cities!!!)&lt;br /&gt;-Option to create/delete shortcut to the program&lt;br /&gt;-Custom theme support&lt;br /&gt;-Support for plugins that install to \HTCHome and \Windows&lt;br /&gt;-Live appearance set downloads and previews&lt;br /&gt;-Live download of Home plugin and Audio Manager based on WM version detected.&lt;br /&gt; (You can still manually install another plugin before running the customizer if you wish.)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;NOTE ABOUT LIVE DOWNLOADS&lt;/b&gt;&lt;br /&gt;Live downloads are very primitive currently, although very functional. Please leave your feature requests for this module in this thread, as they will be added to v1.0 when released.&lt;br /&gt;&lt;br /&gt;If you lose your data connection while downloading a file through the customizer, you may experience a delay of up to 5 minutes before the customizer recognizes the connection is lost. This issue will be also be addressed in v1.0.&lt;br /&gt;&lt;br /&gt;Here is a direct link to the preview site:  &lt;a href="http://www.digitaldeviation.com/files/downloads/htc-customizer/preview/index.html" target="_blank"&gt;Appearance Previews&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;THEMES&lt;/b&gt;&lt;br /&gt;OK, here's how themes work. The "Theme" is broken down into four "Appearance" options. They are Background, Clock, Icons, and Weather Icons. I split those up for two reasons. First, I haven't found any (I'm sure they're out there) alternate weather icons, so copy the sames files over again is redundant and wastes times. Second, it gives you a little more control over the customization of your themes. What the program does is it takes the names of the four Appearance options you have set and save those parameters to the themes.ini file with the name you have given it.&lt;br /&gt;&lt;br /&gt;You can then go back and reload that theme (four image sets) anytime you wish from the Themes menu.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;INSTALLATION&lt;/b&gt;&lt;br /&gt;YOU MUST HAVE THE HTC HOME PLUGIN INSTALLED TO USE THIS PROGRAM. If you would like to use the Tab Order function, you must have a version of the plugin that supports it.&lt;br /&gt;&lt;br /&gt;YOU MAY OPTIONALLY INSTALL THE HTC AUDIO MANAGER to use with the Music tab.&lt;br /&gt;&lt;br /&gt;HHC is now packaged in a CAB installer. You can install/uninstall this like any other program now. If you have a previous version with a custom backup or appearances, you can copy them into the new installation folder as the folder structure has stayed the same.&lt;br /&gt;&lt;br /&gt;If you do not have a Home plugin installed, the customizer will prompt you to download and install a compatible version. You may decline, however you will not be able to use it unless you have one installed.&lt;br /&gt;&lt;br /&gt;You can also download a version of Audio Manager for your WM version from the HTC Options menu.&lt;br /&gt;&lt;br /&gt;Neither the Home plugin or the Audio Manager are guaranteed to work with your device, however these packages have worked for many people.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;USAGE&lt;/b&gt;&lt;br /&gt;1.  Go to Start -&gt; Programs and launch the HTC Home Customizer.&lt;br /&gt;2.  Use the program.&lt;br /&gt;3.  Close the program.  Once complete, the plugin should reload automatically and you should see your changes if you made any.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;WEATHER&lt;/b&gt;&lt;br /&gt;Thanks to N2A on XDA forums, you can now pull your local weather. Based on his patch, I've implemented a switchable setup for your weather. You may continue to use the default or switch to a custom db where you can enter the cities you wish, most US cities by zip code only! Please see this &lt;a href="http://forum.xda-developers.com/showthread.php?t=319187&amp;amp;highlight=n2a+weather" target="_blank"&gt;link&lt;/a&gt; for more details about zip/location codes you will need to enter. You will only need your zip/location code, as the program will handle all the database and reg entries for you.&lt;br /&gt;&lt;br /&gt;If you are having trouble with local weather over your phone's data connection when selecting a custom database, try this via wifi (tested) or activesync (untested):&lt;br /&gt;1.  Disconnect your phone's data connection.&lt;br /&gt;2.  Enable the alternate internet connection and open PIE.&lt;br /&gt;3.  Browse to &lt;a href="http://htc.accuweather.com/" target="_blank"&gt;http://htc.accuweather.com&lt;/a&gt;, you should get N2A's "error page" (at this point, your weather should now update)&lt;br /&gt;4.  Disconnect the alternate connection and re-enable your phone's data connection&lt;br /&gt;5.  Try to update the weather tab, you should now get your local weather if everything is setup correctly.&lt;br /&gt;&lt;br /&gt;If it's still not working and your on WM6, use the cab from N2A's post above. The cab he provides is more reliable than the "Pocket Hosts" method he describes, which is what the customizer now uses&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;CHANGELOG for v0.8&lt;/b&gt;&lt;br /&gt;-Some packages have been removed to reduce download size.&lt;br /&gt;-New Download Packages option - Can download extra packages from online repo at any time&lt;br /&gt;-Option to preview the packages in IE, then go back to the customizer to download&lt;br /&gt;-Removed extra prompt when plugin DLL not found&lt;br /&gt;-Fixed install background confirmation to say background instead of clock&lt;br /&gt;-Change language of HTC Home plugin (sorry not the customizer itself, just the plugin)&lt;br /&gt;-Added a bunch of artwork to online repository&lt;br /&gt;-Added option to show/hide titlebar clock&lt;br /&gt;-Added prompt to soft reset device if a change that requires it has been made&lt;br /&gt;-Added option to change the localization of the plugin&lt;br /&gt;-Added live download of plugin if not installed with check based on WM version&lt;br /&gt;-Added live download of audio manager (optional)&lt;br /&gt;-Added more description to some prompts&lt;br /&gt;-Added more (still not done) error-checking with program functions&lt;br /&gt;-Most important feature of all:  HHC has an icon!!! (A crappy one, but an icon!)&lt;br /&gt;-Probably some other stuff I can't remember right now&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;MINOR BUGS/ISSUES&lt;/b&gt;&lt;br /&gt;Occasionally the program will lock up or soft reset the device. This has only happened after repeatedly opening the program. I've only heard this from one other user, so I think it might have something to do with another package. I'm still looking into this issue.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;REQUIRED FILES&lt;/b&gt;&lt;br /&gt;These packages are now available to download directly through the customizer. You may install them manually if you wish. I have included the original post (if known) and a RapidShare link for convenience.&lt;br /&gt;&lt;br /&gt;Windows Mobile 5 (Tested on Apache)&lt;br /&gt;6Tab Home Plugin&lt;br /&gt;&lt;a href="http://www.ppcgeeks.com/htc-home-6-button-and-3-button-today-plugins-working-on-wm5-t7143.html" target="_blank"&gt;Original Post&lt;/a&gt;&lt;br /&gt;&lt;a href="http://rapidshare.com/files/47418755/HTCHomeWM56Tab.zip.html" target="_blank"&gt;RapidShare&lt;/a&gt; - Updated cab installer&lt;br /&gt;&lt;br /&gt;Audio Manager (Optional)&lt;br /&gt;&lt;a href="http://rapidshare.com/files/46952454/AudioManagerWM5.zip.html" target="_blank"&gt;HTC Audio Manager for WM5&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Windows Mobile 6 (Tested on Titan)&lt;br /&gt;6Tab Home Plugin&lt;br /&gt;&lt;a href="http://forum.xda-developers.com/showpost.php?p=1388377&amp;amp;postcount=609" target="_blank"&gt;Original Post&lt;/a&gt;&lt;br /&gt;&lt;a href="http://rapidshare.com/files/46952696/HomePluginWM6.zip.html" target="_blank"&gt;RapidShare&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Audio Manager (Optional)&lt;br /&gt;&lt;a href="http://rapidshare.com/files/46952950/AudioManagerWM6.zip.html" target="_blank"&gt;HTC Audio Manager for WM6&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SCREENSHOTS&lt;/b&gt;&lt;br /&gt;&lt;img src="http://www.digitaldeviation.com/files/downloads/htc-customizer/sshots/dlmenu.png" alt="" border="0" /&gt; &lt;img src="http://www.digitaldeviation.com/files/downloads/htc-customizer/sshots/previews.png" alt="" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Here are some screenshots of the available artwork through the DL option (WM6 on left, WM5 on right):&lt;br /&gt;&lt;img src="http://img72.imageshack.us/img72/1396/captureoy4.png" alt="" border="0" /&gt; &lt;img src="http://img72.imageshack.us/img72/6805/capturewm5bj8.png" alt="" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The only difference between the packages is that HHC Lite has NO APPEARANCE sets included as you can now download them as you wish through the program.&lt;br /&gt;&lt;br /&gt;[b]NOTE:  The PATCH is only for users on v0.8 or 0.8a who do not want to fully reinstall.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SUPPORT&lt;/b&gt;&lt;br /&gt;Please use these links for checking on and reporting problems.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.pocketemu.com/news.php" target="_blank"&gt;HHC Updates&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.pocketemu.com/e107_plugins/forum/forum_viewforum.php?18" target="_blank"&gt;v0.8b Bug Reports/Problems&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.pocketemu.com/e107_plugins/forum/forum_viewforum.php?3" target="_blank"&gt;v1.0 BETA Bug Reports/Problems&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.pocketemu.com/page.php?4" target="_blank"&gt;HHC &amp;amp; HTC Home FAQ&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.pocketemu.com/page.php?10" target="_blank"&gt;HHC Supported Devices (WIP)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Last but not least, if you find value in or would like to make a contribution to the development/hosting of my software, click &lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;amp;business=jskuby%40comcast%2enet&amp;amp;item_name=Software%2FSupport&amp;amp;page_style=PayPal&amp;amp;no_shipping=1&amp;amp;cn=Comments&amp;amp;tax=0&amp;amp;currency_code=USD&amp;amp;bn=PP%2dDonationsBF&amp;amp;c
