UGN Security Forums
My ProfileMember DirectoryLogin
Search our ForumsView our FAQView our Site Rules
View our CalendarView our Active TopicsGo to our Main Page

UGN Security Store
 

Network Sites UGN Security, The GoNix Initiative, Elite Web Gamers, Back of the Web, EveryDay Helper, VNC Web Design & Development
July
Su M Tu W Th F Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Sponsored Links
Latest Postings
Latest Reviews
Topic Options
Rate This Topic
#17622 - 09/24/02 03:02 PM Article: How Windows Work
SilentRage Offline
DollarDNS Owner

Registered: 03/04/02
Posts: 1273
Loc: OH, USA
First of all, I wanna make sure we're on the same wavelength and tell you what a 'window' really is. You may think of the browser window you're looking at right now as a window. But that window contains many smaller and specialized windows too. Every button, text box, and even those scrollbars are windows. How do they work? How does a button get disabled? How does a scrollbar scroll? How is the max characters set for a textbox?

Let's start when the window is born. When you create a window (see: CreateWindowEx API) you must supply a name for the window, a class, and various other parameters like width, height, and even settings like visibility and whether it has borders and much much more... The most important is the CLASS you specify. The CLASS determines what kind of animal your window will be. There's 'Button', 'Edit' (textbox), 'Combobox', and many other different window classes. You can even create your own classes. Most of the windows you recognize as windows are application defined classes.

Now what do classes mean to windows? Well, each class has their own seperate function. This function is called to change the behavior of some window whose apart of that class. The classes that are apart of windows such as buttons and such are based on functions that are also apart of windows. When you create a class, then you must also specify which function in your application is associated with it. Then you can create as many windows that is a member of that class as you want.

Ok, now to make all this real to you. Let's say you made a simple program with a button on a form. When the user clicks the button, the code will disable it. So what happened behind the scenes? When you clicked the button, the program sent a WM_ENABLE message to the button class function and set it to false. It looks something like this:

SendMessage Button1.hWnd, WM_ENABLE, 0, 0

That's how you'd call it if you wanted to do it directly. SendMessage is an API function which accepts 4 arguments. The first one is the handle to the button window. The second is the type of message you're sending, in this case WM_ENABLE. The last 2 arguments are meant for whatever the message needs. In the case of WM_ENABLE, the 3rd argument is set to 0 for false, or 1 for true. The 4th argument is unused. To make the button enabled again, you do this:

SendMessage Button1.hWnd, WM_ENABLE, 1, 0

When you send that message to the button, the button class function gets called in windows, and it will disable the button for you.

That's it. Almost everything is done via messages. Take a ListView window for example (Class=SysListView32 created by comctl32.dll) which all folders use to display those files. Those columns and those items in the list are all added via messages. The application calls the SendMessage function (or some equivilent. See: CallWindowProc & DefWindowProc) messages such as LVM_INSERTCOLUMN and LVM_INSERTITEM.

Another example as hinted at at the start of this topic.

SendMessage Text1.hWnd, EM_SETLIMITTEXT, 20, 0

This will cause the textbox to only allow 20 characters to be entered into the textbox.

---

How to look up the different messages and learn what they do. Download API-Viewer from http://www.allapi.net and look up the following to get a list of messages for a given window.

Edit (TextBox)
Type EM_ (Edit Messages)

SysListView32 (ListView)
Type LVM_ (List View Messages)

See the pattern? Well, go to msdn.microsoft.com and look up any message you wanna learn about.

---

Feel free to ask any questions since I went over a lot of information relatively briefly.
_________________________
Domain Registration, Hosting, Management
http://www.dollardns.net

Top
Sponsored Links
      
#17623 - 09/26/02 04:05 PM Re: Article: How Windows Work
psychogen Offline
Member

Registered: 03/02/02
Posts: 257
Loc: UK
sweet now I understand how people write trainers besides asm!
_________________________
The use of "hacker" to mean "security breaker" is a confusion on the part of the mass media. We hackers refuse to recognize that meaning, and continue using the word to mean, "Someone who loves to program and enjoys being clever about it."
--------------------
"Its not a bug, its a feature" (Epic Games)

Top

Featured Member
Registered: 08/21/13
Posts: 1
Forum Stats
2145 Members
46 Forums
33482 Topics
68649 Posts

Max Online: 1567 @ 04/25/10 10:20 AM
Top Posters
UGN Security 26645
Gremelin 7192
§intå× 3255
SilentRage 1273
Ice 1146
pergesu 1136
Infinite 1041
jonconley 955
Girlie 908
unreal 860
Newest Members
Jimmie Menon, fghijk435948, Devo60, ali, lavos
2147 Registered Users
Who's Online
0 registered (), 633 Guests and 331 Spiders online.
Key: Admin, Global Mod, Mod
Latest News


Donate
  Get Firefox!
Get FireFox!