Added the open session file dialog implementation.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@149 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/rfbplayer/rfbplayer.cxx b/rfbplayer/rfbplayer.cxx
index 134bdee..d4fe41c 100644
--- a/rfbplayer/rfbplayer.cxx
+++ b/rfbplayer/rfbplayer.cxx
@@ -274,6 +274,27 @@
 
   case WM_COMMAND:
     switch (LOWORD(wParam)) {
+    case ID_OPENFILE:
+      {
+        char curDir[_MAX_DIR];
+        static char filename[_MAX_PATH];
+        OPENFILENAME ofn;
+        memset((void *) &ofn, 0, sizeof(OPENFILENAME));
+        GetCurrentDirectory(sizeof(curDir), curDir);
+       
+        ofn.lStructSize = sizeof(OPENFILENAME);
+        ofn.hwndOwner = getMainHandle();
+        ofn.lpstrFile = filename;
+        ofn.nMaxFile = sizeof(filename);
+        ofn.lpstrInitialDir = curDir;
+        ofn.lpstrFilter = "Rfb Session files (*.rfb)\0*.rfb\0" \
+                          "All files (*.*)\0*.*\0";
+        ofn.lpstrDefExt = "rfb";
+        ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
+        if (GetOpenFileName(&ofn))
+          openSessionFile(filename);
+      }
+      break;
     case ID_PLAY:
       setPaused(false);
       break;
@@ -852,6 +873,7 @@
 
   // Close the previous reading thread
   if (rfbReader) {
+    is->resumePlayback();
     delete rfbReader->join();
   }
   blankBuffer();
@@ -859,6 +881,7 @@
   setSpeed(playbackSpeed);
   rfbReader = new rfbSessionReader(this);
   rfbReader->start();
+  SendMessage(posTrackBar, TBM_SETPOS, TRUE, 0);
 }
 
 void RfbPlayer::setPaused(bool paused) {
diff --git a/rfbplayer/rfbplayer.h b/rfbplayer/rfbplayer.h
index 8ffa044..9a3e519 100644
--- a/rfbplayer/rfbplayer.h
+++ b/rfbplayer/rfbplayer.h
@@ -18,6 +18,7 @@
 
 // -=- RfbPlayer.h
 
+#include <commdlg.h>
 #include <windows.h>
 
 #include <rfb_win32/DIBSectionBuffer.h>