diff options
Diffstat (limited to 'src/drivers/WinAPI')
| -rw-r--r-- | src/drivers/WinAPI/Fl_WinAPI_System_Driver.H | 1 | ||||
| -rw-r--r-- | src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.H b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.H index 3e5f06d39..6079b0721 100644 --- a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.H +++ b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.H @@ -75,6 +75,7 @@ public: virtual int filename_isdir(const char* n); virtual int filename_isdir_quick(const char* n); virtual const char *filename_ext(const char *buf); + virtual int open_uri(const char *uri, char *msg, int msglen); }; #endif // FL_WINAPI_SYSTEM_DRIVER_H diff --git a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx index 246a26521..95d94dfca 100644 --- a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx +++ b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx @@ -25,6 +25,7 @@ #include <stdio.h> #include <stdarg.h> #include <windows.h> +#include <shellapi.h> #include <wchar.h> #include <process.h> #include <locale.h> @@ -658,6 +659,12 @@ const char *Fl_WinAPI_System_Driver::filename_ext(const char *buf) { return q ? q : p; } +int Fl_WinAPI_System_Driver::open_uri(const char *uri, char *msg, int msglen) +{ + if (msg) snprintf(msg, msglen, "open %s", uri); + return (int)(ShellExecute(HWND_DESKTOP, "open", uri, NULL, NULL, SW_SHOW) > (void *)32); +} + // // End of "$Id$". // |
