setting IE options

Tyro Tyro
Tue Dec 4 21:56:24 PST 2007


I'm looking for some guidance on how to Internet Explorer options using functionality available in D. I am trying to make the following work but cannot since I don't have a copy of wininet.lib:

import std.c.windows.windows;
extern(Windows){
alias HANDLE HINTERNET;
	
struct INTERNET_PER_CONN_OPTION {
	DWORD dwOption;
	//union Value {    DWORD dwValue;    LPTSTR pszValue;    FILETIME ftValue;  } ; // Does not work
	union {    DWORD dwValue;    LPTSTR pszValue;    FILETIME ftValue;  } ; // hopefully that does the trick
}
alias INTERNET_PER_CONN_OPTION* LPINTERNET_PER_CONN_OPTION;

struct INTERNET_PER_CONN_OPTION_LIST {
	DWORD dwSize;
	LPTSTR pszConnection;
	DWORD dwOptionCount;
	DWORD dwOptionError;
	LPINTERNET_PER_CONN_OPTION pOptions;
}
alias INTERNET_PER_CONN_OPTION_LIST* LPINTERNET_PER_CONN_OPTION_LIST;

enum {
	INTERNET_PER_CONN_PROXY_SERVER = 2,
	INTERNET_OPTION_PER_CONNECTION_OPTION = 75
}

bool InternetSetOption(
	HINTERNET hInternet,
	DWORD dwOption,
	LPVOID lpBuffer,
	DWORD dwBufferLength
);
}

int main(char[][] args) 
{ 
INTERNET_PER_CONN_OPTION_LIST    List;
INTERNET_PER_CONN_OPTION         Option[1];
ulong                            nSize = INTERNET_PER_CONN_OPTION_LIST.sizeof;

Option[0].dwOption = INTERNET_PER_CONN_PROXY_SERVER;
//Option[0].Value.pszValue = "http://myproxy:8080";
Option[0].pszValue = "http://myproxy:8080"; // Is that even legal?


List.dwSize = INTERNET_PER_CONN_OPTION_LIST.sizeof;
List.pszConnection = null;
List.dwOptionCount = 1;
List.dwOptionError = 0;
List.pOptions = &Option[0];

if(!InternetSetOption(null, INTERNET_OPTION_PER_CONNECTION_OPTION, &List, nSize))
   printf("InternetQueryOption failed! (%d)\n", GetLastError()); 

return 0; 

}

Thanks,
Andrew


More information about the Digitalmars-d-learn mailing list