]> git.saurik.com Git - wxWidgets.git/commitdiff
implement wxLaunchDefaultApplication() for MSW and document it (#9810)
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 2 Aug 2008 15:31:38 +0000 (15:31 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 2 Aug 2008 15:31:38 +0000 (15:31 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54926 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

interface/wx/utils.h
src/common/utilscmn.cpp

index 8bade8cd74f60624b3a4968861f9fffd507e9aae..2e49aaf7bd8d4af6c11a696caa1767c2ffc80d90 100644 (file)
@@ -421,6 +421,18 @@ long wxNewId();
 */
 void wxRegisterId(long id);
 
+/**
+    Opens the @a document in the application associated with the files of this
+    type.
+
+    The @a flags parameter is currently not used
+
+    Returns @true if the application was successfully launched.
+
+    @header{wx/utils.h}
+*/
+bool wxLaunchDefaultApplication(const wxString& document, int flags = 0)
+
 /**
     Opens the @a url in user's default browser.
 
index a0aa6a98c43b5b3bb2cf74a6644c4da420187471..c77b3e374338761da07f99de1c16332009111445 100644 (file)
@@ -937,11 +937,11 @@ void wxQsort(void *const pbase, size_t total_elems,
 // Launch document with default app
 // ----------------------------------------------------------------------------
 
-bool wxLaunchDefaultApplication(const wxString &document, int flags)
+bool wxLaunchDefaultApplication(const wxStringdocument, int flags)
 {
     wxUnusedVar(flags);
 
-#ifdef __UNIX__
+#if defined(__UNIX__)
     // Our best best is to use xdg-open from freedesktop.org cross-desktop
     // compatibility suite xdg-utils
     // (see http://portland.freedesktop.org/wiki/) -- this is installed on
@@ -954,9 +954,21 @@ bool wxLaunchDefaultApplication(const wxString &document, int flags)
         if ( wxExecute(xdg_open + " " + document) )
             return true;
     }
+#elif defined(__WXMSW__)
+    const INT_PTR result = (INT_PTR)::ShellExecute
+                                      (
+                                        NULL,           // parent window
+                                        _T("open"),
+                                        document,
+                                        NULL,           // parameters
+                                        NULL,           // working directory
+                                        SW_SHOWDEFAULT
+                                      );
+    if ( result > 32 )
+        return true;
 #endif
 
-   return false;
+    return false;
 }
 
 // ----------------------------------------------------------------------------