Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Win API


Информационный Канал Subscribe.Ru


RusFAQ.ru: Win API

Выпуск № 014
от 19.09.2003, 19:00

Администратор:
Имя: Калашников О. А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 28
Отправлено ответов: 49
Активность: 175 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Gibbel
Статус: Профессиональный
Общий рейтинг: 107.07
URL: Savage Metal Club - жизнь в стиле рок-н-ролл
Телефон: +7 901 710 3146
[Подробней >>]
Hangatyr
Статус: Опытный
Общий рейтинг: 112.21
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 151.96
URL: Программирование
[Подробней >>]
 
BOLT
Статус: Профессиональный
Общий рейтинг: 169.92
URL: Начинающему программитсу: софт, примеры, документация, Assembler, C & C++.
Телефон: Три раза АУ!
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 26. Уважаемые Эксперты: Скажите пожалуйста как создать Socket для отправки сообщений по протоколу SMTP?... (ответов: 2)
Вопрос № 27. Здравствуйте, Эксперты. 1. Как создать прозрачную кнопку (т.е. какие параметры или API использовать)... (ответов: 2)

Вопросов: 2, ответов: 4


 Вопрос № 26

Уважаемые Эксперты:
Скажите пожалуйста как создать Socket для отправки сообщений по протоколу SMTP?
В Help'е Windows SDK к Delphi 5, нашел несколько процедур
1) Знаю что надо первым делом создать его с помощью функции:
SOCKET socket (
int af,
int type,
int protocol
);
Про af сказано что это [in] An address family specification.
Не могу понять чтобы это могло быть и чему это будет равно в моем случае? Какому значению будет равно type и protocol? Искал но не нашел.
2)
int connect (
SOCKET s,
const struct sockaddr FAR* name,
int namelen
);
Что такое sockaddr FAR* name? И что такое Namelen?
Я Вам очень очень благодарен заранее!
P.S Может у кого нибудь есть примеры на Паскале? Скиньте пожалуйста на e-mail! Спасибо.





Вопрос отправлен: 11.09.2003, 10:14
Отправитель: DUDE (salihovar@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Gibbel

Добрый день, DUDE!
Посмотри здесь. Не на Паскале, но все таки примеры...

Ответ отправлен: 11.09.2003, 11:51
Отправитель: Gibbel


Отвечает Hangatyr

Доброе время суток, DUDE!
Для начала нужно вызвать WSAStartup, передав ей указатель на структуру WSADATA и версию протокола 101h:
int WSAStartup( WORD wVersionRequested, LPWSADATA lpWSAData );
Далее создаем объект сокет с помощью ф-ции:
SOCKET socket ( int af, int type,mint protocol );
В твоем случае это надо сделать так:
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
Теперь нужно подготовить структуру SOCKADDR:
u_short htons (u_short hostshort); - получаем номер порта с помощью htons (хотя тут можно сделать лучше).
Очередь за адресом - я предполагаю, что он задан в виде строки "195.46.122.18" (если дано имя хоста, то нужно получить адрес с помощью gethostbyname):
unsigned long inet_addr (const char FAR * cp);
Теперь этими значениями можно заполнять структуру SOCKADDR:
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
В поле sin_family запишешь PF_INET
Ну теперь connect'у передаешь указатель на эту структуру (NameLen - ее размер).
Теперь можешь писАть в этот сокет все, что душе угодно, ну и читать тоже.
Ну и не забудь потом все закрыть (closesocket) и очистить (WSACleanup).

Ответ отправлен: 11.09.2003, 14:33
Отправитель: Hangatyr


 Вопрос № 27

Здравствуйте, Эксперты.
1. Как создать прозрачную кнопку (т.е. какие параметры или API использовать)? Нужен аналог SpeedButton из Delphi.
2. Как с помощью только API создать объект типа Memo из Delphi, или в API есть только Edit и RichEdit?
3. Как добавить в этот Memo (или Edit) строку? Я не про ES_MULTILINE, а про добавление текста с сохранением старого (пишу что-то типа чата).



Вопрос отправлен: 15.09.2003, 18:53
Отправитель: MSoft

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Здравствуйте, MSoft!
1. Прозрачные окна - это и layered windows и просто с HOLLOW_BRUSH в качестве заднего фона и т.д.
2. Только Edit и RichEdit.
3. Посылаешь ему сообщение EM_REPLACESEL - если ничего не выделено (о чем ты должен позаботиться с помощью EM_SETSEL), то текст добавиться в конец существующего.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 15.09.2003, 23:11
Отправитель: Bob Johnson


Отвечает BOLT

Приветствую Вас, MSoft!
1)IMHO, придется самому рисовать.
2)Да, Memo в Delphi является окно с именем класса EDIT.
3)Есть функция SetWindowText() и GetWindowText(). Оперируя ими можно сделать, то что тебе надобно. Подробнее о них см MSDN.

Да прибудет с тобой Великая Сила!
This message was created by EMan 1.5


Ответ отправлен: 19.09.2003, 17:22
Отправитель: BOLT



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (31)
C / C++ (27)
Perl (6)
Builder / Delphi (21)
Pascal (22)
Basic / VBA (10)
Java / JavaScript (12)
PHP (11)
Криптография (9)
WinAPI (15)
Пользователю
Windows 95/98/Me (48)
Windows NT/2000/XP (61)
"Железо" (38)
Поиск информации (21)
Администратору
Windows NT/2000/XP (28)
Linux / Unix (11)
Юристу
Гражданское право (10)
Семейное право (7)
Трудовое право (8)
КоАП (6)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное