Manejadores de Pre Visualizacion (Preview Handlers) en Windows VIsta y Office 2007

 

La claridad visual que ofrece el sistema operativo Windows Vista es interesante ya que nos podemos beneficiar directamente de ella. Entre tantas características del producto relacionadas con aspectos visuales contamos con el “Panel de Pre Visualizacion”. Desde explorador de Windows si te posicionas en cualquier carpeta y seleccionas la opción:

fig01.gif

Encontraras un nuevo panel de visualización que te permitirá pre visualizar el contenido del archivo que selecciones:

Este panel de pre visualización simplemente te ofrece la posibilidad de visualizar el contenido de tus archivos antes de abrirlos de tal manera que puedes consultar el contenido para decidir si en verdad ese archivo es el que deseas abrir. Puedes navegar sobre el contenido del archivo e incluso seleccionar y copiar contenido. Esta funcionalidad esta soportada de manera predeterminada para la mayoría de los archivos de office como Word, Excel, PowerPoint así como archivos de texto, imagen, audio y video. Sin embargo contamos con infinidad de archivos adicionales en el sistema (zip, pdf, xml, html, etc) que indudablemente sería fabuloso poder pre visualizar dentro de este panel y es aquí en donde los “Manejadores de pre visualización” o más bien conocidos como “Preview Handlers” nos permiten extender esta funcionalidad para personalizar y soportar a nuestro antojo el comportamiento de esta funcionalidad.

Una serie de APIs dentro de Windows Vista nos ofrecen la posibilidad de crear nuestros propios manejadores de pre visualización para visualizar los archivos que nosotros queramos dentro del sistema operativo la buena noticia es que Stephen Toub un editor de MSDN Magazine a construido todo un marco de trabajo de programación para permitirnos construir nuestros propios manejadores de visualización. Este marco de trabajo ha sido publicado en la edición de enero de MSDN Magazine bajo el titulo de View Data Your Way With Our Managed Preview Handler Framework y nos ofrece la implementación de una gran variedad de manejadores de pre visualización que podemos instalar inmediatamente sobre nuestro Windows Vista. También cabe mencionar que tanto Windows Vista como Outlook 2007 utilizan las mismas APIs de pre visualización soportando la misma funcionalidad y es por eso que con Outlook 2007 podemos pre visualizar nuestros archivos adjuntos dentro del panel de lectura o “Reading Pane” como le llaman.

Es muy sencillo crear tu propio Preview Handler y soportar tu propio archivo. Y la experiencia que como usuario tienes es simplemente increíble ya que te ahorras tiempo y esfuerzo con esta característica.

Por ejeplo a mi me fascino el Preview Handler para archivos XPS.

El de archivos ZIP esta fenomenal.

Yo ya tuve la oportunidad de construir mi propia implementación de un preview handler en particular y como programador puedo decir que es sumamente sencilla y fácil de realizar. Simplemente heredamos de una clase e implementamos un par de métodos y listo. Veamos lo sencillo que es construir un manejador de pre visualizacion para archivos xaml. Este cofigo viene disponible dentro del marco de programacion que menciono antes.

 

// Stephen Toub

using System;
using System.IO;
using System.Windows.Markup;
using System.Windows.Controls;
using System.Windows.Forms.Integration;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using System.Drawing;

namespace MsdnMag
{
    [PreviewHandler("MSDN Magazine XAML Preview Handler", ".xaml", "{7b7855e8-62d6-4887-8938-bfe1a11a62ce}")]
    [ProgId("MsdnMag.XamlPreviewHandler")]
    [Guid("dec9ca47-e4cd-4eed-8f1b-b0567a489f0a")]
    [ClassInterface(ClassInterfaceType.None)]
    [ComVisible(true)]
    public sealed class XamlPreviewHandler : StreamBasedPreviewHandler
    {
        protected override PreviewHandlerControl CreatePreviewHandlerControl()
        {
            return new XamlPreviewHandlerControl();
        }

        private sealed class XamlPreviewHandlerControl : StreamBasedPreviewHandlerControl
        {
            public override void Load(Stream stream)
            {
                // Load all of the XAML content into a frame
                Frame f = new Frame();
                XamlReader reader = new XamlReader();
                f.Content = reader.LoadAsync(stream);

                // Wrap the frame in an element host
                ElementHost xamlHost = new ElementHost();
                xamlHost.Child = f;
                xamlHost.Dock = DockStyle.Fill;
                xamlHost.BackColor = SystemColors.Window;

                Controls.Add(xamlHost);
            }
        }
    }
}

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

 

Así que te dejo una serie de enlaces que estoy seguro te ayudaran para aprender rápidamente a hacer uso de toda esta funcionalidad y a implementar algunos manejadores para archivos comunes.

· Managed Preview Handler Framework (soporte para zip, xml, xaml, resx, csv, msi, ie)

· Vista and Office 2007 Preview Pack (soporte para archivos .cs,.aspx, .sql)

· Photoshop Preview Handler

· ScreenCast de Daniel Moth sobre Preview Handlers

Suerte!

** cross posting desde geeks.ms

One thought on “Manejadores de Pre Visualizacion (Preview Handlers) en Windows VIsta y Office 2007

Leave a Reply

Your email address will not be published. Required fields are marked *