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