Windows 7 Libraries .NET Sample Library – an Overview

z3r010

Administrator
Staff member
Local time
7:20 PM
Messages
53,472
Location
Douglas, Isle of Mam
Windows 7 Libraries .NET Sample Library – an Overview

Libraries are the primary entry points to user data in Windows 7. They are the natural evolution from the user’s Known Folders, including those for documents, pictures, music, and videos. However, before jumping into the technicalities, let’s try to explain what a Library in Windows 7 is. A Windows 7 Library is a user-defined collection of content that represents the user’s data independently from the folder hierarchy. Users can unify and flatten the folder hierarchy by aggregating any number of physical locations (on their local machine or on remote machines) into a single view – which is the library. By including folders in Libraries, users tell Windows where their important data are located. In Windows 7 therefore, most applications should use a Library instead of the user’s Known Folders. It is important to note that as Libraries are an integral part of the Windows Shell, they play a greater role in the Windows 7 Explorer user experience. Accordingly, the importance and integration points of Libraries span multiple parts of the Windows Shell, including the Common File Dialog, Folder Picker, and the Windows Explorer Browser control (not Internet Explorer!).

This is the first post in a series of Library posts. It provides an overview of both the Windows 7 Library functionality and the Libraries Sample .NET Interop Library, which is a managed code wrapper and part of the Windows 7 .NET Interop Sample Libraries. The second post is all about Understanding Windows 7 Libraries. In future posts, we will dive into the internal implementation of Libraries as well as how to use the Libraries programming model and APIs.

If you are unfamiliar with and haven’t seen any demonstrations of the updated Windows 7 Shell and Libraries in action, I suggest you watch the Windows 7: Find and Organize Part 1 webcast on Channel 9. This will give you some context for the technical material we cover here.

Let’s review the Windows 7 Libraries .NET Interop Sample Library architecture and note the important classes. Please remember that the Libraries sample is part of the Taskbar and Libraries assembly. Since both Taskbar and the Libraries share many common integration points with the Windows Shell, it makes sense to have them grouped together and use the same Shell structures and methods.

Opening the solution reveals the following structure:


  • The Demos folder containing several demo projects that show the various aspects of both the Taskbar and Libraries wrappers as you can see from the image; we will focus on the Libraries
  • The Wrappers folder containing the Windows7.DesktopIntegration assembly, which is the main manager API for both the Taskbar and Libraries
  • A modified version of the Vista Bridge Sample Library - We based our code on the 1.4 version. And as mentioned before, the Windows Vista bridge Project will be superseded by the new Windows API Code Pack for the .NET Library
Let’s take a quick look at the main class that enables developers to take advantage of the new Library functionality. The ShellLibrary.cs file contains the ShellLibrary class, which is the main entry point for managed code developers. Using the ShellLibrary, developers can programmatically perform all Library operations, including:


  • Create new library
  • Load existing library
  • Delete library
  • Add / remove folders from the library
  • Set the default save location of the library
  • Set the folder type
  • Show the library management dialog box
  • Set the library icon
  • Pin and unpin the library from the left navigation pan in Windows Explorer
 

The demos in the Libraries folder highlight all the above-mentioned Library functionality. Let’s review them:


  • The LibraryManagerDemo is a Windows Presentation Foundation (WPF) application that showcases all the functionality offered by libraries. It is a very simple application that offers developers a great


 


  • The SLUtil (not Silverlight) is a command line interface that allows users and developers to manage their Libraries. Again, it offers all the above-mentioned Library functionality.


 

Here are some additional resources for programming Windows 7 Libraries:


View Channel 9 videos:


Additional blog posts


 

Alon Fliess contributed to this post


aggbug.aspx

More...
 

My Computer

Computer type
PC/Desktop
OS
Windows 11
Thanks, nice to have some more control. :)

Looking at command line controls, do you think the DOS type commands will ever disappear?
 

My Computer

Computer Manufacturer/Model Number
Dilithium Computers/Engineering (Myself) Star date 42.739285.5432.9
OS
Win7 Ultimate x64 on Desktop / Win7 Ultimate x86 on laptop / Win7 x86 Starter on Netbook
CPU
AMD Phenom 965 X4 3.4Ghz cpu Black Edition
Motherboard
Gigabyte 790XT
Memory
12 Gb DDR3
Graphics Card(s)
Nvidea Gforce GTX 470
Sound Card
Onboard Realtek hi-fi
Monitor(s) Displays
Lg 3D led 23"
Screen Resolution
1920x1080
Hard Drives
Loads maxstore sata 1 & 2/ loads of partitions + 1Tb Hitachi sata 2. 256Gb Crucial ssd.
PSU
OCZ 700W GameXstream
Case
Artec 10000
Cooling
On board + many case fans
Keyboard
Logitech wireless K350
Mouse
Inferno gaming mouse
Internet Speed
Talk talk. 10Mb
Other Info
My PC was hand built with matchsticks. xbox 360 controller. Printers,fax.........
Thanks, nice to have some more control. :)

Looking at command line controls, do you think the DOS type commands will ever disappear?

Not as long as there are sysadmins that need to script stuff!
 

My Computer

Computer type
Laptop
Computer Manufacturer/Model Number
Apple
OS
El Capitan / Windows 10
CPU
i7-4980HQ
Memory
16GB
Graphics Card(s)
Iris 5200
Libraries are something I really like about W7. A real time saver for me. :D
 

My Computer

Computer Manufacturer/Model Number
Dell XPS420
OS
Vista Ult 64 bit Seven Ult RTM x64
CPU
Intel Core2 Quad Q6600 2.40 gigahertz
Memory
Crucial Ballistix 4x2GB PC2 6400
Graphics Card(s)
NVIDIA GeForce 8600 GTS 256 MB
Sound Card
Creative SB X-Fi audio
Monitor(s) Displays
HP w2207 + HPvs15
Screen Resolution
1680x1050 + 1024x768
Hard Drives
2-WD5000AAKS-500 GB
WD5000AAV-500 GB external
Keyboard
Microsoft Comfort Curve
Mouse
MX Revolution
Other Info
Wacom Intuos 2 Graphics Tablet
Experience Index=5.5
Back
Top