Re[2]: Отключить Work Offline из C#
От: Ростик  
Дата: 21.04.05 07:12
Оценка:
Здравствуйте, Smarty, Вы писали:

S>Здравствуйте, Ростик, Вы писали:



Р>>
Р>>            InternetSetOption( 0, 50, ref ci, 4 ) ;
Р>>


Р>>По моему, бред Помогите.


S>А по-моему нет. Маршаллинг струтур посредством ref — общепринятая практика. А что — не катит?


S>P.S. Делаю упор на структуру, полагая что с интами-dword-ами вопросов нет? Но кстати, о птичках, DWORD соотв. 32-bit unsigned integer(он же System.UInt32, он же uint) — см. "Platform Invoke Data Types" в МСДНе.


Спасибо — работает вот в таком виде:
        //Some internet options
        public const uint INTERNET_STATE_CONNECTED = 1;
        public const uint INTERNET_OPTION_CONNECTED_STATE = 50;

        [StructLayout(LayoutKind.Sequential)]
        public struct INTERNET_CONNECTED_INFO 
        {
            public uint dwConnectedState;
            public uint dwFlags;
        }

        [DllImport("wininet.dll", EntryPoint="InternetSetOptionA", CharSet=CharSet.Ansi)]
        private extern static bool InternetSetOption(int hInternet,
            uint dwOption,
            ref INTERNET_CONNECTED_INFO  lpBuffer,
            uint dwBufferLength
            );
 
        private void button2_Click(object sender, System.EventArgs e)
        {
            INTERNET_CONNECTED_INFO ci = new INTERNET_CONNECTED_INFO();
            ci.dwConnectedState = INTERNET_STATE_CONNECTED;
            
            InternetSetOption(0,
                              INTERNET_OPTION_CONNECTED_STATE,
                              ref ci,
                              (uint)System.Runtime.InteropServices.Marshal.SizeOf(ci));
                              
        }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.