PWCHAR GetDefaultBrowserPathW(){
#define ASSOCSTR_EXECUTABLE 2
typedef HRESULT (*AQSW)(DWORD, DWORD, LPCWSTR, LPCWSTR, LPWSTR, DWORD*);
DWORD cchPath = MAX_PATH*2;
PWCHAR szPath = (PWCHAR)LocalAlloc(LPTR, cchPath);
((AQSW)GetProcAddress(LoadLibraryW(L"shlwapi"), "AssocQueryStringW"))(0, ASSOCSTR_EXECUTABLE, L"http", L"open", szPath, &cchPath);
return szPath;
}
void main(){
PWCHAR sPath = GetDefaultBrowserPathW();
MessageBoxW(0, sPath, NULL, 0);
LocalFree(sPath);
ExitProcess(0);
}