You didn't tell the MediaDetClass the file name, so the instance doesn't know it's length. So set the FileName property before getting the stream's length.
memde = new MediaDetClass();
memde.Filename = openFileDialog1.FileName;
memde.CurrentStream = 0;
System.IO.Directory.CreateDirectory("temp");
int len = (int)memde.StreamLength;
label1.Text = "Length: " + len.ToString();
trackBar1.Minimum = 0;
trackBar1.Maximum = len;
trackBar1.Value = 0;
counter = 0;
Image img;
float percent = 0.002f;