Click here to Skip to main content
15,896,606 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I wrote a simple C++ program that opens a test page in IE window using IWebBrowser2 with my HTML header (Referer, UserAgent). Everything works fine. PHP functions on the test page show the modified headers. However, Javascript (document.referrer, navigator.userAgent) does not. How to set referer and useragent for Javascript in IWebBrowser2 IE window?

This is my program:
C++
#include <windows.h>
#include <Exdisp.h>

int main(){
	if (SUCCEEDED(OleInitialize(NULL))){
		IWebBrowser2* wb;

		CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER, IID_IWebBrowser2, (void**)&wb);
	   
		if(wb){
			VARIANT vempty;
			VariantInit(&vempty);

			VARIANT vheaders = { 0 };
			BSTR headers = SysAllocString( L"Referer: http://example.com\r\nUser-Agent: xyz\r\n" );
			V_VT( &vheaders ) = VT_BSTR;
			V_BSTR( &vheaders ) = headers;

			BSTR url = SysAllocString(L"http://localhost/test2.php");

			HRESULT hr = wb->Navigate(url, &vempty, &vempty, &vempty, &vheaders);
		   
			if(SUCCEEDED(hr)){
				wb->put_Visible(VARIANT_TRUE);
			}
			else{
			   wb->Quit();
			}

			SysFreeString(url);
			SysFreeString(headers);
			wb->Release();
		}

		OleUninitialize();
	}

	system("PAUSE");
}
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900