Showing tag results for Code

Dec 18, 2003
Post comments count0
Post likes count0

What is the window nesting limit?

Raymond Chen
Raymond Chen

In the old days, Windows didn't bother enforcing a nesting limit because, well, if you want to nest windows 200 deep, that's your decision. Many window operations are recursive, but since everything happened on the application's stack, it was your own responsibility to make your stack big enough so it didn't overflow. But Windows NT moved the windo...

Code
Dec 15, 2003
Post comments count0
Post likes count0

Welcome to the New Old New Thing

Raymond Chen
Raymond Chen

Hey there, everybody. It's going to take me a while to settle in, so please be patient. It seems I always celebrate a new blog by designing some insane multi-part series on some obscure aspect of Win32, so I think I'll welcome this site with a series of articles that demonstrate various things you can do with the shell namespace. I haven't planned ...

CodeOther
Dec 11, 2003
Post comments count0
Post likes count1

How do I pass a lot of data to a process when it starts up?

Raymond Chen
Raymond Chen

As we discussed yesterday, if you need to pass more than 32767 characters of information to a child process, you'll have to use something other than the command line. One method is to wait for the child process to go input idle, then for some agreed-upon window and send it a message. This method has a few problems: You have to come up with...

Code
Dec 10, 2003
Post comments count0
Post likes count2

What is the command line length limit?

Raymond Chen
Raymond Chen

It depends on whom you ask. The maximum command line length for the CreateProcess function is 32767 characters. This limitation comes from the UNICODE_STRING structure. CreateProcess is the core function for creating processes, so if you are talking directly to Win32, then that's the only limit you have to worry about. But if you are reaching Cr...

Code
Dec 9, 2003
Post comments count0
Post likes count1

Why you should never suspend a thread

Raymond Chen
Raymond Chen

It's almost as bad as terminating a thread. Instead of just answering a question, I'm going to ask you the questions and see if you can come up with the answers. Consider the following program, in (gasp) C#: When you run this program and hit Enter to suspend, the program hangs. But if you change the worker function to just "for(;;) {}" the ...

Code
Dec 4, 2003
Post comments count0
Post likes count0

Which access rights bits belong to whom?

Raymond Chen
Raymond Chen

Each ACE in a security descriptor contains a 32-bit access mask. Which bits belong to whom? The access rights mask is a 32-bit value. The upper 16 bits are defined by the operating system and the lower 16 bits are defined by the object being secured. For example, consider the value 0x00060002 for the access rights mask. This breaks down as the sy...

Code
Dec 3, 2003
Post comments count0
Post likes count0

Which window style bits belong to whom?

Raymond Chen
Raymond Chen

There are 64 bits of styles in the parameters to CreateWindowEx. Which ones belong to whom? Windows defines the meanings of the high word of the dwStyle parameter and all of the bits in the dwExStyle parameter. The low 16 bits of the dwStyle parameter are defined by the implementor of the window class (by the person who calls RegisterClass). In W...

Code
Dec 2, 2003
Post comments count0
Post likes count0

Which message numbers belong to whom?

Raymond Chen
Raymond Chen

Valid window messages break down into four categories. 0 .. 0x3FF (WM_USER-1): System-defined messages. The meanings of these messages are defined by the operating system and cannot be changed. Do not invent new messages here. Since the meanings are defined by Windows, the operating system understands how to parse the WPARAM and LPARAM paramet...

Code
Nov 26, 2003
Post comments count0
Post likes count0

Other tricks with WM_GETDLGCODE

Raymond Chen
Raymond Chen

The WM_GETDLCODE message lets you influence the behavior of the dialog manager. A previous entry on using WM_GETDLGCODE described the flag which controls whether edit control content is auto-selected when focus changes. I was going to write a bit about the other flags, but it turns out that Knowledge Base Article 83302 already covers this, so I...

Code
Nov 24, 2003
Post comments count0
Post likes count0

A shortcut to the Run dialog

Raymond Chen
Raymond Chen

Here's a little script that opens the Run dialog. You can save it as "Run.js" and double-click it. The advantage of this approach over various others people have come up with is that this one is actually documented. (And therefore is less likely to break in the next version of the operating system.)

CodeTips/Support