VitoPlantamura.com logo - Click here to go to the site home page... Click here to go to the site home page... Click here to go to the Blog page... Click here to go to the archives page... Click here to go to the about page...
"extremely impressive work"
- Mark Russinovich, www.sysinternals.com
(referring to my BugChecker)
my face...
Homepage of Vito Plantamura (@, LinkedIn), Windows Researcher and Developer. [user=Guest] - updated: August 08, 2007
 ..:: MSDN Tree XML Gen Example (with source code) ::..
MSDN TREE SERVER EXTENSION

This "MsdnTreeXmlGen" is an example of a Server Extension written for my "Essential WWW Server" that shows how a complex interface can be rendered in HTML on screen still keeping the same look-n-feel of desktop user interfaces.


INTRODUCTION

I ripped off from the MSDN Site the source code of their well-known xml tree (in the form of style sheets, xsl and behaviour files) and then assembled this example to show how you can browse the contents of the local computer folders and drivers from an HTML interface. This is accomplished using the Server Extension mechanism provided by my own web server, the "Essential WWW Server".

INSTALLATION

Download and install first the "Essential WWW Server" from this same site. Then download the zip archive at the bottom of this page, unpack in a local folder, locate the wwwroot directory in the sources folder and then replace the standard wwwroot folder of the server with this one.

HOW IT WORKS

The core of this example is the "MsdnTreeXmlGen.dyn" file, that is actually an Extension Module for my WWW Server. The source codes of this file can be found in the same archive that is provided for download at the bottom of this page.

Installing the extension and trying to explore on my machine the url: "http://localhost:48001/default/MsdnTreeXmlGen.dyn" yields in Internet Explorer the following xml result:

<Tree TreeId="console" NodeXmlSrc="/default/MsdnTreeXmlGen.dyn">
  <TreeNode NodeId="mycomputer" Title="VPNOTEBOOK" 
    NodeXmlSrc="/default/MsdnTreeXmlGen.dyn?MyComputer" 
    Href="/default/MsdnTreeXmlGen.dyn?RightFrameStart" 
    NodeImgSrc="/default/gif/MyComputer.gif" /> 
  </Tree>

This xml data is required client-side by the java script source of the MSDN tree implementation to show and render the top node of the tree, in the page frame at the left. All the children nodes starting from this one are retrieved from the server in the same xml format. For example the URL that returns the contents of the C:\ drive is "http://localhost:48001/default/MsdnTreeXmlGen.dyn?BrowseQwA6AFwA" (the folder path information is appended to the url after being 64-bit encoded). The result is something like this:

<TreeNode NodeId="QwA6AFwA" Title="C:\" 
  ParentXmlSrc="/default/MsdnTreeXmlGen.dyn?LocalDrives" 
  NodeXmlSrc="/default/MsdnTreeXmlGen.dyn?BrowseQwA6AFwA">
  <TreeNode NodeId="QwA6AFwAXwBfAHQAZQBzAHQAbABhAGIAXwBfAFwA" 
    Title="__testlab__" NodeImgSrc="/default/gif/Directory.gif" 
    Href="/default/MsdnTreeXmlGen.dyn?FilePageQwA6AFwAXwBfAHQAZQBzAHQAbABhAGIAXwBfAFwA" 
    NodeXmlSrc="/default/MsdnTreeXmlGen.dyn?BrowseQwA6AFwAXwBfAHQAZQBzAHQAbABhAGIAXwBfAFwA" /> 
      ... ... ...
      ... ... ...

Something that can be considered particularly interesting is the source code that returns the small or large icons for system or application files on your hard drives. For example the URL "http://localhost:48001/default/MsdnTreeXmlGen.dyn?IconQwA6AFwATABvAGcALgB0AHgAdAA=" returns a BMP image that represents the file icon for the file "C:\Log.txt" on my hard disk. You can find this procedure (its name is "Return_Icon" in the DllMain.cpp file) that actually does this job downloading the source code of this example below.

DOWNLOAD

Download the source code and files of this example here (358KB).

 Quotes
"Among the Windows experts I know personally, no one can beat Vito Plantamura."
- Francesco Balena, Code Architects SRL

"Your NDIS Monitor application, is amongst the most impressive networking code I have seen on the .Net framework."
- Ben Hakim.
 Photos
Various images from italian conferences and events (keep the mouse on a thumbnail for a short description):
Me at the Microsoft/HP/Intel organized Route64 event in Milan in May 2005, explaining how COM+ behaves on 64-bit Microsoft operating systems. I was there with the friends of Code Architects.
Me at the Microsoft Security Roadshow event in Bari in April 2006, explaining how the logon process works in Windows NT. There were 250 attendees.
Microsoft Security Roadshow 2006 in Treviso. This is an image of the huge 700-seats conference room.
Me at the Microsoft Security Roadshow 2006 in Treviso. This is a moment of the 3-hours session.
 Site login
NOTE: Actually the login feature is used only for administrative and content management purposes.
Username

Password

Everything here (code, binaries, text, graphics, design, html) is © 2010 Vito Plantamura and VPC Technologies SRL (VATID: IT06203700965).
If you download something (compilable or not) from the site, you should read the license policy file.
If you want to contact me via email, write at this address.