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

Программирование. Форум !!!

За 2004-06-15

Re: Ограничение движения мыши

Hello, Elmo.

E> Как сделать, что бы мышь не выходила за пределы заданной области?
E> В терминах WinAPI, разумеется.
Var
cr: TRect;
begin
cr := rect (50, 50, 100, 100);
ClipCursor(@cr); //указатель на cr
end;

<<-------------------------------------->>
О человеке можно судить по его Temporary Internet Files...

   "B." 2004-06-15 22:33:30 (#170558)

Ограничение движения мыши

Привет!

Как сделать, что бы мышь не выходила за пределы заданной области?
В терминах WinAPI, разумеется.

С пожеланием доброго времени суток,
Олень Элмо
Номер выпуска : 3265
Возраст листа : 267 (дней)
Количество подписчиков : 419
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/170521
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписать : mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   Elmo 2004-06-15 21:39:29 (#170521)

Re: [OBORONA-SPAM] winsock in dll

[15.06.2004 23:46] Обнаружено письмо от monah
[15.06.2004 23:46] Тема "[OBORONA-SPAM] winsock in dll"

m> Hello keel,

m> Sunday, June 13, 2004, 7:49:32 PM, you wrote:

k>> Здравствуйте!
k>> У меня такой вопрос: можно ли в длл-ке, вызываемой из приложения,
k>> создать winsock, подключиться этим сокетом к серверу и обмениваться с
k>> сервером информацией (то есть полноценно работать)?
k>> Delphi.

m> Не вижу причин, почему нет!
m> Только учти что созданные в DLL переменные живут тока пока в течении
m> одной сессии обрашений, как внутренние в функциях. Т.е. Все операции
m> должны быть выполнены в одной функции.
Чего то ты напутал. Что еще за сессия обращений? Нормально все должно
работать.

С пожеланием доброго времени суток,
Олень Элмо
Номер выпуска : 3264
Возраст листа : 267 (дней)
Количество подписчиков : 419
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/170496
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписать : mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   Elmo 2004-06-15 21:02:34 (#170496)

Re: [OBORONA-SPAM] winsock in dll

On Tue, 15 Jun 2004 18:27:30 +0700
monah <janal***@n*****.ru> wrote:

> Hello keel,
>
> Sunday, June 13, 2004, 7:49:32 PM, you wrote:
>
> k> Здравствуйте!
> k> У меня такой вопрос: можно ли в длл-ке, вызываемой из приложения,
> k> создать winsock, подключиться этим сокетом к серверу и обмениваться с
> k> сервером информацией (то есть полноценно работать)?
> k> Delphi.
>
> Не вижу причин, почему нет!
> Только учти что созданные в DLL переменные живут тока пока в течении
> одной сессии обрашений, как внутренние в функциях. Т.е. Все операции
> должны быть выполнены в одной функции.

А вот это совсем не обязательно. В ДЛЛ можно создать глобальнуя переменную. Кроме
этого, можно в одной функции создать объект какого-нибудь класса, и потом обращаться
с ним так же, как с любым другим объектом.

   Alexander Artemenko 2004-06-15 20:17:27 (#170455)

Re: [OBORONA-SPAM] winsock in dll

Hello keel,

Sunday, June 13, 2004, 7:49:32 PM, you wrote:

k> Здравствуйте!
k> У меня такой вопрос: можно ли в длл-ке, вызываемой из приложения,
k> создать winsock, подключиться этим сокетом к серверу и обмениваться с
k> сервером информацией (то есть полноценно работать)?
k> Delphi.

Не вижу причин, почему нет!
Только учти что созданные в DLL переменные живут тока пока в течении
одной сессии обрашений, как внутренние в функциях. Т.е. Все операции
должны быть выполнены в одной функции.

   2004-06-15 19:42:07 (#170424)

[Delphi]Пароли ИНТЕРНЕТ

Здрасте!
Кто-нибудь может мне подсказать, где Outlook хранит свои пароли (доступа к
почтовому ящику)?
А также, где хранятся кэшированные пароли Ie?
И как можно запретить кэширование паролей Ie?
=
И желательно указать, как их можно -покрасивши- вытянуть.
Номер выпуска : 3261
Возраст листа : 267 (дней)
Количество подписчиков : 419
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/170304
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   2004-06-15 17:27:48 (#170304)

Re: Проблема с указателями в WinAPI

SRПрп> Ответ получается из двух предположений:
SRПрп> 1. поскольку программа в первом случае валится, скорее всего, hSomeListView
SRПрп> дескриптор окна другого процесса
SRПрп> 2. во втором случае в параметре VirtualAlloc передана немного неожиданная
SRПрп> комбинация флагов: 0x8000000 это SEC_COMMIT, используемый при
SRПрп> создании области разделяемой памяти
> Вопрос 1: hSomeListView - хендл, принадлежащий чужому процессу.
> Если я работаю с чужим хендлом, разве COMCTL32.dll будет падать?
> Почему???
Не спорю, дескрипторы окон разделяются между процессами.
И до тех пор, пока в параметрах сообщений нет указателей, все будет работать.
Но если в сообщении есть указатель на область памяти в одном процессе,
а окно создано в другом - при попытке обработать сообщение будет
ошибка, поскольку адресные пространства процессов в Win32
раздельные и обращение будет выполнено не поймешь куда.
Из этого правила есть исключения, например WM_COPY.
В других случаях, чтобы передать сообщения с указателями
между процессами, идут на различные ухищрения,
одно из которых и было в примере.

> Вопрос 2: Почему с указателем на выделенную память с magic аттрибутом
> работает, а с указателем на статическую переменную не идет?
Чтобы послать сообщение с указателем в приведенном примере пытаются
добиться, чтобы адрес области памяти в вызывающем процессе был
одинаковым с адресом в вызываемом и доступ к этой памяти был
у обоих процессов. Для этого создается область разделяемой
памяти, хотя такого способа, повторюсь, я в документации
не видел. С обычной переменной это не
пройдет - смотри выше.

> Все писал под WinME на VS 6.0
Под Win9x/WinME такой финт ушами проходит, а вот на WinNT,
насколько я помню, не гарантируется, что адреса разделяемой
памяти в разных процессах будут одинаковы.
Можно будет уточнить у Рихтера.

--
Номер выпуска : 3260
Возраст листа : 267 (дней)
Количество подписчиков : 419
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/170075
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   2004-06-15 13:29:19 (#170075)

Re: ошибка waveOutClose

>>>Кроме того, как обычно, нельзя вызывать функции инициализации и очистки
>>>из DllMain, поскольку это может привести ко входу в бесконечную рекурсию
>>>или другим неприятностям.
E>> Мне кажется это как то связано с моей проблемой. Может кто нибудь
E>> пояснит, почему _обычно_ нельзя вызвать библиотечные функции инициализации
E>> и очистки, как это пытался сделать я?
IM> Нельзя вызывать функции из других библиотек в DLL_PROCESS_ATTACH.
IM> Для этого обычно пишут явные функции инициализации и очистки. И явно
IM> вызывают их в программе после LoadLibrary();
> Вот я и спрашиваю: Почему?
>
Нельзя - это слишком категорично. Обычно как раз можно.

Но бывают тонкости, связанные с ошибками реализации тех или иных
библиотек; иногда проблемы могут возникать из-за операционки.
Например, есть глюк в коде выгрузки библиотеки "riched20.dll",
проявляющийся на Win NT 4 (у нее, похоже, немного
кривой алгоритм вызова DllEntryPoint - или это
мне так повезло с версией).

Решение таких проблем уже было приведено в листе - делать
отдельные функции инициализации и освобождения
ресурсов, если это помогает.

Так что проблема с waveOutClose, IMHO,
это не правило, а проявление
какого-то мелкого глюка.

--
Номер выпуска : 3259
Возраст листа : 267 (дней)
Количество подписчиков : 419
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/170072
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   2004-06-15 13:27:39 (#170072)

ActiveX Control Test Container

Привет!

Нужно тестировать контролку в сабже. Ручками долго и хлопотно, поэтому
хочется написать макрос и тестировать контролку в автоматическом
режиме.

Вот самый большой макрос который работает у меня без глюков:

Public Sub TestImportAndExport
End Sub

Я все никак понять не могу, как мне получить объекты которые лежат в
контейнере? Пара примеров которые нашел в нете, не помогли прояснить
ситуацию.

С пожеланием доброго времени суток,
Олень Элмо
Номер выпуска : 3258
Возраст листа : 267 (дней)
Количество подписчиков : 419
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/170055
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   Elmo 2004-06-15 13:21:16 (#170055)

Re: winsock in dll

[15.06.2004 13:07] Обнаружено письмо от keel
[15.06.2004 13:07] Тема "winsock in dll"

k> Здравствуйте!
k> У меня такой вопрос: можно ли в длл-ке, вызываемой из приложения,
k> создать winsock, подключиться этим сокетом к серверу и обмениваться с
k> сервером информацией (то есть полноценно работать)?
k> Delphi.
Да, можно.

С пожеланием доброго времени суток,
Олень Элмо
Номер выпуска : 3257
Возраст листа : 267 (дней)
Количество подписчиков : 419
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/170048
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   Elmo 2004-06-15 12:54:39 (#170048)

Re: winsock in dll

On Sun, 13 Jun 2004 15:49:32 +0300
keel <dima***@s*****.by> wrote:

> Здравствуйте!
> У меня такой вопрос: можно ли в длл-ке, вызываемой из приложения,
> создать winsock, подключиться этим сокетом к серверу и обмениваться с
> сервером информацией (то есть полноценно работать)?
> Delphi.

Конечно можно, но только тебе придется вручную проинициализировать WinSock, например
так:

WSADATA wsaData;
WORD wVersionRequested = MAKEWORD(1, 1);
int nResult = WSAStartup(wVersionRequested, &wsaData);
if (nResult == 0) {
if (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1) {
WSACleanup();
}
}

А по окончании работы сделать WSACleanup();

   Alexander Artemenko 2004-06-15 12:54:02 (#170047)

Re[2]: ошибка waveOutClose

Hello Elmo,

>>>>Кроме того, как обычно, нельзя вызывать функции инициализации и очистки
>>>>из DllMain, поскольку это может привести ко входу в бесконечную рекурсию
>>>>или другим неприятностям.
E>>> Мне кажется это как то связано с моей проблемой. Может кто нибудь
E>>> пояснит, почему _обычно_ нельзя вызвать библиотечные функции инициализации
E>>> и очистки, как это пытался сделать я?
IM>> Нельзя вызывать функции из других библиотек в DLL_PROCESS_ATTACH.
IM>> Для этого обычно пишут явные функции инициализации и очистки. И явно
IM>> вызывают их в программе после LoadLibrary();
E> Вот я и спрашиваю: Почему?

DLL инициализируют себя, используя функции DllMain. К моменту выполнения
твоей DllMain другие DLL в том же адресном пространстве могут не успеть
выполнить свои функции DllMain, т. e. они окажутся неинициализированными.
Поэтому нужно избегать обращений из DllMain к функциям, импортируемым из других
DLL.
Кроме того, ненужно вызывайть из DllMain функции LoadLibrary(Ex) и FreeLibrary,
так как это может привести к взаимной блокировке.

В документации Platform SDK утверждается, что DllMain должна выполнять лишь простые
виды инициализации -- настройку локальной памяти потока, создание объектов ядра,
открытие файлов и т. д. Нужно избегать обращений к функциям, связанным с User,
Shell, ODBC, COM, RPC и сокетами (а также к функциям, которые их вызывают),
потому что соответствующие DLL могут быть еще не инициализированы.
Кроме того, подобные функции могут вызывать LoadLibrary(Ex) и тем самым
приводить к взаимной блокировке.

   2004-06-15 12:49:06 (#170044)

Re[2]: CString & UNICODE

Hello Victor,

VVV> Может, ссылкой попробовать :

VVV> public:
VVV> void Test1(const CString &str);

VVV> Или еще в первом случае вызывать Test1(CString("azsdf"));

Это происходит при любом использовании CString, при передаче(по
ссылке, по значению, как указатель) и при возвращении.

По моему это из-за спецификации шаблона CString<..>
Вот я и думаю может есть какой флаг у компилера?

   2004-06-15 12:32:00 (#170043)

winsock in dll

Здравствуйте!
У меня такой вопрос: можно ли в длл-ке, вызываемой из приложения,
создать winsock, подключиться этим сокетом к серверу и обмениваться с
сервером информацией (то есть полноценно работать)?
Delphi.

   2004-06-15 08:34:37 (#169958)