Is there a Windows API for IntelliSense?
A customer had a question, forwarded to the operating system group via the customer liaison. "My customer is developing an IDE and they want to implement the IntelliSense feature. We have been unable...
View ArticleWhy does sharing a folder in Explorer grant full permission on the share to...
A customer noticed that when you use Explorer to share a folder with a specific user, Explorer creates a file share with full permissions to everyone. "Why is this needed? Shouldn't it be created with...
View ArticleWhy does setting the horizontal scroll bar range for the first time also set...
A customer observed that if a window has never set any scroll bar parameters, then it reports its scroll bar range as nMin = nMax = 0 in both horizonal and vertical directions. But once you set the...
View ArticleHow can I check whether a parameter is a pointer to a stack variable?
A customer traced a bug in their program back to the fact that somebody passed a stack buffer to a function that operates asynchronously. Something like this: // This function sends the buffer to the...
View ArticleFurther discussion of the synchronization barrier
The synchronization barrier is apparently more confusing than I expected. The basic idea of the synchronization barrier is that you want to each participant in some coordinated activity to wait until...
View ArticleHow do I disable edge gestures when my window is full screen?
A customer wanted to disable edge gestures when their program is running full screen. For example, you may want to do this if you are something like the Remote Desktop client, where you want all input...
View ArticleWhy don’t I get a file deletion confirmation warning from Explorer when I...
If you use Explorer to copy a file, and then press Ctrl+Z to undo the copy, and you had file deletion confirmation enabled, then Windows 7 would display a confirmation dialog to verify that you really...
View ArticleUsing #pragma detect_mismatch to help catch ODR violations
One of the more insidious problems you may encounter are those traced back to violations of the C++ One Definition Rule. As a general rule, if the conflicting definitions occur in separate translation...
View ArticleThe origin story of the Microsoft ninjacat
Today's entry comes from guest blogger KC Lemson, who answers a question everybody has been wondering but been afraid to ask: Where did the ninjacat come from? If you haven't heard about the Microsoft...
View ArticleThe case of the hung Explorer window
A Windows Insider reported that Explorer stopped responding whenever they opened their Downloads folder. We were able to obtain a memory dump during the hang, and observed that most threads were...
View ArticleWhy didn’t Windows 95 suck the brains out of the XMS driver?
In the discussion of the MS-DOS game that required 32 XMS handles, it was suggested that a solution to the problem of figuring out which handles could be used as local handles without conflicting with...
View ArticleWhat is a ZDP, and what’s so Z about it?
You may see an occasional mention of the acronym ZDP, such as this article explaining what OOBE ZDP are for, and this one that says, "I don't know why..." ZDP stands for "Zero Day Package", sometimes...
View ArticleHow to create a file mapping that allows others to open the file in exclusive...
A customer had a tool that opens files like DLLs and TLBs in order to extract information from them. We currently use CreateFile, CreateFileMapping, and MapViewOfFile to access the file. The...
View ArticleOn the importance of making sure WaitForInputIdle doesn’t think you’re idle,...
A customer had a program that was originally designed back when DDE ruled the land, and it continues to support DDE for (yup) backward compatibility. Today and tomorrow are going to deal with DDE...
View ArticleI’m speaking at the brand new Microsoft Canada Excellence Centre tomorrow
The Microsoft Canada Excellence Centre in Vancouver¹ opened less than two months ago. It still has the new-building smell. And I'll be speaking there tomorrow at 11am. This will be a more relaxed...
View ArticleOn the importance of making sure WaitForInputIdle doesn’t think you’re idle,...
Continuing our DDE micro-series, we'll look at another customer who was having trouble getting the shell to recognize their DDE server. We have a program that supports DDE for legacy reasons. More...
View ArticleHow can I debug a function that has been subjected to COMDAT folding?
Suppose you want to set a breakpoint on a function, but you find that the function has been subjected to COMDAT folding, so your attempt to set a breakpoint on the function ends up setting a...
View ArticleThings I learned from my recent trip to Vancouver
I just got back from Vancouver, and boy are my arms tired! No wait, that's not how the joke goes. Here are some things I learned from my trip: Do not pay the cashier with pennies. Canada phased out...
View ArticleThere are really only two effectively distinct settings for the UAC slider
There's a control panel that lets you specify how often you want to be prompted by UAC. You can set any of four levels: Always notify Notify only when apps try to change settings, use the secure...
View ArticleOn installing a custom unhandled exception filter and intentionally raising...
A customer reported that they were seeing inconsistent behavior when they intentionally raised a Win32 exception and tried to catch it in a custom unhandled exception filter. #define CUSTOM_EXCEPTION...
View Article