It is an excellent question. I recommend using system functions. It is a slightly difficult because you have to declare interfaces and Windows Shell structures, but result will be very powerful. There are a lot of functions and structures. I'll help you to declare and to use all needed objects.
Create a new project and place a ListView component on the form. We will load files list from the desktop and place their names in the ListView. First of all we have to describe two interfaces: IShellFolder and IEnumIDList. Create a new Interface file for IShellFolder. To do it, use the right click on the project name in the Solution Explorer window. Select the New Item from the Add menu. The Add New item dialog will be displayed
The full version you can read on Hackish Code. Read the article: How to get a files list from a folder?
Date: 2008-07-02
[Read the full version]
[Development]
There are many new features in Visual Studio 2008 I liked. One of them is .NET Framework 3.5. In this article I will describe features I am attracted most of all.
First of all I want to thanks C# developers for var operator. You can declare implicit type variables. It's incredible! It's a bad programming! No. It is a good feature. .NET Framework determines a variable type itself in time of declaration.
A next one new feature of Visual Studio - LINQ. What is it? It is a new extension to the .NET Framework that encompasses language-integrated database operations like queries, sets and operations. The LINQ extends C# native language with new capabilities for queries. The LINQ can work with not only databases but XML and user defined structures. You can write queries to your data collection!
Full version of introduction to the LINQ
Date: 2008-07-04
[Read the full version]
[Development]
A programmer's life is a continual struggle with slow-downs and lack of time. Every day he or she spends several hours on optimization. Each programmer tries to optimize everything that happens to be close at hand. Are you sure you do this properly? Maybe you can do something better.
I'm aware of the fact that people are lazy. As for me, I got accustomed that my computer does everything for me, and I don't remember what a ball-point pen looks like. I had to write an application on a sheet of paper not long ago. It turned out that I forgot how to write a letter by hand, so I looked at the computer keyboard. Honestly! This is a technical progress that allows me to do everything with my computer.
Read full version of Optimization article
Date: 2008-08-27
[Read the full version]
[Development]
A demo is a short graphic program or a bench of code in a program that displays graphical effects, possibly accompanied by music or/and sound effects. A demoscene is a whole culture of creating demos that sets certain rules and laws for their development. Demo developer teams gather at demo parties, where they show their creations to the viewers' judgment. The parties look like a contest but it is something more then only contest. It is a festival. It is a celebration.
Most of demos are created by teams, because nowadays it is very difficult, if not impossible, to create an impressive demo all on one's own. A demo creation process requires at least three professionals: a programmer, an graphic artist and a musician.
All these definitions of the demoscene, however, cannot be enough to convey the whole meaning of the concept, which extends way beyond such simple definitions. To fully understand it requires immersing into the history to see how this culture originated and has been subsequently developing. Only then you will be able to get the spirit of this really unique culture.
Read the full Demoscene article
Date: 2008-08-29
[Read the full version]
[Development]
Since the times when Microsoft was not yet a full-fledged operation system but just a shell to MS-DOS, the GDI had been the programming basis for graphics operations. It was initially a successful technology that made it possible to work with any type of video card. The PC platform employed a variety of video chips, each with different capabilities, and GDI offered a universal way to access their video functions. Even though the technology greatly improved, is still used in Windows.
While universality was definitely a plus, the video performance left a lot to be desired. When I played the Doom game for the first time, I wondered how the game could create such complex scenes on an x396 computer when Windows could not. Of course, the resolution used in the game was lower, but the scenes of the 3D world were more complex. This difference in performance occurs because with the GDI, applications cannot directly access the video card or the video buffer. Allowing them to do this would make it difficult to implement a multi-window system. And while the GDI's universality is an advantage, it is also a shortcoming, because it does not allow the capabilities of a good video chip to be used to their full extent.
Read full version of the Introduction to DirectX story.
Date: 2008-09-12
[Read the full version]
[Development]
The most effective method for decreasing the program size in hidden in the answer to the question, "Why are Visual C++ programs so large?" This is because C++ is an object-oriented language. In this language, each program component is an object with its own properties, methods, and events. Each object is self-sufficient and can do much without your instructions. This means you just need to associate it with your form, change its properties appropriately, and the application is ready! It will work without your detalization of its activity.
There are a few disadvantages in object programming. Objects implement many actions that a programmer or user can execute. However, in any actual program only two or three of these properties are used. The others are lumber, and nobody needs it.
Date: 2008-10-03
[Read the full version]
[Development]
Many kind of software has to use a rubber band rectangle. The rubber band is a rectangle that tracks with mouse cursor while user hold the mouse button and move it to select something or to move/resize controls. To draw the rubber band rectangle we used to draw rectangle using raster operations (XOR) drawing in GDI. To draw rubber band you had to draw a rectangle using ROP2_XORPEN. To erase the rectangle you had to draw the same rectangle and all lines would be disappeared.
The new graphic interface GDI+ does not implement raster operations. The .NET framework does not implement the old GDI functions. The System.Drawing methods are based on GDI+. What can we do to draw rubber band in the .NET Framework? We can use the platform invocation to access to the old functions but it is the worst technique. Do not use the invocation in such a case. Use a static method DrawReversibleFrame() from ControlPaint like in the example below (it is a small part of one of my project):
Read a full version of the Rubber band rectangle
Date: 2008-10-06
[Read the full version]
[Development]
I have published a new article "Introduction to C and Win32" today. The new article is for begginers in software development. It gives you a deeper look at Win32 Application. A more comprehensive description can be found in specialized books on Visual C++, but now I'll give you only the necessary information about Win 32 programming. In this article we consider how to create a Win32 application with the small executable file size.
Create a new Win32 Application using Visual Studio and name it Ctest. Open the CTest project and look at the Solution Explorer pane. It displays a hierarchy that contains all components of your project.
Read the full version at Hackish Code website: Introduction to C and Win32
Date: 2008-10-09
[Read the full version]
[Development]
Heapar Essential Library allows you to create pretty and powerful user interfaces. The library consists of ActivePanel, Bevel, CategoryButtons, Resizer, HeaparGrid etc. We add new features every month. Register now and get free updates in 1 year.

Why do you spend your time to develop cool-looking components? Does your time cost the energy you spend? No!!! Buy cool-looking components from Heapar Essential Library and save your time. More info on: Heapar Essential Library .NET WEB page.
Date: 2008-10-16
[Read the full version]
[Development]
When you write your own program you're going to sell, it is very important to think over its user interface. Like with people, first impressions on a program are most lasting. You have to impress your user with a stunning user interface.
If windows of your software product are disgusting, nobody will pay a dollar for the program. How can you create something attractive so that a user spends more than five minutes on getting acquainted with you program? This isn't that difficult. Correct design is a sort of art.
Previously I tried to find non-standard solutions in the main window to stand out against my competitors, but my programs sold badly. After three years of such a practice I made a standard window with simple buttons and common menus, and sales increased thrice. Users don't like to make heads or tails of complicated interfaces and strange controls. They like simple programs that can be used immediately after installation.
Full version of the article read here: Designing Windows Correctly
Date: 2008-12-05
[Read the full version]
[Development]