Salve a tutti ho creato un piccolo programma per visualizzare video e funziona tutto bene tranne una parte di codice che genera un errore. Ecco tutto il listato corredato di commenti dove viene segnalata la parte che genera l'errore e il messaggio che fa comparire visual studio:

codice:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.DirectX;
using Microsoft.DirectX.AudioVideoPlayback;

namespace Video1
{
   public partial class Form1 : Form
   {
       // Creo un oggetto video chiamato Altamira
       Video Altamira = new Video("C:\\Documents and Settings\\Fede\\Desktop\\ALTAMIRA-X TE.wmv");
       
       public Form1()
       {
           InitializeComponent();
           //Faccio in modo che il video venga riprodotto nel pictureBox1
           Altamira.Owner = pictureBox1;
           
       }
       //Bottone per Attivare/Mettere in pausa il video, quando si attiva il programma la prima volta bisogna premerlo 2 volte
       private void button1_Click(object sender, EventArgs e)
       {
           //Se il video è in pausa allora viene fatto andare avanti(per questo la prima volta bisogna premerlo 2 volte)
           if (Altamira.Paused == true)
           {
               //Viene attivato il video
               Altamira.Play();
               //viene attivato un timer che ogni secondo va avanzare una trackbar che indica a che punto è il video
               timer1.Enabled = true;
               
           }
               //se il video è attivo allora viene messo in pausa
           else
           {
               //il timer viene disattivato
               timer1.Enabled = false;
               //il video viene messo in pausa
               Altamira.Pause();
               
           }
       }
       //Bottone per cambiare video mettendone l'indirizzo in una TextBox
       private void button2_Click(object sender, EventArgs e)
       {
           //il timer viene disattivato
           timer1.Enabled = false;
           //il video viene messo in pausa per evitare problemi
           Altamira.Pause();
           //Uso un blocco try catch per non far fermare tutto nel caso l'utente inserisca un indirizzo sbagliato
           try
           {
               //Uso il metodo open per aprire un nuovo indirizzo che è contenuto nella textBox
               Altamira.Open(textBox1.Text);
           }
           catch (Exception ex)
           {
               //Quando provo apposta a non inserire alcun indirizzo e premo il bottone si pianta tutto e compare
               //un messaggio di viasual studio che dice "Riferimento a un oggetto non impostato su un'istanza di oggetto."
               //E viene evidenziato in giallo l'istruzione che dovrebbe far apparire il messageBox
               //Qualcuno può dirmi perchè questo errore????????
               MessageBox.Show(ex.Message);
           }
           finally
           {
               //nel caso ci sia un errore il programma ricarica automaticamente un video predefinito
               Altamira.Open("C:\\Documents and Settings\\Fede\\Desktop\\ALTAMIRA-X TE.wmv");
           }
       }
       //il timer ogni secondo calcola il punto a cui è arrivato il video
       private void timer1_Tick(object sender, EventArgs e)
       {
           //Ogni secondo il timer calcola in percentuale a che punto è il video tramite una piccola operazione
           //e assegna quel valore alla trackBar2
           trackBar2.Value =  Convert.ToInt32((Altamira.CurrentPosition * 100) / Altamira.Duration);
           //Se la trackbar arriva alla fine fa ritornare il cursore all'inizio e fa ripartire il video da capo
           if(trackBar2.Value == 100)
           {
               trackBar2.Value = 0;
               Altamira.CurrentPosition = 0;
           }
       }
       //Questa trackBar serve per egolare il volume e ha un valore che va da -1000 a 0 che è il massimo
       private void trackBar1_Scroll(object sender, EventArgs e)
       {
           Altamira.Audio.Volume = trackBar1.Value;
       }
       //questa è la trackbar che indica a che punto è arrivato il video(quella del timer)
       //e può essere usata per far avanzare velocemente il video
       private void trackBar2_Scroll(object sender, EventArgs e)
       {
           //il timer viene disattivato
           timer1.Enabled = false;
           //il video viene messo in pausa
           Altamira.Pause();
           //Imposta la posizione del video in base al valore della trackBar tramite una piccola operazione
           //che calcola la percentuale(l'inverso di quella per farla avanzare)
           Altamira.CurrentPosition = Convert.ToDouble((Altamira.Duration / 100) * trackBar2.Value);
           //iL timer viene riattivato
           timer1.Enabled = true;
           //Il video viene fatto continuare
           Altamira.Play();
       }


   }
}
Qualcuno potrebbe essere cosi gentile da darmi una mano a capire l'errore??