Inside and Out…

An attempt to understand technology better…

Archive for July, 2006

DesktopSMS – Send, Receive and Reply to SMS from the desktop

Posted by Gaurav Khanna on July 31, 2006

Ever wanted to compose SMS from the ease of desktop instead of the phone? Wanted to be notified on the desktop, while you are working, when a SMS is received and reply to it from there itself?

DesktopSMS, for Windows Mobile 5.0 based SmartPhone and PocketPC devices, will let you do just that! Based upon .NET Framework 2.0, .NET Compact Framework 2.0 and Windows Mobile 5.0, it allows you to compose, receive and reply to SMS while the phone is connected to your machine via ActiveSync. Below are some screenshots of the same:

Main window to send SMS

Likewise, when a SMS is received, a popup comes on your screen that will allow you to reply as well:

Popup on message receipt

You can even select recepients from Microsoft Outlook’s Contact folder as message receipient, provided they have mobile phone number specified. It comes with complete documentation and installer.

Download DesktopSMS from

Technorati : , , , , , , : , , , , , ,


Posted in .NET Compact Framework, .NET Framework, Downloads, Windows API, Windows CE/Windows Mobile | Leave a Comment »

[WebService] CAPTCHA image generator for spam control

Posted by Gaurav Khanna on July 24, 2006

As part of the revamp efforts of, I have added the [Web]Services section where I have made available, for free use in your applications, various SOAP based services, built using the .NET Framework.

The first service I have added is a CAPTCHA image generation service. If you are running a website or a blog where you take input from the user in a HTML form, you would know about bots who can spam the form and send invalid details. One of the ways to handle this problem is challenge-response where you throw a challenge to the entity filling up the form and if their response is valid, only then the HTML form’s details are taken for subsequent processing.

One of the ways websites and various blog engines are trying to combat spam is by dynamically generating an image which shall containing a randomly generated text – and then prompting the user to enter the text. Only if there is a match, will the HTML form be processed.

The CAPTCHA image generation service can be used to generate this random text and create an image out of it, which can then be displayed on your webpage for verification. It is Basic Profile 1.1 specification compliant. Its free for use in your applications – you simply need to be registered with WinToolZone.

Complete service documentation is at

Posted in .NET Framework, Development | Leave a Comment »

Working with properties in Managed C++?

Posted by Gaurav Khanna on July 6, 2006

Then read this article by someone who knows Managed C++ very well. His blog is here.

Posted in .NET Framework, Articles, Managed C++, Tips | Leave a Comment »

WinToolZone.Bluetooth – Added device enumeration support

Posted by Gaurav Khanna on July 6, 2006

WinToolZone.Bluetooth, the managed Bluetooth API for the desktop that I am working on, now has the support for enumerating devices as well. The snippet below exemplifies it:

    Bluetooth bth = new Bluetooth();
    // EnumRadios(bth);

    if (bth.RefreshDevices(false, true, true, true, true, null) == false)
         Console.WriteLine("Unable to enum devices");

    foreach (BluetoothDevice device in bth.Devices)
         Console.WriteLine("Devicename: {0}", device.Name);
         Console.WriteLine("LastSeen: {0}", device.LastSeen.ToString());
         Console.WriteLine("LastUsed: {0}", device.LastUsed.ToString());
         Console.WriteLine("Connected: {0}", device.IsConnected.ToString());
         Console.WriteLine("Remembered: {0}", device.IsRemembered.ToString());
         Console.WriteLine("Authenticated: {0}", device.IsAuthenticated.ToString());
         Console.WriteLine("DeviceClass: {0}", device.DeviceClassID);
         Console.WriteLine("Address: {0}\n", device.Address.ToString());

And below is an output screenshot:

Bluetooth device enumeration output using WinToolZone.Bluetooth

Technorati : , , , , : , , , ,
Ice Rocket : , , , ,
43 Things : , , , ,

Posted in .NET Framework, Development, Managed C++, Windows API | 1 Comment »

WinToolZone.Bluetooth – Managed Bluetooth API for the desktop

Posted by Gaurav Khanna on July 5, 2006

One of the communication protocols not present in .NET Framework class libraries is Bluetooth. So today, I started to work on my implementation of a managed API for Bluetooth programming – WinToolZone.Bluetooth. I am authoring it using Managed C++ and leveraging the Microsoft Bluetooth stack APIs.

I just completed implementing the support for enumerating the Bluetooth radios on a machine. Below is a C# program that exemplifies how they can be enumerated:

using System;
using System.Collections.Generic;
using System.Text;
using WinToolZone;

namespace BTHCSClient
    class Program
        static void Main(string[] args)
            Bluetooth bth = new Bluetooth();
            if (bth.RefreshRadios())
                foreach (BluetoothRadio radio in bth.Radios)
                    Console.WriteLine("RadioName: {0}", radio.Name);
                    Console.WriteLine("Address: {0}", radio.Address.ToString());
                    Console.WriteLine("ManuID: {0}", radio.ManufacturerID);
                    Console.WriteLine("LMPSubversion: {0}", radio.LMPSubversion);
                    Console.WriteLine("DeviceClass: {0}", radio.DeviceClass);
                Console.WriteLine("Unable to enumerate BTH radios");

