So you want to call a specified browser with arguments..
For that you can query registry location:
HKLM\Software\Clients\StartMenuInternet"
and get the list of installed browser in the machine.
Then for the specified browser you have to query
HKLM\Software\Clients\StartMenuInternet\<Browser>\shell\open\command"
This will provide installed path of the specified browser.
Now by using this installed path you can call shellExecute as shown below.
ShellExecute(NULL, L"open", <BrowserInstalledPath>, <ParametersToBrowser>, NULL, SW_SHOWNORMAL);
Suppose we need to call Google Chrome which will open www.yahoo.com, then shellexecute will be
ShellExecute(NULL, L"open", L"C:\\Users\\chandrakant\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe", L"www.yahoomail.com", NULL, SW_SHOWNORMAL);