Как ни странно нигде не могу найти информацию о том что же из себя на самом деле представляет объект окна?? Какую роль играет хэндл окна? На индекс в таблице как-то смахивает слабо уж слишком в большом диапазоне варьируется. Зачем окну нужен гребаный класс с его гребаным именем? Какова связь между GUI-потоком и относящимися к нему окнами. Всмысле кто на кого ссылается и каким макаром. Буду признателен за любую информацию так собранная информация поможет в написании хорошей статьи
Смотри структуру tagWnd Ты ошибся - хэндл окна как раз и есть индекс + служебные биты. Для более подробной инфы смотри неэкспортируемую из юзер.длл функцию ValidateHwnd. Если бы ты, прежде чем задавать вопрос, порылся в сорцах винды или, хотя бы, глянул на юзерную длл под идой, то половина вопросов бы отпала. На страничке http://twister.orgfree.com/other возьми файл ntuser.rar... AsmGuru62 Как раз-таки не один хэндл не является адресом структуры. Адрес структуры это указатель.
класс можно зарегить до показа окна из ресурсов, где в скрипте ресурсов диалога будет прописан именно этот класс - таким образом можно назначить свои свойства окну, которые нельзя задать в скрипте ресурса. к тому же класс необходим для помещения контролов в окне, ведь различные контролы - это тоже окна (SysTabControl32, SysListView32, ToolbarWindow32, msctls_statusbar32 etc). HMODULE - это адрес модуля в памяти. т.е. адрес, по которому загружен модуль. речь идёт о хэндлах окон. так что можешь рассматривать HMODULE как указатель на структуру MZ/PE файла, но данный пример всё равно не уместен.
Twister Интересно... а вот так HWND объявлен: Код (Text): typedef HWND__* HWND; Надо полагать Микрософт путает всех, чтоб не лазили по адресам.
Без обид: методом подаяния можно наскрести лишь на гребаную статью, хорошая предполагает куда больше личных усилий.
hwegh kero Блин что за бред. Я даже и тему-то не назвал, а вы уже сделали вывод. Это раз. Во вторых перед тем как что-то делать определись с тем, что по этой теме уже сделано до тебя. Для этого и поднимаются такие вопросы. А в третьих идите вы к черту флудеры как выложу черновой вариант тогда и будете судить о личном вкладе и уровне понимания вопроса.
Это чтобы были незаконны неявные преобразования типа переменных: если объявить "typedef DWORD HWND" и "typedef DWORD HINSTANCE", то компилятор Си не будет ругаться на ошибки типа "HWND h = GetModuleHandle(...);". Все структуры HXXX__ определены как содержащие единственный член (unused, кажется), но согласно стандарту Си являются разными типами.
Блин, народ, во даешь! HMODULE - это адрес, по которому загрузилась либа. А преффикс "H" только вводит в заблуждение. Статью я уже и сам давненько хотел "сообразить". Да вот все руки не доходят. А какова будет общая тематика статьи? Просто описать, что такое окно? Это примитив. Если копать глубже, то придется довольно сложно - tagWND разнится от винды к винде (хотя некоторые ее члены на своих местах всегда), посему придется перелопатить юзернуюю длл хотябы от трех осей. Далее: была мысль написать о сокрытии окон и защиты неубиваемых приложений от "GUI-хаков", но скрыть окно удалением из списков окон не выходит - список ни где не дублируется и юзается системой. Вообщем, если что - обращайся... PS А в статье не забудь указать первоисточник...
ИМХО #1 особенно списки окон, и всё что связано с обработкой окон в графической среде Windows; т.е. не с точки зрения создания и управления окнами пользователем, а с точки зрения операционной системы.
Я пишу статью о специфике разработки коммерческих проектов на уровне драйвера Windows. На данный момент я закончил два проекта, которые представляли из себя драйвер. Пока я их разрабатывал, я столкнулся с кучей проблем специфики, совместимости и обеспечения стабильности в целом написанного кода. И хотелось бы опубликовать те решения которые появились в ходе работы над проектами. Про окна я спросил потому, что хотел затронуть тему вызова API-функций из кода ядра и очень интересно стало разобраться с окнами. И по-возможности, тоже включить материалы в статью. Я пишу статью не очень быстро потому, что хочу все свои практические решения подкрепить теорией, и чтобы не тяжело было читать. В теории я опираюсь на источники: У Они Использование WDM М Руссинович, Д.Соломон Внутреннее устройство Windows С Макконелл Совершенный код.
Miller Rabin Может оказаться полезным: http://groups.google.ru/group/microsoft.public.win32.programmer.kernel http://groups.google.ru/group/comp.os.ms-windows.programmer.nt.kernel-mode
Twister >>Какой первоисточник имеется в виду ? >"на твоем сайте нашел все необходимое" А, первоисточник исходников MS