source: trunk/Lucide/gui/stbrowser.c @ 397

Last change on this file since 397 was 367, checked in by dmik, 11 years ago

Merged bramches/kmk (r294:365) to trunk.

File size: 2.1 KB
Line 
1/*
2 *  Starts a browser with a given URL.
3 *  by Eugene Romanenko
4 *
5 *  This code is in the public domain and has no copyright.
6 */
7
8#include "os2all.h"
9
10#include <string.h>
11
12
13static char browserExe[ CCHMAXPATH ] = "";
14static char browserDir[ CCHMAXPATH ] = "";
15
16static void detectBrowser();
17
18// Starts the browser, returns 1 if started, 0 otherwise.
19int startBrowser( const char *url )
20{
21    PROGDETAILS pd;
22    HAPP happ = NULLHANDLE;
23
24    if ( url == NULL ) {
25        return 0;
26    }
27
28    if ( browserExe[0] == 0 ) {
29        detectBrowser();
30    }
31
32    if ( browserExe[0] == 0 ) {
33        return 0;
34    }
35
36    pd.Length          = sizeof( PROGDETAILS );
37    pd.progt.progc     = PROG_DEFAULT;
38    pd.progt.fbVisible = SHE_VISIBLE;
39    pd.pszTitle        = NULL;
40    pd.pszExecutable   = browserExe;
41    pd.pszParameters   = NULL;
42    pd.pszStartupDir   = ( browserDir[0] == 0 ) ? NULL : browserDir;
43    pd.pszIcon         = NULL;
44    pd.pszEnvironment  = NULL;
45    pd.swpInitial.fl   = SWP_ACTIVATE;
46    pd.swpInitial.cy   = 0;
47    pd.swpInitial.cx   = 0;
48    pd.swpInitial.y    = 0;
49    pd.swpInitial.x    = 0;
50    pd.swpInitial.hwndInsertBehind = HWND_TOP;
51    pd.swpInitial.hwnd             = NULLHANDLE;
52    pd.swpInitial.ulReserved1      = 0;
53    pd.swpInitial.ulReserved2      = 0;
54    happ = WinStartApp( NULLHANDLE, &pd, url, NULL, 0 );
55    return ( happ != NULLHANDLE );
56}
57
58static void detectBrowser()
59{
60    char *prfApp = "WPURLDEFAULTSETTINGS";
61
62    if ( browserExe[0] == 0 )
63    {
64        PrfQueryProfileString( HINI_USER, prfApp, "DefaultBrowserExe", "",
65                               browserExe, CCHMAXPATH );
66        PrfQueryProfileString( HINI_USER, prfApp, "DefaultWorkingDir", "",
67                               browserDir, CCHMAXPATH );
68    }
69
70    if ( browserExe[0] == 0 )
71    {
72        APIRET rc;
73        rc = DosSearchPath( SEARCH_CUR_DIRECTORY | SEARCH_ENVIRONMENT | SEARCH_IGNORENETERRS,
74                            "PATH", "NETSCAPE.EXE", browserExe, CCHMAXPATH );
75        if ( rc != 0 ) {
76            strcpy( browserExe , "" );
77        }
78    }
79}
80
81
Note: See TracBrowser for help on using the repository browser.