implement wxLaunchDefaultApplication() for MSW and document it (#9810)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54926 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2008-08-02 15:31:38 +00:00
parent ec585c30ec
commit f06832c1b6
2 changed files with 27 additions and 3 deletions

View 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.

View 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 wxString& document, 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;
}
// ----------------------------------------------------------------------------