Technorati : , , , , , , : , , , , , ,
Buzznet : , , , , , ,
43 Things : , , , , , ,

Posted in .NET Framework, Development, Distributed Communications, Managed C++ | 1 Comment »

[Download] IEFeedManager – feature enhanced!

Posted by Gaurav Khanna on July 3, 2006

I just published v1.0.0.3 of IEFeedManager with some improvements and feature additions.

  • You can right-click a feed or a feed folder and force an update of the feed(s)
  • If any changes are made to the Common Feed List (CFL), then they shall be automatically reflected in the tree display as shown below:
  • Support for auto-refresh of display
  • Feed Viewer now supports sorting of columns by clicking on the column header. Also, added support to mark feed items are read or unread (unread items appear in bold) and to support reading pane at the bottom or the right side:
  • RSS Reader enhancements
Install the latest version from here.

Technorati : , , , , , , : , , , , , ,

Posted in .NET Framework, Downloads | Leave a Comment »

Programming the Windows RSS Platform

Posted by Gaurav Khanna on July 2, 2006

One of the interesting things that has been introduced with Internet Explorer 7 (IE7) is the central repository of RSS feeds that will be maintained on the machine running IE7. This is called as the Common Feed List (CFL) and it can be accessed by any application via the COM based API that is being provided alongside. Infact, I wrote IEFeedManager that leverages this API to manage the CFL and also use it to view the RSS feeds.

In this post, I will explain how you can get started to program for this new RSS platform using the managed world. Note: You will need to have IE7 installed on your machine.

First, you will need to add the reference to the COM API library. Right-click your project->Add Reference.. and select the COM tab. You will see Microsoft Feeds listed as shown below:

Microsoft Feeds in the COM tab

Once you add the reference, you will see Microsoft.Feeds.Interop assembly being referenced in your project. Include the namespace with the same name in your project and your are ready to go.

The starting point in the CFL is the FeedManager object. This will allow you to enumerate all the feeds contained in the root folder of CFL, enumerate subfolders and the feeds contained within them. It implements the IFeedManager interface and a typical instantiation will be like this:

private IFeedsManager feedManager = new FeedsManagerClass();

Once you have the IFeedManager instance, you can access the root CFL folder (of the type IFeedFolder) as shown below:

feedRootFolder = (IFeedFolder)feedManager.RootFolder;

Next, you can enumerate the contained subfolders:

IFeedsEnum colSubFolder = (IFeedsEnum)feedRootFolder.Subfolders;

foreach(IFeedFolder feedFolder in colSubFolder)

{ // Do something with “folder” object }

Likewise, the Feeds property of an IFeedFolder can used to access the feeds (of the type IFeed) contained in the folder and work with them:

IFeedsEnum colFeeds = (IFeedsEnum)feedFolder.Feeds;
foreach (IFeed feed in colFeeds)

{ // Do something with the “feed” object }

Now that you have the IFeedFolder object and the contained IFeed objects, you can use a variety of properties and method to work with them. For example, to refresh the feed, invoke the Download method against the IFeed object. To delete a folder and its contained feeds (and subfolders as well), invoke the Delete method against the IFeedFolder object.

You could also set the auto-refresh (of the feed) interval using the Interval property of the feed. Not just that, you can even wire up for a notification against a feed folder or a feed so that if they are modified externally (e.g. another application) or are updated (or deleted), your application can be notified about all such behavior!

Possibilities are endless. The new RSS platform is quite powerful in terms of the APIs it provides to do a variety of tasks. Check the detailed documentation here.

Technorati : , , , , : , , , ,
Buzznet : , , , ,

Posted in .NET Framework, Tips, Windows API | Leave a Comment »

[Download] IEFeedManager – RSS Reader+Internet Explorer 7 Feed Manager

Posted by Gaurav Khanna on July 1, 2006

With Internet Explorer 7 (IE7), subscribing to RSS feeds has become much simpler than before. Infact, IE7 can be used as a RSS reader!

This has been made possible by introducing Common Feed List (CFL), a central repository of RSS feeds maintained on all machines running IE7 or later. Thus, these include (as of today) Windows XP SP2, Windows Server 2003 and Windows Vista. The beauty of CFL is that there are COM based APIs that can be used to interface with it and manage it – and any application can choose to use it and there by adding RSS support within it!

IEFeedManager is a .NET Framework 2.0 based application that will allow you to manage feeds in CFL in a much easier manner and demonstrates how to use the Feeds API from the .NET Framework. For eg. in a single go, it will let you set feed refresh intervals for all feeds in a given folder, which is not so easy in the browser. Plus, it has a built-in RSS reader! And all this is free! Below is a screenshot of IEFeedManager in action:

IEFeedManager in action

You can install it over the web using ClickOnce from

Technorati : , , , , : , , , ,
Buzznet : , , , ,
43 Things : , , , ,

Posted in .NET Framework, Downloads | Leave a Comment »