Quantcast
Channel: The Old New Thing
Browsing all 3085 articles
Browse latest View live

Windows Runtime delegates and object lifetime in C++/CX

In C++/CX, there are two ways to create event handlers: As an (object, method) pair, or as a lambda. And the lifetime rules are different depending on how you do it. When you create a delegate with an...

View Article


Windows Runtime delegates and object lifetime in C++/WinRT

In C++/WinRT, there are four ways to create delegates for event handlers: As a raw pointer with a method pointer. As a strong pointer with a method pointer. As a weak pointer with a method pointer. As...

View Article


Programming puzzle: Creating a map of command handlers given only the...

Suppose you have some sort of communication protocol that sends packets of binary-encoded information. There is some information at the start of the packet that describe what command is being sent, and...

View Article

Why does Explorer’s New menu take so long to appear the first time I open it?

When you right-click on an empty space in an Explorer folder and select the New menu item, there is sometimes a delay of up to two seconds before the menu appears. What’s going on during that delay?...

View Article

In times of uncertainty, take your cue from the janitor

A friend of mine told a story of a time his flight to a foreign country was delayed by several hours, and the flight finally arrived shortly before the airport closed for the night. He retrieved his...

View Article


Why does my C++/WinRT project get errors of the form “unresolved external...

You set up a new C++/WinRT project and build it, and everything looks great. #include <winrt/Windows.Gaming.Input.h> void CheckGamepads() { auto gamepads =...

View Article

Why does my C++/WinRT project get errors of the form “consume_Something:...

Last time, we investigated a mysterious error that occurs when linking a C++/WinRT project, and I noted that there’s some good news and some bad news. The good news is that this error message is going...

View Article

I called AdjustTokenPrivileges, but I was still told that a necessary...

A customer had a service running as Local System and wanted to change some token information. The information that they wanted to change required Se­Tcb­Privilege, so they adjusted their token...

View Article


A bug so cool that the development team was reluctant to fix it

Long ago, there was a big filed against Outlook that was titled “Outlook crashes when used violently.” Well that’s an interesting title. The bug was also interesting: What you had to do was create a...

View Article


How to compare two packed bitfields without having to unpack each field

Suppose you are packing multiple bitfields into a single integer. Let's say you have a 16-bit integer that you have packed three bitfields into: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 r g b Suppose you...

View Article

My initial frustration trying to configure our internal VoIP phones that were...

I remember when Microsoft made their initial internal roll-out of its VoIP phones. The VoIP phones were integrated with a desktop app which let you configure the phone, managed your telepresence, as...

View Article

Alternate definitions for English words, as inferred from bug reports

Here are some terms that appear in bug reports. "Empty" means "There are a bunch of things here, but not the ones I wanted." "Blank" means "There are things, maybe." "The picture is wrong" can mean...

View Article

Predator-prey reversal: Rock lobsters vs whelks on Malgas Island and Marcus...

Malgas Island is dominated by rock lobsters, who happily feast upon whelks. Just 4km away, Marcus Island is dominated by whelks, not a rock lobster to be found. Researcher Amos Barkai couldn't figure...

View Article


How do I destruct an object that keeps a reference to itself, because that...

Consider the case of an ordered work queue. Components can queue work to the worker thread, with the expectation that the work will run sequentially. class OrderedWorkQueue { public:...

View Article

What order are pages in a memory-mapped file flushed out to disk?

Say you create a memory-mapped file mapping and write data to it. In which order will the pages be flushed out to disk? Is it in the order the pages were written? Or are pages closer to the beginning...

View Article


Even if your assembly language code doesn’t call any Windows APIs, you still...

Writing in assembly language doesn't absolve you from adhering to the software conventions. Certainly you have more flexibility in assembly language, but that doesn't give you freedom to do anything...

View Article

Precision questioning: The cynical description

Precision questioning is a technique used by some senior executives at Microsoft. Although precision questioning positions itself as a toolkit for critical thinking and problem solving, its use in...

View Article


Asking for clear written documentation that Require trusted path for...

A customer had turned on the Require trusted path for credential entry policy (under Computer Configuration, Administrative Templates, Windows Components, Credential User Interface). They demanded...

View Article

Image may be NSFW.
Clik here to view.

Why is there a limit of 15 shell icon overlays?

There is a limit of fifteen shell icon overlays. Why fifteen? The value 15 came from the corresponding limit for image lists. The Image­List_Set­Overlay­Image function supports up to 15 image list...

View Article

Windows Runtime delegates and object lifetime in C++/CX

In C++/CX, there are two ways to create event handlers: As an (object, method) pair, or as a lambda. And the lifetime rules are different depending on how you do it. When you create a delegate with an...

View Article
Browsing all 3085 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>