setting IE options

Tyro Tyro
Wed Dec 5 15:54:28 PST 2007


Tyro[a.c.edwards] Wrote:

> 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:

I located wininet.dll and build from it a .lib file using implib. However when attempting to compile the program the following error occurs:

 Error 42: Symbol Undefined _InternetSetOption
--- errorlevel 1

Is there something I am missing?
Any advice is appreciated.

> 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