From a7f45cbbc007ceb9dfda0908f09519b190632dfd Mon Sep 17 00:00:00 2001 From: "blakeross%telocity.com" Date: Wed, 6 Mar 2002 01:11:34 +0000 Subject: [PATCH] 128667 - launch windows app picker dialog if file has no association. r=law sr=ben a=asa git-svn-id: svn://10.0.0.236/trunk@115898 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/xpcom/io/nsLocalFileWin.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/mozilla/xpcom/io/nsLocalFileWin.cpp b/mozilla/xpcom/io/nsLocalFileWin.cpp index 7d2b79a54a6..413705594c7 100644 --- a/mozilla/xpcom/io/nsLocalFileWin.cpp +++ b/mozilla/xpcom/io/nsLocalFileWin.cpp @@ -2113,10 +2113,19 @@ nsLocalFile::Launch() // use the app registry name to launch a shell execute.... LONG r = (LONG) ::ShellExecute( NULL, NULL, (const char *) path, NULL, NULL, SW_SHOWNORMAL); + + // if the file has no association, we launch windows' "what do you want to do" dialog + if (r == SE_ERR_NOASSOC) { + nsCAutoString shellArg; + shellArg.Assign(NS_LITERAL_CSTRING("shell32.dll,OpenAs_RunDLL ")); + shellArg.Append(path); + r = (LONG) ::ShellExecute(NULL, NULL, "RUNDLL32.EXE", shellArg.get(), + NULL, SW_SHOWNORMAL); + } if (r < 32) rv = NS_ERROR_FAILURE; else - rv = NS_OK; + rv = NS_OK; return rv; }