-
- wxString MIMEResult;
-
-#ifdef __WIN32__
-
-#include <urlmon.h>
-
- /*char *;
- unsigned long Buffersize;
- FindMimeFromData(NULL, NULL, , , NULL, FMFD_DEFAULT, , 0);*/
-
+
+ wxString MIMEResult;
+
+ // Check if file exists first before doing anything with it.
+
+ if (!wxFileExists(FilenameInc)){
+
+ // File doesn't exist so return.
+
+ wxMessageBox(_("The file with the filename given doesn't exist."), _("Error opening picture/audio file"), wxICON_ERROR);
+ return wxEmptyString;
+
+ }
+
+#if defined(__WIN32__)
+
+ // TODO: Sort out Win32.
+
+#elif defined(__APPLE__)
+
+#include <stdio.h>
+
+ FILE *MIMEIn;
+
+ char MIMEData[512];
+
+ // Build Command Line.
+
+ wxString FilenameIncEscaped = FilenameInc;
+ FilenameIncEscaped.Replace(wxT(" "), wxT("\\ "));
+ wxString FileCommandLine;
+
+ FileCommandLine.Append("file -b --mime-type ");
+ FileCommandLine.Append(FilenameIncEscaped);
+
+ if (!(MIMEIn = popen(FileCommandLine.mb_str(), "r"))){
+
+ wxMessageBox(_("The file with the filename given doesn't exist."), _("Error opening picture/audio file"), wxICON_ERROR);
+ return wxEmptyString;
+
+ }
+
+ while(fgets(MIMEData, sizeof(MIMEData), MIMEIn) != NULL){
+ MIMEResult.Append(wxString::FromUTF8(MIMEData));
+ }
+ pclose(MIMEIn);
+
+ MIMEResult.Trim();
+