v x

Invisible Text. Fuck you.

Home Code Archive ICS SCADA Papers Linux Papers Malware Defense Papers Other Papers Russian Papers The Old New Thing Papers Windows Papers Malware Collections

The Old New Thing - 2003 08

2003-08-05 - Answer to previous exercise on proportional scrollbars
2003-08-05 - Changing the Windows boot logo
2003-08-05 - Keyboard accessibility for scrollbars
2003-08-07 - Limitations on DLL resources in Windows 95
2003-08-07 - Scrollbars bart 6 - The wheel
2003-08-08 - Why is a registry file called a _hive__
2003-08-11 - Answers to exercises
2003-08-11 - Scrollbars part 7 - Integrality
2003-08-12 - Why can't I remove _for test_evaluation purposes only__
2003-08-13 - Scrollbars part 8 - Integral interactive resizing
2003-08-14 - Windows 95 doesn't boot with more than 1GB of RAM
2003-08-15 - A subtlety in the keyboard code
2003-08-15 - Answer to exercise
2003-08-16 - A day in the trenches
2003-08-18 - There will be a part 9 in the scrollbar series
2003-08-18 - Why does Windows 95 have functions called BEAR, BUNNY and PIGLET_
2003-08-19 - Lessons from the trenches
2003-08-20 - What is in the _Windows 95 Special Edition_ box_
2003-08-21 - The secret life of GetWindowText
2003-08-22 - Why isn't my time zone highlighted on the world map_
2003-08-23 - Knitting a pumpkin
2003-08-25 - Windows brings out the Rorschach test in everyone
2003-08-26 - Rotating the Z-order
2003-08-27 - What are all these files in my C_WINDOWSCSC directory_
2003-08-27 - What are those little overlay icons_
2003-08-27 - Why are these unwanted files_folders opening when I log on_
2003-08-29 - Hardware backwards compatibility
2003-08-29 - Painting only when your window is visible on the screen
2003-08-31 - Setup could not verify integrity of file

The Old New Thing - 2003 09

2003-09-01 - Even the trees are falling for the media's lies
2003-09-01 - Suburbs make you fat, researchers conclude
2003-09-01 - The default answer to every dialog box is _Cancel_
2003-09-02 - Determining whether your window is covered
2003-09-02 - The World Adult Kickball Association
2003-09-03 - Why is there no programmatic access to the Start menu pin list_
2003-09-04 - Why are the rules for GetWindowText so weird_
2003-09-05 - Case mapping on Unicode is hard
2003-09-05 - How to recognize different types of timestamps from quite a long way away
2003-09-05 - Where is my program running from_
2003-09-08 - An insight into the Windows 95 startup sound
2003-09-08 - It's a lot easier to write a column if you don't care about accuracy
2003-09-09 - If you see only one Elvis vs. Mummy movie this year, make it this one
2003-09-09 - Scrollbars part 9 - Maintaining the metaphor
2003-09-10 - Computers are still too hard to use.
2003-09-10 - Why do some people call the taskbar the _tray__
2003-09-11 - Scrollbars part 10 - Towards a deeper understanding of the WM_NCCALCSIZE message
2003-09-11 - You too can dress like Raymond
2003-09-12 - Whimsical bug reports
2003-09-12 - Why does the taskbar default to the bottom of the screen_
2003-09-13 - Answers to exercises from Scrollbars Part 10
2003-09-13 - I'm not sure if this was a dare
2003-09-14 - Something about Microsoft employees and milk
2003-09-15 - Eric's complete guide to BSTR semantics
2003-09-15 - Scrollbars part 11_ Towards an even deeper understanding of the WM_NCCALCSIZE message
2003-09-16 - Why does Win32 fail a module load if an import could not be resolved_
2003-09-17 - Answers to exercise from Scrollbars Part 11
2003-09-17 - Scrollbars part 12_ Applying WM_NCCALCSIZE to our scrollbar sample
2003-09-17 - The end of the scrollbar series
2003-09-18 - Emergency vacation
2003-09-18 - Improving the world one bad analogy at a time
2003-09-19 - How much is that gigabyte in the window_
2003-09-19 - Pre-travel insomnia
2003-09-20 - When I dock my taskbar vertically, why does the word _Start_ disappear_
2003-09-29 - Back from Europe
2003-09-29 - In case people got the wrong impression
2003-09-29 - Why you can't rotate text
2003-09-30 - Why is the readonly property for folders so strange_

The Old New Thing - 2003 10

2003-10-01 - Jag skrivar svenska inte so bra
2003-10-01 - Jag taler lita svenska
2003-10-01 - Why do I get spurious WM_MOUSEMOVE messages
2003-10-02 - What do the text label colors mean for files
2003-10-02 - Why does my Advanced Options dialog say ON and OFF after every option
2003-10-03 - Why cant I use amp-accelerators on the Start menu
2003-10-06 - Researchers discover link between music and drinking
2003-10-06 - Why does the System Properties page round the memory size
2003-10-07 - Low-tech usability testing
2003-10-07 - Stupid memory-mapping tricks
2003-10-08 - Im doing this instead of writing a book
2003-10-08 - In Explorer you can right-click the icon in the caption
2003-10-08 - Why is address space allocation granularity 64KB
2003-10-09 - Other uses for bitmap brushes
2003-10-10 - Why doesnt the clock in the taskbar display seconds
2003-10-13 - Why is there no WM_MOUSEENTER message
2003-10-14 - Answer to previous exercise about the mythical WM_MOUSEENTER message
2003-10-14 - Why dont notification icons get a message when the user clicks the X button
2003-10-15 - Murphys law for school
2003-10-15 - What about BOZOSLIVEHERE and TABTHETEXTOUTFORWIMPS
2003-10-16 - Scrollbars redux Part 12
2003-10-16 - The much-misunderstood nop action
2003-10-17 - Dont let Marketing mess with your slides
2003-10-18 - Curling anyone
2003-10-20 - The more I learn about Sweden the weirder it gets
2003-10-20 - What is the AltTab order
2003-10-21 - Using the TAB key to navigate in non-dialogs
2003-10-22 - Whats the deal with those reserved filenames like NUL and CON
2003-10-23 - Writing a sort comparison function
2003-10-24 - Why Daylight Savings Time is nonintuitive
2003-10-25 - Kinder Überraschungen
2003-10-26 - Being the Nobel Peace Prize
2003-10-27 - Getting a custom right-click menu for the caption icon
2003-10-28 - When vendors insult themselves
2003-10-29 - Drawing an active-looking caption even when not active
2003-10-30 - I thought you said people dont know how to read analog clocks
2003-10-31 - Why highlighting by inverting colors is a bad idea

The Old New Thing - 2003 11

2003-11-03 - The long and sad story of the Shell Folders key
2003-11-04 - Just follow the rules and nobody gets hurt
2003-11-05 - An anecdote about improper capitalization
2003-11-06 - Little facts you didnt know about concrete
2003-11-06 - Why are companies so worried about retraining costs
2003-11-07 - Returning values from a dialog procedure
2003-11-10 - A warning to people averse to code
2003-11-10 - Homework assignment about window subclassing
2003-11-10 - How much do you expect from a framework layer
2003-11-11 - Safer subclassing
2003-11-11 - Welcome Martyn Lovell
2003-11-12 - A different type of dialog procedure
2003-11-13 - Another different type of dialog procedure
2003-11-13 - Answer to previous exercise about m_fRecursing
2003-11-13 - British newspapers are much more fun to read
2003-11-14 - Preventing edit control text from being autoselected in a dialog box
2003-11-17 - Another favorite from the Grauniad
2003-11-17 - More stories of bad hardware
2003-11-17 - Stay healthy Drink Guinness
2003-11-18 - Make_sure_the_buttons_match_the_question_-_The_Old_New_Thing
2003-11-19 - How can I tell if I have the 64-bit edition of Windows
2003-11-19 - Notepads geek options require Word Wrap be disabled
2003-11-20 - Whats the deal with the System Volume Information folder
2003-11-21 - Why isnt Fast User Switching enabled on domains
2003-11-24 - A shortcut to the Run dialog
2003-11-24 - You can dragdrop to the command prompt
2003-11-25 - What do the letters W and L stand for in WPARAM and LPARAM
2003-11-26 - Other tricks with WM_GETDLGCODE
2003-11-27 - Its like the Swedes dont want you to learn their language
2003-11-28 - Hello Sweden youre on fire

The Old New Thing - 2003 12

2003-12-01 - What are these strange values returned from GWLP_WNDPROC
2003-12-01 - What did the letters NT originally stand for
2003-12-02 - The New Old New Thing
2003-12-02 - Which message numbers belong to whom
2003-12-03 - Which window style bits belong to whom
2003-12-04 - Which access rights bits belong to whom
2003-12-05 - Why do I have to return this goofy value for WM_DEVICECHANGE
2003-12-07 - At least she represents the United States faithfully
2003-12-08 - If FlushInstructionCache doesnt do anything why do you have to call it
2003-12-08 - Whats with the catcow and dogoldfish
2003-12-09 - Scobles rant on UI defaults
2003-12-09 - Why you should never suspend a thread
2003-12-10 - What is the command line length limit
2003-12-11 - How do I pass a lot of data to a process when it starts up
2003-12-11 - Voyage to Our Hollow Earth
2003-12-12 - Tote Hose in Weilburg
2003-12-12 - Why are structure sizes checked strictly
2003-12-15 - The migration continues
2003-12-15 - Welcome to the New Old New Thing
2003-12-16 - The unsafe device removal dialog
2003-12-17 - Tinkering with the look
2003-12-17 - When marketing designs a screenshot
2003-12-18 - How to void your warranty
2003-12-18 - Rip-it
2003-12-18 - What is the window nesting limit
2003-12-19 - Sometimes an app just wants to crash
2003-12-21 - German sounds more and more like Alles Lookenpeepers every day
2003-12-22 - How do I determine whether I own a critical section if I am not supposed to look at internal fields
2003-12-22 - One in five Swedes steal their Christmas tree
2003-12-22 - The cult of PowerPoint
2003-12-23 - When programs grovel into undocumented structures
2003-12-24 - Why not just block the apps that rely on undocumented behavior
2003-12-25 - What order do programs in the startup group execute
2003-12-26 - Famous people doing mundane things news
2003-12-26 - You can read a contract from the other side
2003-12-27 - How to hide privacy violations in a privacy disclosure statement
2003-12-28 - Another privacy policy that isnt very private
2003-12-28 - Danish so-called pronunciation
2003-12-29 - Beam me up is not yet recognized
2003-12-29 - Whats with those blank taskbar buttons that go away when I click on them
2003-12-30 - At least the Danes know how to count
2003-12-30 - People with almanacs may be terrorists FBI warns
2003-12-30 - Whats the difference between CreateMenu and CreatePopupMenu
2003-12-31 - College football commercialized What ever gave you that idea
2003-12-31 - How to stop delivery of telephone books

The Old New Thing - 2004 01

2004-01-01 - Dont trust the return address
2004-01-02 - The history of calling conventions part 1
2004-01-05 - Why does the x86 have so few registers
2004-01-06 - Why does the copy dialog give such horrible estimates
2004-01-07 - The history of calling conventions part 2
2004-01-07 - Words Id like to ban in 2004
2004-01-08 - Budget cuts strike Swedish radio
2004-01-08 - Its called proofreading give it a shot why dont you
2004-01-08 - The history of calling conventions part 3
2004-01-09 - Ten-year-old Microsoft Flight Simulator terrorist
2004-01-09 - Why do member functions need to be static to be used as a callback
2004-01-11 - Is there an exclusionary rule in Sweden
2004-01-11 - Whats old is new again well its still old
2004-01-12 - Friends is so trendsetting
2004-01-13 - If you know Swedish the world is funnier
2004-01-13 - The history of calling conventions part 4 ia64
2004-01-14 - The history of calling conventions part 5 amd64
2004-01-15 - Google just keeps adding stuff
2004-01-15 - What can go wrong when you mismatch the calling convention
2004-01-16 - Aw poor guy hes so depressed
2004-01-16 - How can a program survive a corrupted stack
2004-01-19 - Uninitialized garbage on ia64 can be deadly
2004-01-20 - ia64 misdeclaring near and far data
2004-01-21 - Fixing security holes in other programs
2004-01-21 - What tools should I assume everybody has
2004-01-22 - Cell phones Cant live with em cant live without em but maybe can ban em
2004-01-22 - What happened to DirectX 4
2004-01-23 - German the language of love
2004-01-23 - The white flash
2004-01-24 - In defense of the German language
2004-01-25 - German as RPN
2004-01-26 - Blog going on autopilot for a while
2004-01-26 - David Hasselhoffs daughters normal in every way
2004-01-26 - The hollow brush
2004-01-27 - Some reasons not to do anything scary in your DllMain
2004-01-27 - Undermining your own proclamation
2004-01-28 - Another reason not to do anything scary in your DllMain Inadvertent deadlock
2004-01-28 - Passenger announcements in the airport
2004-01-29 - Ikea walk-through
2004-01-29 - Integer overflow in the new operator
2004-01-30 - How do we decide what features make it into a product
2004-01-30 - The format of string resources
2004-01-31 - Section 419 scammers arrested in Netherlands Danish flag flies proudly

The Old New Thing - 2004 02

2004-02-02 - The management of memory for resources in 16-bit Windows
2004-02-02 - What goes wrong when you add Copy To to the context menu
2004-02-03 - Mismatching scalar and vector new and delete
2004-02-04 - Answers to exercises mismatching newdelete
2004-02-04 - The Glass Engine and Ishkurs Guide to Electronic Music
2004-02-05 - The layout of a COM object
2004-02-06 - Adjustor thunks
2004-02-09 - I think this counts as having come full circle
2004-02-09 - Pointers to member functions are very strange animals
2004-02-10 - Answer to exercise Pointer to member function cast
2004-02-10 - Orkuts privacy policy and terms of service
2004-02-11 - Dunkin Donuts vs Krispy Kreme
2004-02-11 - Sure we do that
2004-02-12 - Improbable Research comes to Seattle
2004-02-12 - TEXT vs _TEXT vs _T and UNICODE vs _UNICODE
2004-02-13 - Bad version number checks
2004-02-13 - Stories of going through airport security
2004-02-14 - The Seattle Improbable Show 2004
2004-02-16 - So whats to do in Sweden
2004-02-16 - The arms race between programs and users
2004-02-17 - GetDialogBaseUnits is a crock
2004-02-17 - The social skills of a thermonuclear device
2004-02-18 - Why are RECTs endpoint-exclusive
2004-02-19 - No code is an island
2004-02-19 - Sorry the posts are late lately
2004-02-20 - Why do I get a QueryInterfaceIID_IMarshal and then nothing
2004-02-21 - Raymonds comment policy
2004-02-22 - And we will build a processor with ONE MILLION TRANSISTORS
2004-02-23 - Invalid thread and process IDs
2004-02-24 - Whats so special about the desktop window
2004-02-25 - Why cant I put hotlinks in notification icon balloon tips
2004-02-26 - Why do timestamps change when I copy files to a floppy
2004-02-27 - The correct order for disabling and enabling windows

The Old New Thing - 2004 03

2004-03-01 - Why 16-bit DOS and Windows are still with us
2004-03-02 - Went to a Seattle Thunderbirds game this weekend
2004-03-02 - Why are HANDLE return values so inconsistent
2004-03-03 - Blow the dust out of the connector
2004-03-03 - Calling the irony patrol
2004-03-04 - Sorry my kitchen is on fire
2004-03-04 - Where do those customized web site icons come from
2004-03-05 - Defrauding the WHQL driver certification process
2004-03-05 - Money can burn a hole in your pocket
2004-03-08 - C scoped static initialization is not thread-safe on purpose
2004-03-08 - Can you pass Coaching Principles and Strategies of Basketball
2004-03-09 - CharIsDigit matches more than just 0 through 9
2004-03-09 - Returning to Sweden this time with some actual knowledge of Swedish
2004-03-10 - The Department of Homeland Security the television series
2004-03-10 - Why do operations on byte result in int
2004-03-11 - Tony Harding laces up again
2004-03-11 - Why are dialog boxes initially created hidden
2004-03-12 - What happens to those To Any Soldier care packages
2004-03-12 - What is the default security descriptor
2004-03-15 - How do I convert a SID between binary and string forms
2004-03-15 - Senators are really good at stock-picking
2004-03-16 - Still more creative uses for CAPTCHA
2004-03-16 - Why do text files end in CtrlZ
2004-03-17 - More on the AMD64 calling convention
2004-03-17 - On a server paging death
2004-03-17 - Ännu skriver jag inte bra
2004-03-18 - The car with no user-serviceable parts inside
2004-03-18 - Why is the line terminator CRLF
2004-03-19 - Catholic baseball fans want to eat meat on opening day
2004-03-19 - Why does the Resource Compiler complain about strings longer than 255 characters
2004-03-20 - The only logical conclusion is that he was cloned
2004-03-22 - A privacy policy that doesnt actively offend me
2004-03-22 - Why an object cannot be its own enumerator
2004-03-23 - -notation was never legal in HTTP URLs anyway
2004-03-23 - the qUirKY jaPan HomEPage
2004-03-24 - Out of the deep fryer
2004-03-24 - Some files come up strange in Notepad
2004-03-25 - Regular expressions and the dreaded operator
2004-03-25 - Swedish spicy food
2004-03-25 - The SAS in-flight safety video
2004-03-25 - URLs too small Here comes hugeurlcom
2004-03-26 - Yahoos privacy policy regarding web bugs
2004-03-27 - What US college students miss from home
2004-03-28 - You know youve been in Sweden too long when
2004-03-29 - Its embarrassing how little Swedish you need to know
2004-03-29 - The army is cool except for the part where you have to fight
2004-03-29 - Why CtrlAlt shouldnt be used as a shortcut modifier
2004-03-30 - Special skills draft on the drawing board
2004-03-30 - Where did my Task Manager tabs and buttons go
2004-03-31 - The look of Luna
2004-03-31 - When temperance backfires

The Old New Thing - 2004 04

2004-04-01 - The martial arts logon picture
2004-04-02 - Why a really large dictionary is not a good thing
2004-04-05 - How can I format my USB drive as NTFS
2004-04-06 - Reference counting is hard
2004-04-07 - A very brief anecdote about Windows 30
2004-04-08 - Where does the taskbar get grouped button titles from
2004-04-09 - A story about USB floppy drives
2004-04-09 - Comparing the Norwegian Swedish and Danish languages
2004-04-12 - Extraterrestrial income
2004-04-12 - The random number seed can be the weakest link
2004-04-13 - First thing we do is kill all the jerks
2004-04-13 - Unicode collation is hard
2004-04-14 - Not all short filenames contain a tilde
2004-04-14 - Playing on an entirely different level
2004-04-15 - Astonishingly rules apply to everyone
2004-04-15 - Why cant I install Windows on my USB drive
2004-04-16 - Mapping all those strange digits to 0 through 9
2004-04-16 - Sorry no free ice cream in Tennessee its illegal
2004-04-19 - A 2 billion bridge to one person
2004-04-19 - WM_KILLFOCUS is the wrong time to do field validation
2004-04-20 - Beethoven as ambient music
2004-04-20 - Why cant the system hibernate just one process
2004-04-21 - Good-Bye Lenin
2004-04-21 - Why the compiler cant autoconvert foreach to for
2004-04-22 - Cleaner more elegant and wrong
2004-04-22 - NFL cracks down on grandstanding
2004-04-23 - How to retrieve text under the cursor mouse pointer
2004-04-23 - News flash People are fooled by the Onion
2004-04-26 - In order to demonstrate our superior intellect we will now ask you a question you cannot answer
2004-04-26 - Musings on formal and informal address
2004-04-27 - Nobody said it was a democracy
2004-04-27 - Why doesnt C have const
2004-04-28 - What going to Sweden again
2004-04-28 - What is __purecall
2004-04-29 - 501 for 510g of peanut butter
2004-04-29 - Using the echo command to remember what you were doing
2004-04-30 - Extreme croquet
2004-04-30 - Where does the taskbar get grouped button icons from

The Old New Thing - 2004 05

2004-05-01 - You wanted Extreme Crochet
2004-05-03 - Today is Swedish tax day
2004-05-03 - Why does my hard drive light flash every few second
2004-05-04 - Is open source the new monoculture
2004-05-04 - Truckers block highway to protest high gas prices
2004-05-05 - Broadcasting user-defined messages
2004-05-05 - Dead man running
2004-05-06 - Chris Pratleys history lesson
2004-05-06 - Scripting is a two-edged sword
2004-05-06 - Why did InterlockedIncrementDecrement only return the sign of the result
2004-05-07 - Batman and Robin patrolling Whitley
2004-05-07 - Image File Execution Options
2004-05-07 - When should your destructor be virtual
2004-05-10 - A guide to British pub etiquette
2004-05-10 - There are two types of scrollbars
2004-05-11 - How do the FILE_SHARE_ bits interact with the desired access bits
2004-05-11 - Links about COM threading models
2004-05-12 - Is your web site an open relay
2004-05-12 - Varför läser jag svenska
2004-05-13 - Norway Pros and cons
2004-05-13 - Thinking through a feature
2004-05-14 - How did those FILE_SHARE_ values come to be
2004-05-14 - When do you disable an option and when do you remove it
2004-05-14 - Wholl be where for whom
2004-05-17 - Plane-spotters to require government license
2004-05-17 - When do you put after a button or menu
2004-05-18 - The coolest thing you can do with a Gameboy is not play a game on it
2004-05-19 - Beware the hash reset attack
2004-05-19 - Letterboxing Geocaching without the GPS
2004-05-20 - Coffee machine or assault weapon
2004-05-20 - Do you know when your destructors run Part 1
2004-05-21 - Do you know when your destructors run Part 2
2004-05-21 - You can do anything at zombocom anything at all
2004-05-24 - Callback the safety newsletter for the aviation community
2004-05-24 - Extending the Internet Explorer context menu
2004-05-25 - The Fderal Burau of Invstigations
2004-05-25 - When you change the insides nobody notices
2004-05-26 - Art too bad to be ignored
2004-05-26 - How does the desktop choose the icon label color
2004-05-27 - Meet Anton Chekhov
2004-05-27 - What is the difference between Minimize All and Show Desktop
2004-05-28 - High-performance multithreading is very hard
2004-05-28 - How do you undo Minimize All and Show Desktop
2004-05-28 - Kipping
2004-05-31 - Chewing gum legalized in Singapore
2004-05-31 - Why is the default 8-bit codepage called ANSI

The Old New Thing - 2004 06

2004-06-01 - French schoolchildren invited to draw their impressions of the United States
2004-06-01 - What does SHGFI_USEFILEATTRIBUTES mean
2004-06-02 - Letter carriers rebel
2004-06-02 - The dreaded main threading model
2004-06-03 - My first death threat
2004-06-03 - Need to add 15kg and 350g
2004-06-04 - An easy way to determine whether you have a particular file permission
2004-06-04 - Do not underestimate the power of the game Deer Hunter
2004-06-07 - Deleted but not yet forgotten
2004-06-07 - The suburbs make you fat more researchers conclude
2004-06-08 - Let there be a grand clubhouse feast
2004-06-08 - When can a thread receive window messages
2004-06-09 - Calculate the speed of light by microwaving marshmallows
2004-06-09 - What are these directories called 0409 and 1033
2004-06-10 - Did you know that Baltimore has a Rumor Control Center
2004-06-10 - Speeding up adding items to a combobox or listbox
2004-06-11 - A hidden performance cost of regional windows
2004-06-11 - Taiwan law requires writing to go left-to-right instead of top-to-bottom
2004-06-14 - Norway works to lengthen its lead
2004-06-14 - What is the difference between HINSTANCE and HMODULE
2004-06-15 - Augusto Pinochets beverage preferences are a matter of national security
2004-06-15 - What was the purpose of the hPrevInstance parameter to WinMain
2004-06-16 - Anybody remember Blade Squad or MV24
2004-06-16 - Verifying that your system files are digitally signed
2004-06-17 - Exploding frying pans
2004-06-17 - The evolution of dialog templates Introduction
2004-06-18 - The evolution of dialog templates 16-bit Classic Templates
2004-06-18 - Too late Mr Jenkins You were an F7 back at question 2
2004-06-18 - Tweaked comment policy
2004-06-21 - Drug dealers have to pay taxes too
2004-06-21 - The evolution of dialog templates 32-bit Classic Templates
2004-06-22 - The evolution of dialog templates 16-bit Extended Templates
2004-06-22 - When cafeteria pricing meets mathematics
2004-06-23 - The evolution of dialog templates 32-bit Extended Templates
2004-06-23 - The only way youre going to wake up next to Claudia Schiffer
2004-06-24 - At least its easier than learning Finnish
2004-06-24 - The evolution of dialog templates Summary
2004-06-25 - Hong Kong crocodile caught at last
2004-06-25 - Monitor giving you a headache Check the refresh rate
2004-06-25 - Suggestion box
2004-06-25 - The suggestion box is now open
2004-06-28 - Ringside seats at Fruit Fly Fight Club
2004-06-28 - When does SHLoadInProc unload a DLL
2004-06-29 - The difference between thread-safety and re-entrancy
2004-06-29 - You can already see the bug report that led to this dialog box
2004-06-30 - Fees disguised as taxes
2004-06-30 - Why does the Links folder keep re-creating itself

The Old New Thing - 2004 07

2004-07-01 - Whats this fascination with Germanic languages
2004-07-01 - Why cant I use the same tree item multiple times
2004-07-02 - Being in upper management must damage certain portions of your brain
2004-07-02 - Dont name your DLL Securitydll
2004-07-05 - Another chance to see Elvis take on a mummy
2004-07-05 - Whats the difference between SHGetMalloc SHAlloc CoGetMalloc and CoTaskMemAlloc
2004-07-06 - Diagnosing a problem with calling conventions
2004-07-06 - Differences between managers and programmers
2004-07-07 - Differences between managers and programmers part 2
2004-07-07 - Obtaining a windows size and position while it is minimized
2004-07-08 - Lighting organic material and sucking it into your lungs
2004-07-08 - Why does icon text get a solid background if drop shadows are disabled
2004-07-09 - How does AddRemove Programs get the size and other information
2004-07-12 - Positioned vs non-positioned listview views
2004-07-12 - Welcoming a new era in Swiss army knives
2004-07-13 - There are two things you can do if you have a mad crush on a boy
2004-07-13 - Watch out for those sample URLs
2004-07-14 - How do you detect Large Fonts
2004-07-15 - Dont forget to define UNICODE if you want Unicode
2004-07-15 - Why Under Construction should be made illegal on the web
2004-07-16 - How to display a string without those ugly boxes
2004-07-19 - Wrapper templates to make writing callback functions slightly easier
2004-07-20 - Querying information from an Explorer window
2004-07-21 - Why was nine the maximum number of monitors in Windows 98
2004-07-22 - Why cant you trap TerminateProcess
2004-07-23 - Why do some process stay in Task Manager after theyve been killed
2004-07-26 - A twenty-foot-long computer
2004-07-26 - Slightly closer to a proper football ie soccer match
2004-07-27 - Disabling the program crash dialog
2004-07-27 - Norway drunk on success becomes a country of layabouts
2004-07-28 - The evolution of mascara in Windows UI
2004-07-29 - When should you use a sunken client area
2004-07-30 - What is the DS_CONTROL style for

The Old New Thing - 2004 08

2004-08-02 - How to set focus in a dialog box
2004-08-02 - The company picnic sponsored by Microsoft
2004-08-04 - Never leave focus on a disabled control
2004-08-04 - Spammers look stupid when they dont read the blog they spam on
2004-08-04 - Why shared sections are a security hole
2004-08-05 - The oft-misunderstood 3GB switch
2004-08-06 - Kernel address space consequences of the 3GB switch
2004-08-09 - Myth Without 3GB the total amount of memory that can be allocated across all programs is 2GB
2004-08-10 - Myth Without 3GB a single program cant allocate more than 2GB of virtual memory
2004-08-11 - Myth You need 3GB if you have more than 2GB of physical memory
2004-08-12 - Myth The 3GB switch expands the user-mode address space of all programs
2004-08-13 - Why does Exchange recommend 3GB if you have more than 1GB of physical memory
2004-08-16 - Myth The 3GB switch lets me map one giant 3GB block of memory
2004-08-17 - Why is the virtual address space 4GB anyway
2004-08-18 - Myth PAE increases the virtual address space beyond 4GB
2004-08-18 - Why all these articles about PAE and 3GB
2004-08-19 - Myth In order to use AWE you must enable PAE
2004-08-20 - The curious interaction between PAE and NX
2004-08-20 - Writing your own menu-like window
2004-08-22 - Summary of the recent spate of 3GB articles
2004-08-23 - Finished competing in your event Let the games begin
2004-08-23 - The kooky STRRET structure
2004-08-24 - Beware of non-null-terminated registry strings
2004-08-25 - Why cant you treat a FILETIME as an __int64
2004-08-26 - Why do some structures end with an array of size 1
2004-08-27 - Importance of alignment even on x86 machines
2004-08-30 - Importance of alignment even on x86 machines part 2
2004-08-30 - The sociology of the mobile phone
2004-08-31 - Reading a contract from the other side Application publishers

The Old New Thing - 2004 09

2004-09-01 - How to find the Internet Explorer binary
2004-09-02 - Why does Windows keep your BIOS clock on local time
2004-09-03 - Even in computing simultaneity is relative
2004-09-06 - More dictionaries you didnt realize you needed
2004-09-06 - The shift key overrides NumLock
2004-09-07 - Converting a byte to a SystemString
2004-09-07 - What about Steve
2004-09-08 - Why is the page size on ia64 8KB
2004-09-09 - Why isnt the original window order always preserved when you undo a Show Desktop
2004-09-10 - Sometimes the bug isnt apparent until late in the game
2004-09-10 - Storsjöodjur hunting season will opening soon
2004-09-13 - How does Windows exploit hyperthreading
2004-09-14 - The x86 architecture is the weirdo
2004-09-15 - Interlocked operations dont solve everything
2004-09-16 - A_visual_history_of_spam_and_virus_email_-_The_Old_New_Thing
2004-09-16 - What happens when you specify RegexOptionsECMAScript
2004-09-17 - Why does my mousetouchpad sometimes go berzerk
2004-09-20 - How to host an IContextMenu part 1 Initial foray
2004-09-21 - Pitfalls in handling the WM_CONTEXTMENU message
2004-09-21 - Swedes struggle with the meaning of sick leave
2004-09-22 - How to contact Raymond
2004-09-22 - How to host an IContextMenu part 2 Displaying the context menu
2004-09-23 - How to host an IContextMenu part 3 Invocation location
2004-09-23 - Penguins do not fall over
2004-09-24 - How to host an IContextMenu part 4 Key context
2004-09-24 - The unrecognized assistants on those do-it-yourself shows
2004-09-27 - How to host an IContextMenu part 5 Handling menu messages
2004-09-28 - How to host an IContextMenu part 6 Displaying menu help
2004-09-29 - Still more goofy terms of service restrictions on information disclosure
2004-09-29 - What does boldface on a menu mean
2004-09-30 - How to host an IContextMenu part 7 Invoking the default verb

The Old New Thing - 2004 10

2004-10-01 - How to host an IContextMenu part 8 Optimizing for the default command
2004-10-04 - How to host an IContextMenu part 9 Adding custom commands
2004-10-04 - Those partisan non-partisan groups
2004-10-05 - The macros for declaring and implementing COM interfaces
2004-10-06 - How to host an IContextMenu part 10 Composite extensions groundwork
2004-10-07 - How to host an IContextMenu part 11 Composite extensions composition
2004-10-08 - Cooking for engineers
2004-10-08 - Why is there a separate GetSystemDirectory function
2004-10-11 - Whats the atom returned by RegisterClass useful for
2004-10-12 - People lie on surveys and focus groups often unwittingly
2004-10-13 - Dispatching items collected from the suggestion box
2004-10-14 - Little facts you didnt know about volcanoes
2004-10-14 - The procedure entry point SHCreateThreadRef could not be located
2004-10-15 - Logical consequences of the way Windows converts single-clicks into double-clicks
2004-10-18 - Implementing higher-order clicks
2004-10-19 - The compatibility constraints of even your internal bookkeeping
2004-10-20 - How does Explorer detect whether your program supports long file names
2004-10-21 - Let WMI do the heavy lifting of determining system information
2004-10-22 - Why doesnt Setup asks you if you want to keep newer versions of OS files
2004-10-25 - Accessing the current modules HINSTANCE from a static library
2004-10-25 - If the Euro 2004 tournament were a video game
2004-10-26 - The strangest way of detecting Windows NT
2004-10-27 - Sometimes you cant read the text under the cursor
2004-10-28 - Where did windows minimize to before the taskbar was invented
2004-10-29 - Why didnt the desktop window shrink to exclude the taskbar

The Old New Thing - 2004 11

2004-11-01 - What was the difference between LocalAlloc and GlobalAlloc
2004-11-02 - And to think they let me get away with it for five years
2004-11-02 - What was the point of the GMEM_SHARE flag
2004-11-03 - Why do I sometimes see redundant casts before casting to LPARAM
2004-11-04 - A history of GlobalLock part 1 The early years
2004-11-05 - A history of GlobalLock part 2 Selectors
2004-11-08 - A history of GlobalLock part 3 Transitioning to Win32
2004-11-08 - Ein hundert Dinge die in den Vereinigten Staaten besser bleiben
2004-11-09 - A history of GlobalLock part 4 A peek at the implementation
2004-11-10 - Why does Windows not recognize my USB device as the same device if I plug it into a different port
2004-11-11 - Advantages of knowing your x86 machine code
2004-11-12 - Will dragging a file result in a move or a copy
2004-11-15 - Asking questions where the answer is unreliable anyway
2004-11-16 - Exploiting the inattentive
2004-11-16 - What is this Xerox directory doing in Program Files
2004-11-17 - How do I break an integer into its component bytes
2004-11-17 - Poking at diploma mills Kennedy-Western University
2004-11-18 - Am I sorry or not
2004-11-18 - If a program and a folder have the same name the shell prefers the program
2004-11-19 - The various ways of sending a message
2004-11-22 - When people ask for security holes as features World-writable files
2004-11-23 - Why do folders like My Pictures come back after I delete them
2004-11-24 - Why cant you drop directly onto a taskbar button
2004-11-25 - A sample of desktop icon text effects
2004-11-26 - Simple things you can do with the ShellExecuteEx function
2004-11-29 - Why doesnt the RunAs program accept a password on the command line
2004-11-30 - Whats the difference between GetKeyState and GetAsyncKeyState

The Old New Thing - 2004 12

2004-12-01 - What is the purpose of the bmPlanes member of the BITMAP structure
2004-12-02 - Why did Windows 95 run the timer at 55ms
2004-12-03 - Why are documents printed out of order when you multiselect and choose Print
2004-12-06 - Dragging a shell object part 1 Getting the IDataObject
2004-12-07 - Dragging a shell object part 2 Enabling the Move operation
2004-12-07 - Researchers find connection between lack of sleep and weight gain
2004-12-08 - Dragging a shell object part 3 Detecting an optimized move
2004-12-08 - It is not illegal to use James Bond style tactics for winning at the roulette wheel
2004-12-09 - Dragging a shell object part 4 Adding a prettier drag icon
2004-12-09 - Time to dust off your conspiracy theories
2004-12-10 - Dragging a shell object part 5 Making somebody else do the heavy lifting
2004-12-10 - For all your chicken sequencing needs
2004-12-13 - Tintin goes to the neurologist
2004-12-13 - Why do I get E_NOINTERFACE when creating an object that supports that interface
2004-12-14 - Scientists come one step closer to the perfect poppy-seed bagel
2004-12-14 - Why do dialog editors start assigning control IDs with 100
2004-12-15 - The hunt for a faster syscall trap
2004-12-15 - This Game Boy wont hurt a bit just help the Powerpuff Girls count backwards from ten
2004-12-16 - How to get more hits on Google than even Steve Ballmer
2004-12-16 - Optimization is often counter-intuitive
2004-12-17 - Excellent blog about Windows and Unicode
2004-12-17 - How did Windows 95 rebase DLLs
2004-12-20 - Dont save anything you can recalculate
2004-12-21 - Sometimes people dont like it when you enforce a standard
2004-12-22 - BOOL vs VARIANT_BOOL vs BOOLEAN vs bool
2004-12-23 - Do you need clean up one-shot timers
2004-12-24 - How to open those plastic packages of electronics without injuring yourself
2004-12-24 - Why does the system convert TEMP to a short file name
2004-12-27 - Alton Brown book tour 2005 Im Just Here for More Food
2004-12-27 - You can create an infinitely recursive directory tree
2004-12-28 - Computing the size of a directory is more than just adding file sizes
2004-12-29 - Using fibers to simplify enumerators part 1 When life is easier for the enumerator
2004-12-30 - Using fibers to simplify enumerators part 2 When life is easier for the caller
2004-12-31 - Using fibers to simplify enumerators part 3 Having it both ways

The Old New Thing - 2005 01

2005-01-03 - Using fibers to simplify enumerators part 4 Filtering
2005-01-04 - Using fibers to simplify enumerators part 5 Composition
2005-01-05 - PulseEvent is fundamentally flawed
2005-01-05 - You dont need to run away from home to join the circus
2005-01-06 - A rant against flow control macros
2005-01-07 - How can code that tries to prevent a buffer overflow end up causing one
2005-01-10 - Seattle Snowstorm 2005 insert swooshy sound effect
2005-01-10 - Taskbar notification balloon tips dont penalize you for being away from the keyboard
2005-01-11 - Marriage as a cross-branding opportunity
2005-01-11 - Why doesnt autocomplete to all the computers on the network
2005-01-12 - User interface design for vending machines
2005-01-13 - User interface design for interior door locks
2005-01-13 - User interface design for vending machines answer to puzzle
2005-01-14 - Cleaner more elegant and harder to recognize
2005-01-17 - How did MS-DOS report error codes
2005-01-18 - The importance of error code backwards compatibility
2005-01-19 - CreateProcess does not wait for the process to start
2005-01-20 - A 90-byte whereis program
2005-01-20 - Hyperlinking to Hutchison Whampoa Limited forbidden
2005-01-21 - Why are kernel HANDLEs always a multiple of four
2005-01-24 - Alton Brown book appearance report
2005-01-24 - Bringing cryptic command lines to Windows
2005-01-25 - Why do files and directories with no timedate mess up sorting in Explorer
2005-01-26 - The strangest way of rounding down to the nearest quarter
2005-01-27 - Control how much network bandwith Automatic Updates will use
2005-01-28 - Capturing the current directory from a batch file
2005-01-31 - Why did the Win64 team choose the LLP64 model

The Old New Thing - 2005 03

2005-03-01 - Modality part 7 A timed MessageBox the cheap version
2005-03-01 - Suggestion Box 2
2005-03-02 - Curling proves itself much more exciting than hockey this year
2005-03-02 - The scratch window
2005-03-03 - Raymonds random walk from Swedish designers to Mr Monkey
2005-03-03 - The bonus window bytes at GWLP_USERDATA
2005-03-04 - Modality part 8 A timed MessageBox the better version
2005-03-07 - A timed context menu
2005-03-08 - Keep your eye on the code page
2005-03-09 - Using SystemParametersInfo to access user interface settings
2005-03-10 - Why does SystemParametersInfo hang when I pass the SPIF_SENDCHANGE flag
2005-03-11 - Performance gains at the cost of other components
2005-03-11 - VegFest 2005 this weekend and vegetarian is as vegetarian does
2005-03-14 - A subtlety in restoring previous window position
2005-03-14 - Dot-Con Job How InfoSpace took its investors for a ride
2005-03-15 - Windows are not cheap objects
2005-03-16 - The great Alaskan ice sculpture
2005-03-16 - Windows NT Security in Theory and Practice
2005-03-17 - Competing to be the worst-dressed couple in America
2005-03-17 - Your exception handler can encounter an exception
2005-03-18 - Confusion over whether you have Windows XP SP1 or SP2
2005-03-21 - Psychic debugging Why your expensive four-processor machine is ignoring three of its processors
2005-03-22 - Why does the debugger show me the wrong function
2005-03-23 - Why does the debugger show me the wrong virtual function
2005-03-24 - Pointers to virtual functions with adjustors
2005-03-25 - If you disable dragdrop on the Start menu you also disable right-click
2005-03-25 - The invisible price reduction
2005-03-28 - The CEO-to-English Phrase Book a continuing series from Slate
2005-03-28 - When a program asks you a question and then gets upset if you answer it
2005-03-29 - Adventures in product testing Candles that catch fire
2005-03-29 - The dialog manager part 1 Warm-ups
2005-03-30 - The dialog manager part 2 Creating the frame window
2005-03-31 - Neuroscience in the service of basketball fans
2005-03-31 - The dialog manager part 3 Creating the controls

The Old New Thing - 2005 04

2005-04-01 - The dialog manager part 4 The dialog loop
2005-04-04 - The dialog manager part 5 Converting a non-modal dialog box to modal
2005-04-05 - The dialog manager part 6 Subtleties in message loops
2005-04-06 - The dialog manager part 7 More subtleties in message loops
2005-04-07 - The dialog manager part 8 Custom navigation in dialog boxes
2005-04-08 - The dialog manager part 9 Custom accelerators in dialog boxes
2005-04-11 - The end of one of the oldest computers at Microsoft still doing useful work
2005-04-12 - Theres an awful lot of overclocking out there
2005-04-13 - Using the powers of mathematics to simplify multi-level comparisons
2005-04-14 - Computing the interval between two moments in time
2005-04-15 - News flash Everybody has to pay income tax
2005-04-15 - Tweaking our computation of the interval between two moments in time
2005-04-18 - Project update Voyage to Our Hollow Earth
2005-04-18 - What is the HINSTANCE passed to CreateWindow and RegisterClass used for
2005-04-19 - When people ask for security holes as features Hiding files from Explorer
2005-04-20 - What is the DC brush good for
2005-04-21 - Swedens Worst Driver
2005-04-21 - The Itaniums so-called stack
2005-04-22 - The new scratch program
2005-04-25 - Welcome to Millennium Tower due for completion in May 2005
2005-04-25 - What is the HINSTANCE passed to SetWindowsHookEx used for
2005-04-26 - If you pull a 1920s fire extinguisher out of the ocean for petes sake dont drink it
2005-04-26 - Thread messages are eaten by modal loops
2005-04-27 - Watching thread messages disappear
2005-04-28 - Rescuing thread messages from modal loops via message filters
2005-04-29 - Building a dialog template at run-time

The Old New Thing - 2005 05

2005-05-02 - Another dead computer My personal laptop
2005-05-03 - Managing the UI state of accelerators and focus rectangles
2005-05-04 - When people ask for security holes as features Stealing passwords
2005-05-05 - How do I cover the taskbar with a fullscreen window
2005-05-06 - How to query properties of the taskbar
2005-05-09 - Developing a ChineseEnglish dictionary Introduction
2005-05-10 - Loading the dictionary part 1 Starting point
2005-05-11 - Loading the dictionary part 2 Character conversion
2005-05-12 - The Microsoft corporate network 17 times worse than hell
2005-05-13 - Loading the dictionary part 3 Breaking the text into lines
2005-05-16 - Loading the dictionary part 4 Character conversion redux
2005-05-17 - You cant escape those AOL CDs
2005-05-18 - Loading the dictionary part 5 Avoiding string copying
2005-05-19 - Loading the dictionary part 6 Taking advantage of our memory allocation pattern
2005-05-20 - Id like to register my stolen car please
2005-05-20 - When is a window visible yet not visible
2005-05-23 - Why are DLLs unloaded in the wrong order
2005-05-24 - Boil first then mash
2005-05-24 - Understanding ternary raster operations
2005-05-25 - The effect of SetCursor lasts only until the next SetCursor
2005-05-26 - Why does Add or Remove Programs show a large blank space
2005-05-27 - When is x2 different from xgtgt1
2005-05-30 - Shocked shocked that patronage exists in Chicago politics
2005-05-30 - You cant simulate keyboard input with PostMessage
2005-05-31 - Using modular arithmetic to avoid timing overflow problems

The Old New Thing - 2005 06

2005-06-01 - Using LARGEADDRESSAWARE on 64-bit Windows for 32-bit programs
2005-06-01 - Why dont you ever see a rat vomiting
2005-06-02 - If strncpy is so dangerous why does Visual Studio 2005 still support it
2005-06-02 - The 2005 Seattle Chicken Tour
2005-06-03 - Why does Windows XP SP2 sometimes forget my CD autoplay settings
2005-06-06 - A quick puzzle about security and synchronization
2005-06-06 - Adam Felber teaches us how to avoid setting off motion detectors
2005-06-07 - Answer to quick puzzle about security and synchronization
2005-06-07 - What if two programs did this
2005-06-08 - Can you trust the Man on the Street interview
2005-06-08 - Why dont control panel programs and property sheets show up in the taskbar
2005-06-09 - Why cant the default dragdrop behavior be changed
2005-06-10 - Maintaining high standards at the International Frederic Chopin Piano Competition
2005-06-10 - Why does Explorer eject the CD after you finish burning it
2005-06-13 - Displaying the dictionary part 1 Naive version
2005-06-13 - Seattle International Juggling Festival 2005
2005-06-14 - Displaying the dictionary part 2 Using text callbacks
2005-06-15 - Displaying the dictionary part 3 Using an owner-data listview
2005-06-16 - What is the difference between Unpin from Start menu and Remove from this list
2005-06-17 - Is there ever such a thing as a good letter from the IRS
2005-06-17 - Why do NTFS and Explorer disagree on filename sorting
2005-06-20 - Perhaps this is what airport security is worried about
2005-06-20 - Whats the difference between autocomplete and dropdown history
2005-06-21 - Google is the cute two-year-old girl with curly blond hair that gets all the attention
2005-06-21 - The DateTime control panel is not a calendar
2005-06-22 - Ill see some of you in Los Angeles in September
2005-06-22 - Why does the Run dialog autocorrect but not the Run key
2005-06-23 - Why does the CreateProcess function do autocorrection
2005-06-24 - Why cant I get the pixels of a window that isnt visible on screen
2005-06-27 - Why are there broadcast-based mechanisms in Windows
2005-06-28 - Drink at work The blog of a cartoonist
2005-06-28 - Why do Microsoft code samples tend to use ZeroMemory instead of 0
2005-06-29 - A simple story in pictures
2005-06-29 - Why isnt Windows Setup just a disk reimage plus a registry dump
2005-06-30 - Beware of roaming user profiles

The Old New Thing - 2005 07

2005-07-01 - I hope you werent using those undocumented critical section fields
2005-07-01 - Whats the difference between My Documents and Application Data
2005-07-04 - Some holiday fun Puzzle 1
2005-07-04 - Some holiday fun Puzzle 2
2005-07-04 - Some holiday fun Puzzle 3
2005-07-04 - Some holiday fun Puzzle 4
2005-07-04 - Some holiday fun Puzzle 5
2005-07-04 - Some holiday fun Puzzle 6
2005-07-04 - Some holiday fun Puzzle supplementary material
2005-07-05 - Answers to yesterdays holiday fun puzzles
2005-07-05 - Using script to query information from Internet Explorer windows
2005-07-06 - Whats the point of DeferWindowPos
2005-07-07 - What are SYSTEM_FONT and DEFAULT_GUI_FONT
2005-07-07 - What struck me about life in the Republic
2005-07-08 - How can I recover the dialog resource ID from a dialog window handle
2005-07-08 - The best book on ActiveX programming ever written
2005-07-11 - Converting from traditional to simplified Chinese part 1 Loading the dictionary
2005-07-12 - Converting from traditional to simplified Chinese part 2 Using the dictionary
2005-07-13 - Converting from traditional to simplified Chinese part 3 Highlighting differences
2005-07-14 - When Marketing edits your PDC talk description
2005-07-14 - Where did the names of the computer Hearts opponents come from
2005-07-15 - The apocryphal history of file system tunnelling
2005-07-18 - If InitCommonControls doesnt do anything why do you have to call it
2005-07-18 - Watching the game of Telephone play out on the Internet
2005-07-19 - What is the deal with the ES_OEMCONVERT flag
2005-07-20 - The Northwest Mahler Festival performs Mahlers Second Symphony Resurrection
2005-07-20 - Why does FindFirstFile find short names
2005-07-21 - FindFirstFile is not a SQL query
2005-07-21 - News flash Going for a walk on a nice day makes you feel better
2005-07-22 - Marin Alsop to be music director of the Baltimore Symphony Orchestra
2005-07-22 - The importance of passing the WT_EXECUTELONGFUNCTION flag to QueueUserWorkItem
2005-07-25 - Dinner at the Herbfarm in Woodinville
2005-07-25 - On paying for your meal upon leaving a restaurant
2005-07-26 - What is the difference between WM_DESTROY and WM_NCDESTROY
2005-07-27 - When the normal window destruction messages are thrown for a loop
2005-07-28 - What is this web site thing you are talking about
2005-07-29 - Does Windows have a limit of 2000 threads per process

The Old New Thing - 2005 08

2005-08-01 - Microsoft Company Picnic 2005
2005-08-01 - Rendering standard Windows elements
2005-08-02 - Rendering menu glyphs is slightly trickier
2005-08-03 - Drawing a monochrome bitmap with transparency
2005-08-03 - Watch out there are Swedes in the hallway
2005-08-04 - Double-clicking radio buttons
2005-08-04 - On speaking a particular language in the presence of non-speakers
2005-08-05 - Have you made any assignments in this space
2005-08-05 - Why does the Internet Explorer animated logo arrange its frame vertically
2005-08-08 - Hey who flattened the hills
2005-08-08 - The dangers of playing focus games when handling a WM_KILLFOCUS message
2005-08-09 - The dangers of messing with activation when handling a WM_ACTIVATE message
2005-08-10 - How can a company get access to Windows Error Reporting data
2005-08-10 - Why is Windows Error Reporting nicknamed Dr Watson
2005-08-11 - Adding a lookup control to the dictionary Just getting it on the screen
2005-08-11 - Whatever you do dont ask for coffee
2005-08-12 - Adding a lookup control to the dictionary Searching Pinyin
2005-08-15 - On being attacked by a sidewalk
2005-08-15 - The poor mans way of identifying memory leaks
2005-08-16 - When people ask for security holes as features Silent install of uncertified drivers
2005-08-17 - What Ill be doing at this years PDC
2005-08-17 - Why is processor affinity inherited by child processes
2005-08-18 - Lets just make up some dollar values and print them as fact
2005-08-18 - What are the access rights and privileges that control changing ownership of an object
2005-08-19 - How many floppy disks did Windows 95 come on
2005-08-19 - Justifiable assault with folding chair
2005-08-19 - This might be for real even though it comes out at 7am
2005-08-22 - How do you convince developers to pay their taxes
2005-08-23 - Why are icons multiples of 8 pixels in width
2005-08-24 - A ticket to the Windows 95 launch
2005-08-24 - Buying an entire Egghead Software store
2005-08-24 - Marymoor Park summer movie series 2005 is nearly over
2005-08-25 - Windows 95 crashes a cash register
2005-08-26 - Free bicycles to borrow at Marymoor Park
2005-08-26 - If you squint you might be able to make out my name
2005-08-29 - What program did you get Danny
2005-08-29 - Why is the default console codepage called OEM
2005-08-30 - On the adult appeal of dodgeball
2005-08-30 - Program names in file type handlers need to be fully-qualified
2005-08-31 - Hoping the worst-case scenario doesnt come to pass
2005-08-31 - Understanding hash codes

The Old New Thing - 2005 09

2005-09-01 - More undocumented behavior and the people who rely on it Output buffers
2005-09-02 - Precision is not the same as accuracy
2005-09-05 - Spider Solitaire unseats the reigning champion
2005-09-06 - Windows Server 2003 can take you back in time
2005-09-07 - Declared unsuitable for minors in Australia Sort of
2005-09-07 - Why arent low-level hooks injected
2005-09-08 - I wont be signing books but dont let that stop you
2005-09-08 - Why does the function WSASetLastError exist
2005-09-09 - Reading the output of a command from batch
2005-09-12 - Richard E Grant as Dr Who
2005-09-12 - Understanding the consequences of WAIT_ABANDONED
2005-09-13 - Annoying renditions of the songs of Elvis
2005-09-13 - Sorry I missed you all this morning
2005-09-13 - Why is there no all-encompassing superset version of Windows
2005-09-14 - Like an invention out of Harry Potter except that Harrys would use a quill
2005-09-14 - The double-CtrlAltDel feature is really a kludge
2005-09-14 - Typo patrol at the PDC
2005-09-15 - Fiddling with the fonts part 1 Making the Chinese characters larger
2005-09-16 - Fiddling with the fonts part 2 Keeping the English font small
2005-09-19 - Corrections to the answers I gave at the end of my PDC talk
2005-09-19 - Why doesnt Microsoft give every employee a UPS
2005-09-20 - Please disconnect all cell phones signal watches and pagers
2005-09-20 - Things to do at Microsoft when the power goes out
2005-09-21 - Blackout humor at the 2005 PDC
2005-09-21 - Giving fair warning before plugging in your computer
2005-09-22 - Coming to the completely opposite conclusion on Windows versions
2005-09-22 - Contradictory feedback from my 2005 PDC talk
2005-09-23 - Ten things I noticed at the 2005 PDC
2005-09-23 - The Double-E Half Hour of Pain
2005-09-25 - This is an unsupported ride so if you stop you will fall over
2005-09-26 - Kurt would have wanted it that way
2005-09-26 - Raymonds 2005 MVP Global Summit event diary
2005-09-27 - COM object destructors are very sensitive functions
2005-09-28 - Avoiding double-destruction when an object is released
2005-09-29 - On objects with a reference count of zero
2005-09-29 - The DHS television show was all a scam it appears
2005-09-30 - But I have Visual Basic Professional
2005-09-30 - English Cut Bringing bespoke tailoring into the general consciousness
2005-09-30 - The reverse-engineering of PDC 2005 pass colors

The Old New Thing - 2005 10

2005-10-03 - Consequences of the scheduling algorithm Low priority threads can run even when higher priority threa
2005-10-03 - Perhaps I like the phrase withered hand a bit too much
2005-10-04 - Consequences of the scheduling algorithm Sleeping doesnt always help
2005-10-04 - Katamari Damacy The most screwed-up video game ever
2005-10-05 - My history of time is briefer than yours
2005-10-05 - Running old programs in a virtual machine doesnt necessarily create a good user experience
2005-10-06 - Jensen Harris joins the 7am club
2005-10-06 - The unfortunate interaction between LOAD_LIBRARY_AS_DATAFILE and DialogBox
2005-10-07 - On the dangers of sharing your apartment
2005-10-07 - Your profiling tools can manufacture performance issues where there were none
2005-10-10 - Thread affinity of user interface objects part 1 Window handles
2005-10-11 - New blog on integrating Groove with Office
2005-10-11 - Thread affinity of user interface objects part 2 Device contexts
2005-10-12 - Newark Liberty International Airport Terminal A travel tips
2005-10-12 - Thread affinity of user interface objects part 3 Menus icons cursors and accelerator tables
2005-10-13 - Make money working at home in your pajamas and its completely legal
2005-10-13 - Thread affinity of user interface objects part 4 GDI objects and other notes on affinity
2005-10-14 - The history of the path separator in Japanese and Korean Windows
2005-10-14 - Thread affinity of user interface objects part 5 Object clean-up
2005-10-17 - The undeletable Outlook folder
2005-10-18 - Answering the phone a classic rookie mistake
2005-10-18 - Be careful what you name your product group
2005-10-19 - Follow-up Portsmouth Spinnaker Tower now open but maybe you should take the stairs
2005-10-19 - Theres something about Rat Poker
2005-10-20 - Quick and dirty buzzword bingo cards in Excel
2005-10-20 - The things in the PDC 2005 introductory video
2005-10-21 - Why is it even possible to disable the desktop anyway
2005-10-24 - Fair Isle Knitters Wanted
2005-10-24 - New device detected Boeing 747
2005-10-25 - Its like being at the PDC but without the lines or the tote bag
2005-10-25 - One persons discoverable feature is another persons annoyance
2005-10-25 - Seattle Twenty-Five for 25 November 2005 restaurant list is available
2005-10-26 - PC Magazine interviews the team behind Windows on its twentieth birthday
2005-10-26 - When programs assume that the system will never change episode 1
2005-10-27 - Why is the OEM code page often called ANSI
2005-10-27 - Without a doubt the worlds worst online Swedish lessons
2005-10-28 - Even in the enlightened year of 2005 we have programs that dont handle long file names
2005-10-28 - How to recognize different types of sentinel timestamps from quite a long way away
2005-10-31 - Night of the Knitting Dead
2005-10-31 - The Halloween-themed lobby

The Old New Thing - 2005 11

2005-11-01 - Bicycling from Mercer Island to Microsoft main campus
2005-11-01 - The COM interface contract rules exist for a reason
2005-11-01 - Välkommen till Saerige
2005-11-02 - Blog design as a form of reality programming
2005-11-02 - Found blog The Piehole
2005-11-02 - Why is inline autocomplete disabled by default
2005-11-03 - Look what the hurricanes blew into Lafayette LA
2005-11-03 - To be a leader you must know when to follow
2005-11-04 - Its not a book but its slightly closer
2005-11-04 - Why is there a special PostQuitMessage function
2005-11-07 - Take it easy on the automatic retries
2005-11-08 - Hiding from the police Try knitting a sweater
2005-11-08 - Why was GlobalWire called GlobalWire
2005-11-09 - Content owners need to review the designer art too
2005-11-09 - The psychology of naming your internal distribution lists
2005-11-10 - The etymology of the word traffic light
2005-11-10 - When was the last time you formatted a floppy disk
2005-11-11 - I just have a plain standard-issue guest chair
2005-11-14 - Raymonds review of Pride and Prejudice Keira Knightley version
2005-11-14 - What was Dr Watsons original name
2005-11-15 - In real life nobody upgrades their server
2005-11-16 - Another Schadenfreude-filled look back at the dot-com zaniness
2005-11-16 - Sampling every flavor of dogfood in the store
2005-11-17 - Force-feeding the dogfood
2005-11-17 - I didnt see Stephen Hawking in Seattle yesterday
2005-11-18 - Mini-conversations at the stoplight during the bicycle commute
2005-11-18 - What does the word supported mean
2005-11-21 - Whats the difference between HWND_TOP and HWND_TOPMOST
2005-11-22 - The worlds worst celebrity recasting of the American version of Harry Potter
2005-11-22 - Why is a drive letter permitted in front of UNC paths sometimes
2005-11-23 - Semaphores dont have owners
2005-11-24 - What causes a program to be marked as new on the Start menu
2005-11-25 - How to get Raymond to stop being interested in talking with you
2005-11-25 - This video universally gets one of two reactions
2005-11-28 - Taxes Hierarchical Storage Management
2005-11-28 - Where does an IT guy from a major hotel chain stay at the PDC
2005-11-29 - Taxes Geopolitics
2005-11-29 - The craft of UI design flowstate
2005-11-30 - Sometimes the fault is not in our stars but in ourselves
2005-11-30 - The Airline Screening Playset

The Old New Thing - 2005 12

2005-12-01 - What one Windows XP feature am I most proud of
2005-12-02 - Derren Browns tips on being a psychic
2005-12-02 - Psychic debugging Why your CPU usage is hovering at 50
2005-12-05 - Its always a good idea to check your sources
2005-12-05 - Using floppy disks as semaphore tokens
2005-12-06 - Humanitys greatest invention according to seventh grade students
2005-12-06 - When a token changes its meaning mid-stream
2005-12-07 - Rory Blyth explains the difference between 720p and 1080i
2005-12-07 - Whimsical embarrassment as a gentle form of reprimand
2005-12-08 - The not-entirely-unwitting victims of the Daily Show interview
2005-12-08 - Using a physical object as a reminder
2005-12-09 - On the inability to support hardware that nobody makes any more
2005-12-12 - Experiencing the world from flight level 210
2005-12-12 - Your debugging code can be a security hole
2005-12-13 - We Microsoft bloggers do talk to each other occasionally yknow
2005-12-14 - On the ambiguity of uniqueness
2005-12-14 - Whole lotta cranking going on
2005-12-15 - A note to headhunters Check your links
2005-12-15 - You probably dont want to run programs directly off your USB memory drive
2005-12-16 - The Dead Sea Scrolls are coming to Seattle
2005-12-16 - When hyperthreading is enabled all the processors are virtual
2005-12-19 - Beware the Image File Execution Options key
2005-12-19 - Music to slip into a playlist to see if anybody is listening
2005-12-20 - Pro forma was so 1990s
2005-12-20 - Why does Windows setup lay down a new boot sector
2005-12-21 - The office disco party
2005-12-22 - Why do up-down controls have the arrows backwards
2005-12-23 - On the Days without a pony web page

The Old New Thing - 2006 01

2006-01-03 - 2005 end-of-year link blowout sale
2006-01-03 - If one certification is good more must be better
2006-01-03 - On the abuse of properties
2006-01-03 - Taxes Remote Desktop Connection and painting
2006-01-03 - The worlds slowest RET instruction
2006-01-03 - Theres more to calling a function than just getting the types to match
2006-01-03 - Why did the Windows 95 CD have extra fun stuff
2006-01-04 - Dont underestimate the resourcefulness of people trying to be annoying
2006-01-04 - Taxes Detecting session state changes such as a locked workstation
2006-01-05 - Converting between LCIDs and RFC 1766 language codes
2006-01-05 - The first rule about knit club
2006-01-06 - Where do call signs come from
2006-01-06 - Why do image lists and tool bars use horizontal strips if vertical is so much better
2006-01-09 - Beware the MSJ subscription scam
2006-01-09 - When programs assume that the system will never change episode 3
2006-01-10 - The decoy display control panel
2006-01-11 - The decoy visual style
2006-01-12 - When web sites rely on security holes
2006-01-13 - France she is how you say on sale
2006-01-13 - Why do words beginning with home get treated as URLs
2006-01-16 - At least theres a funny side to spam
2006-01-16 - Understanding what things mean in context Dispatch interfaces
2006-01-17 - ReadProcessMemory is not a preferred IPC mechanism
2006-01-18 - From Doom to Gloom The story of a video game
2006-01-18 - The cost of trying too hard Splay trees
2006-01-19 - How air conditioning revolutionized competitive bicycling
2006-01-19 - The cost of trying too hard String searching
2006-01-20 - The vtable does not always go at the start of the object
2006-01-23 - If your callback fails its your responsibility to set the error code
2006-01-23 - There are two types of rebates and you need to be on the alert
2006-01-24 - Creepy messages in your baggage
2006-01-24 - Performance consequences of polling
2006-01-25 - Welcome to the United States unless youre a Canadian technologist who is an invited guest at a Micros
2006-01-25 - You can call MsgWaitForMultipleObjects with zero handles
2006-01-26 - Pumping messages while waiting for a period of time
2006-01-26 - Stephen Tolouses reminiscences of Windows 95 RTM day
2006-01-27 - Waiting for all handles with MsgWaitForMultipleObjects is a bug waiting to happen
2006-01-30 - Liquefied NBA points apparently cannot be sold on eBay
2006-01-30 - Why does a corrupted binary sometimes result in Program too big to fit in memory
2006-01-31 - I attack the kobold wearing the headdress made of human ears
2006-01-31 - Why does the Recycle Bin have different file system names on FAT and NTFS

The Old New Thing - 2006 02

2006-02-01 - The military marriage of convenience
2006-02-01 - The per-class window styles and things really are per-class
2006-02-02 - Be careful when interpreting security descriptors across machine boundaries
2006-02-02 - The pornography of food
2006-02-03 - Mysterious things Steve Yi has eaten
2006-02-03 - You cant even trust the identity of the calling executable
2006-02-06 - Beware of redirected folders too
2006-02-06 - You know youre in trouble when your channel loses to dead air
2006-02-07 - Apparently I cant take myself anywhere
2006-02-07 - Viewing function composition as transformation of the domain
2006-02-08 - Comparing writing specifications to writing code
2006-02-09 - Shifting from program management to programming also affects your social life
2006-02-10 - The dangers of sleeping on a UI thread
2006-02-13 - Thats just super and a note on baking
2006-02-14 - Other things people do with beta versions of the operating system
2006-02-14 - Studs from Microsoft
2006-02-15 - Recycling old PCs and cell phones
2006-02-15 - The symmetric in symmetric multiprocessing really means symmetric
2006-02-16 - Because programmers were trusted to do the right thing part 2
2006-02-17 - Diving into kernel mode with Doron
2006-02-17 - Not all team integrations go smoothly
2006-02-20 - How the study of languages influences ones appreciation of international competition
2006-02-20 - Why does my program run faster if I click and hold the caption bar
2006-02-21 - In pursuit of Michael Cassini the king of con
2006-02-21 - In pursuit of the message queue
2006-02-22 - Games give you hand-eye coordination and spatial intelligence together with map-reading skills
2006-02-22 - The performance cost of reading a registry key
2006-02-23 - Enumerating threads in a process
2006-02-23 - That 9 you got from the PayPal settlement Taxable income
2006-02-24 - The Top Gear Winter Olympics 2006
2006-02-24 - Why cant I disable the Cancel button in a wizard
2006-02-27 - Changing a window class affects all windows which belong to that class
2006-02-27 - Ry Jones seems particularly amused by things Ive written
2006-02-28 - Raymond you so write like a girl

The Old New Thing - 2006 03

2006-03-01 - Keep your eye on the code page practical exam
2006-03-02 - Martha Martha Martha
2006-03-02 - Restating the obvious about the WM_COMMAND message
2006-03-03 - The peculiar appeal of the Baseball Uncyclopedia
2006-03-03 - Very late remarks on the original Chinese dictionary series
2006-03-06 - Other things happen for a reason too
2006-03-06 - The ForceAutoLogon setting doesnt do what most people think
2006-03-07 - Raymond you even pose like a girl
2006-03-07 - The consequences of invalidating the null window
2006-03-08 - Reading the fine print episode 2 Portable headphones
2006-03-08 - Why is there no message for disabling the Cancel button on a wizard
2006-03-09 - If you ask for a window caption you also get a border
2006-03-09 - Reading the fine print episode 3 Whats in the bottle
2006-03-10 - Betsys interview tip Wear pants
2006-03-10 - Why does the size of a combo box include the size of the drop-down
2006-03-13 - A thread waiting on a synchronization object could be caught napping
2006-03-13 - The social skills of a thermonuclear device part 2
2006-03-14 - Controlling resource consumption by meting out work items
2006-03-14 - Top ten things to do to make your application a Vista application
2006-03-15 - Das Buch der verrückten Experimente
2006-03-15 - On the fuzzy definition of a Unicode application
2006-03-16 - Really college athletics is about education not
2006-03-16 - Why does the version 6 animation control not use a background thread
2006-03-17 - Raymonds highly scientific predictions for the 2006 NCAA mens basketball tournament
2006-03-17 - You never know until you test it with real users
2006-03-20 - Basic ground rules for programming function parameters and how they are used
2006-03-21 - On the alert for expired food-handling licenses
2006-03-21 - Why doesnt Windows File Protection use ACLs to protect files
2006-03-22 - Make sure to handle carcinogens safely before inhaling a different carcinogen
2006-03-22 - Solving one problem by creating a bigger problem
2006-03-23 - Before you develop a solution make sure you really understand the problem
2006-03-23 - Where technology names came from WiFi and FireWire
2006-03-24 - The simplified office
2006-03-27 - Public service announcement for Roman Catholics Sunday is not a fast day
2006-03-27 - Why doesnt the window manager just take over behavior that used to be within the applications purview
2006-03-28 - The rise and fall of the German language
2006-03-28 - Why are there two copies of Notepad
2006-03-29 - Inadvertently passing large objects by value
2006-03-30 - Diese Briefe wurden von unserem chinesischen Freund übersetzt
2006-03-30 - How would you solve this compatibility problem Network interoperability
2006-03-31 - The network interoperability compatibility problem first follow-up of many

The Old New Thing - 2006 04

2006-04-03 - Doing the best we can until time travel has been perfected
2006-04-03 - What seventh-grade students want to be when they grow up
2006-04-04 - German adjectives really arent that hard they just look that way
2006-04-04 - Spamming the event log doesnt make things any better
2006-04-05 - Adding flags to APIs to work around driver bugs doesnt scale
2006-04-05 - USER and GDI compatibility in Windows Vista
2006-04-06 - Its more efficient when you buy in bulk
2006-04-06 - Sometimes you just have to make a snap decision
2006-04-07 - Computing over a high-latency network means you have to bulk up
2006-04-07 - News for dummies now available in podcast form
2006-04-10 - Be very careful if you decide to change the rules after the game has ended
2006-04-10 - Youd think itd be easy to give away a ticket to the symphony
2006-04-11 - Whats the deal with the house in front of Microsofts RedWest campus
2006-04-12 - News for dummies in French and English
2006-04-12 - Why is the Microsoft Protection Service called msmpsvc
2006-04-13 - Chain tax preparers do not fare well in undercover investigation
2006-04-13 - Where did the name for Microsoft Access come from
2006-04-14 - Where did startcom get its name
2006-04-17 - Locale-sensitive number grouping
2006-04-17 - Merchandise your food with pride
2006-04-18 - How to fill in that number grouping member of NUMBERFMT
2006-04-18 - Maybe you dont sound like Carl Kasell but you can have his job
2006-04-19 - Adding a new flag to enable behavior that previously was on by default
2006-04-19 - The 20062007 Seattle Symphony subscription season at a glance
2006-04-20 - More about the house in front of Microsofts RedWest campus
2006-04-21 - Then again it might not be overclocking after all
2006-04-24 - Ich habe meinen Computer zu Deutsch gewechselt
2006-04-24 - Troubleshooting tips are not formal product documentation
2006-04-25 - Correctly spell xerophthalmia and the crowd goes wild
2006-04-25 - No really you need to pass all unhandled messages to DefWindowProc
2006-04-26 - No good deed goes unpunished Bug assignment
2006-04-27 - A new scripting language doesnt solve everything
2006-04-28 - Grace period for Swedish currency conversion extended to the end of the year
2006-04-28 - What does CS_SAVEBITS do

The Old New Thing - 2006 05

2006-05-01 - Tips from an American on on driving in Taiwan
2006-05-01 - Whats so special about bitmaps and DCs
2006-05-02 - A cache with a bad policy is another name for a memory leak
2006-05-03 - The alertable wait is the non-GUI analog to pumping messages
2006-05-04 - Doing quick arithmetic from the command prompt
2006-05-04 - On the bogusness of reporting the winning word in a spelling bee
2006-05-05 - What can I do with the HINSTANCE returned by the ShellExecute function
2006-05-08 - It rather involved being on the other side of this airtight hatchway
2006-05-08 - Seattle boating season opens but never closes
2006-05-09 - Subtle ways your innocent program can be Internet-facing
2006-05-09 - Why doesnt Ethan Hunt have to wear identification
2006-05-10 - Solutions that dont actually solve anything
2006-05-11 - Automatic messages when youre not in the office the infamous OOF
2006-05-12 - On languages and spelling
2006-05-12 - When people mimic the display rather than the actual data
2006-05-15 - The first word on the command line is the program name only by convention
2006-05-16 - Command line redirection is performed by the command line interpreter
2006-05-16 - The real scoop on the the x64 calling convention on 64-bit Windows
2006-05-17 - Beware of digits before the redirection operator
2006-05-17 - Dont mention the war I mentioned it once but I think I got away with it all right
2006-05-18 - Making up new Winter Olympic events
2006-05-18 - The redirection operator can occur in the middle of the command line
2006-05-19 - Raymond 1 Sidewalk 1
2006-05-19 - Redirecting output can result in altered program behavior
2006-05-22 - How do I write a regular expression that matches an IPv4 dotted address
2006-05-23 - Raymond makes a psychic prediction for 2006
2006-05-23 - That mysterious J
2006-05-24 - Beware the C implicit conversion
2006-05-25 - Using Yoda on an x86 may be hazardous to your systems health
2006-05-26 - Assaulting users with dialog box after dialog box
2006-05-27 - Wordplay the movie
2006-05-29 - Every discipline has its crackpots Stories of mathematics
2006-05-30 - Mellifluous NPR reporter name Ofeibea Quist-Arcton
2006-05-30 - People are very sensitive to how the icons look
2006-05-31 - Do it for Katie

The Old New Thing - 2006 06

2006-06-01 - What does the CS_OWNDC class style do
2006-06-02 - What does the CS_CLASSDC class style do
2006-06-05 - Why cant you say in a script block
2006-06-06 - Apparently driving is messed up in a lot of countries
2006-06-06 - The forgotten common controls The page scroller
2006-06-07 - Disaster averted thanks to undisclosed government action no really
2006-06-07 - If youre going to try to simulate user actions make sure the user can do them
2006-06-08 - The forgotten common controls The MenuHelp function
2006-06-09 - What happened to the traffic circle at the corner of 156th Ave NE and NE 56th Way
2006-06-09 - Why did the Add or Remove Programs control panel try to guess all that information
2006-06-12 - Remember what happens when you broadcast a message
2006-06-13 - Fumbling around in the dark and stumbling across the wrong solution
2006-06-13 - Lies and statistics 600000 Chinese engineers
2006-06-14 - Pitfalls of transparent rendering of anti-aliased fonts
2006-06-15 - Its a good idea to get somebody who knows the language to be your proofreader
2006-06-15 - Window class properties apply to all windows that belong to the class
2006-06-16 - Understanding what significant digits really mean
2006-06-19 - Announcements on the ferry one self-explanatory one not
2006-06-19 - Why cant you programmatically reorder the items on the Start menu
2006-06-20 - A single-instance program is its own denial of service
2006-06-20 - Three-Minute Masterpieces 2006
2006-06-21 - Its still not a democracy but at least other people have noticed too
2006-06-21 - Psychic debugging Understanding DDE initiation
2006-06-22 - An auto-reset event is just a stupid semaphore
2006-06-22 - The continuing phenomenon of size inflation in fast food
2006-06-23 - The subtle usability considerations of conference nametags
2006-06-26 - Coding in-place tooltips
2006-06-26 - Look who bought my name
2006-06-27 - so it doesnt poop all over your office
2006-06-27 - Using custom-draw in tooltips to adjust the font
2006-06-28 - Multiplexing multiple tools into one in a tooltip
2006-06-29 - Generating tooltip text dynamically
2006-06-30 - 2006 mid-year link clearance
2006-06-30 - Congratulations Montréal on finally paying for the 1976 Olympic Games

The Old New Thing - 2006 07

2006-07-03 - How do you use the bike rack on a Metro bus
2006-07-03 - Security Dont forget to initialize the stuff you dont care about
2006-07-04 - Things Ive written that have amused other people Episode 2
2006-07-05 - Retail companies allegedly not collecting personal information as aggressively
2006-07-06 - Is the maximum size of the environment 32K or 64K
2006-07-06 - Nearly 20 percent of daily smokers say they exercise three or more times a week
2006-07-07 - Mr T prefers a double-shot of espresso with two graham crackers go figure
2006-07-07 - No really why is it 16031
2006-07-10 - Before you can learn to recognize whats wrong you must learn to recognize whats right
2006-07-10 - Wenn Ausländer Deutsch phonetisch singen
2006-07-11 - News flash Big houses have bigger heating bills
2006-07-11 - Not everybody with a non-Windows partition type is a geek
2006-07-12 - Pidls and monikers do roughly the same thing just backwards
2006-07-12 - Win 5000 every summer for life some restrictions on your life apply
2006-07-13 - Glass houses are great places to throw stones
2006-07-14 - How were DLL functions exported in 16-bit Windows
2006-07-17 - How were DLL functions imported in 16-bit Windows
2006-07-17 - The day the peloton lost its way
2006-07-18 - How are DLL functions exported in 32-bit Windows
2006-07-19 - Exported functions that are really forwarders
2006-07-19 - The traffic gods are punishing me for bicycling
2006-07-20 - Buy me some peanuts and a set of double-pointed 2s
2006-07-20 - Rethinking the way DLL exports are resolved for 32-bit Windows
2006-07-21 - Calling an imported function the naive way
2006-07-21 - Floyd Landis stuns everybody on stage 17 Raymond less impressive
2006-07-21 - I didnt realize that it was International Group B Strep Awareness Month
2006-07-24 - How a less naive compiler calls an imported function
2006-07-24 - Raise la lanterne rouge
2006-07-25 - If you know German the world is well slightly more confusing
2006-07-25 - Issues related to forcing a stub to be created for an imported function
2006-07-26 - Real Madrid ie proper football comes to Seattle
2006-07-26 - What happens when you get dllimport wrong
2006-07-27 - Handy tip If youre going to break into vehicles the police vehicle service center is probably a bad p
2006-07-27 - Index to the series on DLL imports and exports
2006-07-27 - Names in the import library are decorated for a reason
2006-07-28 - The Seattle Monorail has two trains and they collided
2006-07-28 - The efficiency of ordinal-based imports while still being name-based
2006-07-31 - Christmas gift idea for your favorite glasses-wearing geek
2006-07-31 - Just because I dont write about NET doesnt mean that I dont like it

The Old New Thing - 2006 08

2006-08-01 - C nested classes are like C nested classes not Java inner classes
2006-08-02 - The implementation of anonymous methods in C and its consequences part 1
2006-08-03 - News Flash Big houses also cost more to cool
2006-08-03 - The implementation of anonymous methods in C and its consequences part 2
2006-08-04 - The implementation of anonymous methods in C and its consequences part 3
2006-08-07 - Even more about C anonymous methods from the source
2006-08-07 - The day Tullys ran out of coffee
2006-08-08 - A look inside WinInets indexdat file and changes in IE7 and Vista
2006-08-08 - Candidate for most obscure keyboard shortcut ShiftF8
2006-08-09 - How were window hooks implemented in 16-bit Windows
2006-08-10 - One way people abused hooks in 16-bit Windows
2006-08-10 - Space scientist James Van Allen 19142006
2006-08-11 - Exploiting the inattentive episode 2 The unlabeled line
2006-08-11 - Why does SetWindowsHookEx take an HINSTANCE parameter
2006-08-14 - The cultural anthropology of getting on a bicycle
2006-08-14 - Why cant I see all of the 4GB of RAM in my machine
2006-08-15 - Cool web site Bill Monk
2006-08-15 - Do not change program semantics in the debug build
2006-08-16 - Accessibility is not just for people with disabilities
2006-08-16 - Computer monitors float screen upwards
2006-08-17 - A modest proposal On allowing mobile phones on airplanes
2006-08-17 - Dont trust the return address no really
2006-08-18 - Applications and DLLs dont have privileges users do
2006-08-18 - We encourage everyone to pack gel-filled bras in their checked baggage
2006-08-21 - 6 days since last monorail breakdown
2006-08-21 - Sucking the exception pointers out of a stack trace
2006-08-22 - Raymonds excursions into East Asian pop music episode 2 China Dolls 中國娃娃
2006-08-22 - Who says theres only one There can be more than one logon session
2006-08-23 - Environment variable expansion occurs when the command is read
2006-08-24 - Moving a file does not recalculate inherited permissions
2006-08-24 - Those folks from Birmingham talk funny and I mean that in a scientific way
2006-08-25 - We know its insecure but we want to do it anyway
2006-08-28 - How did Start Me Up become the theme for the Windows 95 launch
2006-08-28 - Try to avoid having BOOL function parameters
2006-08-29 - As I recall Germany did not ratify the United States Constitution
2006-08-30 - How do you wash soap
2006-08-30 - If you work at a company its not your computer any more
2006-08-31 - The dialog class goes under the sneaky name WC_DIALOG
2006-08-31 - The wisdom of seventh graders Contributions to class discussion

The Old New Thing - 2006 09

2006-09-01 - On the unanswerability of the maximum number of user interface objects a program can create
2006-09-01 - Youre white Do you want to be in my friends soap opera
2006-09-04 - I think Ive just broken the internet
2006-09-05 - Just change that 15 to a 1
2006-09-06 - In case of fire go to lunch
2006-09-06 - You already know what your target architecture is or at least you should
2006-09-07 - What you dont apologize for is as important as what you do
2006-09-07 - You have to free memory with the same allocator that allocated it Logical consequences
2006-09-08 - Const pointers Logical consequences
2006-09-08 - Turns out you cant learn Mandarin Chinese by watching television
2006-09-11 - If you ask a YesNo question make sure the user also knows what happens when they say No
2006-09-12 - Grammar review Verbparticle versus compound noun
2006-09-13 - Philosophical discussion on when to mark a method as virtual
2006-09-13 - Raymonds excursions into East Asian pop music episode 3 Morning Musume モーニング娘
2006-09-14 - The danger of using boldface for Chinese characters
2006-09-14 - The lost follow-ups Products and people that appear to have vanished without a trace
2006-09-15 - Allocating and freeing memory across module boundaries
2006-09-15 - Disaster averted thanks to international time zones
2006-09-18 - Project Update 2 Voyage to Our Hollow Earth
2006-09-18 - Sometimes my psychic powers are weak
2006-09-19 - The tale of the radioactive Boy Scout
2006-09-19 - Why doesnt the Shutdown dialog use Alt to get alternate behavior
2006-09-20 - Dont forget to unregister your window classes when your DLL shuts down dynamically
2006-09-20 - It is as if our leaders have not been educated in orbital space colonization
2006-09-21 - If you dont trust your administrators youve already lost
2006-09-21 - Its that season again The Microsoft Company Meeting
2006-09-22 - Hand gestures for numbers
2006-09-22 - Things you already know How do I wait until my dialog box is displayed before doing something
2006-09-25 - Filming for The Battle in Seattle has begun
2006-09-25 - Waiting until the dialog box is displayed before doing something
2006-09-26 - Isnt DDE all asynchronous anyway
2006-09-26 - News flash The heart produces urine
2006-09-27 - IsBadXxxPtr should really be called CrashProgramRandomly
2006-09-28 - Saturday is Museum Day courtesy of Smithsonian Magazine
2006-09-28 - When you crash make sure you crash in the right place
2006-09-29 - Eating Belgian food at Brouwers Cafe in Fremont
2006-09-29 - Quotation marks around spaces arent necessary in the PATH environment variable

The Old New Thing - 2006 10

2006-10-02 - Any similarity to actual German or Swedish words is purely coincidental
2006-10-02 - Does a dual-core processor count as one or two for licensing purposes
2006-10-03 - If only hed known to offer to back up their PC instead
2006-10-03 - Theres a reason why envelopes have backs
2006-10-04 - You can invent new adjectives too
2006-10-05 - Why does Windows hide keyboard accelerators and focus rectangles by default
2006-10-06 - A very brief return to part 6 of Loading the ChineseEnglish dictionary
2006-10-09 - How Raymond learns languages and why its not working
2006-10-10 - When something is available for the user which user are we talking about
2006-10-11 - Proto-Microspeak The goat rodeo
2006-10-12 - How do I prevent multi-line edit controls from eating the Enter key
2006-10-12 - Shifting fortunes at Airbus over the A380
2006-10-13 - Why do I see the same fake names in Microsoft samples over and over
2006-10-16 - 640 x 480 is still not dead
2006-10-16 - Raymonds excursions into East Asian pop music episode 4 Yuki
2006-10-17 - Answering phones at KUOW for their Fall 2006 pledge drive
2006-10-17 - What does the letter T in LPTSTR stand for
2006-10-18 - Dead Sea Scrolls lectures available online or in person if you can get there
2006-10-18 - Dont require your users to have a degree in philosophy
2006-10-19 - No good deed goes unpunished part 2
2006-10-20 - How do I shut down a workstation via Remote Desktop
2006-10-20 - Wired Magazines report on that bizarro Ferarri crash
2006-10-23 - Psychic debugging Why doesnt my program show up when I call ShellExecute
2006-10-23 - Quick and dirty Halloween costume for physics geeks
2006-10-24 - Invalidating the null window redux
2006-10-24 - More tales of dead computers My home desktop
2006-10-25 - Non-resolution of the dead home desktop problem
2006-10-25 - Offline mode silently prevents you from streaming media content
2006-10-26 - For a brief shining moment DirectX was more popular than another word that ends in x
2006-10-26 - Let the dead computer scavenging commence
2006-10-27 - Now it looks like I speak far more languages than I actually do
2006-10-27 - The great Polish Sea -or- We forgot Poland
2006-10-30 - Why cant I get my program to use more than 50 of the CPU
2006-10-30 - Руками не трогать
2006-10-31 - Separated at birth The Windows XP SP2 launch team
2006-10-31 - So thats what daddy does at work

The Old New Thing - 2006 11

2006-11-01 - I bet somebody got a really nice bonus for that feature
2006-11-02 - Make sure you disable the correct window for modal UI
2006-11-03 - How do I convert an HRESULT to a Win32 error code
2006-11-06 - On the importance of backwards compatibility for large corporations
2006-11-06 - Tonya and Nancy The Opera
2006-11-07 - Aspiring to the wrong office on election day
2006-11-07 - Theres going to be an awful lot more overclocking out there
2006-11-08 - How do I test that return value of ShellExecute against 32
2006-11-09 - A modest proposal Solving the problem of steroids in baseball
2006-11-09 - Why cant you use the Tab key to select items from the auto-complete drop-down
2006-11-10 - Converting an HRESULT to a Win32 error code Diagram and answer to exercise
2006-11-13 - New dessert lounge Coco la ti da
2006-11-13 - What do bitwise operations mean for colors
2006-11-14 - Blitting between color and monochrome DCs
2006-11-14 - Keeping classic hardware alive through emulation
2006-11-15 - Manipulating the DIB color table for fun and profit
2006-11-16 - Using DIB sections to perform bulk color mapping
2006-11-17 - The window manager moves the mouse applications choose the cursor
2006-11-20 - It takes only one program to foul an upgrade
2006-11-20 - Paradoxically you should remove the smart card when logging on with a smart card
2006-11-21 - What is the process by which the cursor gets set
2006-11-22 - The quiet dream of placebo settings
2006-11-23 - Placebo setting QoS bandwidth reservation
2006-11-24 - Sometimes you need to recalibrate your progress reports
2006-11-27 - Its not surprising at all that people search for Yahoo
2006-11-28 - What went wrong in Windows 95 if you use a system color brush as your background brush
2006-11-29 - A fork is an easy-to-find nonstandard USB device
2006-11-30 - It took two of us to keep up with one Bob

The Old New Thing - 2006 12

2006-12-01 - Nailing down what constitutes valuable consideration
2006-12-04 - The name WinMain is just a convention
2006-12-04 - The wisdom of seventh graders What to do with a time machine part 1
2006-12-05 - How do I find all files with at least one space in their name
2006-12-05 - The wisdom of seventh graders What to do with a time machine part 2
2006-12-06 - If you let people read a file then they can copy it
2006-12-06 - The wisdom of seventh graders What to do with a time machine part 3
2006-12-07 - Okay I changed my mind I wrote a book after all
2006-12-08 - Do not overload the E_NOINTERFACE error
2006-12-08 - Throwing things into a blender and seeing what happens
2006-12-11 - What does an invalid handle exception in LeaveCriticalSection mean
2006-12-12 - A high waiter count on a free critical section may indicate a lock convoy
2006-12-12 - Jeanne Martinet teaches you how to survive a party where you dont know anybody
2006-12-13 - Displaying infotips for folded and unfolded listview items
2006-12-13 - Maybe if it had characters and stuff and different levels it would be OK
2006-12-14 - Computing listview infotips in the background
2006-12-16 - Why do user interface actions tend to occur on the release not on the press
2006-12-18 - Do not write in-process shell extensions in managed code
2006-12-18 - Some call it context others call it reference data but whatever it is its yours
2006-12-19 - I bet somebody is looking to get a really nice bonus for that feature Attention
2006-12-19 - Pacific Northwest storm recovery continues
2006-12-20 - The evolution of version resources 16-bit version resources
2006-12-21 - The evolution of version resources 32-bit version resources
2006-12-21 - The unanswered Explainer questions
2006-12-22 - The evolution of version resources corrupted 32-bit version resources
2006-12-25 - The Old New Thing book will also be available electronically
2006-12-26 - I cant believe they actually cant think of a name for the recent storm
2006-12-26 - The first parameter to VerQueryValue really must be a buffer you obtained from GetFileVersionInfo
2006-12-27 - The social skills of a thermonuclear device part 3
2006-12-28 - Linda Hunts advice for Oscar-winners
2006-12-28 - Stop the madness Subdirectories of My Documents
2006-12-29 - 2006 end-of-year link clearance

The Old New Thing - 2007 01

2007-01-01 - The family technical support department Everything is Outlook
2007-01-02 - Why cant I GetProcAddress for CreateWindow
2007-01-03 - Wait but why can I GetProcAddress for IsDialogMessage
2007-01-04 - How a bullet turns into a beep
2007-01-05 - Whats a character
2007-01-08 - Why do property sheets sometimes take a first-chance exception
2007-01-09 - Article of clothing or tasty dessert
2007-01-09 - What triggers the recall of an offline file
2007-01-10 - How do I load an entire file into a rich text control
2007-01-10 - Ken Levine teaches us about television script writing
2007-01-11 - How do I put more than 32000 characters into a rich text control
2007-01-11 - The history of the RichEdit control from Murray Sargent
2007-01-12 - How do I print the contents of a rich text control
2007-01-15 - Does Microsoft internally use MFC for writing Windows apps
2007-01-15 - The wisdom of sevHHHeighth graders It was not just white people who were helped by Martin Luther King
2007-01-16 - EnumChildWindows already enumerates recursively
2007-01-16 - One Armstrong 135 mph
2007-01-17 - Iced-over roads people who cant drive very expensive and dangerous game of billiards
2007-01-17 - Should all windows appear in the taskbar
2007-01-18 - Email tip Choose a subject line that is meaningful to the recipient not to the sender
2007-01-19 - 2006 storm aftermath A look back
2007-01-19 - What does the fCreate parameter to SHCreateStreamOnFileEx mean
2007-01-22 - The cost of continuously-visible affordances with dynamic states
2007-01-23 - Non-psychic debugging If you cant find something make sure youre looking in the right place
2007-01-23 - Unexpected consequences of writing a book Public appearances
2007-01-24 - The undeletable Outlook folder episode 2
2007-01-24 - Walking through packed snow and ice with a little more confidence
2007-01-25 - Not my finest hour Where are my keys
2007-01-25 - Where did the Windows Vista wallpaper images come from
2007-01-26 - The MAXMEM switch doesnt set the maximum amount of memory Windows will use
2007-01-26 - The real underground and subway
2007-01-29 - If vertical strips are better why do toolbars use horizontal strips
2007-01-30 - Unusual uses for a ball-point pen Breaking into the debugger
2007-01-31 - Crackpots in computer security A complete solution to computer security
2007-01-31 - If you ask an author to sign a book you have to tell himher what to write

The Old New Thing - 2007 02

2007-02-01 - The network interoperability compatibility problem second follow-up
2007-02-02 - Super Bowl Sunday The day the entire country stops doing anything
2007-02-02 - The ironic thing about fixing a bug
2007-02-02 - The publicity machine doesnt stop TechNet podcast interview
2007-02-05 - Public service announcement for United States taxpayers In tax year 2006 you can claim a 30 refund if
2007-02-05 - Why did Explorer say The target you specified is on the desktop
2007-02-06 - Bonus material for The Old New Thing the book is now available for download
2007-02-06 - Why cant I create my dialog box Rookie mistake 1
2007-02-07 - Maintaining standards of Japanese food abroad
2007-02-07 - Why cant I create my dialog box Rookie mistake 2
2007-02-08 - Who is most likely to be awarded a MacArthur Fellowship
2007-02-08 - Why does my property sheet blink and the immediately disappear
2007-02-09 - Do I need rush processing Beats me
2007-02-09 - Long Zheng interviews Hamad Darwish about those Windows Vista wallpapers
2007-02-12 - Performance evaluation euphemisms invading everyday speech ironically
2007-02-12 - Why doesnt the window manager unregister window classes when the owning DLL unloads
2007-02-13 - Email tip Barry Leiba expounds on subject lines
2007-02-13 - Email tip Dont add people to a thread without saying why
2007-02-14 - Technology hypochondriacs
2007-02-15 - Theres not much luggage space unless you dump the snow
2007-02-15 - Why cant you set the command prompts current directory to a UNC
2007-02-16 - News flash Professional athletes do it for the money
2007-02-16 - Why dont I use any class libraries in my sample code
2007-02-19 - What does LockWindowUpdate do
2007-02-20 - Crush Finder experiment gets off the ground at Princeton
2007-02-20 - How is LockWindowUpdate meant to be used
2007-02-21 - Mandarin Chinese gaining popularity in public schools
2007-02-21 - With what operations is LockWindowUpdate meant to be used
2007-02-22 - How to get your laptop to resume from standby in under two seconds
2007-02-22 - With what operations is LockWindowUpdate not meant to be used
2007-02-23 - Final remarks on LockWindowUpdate
2007-02-23 - I wouldnt be surprised if O J Simpson wrote a new book
2007-02-23 - The 20072008 Seattle Symphony subscription season at a glance
2007-02-26 - Please feel free to stop using DDE
2007-02-26 - The politicians fallacy and the politicians apology
2007-02-27 - How hard could it be Must provide own garage
2007-02-27 - What does an NMI error mean The infamous Hardware Malfunction
2007-02-28 - Another retired computer The Alpha Rawhide
2007-02-28 - More Vista wallpapers from Hamad Darwish

The Old New Thing - 2007 03

2007-03-01 - If you have to ask youre probably doing something wrong
2007-03-01 - West Bank Story the movie that sells itself in five seconds
2007-03-02 - Public service announcement for Seattle area taxpayers Some transit taxes can be itemized and deducte
2007-03-02 - The Default user is not the default user
2007-03-05 - Hiding files is not the same as protecting them
2007-03-05 - Its official its the Hannukah Eve Storm of 2006
2007-03-06 - Things Ive written that have amused other people Episode 3
2007-03-06 - What was the first parameter to CoInitialize used for
2007-03-07 - Microspeak Sit in it
2007-03-07 - The wisdom of seventh graders John Locke and influential persons
2007-03-08 - Just what the world has been wishing for Surströmming ice cream
2007-03-08 - The GETDISPINFO notifications tell you what information they want
2007-03-09 - Dont be so fast to discount those oddball time zones
2007-03-09 - This American Life What I Learned From Television Seattle edition
2007-03-12 - Raymonds highly scientific predictions for the 2007 NCAA mens basketball tournament
2007-03-12 - What is a SM_SLOWMACHINE
2007-03-13 - Out there gathering map data one intersection at a time
2007-03-13 - The only thing you can do with display names is display them
2007-03-14 - Dont require your users to have a degree in philosophy episode 2
2007-03-14 - News flash Snacks at the theater concession stand are not good for you
2007-03-15 - Email tip Dont forget to ask your question
2007-03-16 - The format of accelerator table resources
2007-03-16 - Verizon backs down on made-up fees and then adds them anyway
2007-03-19 - How do the menu functions find items
2007-03-20 - I bet somebody is looking to get a really nice bonus for that feature Uninstall
2007-03-20 - The early stages of Joshua Roman groupie-dom
2007-03-21 - You dont know what you do until you know what you dont do
2007-03-22 - Excursions in composition Sequential stream concatenation
2007-03-23 - Excursions in composition Adding rewind support to a sequential stream
2007-03-23 - The wisdom of seventh graders and you Design a course
2007-03-26 - Passing by address versus passing by reference a puzzle
2007-03-26 - The publicity machine continues A chat with Scott Hanselman and Hanselminutes
2007-03-27 - Microspeak Calibration
2007-03-28 - The social skills of a thermonuclear device part 4
2007-03-28 - Why are there both TBSTYLE_EX_VERTICAL and CCS_VERT
2007-03-29 - How to talk like Marketing The awareness space
2007-03-29 - The buffer size parameter to GetFileVersionInfo is the size of your buffer no really
2007-03-30 - On the effect of dandruff on climate
2007-03-30 - What do the colors in the elevation dialog mean

The Old New Thing - 2007 04

2007-04-02 - Groundwork being laid for Vladimir Putin to run for his fourth term out of a maximum of two
2007-04-02 - Why do operating system files still adhere to the old 83 naming convention
2007-04-03 - Why does my thread pool use only one thread
2007-04-04 - His lips are moving In order to serve you better
2007-04-04 - Your chance to meet Raymond if you are near Palo Alto on the 23rd
2007-04-05 - On the enduring appeal of Walker Texas Ranger
2007-04-05 - Why cant I display a tooltip for a disabled window
2007-04-06 - Code is read much more often than it is written so plan accordingly
2007-04-06 - When very young children try too hard to act nonchalant
2007-04-09 - Why doesnt the taskbar return to its original size when I return my settings to their original values
2007-04-10 - Enjoy our Bluetooth devices with a glass of beer or wine Bluetooth device optional
2007-04-10 - What is the default version of a header file
2007-04-10 - Whats the row of numbers on the copyright page of books
2007-04-11 - Oh no I have an obstructed view of Joshua Roman
2007-04-11 - Whats the difference between WINVER _WIN32_WINNT _WIN32_WINDOWS and _WIN32_IE
2007-04-12 - What is the default version of the shell common controls
2007-04-13 - Email tip People didnt answer your first email for a reason
2007-04-16 - Changes to power management in Windows Vista
2007-04-16 - See the Seattle Symphony on television in high definition
2007-04-17 - No farting please were Americans
2007-04-17 - The Notepad file encoding problem redux
2007-04-18 - Psychic debugging Why you cant control page navigation when using PSP_DLGINDIRECT
2007-04-18 - Trivia Pea marble dime nickel quarter half dollar walnut
2007-04-19 - Perhaps the movies made too literal a translation
2007-04-20 - The format of bitmap resources
2007-04-20 - The wisdom of seventh graders Designing an elective course
2007-04-23 - Given a choice between two options you influence the result by adding a third inferior alternative
2007-04-23 - Psychic debugging When reading unfamiliar code assume its mostly correct
2007-04-24 - How much time does it take for a pedestrian to cross the street
2007-04-24 - What is the underlying object behind a COM interface pointer
2007-04-25 - Identifying an object whose underlying DLL has been unloaded
2007-04-25 - Theres something about Christopher Walken
2007-04-26 - The intermediate value theory helps your table but not necessarily your beer
2007-04-26 - Using the gu debugger command to find the infinite loop
2007-04-27 - News Flash Not being able to watch Jay Leno is not an emergency
2007-04-27 - Stupid debugger tricks Calling functions and methods
2007-04-30 - Everyone should have a house pianist
2007-04-30 - The default verb is not necessarily open

The Old New Thing - 2007 05

2007-05-01 - Microspeak Operationalize
2007-05-01 - Two web sites that read the fine print
2007-05-02 - Male perceptions of body image in Taiwan
2007-05-02 - The old-fashioned theory on how processes exit
2007-05-03 - Quick overview of how processes exit on Windows XP
2007-05-03 - Unexpected consequences of self-checkout
2007-05-04 - But theyre not puts on sunglasses going to get away with murder
2007-05-04 - How my lack of understanding of how processes exit on Windows XP forced a security patch to be recall
2007-05-07 - Drag and drop is a general purpose transfer model not exclusive to Explorer directories
2007-05-07 - Metromint What were they thinking
2007-05-08 - Session 0 isolation Where backward compatibility loses to security
2007-05-08 - The administrator is an idiot
2007-05-09 - Dont be helpless At least look at the function youre using
2007-05-09 - Revelations of My Friends An ancestor of todays Mad Libs
2007-05-10 - Email tip Dont ask the same question multiple times in different groups
2007-05-11 - Evergreen Philharmonic Baroque Festival 2007
2007-05-11 - Performing an operation in each subdirectory of a directory tree from batch
2007-05-14 - Service required Brewer error
2007-05-15 - Command lines need to be quoted paths dont
2007-05-15 - Get Sea-Tac flight information including gate and baggage claim via email
2007-05-16 - Please refer to the instructions that dont exist
2007-05-16 - Why are console windows limited to Lucida Console and raster fonts
2007-05-17 - Store Wars and the Meatrix
2007-05-17 - Were all in this together No good deed goes unpunished redux
2007-05-18 - Dont drive your pick-up onto the roof of a house especially if well read on
2007-05-18 - Getting in on the action while its still there
2007-05-21 - Dont be helpless I dont know anything about MFC modal loops but unlike some people Im not afraid to f
2007-05-21 - The unidentified award
2007-05-22 - Another chapter in Swedish political hypocrisy 2007 edition
2007-05-22 - Youre not my manager so Im not going to ask how high when you tell me to jump
2007-05-23 - Das Leben der Anderen
2007-05-23 - Microspeak The forcing function
2007-05-23 - Suggestion Box 3
2007-05-24 - Being nominated for the Nobel Prize isnt as big a deal as it sounds
2007-05-24 - We should just get rid of that stupid middle tier
2007-05-25 - Raymonds SIFF schedule 2007
2007-05-25 - The parameters to PostQueuedCompletionStatus are not interpreted
2007-05-28 - Cool theyre using Roman numerals
2007-05-29 - Lets talk like people
2007-05-29 - Psychic debugging Why does FormatMessage say the resource couldnt be found
2007-05-30 - The sad predicament of the unempowered manager
2007-05-30 - The three things you need to know about tsunamis
2007-05-31 - Visual C 2005 will generate manifests for you
2007-05-31 - Youd think questions about underwear were understood to be off-limits

The Old New Thing - 2007 06

2007-06-01 - I took the Monorail to the Shadow of the Moon
2007-06-01 - Inserting as many layers between the message and reality as possible
2007-06-04 - Choosing a provocative debug signature
2007-06-04 - Death at a Funeral Cashback and Tell No One
2007-06-05 - Compatibility constraints of the water cooler
2007-06-05 - Its official The logo for the London 2012 Olympic Games is hideously ugly
2007-06-06 - Email tip Lay off the massive email signatures
2007-06-06 - How not to prepare for the STP 2007 edition
2007-06-07 - How do I inflate a bicycle tire with a potato
2007-06-07 - The meaning of a red traffic light is open to interpretation
2007-06-08 - Why does canonical order for ACEs put deny ACEs ahead of allow ACEs
2007-06-08 - shopautodotca seocontest online contest tacitly encourages comment spam
2007-06-11 - The New York City Profit Calculator
2007-06-11 - What determines which programs show up on the front page of the Windows XP Start menu
2007-06-12 - I never thought of it before but drumming is a metaphor for life
2007-06-12 - Points are earned by programs not by shortcuts
2007-06-13 - SIFF reviews Falling 2 Days in Paris Hula Girls
2007-06-13 - The program doesnt have to be run from the Start menu to earn Start menu points
2007-06-14 - If you pin a program it doesnt show up in the frequently-used programs list
2007-06-14 - The Thing Mystery of the desert
2007-06-15 - Super watch episode 2
2007-06-15 - What other programs are filtered from the Start menus list of frequently-used programs
2007-06-18 - Project Update 3 Voyage to Our Hollow Earth
2007-06-18 - Why does a new user get stuff on their Start menu right off the bat
2007-06-19 - Im pretty sure hes going to be the envy of his next school reunion
2007-06-19 - What is the impact on the Start menu of long-running programs
2007-06-20 - In order to serve you better Frequent flyer miles expiring sooner
2007-06-20 - More Start menu fine-tuning Choosing a better representative for a frequently-run program
2007-06-21 - How does the Windows XP Start menu decide that a program is newly-installed
2007-06-21 - What is the international sign for you left something on the roof of your car
2007-06-22 - Einstein the geographer A hoax
2007-06-22 - Even advanced users liked the Windows XP Start menu
2007-06-25 - Theres no point improving the implementation of a bad idea
2007-06-25 - Why the Fantastic 4 Human Torch ATV is the Worst Movie Tie-In Toy Ever
2007-06-26 - Whats all this stuff hanging from that utility pole
2007-06-26 - Why do DLGC_WANTALLKEYS and DLGC_WANTMESSAGE have the same value
2007-06-27 - Overheard conversation in the cockpit that you might not want to have heard
2007-06-27 - Those who do not understand the dialog manager are doomed to reimplement it badly
2007-06-28 - If its optional then dont make it mandatory
2007-06-29 - 2007 mid-year link clearance
2007-06-29 - Dont forget to pass the current directory along with the command line to your single-instance program

The Old New Thing - 2007 07

2007-07-02 - Image File Execution Options just inserts the debugger in front of the command line
2007-07-02 - The conversations backstage at computer Go tournaments
2007-07-03 - If the system says that an embedded string could not be converted from Unicode to ANSI maybe its tryi
2007-07-03 - The audacity of selling things that dont belong to you
2007-07-04 - Holidays for fireworks and generally blowing up stuff from around the world
2007-07-05 - QueryPerformanceCounter is not a source for unique identifiers
2007-07-05 - Raymonds tips on selecting a memorable greeting card
2007-07-06 - It rather involved being on the other side of this airtight hatchway If they can run code then they c
2007-07-06 - Redmond Derby Days 2007 this weekend
2007-07-09 - A modest proposal Solving the problem of traffic in Seattle caused by sporting events
2007-07-09 - Its not enough to say that something is bad you have to say what would be better
2007-07-10 - That leaves more hot German babes for me
2007-07-10 - The forgotten common controls The ShowHideMenuCtl function
2007-07-11 - How to check for errors from SetFilePointer
2007-07-11 - Those who do not understand history are doomed to repeat it on YouTube
2007-07-12 - If you want a modeless dialog then create a modeless dialog already
2007-07-12 - Seattle street signs for sale used but for ten bucks you cant complain
2007-07-13 - I was sort of interested at first but now Im not so sure any more
2007-07-13 - The dangers of conversation fragments Overheard on the Burke-Gilman trail
2007-07-16 - Creative armed robbery defense Political asylum
2007-07-16 - How are window manager handles determined in 16-bit Windows and Windows 95
2007-07-17 - How are window manager handles determined in Windows NT
2007-07-17 - Not my finest hour Driving a manual transmission
2007-07-18 - If you read any book about traditional weddings in Russian history there must be a fight
2007-07-18 - Why is the limit of window handles per process 10000
2007-07-19 - Food products that are offenses against nature Fast Franks
2007-07-19 - You dont optimize for the case where somebody is mis-using your system
2007-07-20 - Apparently some people consider this a vacation I consider it insane
2007-07-20 - Screwing the computer parts back together is the most dangerous step
2007-07-23 - The real cost of compatibility is not in the hacks the hacks are small potatoes
2007-07-23 - Tips for doing the Seattle to Portland STP in two days What I learned in 2007
2007-07-24 - Just because you say something in my presence and I dont raise an objection doesnt mean that I agree
2007-07-24 - Seattle to Portland STP 2007 trip report part 1 of 4 Seattle to Spanaway
2007-07-25 - Seattle to Portland STP 2007 trip report part 2 of 4 Spanaway to Toledo
2007-07-25 - What is Daves frame class
2007-07-26 - How do the names in the file security dialog map to access control masks
2007-07-26 - Seattle to Portland STP 2007 trip report part 3 of 4 Toledo to St Helens
2007-07-27 - Dont just grab the foreground window and host UI on it
2007-07-27 - Seattle to Portland STP 2007 trip report part 4 of 4 St Helens to Portland and beyond
2007-07-30 - Stuart Stevens takes performance-enhancing drugs in order to see what they do
2007-07-30 - Theres a whole Internet out there folks you might want to check it out
2007-07-31 - I just discovered that the Scandinavian Gift Shop in Ballard is closing
2007-07-31 - What is the lpdwHandle parameter in GetFileVersionInfoSize used for

The Old New Thing - 2007 08

2007-08-01 - Footnotes in Win32 history VLM Very Large Memory support
2007-08-01 - Note to locals Lincoln Center is in New York City not Bellevue
2007-08-02 - But now Ill never know which politician that alien backs for the next election
2007-08-02 - What is the difference between the Folder and Directory and other special progids
2007-08-03 - It was not one of Explorers design goals to provide a Turing-complete interface for bulk file renamin
2007-08-03 - Probably the most expensive Harry Potter viewing Ill ever attend
2007-08-06 - Freudian typo Enchanced metafiles
2007-08-06 - The truth about 429 the government doesnt want you to know
2007-08-07 - It rather involved being on the other side of this airtight hatchway Executable corruption
2007-08-07 - One would be hard pressed to find a group of characters more in need of a lawyer
2007-08-08 - Bowling coming to Bellevue and given the location its naturally upscale
2007-08-08 - Email tip I dont have my bug numbers memorized
2007-08-09 - How do I get the handle of the primary monitor
2007-08-09 - Martina Navratilovas final Wimbledon appearance and this time she means it
2007-08-10 - Things Ive written that have amused other people Episode 4
2007-08-13 - Math is hard lets go shoppoops
2007-08-13 - Why is the blogs subtitle Not actually a NET blog
2007-08-14 - SIFF 2007 wrap-up Grandhotel The Boss of It All Vacation
2007-08-14 - What is the order of evaluation in C
2007-08-15 - C static constructors are called on demand not at startup
2007-08-15 - For 15 you can purchase incorrect information and to prevent people from getting it you have to renew
2007-08-16 - The Radioactive Boy Scout is back in the news
2007-08-16 - What are these strange cmp ecx ecx instructions doing in my C code
2007-08-17 - Do you have a Starbucks name
2007-08-17 - What are these spurious nop instructions doing in my C code
2007-08-20 - Just because youre a control doesnt mean that youre necessarily inside a dialog box
2007-08-20 - When you copy a folder why are the contents merged with the existing contents
2007-08-21 - At last you can turn off the USB 20 balloon
2007-08-21 - Were all in this together Maintaining common tools
2007-08-22 - Disclaimers and such
2007-08-22 - The Northwest Mahler Orchestra presents Messiaens Turangalîla Symphony
2007-08-22 - Windows Vista has more extended options on the context menu
2007-08-23 - Nested fly-out menus are a usability nightmare
2007-08-23 - Which Windows font is named after a tabloid headline
2007-08-24 - Microspeak Value proposition
2007-08-24 - What happens at LL Bean at three in the morning
2007-08-27 - Is this the normal way of comparing toilets
2007-08-27 - Yes indeed all Microsoft files are or should be digitally signed
2007-08-28 - Airport travel tip LAX Terminal 6 United
2007-08-28 - With a new Start menu come new keyboard shortcuts
2007-08-29 - Follow-up Mysterious Dietrich identified from that bizarre Ferarri crash
2007-08-29 - Kernel handles are not reference-counted
2007-08-30 - Microspeak FMLA
2007-08-30 - Somebody actually took the time to translate my book into Japanese it appears
2007-08-31 - The Great Muffin Heist of 07
2007-08-31 - The Internet Explorer pop-up blocker follows guidelines not rules

The Old New Thing - 2007 09

2007-09-03 - Belated follow-up Mike Goodspaceguy Nelson running for public office again
2007-09-03 - Knock knock Whos there Not you any more
2007-09-04 - Does creating a thread from DllMain deadlock or doesnt it
2007-09-04 - Volunteers help save fruit from home fruit trees from going to waste
2007-09-05 - I mean come on these are laptops
2007-09-05 - Whenever there is a coordination problem somebody says Hey lets create a process
2007-09-06 - If your theory is build it and they will come you have to make sure there is a they
2007-09-06 - Its that season again The 2007 Microsoft Company Meeting
2007-09-07 - Sometimes it feels like the effort isnt even appreciated
2007-09-07 - Wayback machine The Fake Job
2007-09-10 - If control-specific messages belong to the WM_USER range why are messages like BM_SETCHECK in the sys
2007-09-10 - The Minimalist Jukebox Festival
2007-09-11 - The wisdom of seventh graders A Wrinkle in Time
2007-09-11 - Whats the difference between EM_UNDO and WM_UNDO
2007-09-12 - Astrologers struggling with reclassification of Pluto
2007-09-12 - Making some statements and asking for advice isnt a question
2007-09-13 - Snatching defeat from the jaws of victory now more popular than vice versa
2007-09-13 - Why isnt QuickEdit on by default in console windows
2007-09-14 - Another type of misplaced apology Apologizing for not knowing the penalty
2007-09-14 - The code page on the server is not necessarily the code page on the client
2007-09-17 - Nearly everybody has a 500 flashlight
2007-09-17 - What do I do with per-user data when I uninstall
2007-09-18 - Japanese street fashion reaches Finland
2007-09-18 - Why is my delay-rendered format being rendered too soon
2007-09-19 - Playing the hippie poetry game for four cents per line
2007-09-19 - What happens if you pass a source length greater than the actual string length
2007-09-20 - Find the Flowers vs Minesweeper
2007-09-20 - It rather involved being on the other side of this airtight hatchway Elevation to administrator
2007-09-21 - The Microsoft Cafeteria Tour Redmond 2006 Edition
2007-09-21 - Whats the BS_PUSHLIKE button style for
2007-09-24 - How do I put a different wallpaper on each monitor
2007-09-25 - Microspeak Going forward
2007-09-26 - The first day at Microsoft A fender-bender
2007-09-27 - 2007 Museum Day courtesy of Smithsonian Magazine
2007-09-27 - Why did the shortcut template change in Windows Vista
2007-09-28 - 2007 Q3 link clearance Microsoft blogger edition

The Old New Thing - 2007 10

2007-10-01 - Suggestion Box 3 short answers part 1 of who knows how many
2007-10-02 - Dont assume the first person to run your program is an administrator
2007-10-02 - Where did WiX get its name
2007-10-03 - Another celebrity knitter Tracey Ullman
2007-10-03 - The most important choice in writing is not what you say its what you dont say
2007-10-04 - The perils of translating words blindly without verifying them in context
2007-10-05 - The dangers of taking a service droid off script
2007-10-05 - The early days of the Microsoft cafeterias
2007-10-08 - Which windows appear in the AltTab list
2007-10-09 - The three tiers of a mixing room of a movie studio
2007-10-09 - Why does ICE16 complain about product names longer than 63 characters
2007-10-10 - Microspeak Actionable
2007-10-11 - Unlikely excuses A faulty microchip
2007-10-11 - Whose idea was it to make CtrlBackspace delete the previous word
2007-10-12 - No good deed goes unpunished Free code samples
2007-10-12 - Not the best way to start out a form letter
2007-10-15 - Nicolas Bourbaki perhaps the biggest inside joke in mathematics
2007-10-15 - Why arent shortcuts as easy as unix links
2007-10-16 - How do I delay the automatic logon process
2007-10-17 - The wrong way to check whether the mouse buttons have been swapped
2007-10-18 - Win32 user interface work is inherently single-threaded
2007-10-19 - Other problems traced to violating COM single-threaded apartment rules in the shell
2007-10-22 - The best way to process Unicode input is to make somebody else do it
2007-10-23 - Superstition Why is GetFileAttributes the way old-timers test file existence
2007-10-24 - Whats the difference between LVM_HITTEST and LVM_INSERTMARKHITTEST
2007-10-25 - Whats the deal with the EM_SETHILITE message
2007-10-26 - If you pass enough random numbers eventually one of them will look valid
2007-10-26 - The King County Council race gets even stranger
2007-10-29 - Why doesnt Explorer show recursive directory size as an optional column
2007-10-30 - Email tips from Adam Phillabaum
2007-10-30 - You cant change it but you can hide it and add something that looks like it
2007-10-31 - It rather involved being on the other side of this airtight hatchway Local execution
2007-10-31 - The Acorn Wand key to a magical puzzle hunt

The Old New Thing - 2007 11

2007-11-01 - Buy an island or a country or at least a replica of one
2007-11-01 - Why does GetDiskFreeSpaceEx return the wrong amount of free space
2007-11-02 - Staying on top of things with timely updates in separator pages
2007-11-05 - Why do we even have the DefWindowProc function
2007-11-06 - VirtualLock only locks your memory into the working set
2007-11-07 - Proto-Microspeak Pre-envisioning
2007-11-09 - You just have to accept that the file system can change
2007-11-12 - I dont know what the Lotus internal clipboard formats are either
2007-11-13 - Amusing bug reports On poetry and prose
2007-11-14 - Psychic debugging IP on heap
2007-11-15 - Im going to keep trying on size fours until I find one that fits
2007-11-15 - Is DEP on or off on Windows XP Service Pack 2
2007-11-16 - In Windows XP even when DEP is on its still sometimes off
2007-11-16 - Who would win in a fight between a penguin and a lemur
2007-11-19 - Darkon A Larping Documentary
2007-11-19 - If you want a menu that shows the contents of the My Computer folder you already know how to do it
2007-11-20 - Dreyers Berry Rainbow Sherbet
2007-11-20 - You even have to watch out for your placeholder bitmaps
2007-11-21 - Alternate theories on how Putin can retain power after his second term expires
2007-11-21 - Hidden gotcha The command processors AutoRun setting
2007-11-22 - When in doubt consult the online Magic 8 Ball
2007-11-23 - Sounds about right What a geek does with an iPhone in the first two days
2007-11-23 - The forgotten common controls The GetEffectiveClientRect function
2007-11-26 - Why are INI files deprecated in favor of the registry
2007-11-27 - What to do when the steering column is stuck and the ignition wont turn
2007-11-27 - When you compress a drive some files are exempted but you can force it and then its your problem
2007-11-28 - The importance of the FORMAT_MESSAGE_IGNORE_INSERTS flag
2007-11-29 - The first day at Microsoft Dont just stand there
2007-11-30 - Hotkeys involving the Windows logo key are reserved by the system

The Old New Thing - 2007 12

2007-12-03 - How do 16-bit programs start up
2007-12-04 - How long does it take to create a 16TB file
2007-12-04 - Would a team of midgets be the greatest offense in baseball history
2007-12-05 - Welcome to the Microsoft email culture
2007-12-05 - Your 25 car emergency survival kit
2007-12-06 - Am I for real or just a robot part 2
2007-12-06 - The Old New Thing the book allegedly now stocked at the Microsoft Company Store Redmond
2007-12-07 - Its amazing you who end up meeting in New York City
2007-12-07 - The magical healing properties of safe mode bonus content
2007-12-10 - What seems obvious today may have been impractical then
2007-12-11 - Exploiting the inattentive episode 3 Confusing movie titles
2007-12-11 - Why is my starting directory ignored when I elevate a command prompt
2007-12-12 - Christmas lights in the Dyker Heights neighborhood
2007-12-12 - When selecting system colors match but dont mix
2007-12-13 - AppInit_DLLs should be renamed Deadlock_Or_Crash_Randomly_DLLs
2007-12-13 - Throwing a cup of hot water into the air in sub-zero temperatures
2007-12-14 - The compatibility constraints of your side effects Beeping
2007-12-14 - Unwittingly enveloped in the Santarchy
2007-12-17 - How did wildcards work in MS-DOS
2007-12-17 - Wall Street bonus seasons trickle-down
2007-12-18 - Book review Advanced Windows Debugging Mario Hewardt and Daniel Pravat
2007-12-18 - Not every first-chance exception is a security vulnerability
2007-12-19 - How do I mark a shortcut file as requiring elevation
2007-12-20 - Consequences of the scheduling algorithm Low priority threads can take 100 CPU
2007-12-20 - Tis the season for top ten lists and manipulation of top ten lists
2007-12-21 - Management-speak Norming around mechanisms
2007-12-24 - What was the role of MS-DOS in Windows 95
2007-12-24 - Where do those Wall Street Journal hedcuts come from
2007-12-25 - You mean you have computers in Taiwan
2007-12-26 - Microthink If you cant measure it then it doesnt exist
2007-12-26 - Paul Shirley Basketball player blogger and author
2007-12-27 - If you need anything other than natural alignment you have to ask for it
2007-12-28 - Now I can read my own writing the way you do With utter incomprehension
2007-12-28 - Psychic debugging The first step in diagnosing a deadlock is a simple matter of following the money
2007-12-31 - 2007 year-end link clearance
2007-12-31 - Why arent console windows themed on Windows XP

The Old New Thing - 2008 01

2008-01-01 - Fact of life People cant see things that are right in front of them
2008-01-02 - A new DUI record set in the state of Washington
2008-01-02 - You know the answer Window destruction
2008-01-03 - In steady state only geeks install Windows but the hard part is getting to that steady state
2008-01-04 - What does it mean when a display change is temporary
2008-01-07 - Bait and switch literally applied to fish
2008-01-07 - Clean-up functions cant fail because well how do you clean up from a failed clean-up
2008-01-08 - Generating initials from a name is trickier than you think
2008-01-08 - Taxes Files larger than 4GB
2008-01-09 - Jag är inte heller en Microsoft-talesman på svenska
2008-01-09 - The impact of hardworking employees on their less diligent colleagues
2008-01-10 - How does the calculator percent key work
2008-01-11 - In order to serve you better Chase resets your marketing preferences
2008-01-11 - Windows is not an MFC delivery channel
2008-01-14 - No matter where you put an advanced setting somebody will tell you that you are an idiot
2008-01-15 - Use WM_WINDOWPOSCHANGED to react to window state changes
2008-01-16 - Jerry Springer The Opera crosses the pond to visit Carnegie Hall
2008-01-16 - Use WM_WINDOWPOSCHANGING to intercept window state changes
2008-01-17 - How did registry keys work in 16-bit Windows
2008-01-18 - Cant sing Cant dance Cant act Try the opera
2008-01-18 - Why do registry keys have a default value
2008-01-21 - If they had felt a little more mischievous when they titled the article Excerpts from Fischer-Spassky
2008-01-21 - When computer programmers dabble in economics Paying parking tickets
2008-01-22 - The Windows 95 volume control almost went to eleven
2008-01-23 - Email tip Dont use a rude subject line just to make your message easier to spot
2008-01-24 - Its one thing to say somebody should do this but doing it is another matter
2008-01-25 - PLAY A Video Game Symphony comes to Seattle
2008-01-25 - The classic start menu is even more classic than it looks
2008-01-25 - What counts as a talent nowadays
2008-01-28 - Crackpots in computer security Dont plug it in man
2008-01-29 - The history of the Windows XP common controls
2008-01-30 - Even without a nitpickers corner I have to worry about nitpickers
2008-01-30 - Microspeak Housing
2008-01-31 - Shell policy is not the same as security
2008-01-31 - The dead home desktop problem returns

The Old New Thing - 2008 02

2008-02-01 - Pass the whipped partially hydrogenated soybean and coconut oils please
2008-02-01 - Strange bug assignment Programs are using too much memory
2008-02-04 - DLL forwarding is not the same as delay-loading
2008-02-04 - The dead home desktop returns from the dead
2008-02-05 - Who decides what can be done with an object or a control
2008-02-05 - Why did the display become a snapshot of the last time the monitor was plugged into the computer
2008-02-06 - Otaku cosplay culture makes another inroad into North America
2008-02-06 - When theres a problem with the platform you blame the platform whether its the platforms fault or not
2008-02-07 - Grass jelly may be an Asian drink but its not crazy
2008-02-07 - What did MakeProcInstance do
2008-02-08 - Why couldnt you have more than one instance of a 16-bit multi-DS program
2008-02-11 - Why does CtrlScrollLock cancel dialogs
2008-02-12 - If you ask whether Ill be at a conference the answer is usually No
2008-02-12 - Thank you people sitting behind me for explaining what the conductor is doing
2008-02-13 - Controlling which devices will wake the computer out of sleep
2008-02-13 - Follow-up Politically motivated armed robber being sent back to the US
2008-02-14 - Bands of Valentine minstrels roaming campus
2008-02-15 - Joshua Roman groupies may have to set up their frequent flyer accounts
2008-02-15 - Theres more to switching stacks than just loading a new stack pointer
2008-02-18 - Whats with all those spam ping-bots
2008-02-18 - Why does Explorer show a sign even if there are no child folders
2008-02-19 - If you used your credit card abroad between 1996 and 2006 you may be eligible for a class action laws
2008-02-19 - When you ask somebody to take a look you need to tell them what you want them to find
2008-02-20 - There can be more than one or zero Converting a process to a window
2008-02-20 - Wait a second I thought we stopped doing this back in 2003
2008-02-21 - Nobody actually talks the way they do in training videos do they
2008-02-22 - Microspeak Assorted babble
2008-02-25 - The United Kingdom of Great Britain Northern Ireland and France
2008-02-25 - When somebody gives you a gift of code its more often than not a burden in disguise
2008-02-26 - Losing the game of Last Checkin Chicken two products in a row
2008-02-26 - TechDays 2008 learns the sneaky way of getting me to show up at your conference
2008-02-27 - If you ask for STANDARD_RIGHTS_REQUIRED you may as well ask for the moon
2008-02-27 - Making a reservation at the Asteroid and interrupting a cookie-bake
2008-02-28 - Coca-Cola for breakfast Its not just for computer geeks any more
2008-02-28 - Why are process and thread IDs multiples of four
2008-02-29 - The 20082009 Seattle Symphony subscription season at a glance
2008-02-29 - Why cant I get FormatMessage to load my resource string

The Old New Thing - 2008 03

2008-03-03 - What do rocket scientists say when they want to say that something isnt hard
2008-03-03 - Why does scheduling a task require a password
2008-03-04 - Email tip A peer-to-peer discussion group does not come with a service level agreement
2008-03-04 - I hadnt realized its an entire genre Music made from Windows system sounds
2008-03-05 - Not my finest hour Using the wrong mouse
2008-03-06 - How do I log on using a dial-up connection on Windows Vista
2008-03-07 - The art of losing things Keep moving them around
2008-03-07 - Why cant I convert a time zone abbreviation into a time zone
2008-03-10 - Why isnt there a GetDlgItemFloat function
2008-03-11 - Exercise doesnt have any effect unless you know youre doing it
2008-03-11 - What a drag Dragging text
2008-03-12 - What a drag Dragging a Uniform Resource Locator URL
2008-03-13 - What a drag Dragging a Uniform Resource Locator URL and text
2008-03-14 - If you grant somebody SeDebugPrivilege you gave away the farm
2008-03-17 - I try not to rely on the kindness of strangers but its a pleasant surprise when strangers come throug
2008-03-17 - Why cant you rename the Recycle Bin
2008-03-18 - What a drag Dragging a virtual file HGLOBAL edition
2008-03-19 - What a drag Dragging a virtual file IStream edition
2008-03-20 - What a drag Dragging a virtual file IStorage edition
2008-03-21 - How to write like Raymond What I tell you three times is true
2008-03-21 - Raymonds highly scientific predictions for the 2008 NCAA mens basketball tournament
2008-03-24 - Buses and trams going to this place called Reservado
2008-03-24 - Whats the difference between the COM and EXE extensions
2008-03-25 - Happy Waffle Day And other holidays named after food
2008-03-25 - Whats the difference between int and INT long and LONG etc
2008-03-26 - We hope you enjoyed this bus tour of Charles de Gaulle International Airport
2008-03-26 - Why are structure names different from their typedef names
2008-03-27 - Meet Deltalina the star of Deltas new in-flight safety video
2008-03-27 - Why do structures get tag names even if there is a typedef
2008-03-28 - Microspeak Newplacement
2008-03-28 - The most academically elite team in college basketball in quest for their first conference win in 21
2008-03-31 - 2008 Q1 link clearance Microsoft blogger edition
2008-03-31 - You can drag multiple virtual objects you know

The Old New Thing - 2008 04

2008-04-01 - Pranksters breathe a sigh of relief There will never be a Building 7
2008-04-02 - Lisbon The city whose public transportation system operates in three dimensions
2008-04-02 - Maybe thats how you do it but around here we have a different convention for indicating which things
2008-04-03 - How do I force the ECHO command to echo
2008-04-03 - When a treehouse just isnt good enough
2008-04-04 - 21 like 24 but three hours shorter
2008-04-04 - STATUS_BUFFER_OVERFLOW really should be named STATUS_BUFFER_OVERFLOW_PREVENTED
2008-04-07 - How to tell which end of the Metro platform to stand on and other survival tips for the Lisbon subway
2008-04-07 - What happened to winipcfg and netmon
2008-04-08 - I always get scared when I see people trying to organize the Internet into hierarchies
2008-04-08 - Over 1500 times the net worth of Bill Gates yet nobody has heard of him
2008-04-09 - Use the error directive to check whether the compiler even sees you
2008-04-10 - The dead desktop computer The good the bad and the ugly but not in that order
2008-04-10 - Who defined my name first Turnabout is fair play
2008-04-11 - We cant cut that its our last feature
2008-04-14 - Follow-up That shopautodotca seocontest online contest
2008-04-14 - Why doesnt Explorer let you create a file whose name begins with a dot
2008-04-15 - Email tip Nostalgia is not a question
2008-04-15 - I know you cant provide tax advice but Im just looking for tax advice
2008-04-16 - Raymond misreads newspaper headlines episode 2
2008-04-16 - Raymonds reading list The Mythical Man-Month The Design of Everyday Things and Systemantics
2008-04-17 - Baby Names for Dummies
2008-04-17 - One-line batch script to delete empty directories
2008-04-18 - Proto-Microspeak Center of value
2008-04-18 - Special advance screening of five seconds of True Lies
2008-04-21 - Fell the force
2008-04-21 - Windows doesnt close windows when a user logs off thats your call
2008-04-22 - The concrete pedestrian bridge in the Washington Park Arboretum claims another victim
2008-04-22 - The contradictory dialog Click Finish to begin
2008-04-23 - News flash Alumni give to colleges and universities to get their kids admitted
2008-04-23 - The double-click time tells the window manager how good your reflexes are
2008-04-24 - Take Our Daughters and Sons to Work today unless you work at main Microsoft campus in which case wait
2008-04-24 - User interface code multi-threaded apartment death
2008-04-25 - News flash Universities are more likely to admit students whose parents gave lots of money
2008-04-25 - On the relationship between specific cases and general cases
2008-04-28 - In search of Rossio Train Station
2008-04-28 - Why does clearing document history also clear Run history
2008-04-29 - Racking up the frequent shopper points at the register office
2008-04-29 - Why do atoms start at 0xC000
2008-04-30 - Book me the next flight to Tokyo no wait the second flight
2008-04-30 - Some other places atoms and the magical 0xC000 arise

The Old New Thing - 2008 05

2008-05-01 - Strange uses for window class atoms
2008-05-01 - Why every advertising agency needs to have a review panel of twelve-year-old boys
2008-05-02 - Canoeing around the Washington Park Arboretum
2008-05-02 - You didnt know you could add properties by atom and its a good thing you didnt know
2008-05-05 - If you pass invalid parameters then all bets are off
2008-05-05 - News flash Its dangerous to drive a car if you are blind
2008-05-06 - Email tip If they didnt get your message then they wont know that they didnt get it
2008-05-06 - Psychic debugging Why does ExitProcess1 produce an exit code of zero
2008-05-07 - Apparently Ive been promoted by mistake all these years
2008-05-07 - The new dietary restriction landscape
2008-05-08 - Gentle reminder On a dialog box do not give OK and Cancel accelerators
2008-05-08 - The economics of soccer penalty kicks
2008-05-09 - Data breakpoints are based on the linear address not the physical address
2008-05-09 - Mothers Day is for all mothers not just your own mother
2008-05-12 - How do I flash my window caption and taskbar button manually
2008-05-12 - In Lisbon walkdont walk signs are mostly decorative
2008-05-13 - The Big Red Switch really was big and red
2008-05-14 - The dead desktop computer From good bad and ugly back to dead
2008-05-14 - Why always Windows XP and Windows Vista and not just XP and Vista
2008-05-15 - Build a slide show out of search results
2008-05-15 - Selling your life for a quarter at a time
2008-05-16 - I assume its cracking good though Im not the expert
2008-05-16 - If users can shut down the machine its not a security hole if they can shut down the machine
2008-05-19 - Bacalhau The unofficial national dish of Portugal and dont pass the salt
2008-05-19 - Why is the function SHStripMneumonic misspelled
2008-05-20 - König Drosselbart Performed in clay feathers and other strange materials
2008-05-20 - The Phantom Bug Why doesnt MessageBox work from my WM_NCDESTROY handler
2008-05-21 - Another interesting detail from the analysis of Windows Error Reporting data for Explorer
2008-05-21 - Food discovery Vietnamese sandwiches aka bánh mì
2008-05-22 - Microspeak On-board verb
2008-05-23 - What does TranslateAccelerator do
2008-05-26 - Welcome to the International Bank of Raymond
2008-05-27 - The cultural axes of punctuality and waiting in line
2008-05-27 - You cant give away something that isnt yours
2008-05-28 - India Calling Call centers from the Indian point of view
2008-05-28 - Reading a contract from the other side SHSetInstanceExplorer and SHGetInstanceExplorer
2008-05-29 - The sad demise of whimsical teasing in Comic Chat
2008-05-30 - Behind the Scenes at Mythbusters does not include experiments or explosions
2008-05-30 - Why are some GDI functions named ExtXxx instead of XxxEx

The Old New Thing - 2008 06

2008-06-02 - Raymond misreads newspaper headlines episode 3
2008-06-02 - Why are accelerators for hidden controls still active
2008-06-03 - Dlaczego Microsoft zatopił Polskę
2008-06-03 - Food products that are offenses against nature Bisquick Shake n Pour
2008-06-04 - Isnt the Learning Annex for total losers
2008-06-04 - Why has my clipboard stopped working
2008-06-05 - Portugal TechDays 2008 A report
2008-06-06 - Million Dollar Password At least it shares a name with the original
2008-06-06 - Why does OpenProcess succeed even when I add three to the process ID
2008-06-09 - Money The new plagiarism
2008-06-09 - Why are DLLs uninitialized in the wrong order
2008-06-10 - Simply attach a piano to the end of the trebuchet
2008-06-10 - There are only twelve function keys and who says theres somebody there to push them
2008-06-11 - If you say that you dont care about something you shouldnt be upset that it contains garbage
2008-06-12 - Email tip Pronouns in the subject line are in the eye of the beholder
2008-06-13 - Dont be helpless You can find information too if you try
2008-06-13 - Sometimes its easier just to let the native speaker win
2008-06-16 - Blinding bank robbers with kindness
2008-06-16 - How do the common controls convert between ANSI and Unicode
2008-06-17 - Microspeak Pricing uplift
2008-06-18 - MSDN-speak What does it mean when a parameter contains a value
2008-06-19 - Why is there a menu show delay anyway
2008-06-20 - Donations to the Microsoft Archives Pens CDs and paperweights
2008-06-23 - Just because youre using a smart pointer class doesnt mean you can abdicate understanding what it doe
2008-06-23 - Raymond misreads acronyms MSPP-PVP
2008-06-24 - Dont require your users to have a degree in philosophy episode 3
2008-06-25 - The difference between a junior and senior position at a video card company
2008-06-26 - The disappointment of people who need to have their hand held from beginning to end
2008-06-26 - The mystery of the garbage lady
2008-06-27 - GUIDs are globally unique but substrings of GUIDs arent
2008-06-30 - 2008 mid-year link clearance
2008-06-30 - You dont need that 90 byte whereis program any more

The Old New Thing - 2008 07

2008-07-01 - András Schiff 2006 lectures on the Beethoven piano sonatas
2008-07-01 - Windows Vista changed the AltTab order slightly
2008-07-02 - Raymond misreads newspaper head no wait I didnt
2008-07-02 - Uninitialized floating point variables can be deadly
2008-07-03 - How did the invalid floating point operand exception get raised when I disabled it
2008-07-04 - Double the usual number of fire alarms today
2008-07-04 - When anybody can look up your name in the company directory and pay a visit
2008-07-07 - Why is the LOADPARMS32 structure so messed up
2008-07-08 - The evolution of menu templates Introduction
2008-07-08 - Wikipedia has created its own reactionary subculture
2008-07-09 - The evolution of menu templates 16-bit classic menus
2008-07-09 - Warning This cereal may contain traces of spiders
2008-07-10 - News flash Car salesmen are sneaky and underhanded
2008-07-10 - Whats the deal with that alternate form for menu item template separators
2008-07-11 - Crazy ideas at the lunch table The ice cream bicycle
2008-07-11 - The evolution of menu templates 32-bit classic menus
2008-07-14 - When companies make it hard for you to pay money they are owed
2008-07-14 - Why does the Install Font dialog look so old-school
2008-07-15 - The evolution of menu templates 16-bit extended menus
2008-07-16 - News flash Online drug sales are shady
2008-07-16 - The evolution of menu templates 32-bit extended menus
2008-07-17 - Microspeak Well actually management-speak
2008-07-17 - The best building name on the University of Washington campus
2008-07-18 - A new record for the shortest amount of time between an email message and its resend
2008-07-18 - Dr Horribles Sing-Along Blog available online for a short time only
2008-07-21 - A modest proposal Getting people to stop buying SUVs
2008-07-21 - MessageBoxIndirect loads the icon itself you cant hand it a pre-loaded icon
2008-07-22 - The Microsoft Company Picnic has as a side effect a demonstration of Microsofts rich cultural diversi
2008-07-22 - Windows could not properly load the XYZ keyboard layout
2008-07-23 - Theorize if you want but if the problem is right there in front of you why not go for the facts
2008-07-23 - Things other people have written that have amused me
2008-07-24 - Reading a contract from the other side Simulating a drop
2008-07-25 - Simulating a drop part two
2008-07-25 - Why seventh grade students want to go to weddings
2008-07-28 - How can SIGINT be safely delivered on the main thread
2008-07-29 - Be careful what you name your mailing list
2008-07-29 - The sign that a trend is over It shows up in a movie
2008-07-30 - What does each country claim for its own
2008-07-30 - When I double-click an Excel spreadsheet Excel opens but the document doesnt
2008-07-31 - Dont be helpless You can put things together it doesnt have to be a single command

The Old New Thing - 2008 08

2008-08-01 - I warned you The dangers of attaching input queues
2008-08-04 - Why when you sort by name doesnt it actually sort by name
2008-08-05 - AOL is moving closer to jettisoning dial-up except for one person
2008-08-05 - Microspeak The long pole
2008-08-06 - The caret serves as the continuation character for batch files
2008-08-06 - Whats with this MSH_MOUSEWHEEL message
2008-08-07 - For that youll have to call security
2008-08-07 - If the law says you cant file a petition you might need to file it anyway in case somebody later says
2008-08-08 - If you return FALSE from DLL_PROCESS_ATTACH will you get a DLL_PROCESS_DETACH
2008-08-08 - Raymond rewrites newspaper headlines
2008-08-11 - Psychic debugging Why cant StreamReader read apostrophes from a text file
2008-08-11 - Supplementary reading on the subject of anonymous functions and other CLR topics
2008-08-12 - The implementation of iterators in C and its consequences part 1
2008-08-12 - The unwritten rule of riding a Seattle Metro bus
2008-08-13 - The implementation of iterators in C and its consequences part 2
2008-08-14 - The gradual erosion of the car trip experience
2008-08-14 - The implementation of iterators in C and its consequences part 3
2008-08-15 - The Seattle Danskin Womens Triathlon 2008
2008-08-15 - The implementation of iterators in C and its consequences part 4
2008-08-18 - As a courtesy to performers and other audience members please turn off blinking head-mounted devices
2008-08-18 - What happened to the Search option on the right hand side of the Start menu
2008-08-19 - Its not Christmas Nobody enjoys unwrapping your present
2008-08-20 - Icons and cursors know where they came from
2008-08-20 - When somebody says a game is like chess it is usually completely unlike chess
2008-08-21 - Oh no theres fog in San Francisco
2008-08-21 - Why does Explorer generate a page fault every two seconds
2008-08-22 - Destroying the module and resource information associated with an icon
2008-08-22 - Keeping a visit a surprise after people have already guessed that youre coming
2008-08-25 - Wedding two-year-old flower girl wildcard
2008-08-25 - Why was the RAM drive removed from Windows 95
2008-08-26 - DHS The Television Series the next chapter
2008-08-26 - Microspeak Pencils down
2008-08-27 - What does each country claim for its own greatest hits
2008-08-27 - What possible use are those extra bits in kernel handles Part 1 Sentinels
2008-08-28 - The stroke-count-based sort isnt random although it looks that way if you only see it in translation
2008-08-28 - What possible use are those extra bits in kernel handles Part 2 Overcoming limited expressiveness
2008-08-29 - What possible use are those extra bits in kernel handles Part 3 New object types

The Old New Thing - 2008 09

2008-09-01 - How do I convert an error code to text when FORMAT_MESSAGE_FROM_SYSTEM doesnt work
2008-09-01 - It helps if you write a cover letter and remember the name of your interviewer
2008-09-02 - Tales from the interview Can you rotate this two-dimensional array
2008-09-03 - Tales from the interview Lunch is not a competition
2008-09-04 - Tales from the interview Lunch is not a competition episode 2
2008-09-05 - Tales from the interview Anticipating your own incompetence is not a good interview strategy
2008-09-08 - Ill see some of you in Los Angeles but this time itll be October
2008-09-08 - QueryPerformanceCounter counts elapsed time not CPU cycles
2008-09-09 - If you use an absurd signature I might end up sending it back to you
2008-09-10 - And now your moment of reflection
2008-09-10 - What were ShellExecute hooks designed for
2008-09-11 - For a place thats supposed to be full of doctors they sure dont look like doctors
2008-09-11 - Suggestion Box 3 short answers part 2 of who knows how many
2008-09-12 - The terms of service you have to accept before you can see them
2008-09-12 - Who is responsible for destroying the font passed in the WM_SETFONT message
2008-09-15 - I no longer have to remind the payroll department to gear up for annual raises
2008-09-16 - The purpose of charts is normally to make information easier not harder to understand
2008-09-17 - Well at least thats one fewer program that relies on window handles being even numbers
2008-09-18 - How can I tell that a directory is really a recycle bin
2008-09-19 - How can I tell that a directory is weird and should be excluded from the user interface
2008-09-19 - Steamy coffee leaves grounds for concern
2008-09-22 - Ive seen why people steal the foreground window for their dialog box
2008-09-22 - News flash Doing something that requires your attention reduces your ability to do other things at th
2008-09-23 - Microspeak Space delivery
2008-09-24 - How do I change the size of my desktop icons
2008-09-24 - When attending a training session on how not to mess up your life try not to mess up your life
2008-09-25 - Even if a function doesnt do anything you still have to call it if the documentation says so because
2008-09-25 - The description of my 2008 PDC talk is wrong
2008-09-26 - ERRORLEVEL is not ERRORLEVEL
2008-09-29 - Anybody can make up a generic mapping
2008-09-29 - Meet the authors Mario Hewardt and Daniel Pravat authors of Advanced Windows Debugging
2008-09-30 - 2008 Q3 link clearance Microsoft blogger edition
2008-09-30 - When computer programmers dabble in economics Buying prepaid lunch vouchers

The Old New Thing - 2008 10

2008-10-01 - An artists conception of the new citizenship test
2008-10-01 - Why do maximized windows lose their title bar translucency
2008-10-02 - The dangers of setting your double-click speed too short
2008-10-03 - Acquire and release sound like bass fishing terms but they also apply to memory models
2008-10-03 - Stories of crossing into Canada The wedding
2008-10-06 - Eventually nothing is special any more
2008-10-07 - Microspeak Teaming
2008-10-08 - Why does the Disk Management snap-in report my volume as Healthy when the drive is dying
2008-10-09 - How can I increase the number of files I can open at a time
2008-10-10 - How do I suppress the CapsLock warning on password edit controls
2008-10-13 - Why does killing Winlogon take down the entire system
2008-10-14 - Why does Task Manager let me kill critical system processes
2008-10-15 - Disable your wireless network card to speed up VPNing
2008-10-15 - Possessed A documentary about hoarding
2008-10-16 - Psychic debugging Why your thread is spending all its time processing meaningless thread timers
2008-10-17 - The cult of PowerPoint episode 2
2008-10-20 - Off-Roading The Old New Thing
2008-10-20 - Why cant you thunk between 32-bit and 64-bit Windows
2008-10-21 - Strange things happen when you let people choose their own name part 1
2008-10-22 - Strange things happen when you let people choose their own name part 2
2008-10-23 - Strange things happen when you let people choose their own name part 3
2008-10-24 - Man this housing downturn is hitting everyone
2008-10-24 - Sucking the trap frame out of a kernel mode stack trace
2008-10-27 - Ah local Los Angeles television news how I miss thee
2008-10-27 - If you dont want to try to repair the data then dont but you should at least know that you have corru
2008-10-28 - To climb the corporate ladder youll need some rope but rope has many purposes
2008-10-28 - Typo patrol at the 2008 PDC
2008-10-29 - PDC 2008 notes How to get to room 406A and other notes
2008-10-29 - Why does my Run dialog say that tasks will created with administrative privileges
2008-10-30 - Dude the admission bracelet goes around your wrist
2008-10-30 - If youre going to reformat source code please dont do anything else at the same time
2008-10-31 - Stick to the normal candy and nobody gets hurt
2008-10-31 - Working with ambiguous and invalid points in time in managed code

The Old New Thing - 2008 11

2008-11-03 - If theres already a bug its not surprising that theres a possibility for error
2008-11-03 - Sensor development kits were flying off the shelves
2008-11-04 - How did Spicy Hot V-8 vegetable juice get added to the complimentary beverages in Microsoft kitchens
2008-11-04 - Quite possibly my last in-person ballot for a long time
2008-11-05 - Microspeak Represent
2008-11-06 - Does version 6 of the common controls support ANSI or not
2008-11-06 - What seventh grade students want to be when they grow up an analysis
2008-11-07 - Self-esteem gone overboard The perils of a global namespace
2008-11-07 - What I dont get about bank robbers
2008-11-10 - How slow do you have to slow-double-click for it to be a rename
2008-11-10 - What do these topics have in common
2008-11-11 - Now its like people buy sneakers to make money out of them
2008-11-11 - You cant fight in here this is the War Room
2008-11-12 - Doesnt matter what your marketing technique is for your compiler if nobody actually writes code in yo
2008-11-13 - Rearranging the cities into a much more visually pleasing arrangement
2008-11-13 - Why is the maximum bootini delay 11 million seconds
2008-11-14 - Email tip If you ask a question that can be answered in only one way but thats not the answer dont be
2008-11-17 - Why bother with RegisterWaitForSingleObject when you have MsgWaitForMultipleObjects
2008-11-17 - Youd think this sort of disclaimer on childrens modeling clay would not be necessary
2008-11-18 - Is second-hand advice better than no advice at all
2008-11-19 - Adventures in product testing This phones so hot itll set your head on fire
2008-11-19 - If you wait long enough everything is our top priority
2008-11-20 - If everything is top priority then nothing is top priority
2008-11-21 - Rachmaninov had big hands An illustration
2008-11-21 - The great thing about priorities is that you can always go one higher
2008-11-24 - Consequences of the Explorer view model If you create a view then you succeeded even if youd rather f
2008-11-24 - When youre walking around a city you usually forget to look up
2008-11-25 - Yes I filed an expense report for a hair dryer why do you ask
2008-11-26 - The cost-benefit analysis of bitfields for a collection of booleans
2008-11-27 - Not my finest hour Getting instructions on doing something Ive already done
2008-11-27 - Welcome to the 2008 holiday shopping season
2008-11-28 - Just because a method is called Refresh doesnt mean that it refreshes what you want
2008-11-28 - The Ballard Locks will be empty this week

The Old New Thing - 2008 12

2008-12-01 - Dont be helpless You can find information too if you try episode 2
2008-12-01 - Oh I feel so bad for those poor Wall Street folks who have to have a normal party instead of a ridicu
2008-12-02 - Raymonds technique for getting people to leave a meeting room when their meeting runs over
2008-12-02 - That guy in the neighborhood who has way too many Christmas lights
2008-12-03 - High Contrast Mode is not the same as High Contrast Scheme
2008-12-03 - The struggle against those annoying plastic packages gains a few allies
2008-12-04 - Neuroscience can be used for good or for evil this one might fall in the evil bucket
2008-12-04 - When you start getting in-page errors on your hard drive its time to go shopping for a new hard drive
2008-12-05 - Thrift stores drowning in Christmas impulse gifts from yesteryear
2008-12-05 - Why are the generic version numbers called NTDDI
2008-12-08 - A file can go by multiple names but two files cant have the same name
2008-12-09 - Email tip If you want people to look at a screen shot you have to tell them what theyre looking at
2008-12-09 - The role of vitamin D in beta cell function The dance
2008-12-10 - A bar on Microsoft main campus What should we call it
2008-12-10 - How do I change the directory Windows uses for user profiles
2008-12-11 - Dont use global state to manage a local problem
2008-12-11 - The Washington 2008 unclaimed property auction
2008-12-12 - Being lucky may be a matter of observing things you werent planning to observe
2008-12-12 - PDC 2008 notes The aftermath
2008-12-15 - Today we use a GPS to locate Baby Jesus
2008-12-15 - Why does the Explorer address bar reset itself while youre typing into it
2008-12-16 - Microspeak Suited and booted
2008-12-16 - The worms go in the worms go out
2008-12-17 - How to create a Zune podcast from an audiobook or other files you already have
2008-12-18 - How do I obtain the computer manufacturers name
2008-12-19 - What is the mysterious fourth message box button
2008-12-22 - On 64-bit Windows 32-bit programs run in an emulation layer and if you dont like that then dont use t
2008-12-22 - The Fargo campus responds to Redmonds December 2008 storm conditions
2008-12-23 - Misheard lyrics as applied to Christmas songs
2008-12-23 - Why isnt there a SendThreadMessage function
2008-12-24 - Foiled by my withered hand
2008-12-25 - Then again sometimes the improvement is merely incremental
2008-12-26 - Why are all computers shown with a Printers folder even if printer sharing is disabled
2008-12-29 - Undecorating names to see why a function cant be found
2008-12-30 - Crazy or cell phone
2008-12-30 - Every crash is a potential security vulnerability
2008-12-31 - 2008 year-end link clearance
2008-12-31 - Sorry I dont get calls on this phone often

The Old New Thing - 2009 01

2009-01-02 - Kids love cake but that doesnt make them good judges of cake
2009-01-02 - Why doesnt Windows 95 format floppy disks smoothly
2009-01-05 - Even if you have code to handle a message youre allowed to call DefWindowProc because you were doing
2009-01-05 - Not my finest hour Misreading a product label
2009-01-06 - Microspeak Learnings
2009-01-07 - Raymond misreads flyers A Taste of WWL
2009-01-07 - When debugging a stack overflow you want to focus on the repeating recursive part
2009-01-08 - The programmers dont design skins they just make skins possible
2009-01-09 - Its surprising how suddenly those new skins started pouring in
2009-01-11 - Follow-up A new DUI record set in the state of Washington
2009-01-11 - How do I write a program that can be run either as a console or a GUI application
2009-01-12 - How does PostQuitMessage know which thread to post the quit message to
2009-01-12 - xkcd breaks the news on the new Windows 7 user interface
2009-01-13 - Excessive speed appeared to be a factor in the crash
2009-01-13 - Where does shellwindowscom get information about file extensions and how do I get in on that action
2009-01-14 - The day shellwindowscom went down
2009-01-15 - If youre at a Thai restaurant with a Thai person whos ordering food in Thai and she asks you if you l
2009-01-15 - What is this magic setting that synthesizes Unicode from non-Unicode
2009-01-16 - You cannot pre-emptively reserve a file extension
2009-01-19 - May the Horse Be With You Stories from the racetrack
2009-01-19 - Why isnt the screen resolution a per-user setting
2009-01-20 - If you didnt like the answer asking the same question again is unlikely to help
2009-01-21 - If you have full trust then you can do anything so dont be surprised that you can do bad things too
2009-01-22 - Why do I get the error REGDB_E_IIDNOTREG when I call a method that returns an interface
2009-01-23 - Why cant you apply ACLs to registry values
2009-01-26 - But then we ran into problems when we started posting 10000 messages per second
2009-01-26 - I think I can read the bassoonists music from here
2009-01-27 - Theres camping and then theres luxury camping and then theres ridiculous luxury camping
2009-01-27 - Why cant I see all of the 4GB of RAM in my machine redux
2009-01-28 - The great thing about being popular is that everybody wants to see you go down
2009-01-28 - When you have only 16KB of memory you cant afford to waste any of it on fluffy stuff
2009-01-29 - A process shutdown puzzle
2009-01-29 - Games to play at your Battlestar Galactica watching party
2009-01-30 - The problem with The Month Where Everyone Focuses on Improving Documentation is that most people are

The Old New Thing - 2009 02

2009-02-02 - How do I programmatically show and hide the Quick Launch bar
2009-02-02 - Welcome to Groundhog Day a holiday where the same thing happens over and over
2009-02-03 - Microspeak Recommends noun
2009-02-03 - The 20092010 Seattle Symphony subscription season at a glance
2009-02-04 - Being lucky is observing what you werent expecting An illustration
2009-02-04 - What is the terminology for describing the various parts of the registry
2009-02-05 - What the various registry data types mean is different from how they are handled
2009-02-06 - A process shutdown puzzle Answers
2009-02-09 - Changes to the the 20092010 Seattle Symphony subscription season
2009-02-09 - What is the purpose of the RunAsCommand value
2009-02-10 - A different type of writing exercise this time in preparation for buying a house
2009-02-11 - If you get confused by a register dump then youll just have to accept that some of my postings wont m
2009-02-11 - In order to serve you bett wait it really is better Fuel surcharges
2009-02-12 - Superthunderstingcar is go
2009-02-12 - What does the COM Surrogate do and why does it always stop working
2009-02-13 - The checkbox The mating call of the loser
2009-02-13 - The love bus also known as Metro Bus Route number 308
2009-02-16 - Dont keep track of information you dont need
2009-02-17 - Another Seattle bus tool One Bus Away
2009-02-17 - Why doesnt the file system have a function that tells you the number of files in a directory
2009-02-18 - Guest TCP psychic debugging Why the remote server keeps RSTing the connection
2009-02-19 - Why do my file properties sometimes show an Archive check box and sometimes an Advanced button
2009-02-20 - Announcements on the ferry and hills that grew while I was away
2009-02-20 - Foreground activation permission is like love You cant steal it it has to be given to you
2009-02-23 - Why is there no supported way to get the command line of another process
2009-02-24 - Email tip Just because you get answers when you misuse a mailing list doesnt doesnt mean you should c
2009-02-24 - Rob Cockerham investigates those companies that pay cash for gold
2009-02-25 - Smart quotes The hidden scourge of text meant for computer consumption
2009-02-25 - Star Trek meets The A-Team
2009-02-26 - Pressing a registered hotkey gives you the foreground activation love
2009-02-27 - How does Raymond decide what to post on any particular day
2009-02-27 - What are your high school language students complaining about today

The Old New Thing - 2009 03

2009-03-02 - Do QueryProcessCycleTime and QueryThreadCycleTime include cycles spent in kernel mode
2009-03-02 - The Suggestion Box is for suggestions thats why its called a Suggestion Box
2009-03-03 - If Twitter is micro-blogging then is what Im doing macro-tweeting
2009-03-03 - Why is there a dry fountain in the Redmond North campus
2009-03-04 - Microspeak Year-over-year
2009-03-05 - Fixups are not the same as rewriting code theyre just fixups
2009-03-05 - Race you to the top The Empire State Building Run-Up
2009-03-06 - Why is the Win32 epoch January 1 1601
2009-03-09 - Totally Recall The meal
2009-03-09 - Why doesnt the MoveWindow function generate the WM_GETMINMAXINFO message
2009-03-10 - The house no-electronics zone
2009-03-10 - Why dont the favorites I copy into the common Favorites directory show up in the Favorites menu of al
2009-03-11 - Et tu Fargo
2009-03-11 - Sometimes people dont even read what theyre typing
2009-03-12 - Engineering is about tradeoffs How hard will you work to save 68KB of disk space
2009-03-12 - If Michael Jackson took up bhangra dancing
2009-03-13 - Raymond rewrites newspaper headlines episode 2
2009-03-13 - The perilous quandary of including external drivers on the Windows CD
2009-03-16 - Overheard conversation fragment Shrimp is not vegetables
2009-03-16 - Why does the MoveWindow function let you suppress repainting
2009-03-17 - Well duh Id sure better get my money back
2009-03-18 - Raymonds highly scientific predictions for the 2009 NCAA mens basketball tournament
2009-03-18 - You cant globally reserve screen space you can put up signs but if somebody ignores the sign youll ha
2009-03-19 - Defense in depth means that you protect against exploits that dont exist yet
2009-03-20 - How to write like Raymond Intentional typographical errors
2009-03-23 - Whats the point of the MoveWindow function when we already have SetWindowPos
2009-03-24 - Double secret auto-arrange probation
2009-03-25 - Caption contest The pinball machine
2009-03-26 - The inability to lock someone out of the registry is a feature not a bug
2009-03-27 - I drive a car the way most people use a computer
2009-03-30 - What is the implementation of WM_PRINTCLIENT
2009-03-31 - 2009 Q1 link clearance Microsoft blogger edition
2009-03-31 - Freudian typo The spinlock

The Old New Thing - 2009 04

2009-04-01 - Office redecoration The classic Microsoft prank
2009-04-02 - Windows 95 almost had floppy insertion detection but the training cost was prohibitive
2009-04-03 - On the almost-feature of floppy insertion detection in Windows 95
2009-04-06 - Theres nothing wrong with making bold treeview items
2009-04-07 - Clap and the filter graph claps with you
2009-04-08 - Let GDI do your RLE compression for you
2009-04-09 - Being able to call a function without using GetProcAddress is not a security vulnerability
2009-04-10 - When people ask to disable drag and drop they often are trying to disable accidental drag and drop
2009-04-13 - Why is there no support in the window manager for mouse button chording
2009-04-14 - Microspeak The plate
2009-04-15 - Taxes redux You cant open the file until the user tells you to open it
2009-04-16 - The frustration of people who are not interested in why something works but only interested in the ma
2009-04-17 - Why is the animation common control limited to RLE8-compressed animations
2009-04-20 - Principles of economics translated
2009-04-20 - The dangers of destroying a window while it is processing a sent message
2009-04-21 - How to answer the telephone according to the manual
2009-04-22 - If you cant find the statistics you want then just make them up
2009-04-22 - What structure packing do the Windows SDK header files expect
2009-04-23 - Fashion is something that can be acquired by looking at lots of different fashions
2009-04-23 - Why are there two values for PSH_WIZARD97
2009-04-24 - No were not nerds why do you ask
2009-04-27 - The Start menu pin list is just a list of items theres no magic
2009-04-27 - What kind of uncle am I
2009-04-28 - A simple bar chart on letter distribution
2009-04-29 - Qrystal does more research into those spam blogs
2009-04-29 - Why is there sometimes a half-second delay between the click and the action
2009-04-30 - Identity theft via repeated name changes
2009-04-30 - Those notification icons with their clicks double-clicks right-clicks whats up with that

The Old New Thing - 2009 05

2009-05-01 - When advanced users outsmart themselves The device removal notification icon
2009-05-04 - The dummy icon that doesnt know that its fifteen seconds are over
2009-05-05 - The social skills of a thermonuclear device Why did you hang up
2009-05-06 - You can tell which people listed blogging as a performance review goal
2009-05-07 - A puzzle Why are so many fake LiveJournal blogs written by 29-year-olds
2009-05-07 - When you subclass a window its the original window procedure of the window you subclass you have to c
2009-05-08 - Writing a sort comparison function redux
2009-05-11 - How do I get a window back on the screen when it moved far far away
2009-05-12 - Microspeak T-shirt sizing
2009-05-13 - People become more trustworthy the more you trust them
2009-05-14 - Creating shortcuts in the same folder as the target isnt as stupid as you may think
2009-05-14 - Parents billed when kids miss school Pay for play
2009-05-15 - Imagine our luck when we found one of the fancy conference rooms available for our meeting
2009-05-15 - Windows Vista User Experience Guidelines is online and downloadable
2009-05-18 - How do I know whether a window message was processed
2009-05-19 - Just letting you know I had to reboot my telephone
2009-05-20 - Signs that your new building was originally designed for another purpose Rest rooms
2009-05-21 - First try reading the error message Episode 1
2009-05-22 - Chicken chicken chicken chicken
2009-05-22 - If an event is signaled more than once are they delivered in the order in which they were signaled
2009-05-25 - The latest installment of Wallace and Gromit coming to Seattle
2009-05-25 - Why cant you change the alignment of an edit control after it has been created
2009-05-26 - How to hide privacy violations in a privacy disclosure statement part 2
2009-05-26 - What do you call a gadget that is used for debugging which looks at the properties of other gadgets
2009-05-27 - Before designing and implementing around an assumption it helps to check that your assumption is true
2009-05-28 - An unexpected application of the First Law of Thermodynamics
2009-05-28 - Im sorry you dont have permission to know where this shortcut file should show up in the Explorer win
2009-05-29 - Alternatives to using the error directive to check whether the compiler even sees you
2009-05-29 - Lessons from the state police like what to do when they pull you over

The Old New Thing - 2009 06

2009-06-01 - Whew Im not doing that again
2009-06-01 - Why does the CreateProcess function modify its input command line
2009-06-02 - Spam trackback attack returns its not a matter of whether but how much
2009-06-02 - Who you calling boring
2009-06-03 - Last tube standing The Cardboard Tube Fighting League
2009-06-03 - What does the Zw prefix mean
2009-06-04 - Cool guys dont look at explosions
2009-06-04 - Why cant I rotate the display with ChangeDisplaySettingsEx
2009-06-05 - Bonus chatter about that virus that is responsible for the top six Explorer crashes
2009-06-05 - Im sorry Brian George but we got cut off and I couldnt call you back
2009-06-08 - On the importance of sanity-checking values where money is involved
2009-06-08 - Why isnt there a separate British English version of Windows
2009-06-09 - Mixed messages from the IT department regarding email safety
2009-06-10 - Foreign languages can be used as a secret code but its not always a good secret code
2009-06-10 - Why does MS-DOS use 83 filenames instead of say 112 or 1616
2009-06-11 - Spam trackback attack week 2 statistics
2009-06-11 - Why does Explorer use the term KB instead of KiB
2009-06-12 - A concrete illustration of practical running time vs big-O notation
2009-06-12 - Fortune cookie fortunes are getting less and less interesting all the time
2009-06-15 - Happening to be at the same post-concert restaurant as symphony performers
2009-06-15 - Why do some file operations take file names and others take handles
2009-06-16 - Management-speak Upping the sats and stimulating the ecosystem
2009-06-17 - Sure I can get spurious WM_MOUSEMOVE messages but why do they keep streaming in
2009-06-17 - Welcome to Leavenworth Washingtons faux-Bavarian village
2009-06-18 - Dont you hate it when someone leaks a ref to your clothes
2009-06-18 - The dangers of mixing synchronous and asynchronous state
2009-06-19 - The butter and the money for the butter
2009-06-19 - You cant leave a critical section you never entered
2009-06-22 - High school students guess what happens to money deposited into checking accounts
2009-06-22 - Why does a flashing taskbar result in a fullscreen console returning to windowed mode
2009-06-23 - Oh great and my phone even has a CPU meter
2009-06-24 - Spam trackback attack week 3 statistics
2009-06-24 - Yet another experiment in motivating people to find and fix bugs
2009-06-25 - First try reading the error message episode 2 Even programmers see error messages without reading the
2009-06-25 - News flash Children are influenced by advertising
2009-06-26 - John Swansburg deftly declines the fine print disclaimer on his Heelys
2009-06-26 - The thread that gets the DLL_PROCESS_DETACH notification is not necessarily the one that got the DLL_
2009-06-29 - If you want to consume all the virtual address space well then go ahead and consume it you dont need
2009-06-29 - Learning to lie Early forays
2009-06-30 - 2009 mid-year link clearance
2009-06-30 - Microspeak The plan for the plan

The Old New Thing - 2009 07

2009-07-01 - The New York Times says Im doing it all wrong but maybe thats for the better
2009-07-02 - Foreign languages can be used to impede communication
2009-07-02 - You can use a Coke slogan as your password but not a Pepsi one
2009-07-03 - The most unwanted song ever
2009-07-03 - Why does my screen go black when an emergency hibernation is in progress
2009-07-06 - A 32-bit application can allocate more than 4GB of memory and you dont need 64-bit Windows to do it
2009-07-06 - If somebody speaks a language Im not expecting sometimes I dont understand it even though I should
2009-07-07 - Command line parsers look at what you typed not what what you typed looks like
2009-07-07 - More musings on the peculiar linguistic status of languages acquired in childhood
2009-07-08 - Attack of the rogue feature Oh no where did my Explorer icon labels go
2009-07-08 - Up and down often substitute for compass directions but you have to know when youve taken it too far
2009-07-09 - Film students and The Bicycle Thief
2009-07-09 - MS-DOS also allowed spaces in file names although vanishingly few programs knew how to access them
2009-07-10 - If dynamic DLL dependencies were tracked theyd be all backwards
2009-07-10 - The world reaction to the unexpected death of Michael Jackson extends to young children
2009-07-13 - Failed follow-up The case of the dubious dental work
2009-07-13 - Speculation on how a mishandled 13-character string can result in a blue screen
2009-07-14 - The fun and profit of manipulating the DIB color table can be done without having to modify it
2009-07-14 - What happens to your restaurant tip
2009-07-15 - On gender differences in expectations of thinness and the impact on guys who live in their parents ba
2009-07-15 - Separating the metadata from the DIB pixels Precalculating the BITMAPINFO
2009-07-16 - Caption contest The pinball machine Results
2009-07-16 - Separating the metadata from the DIB pixels Changing the raster operation
2009-07-17 - The disembodiment of DIBs from the DIB section
2009-07-20 - Why was MoveTo replaced with MoveToEx
2009-07-21 - Proto-Microspeak Coceptualize
2009-07-22 - I saw a fascinating documentary about bugs
2009-07-22 - Microspeak Whale Boy
2009-07-23 - Changes to the the 20092010 Seattle Symphony subscription season part 2
2009-07-23 - Your debugging code can be a security hole Contest tickets
2009-07-24 - If you wished a language supported the preprocessor you know you can fix that
2009-07-24 - The guerilla wedding
2009-07-27 - Conway-Kochen Free Will Theorem Lecture series
2009-07-27 - Polling by sleeping versus polling by waiting with a timeout
2009-07-28 - How do I quickly position two windows side by side
2009-07-28 - Mr Lee CatCam lets you see what a cat does all day
2009-07-29 - How do I put a window at the edge of the screen without triggering the automatic positioning behavior
2009-07-29 - The advantage of knowing your limits of discrimination
2009-07-30 - How do I quickly position two windows side by side using only the keyboard
2009-07-30 - What is the difference between CSIDL_DESKTOP and CSIDL_DESKTOPDIRECTORY
2009-07-31 - How organizations inadvertently confirm facts when they try not to
2009-07-31 - What is the difference between Directory and DirectoryBackground

The Old New Thing - 2009 08

2009-08-03 - A burglar tells you the best place to hide your money
2009-08-03 - When giving a presentation with a diagram pretend the diagram doesnt exist
2009-08-04 - Programming means that sometimes you have to snap two blocks together
2009-08-05 - How do you drop on the background of an Explorer window when it is in details view
2009-08-05 - Searching for Evil Spot the scam
2009-08-06 - The great thing about regular expression engines is that there are so many to choose from
2009-08-07 - Not beany enough
2009-08-07 - SHCIDS_CANONICALONLY is the moral equivalent in the shell namespace of the Unicode ordinal comparison
2009-08-10 - The wisdom of seveHHHHsixth graders What it means to be an adult
2009-08-10 - Why doesnt StringFormat throw a FormatException if you pass too many parameters
2009-08-11 - Actually FlagsAttribute cant do more thats why its an attribute
2009-08-11 - The wisdom of seventh graders What it means to be an adult
2009-08-12 - The wisdom of sevHHHeighth graders What it means to be an adult
2009-08-12 - Why cant I pass a reference to a derived class to a function that takes a reference to a base class b
2009-08-13 - Common gotchas when writing your own pinvoke
2009-08-13 - Landing the Space Shuttle is hard enough as it is
2009-08-14 - Its not just on the Internet that nobody knows you dont have a real office
2009-08-14 - Why cant I declare a type that derives from a generic type parameter
2009-08-17 - The format rectangle is recalculated whenever the window resizes and thats a good thing
2009-08-18 - Microspeak Action on
2009-08-19 - Theres no law that says a meeting cant end early
2009-08-20 - Why does Windows wait longer than my screen saver idle timeout before starting the screen saver
2009-08-21 - Restating the obvious about the WM_NOTIFY message
2009-08-24 - City noises and their effects on songbirds
2009-08-24 - The operating system doesnt know which language programs are written in by the time the code hits th
2009-08-25 - Meta-content Suggestion Box 4 will open sometime next year
2009-08-25 - My phone just DoSd my office network
2009-08-26 - In Ephesus you juggle or die
2009-08-26 - The way to stop people from copying files to a folder is to use NTFS security not to block dragdrop
2009-08-27 - Isnt every dinner at a technology conference a geek dinner
2009-08-27 - What is the maximum number of timers a program can create
2009-08-28 - A different perspective from the first row of the symphony
2009-08-28 - The great thing about naming conventions is that not everybody will follow them
2009-08-31 - And they dont take American Express
2009-08-31 - Why do new controls tend to use COM instead of window messages

The Old New Thing - 2009 09

2009-09-01 - One way to make sure nobody sends you feedback
2009-09-01 - Walt Mosspuppet The return of the fake blog
2009-09-02 - The wheels of government bureaucracy turn slowly Green cards
2009-09-02 - Welcome to the 11th annual Mid-Atlantic Road-E-O
2009-09-03 - Grown in the middle of some very respectable Seattle suburbs such as Renton
2009-09-03 - Woe unto PROGMANINI
2009-09-04 - Reading the error message carefully can help you see how the computer misinterpreted what you typed
2009-09-04 - Two-year-old as finite state machine
2009-09-07 - Thanks for identifying the good programmers for us
2009-09-08 - Things other people have written that have amused me Episode 2
2009-09-08 - Why are developer tools orange
2009-09-09 - Hey you look Chinese we have a class for people like you
2009-09-09 - When you agree to write to a particular length make sure your content is actually that length
2009-09-10 - Management-speak Focus
2009-09-10 - Start with a 50000 grant hold a fundraiser lose 47000
2009-09-11 - If youre handling an out of memory exception you probably shouldnt allocate memory
2009-09-11 - Most people who go to an open house arent actually interested in buying it
2009-09-14 - A complex family calculus
2009-09-14 - Can you create an information context for the display
2009-09-15 - Crazy Eddie His prices were insane because it was all a criminal operation
2009-09-15 - Why does the Start menu search box autoselect some items but not others
2009-09-16 - Rentonites concerned about Hooters opening in their town but not for the reason you think
2009-09-16 - Whoa there logging on awful fast now are we
2009-09-17 - Should I fix the spelling in the United States Constitution
2009-09-18 - Windows 95s ticking death
2009-09-21 - We accept cash credit cards and Microsoft cardkeys
2009-09-21 - What is the logic behind the thumb size and position calculation in scroll bars
2009-09-22 - Things Ive written that have amused other people Episode 5
2009-09-23 - The COM marshaller uses the COM task allocator to allocate and free memory
2009-09-23 - Weve got your hotel surrounded on one side and not even the entire side
2009-09-24 - Dont panic its just H1N1
2009-09-24 - When people ask for security holes as features Privileged execution
2009-09-25 - The ways people mess up IUnknownQueryInterface episode 2
2009-09-28 - Why doesnt Explorer have an interface for creating hard links
2009-09-29 - Microspeak Net net
2009-09-30 - 2009 Q3 link clearance Microsoft blogger edition
2009-09-30 - Why do messages posted by PostThreadMessage disappear

The Old New Thing - 2009 10

2009-10-02 - The mystery of the other girlfriend
2009-10-02 - When you commit memory you get a commitment to receive memory when you need it but no sooner
2009-10-05 - Trying to come up with the most annoying meal ever
2009-10-05 - Why doesnt the mail image resizer check the image size before offering to resize
2009-10-06 - Proto-Microspeak Efforting
2009-10-07 - I will be speaking at ReflectionsProjections 2009
2009-10-07 - The ways people mess up IUnknownQueryInterface episode 3
2009-10-08 - In Hawaiʻi mahalo might officially mean thank you
2009-10-08 - What is the format of a double-null-terminated string with no strings
2009-10-09 - LoadString can load strings with embedded nulls but your wrapper function might not
2009-10-11 - A Few Seconds of Panic Life as an NFL kicker
2009-10-11 - In the search for the subtle source of the problem you sometimes overlook the obvious one
2009-10-12 - The classical model for linking
2009-10-13 - Why do we have import libraries anyway
2009-10-13 - You always hurt the things you love
2009-10-14 - Viral video Pianotrappan
2009-10-14 - When you want to pass a parameter on the command line dont forget to pass the parameter on the comman
2009-10-15 - Dont use global state to manage a local problem practical exam
2009-10-16 - Arrived in Urbana-Champaign for ReflectionsProjections 2009
2009-10-16 - Important window message numbers to memorize
2009-10-19 - Leaving Reflections Projections 2009 travel marathon part two
2009-10-19 - Thinking inside the box
2009-10-20 - How to write like Raymond Start a sentence with a question mark
2009-10-21 - Please sir take a seat sit anywhere you like but oh no not there rats
2009-10-22 - Once you announce a date youre already late
2009-10-23 - If you have to cast you cant afford it
2009-10-26 - Why wont my computer go to sleep Where is the energy going
2009-10-26 - Yes theres a new desktop window manager but no I dont know any more about it than you do
2009-10-27 - Freudian typo The accidental emoticon
2009-10-27 - If aluminum pull tab redemption is a rumor what happens to all the tabs
2009-10-28 - Warning Not much useful content inside
2009-10-28 - Why does the Photo Gallery show all my photos with a colored tinge
2009-10-29 - What this batch file needs is more escape characters
2009-10-30 - Still working out the finer details of how this Halloween thing works
2009-10-30 - What is the format for FirstInstallDateTime on Windows 95

The Old New Thing - 2009 11

2009-11-02 - Hey is there somebody around to accept this award
2009-11-03 - Microspeak Net out
2009-11-03 - When asked to choose among multiple options the politician will pick all of them
2009-11-04 - Good advice comes with a rationale so you can tell when it becomes bad advice
2009-11-04 - In the product end game every change carries significant risk
2009-11-05 - The day the coffee machine exploded
2009-11-06 - Signs that the symbols in your stack trace are wrong
2009-11-09 - How do I create a toolbar that sits in the taskbar
2009-11-09 - Stories of anticipating dead computers Windows Home Server
2009-11-10 - I reorganized your kitchen for you sweetie
2009-11-10 - Little-known command line utility clip
2009-11-11 - Leave it to the Taiwanese to think of wrapping a donut inside another donut
2009-11-11 - Trying to avoid double-destruction and inadvertently triggering it
2009-11-12 - Why can you create a PIF file that points to something that isnt an MS-DOS program
2009-11-13 - What a drag You can be a drag in managed code too
2009-11-13 - You thought reasoning about signals was bad reasoning about a total breakdown of normal functioning i
2009-11-16 - How to pretend that you attended my talk at UIUC ReflectionsProjections 2009
2009-11-16 - Why does shlwapi import a nonexistent function
2009-11-17 - How to tell when your patent has been approved
2009-11-17 - We found the author of Notepad sorry you didnt go to the award ceremony
2009-11-18 - How do I move the Windowsedb and other search index files
2009-11-18 - News flash Healthy people live longer
2009-11-19 - Were using a smart pointer so we cant possibly be the source of the leak
2009-11-20 - The difference between assignment and attachment with ATL smart pointers
2009-11-23 - Can I talk to that William fellow He was so helpful
2009-11-24 - When computer programmers dabble in making change
2009-11-25 - How do I get the command line of another process
2009-11-25 - The magic of chocolate milk
2009-11-26 - I want to take all your chocolate milk
2009-11-26 - When you want to copy a file into a folder make sure you have a folder
2009-11-27 - Caches are nice but they confuse memory leak detection tools
2009-11-27 - How does Raymond get rid of his excess pennies
2009-11-30 - Umpires are the lymphatic system of the baseball diamond
2009-11-30 - Where did WIN32_LEAN_AND_MEAN come from

The Old New Thing - 2009 12

2009-12-01 - Intelius cancels its cell phone directory saving me the trouble of having to opt out of it every thre
2009-12-01 - Microspeak Cookie licking
2009-12-02 - A shell extension is a guest in someone elses house dont go changing the carpet
2009-12-02 - Fake trend watch Bridesmaid pre-nuptial agreements
2009-12-03 - What is the effect of setting the 3GB switch on my 64-bit Windows machine
2009-12-03 - Why do Swedes count 1 X 2
2009-12-04 - When there is a long line of people waiting for a shared resource you want to investigate the person
2009-12-04 - Why do some comments have a star
2009-12-07 - Im sorry BrianBryan Gregory that confirming the spelling of your name is too much for you to handle
2009-12-07 - What is the story behind multimonh
2009-12-08 - How do I determine the processors cache line size
2009-12-08 - Things Ive written that have amused other people Episode 6
2009-12-09 - What are those little overlay icons Windows 7 edition
2009-12-10 - Only an idiot would have parameter validation and only an idiot would not have it
2009-12-10 - Those houses are too small for anyone to live in
2009-12-11 - Lamebook The best of Facebook
2009-12-11 - The format of bitmap resources
2009-12-14 - Why did the word Start disappear from the Start button
2009-12-15 - You are listening to Radio Free Bob a pirate radio station broadcasting on the Microsoft corporate ne
2009-12-16 - Just like in real life you can hire someone to do your programming taxes for you
2009-12-17 - Surprising things injected into Mozart cadenzas
2009-12-17 - What was the ShowCursor function intended to be used for
2009-12-18 - I got an array with plenty of nuthin
2009-12-18 - The economic inefficiency of gift-giving
2009-12-21 - Christmas gift idea for your favorite Microsoft fanboy geek with no sense of fashion or taste
2009-12-21 - What version of the compiler does Raymond use
2009-12-22 - No you cant lock icons to the users desktop
2009-12-22 - Tweeting Too Hard Best of Twitter
2009-12-23 - Exploiting the inattentive The posted wine rating may not match the wine on the shelf
2009-12-23 - Why is it possible to destroy a critical section while it is in use
2009-12-24 - The NPR Planet Money one-hour story competition The shopping mall convention
2009-12-24 - Why dont we create a special class of programs which can break the normal rules
2009-12-25 - Merry Christmas to me Zune headphones
2009-12-25 - No you didnt win the Jethro Tull box set and please tell everybody else in your area code to stop cal
2009-12-28 - How does the keyboard autorepeat setting work
2009-12-29 - How do I minimize a group of windows in Windows 7 from the taskbar
2009-12-30 - Even your folder icons can be used as a Rorschach test
2009-12-30 - Join the Seattle Symphony for a New Year Eves performance of Beethovens Nin wait a second
2009-12-31 - 2009 year-end link clearance
2009-12-31 - Why does COM require output pointers to be initialized even on failure

The Old New Thing - 2010 01

2010-01-01 - The goggles they do nothing Gemulator advertisement from 1992
2010-01-01 - Your program assumes that COM output pointers are initialized on failure you just dont realize it yet
2010-01-04 - How about not granting debug privileges to users
2010-01-04 - How many sides are there to a snowflake The answer may surprise your marketing department
2010-01-05 - Microspeak Engagement
2010-01-05 - Thanks for coming together to enjoy the holiday together now get off my lawn
2010-01-06 - Can you get rotating an array to run faster than On
2010-01-06 - The wisdom of seventh graders Success
2010-01-07 - How to change the debugger attached to a process
2010-01-07 - Learning how to cheat at Candy Land
2010-01-08 - What is the hSection parameter to CreateDIBSection for
2010-01-11 - Pros and cons of using a four-year-old as your language instructor
2010-01-11 - Why arent compatibility workarounds disabled when a debugger is attached
2010-01-12 - But thats not all The story of that cheesy Steve Ballmer Windows video
2010-01-12 - Weight Gain 4000 the competition
2010-01-13 - News flash Wearing clothing keeps you warm
2010-01-13 - Why does GetCommandLine give me a corrupted command line
2010-01-14 - I could just use a picture of a regular-sized shopping cart from farther away
2010-01-14 - It rather involved being on the other side of this airtight hatchway If they can inject code then the
2010-01-15 - How you might be loading a DLL during DLL_PROCESS_DETACH without even realizing it
2010-01-18 - Its fine to rename a function in your DEF file but when you do you have to link to that function by i
2010-01-18 - People just like you for certain values of you
2010-01-19 - The hardest part of writing the video game Monty Pythons Complete Waste of Time
2010-01-20 - The wrong way to determine the size of a buffer
2010-01-21 - Historically Windows didnt tend to provide functions for things you can already do yourself
2010-01-22 - During process termination the gates are now electrified
2010-01-25 - Why doesnt the window manager have a SetClipboardDataEx helper function
2010-01-26 - Microspeak Zap
2010-01-27 - If you are trying to understand an error you may want to look up the error code to see what it means
2010-01-28 - What idiot would hard-code the path to Notepad
2010-01-29 - How do I suppress full window dragresize for just one window
2010-01-29 - Microsoft phenomenon The annual award that winds up being awarded only once

The Old New Thing - 2010 02

2010-02-01 - It looks a little like CMD except there is white on the background
2010-02-01 - Why cant I use the linker to delay-load a function from kernel32
2010-02-02 - It appears that car park computers revert to their native language German when placed under stress
2010-02-02 - Microspeak Future-proofing
2010-02-03 - Long-term temporary parking
2010-02-03 - What is the maximum length of an environment variable
2010-02-04 - The Brits once again come up with a clever solution to the problem of the scatterbrained client
2010-02-04 - Why doesnt the shell animation control tell me the dimensions of the animation it is displaying
2010-02-05 - A simple Venn diagram teaches you the difference between Norway and Sweden
2010-02-05 - Why doesnt my program receive the WM_DWMSENDICONICTHUMBNAIL message when I ask for an iconic represen
2010-02-08 - For better performance set all your monitors to the same color format
2010-02-08 - The 20102011 Seattle Symphony subscription season at a glance
2010-02-09 - Moving by staying put
2010-02-09 - No matter what you do someone will call you an idiot part 2
2010-02-10 - Those annoying satisfaction surveys
2010-02-11 - A sense of the term anonymous with which I had previously been unfamiliar
2010-02-12 - A decidedly Canadian response to the shambles that was the running portion of the modern pentathlon i
2010-02-12 - How do I get information about the target of a symbolic link
2010-02-15 - Advocating the overthrow of the government of the United States by force or subversion
2010-02-15 - Private classes superclassing and global subclassing
2010-02-16 - It rather involved being on the other side of this airtight hatchway Dubious escalation
2010-02-16 - The fundamental rule of rocket science
2010-02-17 - Happy birthday Windows 2000 and try not to get too hung over
2010-02-18 - Dont forget to double-null-terminate those strings you pass to SHFileOperation
2010-02-19 - How many servings are there in a single-serve cup The answer might surprise you
2010-02-19 - The normal string manipulation functions stop on a null terminator so be careful when manipulating do
2010-02-22 - Custom navigation in dialog boxes redux
2010-02-22 - On the Internet everybody wants to know if youre a dog
2010-02-23 - Le Chateliers principle in action Announcements
2010-02-24 - German language tip Matratzen mattresses Matrosen sailors
2010-02-24 - Why does the CBS_SORT combo box style sort the left square bracket so strangely
2010-02-25 - Food products that are offenses against nature Bagel-fuls
2010-02-25 - What happens to the fibers which ran on a thread when the thread exits
2010-02-26 - Its fine to use fibers but everybody has to be on board with the plan
2010-02-26 - Microwave popcorn enthusiast proudly proclaims I am popcorn

The Old New Thing - 2010 03

2010-03-01 - Chilly Hilly 2010 kicked my butt
2010-03-01 - When does STARTF_USESHOWWINDOW override the parameter passed to ShowWindow
2010-03-02 - Microspeak Dialogue
2010-03-03 - Voicemail security even stronger than bank security
2010-03-04 - Everyday is Grammer Day
2010-03-04 - What happens if I drag the mouse by exactly the amount specified by SM_CXDRAG
2010-03-05 - Delegation of responsibilities within a family during pregnancy
2010-03-05 - How do I access the magic IEEE floating point values like NaN in code
2010-03-08 - The best actors in the business still lean into the microphone when they talk
2010-03-08 - Why doesnt double-right-click bring up the Properties dialog
2010-03-09 - PSM_ISDIALOGMESSAGE is to modeless property sheets as IsDialogMessage is to modeless dialog boxes
2010-03-09 - Why is the fine for a basic traffic infraction in the state of Washington such a random-looking numbe
2010-03-10 - One of the consequences of accepting a job offer is that you might end up working with an interviewer
2010-03-11 - Application compatibility layers are there for the customer not for the program
2010-03-12 - Simplifying context menu extensions with IExecuteCommand
2010-03-12 - Why does the OLE variant date format use 30 December 1899 as its zero point
2010-03-15 - A window can have a parent or an owner but not both
2010-03-15 - Robots and humans coexisting can it be done peacefully
2010-03-16 - Raymonds highly scientific predictions for the 2010 NCAA mens basketball tournament
2010-03-16 - Why does my control send its notifications to the wrong window after I reparent it
2010-03-17 - What is DLL import hinting
2010-03-18 - What is DLL import binding
2010-03-19 - How does delay-loading use binding information
2010-03-19 - How many days long is a one-day sale The answer might surprise you
2010-03-22 - Germans are falling for the same trap as the Japanese Importing words from English and changing the m
2010-03-22 - Why does SHFileOperation have internal error codes for DVD
2010-03-23 - Why does it take longer to reject an invalid password than to accept a valid one
2010-03-24 - First try reading the error message episode 3 Even programmers see error messages without reading the
2010-03-25 - WaitForInputIdle should really be called WaitForProcessStartupComplete
2010-03-26 - WaitForInputIdle waits for any thread which might not be the thread you care about
2010-03-29 - Ruth Bader Ginsburg the yardstick for Wikipedia entries
2010-03-29 - What happens to the control names in the IDE when my program is running
2010-03-30 - Non-Microspeak Boiling the ocean
2010-03-31 - 2010 Q1 link clearance Microsoft blogger edition
2010-03-31 - The great thing about URL encodings is that there are so many to choose from

The Old New Thing - 2010 04

2010-04-01 - EnumClaw the function that never was
2010-04-02 - Why do non-folders in my shell namespace extension show up in the folder tree view
2010-04-05 - When people ask for security holes as features Non-administrators reading other users stuff
2010-04-06 - Microspeak SQMmed
2010-04-07 - How to edit the security attributes of more than one file at a time
2010-04-08 - Why doesnt SS_WHITERECT actually draw a white rectangle
2010-04-09 - Why cant you use WM_CTLCOLORSTATIC to change the color of a SS_BLACKRECT
2010-04-12 - How do I switch a window between normal and fullscreen
2010-04-13 - Its a miracle humanity has survived this far if reaction to the inability to make or receive a teleph
2010-04-14 - When you create an object with constraints you have to make sure everybody who uses the object unders
2010-04-15 - Why are there two values for NoDriveTypeAutoRun which disable Autoplay on drives of unknown type
2010-04-16 - The mysterious stock bitmap Theres no way to summon it but it shows up in various places
2010-04-19 - Why does the wireless connection dialog ask for your password twice
2010-04-20 - The difference between your job and your hobby
2010-04-21 - Email tip When you say that something didnt work you have to say how it didnt work
2010-04-22 - Email tip When asking for help with a problem also mention what youve already tried
2010-04-23 - Our legal department suggests you skip our salad dressing and just eat an avocado
2010-04-23 - Why cant I get my regular expression pattern to match words that begin with
2010-04-26 - Why doesnt TryEnterCriticalSection try harder
2010-04-27 - He bought the whole seat but we only needed the edge
2010-04-28 - What happens to the contents of a memory-mapped file when a process is terminated abnormally
2010-04-29 - A short puzzle about heap expansion
2010-04-30 - If its not yours then dont mess with it without permission from the owner
2010-04-30 - Welcome to Taiwans premier English-only nightclub

The Old New Thing - 2010 05

2010-05-03 - How do I accept files to be opened via IDropTarget instead of on the command line
2010-05-03 - Welcome to Belém the scam artist capital of Lisbon
2010-05-04 - Microspeak The statistic known as BIS
2010-05-05 - Eating where the teenagers are Pão Pão Queijo Queijo
2010-05-05 - How the shell converts an icon location into an icon
2010-05-06 - On the Portuguese custom of the couvert and other restaurant customs
2010-05-06 - What are these strange C environment variables
2010-05-07 - The many ways of converting a string from one language to another
2010-05-07 - Words youve had wrong your entire life
2010-05-10 - On nearly getting pickpocketed in both Lisbon and Madrid
2010-05-10 - Why can programs empty the clipboard when they start up
2010-05-11 - It rather involved being on the other side of this airtight hatchway Consequences of enabling the ker
2010-05-12 - The problem with setting up a story is that people focus on the set-up and miss the point of the stor
2010-05-13 - Things the locals know How to have lunch at El Brillante
2010-05-13 - Why can I type a lowercase s with caron with the numeric keypad but not a lowercase r with caron
2010-05-14 - How do I prevent users from dragging and dropping files in Explorer
2010-05-14 - Maxing out the upsell-o-meter
2010-05-17 - If Windows 311 required a 32-bit processor why was it called a 16-bit operating system
2010-05-18 - An insight into the balance between forgiveness and permission
2010-05-18 - No good deed goes unpunished part 2 redux
2010-05-19 - If you can detect the difference between an emulator and the real thing then the emulator has failed
2010-05-20 - Weve traced the call and its coming from inside the house Operating system names
2010-05-21 - SHAutoComplete giveth and SHAutoComplete taketh away
2010-05-24 - Welcome to The New Old New Thing 2010 edition
2010-05-24 - Whats the deal with Whats This
2010-05-25 - Cliff Notes The short version of the Cliff Mass blog
2010-05-25 - Why doesnt the Windows Vista copy progress dialog show the names of the files being copied
2010-05-26 - How do I find the bounding box for a character in a font
2010-05-27 - When will the window manager destroy a menu automatically and when do I need to do it manually
2010-05-28 - Every window with the WS_SYSMENU style has a system menu but its not there until it needs to be
2010-05-28 - How do I accept files to be opened via IDropTarget instead of on the command line bonus content
2010-05-31 - Thats a great idea its on the list

The Old New Thing - 2010 06

2010-06-01 - Welcome to the maze and enjoy the Habitrail
2010-06-01 - Why doesnt the Windows Vista copy progress dialog show the names of the files being copied redux
2010-06-02 - Puzzle Can you explain this programs crash profile
2010-06-02 - The giant typewriter eraser in the Olympic Sculpture Park in Seattle
2010-06-03 - How do I convert an ANSI string directly to UTF-8
2010-06-03 - The voice of Carl Kasell emerges from the loudspeaker as some old guy stands there and moves his mout
2010-06-04 - How do I enable and disable the minimize maximize and close buttons in my caption bar
2010-06-07 - Dum dee dum just hanging around the European Conference on Computer Supported Co-op OMG LOOK AT THOSE
2010-06-07 - Is it real that you are still using Visual C 6 and 5
2010-06-08 - Proto-Microspeak Bug-hugging
2010-06-09 - When you use a term it helps if you know what the term means
2010-06-10 - When you set a 100 CPU program to real-time priority you get what you asked for
2010-06-11 - How do I indicate that I want my window to follow right-to-left layout rules
2010-06-11 - My niece asked me what color seashell I would like her to draw
2010-06-14 - Annotating function parameters and using PREfast to check them
2010-06-14 - Hunting for loopholes in Washington states driving-while-phoning-or-texting law
2010-06-15 - What does the PRE in PREfast stand for
2010-06-16 - I always do a double-take when I see the name Andrew Bynum
2010-06-16 - Why cant AppLocale just be added to the Compatibility property sheet page
2010-06-17 - As random as I wanna be Why cmdexes RANDOM isnt so random
2010-06-18 - Bug Bash Its funny because its true
2010-06-21 - Wow a task bar what a novel idea
2010-06-22 - How do I customize the Favorite Links section of the File Open dialog
2010-06-23 - The best way to prove somebody incompetent is to make up stuff and then point out that its idiotic
2010-06-24 - When setting expectations you also have to deny them when necessary
2010-06-25 - 6-4 3-6 6-7 7-9 7-6 7-3 70-68 The scoreboard doesnt even go that high
2010-06-25 - My life as a square pixel
2010-06-28 - How do I get a radio button control to render its text transparently
2010-06-28 - Redneck Scrabble Its fun unless you had to do it for real
2010-06-29 - The illusory repair powers of black electrical tape
2010-06-30 - 2010 mid-year link clearance
2010-06-30 - Management fallacy If I send people email then they will work harder

The Old New Thing - 2010 07

2010-07-01 - What Raymond listens to KCRWs The Business
2010-07-01 - What is the lpClass member of SHELLEXECUTEINFO used for
2010-07-02 - Instead of trying to figure out what shortcut class to use just ask the shell to do it for you
2010-07-02 - The commutative law for postage and its limitations
2010-07-05 - One small silver lining of moving Boeing headquarters to Chicago
2010-07-06 - Hardware backward compatibility The firmware that missed one tiny detail
2010-07-07 - Crackpots in computer security The neighbors are looking at me weird
2010-07-08 - How do I configure a Remote Desktop Connection shortcut to open on a specific monitor
2010-07-09 - Whats the difference between LastWriteTime and ChangeTime in FILE_BASIC_INFO
2010-07-12 - What is the cost of WS_CLIPSIBLINGS if the sibling windows dont overlap
2010-07-13 - Tips for planning your ship party
2010-07-14 - Why dont all the Control Panel applications show up when you open a menu from the address bar
2010-07-15 - Theres always the low-tech way of managing a process too
2010-07-16 - How do I launch the Explorer Search window with specific search criteria
2010-07-19 - To enable and disable a window use the EnableWindow function
2010-07-20 - Management-speak Multi-perspective content
2010-07-20 - Suggestion Box 4
2010-07-21 - No you cant lock a gadget to the top of the sidebar
2010-07-22 - I will be speaking at TechReady11
2010-07-22 - Things Ive written that have amused other people Episode 7
2010-07-23 - If Im not supposed to call IsBadXxxPtr how can I check if a pointer is bad
2010-07-23 - MSDN content is also available as a Web service
2010-07-26 - Why didnt Windows XP auto-elevate programs beyond those named setupexe
2010-07-27 - Hardware backward compatibility The finicky floppy drive
2010-07-28 - The frustration of people who have already decided on the solution and wont let you derail them with
2010-07-29 - Holy cow those TechReady attendees really love their tchotchkes
2010-07-29 - Why is my icon being drawn at the wrong size when I call DrawIcon
2010-07-30 - Decoding the parameters of a thrown C exception 0xE06D7363

The Old New Thing - 2010 08

2010-08-02 - A brief conversation while preparing to hike along the Pacific coast
2010-08-02 - Did I know where the Novell short file name behavior came from
2010-08-03 - Dont forget to replace your placeholder bitmaps with real bitmaps
2010-08-04 - How many failure reports does a bug have to get before Windows will fix it
2010-08-05 - Raymond misreads flyers episode 2 It Takes You
2010-08-06 - Some known folders cannot be moved but others can and youll just have to accept that
2010-08-09 - Everybody thinks about garbage collection the wrong way
2010-08-10 - Everybody thinks about CLR objects the wrong way well not everybody
2010-08-10 - When does an object become available for garbage collection
2010-08-11 - How do I get the reference count of a CLR object
2010-08-12 - How can I find all objects of a particular type
2010-08-13 - When do I need to use GCKeepAlive
2010-08-16 - What happened to WinHelp
2010-08-17 - What was that story about the WinHelp pen-writing-in-book animation
2010-08-18 - Microspeak The funnel
2010-08-19 - How do I get the Explorer navigation pane to highlight the current folder all the time
2010-08-19 - I challenge you to come up with an even lamer physics pun
2010-08-20 - Miss France she has the Eiffel Tower on her head because France has the Eiffel Tower and no other cou
2010-08-20 - Why does the primary monitor have 00 as its upper left coordinate
2010-08-23 - Be careful that your splash screen doesnt squander the foreground love
2010-08-24 - Windows 95 It sucks less
2010-08-25 - What young children do when they hear a foreign language
2010-08-25 - Why did the Explore option disappear from the context menu of folders in the second column of the Sta
2010-08-26 - How do I recover the window handle passed to ShellExecute
2010-08-27 - If you return from the main thread does the process exit
2010-08-30 - On LockWindowUpdate Locking the taskbar
2010-08-30 - Reflections create Xbox logo on neighbors roof
2010-08-31 - Be on the alert Mainstream and alternative medicines mixed together on the store shelves not clearly
2010-08-31 - Shutdown reason codes are reason codes not error codes or HRESULTs

The Old New Thing - 2010 09

2010-09-01 - Yes the Windows 7 beta wallpaper was a picture of a betta fish
2010-09-02 - It rather involved being on the other side of this airtight hatchway If you grant users full control
2010-09-03 - What happens to a named object when all handles to it are closed
2010-09-06 - Was there really an Opera billboard outside Microsoft main campus
2010-09-07 - How do I customize the order of items in the All Programs section of the Start menu
2010-09-08 - The contractually obligatory beeper and the customers who demand them
2010-09-09 - Flushing your performance down the drain that is
2010-09-10 - Hey there token long time no see Did you do something with your hair
2010-09-13 - Ha ha the speaker gift is a speaker get it
2010-09-13 - Why doesnt Win32 give you the option of ignoring failures in DLL import resolution
2010-09-14 - Microspeak Sats
2010-09-15 - Follow-up The impact of overwhelmingly talented competitors on the rest of the field
2010-09-15 - How do I create a UNC to an IPv6 address
2010-09-16 - How is the CommandLineToArgvW function intended to be used
2010-09-17 - Its amazing how many business meetings there are in Munich in late September
2010-09-17 - Whats up with the strange treatment of quotation marks and backslashes by CommandLineToArgvW
2010-09-20 - How do I get the dropped height of a combo box
2010-09-21 - Fact check The first major Microsoft product launched via Webcast
2010-09-22 - Happy Mid-Autumn festival 2010
2010-09-22 - What is the effect of the LARGEADDRESSAWARE switch on a DLL
2010-09-23 - Pizza The reference food for young children
2010-09-23 - You must flush GDI operations when switching between direct access and GDI access and direct access i
2010-09-24 - Does anybody actually like Brazil nuts
2010-09-24 - How reliable is the BatteryLifePercent member of the SYSTEM_POWER_STATUS structure
2010-09-27 - Childrens reactions to macadamia nuts dipped in chocolate
2010-09-27 - Why not just require each application to declare what version of Windows it is compatible with
2010-09-28 - Speculation around Microsoft Company Meeting 2010
2010-09-29 - We apologize for the delay but there is an issue with the music
2010-09-29 - Where did my mail control panel icon go
2010-09-30 - 2010 Q3 link clearance Microsoft blogger edition
2010-09-30 - Why doesnt the TAB key work on controls Ive marked as WS_TABSTOP

The Old New Thing - 2010 10

2010-10-01 - Non-psychic debugging Why youre leaking timers
2010-10-01 - Which ferry should we take from Germany back to Denmark Oh its this one except for that one word I do
2010-10-04 - On understanding that getting married comes with changes in lifestyle
2010-10-04 - Why is the origin at the upper left corner
2010-10-05 - Secret passages on Microsoft main campus
2010-10-06 - Wildly popular computer game The Windows product team has you covered
2010-10-07 - The overlooked computer room at school that became my office for a while
2010-10-07 - Why does TaskDialog return immediately without showing a dialog
2010-10-08 - Why does TaskDialog return immediately without showing a dialog Answer
2010-10-08 - Why does my asynchronous IO request return TRUE instead of failing with ERROR_IO_PENDING
2010-10-11 - Why does each drive have its own current directory
2010-10-12 - Why are the keyboard scan codes for digits off by one
2010-10-13 - How do I get the color depth of the screen
2010-10-14 - The memcmp function reports the result of the comparison at the point of the first difference but it
2010-10-15 - What does the FOF_NOCOPYSECURITYATTRIBS flag really do or not do
2010-10-18 - The evolution of the ICO file format part 1 Monochrome beginnings
2010-10-19 - The evolution of the ICO file format part 2 Now in color
2010-10-20 - How do I get the dimensions of a cursor or icon
2010-10-21 - The evolution of the ICO file format part 3 Alpha-blended images
2010-10-22 - The evolution of the ICO file format part 4 PNG images
2010-10-25 - Belated happy first birthday Windows 7
2010-10-25 - When you call a function your code doesnt resume execution until that function returns
2010-10-26 - Hacking Barney the dinosaur for fun no profit
2010-10-27 - How do I programmatically invoke Aero Peek on a window
2010-10-28 - Why is there an LVN_ODSTATECHANGED notification when theres already a perfectly good LVN_ITEMCHANGED
2010-10-29 - Debugging walkthrough Diagnosing a __purecall failure
2010-10-29 - Its the Great Pumpkin Charlie Brown The world of competitive pumpkin-growing

The Old New Thing - 2010 11

2010-11-01 - Why doesnt the End Task button end my task immediately
2010-11-02 - Saying that your case is different doesnt make it so
2010-11-02 - The wisdom of seventh graders Being President
2010-11-03 - The quiet fading away of the CtlPanelClass
2010-11-04 - The story of MUI as told by others with some commentary
2010-11-05 - Why does the Win32 Time service require the date to be correct before it will set the time
2010-11-08 - Is there any vendor bias in the way the Start menu determines which programs are most frequently used
2010-11-09 - The curse of the current directory
2010-11-10 - Your debugging code can be a security vulnerability Loading optional debugging DLLs without a full pa
2010-11-11 - Using delayload to detect functionality is a security vulnerability
2010-11-12 - Why does the common file dialog change the current directory
2010-11-15 - The program running in a console decides what appears in that console
2010-11-16 - If you measure something people will change their behavior to address the measurement and not the thi
2010-11-17 - How full does a hard drive have to get before Explorer will start getting concerned
2010-11-18 - One possible reason why ShellExecute returns SE_ERR_ACCESSDENIED and ShellExecuteEx returns ERROR_ACC
2010-11-19 - Whats the difference between the Windows directory and the System directory
2010-11-22 - Consequences of using variables declared __declspecthread
2010-11-23 - But whos going to set up their own email server
2010-11-24 - You can filter the Common File dialog with wildcards
2010-11-25 - What if two programs did this Practical exam
2010-11-26 - The easy way out is to just answer the question What is the current Explorer window looking at
2010-11-26 - Watching the game of Telephone play out in five seconds
2010-11-29 - What were GetSetMessageExtraInfo ever used for
2010-11-30 - Microspeak Take-away

The Old New Thing - 2010 12

2010-12-01 - How do I delete bytes from the beginning of a file
2010-12-01 - I will be speaking at TechEd China 2010 today
2010-12-02 - The alignment declaration specifier is in bytes not bits
2010-12-03 - ZOMG This program is using 100 CPU1 Think of the puppies1111eleven
2010-12-06 - TrackMouseEvent tracks mouse events in your window but only if the events belong to your window
2010-12-07 - Creative naming in pursuit of subverting the no-fun zone
2010-12-08 - It rather involved being on the other side of this airtight hatchway Invalid parameters from one secu
2010-12-08 - Kindergarten writing exercise from my niece
2010-12-09 - Weve traced the call and its coming from inside the house Grid lines in list view report mode
2010-12-09 - What appears superficially to be a line is actually just a one-dimensional mob
2010-12-10 - How do I limit the size of the preview window used by Aero Snap
2010-12-10 - Some notes on my trip to Beijing disguised as travel tips
2010-12-13 - Why are the Compression and Encryption options check boxes instead of radio buttons
2010-12-14 - Microspeak Informing a product
2010-12-14 - The subtleties of a Will Ferrell movie and other observations from the in-flight entertainment on a C
2010-12-15 - There is no interface for preventing your notification icon from being hidden
2010-12-16 - Why does SHCOLUMNINFO have unusually tight packing
2010-12-17 - The OVERLAPPED associated with asynchronous IO is passed by address and you can take advantage of tha
2010-12-20 - Developing the method for taking advantage of the fact that the OVERLAPPED associated with asynchrono
2010-12-20 - What happened to the return code from WinMain in 16-bit Windows
2010-12-21 - How do I simulate input without SendInput
2010-12-22 - The __fortran calling convention isnt the calling convention used by FORTRAN
2010-12-23 - What is the correct way of temporarily changing a threads preferred UI language
2010-12-24 - Some suggestions on improving the assembly instructions for your childrens play furniture
2010-12-24 - That mysterious 01
2010-12-27 - Why cant you use the space bar to select check box and radio button elements from a menu
2010-12-28 - Windows 7 not only can make a wallpaper slide show from images on your computer it can even pull them
2010-12-29 - Psychic debugging When I copy a file to the clipboard and then paste it I get an old version of the f
2010-12-30 - WindowFromPoint ChildWindowFromPoint RealChildWindowFromPoint when will it all end
2010-12-31 - 2010 year-end link clearance
2010-12-31 - What makes RealGetWindowClass so much more real than GetClassName

The Old New Thing - 2011 01

2011-01-03 - Begin feeling
2011-01-04 - From inside the Redmond Reality Distortion Field Why publish documents in PDF
2011-01-05 - Why does SHGetSpecialFolderPath take such a long time before returning a network error
2011-01-06 - Processes commit RAM threads and how high can you go
2011-01-07 - When does a process ID become available for reuse
2011-01-10 - Why does pasting a string containing an illegal filename character into a rename edit box delete the
2011-01-11 - The message text limit for the Marquee screen saver is 255 even if you bypass the dialog box that pre
2011-01-12 - My what strange NOPs you have
2011-01-13 - The MARGINS parameter to the DwmExtendFrameIntoClientArea function controls how far the frame extends
2011-01-14 - Whats the difference between an asynchronous PIPE_WAIT pipe and a PIPE_NOWAIT pipe
2011-01-17 - Was showing the column header in all Explorer views a rogue feature
2011-01-18 - Dont just stand around saying somebody should do something Be someone
2011-01-19 - Why didnt they use the Space Shuttle to rescue the Apollo 13 astronauts
2011-01-20 - How to turn off the exception handler that COM helpfully wraps around your server
2011-01-21 - Modality part 9 Setting the correct owner for modal UI practical exam
2011-01-21 - The 20112012 Seattle Symphony subscription season at a glance
2011-01-24 - Theres a default implementation for WM_SETREDRAW but you might be able to do better
2011-01-25 - Why does the name of my TEMP directory keep changing
2011-01-26 - Microspeak Leverage
2011-01-27 - How do you obtain the icon for a shortcut without the shortcut overlay
2011-01-28 - Some remarks on VirtualAlloc and MEM_LARGE_PAGES
2011-01-31 - Solutions that require a time machine Making applications which require compatibility behaviors crash

The Old New Thing - 2011 02

2011-02-01 - There is no longer any pleasure in reading the annual Microsoft injury reports
2011-02-02 - Ready cancel wait for it part 1
2011-02-03 - I am no longer impressed by your fancy new 10000 BTU hot pot burner
2011-02-03 - Ready cancel wait for it part 2
2011-02-04 - Ready cancel wait for it part 3
2011-02-04 - The 2010 Niney Award nominees have been announced
2011-02-07 - The cursor isnt associated with a window or a window class its associated with a thread group
2011-02-08 - Microspeak Recycling bits or recycling electrons
2011-02-09 - Why does SHGetKnownFolderPath return E_FAIL for a known folder
2011-02-10 - Psychic debugging Because of course when something doesnt work its because the program was sabotaged
2011-02-11 - Any intelligent human being
2011-02-11 - How do specify that a shortcut should not be promoted as newly-installed on the Start menu
2011-02-14 - What happens when you email the people in the Im a PC commercial
2011-02-15 - Dont mention the war I mentioned it once but I think I got away with it all right Episode 2
2011-02-15 - Window message parameters do not come with metaphysical certitude
2011-02-16 - What is the difference between a directory and a folder
2011-02-17 - What is the highest numerical resource ID permitted by Win32
2011-02-18 - WM_NCHITTEST is for hit-testing and hit-testing can happen for reasons other than the mouse being ove
2011-02-21 - If an operation results in messages being sent then naturally the target window must be processing me
2011-02-21 - Sharktopus Just when you thought it was safe to see what movies are coming out
2011-02-22 - Dr Watson and the bluescreen a story from the trenches
2011-02-23 - How long does an idle UNC connection remain active before it is automatically disconnected
2011-02-24 - Shortcuts are serializable objects which means that they can be stored in places other than just a fi
2011-02-24 - iPhone pricing as economic experiment
2011-02-25 - DRUNK HULKs insightful commentary in all-caps and faux-rudimentary English
2011-02-25 - Why does WaitForMultipleObjects return ERROR_INVALID_PARAMETER when all the parameters look valid to
2011-02-28 - If you want to use GUIDs to identify your files then nobodys stopping you
2011-02-28 - On the linguistic productivity of the word spam

The Old New Thing - 2011 03

2011-03-01 - No not that M the other M the one called Max
2011-03-02 - Although the x64 calling convention reserves spill space for parameters you dont have to use them as
2011-03-02 - Charlie Sheen v Muammar Gaddafi Whose line is it anyway
2011-03-03 - If youre waiting for IO to complete it helps if you actually have an IO to begin with
2011-03-04 - News flash Companies change their product to appeal to their customers
2011-03-04 - The window manager needs a message pump in order to call you back unexpectedly
2011-03-07 - Whats the difference between FreeResource and say DestroyAcceleratorTable
2011-03-08 - Microspeak Cadence
2011-03-09 - How to rescue a broken stack trace Recovering the EBP chain
2011-03-10 - How do I create a topmost window that is never covered by other topmost windows
2011-03-11 - Why does my TIME_ZONE_INFORMATION have the wrong DST cutover date
2011-03-14 - The old DEBUG program can load COM files bigger than 64KB but that doesnt mean they actually load as
2011-03-15 - Raymonds highly scientific predictions for the 2011 NCAA mens basketball tournament
2011-03-15 - Why cant Explorer decide what size a file is
2011-03-16 - Whats up with the mysterious inc bp in function prologues of 16-bit code
2011-03-17 - What does the l in lstrcmp stand for
2011-03-18 - You can extend the PROPSHEETPAGE structure with your own bonus data
2011-03-21 - How does the C runtime know whether to use the static-linking or dynamic-linking version of the heade
2011-03-22 - Why is there the message Do not use this registry key in the registry
2011-03-23 - Function requirements are cumulative If you fail to meet any of them then all bets are off
2011-03-24 - How can I generate a consistent but unique value that can coexist with GUIDs
2011-03-25 - How do I monitor or even control the lifetime of an Explorer window
2011-03-25 - Paul Cézanne and Camille Saint-Saëns may have similar-sounding last names but they are not the same p
2011-03-28 - Why did Win32 define BOOL as a signed int instead of an unsigned int
2011-03-29 - Although the default icon for a shortcut is the icon of the target you can override that
2011-03-30 - How do I get the title of a dialog from a dialog resource
2011-03-31 - 2011 Q1 link clearance Microsoft blogger edition
2011-03-31 - Having an owner window from another process is tricky but its sometimes the right thing to do

The Old New Thing - 2011 04

2011-04-01 - The funniest joke Ive ever told to a three-year-old
2011-04-01 - The introduction of whimsical teasing in Comic Chat
2011-04-04 - Windows is not a NET Framework delivery channel either
2011-04-05 - Lock-free algorithms Choosing a unique value warm-up
2011-04-06 - Lock-free algorithms Choosing a unique value solutions
2011-04-06 - Lock-free algorithms The singleton constructor
2011-04-07 - Lock-free algorithms The one-time initialization
2011-04-08 - Lock-free algorithms The singleton constructor answer to exercises
2011-04-08 - Patterns for using the InitOnce functions
2011-04-11 - Holding down the shift key when right-clicking lets you pin things to the Start menu even when you mi
2011-04-12 - Lock-free algorithms The trycommittry again pattern
2011-04-12 - Overheard conversation fragment Im over here by the slot machines
2011-04-13 - Lock-free algorithms Update if you can Im feeling down
2011-04-14 - Lock-free algorithms The opportunistic cache
2011-04-15 - Lock-free algorithms The trycommithand off model
2011-04-18 - Back from Las Vegas and now my clothes smell like cigarette smoke
2011-04-18 - Dont forget to include the message queue in your lock hierarchy
2011-04-19 - Endorsement Aaron Margosiss Unintended Consequences of Security Lockdowns talk at TechEd
2011-04-19 - Visual Studio 2005 gives you acquire and release semantics for free on volatile memory access
2011-04-20 - Corrections to Patterns for using the InitOnce functions
2011-04-21 - The performance improvements of a lock-free algorithm is often not in the locking
2011-04-22 - Even if you have a lock you can borrow some lock-free techniques
2011-04-25 - Theres only so much you can do to stop running code from simulating UI actions
2011-04-26 - No you cant ask whether your notification icon is visible or not
2011-04-27 - How do I pin a program directly to the Start menu rather than a shortcut
2011-04-28 - Microspeak Hipo
2011-04-29 - Not quite understanding why you wash your hands before playing the piano
2011-04-29 - Why is there a RestoreLastError function that does the same thing as SetLastError

The Old New Thing - 2011 05

2011-05-02 - Hidden compatibility constraints of redirecting program execution via a stub
2011-05-02 - The Importance of Being Snooki
2011-05-03 - Like a chicken talking to a duck
2011-05-03 - Thats not a duck
2011-05-04 - Why dont the file timestamps on an extracted file match the ones stored in the ZIP file
2011-05-05 - Your program loads libraries by their short name and you dont even realize it
2011-05-06 - A function pointer cast is a bug waiting to happen
2011-05-09 - Sorting is a state and a verb and a floor wax and a dessert topping
2011-05-10 - Why is hybrid sleep off by default on laptops and how do I turn it on
2011-05-11 - Why double-null-terminated strings instead of an array of pointers to strings
2011-05-12 - Looking at the world through kernel-colored glasses
2011-05-13 - If undecorated names are given in the DLL export table why does link dump exports show me decorated n
2011-05-16 - Multithreaded UI code may be just as hard as multithreaded non-UI code but the consequences are diffe
2011-05-17 - Why does Explorer show a thumbnail for my image thats different from the image
2011-05-18 - How long do taskbar notification balloons appear on the screen
2011-05-18 - Watching the battle between Facebook and Facebook spammers
2011-05-19 - Why is my program terminating with exit code 3
2011-05-20 - BeginBufferedPaint Its not just for buffered painting any more
2011-05-20 - One engineers interpretation of the Segway as a hybrid vehicle
2011-05-23 - If its possible to do something then its possible to do something WRONG
2011-05-24 - Microspeak PowerPoint Karaoke and the eye chart
2011-05-25 - WinMain is just the conventional name for the Win32 process entry point
2011-05-26 - How do IsThemeActive IsAppThemed and IsCompositionActive differ
2011-05-27 - Why are custom properties created on Windows 2000 lost when I view the file from newer versions of Wi
2011-05-30 - Just for fun Sample user names in Windows 7
2011-05-31 - My evil essence revealed

The Old New Thing - 2011 06

2011-06-01 - How do I prevent users from pinning my program to the taskbar
2011-06-02 - How do I control X-Mouse settings active window tracking
2011-06-03 - Swamping the thread pool with work faster than it can drain
2011-06-06 - Why do Group Policy settings require me to have a degree in philosophy
2011-06-07 - Youd think that with the name scratch people wouldnt expect it to be around for a long time
2011-06-08 - Microspeak The planned unplanned outage and other operations jargon
2011-06-09 - PE resources must be 4-byte aligned but that doesnt stop people from trying other alignments
2011-06-10 - Generally speaking if your function fails you should return a failure code
2011-06-13 - You dont need to steal focus if you can just arrange for someone to give it to you
2011-06-14 - Sufficiently advanced magic is indistinguishable from technology
2011-06-15 - How do I convert a UTF-8 string to UTF-16 while rejecting illegal sequences
2011-06-16 - How do I create a right-aligned toolbar button
2011-06-17 - How do I make a window remain visible even when the user selects Show Desktop
2011-06-20 - In Windows the directory is the application bundle
2011-06-21 - How to get Windows Media Player to single-step a video
2011-06-21 - See you in Building 109 Conference Room A
2011-06-22 - How do I compress files via NTFS compression from the command line
2011-06-23 - What happens when applications try to copy text by sending CtrlC
2011-06-24 - Why doesnt my MessageBox wrap at the right location
2011-06-27 - Theres more to workflow than hitting F5 in the IDE
2011-06-28 - A different way to win from one of those claw game
2011-06-28 - How do I display the Find Printers dialog programmatically
2011-06-29 - What happens to WPARAM LPARAM and LRESULT when they travel between 32-bit and 64-bit windows
2011-06-30 - 2011 mid-year link clearance
2011-06-30 - The UseUrl attribute in the App Paths key indicates that your application can accept a URL on the com

The Old New Thing - 2011 07

2011-07-01 - The list of heaps returned by GetProcessHeaps is valid when it returns but who knows what happens lat
2011-07-04 - A handful of trips through the time machine
2011-07-05 - Microspeak Reporting through
2011-07-06 - Looking at the problem at the wrong level Closing a processs stdin
2011-07-06 - The historical struggle over control of the Portuguese language
2011-07-07 - And that cadence means its halftime concert-goers
2011-07-07 - Be careful when redirecting both a processs stdin and stdout to pipes for you can easily deadlock
2011-07-08 - Weve traced the pipe and its coming from inside the process
2011-07-11 - Windows has supported multiple UI languages for over a decade but nobody knew it
2011-07-12 - At least itll be easy to write up the security violation report
2011-07-13 - The tradition of giving cute names to unborn babies
2011-07-13 - What does the executable timestamp really mean
2011-07-14 - Photoshop meme Mark Reynolds casually eating sunflower seeds
2011-07-14 - What is that horrible grinding noise coming from my floppy disk drive
2011-07-15 - Using the wrong HINSTANCE in RegisterClass is like identity theft
2011-07-18 - The danger of making the chk build stricter is that nobody will run it
2011-07-19 - Some mailing lists come with a negative service level agreement but thats okay because everybody is i
2011-07-20 - How do I find the original name of a hard link
2011-07-21 - Why is secur32dll called secur32dll and not secure32dll
2011-07-22 - How do I disable windowless control support in dialog boxes
2011-07-25 - How is it possible to run Wordpad by just typing its name even though it isnt on the PATH
2011-07-26 - No were not going to play Stairway to Heaven and please tell everbody else in your area code to stop
2011-07-27 - Luxurifying the camping experience in a different direction
2011-07-27 - You dont need to ask me a question the compiler can answer more accurately
2011-07-28 - Simulating input via WM_CHAR messages may fake out the recipient but it wont fake out the input syste
2011-07-29 - Hey lets report errors only when nothing is at stake

The Old New Thing - 2011 08

2011-08-01 - Why can you set each monitor to a different color depth
2011-08-02 - An even easier way to get Windows Media Player to single-step a video
2011-08-02 - Microspeak Dogfood
2011-08-03 - A shell extension is a guest in someone elses house dont go changing the code page
2011-08-04 - Why doesnt b match word boundaries correctly
2011-08-05 - Menu item states are not reliable until they are shown because they arent needed until then
2011-08-08 - What does the CreateProcess function do if there is no space between the program name and the argumen
2011-08-09 - Why does the ShiftF10 menu differ from the right-click menu
2011-08-10 - Slim readerwriter locks dont remember who the owners are so youll have to find them some other way
2011-08-11 - The ways people mess up IUnknownQueryInterface episode 4
2011-08-12 - ReadDirectoryChangesW reads directory changes but what if the directory doesnt change
2011-08-15 - Why does the runas command require its command line to be quoted
2011-08-16 - Why does creating a shortcut to a file change its last-modified time sometimes
2011-08-17 - Starting up inside the box
2011-08-18 - Ow Im too safe
2011-08-18 - Why does IFileOperation skip junctions even though I passed FOFX_NOSKIPJUNCTIONS
2011-08-19 - Why are the alignment requirements for SLIST_ENTRY so different on 64-bit Windows
2011-08-22 - You dont make something easier to find by hiding it even more deeply
2011-08-23 - Why doesnt the Open Files list in the Shared Folders snap-in show all my open files
2011-08-24 - Magic dirt the fate of former professional athletes and other sports randomness
2011-08-24 - What do SizeOfStackReserve and SizeOfStackCommit mean for a DLL
2011-08-25 - Stupid command-line trick Counting the number of lines in stdin
2011-08-26 - Random musings on the introduction of long file names on FAT
2011-08-29 - Why cant I use PSGUID_STORAGE like a GUID
2011-08-30 - How can I get information about the items in the Recycle Bin
2011-08-31 - Modernizing our simple program that retrieves information about the items in the Recycle Bin

The Old New Thing - 2011 09

2011-09-01 - Invoking commands on items in the Recycle Bin
2011-09-02 - Whats the story with the parameters to the WM_INPUT_DEVICE_CHANGE message
2011-09-05 - Thanks for letting me know what my ideal career and company are
2011-09-06 - What happened to that suspicious-looking guy hanging around the entrance
2011-09-07 - Why is the registry a hierarchical database instead of a relational one
2011-09-08 - Why doesnt the Disk Management snap-in incorporate SMART data
2011-09-08 - Why waste your money on the car when its the sound system you care about
2011-09-09 - Throwing garbage on the sidewalk The sad history of the rundll32 program
2011-09-12 - Is this a really bug with CreateWindowEx or am I just confused
2011-09-13 - Why are the building numbers on Microsoft main campus so erratic
2011-09-14 - A common control for associating extensions is well overdue
2011-09-15 - Some preliminary notes from build 2011
2011-09-15 - What happens to a sent message when SendMessageTimeout reaches its timeout
2011-09-16 - Why cant I PostMessage the WM_COPYDATA message but I can SendMessageTimeout it with a tiny timeout
2011-09-19 - The clipboard viewer linked list is no longer the responsibility of applications to maintain unless t
2011-09-20 - Microspeak The bug farm
2011-09-20 - Random notes from build 2011
2011-09-21 - Why do Windows functions all begin with a pointless MOV EDI EDI instruction
2011-09-22 - Why does my single-byte write take forever
2011-09-23 - Why does my asynchronous IO complete synchronously
2011-09-26 - Sending a window a WM_DESTROY message is like prank calling somebody pretending to be the police
2011-09-27 - Ah the exciting world of cross-forest dogfood
2011-09-28 - Does this operation work when impersonating The default answer is NO
2011-09-29 - Appearing to succeed is a valid form of undefined behavior but its still undefined
2011-09-30 - 2011 Q3 link clearance Microsoft blogger edition
2011-09-30 - Theres also a large object heap for unmanaged code but its inside the regular heap

The Old New Thing - 2011 10

2011-10-03 - Do not access the disk in your IContextMenu handler no really dont do it
2011-10-04 - Adjusting your commute to avoid being at work quite so much
2011-10-04 - Beyoncé the giant metal chicken has a Facebook page
2011-10-05 - The unattend file lets you configure Windows while its installing and in some cases its your only cha
2011-10-06 - Why cant I move the Program Files directory via the unattend file
2011-10-07 - During process termination slim readerwriter locks are now also electrified
2011-10-10 - How do I access a file without updating its last-access time
2011-10-11 - Microspeak Bug jail
2011-10-11 - Why does copying a file to my USB thumb drive say that the parameter is incorrect
2011-10-12 - Is there a 2048 character limit for OFN_ALLOWMULTISELECT in MFC or isnt there
2011-10-13 - How do I set an accessible name on an unlabeled control
2011-10-13 - The question mark lets you make up anything you like
2011-10-14 - When your vice president tells you to stop replying to a mail thread you probably should stop replyin
2011-10-17 - Why is there a CSIDL_DESKTOP value if you need the desktop in order to get it anyway
2011-10-18 - Seeing the world through arbitrage-colored glasses
2011-10-19 - Why do some infotips repeat the name of the item as well as the infotip
2011-10-20 - No modifying the DLLs that come with Windows is not supported
2011-10-21 - The PSN_SETACTIVE notification is sent each time your wizard page is activated
2011-10-21 - The video of Microsoft Store employees dressed in Windows colors revealed by a falling curtain gee th
2011-10-24 - If the shell is written in C why not just export its base classes
2011-10-24 - Squeezing the last bit of enjoyment out of the lost half-inning of a baseball game
2011-10-25 - No good deed goes unpunished Helping to redirect a question
2011-10-25 - Raymond misreads restaurant names Local 360
2011-10-26 - How can I get notified when some other window is destroyed
2011-10-27 - Why do the pinned items in the Jump List go on the top instead of the bottom
2011-10-28 - Why isnt my transparent static control transparent
2011-10-31 - My least effective Halloween costume

The Old New Thing - 2011 11

2011-11-01 - The power of statistical photography
2011-11-02 - Debugging why a users taskbar disappeared
2011-11-03 - Weve traced the call and its coming from inside the house A function call that always fails
2011-11-04 - How do I generate a unique 32-bit value for a time zone
2011-11-07 - Percentages may not add up to 100 but not for the reason you suggest
2011-11-07 - The life story of the SwitchToThisWindow function
2011-11-08 - Microspeak Level-set
2011-11-09 - Okay everybody its time for rumors and gossip
2011-11-10 - How can I tell whether a DLL has been registered
2011-11-11 - Stupid Raymond talent Screaming carrier
2011-11-14 - The challenges in changing the way Explorer hosts shell extensions
2011-11-15 - Fontography term or pretentious blather
2011-11-16 - How can I tell whether a COM pointer to a remote object is still valid
2011-11-17 - Why cant I install this DLL via Regsvr32 i
2011-11-18 - Why does Internet Explorer not call DLL_PROCESS_DETACH on my DLL when I call ExitProcess
2011-11-21 - Why not use animated GIFs as a lightweight alternative to AVIs in the animation common control
2011-11-22 - The Control Panel search results understand common misspellings too
2011-11-23 - It is not unreasonable to expect uninitialized garbage to change at any time you dont need to ask for
2011-11-24 - How can I extend the deadline for responding to the PBT_APMSUSPEND message
2011-11-25 - How to insert a large number of items into a treeview efficiently
2011-11-28 - Why is CLIPFORMAT defined to be a WORD rather than a UINT
2011-11-29 - Things Ive written that have amused other people Episode 8
2011-11-30 - If you protect a write with a critical section you may also want to protect the read

The Old New Thing - 2011 12

2011-12-01 - Our code needs to run on multiple platforms with different rules so we follow none of them
2011-12-02 - Dont let more than one process try to read from stdin at the same time
2011-12-05 - Why does my program still show up in the Programs and Features folder after my uninstaller exits
2011-12-06 - A feature I didnt even know existed much less had a name Color hot-track
2011-12-07 - GetParent just as confusing as EnumClaw but its an actual function
2011-12-08 - What does it mean when my program exits with the message This application has requested the Runtime t
2011-12-09 - Sure Im supposed to pass WT_EXECUTELONGFUNCTION if my function takes a long time but how long is long
2011-12-12 - How can I tell whether a window is modal
2011-12-12 - What is the API for accessing content on SkyDrive
2011-12-13 - Online gift ordering enthusiastic kids at the keyboard Unicode wait Unicode
2011-12-14 - The peculiar cadence of executive mail messages
2011-12-15 - Not even making it to the airtight hatchway Execution even before you get there
2011-12-16 - Programmatically controlling which handles are inherited by new processes in Win32
2011-12-19 - Paint messages will come in as fast as you let them
2011-12-20 - Microspeak Offline noun
2011-12-21 - Deftly solving compatibility problems by withholding information
2011-12-22 - How do I determine programmatically whether a particular language is LTR or RTL
2011-12-23 - How do I get the full path for the target of a shortcut file
2011-12-26 - Celebrating the end of the gluttony season but the effects linger
2011-12-26 - Why is the file size reported incorrectly for files that are still being written to
2011-12-27 - Introducing the for-if anti-pattern
2011-12-28 - Using the MNS_DRAGDROP style Dragging out
2011-12-29 - Using the MNS_DRAGDROP style Dropping in
2011-12-30 - 2011 year-end link clearance
2011-12-30 - Using the MNS_DRAGDROP style Menu rearrangement

The Old New Thing - 2012 01

2012-01-02 - Exploiting the inattentive The Xbox Kinect Premium Starter Kit
2012-01-02 - Why wasnt the Windows 95 shell prototyped on Windows NT
2012-01-03 - The new business model Intentional billing errors
2012-01-03 - Why dont ZIP files have the FILE_ATTRIBUTE_COMPRESSED attribute
2012-01-04 - Creating context menus on menus
2012-01-04 - Misleading advertisement Passports or green cards
2012-01-05 - A joke for mathematicians On the Weyl schism
2012-01-05 - When DLL_PROCESS_DETACH tells you that the process is exiting your best bet is just to return without
2012-01-06 - It must totally suck to live near Abbey Road
2012-01-06 - Why did HeapFree fail with ERROR_POSSIBLE_DEADLOCK
2012-01-09 - From the research journal Duh To lose weight eat less
2012-01-09 - What were some of the abandoned features of Explorer back in its prototype days
2012-01-10 - News flash Work-at-home job offers are mostly just scams
2012-01-10 - You can use backups for things other than restoring
2012-01-11 - How can I detect the language a run of text is written in
2012-01-11 - What a steal A house for only ten dollars
2012-01-12 - Puzzling out the upsell-o-meter
2012-01-12 - Why does CreateEvent fail with ERROR_PATH_NOT_FOUND if I give it a name with a backslash
2012-01-13 - How do I print non-error messages during compilation
2012-01-13 - Keys duplicated from photo Delayed reaction
2012-01-16 - Cultural arbitrage The food-related sucker bet
2012-01-16 - Why was there a font just for drawing symbols on buttons
2012-01-17 - Microspeak Walls and ladders
2012-01-18 - Dont try to allocate memory until there is only x free
2012-01-19 - Why do Microsoft customer records use the abbreviation cx for customer
2012-01-20 - How do FILE_FLAG_SEQUENTIAL_SCAN and FILE_FLAG_RANDOM_ACCESS affect how the operating system treats m
2012-01-23 - Can OANOCACHE be used for non-debug purposes
2012-01-24 - A single-handed effort to keep the memory of 2 bills alive
2012-01-25 - How do I disable the fault-tolerant heap
2012-01-26 - The 20122013 Seattle Symphony subscription season at a glance
2012-01-26 - Why doesnt the Windows 7 Start menu have a pushpin for pinning items
2012-01-27 - Does mapping the same shared memory two times in a process lead to double the address space usage
2012-01-30 - Why does it take Task Manager longer to appear when you start it from the CtrlAltDel dialog
2012-01-31 - The Freudian typo that will not die Enchanced video quality

The Old New Thing - 2012 02

2012-02-01 - Things Ive written that have amused other people Episode 9
2012-02-02 - When you are looking for more information it helps to say what you need the information for
2012-02-03 - The compatibility constraints of error codes episode 2
2012-02-06 - The story of the mysterious WINA20386 file
2012-02-07 - Microspeak fit
2012-02-08 - The path-searching algorithm is not a backtracking algorithm
2012-02-09 - What is the effect of memory-mapped file access on GetLastError
2012-02-10 - Fancy use of exception handling in FormatMessage leads to repeated discovery of security flaw
2012-02-13 - Why did the Windows 95 Start button have a secret shortcut for closing it
2012-02-14 - The awesome Valentines Day gift disguised as an uncreative one
2012-02-15 - When does an icon handler shell extension get unloaded
2012-02-16 - Why does the DrawIcon function draw at the default icon size
2012-02-17 - How do I find out which process has a file open
2012-02-20 - Whats the difference between Text Document Text Document MS-DOS Format and Unicode Text Document
2012-02-21 - Why dont music files show up in my Recent Items list
2012-02-22 - Instead of creating something and then trying to hide it simply dont create it in the first place
2012-02-23 - What does the minus sign in indirect localized string resources mean
2012-02-24 - Why does Windows keep showing the old indirect strings even after I update the binary
2012-02-27 - Why was HDS_FILTERBAR added to the common controls if nobody uses it
2012-02-28 - How can I customize which notification icons are displayed by default on a new installation
2012-02-29 - What was the nature of the feedback that resulted in the change to the highlighting model for Explore

The Old New Thing - 2012 03

2012-03-01 - How do I make it so that users can copy static text on a dialog box to the clipboard easily
2012-03-02 - This isnt Highlights magazine Sort keys and why they change
2012-03-05 - Why doesnt the Maximize button maximize across all monitors
2012-03-06 - Why does Explorer ignore seconds when sorting by Date Modified
2012-03-07 - Why do program files go into the Program Files directory
2012-03-08 - Alt text for images are important in email too
2012-03-09 - To some people time zones are just a fancy way of sounding important
2012-03-12 - If you have multiple versions of Windows installed why do they all try to adjust the clock
2012-03-13 - Microspeak Friction
2012-03-14 - How do I get mouse messages faster than WM_MOUSEMOVE
2012-03-15 - Why does the VerQueryValue function give me the wrong file version number
2012-03-16 - Memory allocation functions can give you more memory than you ask for and you are welcome to use the
2012-03-19 - The most exciting part of my morning is catching my bus specifically making the transfer
2012-03-19 - Why does holding the Ctrl key when selecting New Task from Task Manager open a command prompt
2012-03-20 - In 1993 Microsoft stole my colleagues car
2012-03-21 - Isnt there a race condition in GetFileVersionInfoSize
2012-03-22 - Why does my window style change when I call SetWindowText
2012-03-23 - Beverage Gas Division of Central Welding Supply
2012-03-23 - Why is the Heap32Next function incredibly slow on Windows 7
2012-03-26 - Why does a maximized window have the wrong window rectangle
2012-03-27 - Amusing message on a whiteboard in the hallway
2012-03-28 - Converting to Unicode usually involves you know some sort of conversion
2012-03-29 - Why cant I delete a file immediately after terminating the process that has the file open
2012-03-30 - How do I perform shell file operations while avoiding shell copy hooks

The Old New Thing - 2012 04

2012-04-02 - If posting here is frequently frustrating and irritating why do I keep doing it
2012-04-03 - Introducing the unrolled-switch anti-pattern
2012-04-04 - I totally presented to an executive the wrong way
2012-04-05 - You can use an OVERLAPPED structure with synchronous IO too
2012-04-06 - Registration-free COM the old-fashioned way The car mp3 player
2012-04-09 - Theres the interface contract and there are the implementations of the interface contract
2012-04-10 - Microspeak scoped to
2012-04-11 - I know that an overlapped file handle requires an lpOverlapped but why does it sometimes work if I om
2012-04-12 - What is the real maximum length of a DNS name
2012-04-13 - You already know the answer since you do it yourself
2012-04-16 - Why do we need IsDialogMessage at all
2012-04-17 - Theres the kernel and theres kernel mode confusing historical terminology
2012-04-18 - Why doesnt the Version tab show up for very large files
2012-04-19 - Why dont I get a Caps Lock warning balloon any more
2012-04-20 - What does INIT_ONCE_CTX_RESERVED_BITS mean
2012-04-23 - Why are programs allowed to use normal characters as hotkeys
2012-04-24 - I thought I was so clever salvaging an old floppy drive from a dead computer but I didnt think two st
2012-04-25 - How do I prevent users from opening TIF files
2012-04-26 - Shortcut properties are in the shortcut so if they can read the shortcut they can read the properties
2012-04-27 - A process shutdown puzzle Episode 2
2012-04-30 - What were the tests that WinG did to evaluate video cards
2012-04-30 - When you dont speak a language dont sound like you speak the language

The Old New Thing - 2012 05

2012-05-01 - What happened to the Summary information created on Windows 2000 and Windows XP
2012-05-02 - Why is there sometimes a long delay between pressing a hotkey for a shortcut and opening the shortcut
2012-05-03 - How does Explorer calculate the folder size information in the folder tooltip
2012-05-04 - How does the MultiByteToWideChar function treat invalid characters
2012-05-07 - Why are the Windows 7 system notification icons colorless
2012-05-08 - Why cant I use the file sharing wizard if I exclude inheritable permissions from a folders parent
2012-05-09 - How do I hide a window without blocking on it
2012-05-10 - Cheap amusement Searching for spelling errors in the registry
2012-05-11 - Warum deine Mutter Deutsch spricht
2012-05-11 - When you crash on a mov ebx eax instruction there arent too many obvious explanations so just try wha
2012-05-14 - What is the historical reason for MulDiv1 -0x80000000 -0x80000000 returning 2
2012-05-15 - Microspeak The parking lot
2012-05-16 - Sure we do that Context menu edition
2012-05-17 - Charles Petzold is back with another edition of Programming Windows
2012-05-17 - How to view the stack of threads that were terminated as part of process teardown from the kernel deb
2012-05-18 - How to view the stack of threads that were terminated as part of process teardown from user mode
2012-05-21 - What was the registry like in 16-bit Windows
2012-05-22 - Why is the Close button in the upper right corner
2012-05-23 - GUIDs are designed to be unique not random
2012-05-24 - How do I prevent unchecked checkboxes in my listview control from disappearing
2012-05-25 - The extern C specifier disables C mangling but that doesnt mean it disables mangling
2012-05-28 - If my window hosts multiple windowless ActiveX controls which one do I call IOleInPlaceActiveObjectTr
2012-05-29 - Hazards of spelling autocorrection defiance
2012-05-30 - What does a STATUS_OBJECT_TYPE_MISMATCH exception in LeaveCriticalSection mean
2012-05-31 - What happens if I call KillTimer with a NULL hwnd

The Old New Thing - 2012 06

2012-06-01 - How do I prefetch data into my memory-mapped file
2012-06-01 - The time I watched a total lunar eclipse from the top of a mountain
2012-06-04 - Why does PrintWindow hate CS_PARENTDC Because EVERYBODY hates CS_PARENTDC
2012-06-05 - Microspeak Turds
2012-06-06 - Dont be helpless What might be the reason for a Path not found error
2012-06-07 - Eventually the window manager simply says that enough is enough
2012-06-08 - How can I determine the underlying cause of a EXCEPTION_IN_PAGE_ERROR exception
2012-06-11 - Fabio coming to Redmond Also Whey Protein
2012-06-11 - Why do you have to wait for Windows Error Reporting to check for solutions before it restarts the app
2012-06-12 - Microsoft Dynamics in a soda can sort of
2012-06-13 - Why dont all of my folder customizations roam with my profile
2012-06-14 - Now that Windows makes it harder for your program to block shutdown how do you block shutdown
2012-06-15 - Globalization quiz In honor of well thats part of the quiz
2012-06-18 - What is the history of the GetRandomRgn function
2012-06-19 - Its not a good idea to give multiple controls on a dialog box the same ID
2012-06-20 - Counting down to the last day of school as students do it
2012-06-20 - When embedding a dialog inside another make sure you dont accidentally create duplicate control IDs
2012-06-21 - When the default pushbutton is invoked the invoke goes to the top-level dialog
2012-06-22 - How did real-mode Windows fix up jumps to functions that got discarded
2012-06-25 - How does Explorer determine the delay between clicking on an item and initiating an edit
2012-06-26 - Thanks for reminding me what to do when the elevator is out of order
2012-06-27 - How did my hard drive turn into a TARDIS
2012-06-28 - You still need the safe functions even if you check string lengths ahead of time
2012-06-29 - 2012 mid-year link clearance
2012-06-29 - How did real-mode Windows patch up return addresses to discarded code segments

The Old New Thing - 2012 07

2012-07-02 - Tracking shortcuts and the early history of multiple monitors
2012-07-03 - You already got your answer why are you re-asking the question
2012-07-04 - The continuing battle between people who offer a service and others who want to hack into the service
2012-07-05 - How your taskbar auto-hide settings can keep getting overwritten
2012-07-06 - The physics of a falling Slinky
2012-07-06 - What are the recommended locations for storing different types of files
2012-07-09 - Why hasnt the API hook mechanism for x64 been standardized like it was for x86
2012-07-10 - Microspeak radar
2012-07-11 - What does the HTOBJECT hit-test code do
2012-07-12 - What happens when you mark a section as DISCARDABLE
2012-07-13 - Why doesnt RealGetWindowClass return the real window class for my superclass
2012-07-16 - How much gets localized in a localized version of Windows
2012-07-17 - Why doesnt the Low Disk Space warning balloon show up as soon as I run low on disk space
2012-07-18 - Why dont per-item custom icons work when I open a Zip file or some other virtual folder
2012-07-19 - Why do some font names begin with an at-sign
2012-07-20 - The format of icon resources
2012-07-23 - Whats the story behind the WM_SYNCPAINT message
2012-07-24 - Taking flexitarianism to another perhaps unintended level
2012-07-25 - One way to make sure you pass an array of the correct size
2012-07-26 - A brief and also incomplete history of Windows localization
2012-07-27 - Psychic debugging Why your IContextMenuInvokeCommand never gets called
2012-07-30 - Raymonds subjective unfair and completely wrong impressions of the opening ceremonies of a major athl
2012-07-30 - Why dont any commands work after I run my batch file Im told that they are not recognized as an inter
2012-07-31 - Reading the output of a command into a batch file variable

The Old New Thing - 2012 08

2012-08-01 - How do I find the most recently created file in a directory from a batch file
2012-08-01 - You gotta fight for your right to parry
2012-08-02 - Exiting a batch file without exiting the command shell -and- batch file subroutines
2012-08-02 - If youre going to throw a badminton match you have to be less obvious about it
2012-08-03 - FORFILES for your fancier batch file enumeration needs
2012-08-03 - Get your Contoso-branded merchandise while you can
2012-08-06 - Why is the desktop treated so special in window ordering
2012-08-07 - Microspeak planful
2012-08-08 - Of what possible legitimate use are functions like CreateRemoteThread WriteProcessMemory and VirtualP
2012-08-09 - What is SysFader and why is it always crashing
2012-08-10 - How did real-mode Windows implement its LRU algorithm without hardware assistance
2012-08-13 - Why am I in the Quake credits
2012-08-14 - How long does it take for a notification icon to stop appearing in the Notification Area Icons contro
2012-08-15 - What happened to the Windows 2000 Language settings for the system control panel
2012-08-16 - Charles Petzolds Programming Windows Sixth Edition has reached Release Preview
2012-08-16 - What happened to the Windows 2000 Set default language setting for the system button
2012-08-17 - My colleague picked a good day to go out and catch a baseball game
2012-08-17 - What if my application is really two applications bundled into a single file and I want them collecte
2012-08-20 - How do I customize how my application windows are grouped in the Taskbar
2012-08-21 - Sorry we got cut off my phone just auto-rebooted
2012-08-22 - The shifting sands of Run as different user
2012-08-23 - Wait you never said that I had to initialize the object before I used it
2012-08-24 - Dumping a hash table with external chaining from the debugger
2012-08-27 - How does the taskbar decide whether to show Recent or Frequent documents on the jump list
2012-08-28 - Command line tool to manage Windows 7 Libraries with source code
2012-08-28 - Well at least nobodys parking there any more
2012-08-29 - Psychic debugging Why Chinese characters dont work
2012-08-30 - Im not calling a virtual function from my constructor or destructor but Im still getting a __purecall
2012-08-31 - Adventures in undefined behavior The premature downcast

The Old New Thing - 2012 09

2012-09-03 - Buzzword-filled subject line easily misinterpreted by unsuspecting manager
2012-09-04 - Why dont the shortcuts I put in the CSIDL_COMMON_FAVORITES folder show up in the Favorites menu
2012-09-05 - How did the X-Mouse setting come to be
2012-09-06 - You cant rule out a total breakdown of normal functioning because a total breakdown of normal functio
2012-09-07 - The case of the asynchronous copy and delete
2012-09-10 - When you transfer control across stack frames all the frames in between need to be in on the joke
2012-09-11 - One for the They have to say that because of me Ground rules at the Point Defiance Zoo
2012-09-11 - Why cant I use Magnifier in Full Screen or Lens mode
2012-09-12 - Rogue feature Docking a folder at the edge of the screen
2012-09-13 - WM_CTLCOLOR vs GetFileVersionInfoSize Just because somebody else screwed up doesnt mean youre allowed
2012-09-14 - IShellFolderBindToObject is a high-traffic method dont do any heavy lifting
2012-09-14 - Raymond learns about some of the things people do to get banned on Xbox LIVE
2012-09-17 - How do you deal with an input stream that may or may not contain Unicode data
2012-09-18 - The day I stole Joe Belfiores mouse
2012-09-19 - Does the CopyFile function verify that the data reached its final destination successfully
2012-09-20 - How do I invoke a verb on an IShellItemArray
2012-09-21 - How can I implement SAFEARRAYToString without going insane
2012-09-21 - In vollen Zügen genießen
2012-09-24 - A classification of faces with eyes open and closed in Dr Seusss ABC based on the nature of the chara
2012-09-24 - I brought this process into the world and I can take it out
2012-09-25 - Why cant I set Size all columns to fit as the default
2012-09-26 - Sabotaging yourself Closing a handle and then using it
2012-09-27 - The Ride to Rio Bicycling from Los Angeles to Rio de Janeiro
2012-09-27 - Why arent environment variables being expanded in my RGS file
2012-09-28 - 2012 Q3 link clearance Microsoft research edition
2012-09-28 - Data in crash dumps are not a matter of opinion

The Old New Thing - 2012 10

2012-10-01 - Whats the difference between F5 and F8 at the boot screen
2012-10-02 - Microspeak Granular
2012-10-03 - How do I suppress the default animation that occurs when I hide or show a window
2012-10-04 - An unexpected application of negative numbers to gift-giving
2012-10-04 - Why does RegOpenKey sometimes but not always fail if I use two backslashes instead of one
2012-10-05 - How do I override the default icon selection algorithm
2012-10-08 - How does Explorer deal with recent files that were renamed
2012-10-09 - Usage guidance for a popcorn machine in the kitchenette
2012-10-10 - Why does Windows Compressed Folders Zip folders reject paths that begin with a slash
2012-10-11 - Combo boxes have supported incremental searching for quite some time now
2012-10-12 - What happens if you forget to pass an OVERLAPPED structure on an asynchronous handle
2012-10-15 - The cries of Oh no emerge from each office as the realization slowly dawns
2012-10-16 - Irony patrol Recycling bins
2012-10-17 - If theres a problem with a wiki then you can fix it thats why its a wiki
2012-10-18 - Why does ShellExecute return SE_ERR_ACCESSDENIED for nearly everything
2012-10-19 - Using WM_COPYDATA to marshal message parameters since the window manager otherwise doesnt know how
2012-10-22 - How do you come up with new shortcut keys
2012-10-23 - Diversion Generating a random color from JavaScript
2012-10-24 - You cant use the WM_USER message in a dialog box
2012-10-25 - Keyboard layouts arent like Beetlejuice they wont appear just because you say their name
2012-10-26 - Whether the Unicode Bidi algorithm is intuitive depends on your definition of intuitive
2012-10-29 - In the conversion to 64-bit Windows why were some parameters not upgraded to SIZE_T
2012-10-30 - Keyboard shortcut for resizing all columns in a listview control to fit
2012-10-30 - The wisdom of seveHHHHsixth graders Living without electronics for a week
2012-10-31 - The TEMP directory is like a public hot tub whose water hasnt been changed in over a year

The Old New Thing - 2012 11

2012-11-01 - When you synthesize input with SendInput you are also synthesizing the timestamp
2012-11-02 - How do I parse a string into a FILETIME
2012-11-05 - How do I get the tabbed dialog effect on my own custom tabbed dialog
2012-11-06 - If youre asking somebody to help you you want to make it easy for them not harder
2012-11-07 - Instead of trying to create a filter that includes everything try just omitting the filter
2012-11-08 - What does the COINIT_SPEED_OVER_MEMORY flag to CoInitializeEx do
2012-11-09 - Thread affinity of user interface objects Addendum
2012-11-12 - Frequentists vs Bayesians
2012-11-12 - Why are taskbar live previews lost when you use Fast User Switching
2012-11-13 - Microsoft Money crashes during import of account transactions or when changing a payee of a downloade
2012-11-14 - Break it up you two The zero width non-joiner
2012-11-15 - If youre going to write your own allocator you need to respect the MEMORY_ALLOCATION_ALIGNMENT
2012-11-16 - How do I forward an exported function to an ordinal in another DLL
2012-11-19 - Raymonds podcast list for 2011 at least
2012-11-20 - How do I use group policy to improve security of USB thumb drives in my organization
2012-11-20 - Microspeak touch base
2012-11-21 - It rather involved being on the other side of this airtight hatchway Silently enabling features
2012-11-22 - The resource compiler will helpfully add window styles for you but if youre building a dialog templat
2012-11-23 - The Haters Guide to the Williams-Sonoma Catalog
2012-11-23 - When studying performance you need to watch out not only for performance degradation but also unexpec
2012-11-26 - How does the window manager decide where to place a newly-created window
2012-11-26 - Puzzling triple rainbow clearly identifies location of pot of gold
2012-11-27 - Security vulnerability reports as a way to establish your l33t kr3z
2012-11-28 - Why are there both FIND and FINDSTR programs with unrelated feature sets
2012-11-29 - Various ways of performing an operation asynchronously after a delay
2012-11-30 - The debugger lied to you because the CPU was still juggling data in the air

The Old New Thing - 2012 12

2012-12-03 - Have you found any TheDailyWTF-worthy code during the development of Windows 95
2012-12-04 - The QuickCD PowerToy a brief look back
2012-12-05 - Why do I get notified for changes to HKEY_CLASSES_ROOT when nobody is writing to HKEY_CLASSES_ROOT
2012-12-06 - Replaying input is not the same as reprocessing it
2012-12-07 - It rather involved being on the other side of this airtight hatchway Writing to the application direc
2012-12-10 - Ill tell you what I think of the new University of California logo once it finishes loading
2012-12-10 - Why do some shortcuts not support editing the command line and other properties
2012-12-11 - Microspeak v-team
2012-12-12 - How am I supposed to free the information returned by the GetSecurityInfo function
2012-12-13 - Why is it so hard to write a program that requires UI Access privilege
2012-12-14 - Why is it possible to create a toolbar with the wrong HINSTANCE And whats the right HINSTANCE anyway
2012-12-17 - 2012 års Gävlebock gick upp i brand Igen
2012-12-17 - Like the cake WS_EX_TRANSPARENT is a lie or at least not the entire truth
2012-12-18 - Why was Pinball removed from Windows Vista
2012-12-19 - Why doesnt SHGetKnownFolderPath return the customized path
2012-12-20 - Why do I sometimes get classic buttons and sometimes themed buttons depending on the host process
2012-12-21 - Why do BackupRead and BackupWrite require synchronous file handles
2012-12-24 - Miss Denmark she is dressed as a mermaid because we couldnt secure the rights from LEGO
2012-12-24 - What is the proper handling of WM_RENDERFORMAT and WM_RENDERALLFORMATS
2012-12-25 - You too can use your psychic powers Spaces in paths
2012-12-26 - A question about endian-ness turns out to be the wrong question
2012-12-26 - What celebration of Kwanzaa would be complete without Sandra Lees infamous Kwanzaa cake
2012-12-27 - What is so special about the instance handle 0x10000000
2012-12-28 - What do HeapLock and HeapUnlock do and when do I need to call them
2012-12-31 - 2012 year-end link clearance
2012-12-31 - Why cant you rename deleted items in the Recycle Bin

The Old New Thing - 2013 01

2013-01-01 - If NTFS is a robust journaling file system why do you have to be careful when using it with a USB thu
2013-01-02 - A few stray notes on Windows patching and hot patching
2013-01-03 - Why does my program run really slow or even crash or stop crashing or crash differently if running un
2013-01-04 - Whats the guidance on when to use rundll32 Easy Dont use it
2013-01-07 - Understanding the classical model for linking groundwork The algorithm
2013-01-08 - Understanding the classical model for linking Taking symbols along for the ride
2013-01-09 - The enduring cultural fascination with Queens Bohemian Rhapsody
2013-01-09 - Understanding the classical model for linking You can override an LIB with another LIB and a LIB with
2013-01-10 - Understanding the classical model for linking Sometimes you dont want a symbol to come along for a ri
2013-01-11 - Understanding errors in classical linking The delay-load catch-22
2013-01-14 - How can I write a script that finds my top-rated photos
2013-01-14 - State law requires you to watch this video of a singing hippo
2013-01-15 - If there were some sort of award for alternative commuting we wouldve been eligible
2013-01-16 - How do I create a TaskDialog with a progress bar but no cancel button
2013-01-17 - A brief history of the GetEnvironmentStrings functions
2013-01-18 - What is this rogue version 10 of the HTML clipboard format
2013-01-21 - The 20132014 Seattle Symphony subscription season at a glance
2013-01-21 - The changing name of the Microsoft event held in conjunction with Martin Luther King Jr Day
2013-01-22 - Heads-up Phone scammers pretending to be JPMorgan Chase MasterCard security
2013-01-22 - Microspeak pivot
2013-01-23 - Eliot Changs list of things Asians hate
2013-01-23 - Why was WHEEL_DELTA chosen to be 120 instead of a much more convenient value like 100 or even 10
2013-01-24 - STRICT_TYPED_ITEMIDS is the shell namespace version of the STRICT macro used by USER and GDI
2013-01-25 - When you have a SAFEARRAY you need to know what it is a SAFEARRAY of
2013-01-28 - Finding a printer and then creating a shortcut to that printer
2013-01-28 - Please hold your head perfectly still while you write up that memo
2013-01-29 - Poisoning your own DNS for fun and profit
2013-01-30 - Why doesnt HeapValidate detect corruption in the managed heap
2013-01-31 - The somewhat misguided question of whether MapViewOfFile or WriteProcessMemory is faster

The Old New Thing - 2013 02

2013-02-01 - Psychic debugging Why your IContextMenuInvokeCommand doesnt get called even though you returned succe
2013-02-01 - The annual sporting event involving a football that dare not speak its name and a digression into the
2013-02-04 - Obtaining the parsing name and pidl for a random shell object
2013-02-04 - Old trace logs in your dreams
2013-02-05 - Optimizing the Chilis dining experience
2013-02-06 - The curious pattern of pre-emptively rejecting the solution to your problem
2013-02-07 - How can I register my context menu command for all file types except one or other complex conditional
2013-02-07 - Once you know something can be done doing it is much easier
2013-02-08 - For the Nitpickers Enhanced-mode Windows 30 didnt exactly run a copy of standard-mode Windows inside
2013-02-08 - The Essential Guide To Dim Sum
2013-02-11 - Display an overlay on the taskbar button
2013-02-11 - Let me take this shortcut across Lake Saskatchewan
2013-02-12 - Whats the story of the onestopmid file in the Media directory
2013-02-13 - How do I launch a file as if it were a text file even though its extension is not txt
2013-02-14 - If you cant find the function find the caller and see what the caller jumps to
2013-02-15 - Debug session Why is an LPC server not responding
2013-02-18 - Display control buttons on your taskbar preview window
2013-02-18 - I speak German better in my dream than I do in real life
2013-02-19 - Microspeak bubble up
2013-02-20 - You can ask the compiler to answer your calling convention questions
2013-02-21 - What does -1IND mean A survey of how the Visual C runtime library prints special floating point value
2013-02-22 - Isnt the CompletionKey parameter to CreateIoCompletionPort superfluous
2013-02-22 - Now that version 4 of the NET Framework supports in-process side-by-side runtimes is it now okay to w
2013-02-25 - Display a custom thumbnail for your application and while youre at it a custom live preview
2013-02-25 - Dreaming up strange inventions The combination urinalbidetwashing machine
2013-02-26 - This code would be a lot faster if it werent for the synchronization
2013-02-27 - When the option becomes so second-nature you forget that its an option
2013-02-28 - Is there a way to specify an icon to appear next to a menu item via the resource template
2013-02-28 - What does 1J mean A strange corner case of the printing of special values

The Old New Thing - 2013 03

2013-03-01 - The source of much confusion backed by the system paging file
2013-03-04 - Around and around and back and somewhere else
2013-03-04 - Marking a shortcut to say that it should not be placed on the Windows 8 Start page upon installation
2013-03-05 - Inadvertently creating dress-like-Steve day
2013-03-05 - Space Mountain as if the lights were on and other DisneylandWorld secrets
2013-03-06 - What are the dire consequences of not selecting objects out of my DC
2013-03-07 - What are the conventions for managing standard handles
2013-03-08 - Microsoft-internal Chuck Norris facts
2013-03-08 - Why do Explorer and the command prompt interpret file times differently
2013-03-11 - Derive the age of the planet Jupiter from the properties of liquid hydrogen and the planets surface t
2013-03-11 - How can I see what files and shares are being accessed remotely and the general usage pattern for the
2013-03-12 - How do I hide Public Libraries on all computers in my organization
2013-03-12 - Redistributing computers among offices for heating purposes
2013-03-13 - Closing holes in the update notification pattern
2013-03-14 - Playing with the Windows Animation Manager Fixing a sample
2013-03-15 - Playing with the Windows Animation Manager Moving lots of stuff around
2013-03-18 - It may be your birthday but why stop at just the day Think big
2013-03-18 - Manipulating the positions of desktop icons
2013-03-19 - Microspeak Science project
2013-03-19 - Raymonds highly scientific predictions for the 2013 NCAA mens basketball tournament
2013-03-20 - The x86 architecture is the weirdo Structured exception handling
2013-03-21 - Does this operation work when file system redirection is disabled The default answer is NO
2013-03-22 - When will GetMessage return -1
2013-03-25 - Dreaming about a rather unusual guitar rehearsal
2013-03-25 - Using accessibility to monitor windows as they come and go
2013-03-26 - Theres no law that says two people cant have the same thing to eat
2013-03-27 - Adjust visual effects for best performance should really be called Adjust visual effects for crappies
2013-03-28 - The C language specification describes an abstract computer not a real one
2013-03-29 - 2013 Q1 link clearance Microsoft blogger edition
2013-03-29 - How do I convert a method name to a method index for the purpose of INTERFACEINFO

The Old New Thing - 2013 04

2013-04-01 - Some trivia about the build 2011 conference
2013-04-01 - The jokes on you because PATH goes to Penn Station not Grand Central
2013-04-02 - Where did the research project RedShark get its name
2013-04-03 - How can I move an HTREEITEM to a new parent
2013-04-04 - Dont forget the fourth parameter to ReadFile and WriteFile is sometimes mandatory
2013-04-05 - How do I wait until all processes in a job have exited
2013-04-08 - Another meaning of the word leptoceratops
2013-04-08 - The managed way to retrieve text under the cursor mouse pointer
2013-04-09 - On giving a name at the register to be called when your order is ready
2013-04-10 - The problem with adding more examples and suggestions to the documentation is that eventually people
2013-04-11 - The importance of having a review panel of twelve-year-old boys episode 2
2013-04-12 - Is it legal to have a cross-process parentchild or ownerowned window relationship
2013-04-12 - The phenomenon of houses with nobody living inside for perhaps-unexpected reasons
2013-04-15 - Using opportunistic locks to get out of the way if somebody wants the file
2013-04-15 - Your tenant and your lover in your dreams
2013-04-16 - Dangerous setting is dangerous This is why you shouldnt turn off write cache buffer flushing
2013-04-17 - If you dont know what youre going to do with the answer to a question then theres not much point in m
2013-04-18 - How can I figure out which user modified a file
2013-04-19 - Technically not lying but not exactly admitting fault either
2013-04-19 - Why does CoCreateInstance work even though my thread never called CoInitialize The curse of the impli
2013-04-22 - Dreaming about games based on Unicode
2013-04-22 - Getting the current selection from an Explorer window
2013-04-23 - Microspeak Tenet
2013-04-24 - Dark corners of CC The typedef keyword doesnt need to be the first word on the line
2013-04-25 - If youre going to use an interlocked operation to generate a unique value you need to use it before i
2013-04-26 - Another way to create a process with attributes maybe worse maybe better
2013-04-26 - Fake film project tries to create real film to hide fakeness and fails
2013-04-29 - Dentistry in the Brazil-like future
2013-04-29 - Getting the display name for a shell property
2013-04-30 - The most expensive notepads in Microsoft history

The Old New Thing - 2013 05

2013-05-01 - How do I get the current value of the RSP register from a CC function No answer but a solution
2013-05-01 - I wrote two lines of code yesterday
2013-05-02 - Any setting you expose to the user you implicitly expose to applications
2013-05-03 - Creating a simple pidl For the times you care enough to send the very fake
2013-05-06 - Extending process attribute inheritance beyond its current boundaries
2013-05-06 - Reading mouse input from a console program and programmatically turning off Quick Edit mode
2013-05-07 - How to tell the poseurs from the actual Windows developers
2013-05-08 - Mathematical formulas are designed to be pretty not to be suitable for computation
2013-05-09 - Why am I getting LNK2019 unresolved external for my inline function
2013-05-10 - If you want to use a name for your file mapping dont just use the name of the file itself
2013-05-13 - How can I display a live screenshot of a piece of another application
2013-05-13 - The secret lair of Administrative Assistants
2013-05-14 - Microspeak booked
2013-05-15 - Hey look now Im Director of Strategic Planning oh and my name also changed to Oliver Lee
2013-05-15 - What does GDI use biXPelsPerMeter and SetBitmapDimensionEx for
2013-05-16 - Untangling the confusingly-named WM_UPDATEUISTATE and WM_CHANGEUISTATE messages
2013-05-16 - Your electric fan is trying to kill you and other cultural superstitions
2013-05-17 - Who sends the initial WM_UPDATEUISTATE message
2013-05-20 - Copying a file to the clipboard so you can paste it into Explorer or an email message or whatever
2013-05-20 - The importance of remembering parity in a back-and-forth race on your flying bicycle
2013-05-21 - A question about proper disposal of unwanted items with an unhelpful answer
2013-05-22 - How do I get a window back on the screen when it moved far far away Windows 7 and 8 edition
2013-05-23 - Even though mouse-move paint and timer messages are generated on demand its still possible for one to
2013-05-24 - What happens if I manually post an auto-generated message into my message queue
2013-05-27 - How do I customize the console properties for a shortcut to a console application
2013-05-27 - What are the scoping rules for variables in nested courtyards
2013-05-28 - Why dont hotkeys for items on my Start menu work when I am in a fullscreen application
2013-05-29 - Whats the point of SecureZeroMemory
2013-05-30 - The posted message queue vs the input queue vs the message queue
2013-05-31 - Posted messages are processed ahead of input messages even if they were posted later

The Old New Thing - 2013 06

2013-06-03 - How do I make it more difficult for somebody to take a screenshot of my window
2013-06-03 - When a CD gets stuck on infinite repeat during the night
2013-06-04 - Asynchronous input vs synchronous input a quick introduction
2013-06-05 - When you share an input queue you have to wait your turn
2013-06-06 - A pathological program which ignores the keyboard and understanding the resulting behavior based on w
2013-06-07 - Sharing an input queue takes what used to be asynchronous and makes it synchronous like focus changes
2013-06-10 - A big little program Monitoring Internet Explorer and Explorer windows part 1 Enumeration
2013-06-10 - Unexpected complexity of Swedish pronouns and escaping the resulting embarrassment
2013-06-11 - An introduction to COM connection points
2013-06-12 - Dispatch interfaces as connection point interfaces
2013-06-13 - A big little program Monitoring Internet Explorer and Explorer windows part 2 Tracking navigations
2013-06-14 - A big little program Monitoring Internet Explorer and Explorer windows part 3 Tracking creation and d
2013-06-17 - Displaying a property sheet for multiple files
2013-06-17 - I wonder if the Queen of England ever pulls this sort of prank in real life
2013-06-18 - Microspeak to family well
2013-06-19 - AttachThreadInput is like taking two threads and pooling their money into a joint bank account where
2013-06-20 - Solving the problem rather than answering the question Why does somebody want to write an unkillable
2013-06-21 - Of what use is the RDW_INTERNALPAINT flag
2013-06-24 - Drawing content at a fixed screen position regardless of window position
2013-06-24 - Wait this is not my regular bicycle commute home
2013-06-25 - Where did the names of the fonts Marlett and Verdana come from
2013-06-26 - The default error mode SetErrorMode is not zero
2013-06-27 - Once you return from the WM_ENDSESSION message your process can be terminated at any time
2013-06-28 - 2013 mid-year link clearance
2013-06-28 - Its the address space stupid

The Old New Thing - 2013 07

2013-07-01 - Building on our program that draws content at a fixed screen position regardless of window position
2013-07-01 - I wonder what sort of efficiency that house gets on the Autobahn
2013-07-02 - I didnt go to build in San Francisco but Ill be at RAMP in Budapest
2013-07-02 - You can read as well as I can or maybe not
2013-07-03 - Why dont elevated processes inherit their environment variables from their non-elevated parent
2013-07-04 - Why was the Windows source code trunk called the Blue Line
2013-07-05 - It rather involved being on the other side of this airtight hatchway Disabling Safe DLL searching
2013-07-08 - A program for my nieces The ABCs part 1
2013-07-08 - It really wasnt that fancy a Swedish sentence
2013-07-09 - The credit card with a half-million-dollar credit limit
2013-07-10 - Why is the syntax for touching a file from the command prompt so strange
2013-07-11 - Where is this CRC that is allegedly invalid on my hard drive
2013-07-12 - If you want to track whether the current thread owns a critical section you can use the critical sect
2013-07-15 - A program for my nieces The ABCs part 2 choosing a font
2013-07-15 - Watch out for those out-of-control Canadian tour buses
2013-07-16 - Microspeak Landing especially the heated kind
2013-07-17 - Why is LOCALE_SDURATION so dorky-looking
2013-07-18 - If youre not using the command line interpreter then the command line interpreter metacharacters mean
2013-07-19 - Nasty gotcha STGM_READ STGM_WRITE does not grant readwrite access
2013-07-22 - A program for my nieces The ABCs part 3
2013-07-22 - At least its clear who will NOT be bunking together
2013-07-23 - Office Office Office Malkovich Office Office Office
2013-07-24 - Nighttime pictures of London and Tokyo
2013-07-24 - Windows 7 no longer tries to guess application size and other information
2013-07-25 - What is the default cursor for a thread
2013-07-26 - From Microsofts mail room to the board room
2013-07-29 - A program for my nieces The ABCs part 4
2013-07-29 - Im sure that Star Trek-themed parties exist so why has no one ever scheduled one as a Microsoft holid
2013-07-30 - Sometimes people can be so helpless Finding the owner of a Web page
2013-07-31 - Why does Explorer sometimes show my server name in parentheses

The Old New Thing - 2013 08

2013-08-01 - The case of the auto-hide taskbar
2013-08-02 - It rather involved being on the other side of this airtight hatchway Open access to the application d
2013-08-05 - A practical reason for shutting down for the Mayan apocalyse
2013-08-05 - Why does BitConverterLittleEndian return false on my x86 machine
2013-08-06 - Sometimes sports-rule lawyering comes true The strikeout with only one thrown pitch
2013-08-06 - The mysterious ways of the params keyword in C
2013-08-07 - The mathematical card game Krypto and reaching a level of proficiency where the rules break down
2013-08-07 - Weak references have no effect on object lifetime
2013-08-08 - On partially-constructed objects additional remarks not as interesting
2013-08-09 - Each time I move my mailbox moves further away
2013-08-09 - Why does the CLR report a NullReferenceException even if the referenced access is not exactly the nul
2013-08-12 - How do I convert a synchronous file handle into an asynchronous one
2013-08-12 - Please dont wade across the Strait of Juan de Fuca
2013-08-13 - Generally speaking yanking the power plug unexpectedly should not be part of your business process
2013-08-14 - Whats the point of letting you change the GCL_CBCLSEXTRA if it has no effect
2013-08-15 - How do I control the order of the pages in property sheets from my shell extension
2013-08-16 - If I signal an auto-reset event and there is a thread waiting on it is it guaranteed that the event w
2013-08-19 - A dream about forgetting to deploy the backup brake pads
2013-08-19 - The tiny table sorter or you can write LINQ in JavaScript
2013-08-20 - Microspeak The train
2013-08-21 - Adding a confirmation dialog to every dragdrop operation does not solve the problem
2013-08-22 - All IO on a synchronous file handle is serialized thats why its called a synchronous file handle
2013-08-23 - If I attach a file to an existing completion port do I have to close the completion port handle a sec
2013-08-26 - The challenge of improvisational historical comedy
2013-08-26 - Why doesnt the Automatically move pointer to the default button in a dialog box work for nonstandard
2013-08-27 - How can I find out which process and user is modifying a file
2013-08-28 - The format of data and custom resources
2013-08-29 - How can I write to a file only as long as nobodys looking
2013-08-30 - Can an x64 function repurpose parameter home space as general scratch space

The Old New Thing - 2013 09

2013-09-02 - If you had to deal with preschoolers all day youd need a nap too
2013-09-02 - What is the official name of the most popular work visa in the United States
2013-09-03 - If your product is client-managed how do you sell the server
2013-09-04 - How permanent is the Remove from this list action on the Start menu
2013-09-05 - Why are my posted messages getting lost when the user drags my window around
2013-09-06 - How to rescue a broken stack trace on x64 Recovering the stack pointer
2013-09-09 - Mom and dads event-filled first day of school
2013-09-09 - Programmatically editing the metadata of an audio file
2013-09-10 - Early versions of Aero Peek Aladdin Bat Signal and Squeegee
2013-09-11 - Why does Internet Explorer put tab stops at 8-character intervals instead of 4 like all right-thinkin
2013-09-12 - It rather involved being on the other side of this airtight hatchway Creating problematic files in a
2013-09-13 - How does InterlockedIncrement work internally
2013-09-16 - Entering the world of competitive Ring-Around-the-Rosie
2013-09-16 - Forcing a file handle closed when it has been opened remotely
2013-09-17 - Facilities jargon Energize
2013-09-18 - SubtractRect doesnt always give you the exact difference
2013-09-19 - Raymonds subjective biased unfair and completely wrong characterization of the sounds of several East
2013-09-19 - When a program is launched via DDE and there are multiple servers which one is used
2013-09-20 - How can I tell that I have a shell folder that represents My Computer
2013-09-23 - I dreamed that I was in an alternate-universe Samuel L Jackson movie
2013-09-23 - Providing a custom autocomplete source for an edit control
2013-09-24 - Punctuation is becoming increasingly decorative and less functional
2013-09-24 - Wait so does moving a file recalculate inherited permissions or doesnt it
2013-09-25 - How can I tell that somebody used the MAKEINTRESOURCE macro to smuggle an integer inside a pointer
2013-09-26 - Dont forget Unicode includes formatting characters which can be used to influence output formatting
2013-09-27 - 2013 Q3 link clearance Microsoft blogger edition
2013-09-27 - How can I determine how responsive my application is to input
2013-09-30 - Playing a sound every time the foreground window changes
2013-09-30 - Sometimes my dreams are entirely uneventful

The Old New Thing - 2013 10

2013-10-01 - The management of memory for resources in 16-bit Windows redux
2013-10-02 - The relationship between module resources and resource-derived objects in 16-bit Windows
2013-10-03 - The relationship between module resources and resource-derived objects in 32-bit Windows
2013-10-04 - Whats the difference between CopyIcon and DuplicateIcon
2013-10-07 - But instead they decided to build the Great Wheel
2013-10-07 - Printing the contents of the clipboard as text to stdout
2013-10-08 - I wrote FAT on an airplane for heavens sake
2013-10-08 - I wrote my thesis on an airplane for heavens sake
2013-10-09 - Using the TAB key to navigate in non-dialogs redux
2013-10-10 - Happy 110th birthday Professor Alyea
2013-10-10 - How do I find out what size the window manager would have chosen for my window
2013-10-11 - C corner case You can implement pure virtual functions in the base class
2013-10-14 - Filtering the folders that appear in the Browse for Folder dialog
2013-10-14 - The imaginary experience of dining at an underground restaurant
2013-10-15 - Just because I dont deny something doesnt make it true
2013-10-16 - Why does my window get a WM_ACTIVATE message when it isnt active
2013-10-17 - What is the inverse of AdjustWindowRect and AdjustWindowRectEx
2013-10-18 - The case of the redirected standard handles that wont close even though the child process has exited
2013-10-21 - Opening and manipulating Internet Explorer windows programmatically
2013-10-21 - Using a toy cash register as a keyboard doesnt add up
2013-10-22 - The hierarchy of user education as interpreted by a vice president
2013-10-23 - It rather involved being on the other side of this airtight hatchway Planting DLLs into directories o
2013-10-24 - When should I use the FIND_FIRST_EX_LARGE_FETCH flag to FindFirstFileEx
2013-10-25 - My those threads start up really fast nowadays
2013-10-28 - The financial acumen of sea turtles
2013-10-28 - Using GetLogicalProcessorInformationEx to see the relationship between logical and physical processor
2013-10-29 - Help me optimize this code which enumerates all possible GUIDs
2013-10-30 - Distinguishing between asking for help with a product and asking for help with a products installatio
2013-10-31 - If there is no 16-bit emulation layer in 64-bit Windows how come certain 16-bit installers are allowe
2013-10-31 - The guide to trading candy

The Old New Thing - 2013 11

2013-11-01 - On the various ways of getting the current time and date in Win32
2013-11-04 - Manipulating the zone identifier to specify where a file was download from
2013-11-04 - The complexity of modern voting or at least modern dream voting
2013-11-05 - What is the point of FreeLibraryAndExitThread
2013-11-06 - CoUninitalize will ask a DLL if it is okay to unload now but the answer is a foregone conclusion
2013-11-07 - Partially eliminating the need for SetThreadpoolCallbackLibrary and reducing the cost of FreeLibraryA
2013-11-08 - Whats the point of the various WhenCallbackReturns functions
2013-11-11 - How did Raymond discover his carrier-screaming talent And his homemade Marauders Map
2013-11-12 - Microspeak Spinning up or kicking off a build
2013-11-13 - A possibly unbeatable record for the shortest amount of time between an email message and its resend
2013-11-14 - Why is my FormatMessage call crashing trying to read my insertion parameter
2013-11-15 - Restoring symbols to a stack trace originally generated without symbols
2013-11-18 - How can I launch an unelevated process from my elevated process and vice versa
2013-11-18 - My friend lived in a tiny house with an enormous garage
2013-11-19 - Why is the Program Files directory called Program Files instead of just Programs
2013-11-20 - Why dont all of my documents show up when I arrange my Documents library by Name
2013-11-21 - How do I get the path to the default users profile
2013-11-22 - How do I get the effect of CW_USEDEFAULT positioning on a window Ive already created
2013-11-25 - Extracting GPS coordinates from a photo and plotting it on a map
2013-11-25 - My friend lived in an apartment inside a museum
2013-11-26 - Why did Raymond bring a knitting bag to every meeting
2013-11-27 - The case of the DLL that refuses to load
2013-11-28 - If you try to declare a variadic function with an incompatible calling convention the compiler secret
2013-11-28 - Things that can happen when your kitchen gets taken over by others
2013-11-29 - Notes on gift card and gift certificates in the state of Washington
2013-11-29 - Why cant I create my dialog with DialogBox DialogBoxParam CreateDialog CreateDialogParam or the indir

The Old New Thing - 2013 12

2013-12-02 - Logging the foreground process as it changes
2013-12-02 - The walls of my friends house sometimes randomly got corrupted
2013-12-03 - How do I configure the timeout used by UI0Detect Interactive Services Detection service
2013-12-03 - Sir is this your high-speed ferry
2013-12-04 - Whats the difference between the wParam of the WM_NOTIFY message and the idFrom in the NMHDR structur
2013-12-05 - Whats up with the registry key HKEY_CLASSES_ROOTCLSIDCLSID
2013-12-06 - Is it wrong to call SHFileOperation from a service
2013-12-09 - Destroying all child processes and grandchildren when the parent exits
2013-12-09 - This was only a test if this had been an actual concert
2013-12-10 - Mysterious email possible social engineering whatever it was it didnt work
2013-12-11 - Some vice presidents forget that not everybody attends the same meetings that they do
2013-12-12 - How do you intercept taskbar notification balloons
2013-12-13 - Turning off the disco lights on the Start screen
2013-12-16 - Disabling the PrtSc key by blocking input
2013-12-16 - That fee was so that we wouldnt have to raise our prices
2013-12-17 - Tales from The Box A survey of crackpots in physics
2013-12-17 - Why doesnt the New Folder command work in the root of a redirected drive resource in a Remote Desktop
2013-12-18 - Whether your application should display its content in RTL should be based on the content
2013-12-19 - How do I display an RTL string in a notification balloon on an LTR system
2013-12-20 - Wouldnt the Recycle Bin sample program have been simpler without COM
2013-12-23 - Creating custom tasks on a jump list
2013-12-23 - That doesnt sound like South Frisian to me
2013-12-24 - Essays from the funniest man in Microsoft Research
2013-12-25 - The chain of stories triggered by seeing a package of Ahoj-Brause
2013-12-26 - I think were going to be getting frozen leftovers for lunch today
2013-12-26 - Why is GetWindowLongPtr returning a garbage value on 64-bit Windows
2013-12-27 - Brief QampA on the HeapEnableTerminationOnCorruption heap information flag
2013-12-30 - How can I get the list of programs the same way that Programs and Features gets it
2013-12-30 - Theres no seating up there so you just have to hang on for dear life
2013-12-31 - 2013 year-end link clearance
2013-12-31 - New Years Eve is sometimes a stressful occasion

The Old New Thing - 2014 01

2014-01-01 - We know your job is hard you dont have to show us
2014-01-02 - If the cursor clip rectangle is a global resource how come I cant change it with ClipCursor
2014-01-03 - What happened in real-mode Windows when somebody did a longjmp into a discardable segment
2014-01-06 - Excuses college students use for missing assignments
2014-01-06 - How do I obtain the computer manufacturers name via C
2014-01-07 - The case of the mysterious Alternate Data Stream query
2014-01-08 - The case of the missing context menu verbs
2014-01-09 - Can you dllexportdllimport an inline function
2014-01-10 - How do I manually recalculate ACLs on a file based on the containing directory
2014-01-13 - Creating a listview with checkboxes on some items but not others
2014-01-13 - The Dead GrandmotherExam Syndrome
2014-01-14 - How do I hit the WinPrintScreen hotkey if my tablet doesnt have a PrtSc key
2014-01-15 - There are so many things that call themselves message queues
2014-01-16 - The curse of the leading zero
2014-01-17 - Psychic debugging Why messages arent getting processed by your message pump
2014-01-20 - Hello Kitty takes a rather inefficient trip to the United States
2014-01-20 - How do I get a high resolution icon for a file
2014-01-21 - When the Web page says that a tool is not supported it means that if you find a problem and contact t
2014-01-22 - Commissioner Bud Selig was named the first recipient of the Commissioner Bud Selig Leadership Award
2014-01-22 - What clock do MSGtime and GetMessageTime use
2014-01-23 - The Visual Effects dialog box just tells you what you want to hear
2014-01-24 - Jan-Keno Janssen decides to rent a bicycle to get around Las Vegas this is what happens
2014-01-24 - Non-psychic debugging Looking for leaked objects by their vtable
2014-01-27 - How can I make a callback function a member of my C class
2014-01-27 - The 20142015 Seattle Symphony subscription season at a glance
2014-01-28 - Why does my setup program detect the operating system incorrectly the second time I run it
2014-01-29 - One of my favorite error codes Optional parameter missing
2014-01-30 - Can process IDs be greater than 64000 Because were seeing process IDs greater than 64000
2014-01-31 - Non-psychic debugging If somebodys complaining that a collection should be empty but isnt you might w
2014-01-31 - Why chicken wings dominate Super Bowl snack time

The Old New Thing - 2014 02

2014-02-03 - How can I make a WNDPROC or DLGPROC a member of my C class
2014-02-03 - The new research citation format if students got to design it
2014-02-04 - Racing email against a snail
2014-02-05 - How do I prevent folders like My Pictures from being recreated
2014-02-06 - If an asynchronous IO completes synchronously is the hEvent in the OVERLAPPED structure signaled anyw
2014-02-06 - The United States Team uniforms for the opening ceremony is rather hideous and illegal and a bit anac
2014-02-07 - VirtualLock locks your memory into the working set even if your threads are blocked
2014-02-10 - Excuses I learned from babies
2014-02-10 - Execute a file as if it were a program even though its extension is not EXE
2014-02-11 - Microspeak Party in various forms
2014-02-12 - The heavy metal umlaut encroaches into Seattle real estate
2014-02-12 - What is this extra thread in my process
2014-02-13 - When something gets added to a queue it takes time for it to come out the front of the queue
2014-02-14 - Debugging Diagnosing why malloc is failing
2014-02-14 - When someone proposes marriage bear in mind that there is a question that needs to be answered
2014-02-17 - The Grand Dukes monocle is an affectation
2014-02-17 - Writing automation to wait for a window to be created and dismiss it
2014-02-18 - If you cancel an operation while its in progress then its not surprising that its only half-done
2014-02-19 - When will the static control automatically delete the image loaded into it and when is it the respons
2014-02-20 - What is the programmatic equivalent to unchecking the box to prevent a file from having its contents
2014-02-21 - How can I make sure my program is launched only from my helper program and no other parent
2014-02-24 - Logging the contents of every message box dialog via automation
2014-02-24 - Nieces sometimes extrapolate from insufficient contextual data
2014-02-25 - A simple email introduction Fan mail
2014-02-26 - Why are leading digits converted to language-specific digit shapes but not trailing digits and how do
2014-02-27 - What does the SEE_MASK_UNICODE flag in ShellExecuteEx actually do
2014-02-28 - How can I detect that my program was run from Task Scheduler or my custom shortcut or a service or wh

The Old New Thing - 2014 03

2014-03-03 - Adventures in automation Dismissing all message boxes from a particular application but only if they
2014-03-03 - What two-year-olds think about when they are placed in time-out
2014-03-04 - What order does the DIR command arrange files if no sort order is specified
2014-03-05 - Why do I have to add 1 to the color index when I set it as the hbrBackground of a window class
2014-03-06 - Were currently using FILE_FLAG_NO_BUFFERING and FILE_FLAG_WRITE_THROUGH but we would like our WriteFi
2014-03-07 - Converting from a UTC-based SYSTEMTIME directly to a local-time-based SYSTEMTIME
2014-03-10 - Programmatically uploading a file to an FTP site
2014-03-10 - Why Johnny cant read music
2014-03-11 - How do I disable zone markers for downloaded files so that Explorer stops being a nag about running d
2014-03-11 - On live performances of Star Trek
2014-03-12 - Operations jargon Internet egress
2014-03-13 - Why does the DirectoryGetFiles method sometimes ignore html files when I ask for htm
2014-03-14 - How do I create an IShellItemArray from a bunch of file paths
2014-03-17 - How do I show the contents of a directory while respecting the users preferences for hidden and super
2014-03-18 - Raymonds highly scientific predictions for the 2014 NCAA mens basketball tournament
2014-03-18 - Why do I have to hit an arrow key before a keyboard-initiated Move operation will follow the mouse
2014-03-19 - I think this persons monitor is broken It doesnt know how to render text in capital letters
2014-03-20 - Going for the facts Who is displaying this message box
2014-03-20 - When visitors to the United States underestimate the size of the country
2014-03-21 - Different senses of scale create different travel expectations
2014-03-21 - Why cant I __declspecdllexport a function from a static library
2014-03-24 - Enumerating set partitions with Bell numbers and Stirling numbers of the second kind
2014-03-25 - Geeky t-shirt alert Windows 7s so-called God Mode
2014-03-26 - Can CoCreateGuid ever return GUID_NULL
2014-03-27 - Functions that return GDI regions rarely actually return regions
2014-03-28 - The dangers of buffering up posted messages and then reposting them later
2014-03-31 - A puzzle involving dynamic programming or maybe it doesnt

The Old New Thing - 2014 04

2014-04-01 - Buggy milk cartons beeping computers and other silliness
2014-04-02 - It rather involved being on the other side of this airtight hatchway Invalid parameters from one secu
2014-04-03 - Why does the access violation error message put the operation in quotation marks Is is some sort of e
2014-04-04 - Its bad enough for a guest to demolish the hosts house demolishing an unrelated persons house is taki
2014-04-07 - Using WM_SETREDRAW to speed up adding a lot of elements to a control
2014-04-08 - Why is Rundll32 called Rundll32 and not just Rundll
2014-04-09 - What happens to my COM server-side object when clients die unexpectedly
2014-04-10 - Why does PrintWindow hate CS_PARENTDC redux
2014-04-11 - Windows is not a Microsoft Visual CC Run-Time delivery channel
2014-04-14 - Enumerating subsets with binomial coefficients
2014-04-14 - The geeky thrill of discovering that two things are really the same thing just with different labels
2014-04-15 - Microspeak bar check
2014-04-15 - The gradual erosion of the car trip experience part 2
2014-04-16 - There is no complete list of all notifications balloon tips in Windows
2014-04-17 - How can I get the Windows 8 touch keyboard to display autocomplete suggestions like the Bing app
2014-04-18 - How do I set a breakpoint on a function whose name contains spaces or other special characters
2014-04-18 - Raymonds house rules for Easter Egg Hunts
2014-04-21 - How can I get information about the items in the Recycle Bin from script
2014-04-22 - Le Chateliers Principle in action Administrative overrides
2014-04-23 - How do I programmatically create folders like My Pictures if they were manually deleted
2014-04-24 - I thought you could use SWP_FRAMECHANGED to force a control to recalculate its properties after a cha
2014-04-25 - A discovered quirk is just few steps away from becoming a feature
2014-04-28 - Showing a balloon tip at a specific position then removing it
2014-04-29 - Why does the common file save dialog create a temporary file and then delete it
2014-04-30 - The StartRunNoHOMEPATH policy affects whether the users HOME path is the current directory when you u

The Old New Thing - 2014 05

2014-05-01 - How do I extract an icon at a nonstandard size if IExtractIconExtract tells me to go jump in a lake
2014-05-02 - If a lot of settings are ignored when set in a DLL why bother even letting you set them on a DLL
2014-05-05 - Getting the location of the Close button in the title bar
2014-05-05 - Warehouse holding 1000 cans of surströmming burns to the ground insert punch line here
2014-05-06 - Letting the boss think your project is classier than it really is
2014-05-07 - Why does saving a file in Notepad fire multiple FindFirstChangeNotification events
2014-05-08 - How can you use both versions 5 and 6 of the common controls within the same module
2014-05-09 - Even if youre the President your mother still has the power to embarrass you
2014-05-09 - When was the WM_COPYDATA message introduced and was it ported downlevel
2014-05-12 - Enumerating bit sequences with isolated zero-bits via the Fibonacci recurrence
2014-05-13 - How do I change among the three levels of play in Space Cadet Pinball
2014-05-14 - The mystery of the icon that never appears
2014-05-15 - Is WriteProcessMemory atomic
2014-05-16 - An extensible interlocked arithmetic function via lambdas
2014-05-19 - Creating a simple shell item just as fake as a simple pidl
2014-05-20 - The code names for various subprojects within Windows 95
2014-05-21 - Dialog boxes return focus to the control that had focus when you last switched away how do I get in o
2014-05-22 - Eventually we may find out where notes eight through twelve came from
2014-05-22 - Why does my radio button group selection get reset each time my window regains activation
2014-05-23 - Why is the debugger telling me I crashed because my DLL was unloaded when I see it loaded right here
2014-05-26 - Find the index of the smallest element in a JavaScript array
2014-05-27 - Only senior executives can send email to the All Employees distribution list but mistakes still happe
2014-05-28 - Cargo-cult registry settings and the people who swear by them
2014-05-28 - How to take down the entire Internet with this one weird trick according to Crisis
2014-05-29 - Get your hex wrench ready because here comes the Ikea bicycle
2014-05-29 - It rather involved being on the other side of this airtight hatchway Denial of service by high CPU us
2014-05-30 - Why does GetFileVersionInfo map the whole image into memory instead of just parsing out the pieces it

The Old New Thing - 2014 06

2014-06-02 - Obtaining information about the users wallpaper on multiple monitors
2014-06-03 - As long as your file names meet operating system requirements you can use whatever you like the rest
2014-06-04 - Why did it take so long for Windows to support a taskbar on more than one monitor
2014-06-05 - Closing over the loop variable is just as harmful in JavaScript as it is in C and more cumbersome to
2014-06-06 - Link-time code generation invalidates a lot of classical assumptions about linking
2014-06-09 - Improving the performance of CF_HDROP by providing file attribute information
2014-06-10 - Microspeak Brownbag
2014-06-11 - Why do network servers sometimes show up as a Recycle Bin Location
2014-06-12 - Can we continue to call FindNextFile with the same handle that returned an error last time
2014-06-13 - Non-classical processor behavior How doing something can be faster than not doing it
2014-06-16 - Enumerating bit strings with a specific number of bits set binomial coefficients strike again
2014-06-17 - Who would ever write a multi-threaded GUI program
2014-06-18 - 10 is the new 6
2014-06-19 - What happened to the Shut Down menu in classic Task Manager
2014-06-20 - Once you go input-idle your application is deemed ready to receive DDE messages
2014-06-23 - Adding a sound to the AltTab window
2014-06-24 - Finding the Run as administrator command a game of hide-and-seek
2014-06-24 - The social interactions in two preschool classes in graphic form
2014-06-25 - Getting past the question to solving the problem episode 20140625
2014-06-26 - For Honor For Excellence For Pizza
2014-06-27 - Undefined behavior can result in time travel among other things but time travel is the funkiest
2014-06-30 - 2014 mid-year link clearance
2014-06-30 - Getting the location of the Close button in the title bar from Windows 2000 or Windows XP

The Old New Thing - 2014 07

2014-07-01 - What is the default size of the Recycle Bin and how can an administrator control the size of the Recy
2014-07-02 - Redirecting the Favorites folder is technically legal but you wouldnt like it
2014-07-03 - It rather involved being on the other side of this airtight hatchway Surreptitious file access by adm
2014-07-04 - Communication between moving vehicles during the narrow window of the late 1990s
2014-07-07 - Customing the standard color-picker dialog
2014-07-08 - How do I turn off email reminders for my Windows Live calendar and disable the birthday calendar whil
2014-07-09 - Why are only some of the Windows 7 system notification icons colorless
2014-07-10 - Using the REFIIDvoid pattern for returning COM objects for future-proofing and to avoid problems with
2014-07-11 - If I duplicate a handle can I keep using the duplicate after closing the original
2014-07-14 - Enumerating integer compositions the return of the binomial coefficients
2014-07-15 - Why does Outlook map CtrlF to Forward instead of Find like all right-thinking programs
2014-07-16 - How do I configure Windows Update programmatically
2014-07-17 - Outdoor Trek Mirror Mirror starts this weekend
2014-07-17 - What does it mean when GetQueuedCompletionStatus return ERROR_SEM_TIMEOUT
2014-07-18 - The time one of my colleagues debugged a line-of-business application for a package delivery service
2014-07-21 - How can I get the URL to the Web page the clipboard was copied from
2014-07-21 - The alternate story of the time one of my colleagues debugged a line-of-business application for a pa
2014-07-22 - Microspeak Tell Mode Ask Mode
2014-07-23 - When will GetSystemWindowsDirectory return something different from GetWindowsDirectory
2014-07-24 - When I send a WM_GETFONT message to a window why dont I get a font
2014-07-25 - How do I obtain the computer manufacturers name from C
2014-07-28 - Finding the shortest path to the ground while avoiding obstacles
2014-07-29 - Did the Windows 95 interface have a code name
2014-07-30 - If you want to be notified when your app is uninstalled you can do that from your uninstaller
2014-07-31 - What is the strange garbage-looking string in the command value of a static verb

The Old New Thing - 2014 08

2014-08-01 - Before claiming that a function doesnt work you should check what youre passing to it and what it ret
2014-08-04 - Enumerating the ways of choosing teams in a group of players
2014-08-05 - Microspeak 1 1 is not zero
2014-08-06 - Why does Explorer say File too large for my custom file system when the problem has nothing to do wit
2014-08-07 - Since clean-up functions cant fail you have to soldier on
2014-08-07 - The latest technologies in plaintext editing NotepadConf
2014-08-08 - The case of the orphaned LpdrLoaderLock critical section
2014-08-11 - If you want to set a threads apartment model via ThreadCurrentThreadApartmentState you need to act qu
2014-08-11 - Revival of the Daleks Act One Scene One
2014-08-12 - Keep your eye on the code page C edition warning about DllImport
2014-08-13 - Keep your eye on the code page C edition the mysterious third code page
2014-08-14 - Customers not getting the widgets they paid for if they click too fast -or- In C the operator is not
2014-08-15 - The scope of the C checkedunchecked keyword is static not dynamic
2014-08-18 - Deleting elements from an JavaScript array and closing up the gaps
2014-08-18 - News flash Big houses cost more to maintain
2014-08-19 - My friend and his buddy invented the online shopping cart back in 1994
2014-08-20 - If youre looking for the code that displays a particular dialog box the most directly way to find it
2014-08-21 - Some reasons not to do anything scary in your DllMain part 3
2014-08-22 - Dispelling the myths rumors and innuendo surrounding the QueryPerformanceCounter function
2014-08-22 - Why does the OpenThread function behave differently when the target thread belongs to another process
2014-08-25 - How do I read the Double-click to open an item single-click to select setting in Folder Options
2014-08-26 - Its time we face reality my friends Were not rocket scientists
2014-08-27 - Where does the Installed Updates control panel get the install date from
2014-08-28 - Taking advantage of the fact that the handle returned when you create a kernel synchronization object
2014-08-29 - How can I detect that a users SID has changed and recover their old data

The Old New Thing - 2014 09

2014-09-01 - Its a trap Employment documents that require you to violate company policy
2014-09-02 - Who wrote the text for the CtrlAltDel dialog in Windows 31
2014-09-03 - Why does the timestamp of a file increase by up to 2 seconds when I copy it to a USB thumb drive
2014-09-04 - Aha I have found a flaw in the logic to detect whether my program is running on 64-bit Windows
2014-09-05 - You can use a file as a synchronization object too
2014-09-08 - Piping to notepad
2014-09-08 - The wisdom of seventh graders The emergency survival kit
2014-09-09 - Steve Ballmer did not write the text for the blue screen of death
2014-09-10 - I wrote the original blue screen of death sort of
2014-09-11 - A lie repeated often enough becomes the truth The continuing saga of the Windows 31 blue screen of de
2014-09-11 - The history of Win32 critical sections so far
2014-09-12 - What did Windows 31 do when you hit CtrlAltDel
2014-09-15 - Enumerating all the ways of making change
2014-09-16 - Microspeak spend
2014-09-17 - Poor mans comments Inserting text that has no effect into a configuration file
2014-09-17 - The citizenship test is passfail theres no blue ribbon for acing it
2014-09-18 - The stream pointer position in IDataObjectGetData and IDataObjectGetDataHere is significant
2014-09-19 - I marked my parameter as optional so why do I get an RPC error when I pass NULL
2014-09-22 - Receiving a notification any time the selection changes in an Explorer window
2014-09-23 - The grand ambition of giving your project the code name Highlander
2014-09-24 - What is the story of the mysterious DS_RECURSE dialog style
2014-09-25 - If a process crashes while holding a mutex why is its ownership magically transferred to another proc
2014-09-26 - Marshaling wont get in your way if it isnt needed
2014-09-29 - Simulating media controller buttons like Play and Pause
2014-09-30 - Why does misdetected Unicode text tend to show up as Chinese characters

The Old New Thing - 2014 10

2014-10-01 - You can name your car and you can name your kernel objects but there is a qualitative difference betw
2014-10-02 - In the red corner EXCEPTION_INT_DIVIDE_BY_ZERO and STATUS_INTEGER_DIVIDE_BY_ZERO and in the blue corn
2014-10-03 - Why is 0x00400000 the default base address for an executable
2014-10-06 - Enumerating cyclical decompositions with Stirling numbers
2014-10-07 - Microspeak All-up
2014-10-08 - Standard handles are really meant for single-threaded programs
2014-10-09 - Why is there a 64KB no-mans land near the end of the user-mode address space
2014-10-10 - Some parts of an interface can change but others cant
2014-10-13 - Enumerating notification icons via UI Automation
2014-10-14 - Is there a way to disable a specific balloon notification without disabling all of them
2014-10-15 - The GetCurrentThread function is like a check payable to Bearer What it means depends on whos holding
2014-10-16 - If only DLLs can get DllMain notifications how can an EXE receive a notification when a thread is cre
2014-10-17 - When are global objects constructed and destructed by Visual C
2014-10-20 - Scripting an Internet Explorer window
2014-10-21 - The great thing about regular expression languages is that there are so many to choose from
2014-10-22 - How do I disable Windows 8 touch contact visualizations for my application
2014-10-23 - How can I detect programmatically whether the 3GB switch is enabled
2014-10-24 - Debugging a hang Chasing the wait chain inside a process
2014-10-27 - Enumerating the ways of distributing n balls into k boxes
2014-10-28 - A question about preventing the system from going to the idle state turns out to be misguided
2014-10-29 - The contents of the Start page are not programmatically accessible
2014-10-30 - Why is the FAT driver called FASTFAT Why would anybody ever write SLOWFAT
2014-10-31 - The case of the file that wont copy because of an Invalid Handle error message

The Old New Thing - 2014 11

2014-11-03 - Applying a filter to the contents of an Explorer Browser
2014-11-04 - Microspeak Line of sight
2014-11-05 - Passing the incorrect object type for a handle how bad is it
2014-11-06 - How do I get a handle to the primary monitor
2014-11-06 - Raymond why did you stop studying Chinese It has no grammar
2014-11-07 - Why does an attempt to create a SysLink control in my plug-in sometimes fail
2014-11-10 - Kicking around a function that formats stuff
2014-11-11 - A little cheat in my Tiger Beat photo homage
2014-11-12 - How can I wait until all startup applications have finished launching
2014-11-13 - When does GetTickCount consider the system to have started
2014-11-14 - How to view the stack of a user-mode thread when its kernel stack has been paged out
2014-11-17 - How do I enumerate drives the same way that the NET USE command does
2014-11-18 - File version information does not appear in the property sheet for some files
2014-11-19 - Distinguishing between normative and positive statements to help people answer your question
2014-11-20 - A library loaded via LOAD_LIBRARY_AS_DATAFILE or similar flags doesnt get to play in any reindeer mod
2014-11-21 - Is it wrong to call SHFileOperation from a service Revised
2014-11-24 - The crazy world of stripping diacritics
2014-11-25 - What is the difference between Full Windows Touch Support and Limited Touch Support
2014-11-26 - If 16-bit Windows had a single input queue how did you debug applications on it
2014-11-27 - Some light reading on lock-free programming
2014-11-28 - A users SID can change so make sure to check the SID history

The Old New Thing - 2014 12

2014-12-01 - Counting array elements which are below a particular limit value using SSE
2014-12-02 - Microspeak Redlines
2014-12-03 - What happens if I dont paint when I get a WM_PAINT message
2014-12-04 - If my WM_TIMER handler takes longer than the timer period will my queue fill up with WM_TIMER message
2014-12-05 - Killing a window timer prevents the WM_TIMER message from being generated for that timer but it doesn
2014-12-08 - Creating double-precision integer multiplication with a quad-precision result from single-precision m
2014-12-09 - The psychology of confirmation or something I dont know what to call it
2014-12-10 - If you get a procedure address by ordinal you had better be absolutely sure its there because the fai
2014-12-11 - What states are possible in a DRAWITEMSTRUCT structure
2014-12-12 - Detecting whether a SID is well-known SID
2014-12-15 - Notes on calculating constants in SSE registers
2014-12-15 - When corporate policies meet precision scientific equipment
2014-12-16 - If you set up roaming profiles you are expected to set up each machine identically for the most part
2014-12-17 - It rather involved being on the other side of this airtight hatchway Account vulnerable to Active Dir
2014-12-17 - Its not too late okay maybe its too late to get this gift for the physicist who has everything
2014-12-18 - How can I query the location of the taskbar on secondary monitors
2014-12-19 - How did protected-mode 16-bit Windows fix up jumps to functions that got discarded
2014-12-22 - Setting clearing and testing a single bit in an SSE register
2014-12-23 - The Softsel Hot List for the week of December 22 1986
2014-12-24 - How can I let my child use an app that I bought from the Windows Store
2014-12-25 - My pants are fancy
2014-12-26 - Debugging walkthrough Access violation on nonsense instruction
2014-12-29 - Integer signum in SSE
2014-12-30 - How did that program manage to pin itself to my taskbar when I installed it
2014-12-31 - 2014 year-end link clearance
2014-12-31 - Even the publishing department had its own Year 2000 preparedness plan

The Old New Thing - 2015 01

2015-01-01 - Horrifically nasty gotcha FindResource and FindResourceEx
2015-01-02 - How do you prevent the linker from discarding a function you want to make available for debugging
2015-01-05 - More notes on calculating constants in SSE registers
2015-01-06 - No good deed goes unpunished Marking a document as obsolete
2015-01-07 - Why is there a BSTR cache anyway
2015-01-08 - What happens if I dont pass a pCreateExParams to CreateFile2
2015-01-09 - Finding the leaked object reference by scanning memory Example
2015-01-12 - Limiting the bottom byte of an XMM register and clearing the other bytes
2015-01-13 - Microspeak landing redux
2015-01-14 - Where can I find the standard asynchronous stream
2015-01-15 - Why does CreateFile take a long time on a volume handle
2015-01-16 - Why does a single integer assignment statement consume all of my CPU
2015-01-19 - Why does Outlook use a semicolon to separate multiple recipients by default
2015-01-20 - Why does the copy dialog give me the incorrect total size of the files being copied
2015-01-21 - Why does my synchronous overlapped ReadFile return FALSE when the end of the file is reached
2015-01-22 - The wonderful world of shell bind context strings
2015-01-23 - Helper functions to make shell bind contexts slightly more manageable
2015-01-26 - Customizing item enumeration with IShellItem
2015-01-27 - Tip for trying to boost morale Dont brag about your overseas trips
2015-01-28 - The compiler can make up its own calling conventions within limits
2015-01-29 - Color-aware ClearType requires access to fixed background pixels which is a problem if you dont know
2015-01-30 - Creating a shared memory block that can grow in size
2015-01-30 - Got errands Now is the time

The Old New Thing - 2015 02

2015-02-02 - Customizing item enumeration with IShellItem the old-fashioned way
2015-02-03 - Another way to make sure nobody sends you feedback
2015-02-04 - If you wonder why a function cant be found one thing to check is whether the function exists in the f
2015-02-05 - The SuspendThread function suspends a thread but it does so asynchronously
2015-02-06 - Use GFlags to catch the silent killer silent but deadly
2015-02-09 - Using thread pool cleanup groups to clean up many things at once
2015-02-10 - Staying cool is one of the skills of a corporate president
2015-02-11 - Why was the replacement installer for recognized 16-bit installers itself a 32-bit program instead of
2015-02-12 - Who is this rogue operative that filled my object with 0xDD then sent me a message
2015-02-13 - What is this inconsistent heap state that MSDN warns me about during DLL_PROCESS_DETACH
2015-02-16 - Reading the word under the cursor via UI Automation
2015-02-16 - The 20152016 Seattle Symphony subscription season at a glance
2015-02-17 - Microspeak Light up
2015-02-18 - When asking about the capacity of a program you also need to consider what happens when you decide to
2015-02-19 - Whats the point of using a custom timer queue if there is a default one already
2015-02-20 - Non-capturing C lambdas can be converted to a pointer to function but what about the calling conventi
2015-02-23 - Further adventures in trying to guess what encoding a file is in
2015-02-24 - Nice job you got an A minus from Bill
2015-02-25 - Why does the mouse cursor jump a few pixels if you click on the very bottom row of pixels on the task
2015-02-26 - RegNotifyChangeKeyValue sucks less
2015-02-27 - Solving the problem rather than answering the question How can a non-administrator modify a registry

The Old New Thing - 2015 03

2015-03-02 - Connecting some blocks Tell me more about the current image in my wallpaper slide show
2015-03-03 - Setting up a new computer often results in leftover slot covers so what do you do with the slot cover
2015-03-04 - Why are the dimensions of a maximized window larger than the monitor
2015-03-05 - Modifying the CS_NOCLOSE style does affect all windows of the class just not necessarily in an immedi
2015-03-06 - A question about the FileTimeToLocalFileTime function turned out to be something else
2015-03-09 - How can I programmatically resize a listview column to fit its contents
2015-03-10 - The more times you use the word simply in your instructions the more I suspect you dont know what tha
2015-03-11 - Dubious security vulnerability Copying a program and running the copy
2015-03-12 - Under what conditions will the IUnknownAddRef method return 0
2015-03-13 - Debugging walkthrough Access violation on nonsense instruction episode 2
2015-03-16 - Does the CLR really call CoInitializeEx on the first call to unmanaged code even if you dont deal wit
2015-03-17 - Microspeak Headcount req and related personnel terms
2015-03-18 - Travel tip Dont forget your car on the ferry
2015-03-19 - Sure we have RegisterWindowMessage and RegisterClipboardFormat but where are DeregisterWindowMessage
2015-03-20 - Finding the constructor by scanning memory for the vtable
2015-03-23 - CancelIoEx can cancel IO on console input which is kind of nice
2015-03-24 - A Venn diagram demonstrating the dining options in one of the new cafeterias
2015-03-25 - Whats the difference between PathIsSystemFolder and Protected Operating System Files
2015-03-26 - Switching on a tuple Sneaky trick
2015-03-27 - Flaw reported in Windows 95
2015-03-30 - How do I make a boldface item on a context menu
2015-03-30 - I want you to chase your sisters until they throw up
2015-03-31 - What was the relationship between Outlook and Outlook Express

The Old New Thing - 2015 04

2015-04-01 - Under what circumstances will a dialog box not use the caption specified in the resource file
2015-04-02 - It appears that some programmers think that Windows already ships with that time machine the Research
2015-04-03 - Why is CreateToolhelp32Snapshot returning incorrect parent process IDs all of a sudden
2015-04-06 - Opening the classic folder browser dialog with a specific folder preselected
2015-04-07 - The details of the major incident were not clearly articulated but whatever it is its already over
2015-04-08 - Why is the SystemDateCreated property off by a few seconds
2015-04-09 - If more than one object causes a WaitForMultipleObjects to return how do I find out about the other o
2015-04-10 - On the ways of creating a GUID that looks pretty
2015-04-13 - After I encrypt memory with CryptProtectMemory can I move it around
2015-04-14 - In the Seattle area people treat you nicer once they learn your last name is Gates
2015-04-15 - When I set the force X off policy to Disabled why doesnt it force X on
2015-04-16 - Why did the original code for FINDCOM use lop as a label instead of loop
2015-04-17 - Why are there both TMP and TEMP environment variables and which one is right
2015-04-20 - How to find the IP address of a hacker according to CSI Cyber
2015-04-21 - What was the starting point for the Panther Win32 kernel
2015-04-22 - It rather involved being on the other side of this airtight hatchway Invalid parameters from one secu
2015-04-23 - How did the scopes for the CryptProtectMemory function end up in a strange order
2015-04-24 - Why cant I have variadic COM methods
2015-04-27 - How do I extract the path to Control Panel from this shortcut so I can launch it
2015-04-27 - Wow they really crammed a lot into those 410 transistors
2015-04-28 - Access to a files attributes is controlled by two things
2015-04-29 - Is the atom returned by RegisterClassEx a real atom
2015-04-30 - How can I tell if a file is an image of some type

The Old New Thing - 2015 05

2015-05-01 - How does the window manager adjust ptMaxSize and ptMaxPosition for multiple monitors
2015-05-01 - Thats not how you start a boat
2015-05-04 - Creating a window that can be resized in only one direction
2015-05-05 - What does it mean when the Advanced Security Settings dialog says that an ACE was inherited from Pare
2015-05-06 - Why is there an invisible U202A at the start of my file name
2015-05-07 - Hidden message in a T-shirt its been done before
2015-05-08 - Documentation creates contract which is why you need to be very careful what you document
2015-05-11 - Can I run a service executable from a network location
2015-05-12 - How does Task Manager compute Up Time and why doesnt it agree with GetTickCount
2015-05-13 - Why dont you forward WM_GETMINMAXINFO and clamp the results
2015-05-14 - Low-level hooks have thread affinity so make sure you keep an eye on the thread
2015-05-15 - MapGenericMask is just a convenience function for converting generic access to specific access accord
2015-05-18 - Determining programmatically whether a file was built with LAA ASLR DEP or OS-assisted GS
2015-05-19 - It rather involved being on the other side of this airtight hatchway Code injection via QueueUserAPC
2015-05-20 - When you inadvertently become a collector of something you really arent all that into
2015-05-21 - If you can set enforcement for a rule you can set up lack of enforcement
2015-05-22 - So you decided to call SHFileOperation from a service at least remember to disable copy hooks
2015-05-25 - New C experimental feature The tadpole operators
2015-05-26 - The tadpole operators explained
2015-05-27 - Dubious security vulnerability Luring somebody into your lair
2015-05-28 - When designing your user interface be mindful of the selection-readers
2015-05-29 - Under what conditions can SetFocus crash Another debugging investigation

The Old New Thing - 2015 06

2015-06-01 - How can I make the touch keyboard appear automatically when focus enters an edit control in my progra
2015-06-02 - Why do events logged by the ReportEvent function show up in the wrong order in the Event Viewer
2015-06-03 - Adding a little marker to your comments in Microsoft Word
2015-06-04 - Whats the point of giving my unnamed object proper security attributes since unnamed objects arent ac
2015-06-05 - There is no 8TB flag on 64-bit Windows
2015-06-08 - How can I reposition my controls so they arent covered by the touch keyboard
2015-06-09 - Bitter or acerbic or does it make a difference
2015-06-10 - Taking ownership of a file doesnt give you access yet
2015-06-11 - Keep your eye on the code page Is this string CP_ACP or UTF-8
2015-06-12 - How can I force a CreateFile call to hang in order to test something
2015-06-15 - How can I reposition my window so it isnt covered by the touch keyboard
2015-06-16 - One way to make sure nobody reports problems with your Web site
2015-06-17 - When you think you found a problem with a function make sure youre actually calling the function
2015-06-18 - How come the technique for launching an unelevated process from an elevated process doesnt work
2015-06-19 - Random links on taking better pictures
2015-06-19 - Why does the class name for Explorer change depending on whether you open it with e
2015-06-22 - Reinterpreting the bits of a 64-bit integer as if they were a double-precision floating point number
2015-06-23 - Sorry for the interruption but it doesnt happen often
2015-06-24 - A trick for finding the correct internal mailing list
2015-06-25 - Where is the full version of the music that plays when you start Windows 98 for the first time
2015-06-26 - Windows 95 and Windows NT manage the TEB on x86 differently
2015-06-29 - Parsing a string as a 64-bit integer somehow
2015-06-30 - 2015 mid-year link clearance
2015-06-30 - Microspeak Stretch goal

The Old New Thing - 2015 07

2015-07-01 - How secure are GUIDs Can I use it to generate passwords
2015-07-02 - Is a SID with zero subauthorities a valid SID It depends whom you ask
2015-07-03 - Why does the BackupWrite function take a pointer to a modifiable buffer when it shouldnt be modifying
2015-07-06 - Trying out all the different ways of recognizing different types of timestamps from quite a long way
2015-07-07 - Intentionally making the suggestion look nothing like any scripting language yet understandable enoug
2015-07-08 - What would be the point of creating a product that cant do its job
2015-07-09 - Why is my x64 process getting heap address above 4GB on Windows 8
2015-07-10 - On the various ways of creating large files in NTFS
2015-07-13 - Generating different types of timestamps from quite a long way away
2015-07-14 - Hazy memories of the Windows 95 ship party
2015-07-15 - Why doesnt the Print command appear when I select 20 files and right-click
2015-07-16 - Why do I get ERROR_INVALID_HANDLE from GetModuleFileNameEx when I know the process handle is valid
2015-07-17 - What did the Ignore button do in Windows 31 when an application encountered a general protection faul
2015-07-20 - How can I detect whether a keyboard is attached to the computer
2015-07-21 - Please enjoy the new eco-friendly printers now arguably less eco-friendly
2015-07-22 - When you think you found a problem with a function make sure youre actually calling the function epis
2015-07-23 - Corrupted file causes application to crash is that a security vulnerability
2015-07-24 - The curse of the redefinition of the symbol HLOG
2015-07-27 - The Itanium processor part 1 Warming up
2015-07-28 - The Itanium processor part 2 Instruction encoding templates and stops
2015-07-29 - The Itanium processor part 3 The Windows calling convention how parameters are passed
2015-07-30 - The Itanium processor part 3b How does spilling actually work
2015-07-30 - The Itanium processor part 4 The Windows calling convention leaf functions
2015-07-31 - The Itanium processor part 5 The GP register calling functions and function pointers

The Old New Thing - 2015 08

2015-08-03 - The Itanium processor part 6 Calculating conditionals
2015-08-04 - The Itanium processor part 7 Speculative loads
2015-08-05 - The Itanium processor part 8 Advanced loads
2015-08-06 - The Itanium processor part 9 Counted loops and loop pipelining
2015-08-07 - The Itanium processor part 10 Register rotation
2015-08-10 - What if I have two programs that are logically a single application and I want them to be treated as
2015-08-11 - The ARM processor architecture Somebody elses introduction
2015-08-11 - The changing fortunes of being the last program on the Start menu
2015-08-12 - Why does the taskbar icon for grouped windows change to something weird
2015-08-13 - Crashes in the IO stack tend to occur in programs which do the most IO
2015-08-14 - Windows started picking up the really big pieces of TerminateThread garbage on the sidewalk but its s
2015-08-17 - pinvoke gotcha C bool is not Win32 BOOLEAN is not UnmanagedTypeBool
2015-08-18 - If you are going to call MarshalGetLastWin32Error the function whose error youre retrieving had bette (1)
2015-08-19 - If you are going to call MarshalGetLastWin32Error the function whose error youre retrieving had bette
2015-08-20 - I saw a pinvoke signature that passed a UInt64 instead of a FILETIME whats up with that
2015-08-21 - Handy delegate shortcut hides important details The hidden delegate
2015-08-24 - Insightful graph The ship date predictor
2015-08-25 - Microspeak DRI the designated response individual
2015-08-26 - Rules can exist not because theres a problem but in order to prevent future problems
2015-08-27 - The Windows 95 IO system assumed that if it wrote a byte then it could read it back
2015-08-28 - Debugging walkthrough Access violation on nonsense instruction episode 3
2015-08-31 - How do I enumerate remembered connections that are not currently connected

The Old New Thing - 2015 09

2015-09-01 - Microspeak move the needle
2015-09-02 - I saved some files into the Program Files directory and now theyre gone
2015-09-03 - When I change the icon in my shortcut why doesnt it update on the screen
2015-09-04 - Using an intermediate library to make the main library retargetable
2015-09-07 - I guess this explains why Warren Buffett hasnt retired
2015-09-08 - Cynical interpretations of various project milestones
2015-09-09 - Raymonds Windows Universal Samples API concordance
2015-09-10 - How do you get network connectivity from the worst PC in the world
2015-09-11 - The C runtime library cannot be mixed and matched
2015-09-14 - How do I run a Web search in the users default Web browser using their default search provider
2015-09-15 - A process inherits its environment from its parent and the consequences of this simple statement
2015-09-16 - Why doesnt GetAddrInfo work from behind a proxy
2015-09-17 - How can I start my service as soon as possible before any other service
2015-09-18 - Why are there all these processes lingering near death and what is keeping them alive
2015-09-21 - How can I tell if Windows Update is waiting for the system to reboot
2015-09-22 - Thanks for informing us that you know about the compatibility issue in your application so we dont ha
2015-09-23 - It rather involved being on the other side of this airtight hatchway Elevation from Administrator to
2015-09-24 - How do I call SetTimer with a timer ID that is guaranteed not to conflict with any other timer ID
2015-09-25 - Why doesnt my keyboard hook get called for keyboard messages I manually posted
2015-09-28 - What happens to lost timer messages if I dont process them fast enough
2015-09-29 - The trust relationship between this workstation and the primary domain failed what does this mean
2015-09-30 - Why cant I create a file equal to the available disk space

The Old New Thing - 2015 10

2015-10-01 - If you cant remember the exact text of a dialog box so you can search for it you can ask the Internet
2015-10-02 - Calling ShutdownBlockReasonCreate from my service doesnt stop the user from shutting down
2015-10-02 - Hacking the law On the role of the marriage officiant in the State of Washington
2015-10-05 - How do I obtain the comment for a share
2015-10-06 - First try reading the error message episode 4 Even programmers see error messages without reading the
2015-10-07 - How do we change permissions on a share as fast as Explorer does it
2015-10-08 - What happens if you call VirtualAlloc to MEM_COMMIT a page you never MEM_RESERVE
2015-10-09 - How does a shell namespace extension provide icons for virtual items that track the standard icons se
2015-10-09 - Learning about farm animals from my niece
2015-10-12 - How do I get the user-customed name of My Computer or Recycle Bin
2015-10-13 - Why do Saturation and Luminance go all the way to 240 but Hue goes only to 239 And why 239 anyway
2015-10-14 - The MoveSecurityAttributes policy affects only how Explorer recalculates ACLs when a file is moved ev
2015-10-15 - Whats the difference between UuidFromString IIDFromString CLSIDFromString GUIDFromString
2015-10-16 - I have the handle to a file how can I get the file name from the debugger
2015-10-19 - How do I get the user-customized name of a mapped network drive
2015-10-20 - What is COM marshaling and how do I use it
2015-10-21 - What are the rules for CoMarshalInterThreadInterfaceInStream and CoGetInterfaceAndReleaseStream
2015-10-22 - What are the rules for CoMarshalInterface and CoUnmarshalInterface
2015-10-23 - CoGetInterfaceAndReleaseStream does not mix with smart pointers
2015-10-26 - Are there any negative consequences to having a ton of files on the desktop
2015-10-27 - The Redmond Reality Distortion Field Analogies involving high-performance cars usually Ferraris
2015-10-28 - How do I create a wizard that contains none of the things that makes a wizard a wizard
2015-10-29 - When you open a securable object make sure you pass the security mask you actually want no more no le
2015-10-30 - Why does the timestamp of a file increase by up to 2 seconds when I put it in a ZIP archive then extr

The Old New Thing - 2015 11

2015-11-02 - How can I make my custom namespace extension get categorized correctly in My Computer
2015-11-03 - Microspeak North star
2015-11-04 - Changing the conditions under which ReadFile produces fewer bytes than requested
2015-11-05 - Sometimes a function returns NULL because NULL really is the answer
2015-11-06 - Why does the access violation error message put the operation in quotation marks redux
2015-11-09 - Some helper functions for interlocked pointer operations
2015-11-10 - I cloned a project but the new project still groups with the old project on the taskbar
2015-11-10 - Its called proofreading give it a shot why dont you episode 2
2015-11-11 - Oh thats probably why Im in the Quake credits
2015-11-12 - Why is January 1 being reported as the last week of the previous year
2015-11-13 - Diagnosing high CPU by studying profiling results example
2015-11-13 - Exploring the Supercute World of Hello Kitty
2015-11-16 - How can I get notified when the cursor changes
2015-11-17 - The ritual of choosing your next office
2015-11-18 - If You Are The One The crazy Chinese dating show
2015-11-18 - Why is the StartRunNOHOMEPATH policy so very specific about what it does
2015-11-19 - Stupid JavaScript debugging tricks Abusing the conditional breakpoint
2015-11-20 - Investigating a problem constructing a security descriptor to deny thread-specific access rights to E
2015-11-23 - Playing with synchroninzation barriers
2015-11-24 - We got around three
2015-11-25 - Clarifying the documentation on wildcards accepted by FindFirstFileFindFirstFileEx
2015-11-26 - The increasing urgency of a request to fill out a survey
2015-11-27 - How can I append to a file and know where it got written even if the file is being updated by multipl
2015-11-27 - In order to serve you better Charging your credit card in your home currency
2015-11-30 - Enumerating all the programs that can open a particular file extension

The Old New Thing - 2015 12

2015-12-01 - What does CtrlEnter mean It depends on whom you ask
2015-12-02 - Hidden gotcha in the thread pool sample program on MSDN
2015-12-03 - A question about how to detect whether Windows Update needs the system to be restarted turns out to b
2015-12-04 - Why did disabling interrupts cause Windows 95 to hang
2015-12-07 - Enumerating all the programs that can launch a particular protocol
2015-12-08 - How do I register a command on the desktop background context menu And how do I remove one I dont lik
2015-12-09 - Why doesnt findstr use the standard regular expression library
2015-12-10 - Why does OpenProcess return access denied even if I enable debug privilege
2015-12-11 - Hasnt the problem of updates being partially installed until the next reboot already been solved by c
2015-12-14 - Calculating integer factorials in constant time taking advantage of overflow behavior
2015-12-15 - Great moments in forgetfulness Does anybody have a copy of this file
2015-12-16 - Youd think that with the name TEMP people wouldnt expect it to be around for a long time
2015-12-17 - Dubious security vulnerability Messing with the Recycle Bin
2015-12-18 - Are views of memory-mapped files coherent within a single process And how this was the wrong question
2015-12-21 - Allocating page file space without allocating RAM
2015-12-22 - Unhandled Exception Cannot print exception string because ExceptionToString failed
2015-12-23 - Confusing gotcha PSECURITY_DESCRIPTOR is not a pointer to a SECURITY_DESCRIPTOR
2015-12-24 - Why does my in-place tooltip dismiss itself as soon as it appears
2015-12-25 - When is the correct time to call FreeLibraryWhenCallbackReturns
2015-12-28 - Determining how each Explorer window is sorted
2015-12-29 - Why are Windows setup logs stored in a Panther directory Does it have anything to do with the abandon
2015-12-30 - Why is my call to ChangeTimerQueueTimer having no effect And another case of looking past the questio
2015-12-31 - 2015 year-end link clearance

The Old New Thing - 2016 01

2016-01-01 - If you want to receive a message that is broadcast to top-level windows you need a top-level window
2016-01-04 - Slam City with Scottie Pippen 1995 A flashback
2016-01-05 - Why did Windows NT decline to support an undocumented flag to TrackPopupMenuEx
2016-01-06 - Why does the mouse cursor jump a few pixels when you right-click on the Start button
2016-01-07 - It rather involved being on the other side of this airtight hatchway Attacking the system clock
2016-01-08 - The FILE_FLAG_DELETE_ON_CLOSE flag applies to the handle also known as the file object which is not t
2016-01-11 - Creating a shell extension that applies only to files with a very specific name
2016-01-12 - Getting ones paycheck from some mysterious pile of money
2016-01-13 - My program for faking debugging demos
2016-01-14 - When you start talking about numbers as small as 2 you have to start looking more closely at the thin
2016-01-15 - What does this crash in TppRaiseHandleStatus mean
2016-01-18 - A puzzle involving dynamic programming or maybe it doesnt episode 2
2016-01-18 - Some notes about the blog migration
2016-01-19 - What makes XCOPY so X
2016-01-20 - So how bad is it that Im calling RegOpenKey instead of RegOpenKeyEx
2016-01-21 - What does the V verify flag to XCOPY mean and how did it get that way
2016-01-22 - If Im going to store a SID in a file should I store the string form or the binary form
2016-01-25 - How can I tell whether my console program was launched from Explorer or from a command prompt
2016-01-26 - Some senior executives are afraid to provide feedback because they know that their feedback will be g
2016-01-27 - Why does CryptDestroyHash crash but only sometimes
2016-01-28 - Why is getting the HP_HASHSIZE so weird
2016-01-29 - Does the thread pool have different handle access privileges Why am I getting ERROR_INVALID_HANDLE

The Old New Thing - 2016 02

2016-02-01 - A brief tour of the console alias functions
2016-02-02 - What happened to the ability to use three dots to refer to the grandparent directory
2016-02-03 - Localization gotcha The RTL question mark
2016-02-04 - How do I prevent a child process from displaying the Windows Error Reporting dialog
2016-02-05 - If I issue a second overlapped IO operation without waiting for the first one to complete are they st
2016-02-05 - The overly complicated rules for American football
2016-02-08 - How can I get the canonical name for a known folder
2016-02-09 - Hey you work for Microsoft Do you know
2016-02-10 - If somebody creates or deletes a file in a directory while I am enumerating its contents what happens
2016-02-11 - Debugging walkthrough Diagnosing an NX exception
2016-02-12 - We batched up our COM requests and return a single stream of results but the performance is still slo
2016-02-15 - How can I get the name for the users profile directory that is shown in Explorer
2016-02-16 - I have difficulty following Swedish when spoken at conversational speed and I count on being able to
2016-02-16 - If I select multiple files of different types why does the Open verb disappear
2016-02-17 - Dont just grab the foreground window and host UI on it redux
2016-02-18 - Nasty gotcha VarCmp vs VariantCompare
2016-02-19 - When I try to calculate a performance counter manually the answer is off by a factor of 100
2016-02-22 - Finding the shortest binary string in a given interval
2016-02-23 - Why does the date disappear from my taskbar sometimes
2016-02-24 - A static_cast is not always just a pointer adjustment
2016-02-25 - How do I preload a chunk of memory into a memory-mapped file
2016-02-26 - Changing a loop into a promise or task chain
2016-02-29 - How can I get the original shortcut target path with environment variables unexpanded
2016-02-29 - The 20162017 Seattle Symphony subscription season at a glance

The Old New Thing - 2016 03

2016-03-01 - You kids are so cute thinking you invented email
2016-03-02 - How can I get the name of the function that crashed given just a module name and offset
2016-03-03 - Are SetProp and RemoveProp thread-safe
2016-03-04 - Why not auto convert week-based time zone information to date-based
2016-03-07 - On word breaking in Chinese and Japanese
2016-03-08 - If what youre doing is undocumented its not guaranteed to keep working and your promise not to compla
2016-03-09 - String comparisons against program output is not usually the best solution
2016-03-10 - Could there be any problems with calling GetModuleFileNameEx on your own process
2016-03-11 - On week numbering in the United States
2016-03-14 - Adventures in UI Automation Scraping the Driver Files dialog
2016-03-15 - Why doesnt this registry hack for disabling autorun work
2016-03-16 - Randomly-generated passwords still have to be legal strings
2016-03-17 - Why not use weak linking to solve the retargetable library problem
2016-03-18 - What are the consequences of reserving a huge amount of memory most of which is never committed
2016-03-21 - Were there specific criteria for making a game work at all costs vs leaving it be if it had problems
2016-03-22 - How can I find out how much disk space the WinSxS folder is really occupying
2016-03-23 - Dont be helpless You can find information too if you try episode 3
2016-03-24 - Why does PathIsUNC say that paths that begin with are not UNCs
2016-03-25 - Fixing a floating point exception when operating on NaN
2016-03-28 - Getting MS-DOS games to run on Windows 95 Virtual memory
2016-03-29 - Why doesnt a program show up on the Start menus Recently Used Programs list if I just used it to open
2016-03-30 - The numerology of the build redux
2016-03-31 - Why are there four functions for parsing strings into GUIDs and why are they in three different DLLs

The Old New Thing - 2016 04

2016-04-01 - Is it really a prank if the victim doesnt realize theres a prank going on
2016-04-04 - Getting MS-DOS games to run on Windows 95 Working around the iretd problem
2016-04-05 - Dubious security vulnerability Disk space consumption
2016-04-06 - How does GetFinalPathNameByHandle choose the name if there are multiple names due to hard links
2016-04-07 - Why cant the debugger call GetFinalPathNameByHandle via call
2016-04-08 - Why does FindExecutable behave erratically for files with extensions longer than three characters And
2016-04-11 - Getting MS-DOS games to run on Windows 95 The interrupt flag
2016-04-12 - Inherited access control entries are captured when the child object is created
2016-04-13 - If relocated DLLs cannot share pages then doesnt ASLR cause all pages to be non-shared
2016-04-14 - Even though the target audience may be programmers it can still be seen by users
2016-04-15 - What happens if I call EnumPropsEx while another thread is mutating the properties
2016-04-18 - Getting MS-DOS games to run on Windows 95 Too much memory
2016-04-19 - Why is there a screen that says It is now safe to turn off your computer
2016-04-20 - Why are mouse wheel messages delivered to the focus window instead of the window under the mouse
2016-04-21 - It rather involved being on the other side of this airtight hatchway Invalid parameters from one secu
2016-04-22 - Should I be concerned that WaitForSingleObject is taking a large percentage of my performance tests e
2016-04-25 - Getting MS-DOS games to run on Windows 95 Too much EMM memory
2016-04-26 - Why cant I pin a document to the taskbar
2016-04-27 - How does Explorer calculate Size on disk
2016-04-28 - Is there an API for redrawing a specific window from another application
2016-04-29 - What does QueryThreadCycleTime actually count

The Old New Thing - 2016 05

2016-05-02 - Does Mulan speak Chinese
2016-05-02 - Startup apps start up when I tell them
2016-05-03 - Getting MS-DOS games to run on Windows 95 Not enough XMS handles
2016-05-04 - How can I detect whether the users keyboard has a Break key
2016-05-05 - How can I write an unkillable program redux
2016-05-06 - Is it okay to acquire an SRWLOCK recursively And why not
2016-05-09 - Taking shortcuts when following driving instructions doesnt always pay off
2016-05-10 - How can my CPU be running faster than the maximum speed
2016-05-11 - Whats the difference between duplicating the handle to a token and duplicating a token
2016-05-12 - How come a duplicated token doesnt behave identically to the original
2016-05-13 - Is Metro on fire today
2016-05-13 - Why am I being told that my message ID is too large
2016-05-16 - Wow that article sounds an awful lot like something I would have writt hey wait a second
2016-05-17 - But Australian Telecom loves it
2016-05-18 - Why doesnt RevertToSelf undo the most recent SetThreadToken
2016-05-19 - Why did the friendly name for the Network Service account change
2016-05-20 - How long do I have to keep the SECURITY_ATTRIBUTES and SECURITY_DESCRIPTOR structures valid after usi
2016-05-23 - Security through lying
2016-05-24 - How do I create a directory where people can create subdirectories but cannot mess with those created
2016-05-25 - How can I generate a stack backtrace that is independent of ASLR
2016-05-26 - Debugging session Which of the many things happening in this single line of code is the one that cras
2016-05-27 - Diagnosing a crash in unloaded_somethingdll
2016-05-30 - Printing the name and position of the focused item on the desktop
2016-05-31 - The chain reaction started when a customers line of business application doesnt work with UNCs

The Old New Thing - 2016 06

2016-06-01 - Why does SHGetKnownFolderPath fail when impersonating
2016-06-02 - How can I tell whether a file is on a removable drive a fixed drive or a remote drive
2016-06-03 - Why does SetFileValidData fail even though I enabled the SE_MANAGE_VOLUME_NAME privilege
2016-06-06 - If I create multiple selectors each of size 4GB do I get a combined address space larger than 4GB
2016-06-07 - I finally finished this awesome game called Photoshop let me send you a video
2016-06-08 - Investigating an app compat problem Part 1 The initial plunge
2016-06-09 - Investigating an app compat problem Part 2 Digging in
2016-06-10 - Investigating an app compat problem Part 3 Paydirt
2016-06-13 - Whats so special about the number 64 when it comes to TLS slots
2016-06-14 - Is there a way to change the minimum size for large pages
2016-06-15 - Raymonds complete guide to HSTRING semantics
2016-06-16 - Why do I get a spurious WM_MOUSEMOVE message whenever Resource Manager is running
2016-06-17 - How can I update my WinForms app to behave better at high DPI or at normal DPI on very large screens
2016-06-20 - Peeking inside an IShellItem to see what its made of
2016-06-21 - How to recognize DNS zone scavenging availability timestamps from quite a long way away
2016-06-22 - Using the WindowsGlobalizationCalendar object from a Win32 app
2016-06-23 - Why does the x64 calling convention reserve four home spaces for parameters even for functions that t
2016-06-24 - Why is my message queue full of WM_TIMER messages
2016-06-27 - If I have multiple attached keyboards how can I read input from each one individually
2016-06-28 - Why does the Windows calculator generate tiny errors when calculating the square root of a perfect sq
2016-06-29 - How can I detect whether the Game Bar is covering my window
2016-06-30 - 2016 mid-year link clearance

The Old New Thing - 2016 07

2016-07-01 - How exactly are page tables allocated on demand for large reserved regions
2016-07-04 - Attention all humorless technaheads
2016-07-05 - Observing the bizarre rumor mill from the other side
2016-07-06 - How can I detect whether my PC is in tablet mode
2016-07-06 - Mathematical term or Hollywood movie
2016-07-07 - Even if you modify a high contrast theme so it isnt quite so high-contrast its still a high contrast
2016-07-08 - It rather involved being on the other side of this airtight hatchway Elevating the elevator
2016-07-11 - Where can I get the glossary of Microsofts standard translations for computer terms
2016-07-12 - Why does the Windows 8 sign-in animation slide upward
2016-07-13 - What happens if I have multiple asynchronous ReadDirectoryChangesW calls outstanding on the same dire
2016-07-14 - How can I preallocate disk space for a file without it being reported as readable
2016-07-15 - Trying to recover from enhancement software that generates fake input incorrectly
2016-07-18 - When I tell Windows to compress a file the compression is far worse than I get if I ask WinZip to com
2016-07-19 - Having trouble with Windows Hello face recognition Try a Jedi mind trick
2016-07-20 - Microspeak Tick-tock
2016-07-21 - If you dont want the changes to be permanent the dont pass the flag that says that you want the chang
2016-07-22 - What is the significance of changing the registration for CLSIDs to point to a private copy of MSXML3
2016-07-25 - Is there a Windows API for IntelliSense
2016-07-26 - Why does sharing a folder in Explorer grant full permission on the share to everyone
2016-07-27 - Why does setting the horizontal scroll bar range for the first time also set the vertical range and v
2016-07-28 - How can I check whether a parameter is a pointer to a stack variable
2016-07-29 - Further discussion of the synchronization barrier

The Old New Thing - 2016 08

2016-08-01 - How do I disable edge gestures when my window is full screen
2016-08-02 - Why dont I get a file deletion confirmation warning from Explorer when I undo a copy
2016-08-03 - Using pragma detect_mismatch to help catch ODR violations
2016-08-04 - The origin story of the Microsoft ninjacat
2016-08-05 - The case of the hung Explorer window
2016-08-08 - Why didnt Windows 95 suck the brains out of the XMS driver
2016-08-09 - What is a ZDP and whats so Z about it
2016-08-10 - How to create a file mapping that allows others to open the file in exclusive mode
2016-08-11 - Im speaking at the brand new Microsoft Canada Excellence Centre tomorrow
2016-08-11 - On the importance of making sure WaitForInputIdle doesnt think youre idle episode 1
2016-08-12 - On the importance of making sure WaitForInputIdle doesnt think youre idle episode 2
2016-08-15 - How can I debug a function that has been subjected to COMDAT folding
2016-08-15 - Things I learned from my recent trip to Vancouver
2016-08-16 - There are really only two effectively distinct settings for the UAC slider
2016-08-17 - On installing a custom unhandled exception filter and intentionally raising an exception to get its a
2016-08-18 - If I have a modeless dialog box with custom accelerators which should I call first IsDialogMessage or
2016-08-19 - Is it okay to call TryAcquireSRWLock from a thread that has already acquired the lock
2016-08-22 - Adventures in application compatibility The bogus memory calculation
2016-08-23 - WaitOnAddress lets you create a synchronization object out of any data variable even a byte
2016-08-24 - Implementing a synchronization barrier in terms of WaitOnAddress
2016-08-24 - The International Fair Play Committee announces the Rio 2016 Fair Play Awards but spends most of the
2016-08-25 - Implementing a critical section in terms of WaitOnAddress
2016-08-25 - Soarin over California Seattle Wings over Washington
2016-08-26 - Spurious wakes race conditions and bogus FIFO claims A peek behind the curtain of WaitOnAddress
2016-08-29 - Detecting what language or script a run of text is written in redux
2016-08-30 - What is the NTDiskQuotaSidCachendx file for
2016-08-31 - The ship date predictor Redux

The Old New Thing - 2016 09

2016-09-01 - Discardability in drivers has nothing to do with discardability in user-mode which has nothing to do
2016-09-02 - A customer question about shortcuts that dont have a target path
2016-09-05 - The complicated engineering behind an ice cream social
2016-09-06 - How to get people who installed a leaked build to stop using that build
2016-09-07 - If I zero out my memory pages does that make them page in faster
2016-09-08 - How can I change a registry key from within the debugger
2016-09-09 - How can I get the memory manager to prefetch bigger chunks of data from my memory-mapped file
2016-09-12 - How can I have a window that rejects activation but still receives pointer input
2016-09-13 - What are these ghost drivers named dump_diskdumpsys and other dump_sys that didnt come from any file
2016-09-14 - What exactly does the msWindowLength parameter to SetThreadpoolTimer mean
2016-09-15 - Decoding the parameters of a thrown C exception 0xE06D7363 revisited
2016-09-16 - Does the page table entry really have a sad-face for pages that are reserved
2016-09-19 - Its an unfortunate choice of data type for the file system redirection cookie
2016-09-20 - The social skills of a thermonuclear device Ruining a conversation
2016-09-21 - The case of the system call that returned before finishing
2016-09-22 - Dither me this
2016-09-23 - When you break into a user-mode application in the kernel debugger how do you connect a user-mode deb
2016-09-26 - It says that I should use USB usage page 1 and usage 6 to get raw keyboard data but what if I have a
2016-09-27 - Whats up with Windows developer tools being written in perl
2016-09-28 - When can you free the memory backing the HSTRING you created with WindowsCreateStringReference
2016-09-29 - The lackey catastrophe
2016-09-30 - When are global objects constructed and destructed by Visual C redux

The Old New Thing - 2016 10

2016-10-03 - You can register your childs name in any language providing you use any Unicode character
2016-10-04 - Wow thats amazing You got Picabo Street and Alberto Tomba to autograph the same poster
2016-10-05 - Why doesnt my custom-drawn trackbar get a paint notification when the position changes from 1 to 0
2016-10-06 - How do I cancel autoplay from a wizard page
2016-10-07 - How can I get the default code page for a locale
2016-10-10 - A Little Program to fix one particular type of mojibake
2016-10-11 - Oh youre with them
2016-10-12 - Nasty gotcha The inadvertently named resource
2016-10-13 - Dubious security vulnerability Attacking the application directory in order to fool yourself
2016-10-14 - How can I force memory to be allocated above the 4GB boundary for debugging purposes on Windows 7
2016-10-17 - The Windows 81 ship-it awards were yellow
2016-10-18 - Was it intentional that the Media Control Interface has the same acronym as a telecommunications comp
2016-10-19 - Three short questions about LogonUser with answers
2016-10-20 - Using DuplicateHandle to help manage the ownership of kernel handles
2016-10-21 - Is there anything better than GetThreadTimes for obtaining per-thread CPU usage information
2016-10-24 - Why is Identical COMDAT Folding called Identical COMDAT Folding
2016-10-25 - Microspeak lift up
2016-10-26 - Why does the documentation for ReadFile say that the lpNumberOfBytesRead parameter is optional when i
2016-10-27 - How to electrify your own fence ProcessStrictHandleCheckPolicy
2016-10-28 - Why does SetThreadPriority sometimes take a really long time
2016-10-31 - This processor has no stack insert spooky laughter

The Old New Thing - 2016 11

2016-11-01 - Windows file system compression had to be dumbed down
2016-11-02 - What happens if you call RevertToSelf when not impersonating
2016-11-03 - Solving the problem instead of answering the question How do I get this RichEdit control to look just
2016-11-04 - Why is my crash dump file filled with 0xAAAAAAAA
2016-11-07 - How do I programmatically add a folder to my Documents library
2016-11-08 - Why do my file creation access or modified time disappear if I set it to midnight on January 1 1980
2016-11-09 - Zeroing out my memory does cause them to page in faster after all
2016-11-10 - Under what circumstances will GetProcessTimes report that a process exited before it was created
2016-11-11 - If you dont blow up a debug session every so often youre not debugging hard enough
2016-11-11 - The long-awaited Redmond Costco opens today and some useless Costco trivia
2016-11-14 - What does the shield over a WiFi network mean
2016-11-15 - The speed of light is unlikely to improve consequences
2016-11-16 - When you decide to travel at the speed of light you have to accept the consequences
2016-11-17 - Is RunAsInvoker a secret even higher UAC setting
2016-11-18 - Why does calling SetForegroundWindow immediately followed by GetForegroundWindow not return the same
2016-11-21 - Lock free many-producersingle-consumer patterns A work queue with task coalescing
2016-11-22 - Lock free many-producersingle-consumer patterns A work queue where the last one wins
2016-11-23 - Lock free many-producersingle-consumer patterns A work queue of identical non-coalescable events
2016-11-24 - Lock free many-producersingle-consumer patterns A work queue of distinct events order not important
2016-11-24 - Turkeys Away An Oral History
2016-11-25 - Lock free many-producersingle-consumer patterns A work queue of distinct events FIFO
2016-11-25 - The Gävle Goat is now 50 years old
2016-11-28 - If I simply want to create a registry key but dont intend to do anything else with it what security a
2016-11-29 - The case of the volume label that doesnt change
2016-11-30 - What could be happening in Safe Mode to make my heap corruption bug go away

The Old New Thing - 2016 12

2016-12-01 - What is __wchar_t with the leading double underscores and why am I getting errors about it
2016-12-02 - Why do I get a _BLOCK_TYPE_IS_VALID debug assertion failure when I try to delete a WIC pixel buffer
2016-12-05 - The case of the unexpected ERROR_ACCESS_DENIED when calling MapViewOfFile
2016-12-06 - How can I reset a PC if I forgot the administrator password
2016-12-07 - Why dont I get a broken pipe when the child process terminates
2016-12-08 - What is this race condition that the OpenMutex documentation is trying to warn me about
2016-12-09 - Answers to a customers questions about memory and DLLs
2016-12-12 - Why does tapping the Alt key cause my owner-draw static control to repaint
2016-12-13 - Can a server-side Web application trigger the creation of thumbsdb files
2016-12-14 - Dubious security vulnerability Discovering the salt
2016-12-15 - How bad is it to delay closing a thread handle for a long time after the thread has exited
2016-12-16 - My colleague who thought he held the unofficial record for consecutive months of skiing
2016-12-19 - Why cant VarDateFromStr parse back a Hungarian date that was generated by VarBstrFromDate
2016-12-20 - If you ask robocopy to destroy the destination then it will destroy the destination
2016-12-21 - What is the maximum numeric value for a socket and what is the maximum number of sockets a Windows pr
2016-12-22 - Another pattern for using the InitOnce functions
2016-12-23 - The mother lode of well-known SIDs
2016-12-26 - Wireless AC is unfortunately not what it sounds like
2016-12-27 - Why dont I get properly translated program output after installing the corresponding language pack
2016-12-28 - The case of the four unlabeled toggle buttons
2016-12-29 - The evolution of the text size limits related to the standard static control
2016-12-30 - 2016 year-end link clearance
2016-12-30 - The invisible work of preparing PC BIOSes for the year 2000

The Old New Thing - 2017 01

2017-01-02 - Applying a permutation to a vector part 1
2017-01-03 - Applying a permutation to a vector part 2
2017-01-04 - Applying a permutation to a vector part 3
2017-01-05 - Sorting by indices part 1
2017-01-06 - Sorting by indices part 2 The Schwartzian transform
2017-01-09 - Applying a permutation to a vector part 4 What is the computational complexity of the apply_permutati
2017-01-10 - Applying a permutation to a vector part 5
2017-01-11 - Applying a permutation to a vector part 6
2017-01-12 - How do I detect Windows 10 if I cannot GetProcAddress for the function IsWindows10OrGreater
2017-01-13 - A survey of the various ways of declaring pages of memory to be uninteresting
2017-01-16 - How come my CreateMutex call sometimes fails with Access denied
2017-01-17 - Microspeak ladder up
2017-01-18 - Does ASLR relocate all DLLs by the same offset
2017-01-19 - A fine detail on how DLLs are relocated as the result of a base address collision and consequences
2017-01-20 - How important is it nowadays to ensure that all my DLLs have non-conflicting base addresses
2017-01-23 - How do I prevent users from terminating a service
2017-01-24 - Why do my programs notifications sometimes show a small icon and sometimes a large icon
2017-01-25 - Are there alternatives to _lock and _unlock in Visual Studio 2015
2017-01-26 - How can I control the directory from which my delay-loaded DLL is loaded
2017-01-27 - How can a COM local server keep itself alive even though there are no active clients
2017-01-30 - Creating an object on the other side of the airtight hatchway isnt yet a security vulnerability
2017-01-31 - Why does my Surface power brick keep blinking on and off

The Old New Thing - 2017 02

2017-02-01 - How am I supposed to free the information passed to the SetSecurityInfo function
2017-02-01 - I wasnt fooled into thinking the Star Wars trench run was along the equatorial trench but I was foole
2017-02-02 - Are DDE and WM_COPYDATA related as IPC mechanisms
2017-02-02 - Some friendly advice from the Redmond Public Safety department on nighttime nude jogging
2017-02-03 - It is a great deal and not a great deal both at the same time
2017-02-03 - Why am I getting a crash at shutdown inside the thread pool
2017-02-06 - My proposal for an episode of the new Star Trek series
2017-02-06 - Why does a Microsoft mouse accept two batteries even though it works just fine on only one battery
2017-02-07 - Microspeak Placemat review
2017-02-08 - Why are all Windows drivers dated June 21 2006 Dont you ever update drivers
2017-02-09 - Suspicious memory leak in stdbasic_string
2017-02-10 - How do I do an interlocked exchange of a hat pointer
2017-02-13 - Advertisement for ink cartridges doesnt do all the math
2017-02-13 - Sometimes you get so worked up about the compatibility consequences of a change that you miss the obv
2017-02-14 - Pipelining your laundry and the ensuing silliness
2017-02-15 - Man this housing downturn is hitting everyone follow-up
2017-02-15 - Why did my thread pool stop processing work once it hit a long-running work item
2017-02-16 - How do I fix the problem of a long-running task running on the thread pool persistent thread
2017-02-17 - A more efficient solution to the problem of a long-running task running on the thread pool persistent
2017-02-17 - Follow-up The bus that straddles traffic
2017-02-20 - Another more efficient solution to the problem of a long-running task running on the thread pool pers
2017-02-20 - The 20172018 Seattle Symphony subscription season at a glance
2017-02-21 - Psychic debugging Why does opening a command prompt always print a weird error message
2017-02-21 - What little kids think of lifeguards
2017-02-22 - Those Year 2000 disaster preparedness trucks were originally there for a different reason
2017-02-23 - How am I supposed to print my print-at-home tickets if I cant reproduce them
2017-02-23 - How to create a folder that inherits its parents ACL and then overrides part of it
2017-02-24 - Eventually you reach a critical mass of LEGO pieces where you can build most things from what you alr
2017-02-24 - The system manages the system image lists dont go changing the art on the walls
2017-02-27 - Baking soda has hundreds of uses but what about what it says on the tin
2017-02-27 - How do I disable the press-and-hold gesture for my window
2017-02-28 - Great moments in journalism Confirmed Microsoft Surface Pro 5 launch date

The Old New Thing - 2017 03

2017-03-01 - Want to include a gift message with your tires Nice try
2017-03-01 - Why does my attempt to acquire an SRW lock block even though locks report no locks held
2017-03-02 - Dont forget to implement canonical names for verbs in your shell context menu extension
2017-03-02 - What happens when you tell a Millennial to take pictures of a party
2017-03-03 - The case of the 32-bit program that tries to load a 64-bit DLL
2017-03-06 - Some internal developer chatter on a bug that caused your screen to turn black
2017-03-07 - Microspeak to reason over
2017-03-08 - How do we improve the performance of conhost processes when we ping a bunch of servers
2017-03-09 - How do I keep thread pool threads or other threads in general from competing with my render thread fo
2017-03-10 - Is GENERIC_ALL equivalent to GENERIC_READ GENERIC_WRITE GENERIC_EXECUTE
2017-03-13 - Raymonds highly scientific predictions for the 2017 NCAA mens basketball tournament
2017-03-13 - Which languages are fully-localized by Windows
2017-03-14 - Why is AltD the keyboard shortcut for putting focus on the address bar
2017-03-15 - How do I show the sharing pane from a Win32 desktop application
2017-03-16 - How do I provide data to the sharing pane from a Win32 desktop application
2017-03-17 - Happy St Patricks Day Watch out for that throne
2017-03-17 - If I want to maintain a free list of pages should I use MEM_RESET or MEM_DECOMMIT
2017-03-17 - Not interested in college basketball No problem Follow the Name of the Year 2017 bracket
2017-03-20 - Secret passages on Microsoft main campus episode 2
2017-03-21 - Why does the volume control let me set the volume only to even numbers
2017-03-22 - You can peek to see whether your delay-loaded function loaded successfully
2017-03-23 - Responses to various ideas on how to get people to stop using that leaked build
2017-03-24 - When you submit a security vulnerability report we go the extra mile and try to fix your typos
2017-03-27 - How real-mode Windows loaded code from the disk and how you could use that to minimize disk swapping
2017-03-28 - Explorer is a single-instance application but you can find other ways to get the effect of running a
2017-03-29 - A brief discussion on how best to respond to the end-session messages
2017-03-30 - For sale One TARDIS working lights you must pick up from Vancouver
2017-03-30 - The gradual erosion of the SEM_NOOPENFILEERRORBOX error mode
2017-03-31 - A survey of the various ways of creating GDI bitmaps with predefined data

The Old New Thing - 2017 04

2017-04-03 - How do I create a shortcut in the Send To menu that runs a program with a command line option
2017-04-04 - Microspeak snap
2017-04-05 - How do I programmatically obtain the users selected accent color in Windows 10
2017-04-06 - What can I do if I want to throw a C exception from my InitOnce callback
2017-04-07 - If I have a thread waiting on an event and I call SetEvent immediately followed by ResetEvent is the
2017-04-10 - When I enable page heap why is my one-byte buffer overrun not detected immediately
2017-04-11 - The Windows 8 close gestures a retrospective
2017-04-12 - How do I get the current directory for a non-current drive
2017-04-13 - Can memcpy go into an infinite loop Why is it being blamed for a busy hang
2017-04-14 - How can I atomically leave a critical section and delete it
2017-04-17 - Why does my __FILE__ macro produce an invalid address which mysteriously becomes valid a few moments
2017-04-18 - That time a customer reported an error in the map used by Flight Simulator
2017-04-19 - Under what conditions could a commit of reserved memory fail
2017-04-20 - On generating sentinel pointer values in Windows
2017-04-21 - Application crash reported as security vulnerability but you never crossed the airtight hatchway
2017-04-24 - Filtering the Browse for Folder dialog so it shows only drive letters
2017-04-25 - How do I kill a program that hung with an always-on-top fullscreen window
2017-04-26 - Why are there two incompatible ways of specifying a serial port baud rate
2017-04-27 - Static hooking through predefinition
2017-04-28 - Why does the compiler generate memory operations on the full variable even though only one byte is in

The Old New Thing - 2017 05

2017-05-01 - Those blue boxes all over the place I always wondered what they were for
2017-05-01 - Why doesnt SHGetFileInfo give me customized folder icons
2017-05-02 - Microspeak Work-back
2017-05-03 - Why dont I get thumbnails for files that are marked offline
2017-05-04 - The interaction between AppBars and Windows 10 virtual desktops
2017-05-05 - Remember that in a stack trace the addresses are return addresses not call addresses
2017-05-08 - Couldnt we fix the lackey catastrophe by using pragma init_seguser
2017-05-09 - The early Windows phone devices were liquid-cooled sort of
2017-05-10 - Revised notes on the reliability of FlushFileBuffers
2017-05-11 - How to calculate the resulting security descriptor of a child object without creating it
2017-05-12 - A question about avoiding page faults the first time newly-allocated memory is accessed
2017-05-15 - At least it wasnt on a Web page with the warning Beware of the leopard
2017-05-16 - Theres a group policy for Action Center and another one for Action Center
2017-05-17 - Why do my PDF file associations get reset every time I restart
2017-05-18 - Why is the locks command called locks even though it debugs only critical sections
2017-05-19 - Debugging a GDI resource leak Case study
2017-05-22 - Why doesnt searching my Start menu with Cortana find Internet shortcuts in my All Programs list
2017-05-23 - What do these hard drive icons mean
2017-05-24 - Some questions about unflushed data and calling FlushFileBuffers on a new handle to a file
2017-05-25 - Diagnosing why you cannot create a stable subkey under a volatile parent key
2017-05-26 - Why are hidden files with a leading tilde treated as super-hidden
2017-05-29 - Does DebugBreak work to launch the debugger or doesnt it
2017-05-30 - Why isnt the original window order always preserved when you undo an Aero Shake
2017-05-31 - Extending our critical section based on WaitOnAddress to support timeouts

The Old New Thing - 2017 06

2017-06-01 - Comparing WaitOnAddress with futexes futexi futexen
2017-06-02 - How likely is it that a window will receive a WM_NULL message out of the blue
2017-06-05 - How can I register a program to auto-relaunch if it crashes or is terminated
2017-06-06 - Microspeak ROB and Office Hours
2017-06-07 - On enabling NX and ASLR for a module after the fact
2017-06-08 - What will GetLastError return after a failed InitOnceExecuteOnce
2017-06-09 - The case of the longjmp from nowhere trying to open a registry key
2017-06-12 - Creating a semaphore from WaitOnAddress
2017-06-13 - Creating a semaphore with a maximum count from WaitOnAddress
2017-06-14 - Creating a manual-reset event from WaitOnAddress
2017-06-15 - Creating an automatic-reset event from WaitOnAddress
2017-06-16 - Combining the work queue of distinct events order not important with an auto-reset event
2017-06-16 - Stuff my father-in-law says On baking bread
2017-06-19 - How do I set the initial directory of the File Open dialog to a virtual directory
2017-06-20 - Why is Explorer opted out of Data Execution Prevention and termination on heap corruption and how eff
2017-06-21 - Summertime and the lemonade is easy
2017-06-22 - When can GetSecurityInfo API return ERROR_INSUFFICIENT_BUFFER
2017-06-23 - Trying to make the thread pool more responsive to a large queue of long-running work items
2017-06-26 - Extracting pages from a PDF document and saving them as separate image files C edition
2017-06-27 - Extracting pages from a PDF document and saving them as separate image files JavaScript edition with (1)
2017-06-28 - Extracting pages from a PDF document and saving them as separate image files JavaScript edition with
2017-06-29 - Extracting pages from a PDF document and saving them as separate image files CCX edition with explici
2017-06-30 - 2017 mid-year link clearance
2017-06-30 - Extracting pages from a PDF document and saving them as separate image files CCX edition with co_awai

The Old New Thing - 2017 07

2017-07-03 - Emulating the C using keyword in C
2017-07-04 - Urban and suburban camouflage
2017-07-05 - How fair are SRW locks particularly when there are both readers and writers
2017-07-06 - Debugging tip Use frame r to recover nonvolatile registers from the stack frame
2017-07-07 - How can I tell whether two paths reside on the same underlying volume so I can know whether they can
2017-07-10 - On the circular path from RAII to crazy-town back to RAII Thoughts on emulating Cs using in C
2017-07-11 - Microspeak To stand up
2017-07-12 - Why is the maximum number of TLS slots 1088 What a strange number
2017-07-13 - Customizing the window handle for item enumeration in IShellItem
2017-07-14 - Discussion of how to add UTF-16 support to a library that internally uses UTF-8
2017-07-17 - Revisions to previous discussion of the implementation of anonymous methods in C
2017-07-18 - Why does the assignment operator in C evaluate left to right instead of right to left
2017-07-19 - Do people write insane code with multiple overlapping side effects with a straight face
2017-07-20 - Crash course in async and await
2017-07-21 - The perils of async void
2017-07-24 - How can I find out how many threads are active in the CLR thread pool
2017-07-25 - If there is no difference between two options choose the one that is easier to debug
2017-07-26 - Trip report Sequim Lavender Festival and the Olympic Game Farm
2017-07-26 - Wrapping up 2017s extended CLR Week-and-a-half with some links to other CLR trivia
2017-07-27 - How am I supposed to free the memory the system allocates in the SetPrivateObjectSecurity function
2017-07-28 - Can I throw a C exception from a structured exception
2017-07-31 - The redirection can come anywhere on the line so watch out for those spaces

The Old New Thing - 2017 08

2017-08-01 - The redirection can come anywhere on the line and you can use that to get rid of the spaces
2017-08-02 - Why does attempting to echo an undefined environment variable result in the message ECHO is on
2017-08-03 - Decomposing file paths and extracting other information like file size date and time and attributes f
2017-08-04 - Wrapping some other scripting language inside a batch file
2017-08-07 - The Alpha AXP part 1 Initial plunge
2017-08-08 - The Alpha AXP part 2 Integer calculations
2017-08-09 - The Alpha AXP part 3 Integer constants
2017-08-10 - The Alpha AXP part 4 Bit 15 Ugh Bit 15
2017-08-11 - The Alpha AXP part 5 Conditional operations and control flow
2017-08-14 - The Alpha AXP part 6 Memory access basics
2017-08-15 - The Alpha AXP part 7 Memory access loading unaligned data
2017-08-16 - The Alpha AXP part 8 Memory access storing bytes and words and unaligned data
2017-08-17 - The Alpha AXP part 9 The memory model and atomic memory operations
2017-08-18 - The Alpha AXP part 10 Atomic updates to byte and word memory units
2017-08-21 - The Alpha AXP part 11 Processor faults
2017-08-22 - The Alpha AXP Part 12 How you detect carry on a processor with no carry
2017-08-23 - The Alpha AXP part 13 On treating a 64-bit processor as if it were a 32-bit processor
2017-08-24 - Yes that was a horrifically awkward video but it wasnt the Windows 95 launch
2017-08-25 - The Alpha AXP part 14 On the strange behavior of writes to the zero register
2017-08-28 - The Alpha AXP part 15 Variadic functions
2017-08-29 - The Alpha AXP part 16 What are the dire consequences of having 32-bit values in non-canonical form
2017-08-30 - The Alpha AXP part 17 Reconstructing a call stack
2017-08-31 - The Alpha AXP epilogue A correction about file system compression on the Alpha AXP

The Old New Thing - 2017 09

2017-09-01 - I guess I may as well confess that I wrote the Itanium information in the Debugging Tools for Windows
2017-09-04 - Inadvertently becoming the change you wish to see in the world
2017-09-05 - Does anybody know what really happened on August 25 2017 at the Red SoxOrioles game
2017-09-05 - Why did my systems reboot into the Recovery Environment and how do I prevent that from happening in t
2017-09-06 - Can I enable Large Address Awareness dynamically at runtime
2017-09-07 - What are anonymous structs and more importantly how do I tell windowsh to stop using them
2017-09-08 - Nasty gotcha SetThreadUILanguage cannot be used to restore the thread UI language
2017-09-11 - If you configure a program to run in Windows 2000 compatibility mode then it is also vulnerable to Wi
2017-09-12 - Microspeak Ripcord
2017-09-13 - What is the correct way of using the string buffer returned by the WindowsPreallocateStringBuffer fun
2017-09-14 - Why is my window unexpectedly becoming topmost
2017-09-15 - How can I diagnose why my FreeLibrary isnt freeing the library
2017-09-18 - The increasingly complex Kremlinology surrounding Windows
2017-09-19 - The NET HELPMSG command will decode Windows error codes at least the simple ones
2017-09-20 - What is the correct way of using SaveDC and RestoreDC
2017-09-21 - How accurate are the various Windows time-querying functions
2017-09-22 - What does it mean when I get an access violation at a very low address when entering a critical secti
2017-09-25 - What happens if I wake a condition variable when nobody is waiting for it Is the wake saved for the n
2017-09-26 - Who implemented the Windows NT blue screen of death
2017-09-27 - How to check if a pointer is in a range of memory
2017-09-28 - CancelIoEx can cancel synchronous IO which is kind of nice
2017-09-29 - Why does my thread handle suddenly go bad All I did was wait on it

The Old New Thing - 2017 10

2017-10-02 - How can I detect that my window is on the current virtual desktop
2017-10-03 - Alas Microsoft Building 109 Conference Room A is no more
2017-10-04 - Reconciling yucky boys and gross kissing with the occasional dance
2017-10-04 - The Resource Compilers preprocessor is not the same as the C preprocessor
2017-10-05 - Evaluating the security consequences of an instance of reading past the end of a buffer
2017-10-06 - How can I investigate the possibility of a lot of leaked window classes RegisterClass
2017-10-09 - Why does NTVDM create empty IOSYS and MSDOSSYS files
2017-10-10 - Microspeak Gardening
2017-10-11 - How can I specify that my DLL should resolve a DLL dependency from the same directory that the DLL is
2017-10-12 - Why does my program crash when I throw an exception from an APC
2017-10-13 - Exploring the problem Create a file that only one process can write to
2017-10-16 - Nasty gotcha Powershell aliases that match commands you might want to run
2017-10-17 - When a stopgap solution becomes an undocumented feature some people rely on
2017-10-18 - I used WS_EX_COMPOSITED to get rid of my redrawing flicker but it resulted in sluggish response
2017-10-19 - How do I create a shortcut whose target is specified by a relative path
2017-10-20 - On the gradual improvements in how the system deals with the failure to initialize a critical section
2017-10-23 - A closer look at the complexity analysis of finding the kth smallest element in two sorted arrays
2017-10-24 - When I use AltPrtSc to take a screen shot of a maximized window why does it capture a few pixels from
2017-10-25 - Why was the Windows 95 precursor project code-named Panther abandoned
2017-10-26 - How do I prevent my registered hotkey from firing repeatedly due to auto-repeat
2017-10-27 - How do I preserve the users notification icon preferences for my program after I update it
2017-10-30 - Should I name my file mapping after the file it was created from
2017-10-31 - Why does upgrading my project to Unicode cause Visual Studio to use a different version of the common

The Old New Thing - 2017 11

2017-11-01 - How can I detect that a shell item refers to a virtual folder or to a file system inside a file
2017-11-02 - What are the dire consequences of accessing the fields of __m128i directly
2017-11-03 - Why are my notification icon customizations lost after six months of disuse
2017-11-06 - Why did Windows 95 store image list bitmaps four-across instead of as a strict vertical strip
2017-11-07 - Was there a problem with Windows 95-era programs relying on undocumented information disclosure stuff
2017-11-08 - How can I control which parts of the shell namespace the INamespaceWalkWalk operation will walk into
2017-11-09 - How can I cancel the INamespaceWalkWalk operation
2017-11-10 - Cancelling the INamespaceWalkWalk operation a little faster
2017-11-13 - On memory allocations larger than 64KB on 16-bit Windows
2017-11-14 - Microspeak FCIB
2017-11-15 - What happens if you simply return from the thread callback passed to _beginthread and _beginthreadex
2017-11-16 - Why is there no way to add a permission to a page with VirtualProtect instead of replacing it
2017-11-17 - The wrong way of benchmarking the most efficient integer comparison function
2017-11-20 - How can I find the installation directory for my UWP application
2017-11-21 - The sad implementation history of COM component categories and why it means you have to click twice t
2017-11-22 - What is the documentation for SetParent trying to tell me about synchronizing the UI state
2017-11-23 - Demonstrating what happens when a parent and child window have different UI states
2017-11-24 - Getting a parent and child window to have the same UI states
2017-11-27 - The TVS_CHECKBOXES style is quirky which is a polite way of saying that it is crazy
2017-11-28 - Beware of the leaked image list when using the TVS_CHECKBOXES style
2017-11-29 - Creating tree view check boxes manually A simple state image list
2017-11-30 - Creating tree view check boxes manually Responding to clicks

The Old New Thing - 2017 12

2017-12-01 - Creating tree view check boxes manually Themed check boxes
2017-12-04 - Tree view check boxes A sordid history
2017-12-05 - Tree view check boxes The extended check box states
2017-12-06 - How can I prevent the keyboard focus rectangle from appearing on a control I created
2017-12-07 - Knowing just enough about debugging IRPs to chase the problem out of the IO stack
2017-12-08 - How do I respond to the WM_MENUCHAR message
2017-12-11 - Coroutines mean that the thing that looks like a stack variable may not technically be one
2017-12-12 - Why not slipstream ZDP fixes into the bits downloaded by the installer rather than being a separate d
2017-12-13 - Creating double-precision integer multiplication with a quad-precision result from single-precision m (2)
2017-12-14 - Creating double-precision integer multiplication with a quad-precision result from single-precision m (1)
2017-12-15 - Creating double-precision integer multiplication with a quad-precision result from single-precision m
2017-12-18 - On the little-documented role of the page-turner
2017-12-18 - What kind of messages can a message-only window receive
2017-12-19 - How does Task Manager categorize processes as App Background Process or Windows Process
2017-12-20 - How do I ShellExecute a file but with a specific program instead of the default program
2017-12-21 - Whats the difference between VARIANT and VARIANTARG
2017-12-22 - Exposing undefined behavior when trying to port code to another platform
2017-12-25 - Time travel is here at least when it comes to debugging
2017-12-26 - Microspeak over-index
2017-12-27 - Why do I have to pass a valid page protection value to VirtualAlloc even if it ignores it
2017-12-28 - How does Resource Monitor get information for processes that already terminated
2017-12-29 - 2017 year-end link clearance

The Old New Thing - 2018 01

2018-01-01 - How do I know that Resource Monitor isnt just retaining a handle to the terminated process
2018-01-02 - What happens when a huge number of people share a single grocery store loyalty card
2018-01-03 - Why are the module timestamps in Windows 10 so nonsensical
2018-01-04 - How do I get the computers serial number Consuming Windows Runtime classes in desktop apps part 1 Raw
2018-01-05 - How do I get the computers serial number Consuming Windows Runtime classes in desktop apps part 2 CCX
2018-01-08 - How do I get the computers serial number Consuming Windows Runtime classes in desktop apps part 3 CWi
2018-01-09 - How do I get the computers serial number Consuming Windows Runtime classes in desktop apps part 4 C
2018-01-10 - How do I get the computers serial number Consuming Windows Runtime classes in desktop apps part 5 Pow
2018-01-10 - Why is there a semicircular bar at the base of the ORCA card reader
2018-01-11 - What does it mean when the documentation says that you must specify the app in the systems metadata b
2018-01-12 - Why dont context menus respect the UI state for keyboard accelerators
2018-01-15 - How do I know that Resource Monitor isnt just retaining a handle to the terminated process
2018-01-16 - As far as the French government is concerned I am the expert on Windows XP
2018-01-17 - Why does HRESULT begin with H when its not a handle to anything
2018-01-18 - A helper template function to wait for WaitOnAddress in a loop
2018-01-18 - Stuff my father-in-law says On taking the train
2018-01-19 - A helper template function to wait for a Win32 condition variable in a loop
2018-01-22 - The history of change-packing tools at Microsoft so far
2018-01-23 - Microspeak Impedance mismatch
2018-01-24 - How can I reserve a range of address space and receive notifications when the program first reads or
2018-01-25 - How can I reserve a range of address space and create nonzero memory on demand when the program reads
2018-01-25 - Like love taxes make people do the strangest things
2018-01-26 - How can I reserve a range of address space and create nonzero memory on demand when the program reads
2018-01-26 - The saga of Heartland vs The United States Beet Sugar Association
2018-01-29 - Microspeak sighting over-index
2018-01-29 - Well that was a helpful error message
2018-01-30 - Communication by hand signals and other complex coordination problems
2018-01-30 - Why does hypervisor remain enabled even when Hyper-V is disabled in Windows Features
2018-01-31 - How can I get a signature for a Windows system that will remain unchanged even if the user reinstalls

The Old New Thing - 2018 02

2018-02-01 - Spurious wake-ups in Win32 condition variables
2018-02-02 - The case of the SRWLock violation in a thread pool work item
2018-02-05 - If this happens I am going to quit and become a barista
2018-02-06 - Microspeak POR
2018-02-07 - Why does misinterpreting UTF16-LE Unicode text as ANSI tend to show up as just one character
2018-02-08 - What do the output values from CoGetApartmentType mean
2018-02-09 - Optimizing BitBlt by generating code on the fly
2018-02-12 - There are no bugs in the IO manager
2018-02-13 - When Windows copies a file does it ever copy bytes that are in the slack space
2018-02-14 - Whats the difference between the zero width non-joiner and the zero width space
2018-02-15 - Why are there two kinds of Universal Windows apps one for Windows 8 and another for Windows 10
2018-02-16 - So what is a Windows critical process anyway
2018-02-19 - This is a race the display driver wouldnt normally expect to lose
2018-02-20 - We couldnt create a new partition or locate an existing one possible workarounds
2018-02-21 - How can I call freopen but open the file with shared access instead of exclusive access
2018-02-22 - Why does IsPathRelative return FALSE for paths that are drive-relative
2018-02-23 - How do I make sure that my shell extension is at the top of the context menu
2018-02-23 - The 20182019 Seattle Symphony subscription season at a glance
2018-02-26 - I just met you and this is crazy but heres my callstack Debug me maybe
2018-02-27 - It rather involved being on the other side of this airtight hatchway Replacing an unsigned writable M
2018-02-28 - An amusing story about a practical use of the null garbage collector

The Old New Thing - 2018 03

2018-03-01 - How does Task Manager choose the icon to show for a process
2018-03-02 - If I call GetExitCodeThread for a thread that I know for sure has exited why does it still say STILL_
2018-03-05 - Inadvertently designing a horrible time and date picker
2018-03-06 - Microspeak The triad the ad-hoc acronyms that result and the arithmetic problem 3 3
2018-03-07 - When MSDN says NULL is it okay to use nullptr
2018-03-08 - Whats the difference between CreateTimerQueueTimer and SetThreadpoolTimer
2018-03-09 - Torsken har ankommet
2018-03-09 - Why is the daylight saving time cutover time 1 millisecond too soon in some time zones
2018-03-12 - Stop cherry-picking start merging Part 1 The merge conflict
2018-03-13 - Stop cherry-picking start merging Part 2 The merge conflict that never happened but should have
2018-03-14 - Stop cherry-picking start merging Part 3 Avoiding problems by creating a new merge base
2018-03-15 - Stop cherry-picking start merging Part 4 Exploiting the recursive merge algorithm
2018-03-16 - Stop cherry-picking start merging Part 5 Exploiting the three-way merge
2018-03-19 - Stop cherry-picking start merging Part 6 Replacing the temporary fix with the permanent fix
2018-03-20 - Stop cherry-picking start merging Part 7 Preventing a change from leaving a branch
2018-03-21 - Stop cherry-picking start merging Part 8 How to merge a partial cherry-pick
2018-03-22 - Stop cherry-picking start merging Part 9 Chasing the commit
2018-03-22 - The mystery of the stalker dental hygienist
2018-03-23 - Stop cherry-picking start merging Index
2018-03-23 - Stop cherry-picking start merging Part 10 Web-based workflow for Azure DevOps formerly VSTS
2018-03-26 - A rare opportunity to fact-check the celebrity net worth sites
2018-03-26 - What are the odds that two pull requests get completed at the exact same time
2018-03-27 - The WMI root node is just a node in the WMI namespace
2018-03-28 - When I memcpy a struct into a stdatomic of that struct why does the result not match
2018-03-29 - Geology throwdown The whisper of the rocks
2018-03-29 - Whats up with compare_exchange_weak anyway
2018-03-30 - How do I choose between the strong and weak versions of compare-exchange
2018-03-30 - Why is it cheaper to fly out of Vancouver for spring break instead of Seattle while also being cheape

The Old New Thing - 2018 04

2018-04-02 - The MIPS R4000 part 1 Introduction
2018-04-03 - The MIPS R4000 part 2 32-bit integer calculations
2018-04-04 - The MIPS R4000 part 3 Multiplication division and the temperamental HI and LO registers
2018-04-05 - The MIPS R4000 part 4 Constants
2018-04-06 - The MIPS R4000 part 5 Memory access aligned
2018-04-09 - The MIPS R4000 part 6 Memory access unaligned
2018-04-10 - The MIPS R4000 part 7 Memory access atomic
2018-04-11 - The MIPS R4000 part 8 Control transfer
2018-04-12 - The MIPS R4000 part 9 Branch delay slot parlor tricks
2018-04-13 - The MIPS R4000 part 10 Trampolines and stubs
2018-04-16 - The MIPS R4000 part 11 More on branch delay slots
2018-04-17 - The MIPS R4000 part 12 Calling convention
2018-04-17 - Whoa that fitness tracker is a really expensive watch
2018-04-18 - The MIPS R4000 part 13 Function prologues and epilogues
2018-04-19 - The MIPS R4000 part 14 Common patterns
2018-04-20 - The MIPS R4000 part 15 Code walkthrough
2018-04-23 - The early history of redundant function pointer casts MakeProcInstance
2018-04-24 - It rather involved being on the other side of this airtight hatchway Passing invalid parameters from
2018-04-25 - Microspeak Tented
2018-04-26 - How can I have my program execute some code only if run from the Visual Studio debugger
2018-04-27 - A cute hidden message in a image to entertain you while you wait
2018-04-30 - I dont know how I managed to be presenting at the same conference as Dona Sarkar
2018-04-30 - The seasoned pianists guide to musical collaborators

The Old New Thing - 2018 05

2018-05-01 - Windows 10 virtual desktops are a window management feature not a security feature
2018-05-02 - How to avoid accessing freed memory when canceling a thread pool callback
2018-05-03 - Avoiding deadlocks when cancelling a thread pool callback part 1 External callback data
2018-05-04 - Avoiding deadlocks when cancelling a thread pool callback part 2 Referring back to the containing obj
2018-05-04 - See you at Build 2018 next week
2018-05-07 - After all its called a hotkey not a hotcharacter
2018-05-08 - Microspeak ZBB recall class glide path and RTM
2018-05-09 - Why does my shortcut to a nonexistent file end up with spaces changed to underscores
2018-05-10 - On the difficulty of getting pixel-perfect layout in Win32 dialog templates
2018-05-11 - Why cant FindWindowEx find another programs window by name
2018-05-14 - For a brief period Windows 95 could run Windows 31 in a virtual machine
2018-05-15 - Why is Windows Compressed Folders Zip folders support stuck at the turn of the century
2018-05-16 - C namespace parlor tricks
2018-05-17 - How do I create a SAL annotation for a structure with a variable-length array
2018-05-18 - Misdirected security vulnerability Malformed file results in memory corruption
2018-05-21 - Maintaining Notepad is not a full-time job but its not an empty job either
2018-05-22 - Why does the install date and size of a program change roughly two days after I install it even thoug
2018-05-23 - If you say that your buffer can hold 200 characters then it had better hold 200 characters
2018-05-24 - How do I create a disabled checkbox for a listview item
2018-05-25 - My namespace importing trick imported the same three namespaces into each top-level namespace yet it
2018-05-28 - How are BitBlt raster opcodes calculated
2018-05-29 - How do I get file version information from the command line
2018-05-29 - The alphabet in alphabetical order in various languages
2018-05-30 - When you call OpenThreadToken while impersonating you have to say who is asking for the thread token
2018-05-31 - How can I obtain the heap from which a heap block was allocated

The Old New Thing - 2018 06

2018-06-01 - How can I write a program that monitors another window for a title change
2018-06-04 - Adventures in application compatibility Following a detour off a cliff
2018-06-05 - Stupid cmdexe tricks Changing directories with forward slashes instead of backslashes
2018-06-06 - The unhandled exception filter is the responsibility of the process dont change it without permission
2018-06-07 - What is this weird constructory syntax CC
2018-06-08 - Unusual choice of units 18 billion square millimeters
2018-06-08 - Why does GetServiceDisplayNameA report a larger required buffer size than actually necessary
2018-06-11 - Pulling the rug out from under an internet protocol
2018-06-11 - Where is the Seattle BoltBus stop
2018-06-12 - Stupid cmdexe tricks Entering a directory that doesnt exist then immediately leaving
2018-06-13 - Even though the brand is called One A Day none of them actually should be taken one a day
2018-06-13 - Why does the CREATOR_OWNER SID sometimes reset itself to the objects current owner rather than its or
2018-06-14 - How do I programmatically control the order of my programs notification icons
2018-06-15 - Is there a problem with CreateRemoteThread on 64-bit systems
2018-06-18 - Woodworking the opposite of software development
2018-06-19 - Microspeak knobs
2018-06-20 - When I intentionally create a stack overflow with SendMessage why do I sometimes not get a stack over
2018-06-21 - What can influence how much stack is consumed when sending a message
2018-06-22 - How I learned to type
2018-06-25 - The costbenefit analysis of comparing before an assignment
2018-06-26 - Taking advantage of the asymmetry of offline compression
2018-06-27 - Lock free many-producersingle-consumer patterns A work queue of distinct events order not important f
2018-06-28 - How can I detect from the preprocessor what a macros definition is
2018-06-29 - 2018 mid-year link clearance

The Old New Thing - 2018 07

2018-07-02 - Consider the environment Do you want a receipt
2018-07-03 - Did you happen to lose something in the Amstel River Say within the past 500 years
2018-07-03 - How can I determine why the System process is listening on port 80
2018-07-04 - The Windows Calculator no longer generates tiny errors when calculating the square root of a perfect
2018-07-05 - How can I detect whether the user is logging off
2018-07-06 - The case of the very large memory blocks of the same size mostly zero but whose nonzero bytes follow
2018-07-09 - Stop merging if you need to cherry-pick
2018-07-10 - How do I change the password of another user without having to sign in as them
2018-07-11 - Const methods dont prevent a method from having side effects
2018-07-12 - Why does a non-recursive ReadDirectoryChangesW still report files created inside subdirectories
2018-07-13 - Warning Ruler is not to scale
2018-07-13 - When generating a random password the result must still be a valid string
2018-07-16 - Internal training video on expense reports contains inconsistency Alert the media
2018-07-17 - What is this vmmem program that is using up all my CPU and memory
2018-07-18 - Sure I can protect data with CryptProtectData but how do I remove the ability to decrypt it
2018-07-19 - When is it appropriate to use the current processor number as an optimization hint
2018-07-20 - How can I get the actual window procedure address and not a thunk
2018-07-23 - How do I trigger an EN_UPDATE notification for all of my edit controls when the users locale informat
2018-07-23 - The heavy metal umlaut reaches baked goods
2018-07-24 - Pushing the boundaries of cryptography in a security vulnerability report
2018-07-25 - Why are my file write operations synchronous even though I opened the file as FILE_FLAG_OVERLAPPED
2018-07-26 - What happens to custom unhandled exception filters if a debugger is not running
2018-07-27 - Is the TerminateThread function synchronous
2018-07-30 - Dark Pattern Opt-in above the fold but opt-out below the fold
2018-07-31 - Server names One of the remaining places where IT managers can be a little silly

The Old New Thing - 2018 08

2018-08-01 - Creating an apartment-aware PPL task from nothing
2018-08-02 - Creating an awaitable lock for C PPL tasks
2018-08-03 - A puzzle aboard the Anacortes-Sidney ferry How do the cars get off
2018-08-03 - Creating an awaitable lock for WinJS and JavaScript Promises
2018-08-06 - The PowerPC 600 series part 1 Introduction
2018-08-07 - The PowerPC 600 series part 2 Condition registers and the integer exception register
2018-08-08 - The PowerPC 600 series part 3 Arithmetic
2018-08-09 - The PowerPC 600 series part 4 Bitwise operations and constants
2018-08-10 - The PowerPC 600 series part 5 Rotates and shifts
2018-08-13 - The PowerPC 600 series part 6 Memory access
2018-08-14 - The PowerPC 600 series part 7 Atomic memory access and cache coherency
2018-08-15 - The PowerPC 600 series part 8 Control transfer
2018-08-16 - The PowerPC 600 series part 9 The table of contents
2018-08-17 - The PowerPC 600 series part 10 Passing parameters function prologues and epilogues
2018-08-20 - The PowerPC 600 series part 11 Glue routines
2018-08-21 - The PowerPC 600 series part 12 Leaf functions
2018-08-22 - The PowerPC 600 series part 13 Common patterns
2018-08-23 - The PowerPC 600 series part 14 Code walkthrough
2018-08-24 - The Windows 95 team were proud slackers
2018-08-27 - How do I force the Task Manager window closed whenever it opens
2018-08-28 - The evolution of Windows 8 charms
2018-08-29 - Obsolete Microspeak TDBN and the six-pack
2018-08-30 - The early history of Windows file attributes and why there is a gap between System and Directory
2018-08-31 - Removing the TerminateThread from code that waits for a job object to empty

The Old New Thing - 2018 09

2018-09-03 - That time the Word team hired somebody who never showed up who turned out to be an important member o
2018-09-04 - Apparently they know more information about me than me but dare I ask
2018-09-05 - How do I request that my out-of-process COM server run unelevated
2018-09-06 - What does it mean for a window to be Unicode
2018-09-07 - Removing the TerminateThread from a DLL that needs to shut down a helper thread at unload
2018-09-10 - How can I conditionally compile based on a preprocessor macro value while ensuring that the macro is
2018-09-11 - Le Chateliers principle in action Notifications
2018-09-12 - Anything is a soldering kit if youre brave enough The MOnSter 6502
2018-09-12 - How do I get the system to run my program in this very special way
2018-09-13 - Raising the colon off the ground
2018-09-14 - Why does the Zune HD have the message For our Princess on the inside of the case and why is she a pri
2018-09-17 - A lack of species sensitivity when serving pizza to guests
2018-09-17 - What defines an old-style common dialog
2018-09-18 - Why is AltF4 the hotkey for closing a window Why not AltF5 or AltF3
2018-09-19 - Why did every Windows 30 DLL have an exported function called WEP
2018-09-20 - What do the various regsvr32 exit codes mean
2018-09-21 - Why is regsvr32 exiting with code 3
2018-09-24 - Why does the compiler turn my conditional loop into an infinite one
2018-09-25 - How do I prevent my programs temporary documents from appearing in Search
2018-09-26 - What does the thread parameter to SetWindowsHookEx actually mean
2018-09-27 - Can you wear wallpaper on your feet You can if its a PARTYBMP
2018-09-27 - Considering the performance implications of converting recursion to an explicit stack
2018-09-28 - The sad history of the C throw exception specifier

The Old New Thing - 2018 10

2018-10-01 - Generating a table with vertical text like I did with the sad history of the C throw exception specif
2018-10-02 - All sorts of bad things happen when we disable the Task Scheduler service is that bad
2018-10-03 - Practical example of why you need to leave room for German localization
2018-10-04 - Can I be sure that turning on automatic generation of short file names will get me short file names
2018-10-05 - How can I use WS_CLIPCHILDREN and still be able to draw a control with a transparent background
2018-10-08 - When I call CryptProtectData with the same parameters why arent the results identical
2018-10-09 - The numerology of the sample directory listing in the Windows 95 font selector property sheet page
2018-10-10 - Notes on DrawText and tab stops
2018-10-11 - How can I includeexclude specific memory blocks in user-mode crash dumps
2018-10-12 - So um what are we looking at
2018-10-12 - Why doesnt GetTextExtentPoint return the correct extent for strings containing tabs
2018-10-15 - How can I programmatically inspect and manipulate a registry hive file without mounting it
2018-10-16 - Why does Windows ask me to pick a program with which to open a file even when I already specified whi
2018-10-17 - What does the Ae stand for in AeDebug
2018-10-18 - After reporting a non-responsive program to Windows Error Reporting why does the process spawn a susp
2018-10-19 - File-extending writes are not always synchronous which is entirely within the contract
2018-10-22 - Why does the Entry Point Not Found error dialog sometimes not include the name of the missing entry p
2018-10-23 - Adding a Ctrlarrow accelerator for moving the trackbar by just one unit part 1 Initial plunge
2018-10-24 - Adding a Ctrlarrow accelerator for moving the trackbar by just one unit part 2 Second try
2018-10-25 - How do I prevent users from using the mouse to drag the trackbar thumb to positions that arent multip (1)
2018-10-26 - How do I prevent users from using the mouse to drag the trackbar thumb to positions that arent multip
2018-10-29 - The case of the oplock deadlock poppycock
2018-10-30 - What happened to the Arial Unicode MS font
2018-10-31 - Dulce et decorum est pro patria party

The Old New Thing - 2018 11

2018-11-01 - If the prototypes of DispatchMessageA and DispatchMessageW are identical why have both
2018-11-01 - In the state of Washington you are allowed to turn left on a red light onto a one-way street
2018-11-02 - Why does the MonthCalendar control show the wrong week numbers in Romania
2018-11-05 - Sure you can implement your own cryptographic service provider for a standard algorithm but why would
2018-11-06 - Dubious security vulnerability A program that adds a user to the Administrators group in the usual wa
2018-11-07 - Using linker segments and __declspecallocate to arrange data in a specific order
2018-11-08 - Gotchas when using linker sections to arrange data part 1
2018-11-09 - Gotchas when using linker sections to arrange data part 2
2018-11-12 - The case of the System process that consumed a lot of CPU
2018-11-13 - Saying good-bye to the original Microsoft Redmond campus
2018-11-14 - Whats the point of passing a never-signaled event to MsgWaitForMultipleObjects
2018-11-15 - How do I revert a control back to its default theme
2018-11-15 - Songs with every other beat removed how to make your own
2018-11-16 - Closing the race window between creating a suspended process and putting it in a job
2018-11-16 - The Moncler 1 Pierpaolo Piccioli your high fashion for the elegant parties that take place in a walk-
2018-11-19 - How do I suppress the Did you mean to switch apps warning message from my XAML WebView control
2018-11-20 - For a brief period the kernel tried to deal with gamma rays corrupting the processor cache
2018-11-21 - Trying to allocate the same virtual address in multiple processes
2018-11-22 - How can I make a dialog box right-to-left at runtime
2018-11-23 - If activation of your gift card lasts more than four hours consult a physician immediately
2018-11-23 - The default number of threads in an IO completion port is the number of processors but is that logica
2018-11-26 - Whats up with Code Analysis rule CA2202 Do not dispose objects multiple times
2018-11-27 - Nifty trick Combining constructor with collection initializer
2018-11-28 - What happens if I mutate a string in a pinvoke
2018-11-29 - Taking advantage of the ordering guarantees of the LINQ GroupBy method
2018-11-30 - Why does ClipboardSetData put extra junk in the clipboard data And how can I get it to stop

The Old New Thing - 2018 12

2018-12-03 - Choosing error codes based on a really nice define doesnt necessarily lead to a readable message to t
2018-12-04 - The plural of Nexus is Nexūs in case you cared which you almost certainly dont
2018-12-04 - Why cant I close windows directly from the AltTab interface in Windows Vista
2018-12-05 - How can dereferencing the first character of a string take longer when the string is longer Im lookin
2018-12-06 - How is it that WriteProcessMemory succeeds in writing to read-only memory
2018-12-06 - Xformer 10 The Atari 800 emulator has gotten a huge update
2018-12-07 - The case of the buffer overflow vulnerability that was neither a buffer overflow nor a vulnerability
2018-12-10 - When a customer asks for something unsupported and they promise not to get upset when it stops workin
2018-12-11 - Why doesnt my lock screen image change after I replace the image file
2018-12-12 - How can I programmatically wait until the system has finished booting completely before doing my own
2018-12-13 - How can I programmatically wait until the taskbar has finished booting completely before I create my
2018-12-14 - The case of the mysterious LoadLibrary error message after signing in
2018-12-17 - Not getting past the title This is not the bug youre looking for
2018-12-18 - How come Explorer reports higher disk space used on my volume than my third party disk space tool
2018-12-19 - It rather involved being on the other side of this airtight hatchway Hanging the loader
2018-12-20 - In 16-bit Windows some per-process data structures were really per-data segment
2018-12-21 - On the attempts to resurrect Space Cadet Pinball
2018-12-24 - Random internal Windows terminology IDW Razzle and their forgotten partners IDS and Dazzle
2018-12-25 - How do I save the results of a file search in Explorer Not the query itself but the results
2018-12-26 - Dont forget stdpair does lexicographical ordering so you dont have to
2018-12-27 - SHOpenRegStream does not mix with smart pointers
2018-12-28 - The case of the orphaned critical section despite being managed by an RAII type
2018-12-31 - 2018 year-end link clearance

The Old New Thing - 2019 01

2019-01-01 - Why does the elevation prompt have only the wallpaper as its background
2019-01-02 - How can I prevent a WebView control from opening a browser window
2019-01-03 - Why am I getting mojibake when I try to create a shell link
2019-01-04 - A trick for keeping an object alive in a C lambda while still being able to use the this keyword to r
2019-01-07 - The GetRegionData function fails if the buffer is allocated on the stack Is it allergic to stack memo
2019-01-08 - STATUS_STACK_BUFFER_OVERRUN doesnt mean that there was a stack buffer overrun
2019-01-09 - It rather involved being on the other side of this airtight hatchway Messing with somebodys registry
2019-01-10 - Why am I getting mojibake when I try to create a window
2019-01-11 - Why do we even need to define a red zone Cant I just use my stack for anything
2019-01-14 - Why would the incremental linker insert padding between section fragments
2019-01-15 - Dont pass lambdas or other multi-line entities as parameters to macros
2019-01-16 - How do I get the effect of Cs async void in a C coroutine Part 1 Why does the obvious solution crash
2019-01-17 - How do I get the effect of Cs async void in a C coroutine Part 2 Keeping track of the lifetimes
2019-01-18 - How do I get the effect of Cs async void in a C coroutine Part 3 Simplifying the boilerplate
2019-01-21 - The Intel 80386 part 1 Introduction
2019-01-22 - The Intel 80386 part 2 Memory addressing modes
2019-01-23 - The Intel 80386 part 3 Flags and condition codes
2019-01-24 - The Intel 80386 part 4 Arithmetic
2019-01-25 - The Intel 80386 part 5 Logical operations
2019-01-28 - The Intel 80386 part 6 Data transfer instructions
2019-01-29 - The Intel 80386 part 7 Conditional instructions and control transfer
2019-01-30 - The Intel 80386 part 8 Block operations
2019-01-31 - The Intel 80386 part 9 Stack frame instructions
2019-02-01 - The Intel 80386 part 10 Atomic operations and memory alignment

The Old New Thing - 2019 02

2019-02-04 - The Intel 80386 part 11 The TEB
2019-02-05 - The Intel 80386 part 12 The stuff you dont need to know
2019-02-06 - The Intel 80386 part 13 Calling conventions
2019-02-07 - The Intel 80386 part 14 Rescuing a stack trace after the debugger gave up when it reached an FPO func
2019-02-08 - The Intel 80386 part 15 Common compiler-generated code sequences
2019-02-11 - The Intel 80386 part 16 Code walkthrough
2019-02-12 - The Intel 80386 part 17 Future developments
2019-02-13 - Accidentally creating a choke point for what was supposed to hand work off quickly to a background ta (2)
2019-02-14 - Accidentally creating a choke point for what was supposed to hand work off quickly to a background ta (1)
2019-02-15 - Accidentally creating a choke point for what was supposed to hand work off quickly to a background ta
2019-02-18 - How can I check in Win32 whether a Unicode character is any kind of digit
2019-02-19 - How do I convert all these strange Unicode digits into the ones I remember from Sesame Street
2019-02-20 - The early history of the ES_NUMBER edit control style
2019-02-21 - How do I allow negative numbers with the ES_NUMBER edit control style
2019-02-22 - How do I permit a minus sign to be entered into my edit control but only if its the first character
2019-02-22 - The 20192020 Seattle Symphony subscription season at a glance
2019-02-25 - That time the CEO of a company complained to Congress about Windows file extensions
2019-02-26 - How to draw a nifty text box in your email message
2019-02-27 - The stdmap subscript operator is a convenience but a potentially dangerous one
2019-02-28 - How should I report errors from my Windows Runtime API

The Old New Thing - 2019 03

2019-03-01 - How to compare two packed bitfields without having to unpack each field
2019-03-04 - My initial frustration trying to configure our internal VoIP phones that were integrated with instant
2019-03-05 - Alternate definitions for English words as inferred from bug reports
2019-03-05 - Predator-prey reversal Rock lobsters vs whelks on Malgas Island and Marcus Island
2019-03-06 - How do I destruct an object that keeps a reference to itself because that reference prevents the obje
2019-03-07 - What order are pages in a memory-mapped file flushed out to disk
2019-03-08 - Even if your assembly language code doesnt call any Windows APIs you still have to follow the ABI
2019-03-11 - Precision questioning The cynical description
2019-03-12 - Asking for clear written documentation that Require trusted path for credential entry is no longer re
2019-03-13 - Welcome to my new home on the Microsoft Developer Tools and Services blog site
2019-03-13 - Why is there a limit of 15 shell icon overlays
2019-03-14 - Resolving security issues sometimes involves its own degree of managing peoples egos
2019-03-15 - How can we use IsBadWritePtr to fix a buffer overflow if IsBadWritePtr is itself bad
2019-03-18 - How do I design a class so that methods must be called in a certain order
2019-03-19 - Why does my apps uninstaller disappear from the Start menu
2019-03-20 - winrtfire_and_forget was too forgetful
2019-03-21 - Expressing fire-and-forget coroutines more explicitly -or- How to turn any coroutine into fire-and-fo
2019-03-22 - Turning anything into a fire-and-forget coroutine
2019-03-22 - Vintage Computer Festival Pacific Northwest 2019
2019-03-25 - What does the N in nmake stand for
2019-03-26 - When do CoreDispatcherRunAsync and ThreadPoolRunAsync actions complete
2019-03-27 - How do I wait for the completion of the delegate I passed to CoreDispatcherRunAsync and ThreadPoolRun
2019-03-28 - CWinRT envy Bringing thread switching tasks to C UWP edition
2019-03-29 - CWinRT envy Bringing thread switching tasks to C WPF and WinForms edition

The Old New Thing - 2019 04

2019-04-01 - Oh no its inspection time again
2019-04-02 - On the bogosity of speculation Guessing the price of the original Surface
2019-04-03 - Dubious security vulnerability Code execution via LNK file
2019-04-04 - Why do we need atomic operations on the 80386 if it doesnt support symmetric multiprocessing anyway
2019-04-05 - What does it mean when my attempt to stop a Windows NT service fails with ERROR_BROKEN_PIPE
2019-04-08 - Optimizing your cafeteria meal card stockpile
2019-04-09 - When I select multiple files in the File Open dialog why does the last item come first
2019-04-10 - Even if you open a file with GUID you can still get its name or at least one of its names
2019-04-11 - How can I determine the reason why my window is closing
2019-04-12 - How can a desktop app use a Windows Runtime object that infers UI context from its thread The IInitia
2019-04-15 - Today is tax day but its also division meeting day so lets get you some forms to fill out
2019-04-16 - Microspeak Occupant compression
2019-04-17 - What does this strange value for Percent CPU mean in Performance Monitor
2019-04-18 - How arbitrary is the ArbitraryUserPointer in the TEB
2019-04-19 - On resolving the type vs member conflict in C The Color Color problem
2019-04-22 - A little program to look for files with inconsistent line endings
2019-04-23 - Why was Texas Hold Em Poker a Windows Ultimate Extra instead of a built-in game
2019-04-24 - The administrative assistant who lasted only one day A legendary prank from days of yore
2019-04-25 - How can I launch an unelevated process from my elevated process redux
2019-04-26 - How many ways are there to sort GUIDs How much time do you have
2019-04-29 - Spotting problems with destructors for C temporaries
2019-04-30 - Async-Async Reducing the chattiness of cross-thread asynchronous operations

The Old New Thing - 2019 05

2019-05-01 - Async-Async Consequences for parameters to parallel asynchronous calls
2019-05-02 - Async-Async Consequences for ordering of multiple calls in flight simultaneously
2019-05-03 - Async-Async Consequences for exceptions
2019-05-06 - Mundane git commit-tree tricks Part 1 Building a commit manually out of a tree
2019-05-07 - Mundane git commit-tree tricks Part 2 Building a merge commit manually out of a tree
2019-05-08 - Mundane git commit-tree tricks Part 3 Building a throwaway commit in order to perform a combined cher
2019-05-09 - Mundane git commit-tree tricks Part 4 Changing a squash to a merge
2019-05-10 - Mundane git commit-tree tricks Part 5 Squashing without git rebase
2019-05-13 - Mundane git commit-tree tricks Part 6 Resetting by reusing an earlier tree
2019-05-14 - Mundane git tricks Combining two files into one while preserving line history
2019-05-15 - Mundane git commit-tree tricks Part 7 Combining more than two files into one while preserving line hi
2019-05-16 - Why are Bluetooth functions exported from the infrared control panel
2019-05-17 - When would CopyFile succeed but produce a file filled with zeroes
2019-05-20 - If each threads TEB is referenced by the fs selector does that mean that the 80386 is limited to 1024
2019-05-21 - The secret signal that tells Windows Runtime events that the event recipient no longer exists
2019-05-22 - Windows Runtime delegates and object lifetime in C and other GC languages
2019-05-23 - Windows Runtime delegates and object lifetime in CCX
2019-05-24 - Windows Runtime delegates and object lifetime in CWinRT
2019-05-27 - Programming puzzle Creating a map of command handlers given only the function pointer
2019-05-28 - In times of uncertainty take your cue from the janitor
2019-05-28 - Why does Explorers New menu take so long to appear the first time I open it
2019-05-29 - Why does my CWinRT project get errors of the form unresolved external symbol consume_Something
2019-05-30 - Why does my CWinRT project get errors of the form consume_Something function that returns auto cannot
2019-05-31 - I called AdjustTokenPrivileges but I was still told that a necessary privilege was not held

The Old New Thing - 2019 06

2019-06-03 - A bug so cool that the development team was reluctant to fix it
2019-06-04 - In the file copy conflict dialog what happened to the option to copy the new file with a numeric suff
2019-06-05 - Why does my CWinRT project get errors of the form winrtimplproduced i classnon-delete cannot instanti
2019-06-06 - Why does my CWinRT project get errors of the form Unresolved external symbol void __cdecl winrt_make_
2019-06-07 - The Resource Compiler defaults to CP_ACP even in the face of subtle hints that the file is UTF-8
2019-06-10 - How can I determine in a C header file whether CCX is enabled How about CWinRT
2019-06-11 - What order do the items in the New menu appear It looks kind of random
2019-06-12 - If you can use GUIDs to reference files why not use them to remember recently used files so they can
2019-06-13 - What should you do if somebody passes a null pointer for a parameter that should never be null What i
2019-06-14 - Why does SetFocus fail without telling me why
2019-06-17 - A simple workaround for the fact that stdequal takes its predicate by value
2019-06-18 - What is WofCompressedData Does WOF mean that Windows is a dog
2019-06-19 - How do I write a function that accepts any type of standard container
2019-06-20 - Getting a value from a stdvariant that matches the type fetched from another variant
2019-06-21 - The 2019 Microsoft Giving Campaign RunWalk comes with some ground rules
2019-06-24 - Detecting whether the -opt flag was passed to cppwinrtexe Using __has_include
2019-06-25 - Why was Windows for Workgroups pejoratively nicknamed Windows for Warehouses
2019-06-26 - Why does Windows list my SSD system drive as removable
2019-06-27 - Why does the GetVersion function report the major version in the low-order byte and the minor version
2019-06-28 - 2019 mid-year link clearance

The Old New Thing - 2019 07

2019-07-01 - A program to detect mojibake that results from a UTF-8-encoded file being misinterpreted as code page
2019-07-02 - Cricket The rules for the casual viewer
2019-07-02 - Microspeak Ingestion
2019-07-03 - Why does my attempt to index a collection with the xBind markup extension keep telling me I have an i
2019-07-04 - Baseball The rules for the casual viewer
2019-07-04 - Generating good error messages from code analysis tools is harder than it looks
2019-07-05 - I set the OFN_NONETWORKBUTTON option in the OPENFILENAME structure but it has no effect on the networ
2019-07-08 - A difference between cricket and baseball that most people dont mention
2019-07-08 - Detecting in C whether a type is defined part 1 The initial plunge
2019-07-09 - Detecting in C whether a type is defined part 2 Giving it a special name
2019-07-10 - Detecting in C whether a type is defined part 3 SFINAE and incomplete types
2019-07-11 - Detecting in C whether a type is defined part 4 Predeclaring things you want to probe
2019-07-11 - Pesäpallo The rules for the casual viewer
2019-07-12 - Detecting in C whether a type is defined part 5 Augmenting the basic pattern
2019-07-15 - Cricket The practical exam for 2019
2019-07-15 - My initial confusion when encountering functions whose names begin with Co
2019-07-16 - That time Dana Carvey went off script at the Microsoft Company Meeting
2019-07-17 - Apollo 11 in real time Follow the lunar landing mission as it happened
2019-07-17 - Windows NT services are assigned a SID based on an SHA-1 hash but what about the risk of collision
2019-07-18 - After I made my DLL delay-load another DLL my DLL has started crashing in its process detach code
2019-07-18 - Brännboll The rules for the casual viewer
2019-07-19 - Providing a small amount of additional control over what happens when an asynchronous IO completes sy
2019-07-22 - What was the code name for Windows 7
2019-07-23 - How can I log users off after a period of inactivity rather than merely locking the workstation Is th
2019-07-24 - Adventures in application compatibility Calling an internal function
2019-07-25 - Why do pinned apps sometimes go to the end of the taskbar rather than going into the pinned apps sect
2019-07-26 - When it absolutely positively has to be there for the product demo overnight
2019-07-29 - Is it a good idea to let WriteProcessMemory manage the page protection for me
2019-07-30 - Why doesnt the Programs and Features control panel show Last Used On information
2019-07-31 - What about USERSEEUSERDO and GDISEEGDIDO

The Old New Thing - 2019 08

2019-08-01 - Not actually crossing the airtight hatchway Applying per-user overrides
2019-08-02 - How can I extract the color from a solid color GDI brush
2019-08-05 - The SuperH-3 part 1 Introduction
2019-08-06 - The SuperH-3 part 2 Addressing modes
2019-08-07 - How do I fill out the Canadian eTA if I have a green card with no expiration date
2019-08-07 - The SuperH-3 part 3 Status flags and miscellaneous instructions
2019-08-08 - The SuperH-3 part 4 Basic arithmetic
2019-08-09 - The SuperH-3 part 5 Multiplication
2019-08-12 - The SuperH-3 part 6 Division
2019-08-13 - The SuperH-3 part 7 Bitwise logical operations
2019-08-14 - The SuperH-3 part 8 Bit shifting
2019-08-15 - The SuperH-3 part 9 Constants
2019-08-15 - Why is there a huge spike in cruise ship width at 32 meters
2019-08-19 - The SuperH-3 part 11 Atomic operations
2019-08-20 - The SuperH-3 part 12 Calling convention and function prologuesepilogues
2019-08-21 - The SuperH-3 part 13 Misaligned data and converting between signed vs unsigned values
2019-08-22 - The SuperH-3 part 14 Patterns for function calls
2019-08-23 - The SuperH-3 part 15 Code walkthough
2019-08-26 - Custom-printing your own attendee pass to the Windows 95 launch
2019-08-27 - One byte used to cost a dollar
2019-08-28 - The sad history of Visual Studios custom __if_exists keyword
2019-08-29 - On resolving the type vs member conflict in C revisited
2019-08-29 - What to do if you cant get the stovetop in your London apartment to turn on
2019-08-30 - The sad history of Unicode printf-style format specifiers in Visual C

The Old New Thing - 2019 09

2019-09-02 - If FlushInstructionCache doesnt do anything why do you have to call it revisited
2019-09-02 - Silly Alexa trick Speaking French with a horrible American accent
2019-09-03 - Any sufficiently advanced technology is indistinguishable from a bomb
2019-09-04 - The COM_INTERFACE_ENTRY must be a COM interface but nobody actually checks
2019-09-05 - Making the COM_INTERFACE_ENTRY macro better at detecting misuse
2019-09-06 - It rather involved being on the other side of this airtight hatchway Guessing window procedure magic
2019-09-09 - PowerShell programming puzzle Convert snake_case to PascalCase in one line
2019-09-10 - Trying to wrangle a site visit to Paul Allens superyacht Octopus
2019-09-11 - The sad history of the MFC TRYCATCH macros
2019-09-12 - The Turkish liras currency code is an unexpected source of problems with computer programmers
2019-09-13 - Another way to sort GUIDs Java
2019-09-13 - My summer vacation The Eiffel Tower
2019-09-16 - How do I split a file into two while preserving git line history
2019-09-17 - How to split out pieces of a file while preserving git line history The hard way with commit-tree
2019-09-18 - How to split out pieces of a file while preserving git line history The easy way with misleading comm
2019-09-19 - How to duplicate a file while preserving git line history
2019-09-20 - Why perform all these complex git machinations when you can just tweak the command line to get what y
2019-09-23 - Stop cherry-picking start merging Part 11 Chasing the commit by taking a train
2019-09-24 - How did MS-DOS decide that two seconds was the amount of time to keep the floppy disk cache valid
2019-09-25 - How do I create a Windows Runtime method that accepts a lambda
2019-09-25 - My summer vacation The Louvre Museum
2019-09-26 - My summer vacation Versailles
2019-09-26 - Why does stdis_copy_constructible report that a vector of move-only objects is copy constructible
2019-09-27 - My summer vacation Paris public transportation
2019-09-27 - Why does the compiler refuse to let me export my class If I dont export it then the class works fine
2019-09-30 - Where did DirectX code names come from

The Old New Thing - 2019 10

2019-10-01 - Reminiscences on 525 floppy drives of the early 1980s
2019-10-02 - My summer vacation Watching a German movie on the plane and learning some language history
2019-10-02 - The default value for a XAML dependency property should be immutable
2019-10-03 - Odd things you find when you read the airplane safety information card
2019-10-03 - What if I want the default value for a XAML dependency property to be a mutable object
2019-10-04 - How do I define a UWP XAML dependency property that is a collection type
2019-10-04 - My summer vacation The Changing of the Guard at Buckingham Palace
2019-10-07 - Why does my string consist of this Korean character repeated over and over
2019-10-08 - Auctioning off the privilege of initiating the destruction of the Microsoft old campus
2019-10-09 - A window cant have two timers with the same ID so how do I assign an ID that nobody else is using
2019-10-09 - Kabaddi The rules for the casual viewer
2019-10-10 - My summer vacation London public transportation
2019-10-10 - Why are timer IDs and dialog control IDs 64-bit values on 64-bit Windows Did you really expect people
2019-10-11 - Fibers arent useful for much any more theres just one corner of it that remains useful for a reason u
2019-10-14 - A common mistake when you try to create a C class that wraps a window procedure Saving the window han
2019-10-14 - Rugby The rules for the casual viewer
2019-10-15 - How should I create controls on my dialog box that has a tab control
2019-10-16 - Why do I get a winrthresult_no_interface exception when I try to register an auto-revoke event handle
2019-10-17 - By Grabthars Hammer its a Galaxy Quest documentary
2019-10-17 - How can I make a call into an elevated service without requiring an elevation prompt
2019-10-18 - CWinRT implementation extension points abi_guard abi_enter abi_exit and final_release
2019-10-21 - When I tell the file or folder picker that I want only file system files and folders why does it stil
2019-10-22 - Whats the difference between the hotkeys F6 and AltF6
2019-10-23 - Why cant I create a Please wait dialog from a background thread to inform the user that the main UI t
2019-10-24 - If you want to terminate on an unexpected exception then dont sniff at every exception just let the p
2019-10-25 - Why does FormatMessage say that 0 terminates the message without a trailing newline Is it secretly ad
2019-10-28 - Did you hear that story about Bill Gates A PR persons view
2019-10-29 - If you suppress GDI background thread then you are expected to pump messages yourself
2019-10-30 - The program G is preventing you from shutting down
2019-10-31 - For one internal build Windows 95 contained an evil message

The Old New Thing - 2019 11

2019-11-01 - Why does my program crash if I terminate a thread that is waiting to enter a critical section It neve
2019-11-04 - I tried to adjust the time on my alarm clock I failed
2019-11-04 - What happened if you tried to access a network file bigger than 2GB from MS-DOS
2019-11-05 - The legend of Steve Ballmers rental car the most diligent employee in the world
2019-11-06 - How can I have a C function that returns different types depending on what the caller wants
2019-11-07 - How can I give a C lambda expression more than one operator
2019-11-08 - Can I force a WM_TIMER message to be generated when the timer comes due even if the message queue is
2019-11-11 - The curious pattern of pre-emptively rejecting the solution to your problem Redrawing during resizing
2019-11-12 - How can I copy or move a group of files into a new folder from Explorer
2019-11-13 - Not even getting to the airtight hatchway Planting files in world-writable directories
2019-11-14 - Can the MTA thread exit while keeping its COM class registrations alive
2019-11-15 - My summer vacation The London Eye
2019-11-15 - Why does my single-threaded program have multiple threads
2019-11-18 - I set the same ACL with the GUI and with icacls yet the results are different
2019-11-19 - The Magical Excel 97 Far East Language Build Screwdriver
2019-11-20 - The case of the UuidCreateSequential that didnt use the MAC address
2019-11-21 - Why does the Alpha AXP predict a coroutine transfer the way it does
2019-11-22 - How do I make a clone of a Windows Runtime vector in CWinRT
2019-11-22 - My summer vacation Speaking German wait what
2019-11-25 - A slightly less brief introduction to COM apartments but its still brief
2019-11-26 - Yo dawg I hear you like COM apartments so I put a COM apartment in your COM apartment so you can COM
2019-11-27 - Setting up private COM contexts to allow yourself to unload cleanly
2019-11-28 - How do you get into a context via IContextCallbackContextCallback
2019-11-29 - My summer vacation The Tower of London and Kensington Palace
2019-11-29 - Using contexts to return to a COM apartment later

The Old New Thing - 2019 12

2019-12-02 - When should I use delayed-marshaling when creating an agile reference
2019-12-03 - The automotive emergency kit is not a toy
2019-12-04 - Not actually crossing the airtight hatchway Harmless out-of-bounds read that is never disclosed
2019-12-05 - In CCX hat pointers are contextually convertible to bool but you cant always static_cast them to bool
2019-12-06 - In CWinRT what happens when I treat an IInspectable as or convert one to a bool
2019-12-09 - C coroutines Getting started with awaitable objects
2019-12-10 - C coroutines Constructible awaitable or function returning awaitable
2019-12-11 - C coroutines Framework interop
2019-12-12 - C coroutines Awaiting an IAsyncAction without preserving thread context
2019-12-13 - C coroutines Short-circuiting suspension part 1
2019-12-16 - C coroutines Short-circuiting suspension part 2
2019-12-17 - C coroutines no callable await_resume function found for type
2019-12-18 - C coroutines Defining the co_await operator
2019-12-19 - C coroutines The co_await operator and the function search algorithm
2019-12-20 - C coroutines The problem of the synchronous apartment-changing callback
2019-12-23 - C coroutines The problem of the DispatcherQueue task that runs too soon part 1
2019-12-24 - C coroutines The problem of the DispatcherQueue task that runs too soon part 2
2019-12-25 - C coroutines The problem of the DispatcherQueue task that runs too soon part 3
2019-12-26 - C coroutines The problem of the DispatcherQueue task that runs too soon part 4
2019-12-27 - Controversial extension methods CastTot classnon-delete and Ast classnon-deletett
2019-12-30 - How do I make a clone of a Windows Runtime vector in CCX
2019-12-31 - 2019 year-end link clearance The different kinds of DLL planting

The Old New Thing - 2020 01

2020-01-01 - Nasty gotcha Positioning your window beneath a topmost window makes it topmost
2020-01-02 - Why doesnt RegSetKeySecurity propagate inheritable ACEs but SetSecurityInfo does
2020-01-03 - Anybody who writes pragma pack1 may as well just wear a sign on their forehead that says I hate RISC
2020-01-06 - Tree-walking algorithms Incrementally enumerating leaf nodes of an N-ary tree
2020-01-07 - Tree-walking algorithms Incrementally performing a preorder walk of an N-ary tree
2020-01-08 - Tree-walking algorithms Incrementally performing a postorder walk of an N-ary tree
2020-01-09 - Tree-walking algorithms Incrementally performing an inorder walk of a binary tree
2020-01-10 - Over-documenting TTM_RELAYEVENT and why it results in a one-second periodic timer running as long as
2020-01-13 - Its not a security vulnerability that users can access files that they have access to even if the fil
2020-01-14 - The historical significance of the Burgermaster drive-in restaurant
2020-01-15 - Why cant I use SHSetKnownFolderPath to change the location of FOLDERID_LocalAppData
2020-01-16 - How can I handle both structured exceptions and C exceptions potentially coming from the same source
2020-01-17 - How can I turn a structured exception into a C exception without having to use EHa if I can constrain
2020-01-20 - Can shrinking a stdstring throw an exception
2020-01-21 - Microspeak Bucket bugs bucket spray bug spray and failure shift
2020-01-22 - Not even getting to the airtight hatchway Creating a process with a different parent
2020-01-23 - Windows Runtime delegates and object lifetime in CCX redux
2020-01-24 - Peeking inside CCX delegates
2020-01-27 - Is there a difference between creating a null pen with CreatePen and just using the stock null pen
2020-01-28 - How do you pronounce WinDbg
2020-01-28 - You might call it a cross but Im still going to call it an X
2020-01-29 - Crashing in COM after I call CoUninitialize how can COM be running after it is uninitalized
2020-01-30 - Why am I getting an exception from the thread pool during process shutdown
2020-01-31 - The XAML hat rule Understanding how it works and why it doesnt

The Old New Thing - 2020 02

2020-02-03 - It rather involved being on the other side of this airtight hatchway Disclosure of information you al
2020-02-04 - The legend of the library that caused Building 4 to sink
2020-02-05 - The various patterns for passing C-style arrays across the Windows Runtime ABI boundary
2020-02-06 - Why does my CWinRT project get errors of the form abiltgt is abstract see reference to producerltgt
2020-02-07 - Psychic debugging Why does my app sometimes fail to change the display settings
2020-02-10 - Survey of Windows update formats The Full update
2020-02-11 - Survey of Windows update formats The Delta update
2020-02-12 - Survey of Windows update formats The Express update
2020-02-13 - Survey of Windows update formats The Quality update which obsoletes all the others
2020-02-14 - Quality updates Consequences for rogue-patched binaries
2020-02-17 - Gotcha A threadpool periodic timer will not wait for the previous tick to complete
2020-02-18 - Microspeak Click stop
2020-02-19 - If you plan on keeping the parameter anyway then theres no need to have separate T constamp and Tampa
2020-02-20 - If youre not keeping the parameter then you still want to have separate T constamp and Tampamp overlo
2020-02-21 - Why you might need additional control over the secret event hiding inside the file object
2020-02-24 - The 20202021 Seattle Symphony subscription season at a glance
2020-02-24 - Why are there trivial functions like CopyRect and EqualRect
2020-02-25 - The custom-made computers powered by pepperoni pizza
2020-02-26 - Whats up with the CF_SYLK and CF_DIF clipboard formats
2020-02-27 - How can I configure my Windows NT service to autostart when the system gains Internet access
2020-02-27 - How to save a lot of money on cable car tickets in San Francisco
2020-02-28 - Should there be a standard C pattern for this transform_to

The Old New Thing - 2020 03

2020-03-02 - How can I detect that my window has been suppressed from the screen by the shell
2020-03-03 - The only thing preventing them from going home was two AA batteries
2020-03-04 - Meet me here on Savvyday 29 Oatmeal 94
2020-03-05 - Can I wait for a kernel event to become unsignaled
2020-03-06 - Why do people take a lock around CreateProcess calls
2020-03-09 - Why does MS-DOS put an int 20h at byte 0 of the COM file program segment
2020-03-10 - The sad but short story of the SM_AccessoriesName registry value
2020-03-11 - How can I create a type-dependent expression that is always false
2020-03-12 - Of what use is a type-dependent expression that is always false
2020-03-13 - Providing a better error message when someone tries to use stdvectorbool classnon-delete as a bufferb
2020-03-16 - The Windows Runtime IDL compiler lets you abbreviate some interface names
2020-03-17 - We called it RAID because it kills bugs dead
2020-03-18 - It rather involved being on the other side of this airtight hatchway Booting into another operating s
2020-03-19 - Further refinements to the attempt to create a type-dependent expression that is always false
2020-03-20 - The security check happens at the acquisition of the handle
2020-03-23 - Why not just share a single event across all critical section
2020-03-24 - Accessing a member of a Windows Runtime class raises an InvalidCastException throws a hresult_no_int
2020-03-25 - How can I check whether a Windows Runtime object supports a member before I try to use it
2020-03-26 - If you say that your minimum requirements are the Universal contract then you need to probe for anyth
2020-03-27 - Are Windows Runtime asynchronous operations guaranteed to complete
2020-03-30 - A sneaky way to make sure nobody assigns test failures to your team
2020-03-31 - Why am I ignoring my second monitor A case study in working from home

The Old New Thing - 2020 04

2020-04-01 - Pulling sleight of hand tricks in a security vulnerability report or maybe it was a prank
2020-04-02 - Error compiling CWinRT runtime class function does not take N arguments
2020-04-03 - An observation about what people used iPads for in the early days
2020-04-06 - Creating a non-agile delegate in CWinRT part 1 Initial plunge
2020-04-07 - Creating a non-agile delegate in CWinRT part 2 The synchronous coroutine
2020-04-08 - Creating a non-agile delegate in CWinRT part 3 The other cases and why they arent interesting
2020-04-09 - Creating a non-agile delegate in CWinRT part 4 Waiting synchronously from a background thread
2020-04-10 - Creating a non-agile delegate in CWinRT part 5 Waiting synchronously from a thread that may already b
2020-04-13 - The type-dependent type or value that is independent of the type
2020-04-14 - If one program blocks shutdown then all programs block shutdown
2020-04-15 - When I ask the GetIpAddrTable function to sort the results how are they sorted
2020-04-16 - Why cant you return an IAsyncAction from a coroutine that also does a co_await
2020-04-17 - What will be placed in the output parameter if the function fails
2020-04-20 - It rather involved being on the other side of this airtight hatchway Planting files onto a custom PAT
2020-04-21 - Virtual desktops are a window management feature not a performance feature
2020-04-22 - What kind of apartment is the private apartment I created via CLSID_ContextSwitcher
2020-04-23 - Why does the value of my XAML Slider change when I updated its range
2020-04-24 - How do I use CWinRT to implement a classic COM interface that derives from another classic COM interf
2020-04-27 - The paradoxical sense of relief when instructions to solve the problem fail at the first step
2020-04-28 - When you set Windows 10 to allow only Windows Store apps it allows them to be installed by anyone not
2020-04-29 - How can I detect that the system is no longer showing a UAC prompt
2020-04-30 - COM in-process DLL unloaded while trying to clean up from the destruction of the last object

The Old New Thing - 2020 05

2020-05-01 - Diagnosing a hang Everybody stuck in WinHttpGetProxyForUrl
2020-05-04 - Peeking inside CCX weak references
2020-05-05 - Why did the message on the Start menu change from Start to Ship It for one build
2020-05-06 - How can I prevent the user from using Snip and Sketch to take screen shots
2020-05-07 - Why does RegNotifyChangeKeyValue stop notifying once the key is deleted
2020-05-08 - The C preprocessor doesnt understand anything about C and certainly not templates
2020-05-11 - Peeking inside WRL weak references
2020-05-12 - When you start getting in-page errors on your hard drive its time to go shopping for a new hard drive
2020-05-13 - Inside stdfunction part 1 The basic idea
2020-05-14 - Inside stdfunction part 2 Storage optimization
2020-05-15 - Storing a non-capturing lambda in a generic object
2020-05-18 - Reporting on what you could do once you get to the other side of the airtight hatchway
2020-05-19 - How can I view my devices based on how they are connected to each other
2020-05-20 - The case of the SHGetFolderPathCSIDL_COMMON_DOCUMENTS that returned ERROR_PATH_NOT_FOUND
2020-05-21 - A noinline inline function What sorcery is this
2020-05-22 - On the various ways of constructing a CWinRT com_array
2020-05-25 - The SettingsIdentifier property of the various file pickers lets you give names to your pickers
2020-05-26 - When programs assume that the system will never change episode 1 redux
2020-05-27 - The SetClientGuid method of the common file and folder dialogs lets you give names to those dialogs t
2020-05-28 - Template metaprogramming trick Get the compiler to tell you what type you have
2020-05-29 - Hiding C template parameter packs in a tuple

The Old New Thing - 2020 06

2020-06-01 - How can I expand my threads stack at runtime
2020-06-02 - Using fibers to expand a threads stack at runtime part 1
2020-06-03 - Using fibers to expand a threads stack at runtime part 2
2020-06-04 - Using fibers to expand a threads stack at runtime part 3
2020-06-05 - Using fibers to expand a threads stack at runtime part 4
2020-06-08 - Comparing fibers to threads for the purpose of expanding a threads stack at runtime
2020-06-09 - Determining approximately how much stack space is available part 1
2020-06-10 - Determining approximately how much stack space is available part 2
2020-06-11 - Using fibers to expand a threads stack at runtime part 5
2020-06-12 - Using fibers to expand a threads stack at runtime part 6
2020-06-15 - Error 0x80131040 The located assemblys manifest definition does not match the assembly reference when
2020-06-16 - Excuse me has anybody seen the FOCAL interpreter
2020-06-17 - Blaming the operating system for allowing people to create files with unusual characters in their nam
2020-06-18 - Understanding warning C4265 class has virtual functions but destructor is not virtual part 1
2020-06-19 - Understanding warning C4265 class has virtual functions but destructor is not virtual part 2
2020-06-22 - Mundane stdtuple tricks Getting started
2020-06-23 - Mundane stdtuple tricks Selecting via an index sequence
2020-06-24 - Mundane stdtuple tricks Selecting via an index sequence part 2
2020-06-25 - Mundane stdtuple tricks Creating interesting index sequences
2020-06-26 - Mundane stdtuple tricks Creating more interesting index sequences
2020-06-29 - Mundane stdtuple tricks Finding a type in a tuple
2020-06-30 - 2020 mid-year link clearance

The Old New Thing - 2020 07

2020-07-01 - Cancelling a Windows Runtime asynchronous operation part 1 C
2020-07-02 - Cancelling a Windows Runtime asynchronous operation part 2 CCX with PPL explicit continuation style
2020-07-03 - Cancelling a Windows Runtime asynchronous operation part 3 CCX with PPL coroutine style
2020-07-06 - Cancelling a Windows Runtime asynchronous operation part 4 CCX with PPL coroutine style with raw IAsy
2020-07-07 - Cancelling a Windows Runtime asynchronous operation part 5 CWinRT
2020-07-08 - Cancelling a Windows Runtime asynchronous operation part 6 CWinRT-generated asynchronous operations
2020-07-09 - Cancelling a Windows Runtime asynchronous operation part 7 WRL-generated asynchronous operations
2020-07-10 - Cancelling a Windows Runtime asynchronous operation part 8 CWinRT revised
2020-07-13 - Deconstructing function pointers in a C template
2020-07-14 - Deconstructing function pointers in a C template the noexcept complication
2020-07-15 - Deconstructing function pointers in a C template vexing variadics
2020-07-16 - Deconstructing function pointers in a C template the calling convention conundrum
2020-07-17 - Deconstructing function pointers in a C template trying to address the calling convention conundrum
2020-07-20 - Deconstructing function pointers in a C template addressing the calling convention conundrum
2020-07-21 - Deconstructing function pointers in a C template returning to enable_if
2020-07-22 - How to get your CWinRT asynchronous operations to respond more quickly to cancellation part 1
2020-07-23 - How to get your CWinRT asynchronous operations to respond more quickly to cancellation part 2
2020-07-24 - CWinRT doesnt let your coroutine cheat death but it does get to say good-bye
2020-07-27 - How do I set multiple items to a Windows Runtime vector in a single call
2020-07-28 - A look back at memory models in 16-bit MS-DOS
2020-07-29 - CWinRT gotcha Setting properties incorrectly
2020-07-30 - Whats the deal with OLDNAMESLIB
2020-07-31 - What does the ALTERNATENAME linker switch do

The Old New Thing - 2020 08

2020-08-03 - Peeking inside the implementation of AnsiUpper and AnsiLower in Windows 10
2020-08-04 - How can CharUpper and CharLower guarantee that the uppercase version of a string is the same length a
2020-08-05 - What does it mean when it says that FORMAT_MESSAGE_ALLOCATE_BUFFER can be used in Store apps starting
2020-08-06 - What was so horrible about the FORMAT_MESSAGE_ALLOCATE_BUFFER flag that the Windows Store disallowed
2020-08-07 - How do I make my accelerators apply only when used in the main window and not when the user is using
2020-08-10 - How can I tell whether the user has disabled toast notifications for my app
2020-08-11 - Microspeak Placemat
2020-08-12 - Hidden constraints on the result type in Concurrency Runtime tasks
2020-08-13 - Working around the requirement that Concurrency Runtime task results must be default-constructible an
2020-08-14 - The case of Explorer calling into an unloaded DLL while trying to run down a reference to it
2020-08-17 - How WRL squeezes a weak reference and a reference count into a single integer
2020-08-18 - What are the possible Status values for Win32_ComputerSystem
2020-08-19 - On using FILE_FLAG_WRITE_THROUGH and FILE_FLAG_NO_BUFFERING for memory-mapped files
2020-08-20 - Inside the Microsoft STL The stdexception_ptr
2020-08-21 - Recognizing different types of exception objects that Windows platform libraries can throw
2020-08-24 - How can I get the number of processors in the system when there are more than 64
2020-08-25 - That time Bill Gates went through a McDonalds drive-through with no cash
2020-08-26 - Why are some system functions exported as stubs instead as forwarders
2020-08-27 - How do I convert from the CWinRT implementation type to the CWinRT projection type
2020-08-28 - How do I convert from the CWinRT projection type to the CWinRT implementation type
2020-08-31 - Is there a code page that matches ASCII and can round trip arbitrary bytes through Unicode

The Old New Thing - 2020 09

2020-09-01 - More on trivial functions like CopyRect and EqualRect
2020-09-02 - Synthesizing a when_all coroutine from pieces you already have
2020-09-03 - Rough edges in the when_all coroutine part 1 Empty parameter list
2020-09-04 - Rough edges in the when_all coroutine part 2 Overloaded comma operator
2020-09-07 - CWinRT injects additional constructors into each runtime class
2020-09-07 - This is definitely rare It happens only ten times a month
2020-09-08 - How is it possible to jam a virtual card reader
2020-09-09 - The macros for declaring COM interfaces revisited C version
2020-09-10 - The macros for declaring COM interfaces revisited CPlusPlus version
2020-09-11 - The macros for declaring COM interfaces revisited C implementation
2020-09-14 - Whats up with error C4838 a WinRT type cannot be a member of a union and how can I work around it
2020-09-15 - Embarrassing product names averted Windows Embedded POS and Windows 10 for Advanced PCs
2020-09-16 - Why did I lose the ability to co_await a stdfuture and concurrencytask
2020-09-17 - The CWinRT capture function helps you interoperate with the COM ABI world
2020-09-18 - I get a weird error about no matching function when I try to use winrtcapture
2020-09-21 - Git commit-tree parlor tricks Part 8 I just rebased my branch but now I realize that I should have me
2020-09-22 - Why does the Disk Cleanup tools Windows Update Cleanup take so long and consume so much CPU
2020-09-23 - How to get your CWinRT asynchronous operations to respond more quickly to cancellation part 3
2020-09-24 - Inside CWinRT How does CWinRT represent ABI types
2020-09-25 - Structured binding may be the new hotness but well always have stdtie
2020-09-28 - git commit-tree parlor tricks Part 9 How can I bulk-revert an entire repo to an earlier commit
2020-09-29 - How did we end up parsing Savvyday 29 Oatmeal 94 as Saturday 29 October 1994
2020-09-30 - Bonus operations for CWinRT iterators The IIteratort classnon-deletet

The Old New Thing - 2020 10

2020-10-01 - Bonus operations for CWinRT iterators The IIterablet classnon-delete and CWinRT collectionst
2020-10-02 - Little gotcha with CWinRT iterators The case of the mutated temporary
2020-10-05 - How can I bulk-revert a subdirectory of a repo to an earlier commit
2020-10-06 - How to plug in your USB Type A connector correctly the first time
2020-10-07 - Error C3867 non-standard syntax use amp to create a pointer to member What it means and how to fix it
2020-10-08 - An iterable of iterables C collections support covariance but C collections do not
2020-10-09 - A consequence of being the first to adopt a standard is that you may end up being the only one to ado
2020-10-12 - In 1979 some software company in Bellevue was hiring
2020-10-13 - Just for fun Retail demo user names in Windows 10
2020-10-14 - A brief introduction to C structured binding
2020-10-15 - How to add C structured binding support to your own types
2020-10-16 - Structured binding in CWinRT The key-value pair
2020-10-19 - Mount points volumes and physical drives oh my
2020-10-20 - How do I get from a file path to the volume that holds it
2020-10-21 - How do I get from a volume to the physical disk that holds it
2020-10-22 - Taking a shortcut You can query properties from a volume and it will forward to the physical drive
2020-10-23 - How can I tell whether a file is on an SSD
2020-10-26 - I told the Microsoft Visual C compiler not to generate AVX instructions but it did it anyway
2020-10-27 - The BurgerMaster segment may have been legendary but some legends arent true
2020-10-28 - Windows Runtime objects are represented by their default interface so choose your default interface w
2020-10-29 - Do any Windows Runtime projections cache nondefault Windows Runtime interfaces
2020-10-30 - Why am I getting an access violation trying to access a method on my CWinRT object

The Old New Thing - 2020 11

2020-11-02 - How can I ask the networking stack whether the system has obtained network connectivity
2020-11-03 - The Settings app lets me pick a custom color for my mouse pointer how do I get in on that action
2020-11-04 - What is the format of the data in the AudioBuffer memory buffer and how do I convert it to something
2020-11-05 - Whats the point of APTTYPE_CURRENT I mean of course Im current
2020-11-06 - How do I save a CWinRT array_view as a com_array
2020-11-09 - Why arent my custom backgrounds animations and colors working such as ApplicationViewTitleBar colors
2020-11-10 - The prank cursor that resulted in an employee being fired before they even started
2020-11-11 - My strategy for playing Settlers of Catan
2020-11-11 - The hidden callout The destructor
2020-11-12 - Destructing outside the lock when removing items from C standard containers
2020-11-13 - The history of the EncodePointer function for obfuscating pointers
2020-11-16 - Why does my command line redirection echo with an extra 1 Whos inserting these rogue 1s everywhere
2020-11-17 - One senior executives warning about escalating conflicts to upper management
2020-11-18 - On combining static libraries that implement CWinRT activatable objects
2020-11-19 - Other uses for the -library flag of the CWinRT compiler
2020-11-20 - How thread-safe is the Windows Runtime PropertySet object
2020-11-23 - Virtual desktops are an end-user window management feature not a programmatic one
2020-11-24 - Why does the disk optimizer put boot files at low-numbered sectors
2020-11-25 - Preliminary notes on analyzing Disk and File IO performance with ETW traces
2020-11-26 - Disk and File IO performance with ETW traces Why is System doing so much stuff
2020-11-27 - Disk and File IO performance with ETW traces Miscellany
2020-11-30 - What are the requirements for the built-in Windows 10 camera-based barcode scanner

The Old New Thing - 2020 12

2020-12-01 - Did Windows ever find solutions for programs that crashed
2020-12-02 - How can I check whether the user has disconnected from the session
2020-12-03 - Additional notes on the various patterns for passing C-style arrays across the Windows Runtime bounda
2020-12-04 - The humor hiding behind JavaScript error Semicolon expected
2020-12-07 - Why does CreateWindowEx take the extended style parameter as its first parameter instead of its last
2020-12-08 - How did Windows open a portal to another dimension when reporting a program error
2020-12-09 - Parsing ETL traces yourself part 1 wpaexporter
2020-12-10 - Parsing ETL traces yourself part 2 The EventLogReader
2020-12-11 - Parsing ETL traces yourself part 3 The TraceProcessor
2020-12-14 - How do I avoid race conditions in WaitOnAddress where the wake happens before I enter the blocking st
2020-12-15 - Lost Windows feature The Horizon
2020-12-16 - Why does PF_VIRT_FIRMWARE_ENABLED return false even when virtualization is enabled in the firmware
2020-12-17 - On the ways of finding a dispatcher for the current thread in the Windows Runtime
2020-12-18 - What should the state of a moved-from object be
2020-12-21 - How can I emulate the REG_NOTIFY_THREAD_AGNOSTIC flag on systems that dont support it part 1
2020-12-22 - How can I emulate the REG_NOTIFY_THREAD_AGNOSTIC flag on systems that dont support it part 2
2020-12-23 - How can I emulate the REG_NOTIFY_THREAD_AGNOSTIC flag on systems that dont support it part 3
2020-12-24 - How can I emulate the REG_NOTIFY_THREAD_AGNOSTIC flag on systems that dont support it part 4
2020-12-25 - How can I emulate the REG_NOTIFY_THREAD_AGNOSTIC flag on systems that dont support it part 5
2020-12-28 - Why is the HSHELL_WINDOWDESTROYED notification raised when a window is hidden even if it hasnt been d
2020-12-29 - What are these duplicate services whose names differ just by random characters at the end
2020-12-30 - Why are the C and C compilers giving me error messages about int when my code doesnt mention int
2020-12-31 - How can I create a non-circular tab order or some other type of custom ordering in my Win32 dialog

The Old New Thing - 2021 01

2021-01-01 - Id like an IUnknown I know you have many Ill take any of them
2021-01-04 - How can I write a program that monitors another window for a change in size or position
2021-01-05 - Additional helpful pseudo-handles The process token the thread token and the effective token
2021-01-06 - How can I tell whether my process is running as SYSTEM
2021-01-07 - What happens if I give contradictory values for the stack commit and stack reserve
2021-01-08 - The case of the crash during the release of an object from an unloaded DLL during apartment rundown
2021-01-11 - How did I find the old Windows binaries and compilers for the processor retrospective series
2021-01-12 - Why am I receiving SHCNE_UPDATEDIR notifications that my code never generates
2021-01-13 - The misleading MIDL error message MIDL5023 The arguments to the parameterized interface are not valid
2021-01-14 - How can I write a C class that iterates over its base classes
2021-01-15 - The perils of the accidental C conversion constructor
2021-01-18 - How can I prevent another program from showing a thumbnail preview in the taskbar
2021-01-19 - Why did I lose 3D display mode when I upgraded to the next version of Windows 10
2021-01-20 - How do I disassociate a thread from an IO completion port
2021-01-21 - What happens to the value returned from the function passed to QueueUserWorkItem
2021-01-22 - How do I protect myself against a COM call that can hang Im already running the server out-of-process
2021-01-25 - Autoscrolling on drag part 1 Basic implementation
2021-01-26 - Autoscrolling on drag part 2 Why does scrolling go faster if I wiggle the mouse
2021-01-27 - Autoscrolling on drag part 3 Dynamic autoscroll based on mouse position
2021-01-28 - Autoscrolling on drag part 4 Dynamic autoscroll based on escape velocity
2021-01-29 - Autoscrolling on drag part 5 Adding wiggle-to-scroll to escape velocity

The Old New Thing - 2021 02

2021-02-01 - Why am I being told my fire_and_forget coroutine is not returning a value
2021-02-02 - A metric that is consistently at 100 is probably broken
2021-02-03 - Why is there no useful information in the RetailInfo class
2021-02-04 - Usage patterns for winrtunbox_value_or
2021-02-05 - How do I get a foothold in the neutral apartment
2021-02-08 - The COM static store part 1 Introduction
2021-02-09 - The COM static store part 2 Race conditions in setting a singleton
2021-02-10 - The COM static store part 3 Avoiding creation of an expensive temporary when setting a singleton
2021-02-11 - The COM static store part 4 Aggregating into a single object
2021-02-12 - The COM static store part 5 Using COM weak references
2021-02-15 - The COM static store part 6 Using C weak references
2021-02-16 - Hardware engineers solve a usability problem with the PS2 connector but inadvertently create a new on
2021-02-17 - How can I return custom content for specific URLs requested by a Windows Runtime WebView
2021-02-18 - How can I prevent a Windows Runtime WebView from loading any content beyond the initial request
2021-02-19 - How can I prevent a Windows Runtime WebView from loading any content beyond the initial request and i
2021-02-22 - French is a very fragile language or at least it seems so from the stories I hear
2021-02-22 - How do I reset my PIN complexity requirements after removing a work account from Windows 10
2021-02-23 - Why does Task Manager tell me that I have a Startup program named Program
2021-02-24 - What is so special about the Application STA
2021-02-25 - What does it mean when a call fails with 0x8000001F RO_E_BLOCKED_CROSS_ASTA_CALL
2021-02-26 - What does error E_ILLEGAL_DELEGATE_ASSIGNMENT mean

The Old New Thing - 2021 03

2021-03-01 - Creating a co_await awaitable signal that can be awaited multiple times part 1
2021-03-02 - Creating a co_await awaitable signal that can be awaited multiple times part 2
2021-03-03 - Creating a co_await awaitable signal that can be awaited multiple times part 3
2021-03-04 - Creating a co_await awaitable signal that can be awaited multiple times part 4
2021-03-05 - Creating a co_await awaitable signal that can be awaited multiple times part 5
2021-03-08 - Creating a co_await awaitable signal that can be awaited multiple times part 6
2021-03-09 - Creating other types of synchronization objects that can be used with co_await part 1 The one-shot ev
2021-03-10 - Creating other types of synchronization objects that can be used with co_await part 2 The basic libra
2021-03-11 - Creating other types of synchronization objects that can be used with co_await part 3 Parallel resump
2021-03-12 - Creating other types of synchronization objects that can be used with co_await part 4 The manual-rese
2021-03-15 - Creating other types of synchronization objects that can be used with co_await part 5 The auto-reset
2021-03-16 - Creating other types of synchronization objects that can be used with co_await part 6 The semaphore
2021-03-17 - Creating other types of synchronization objects that can be used with co_await part 7 The mutex and r
2021-03-18 - Creating other types of synchronization objects that can be used with co_await part 8 The shared mute
2021-03-19 - Creating other types of synchronization objects that can be used with co_await part 9 The shared mute
2021-03-22 - Creating other types of synchronization objects that can be used with co_await part 10 Wait for an ev
2021-03-23 - Creating a task completion source for a C coroutine Producing a result
2021-03-23 - The 20212022 Seattle Symphony subscription season at a glance
2021-03-24 - Creating a task completion source for a C coroutine Producing a result with references
2021-03-24 - SEO spammers dont really understand who they spammed
2021-03-25 - Creating a task completion source for a C coroutine Producing nothing
2021-03-26 - Creating a task completion source for a C coroutine Failing to produce a result
2021-03-29 - C coroutines The mental model for coroutine promises
2021-03-30 - C coroutines Basic implementation of a promise type
2021-03-31 - C coroutines The initial and final suspend and improving our return_value method

The Old New Thing - 2021 04

2021-04-01 - C coroutines What happens if an exception occurs in my return_value
2021-04-02 - C coroutines Making the promise itself be the shared state the inspiration
2021-04-05 - C coroutines Making the promise itself be the shared state the outline
2021-04-06 - C coroutines Building a result holder for movable types
2021-04-07 - C coroutines Accepting types via return_void and return_value
2021-04-08 - C coroutines Awaiting the simple_task
2021-04-09 - C coroutines Managing the reference count of the coroutine state
2021-04-12 - C coroutines The lifetime of objects involved in the coroutine function
2021-04-13 - C coroutines Tradeoffs of making the promise be the shared state
2021-04-14 - C coroutines Making it impossible to co_await a task twice
2021-04-14 - Pivot points and financial numerology
2021-04-15 - C coroutines Getting rid of our mutex
2021-04-16 - C coroutines Getting rid of our reference count
2021-04-19 - C coroutines Allowing the awaiter to be destroyed while suspended
2021-04-20 - C coroutines Getting rid of our atomic variant discriminator
2021-04-21 - C coroutines Cold-start coroutines
2021-04-22 - C coroutines Improving cold-start coroutines which complete synchronously
2021-04-23 - C coroutines Associating multiple task types with the same promise type
2021-04-26 - C coroutines What does it mean when I declare my coroutine as noexcept
2021-04-27 - C coroutines How do I create a coroutine that terminates on an unhandled exception
2021-04-28 - C coroutines Snooping in on the coroutine body
2021-04-29 - C coroutines Adding COM context support to our awaiter
2021-04-30 - C coroutines Waiting synchronously for our coroutine to complete

The Old New Thing - 2021 05

2021-05-03 - C coroutines Converting among tasks that use the same promise
2021-05-04 - A map through the three major coroutine series
2021-05-04 - C coroutines Promise constructors
2021-05-05 - Why is coroutine_handleresume potentially-throwing
2021-05-06 - Is stdexception_ptr nothrow constructible and assignable
2021-05-07 - A subtle way your await_suspend can access the coroutine frame when it shouldnt
2021-05-10 - What are the page sizes used by Windows on various processors
2021-05-11 - Why does the mouse cursor jump a few pixels if you right-click on the Start button
2021-05-12 - Using Explorers fancy dragdrop effects in your own programs
2021-05-13 - Dragdrop effects The little drop information box
2021-05-14 - Why isnt my shell namespace extension getting every single DragOver mouse message
2021-05-17 - Why did Windows 95 keep window coordinates at multiples of 8
2021-05-18 - The blessing of the leading zero
2021-05-19 - Awaiting Windows Runtime asynchronous operations from C desktop apps
2021-05-20 - Obtaining network usage information from the Windows Runtime
2021-05-21 - Obtaining attributed network usage information from the Windows Runtime
2021-05-24 - On static methods in the Windows Runtime and CWinRT
2021-05-25 - Why are device-independent bitmaps upside down
2021-05-26 - How ownership of the Windows clipboard is tracked in Win32
2021-05-27 - How can I convert between IANA time zones and Windows registry-based time zones
2021-05-28 - On the proper care and feeding of the default_overload Windows Runtime attribute
2021-05-31 - The ARM processor Thumb-2 part 1 Introduction

The Old New Thing - 2021 06

2021-06-01 - The ARM processor Thumb-2 part 2 Differences between classic ARM and Thumb-2
2021-06-02 - The ARM processor Thumb-2 part 3 Addressing modes
2021-06-03 - The ARM processor Thumb-2 part 4 Single-instruction constants
2021-06-04 - The ARM processor Thumb-2 part 5 Arithmetic
2021-06-07 - The ARM processor Thumb-2 part 6 The lie hiding inside the CMN instruction
2021-06-08 - The ARM processor Thumb-2 part 7 Bitwise operations
2021-06-09 - The ARM processor Thumb-2 part 8 Bit shifting and bitfield access
2021-06-10 - The ARM processor Thumb-2 part 9 Sign and zero extension
2021-06-11 - The ARM processor Thumb-2 part 10 Memory access and alignment
2021-06-14 - The ARM processor Thumb-2 part 11 Atomic access and barriers
2021-06-15 - The ARM processor Thumb-2 part 12 Control transfer
2021-06-16 - The ARM processor Thumb-2 part 13 Trampolines
2021-06-17 - The ARM processor Thumb-2 part 14 Manipulating flags
2021-06-18 - The ARM processor Thumb-2 part 15 Miscellaneous instructions
2021-06-21 - The ARM processor Thumb-2 part 16 The calling convention
2021-06-22 - The ARM processor Thumb-2 part 17 Prologues and epilogues
2021-06-23 - The ARM processor Thumb-2 part 18 Other kinds of prologues and epilogues
2021-06-24 - The ARM processor Thumb-2 part 19 Common patterns
2021-06-25 - The ARM processor Thumb-2 part 20 Code walkthrough
2021-06-28 - The initializing constructor looks like an assignment but it isnt
2021-06-29 - What should the CPU usage be of a fully-loaded CPU that has been throttled
2021-06-30 - 2021 mid-year link clearance

The Old New Thing - 2021 07

2021-07-01 - Studying linker error messages to find the cause of the unresolved external Character sets
2021-07-02 - Is it okay to call MapViewOfFile on the same mapping handle simultaneously from different threads
2021-07-05 - How a basketball became a featured instrument in a Sting song
2021-07-06 - How to act like you know Chinese even though you dont episode 2
2021-07-06 - What happens if I use a squash instead of a true merge when performing one of the git tricks
2021-07-07 - On the perils of holding a lock across a coroutine suspension point part 1 The set-up
2021-07-08 - On the perils of holding a lock across a coroutine suspension point part 2 Nonrecursive mutexes
2021-07-09 - On the perils of holding a lock across a coroutine suspension point part 3 Solutions
2021-07-12 - Why do smart pointers null out the wrapped pointer before destroying it
2021-07-13 - How did copying and renaming with wildcards work in MS-DOS
2021-07-14 - How to perform more complicated search and replace-style renaming in a batch file
2021-07-15 - On proper handling of buffers in COM and RPC methods
2021-07-16 - Whats the difference between throwing a winrthresult_error and using winrtthrow_hresult
2021-07-19 - C11 braced initialization made the impossible possible and how to fix it so it stays impossible
2021-07-20 - Why does the New menu even exist for creating new empty files
2021-07-21 - I know I can change the color of the DC pen but what about the other attributes
2021-07-22 - The case of the strange NT-style path that was discovered by SearchPath
2021-07-23 - The history of passing a null pointer as the key name to RegOpenKeyEx
2021-07-26 - Diagnosing why your batch file prints a garbage character one character and nothing more
2021-07-27 - Twitter misdetected the 2011 Build conference keynote as a denial-of-service attack
2021-07-28 - How can I prevent the mouse from moving in response to touch input
2021-07-29 - On the interaction between the FILE_FLAG_NO_BUFFERING and FILE_FLAG_WRITE_THROUGH flags
2021-07-30 - Why doesnt my asynchronous read operation complete when I close the handle

The Old New Thing - 2021 08

2021-08-02 - How can I figure out which object is being hosted in an instance of dllhost
2021-08-03 - Why are all of the retail demo names male
2021-08-04 - What is a static Windows Runtime class how should I express it and when should I use it
2021-08-05 - An example of using Windows Runtime interop methods from CWinRT RequestTokenForWindowAsync
2021-08-06 - Using Windows Runtime interop methods from CWinRT Some helper functions
2021-08-09 - Why am I getting a weird error about promise_type when I try to write a coroutine
2021-08-10 - Why did the old RAID database use a signed 16-bit integer for its record count Why not unsigned or a
2021-08-11 - How can I prevent my UWP app from showing up in the Start menu
2021-08-12 - How can I find the heap that a memory block originally came from so I can free it properly
2021-08-13 - Resolving the ambiguity when your C class inherits from multiple base classes that have the same meth
2021-08-16 - What are these dire multithreading consequences that the GetFullPathName documentation is trying to w
2021-08-17 - Is it expected that custom default pinned taskbar items via LayoutModificationxml keep coming back ea
2021-08-18 - Whats with all of the references to dude in the accessibility header files
2021-08-19 - How to pwn an unattended laptop according to Humans
2021-08-19 - What is the deal with the SM_CXCURSOR system metric
2021-08-20 - How do I find out the size of the mouse cursor
2021-08-23 - CWinRT nasty gotcha winrtparamhstring constructed from stdwstring_view requires null termination
2021-08-24 - How to sneak the Windows 95 credits screen into the build without anybody noticing
2021-08-25 - The Windows Runtime PassArray is a read-only array even though it isnt declared const
2021-08-26 - In C how do I get the descriptive text for an HRESULT
2021-08-27 - How can I break down a shell item in the same way as the breadcrumb bar
2021-08-30 - The various ways of moving between CWinRT and classic COM
2021-08-31 - Notes on the Seattle Symphonys expanded concert schedule for 20212022 season
2021-08-31 - What are the consequences of increasing the per-process GDI handle limit

The Old New Thing - 2021 09

2021-09-01 - Looking at world through __stdcall-colored glasses
2021-09-02 - Adventures in application compatibility The cost of forgetting to specify a calling convention
2021-09-03 - I declared my Windows Runtime method as accepting an array by reference but it always arrives empty
2021-09-06 - Ordering asynchronous updates with coroutines part 1 Mutual exclusion
2021-09-07 - Ordering asynchronous updates with coroutines part 2 Restart with hand-off
2021-09-08 - Ordering asynchronous updates with coroutines part 3 Let them all compete but only one wins
2021-09-09 - Ordering asynchronous updates with coroutines part 4 Bowing out explicit version
2021-09-10 - Ordering asynchronous updates with coroutines part 5 Bowing out via cancellation
2021-09-13 - The CWinRT query_interface_tearoff extension point and using it for COM aggregation
2021-09-14 - Microspeak Persona
2021-09-15 - How do I set the alpha channel of a GDI bitmap to 255
2021-09-16 - The C implicit assignment operator is a non-ref-qualified member even if the base classs assignment h
2021-09-17 - Adventures in application compatibility The case of the wild instruction pointer that upon closer ins
2021-09-20 - What does this mean The caller specified wait timed out before the operation completed because a host
2021-09-21 - The CertUtil program will decode Windows error codes and in a variety of formats
2021-09-22 - Converting between UTF-8 strings and UTF-16 strings in CWinRT
2021-09-23 - Why is there trailing garbage when I try to decode the bytes of a HttpContent object
2021-09-24 - The case of the UWP application that crashes at launch on Windows 10X
2021-09-27 - Why am I getting an unresolved external from CWinRT if it is a header-only C library
2021-09-28 - The subtleties of CreateStreamOnHGlobal part 1 Introduction and basic usage
2021-09-29 - The subtleties of CreateStreamOnHGlobal part 2 Suppressing the deletion of an unknown HGLOBAL
2021-09-30 - The subtleties of CreateStreamOnHGlobal part 3 Suppressing the deletion of a shared HGLOBAL

The Old New Thing - 2021 10

2021-10-01 - The subtleties of CreateStreamOnHGlobal part 4 Non-movable memory
2021-10-04 - Some lesser-known powers of stdoptional
2021-10-05 - Not from inside the Redmond Reality Distortion Field Microsoft Streets and Trips support for ferries
2021-10-06 - Why is the main function always at address 0x00401000 in a simple program
2021-10-07 - Debugging coroutine handles The Microsoft Visual C compiler clang and gcc
2021-10-08 - What can I do about timer build-up when waiting for COM outbound calls to complete
2021-10-11 - Is there a way that my macro can detect that its running in a C coroutine
2021-10-12 - The happy hand A puzzle about odd names in Azure DevOps
2021-10-13 - Local variables are different from parameters in C coroutines
2021-10-14 - Why does GetModuleInfo fail to produce an entry point for executables
2021-10-15 - What does the SizeOfImage mean in the MODULEINFO structure
2021-10-18 - How can I get the screen reader to read out an error message that I displayed inline on a page
2021-10-19 - That time we had a network outage due to unexpected hunter activity
2021-10-20 - My code crashed when I asked WIL to convert an exception to an HRESULT did I throw an improper except
2021-10-21 - Why isnt MapDialogRect mapping dialog rectangles
2021-10-22 - Renaming a file is a multi-step process only one of which is changing the name of the file
2021-10-25 - A very brief introduction to patterns for implementing a COM object that hands out references to itse
2021-10-26 - Giving a single object multiple COM identities part 1
2021-10-27 - Giving a single object multiple COM identities part 2
2021-10-28 - Giving a single object multiple COM identities part 3
2021-10-29 - Giving a single object multiple COM identities part 4

The Old New Thing - 2021 11

2021-11-01 - Why do all this coroutine stuff if you can just use stdfuture
2021-11-02 - The focus rectangle says Im not orange Im just drawn that way
2021-11-03 - A capturing lambda can be a coroutine but you have to save your captures while you still can
2021-11-04 - How can I prevent myself from accessing a lambda captured variable or a parameter after Im done with
2021-11-05 - The case of the CWinRT cached factories that pointed into freed memory
2021-11-08 - Restoring support for pre-standardization coroutine free awaiters for even older code bases
2021-11-09 - If your domain name parser cant handle internationalized domain names then maybe thats your parsers p
2021-11-10 - How am I supposed to create children of the Win32 tab control
2021-11-11 - The inside story of the outside investigation of SoftRAM 95
2021-11-12 - Another way of looking at C reverse iterators
2021-11-15 - A practical use for GetHGlobalFromStream when sharing was never your intention
2021-11-16 - Microspeak Righteous
2021-11-17 - The mental model for StartThreadpoolIo
2021-11-18 - What does the CompileAsWinRT Visual Studio project option mean
2021-11-19 - Why is my CCX ref class forbidden from having public methods that are templates or mention say stdvec
2021-11-22 - A reminder about the correct way of accessing and manipulating the position of icons on the desktop
2021-11-23 - Every business process secretly wants to fail
2021-11-24 - Appending additional payload to a PROPSHEETPAGE structure
2021-11-25 - How do I pass an array of variable-sized PROPSHEETPAGE structures to PropertySheet
2021-11-26 - I called AdjustTokenPrivileges but I was still told that a necessary privilege was not held redux
2021-11-26 - The two products may be identical but they are not the same
2021-11-29 - How did Windows 31s virtual machine manager get the information to show in the text-mode AltTab switc
2021-11-30 - How can my CWinRT component pass a stdvector back to the caller

The Old New Thing - 2021 12

2021-12-01 - How can I transfer ownership of a C-style array to a Windows Runtime component
2021-12-02 - How do I receive ownership of a C-style array in a Windows Runtime component
2021-12-03 - How can I produce a C-style array from a Windows Runtime asynchronous operation
2021-12-06 - Compiler error message metaprogramming Helping to find the conflicting macro definition
2021-12-07 - It rather involved being on the other side of this airtight hatchway Producing malicious data in a ke
2021-12-07 - What happens when a hot air balloon lands in your yard
2021-12-08 - Using CRTP to your advantage Simplifying overloaded Windows Runtime method projections in CWinRT
2021-12-09 - If youre going to configure a header file you have to do it before you include the header file
2021-12-10 - Its okay to be contrary but you need to be consistently contrary Going against the ambient character
2021-12-13 - Dubious security vulnerability Accessing information across accounts after changing email address
2021-12-14 - Embarrassing product names created Windows CE
2021-12-15 - What does Do not launch but debug my code when it launches mean
2021-12-16 - Why does the precise point at which I get a stack overflow exception change from run to run
2021-12-17 - Why is the stack overflow exception raised before the stack has overflowed
2021-12-20 - Why do I have to add one when setting a class background brush to a system color
2021-12-21 - You thought Windows drivers from 2006 were old waitll you see the Intel drivers from 1968
2021-12-22 - How do I programmatically reposition monitors in a multiple-monitor system
2021-12-23 - Its easy to get data into the GPU but harder to get it out
2021-12-24 - The Thanksgiving to Christmas sales nationwide of the VIS could be tabulated in an unsigned char
2021-12-27 - How do I add custom controls to the common file open or file save dialogs
2021-12-28 - A rejected attempt to inject pseudo-physics into Windows 8 toast notifications
2021-12-29 - You cant copy code with memcpy code is more complicated than that
2021-12-30 - The CCX String is not an object even though it wears a hat
2021-12-31 - 2021 year-end link clearance
2021-12-31 - The case of the programs that were launched with impossible command line options

The Old New Thing - 2022 01

2022-01-03 - Speculation on the design decisions that led to the common ABI for C coroutines
2022-01-04 - My Excel spreadsheet doesnt scroll even though I can use the arrows to move around
2022-01-05 - How do I prevent folder verbs intended for file system directories from showing up in my shell extens
2022-01-06 - Filling in some gaps in the story of Space Cadet Pinball on 64-bit Windows
2022-01-07 - How do I upgrade a 32-bit tick count to a 64-bit one
2022-01-10 - How can I detect that a thread pool work item is taking too long
2022-01-11 - Jumping into the middle of an instruction is not as strange as it sounds
2022-01-12 - Standing on the shoulders of giants Let the compiler tell you what the ABI is
2022-01-13 - The oracle always tells the truth even when it is wrong COM method calls with a user-defined type as
2022-01-14 - Resolving confusion over how to return from a C coroutine
2022-01-17 - C and C type aliases and their consequences
2022-01-18 - How to write like Raymond The typing-saver
2022-01-19 - The error code you get might not be the one you want
2022-01-20 - The mystery of the crash that seems to be on a stdmove operation
2022-01-21 - Fixing the crash that seems to be on a stdmove operation
2022-01-24 - The MainWindowHandle property is just a guess based on heuristics
2022-01-25 - I deleted a file from Explorer but it came back when I refreshed and I get Access Denied if I try to
2022-01-26 - What are these weird internal Visual C runtime functions named NLG
2022-01-27 - How can I recognize file systems that dont support 64-bit unique file identifiers
2022-01-28 - How can I recognize whether two handles refer to the same underlying file
2022-01-31 - Why does the Windows debugger engine show a bunch of hex digits after one of the DLL names

The Old New Thing - 2022 02

2022-02-01 - How do I customize the color of the Windows blue screen
2022-02-02 - Gotcha CWinRT weak_refget doesnt get the weak reference it gets the strong reference
2022-02-03 - A closer look at the stack guard page
2022-02-04 - The case of the stack overflow exception when the stack is nowhere near overflowing
2022-02-07 - On finding the average of two unsigned integers without overflow
2022-02-08 - The cats sitting on a fence in early builds of Windows 8
2022-02-09 - How can I find out which processor architectures are supported via emulation by the current system
2022-02-10 - Notes on COM aggregation Obtaining a pointer to your aggregated partner without introducing a referen
2022-02-14 - COM asynchronous interfaces part 1 The basic pattern
2022-02-15 - COM asynchronous interfaces part 2 Abandoning the operation
2022-02-16 - COM asynchronous interfaces part 3 Abandoning the operation after a timeout
2022-02-17 - COM asynchronous interfaces part 4 Doing work while waiting for the asynchronous operation
2022-02-18 - COM asynchronous interfaces part 5 The unreliable server
2022-02-21 - COM asynchronous interfaces part 6 Learning about completion without polling
2022-02-22 - COM asynchronous interfaces part 7 Being called directly when the operation completes
2022-02-23 - COM asynchronous interfaces part 8 Asynchronous release the problems
2022-02-24 - COM asynchronous interfaces part 9 Asynchronous release assembling a solution
2022-02-25 - How can I monitor changes to the reference count of a CWinRT object
2022-02-28 - Zero-cost exceptions arent actually zero cost

The Old New Thing - 2022 03

2022-03-01 - How does Windows decide what instructions to provide for unlocking the PC
2022-03-02 - How can I detect whether the system has a keyboard attached On the GetRawInputDeviceList function
2022-03-03 - Filtering out fake keyboards from the GetRawInputDeviceList function
2022-03-04 - If the slim readerwriter lock SRWLOCK doesnt remember who the shared lock owner is does that mean its
2022-03-07 - Optimizing code to darken a bitmap part 1
2022-03-08 - Optimizing code to darken a bitmap part 2
2022-03-09 - Optimizing code to darken a bitmap part 3
2022-03-10 - Optimizing code to darken a bitmap part 4
2022-03-11 - Optimizing code to darken a bitmap part 5
2022-03-14 - How expensive is PssCaptureSnapshot How fast is it How much memory does it consume
2022-03-15 - Reducing chattiness by querying for multiple interfaces at once part 1
2022-03-16 - Reducing chattiness by querying for multiple interfaces at once part 2
2022-03-17 - Making our multiple-interface query more C-like part 1
2022-03-18 - Making our multiple-interface query more C-like part 2
2022-03-21 - Injected class names The C feature you didnt even realize that you were using
2022-03-22 - A hypothetical magical musical power The one-piece wonder
2022-03-22 - How do I un-ignore an Outlook email thread and how does it work
2022-03-23 - Why does CWinRT say that first_interface is not a member of winrtimplinterface_listltgt
2022-03-24 - Behind CWinRT How does CWinRT decide which interfaces are implemented
2022-03-25 - Behind CWinRT How does CWinRT get the list of implemented interfaces
2022-03-28 - Why is every other line of my file mysteriously changed to nonsense Chinese characters
2022-03-29 - How to become a Senior Detective according to Murderville
2022-03-29 - Why are there separate Program Files and Program Files x86 directories
2022-03-30 - Why am I getting the error message This is only for weak ref support when I try to create a CWinRT we
2022-03-31 - Should I translate my window class names

The Old New Thing - 2022 04

2022-04-01 - The stdinvoke function does more than invoke functions
2022-04-04 - How are Windows Runtime GUIDs represented in JavaScript
2022-04-05 - Adventures in application compatibility The case of the RAII type that failed to run its destructor
2022-04-06 - All Windows threadpool waits can now be handled by a single thread
2022-04-07 - If I am getting a DllNotFoundException from Windows 10 N how do I get the missing DLLs
2022-04-08 - Please repeat yourself The noexceptnoexcept idiom
2022-04-11 - Now that computers have more than 4MB of memory can we get seconds on the taskbar
2022-04-12 - Notes on BitLocker and the TPM and the pre-boot password or PIN
2022-04-13 - A survey of how implementations of Windows Runtime events deal with errors
2022-04-14 - How can I tell the WIL RETURN_IF_FAILED macro that some errors are ignorable
2022-04-15 - How can I co_await on a Windows Runtime async action or operation with a timeout
2022-04-18 - The x86 architecture is the weirdo part 2
2022-04-19 - The Applesoft Compiler TASC We have the source code in a sense
2022-04-20 - Class template argument deduction may be the new hotness but well always have maker functions
2022-04-21 - How do I access and customize the IInspectable methods of a Windows Runtime class written in CWinRT
2022-04-22 - Trying to create a factory that remembers the parameters to pass to another method
2022-04-25 - How can I force a WriteFile or ReadFile to complete synchronously or hang in order to test something
2022-04-26 - Be careful with that thing its a confidential coffee maker
2022-04-27 - How do I decode a pragma detect_mismatch error
2022-04-28 - Whats up with stdpiecewise_construct and stdforward_as_tuple

The Old New Thing - 2022 05

2022-05-02 - What are these SIDs of the form S-1-15-2-xxx
2022-05-03 - What are these SIDs of the form S-1-15-3-xxx
2022-05-04 - Producing an empty Windows Runtime type in CWinRT
2022-05-05 - On awaiting a task with a timeout in C
2022-05-06 - On awaiting a task with a timeout in CWinRT
2022-05-09 - Why does my overridable Windows Runtime method turn into a protected method and how can I work around
2022-05-10 - A brief summary of the various versions of the Security Descriptor Definition Language SDDL
2022-05-11 - On ways of finding out when a CWinRT IAsyncAction has run to completion
2022-05-12 - Should I pay attention to the warning that Im stdmoveing from a trivial type Part 1
2022-05-13 - Should I pay attention to the warning that Im stdmoveing from a trivial type Part 2
2022-05-16 - How can I synthesize a C20 three-way comparison from two-way comparisons
2022-05-17 - Writing a sort comparison function part 1 basics
2022-05-18 - Writing a sort comparison function part 2 avoid unnecessary expense
2022-05-19 - Writing a sort comparison function part 3 spaceships
2022-05-20 - Writing a sort comparison function part 4 descending sort
2022-05-23 - How does Windows decide whether a newly-created window should use LTR or RTL layout
2022-05-25 - How can I get my FileSavePicker to open in the same folder that was picked by the FileOpenPicker or F
2022-05-26 - Rescuing a stack trace the lazy way on x86-64 aka amd64 after the debugger gave up
2022-05-27 - Why do rescued stack traces often have instability at the start
2022-05-30 - On passing iterables of iterables in the Windows Runtime
2022-05-31 - The activeCodePage manifest element can be used for more than just setting UTF-8 as the active code p

The Old New Thing - 2022 06

2022-06-01 - The case of the COM reference that suddenly went bad in the middle of a coroutine
2022-06-02 - Converting between Windows FILETIME and Unix time_t without having to type the magic number 116444736
2022-06-03 - Assessing a read-after free for security implications The string comparison
2022-06-06 - An opinionated comparison of C frameworks for consuming and implementing Windows Runtime types
2022-06-07 - How to write like Raymond Contacting another team for the first time
2022-06-08 - Is there a maximum size for Windows clipboard data Because Im getting null for something I know shoul
2022-06-09 - How can I wait more than 30 seconds for a delay-rendered clipboard format to become rendered
2022-06-10 - How do I retrieve an extremely large range of cells from Excel if the clipboard functions all time ou
2022-06-13 - Adventures in application compatibility The case of the PC-relative indirect jump that reads from now
2022-06-14 - What are the various usage patterns for manually-marshaled interfaces
2022-06-15 - An initial look at the mechanics of how COM marshaling is performed
2022-06-16 - The skeleton marshaler that does default marshaling
2022-06-17 - Writing a marshal-by-value marshaler part 1
2022-06-20 - On the importance of managing the stream pointer when manipulating marshal data
2022-06-21 - Writing a compound marshaler
2022-06-22 - Understanding the marshaling flags The free-threaded marshaler
2022-06-23 - Writing a marshal-by-value marshaler part 2
2022-06-24 - The case of the mysterious over-release from deep inside the marshaling infrastructure
2022-06-27 - Starting on the other side of the airtight hatchway Attacking the batch file parser
2022-06-28 - Microspeak Inside baseball
2022-06-29 - How can I parse URL query string in the Windows Runtime
2022-06-30 - 2022 mid-year link clearance
2022-06-30 - How can I build a URL query string in the Windows Runtime

The Old New Thing - 2022 07

2022-07-01 - Under what conditions can I modify the memory that I received in the form a STGMEDIUM
2022-07-04 - The case of the constructor that was being ignored
2022-07-05 - How to write like Raymond Intentional typographical errors part 2
2022-07-06 - The empty Windows Runtime string is not just a pretty face
2022-07-07 - How can I write a coroutine that produces a result but keeps on running
2022-07-08 - Windows Runtime observable collections dont mix well with multithreading
2022-07-11 - How can I provide a Windows Runtime ValueSet or PropertySet while non-intrusively monitoring changes
2022-07-12 - Processing a ValueSet or PropertySet even in the face of possible mutation part 1
2022-07-13 - Processing a ValueSet or PropertySet even in the face of possible mutation part 2
2022-07-14 - Processing a ValueSet or PropertySet even in the face of possible mutation part 3
2022-07-15 - Processing a ValueSet or PropertySet even in the face of possible mutation part 4
2022-07-18 - C coroutine gotcha Falling off the end of a function-level catch
2022-07-19 - Microspeak The one-pager
2022-07-20 - My class derives from stdenable_shared_from_this but shared_from_this doesnt work
2022-07-21 - Making sure that people use make_unique and make_shared to make your object
2022-07-22 - Using CWinRTs final_release to control which thread destructs your object
2022-07-25 - Yes the 8086 wanted to be mechanically translatable from the 8080 but why not add the ability to indi
2022-07-26 - The AArch64 processor aka arm64 part 1 Introduction
2022-07-27 - The AArch64 processor aka arm64 part 2 Extended register operations
2022-07-28 - The AArch64 processor aka arm64 part 3 Addressing modes
2022-07-29 - The AArch64 processor aka arm64 part 4 Addition and subtraction

The Old New Thing - 2022 08

2022-08-01 - The AArch64 processor aka arm64 part 5 Multiplication and division
2022-08-02 - The AArch64 processor aka arm64 part 6 Bitwise operations
2022-08-03 - The AArch64 processor aka arm64 part 7 Bitfield manipulation
2022-08-04 - The AArch64 processor aka arm64 part 8 Bit shifting and rotation
2022-08-05 - The AArch64 processor aka arm64 part 9 Sign and zero extension
2022-08-08 - The AArch64 processor aka arm64 part 10 Loading constants
2022-08-09 - The AArch64 processor aka arm64 part 11 Loading addresses
2022-08-10 - The AArch64 processor aka arm64 part 12 Memory access and alignment
2022-08-11 - The AArch64 processor aka arm64 part 13 Atomic access
2022-08-12 - The AArch64 processor aka arm64 part 14 Barriers
2022-08-15 - The AArch64 processor aka arm64 part 15 Control transfer
2022-08-16 - Janet Jackson had the power to crash laptop computers
2022-08-17 - The AArch64 processor aka arm64 part 16 Conditional execution
2022-08-19 - The AArch64 processor aka arm64 part 18 Return address protection
2022-08-22 - The AArch64 processor aka arm64 part 19 Miscellaneous instructions
2022-08-23 - The AArch64 processor aka arm64 part 20 The classic calling convention
2022-08-24 - The AArch64 processor aka arm64 part 21 Classic function prologues and epilogues
2022-08-25 - The AArch64 processor aka arm64 part 22 Other kinds of classic prologues and epilogues
2022-08-29 - The AArch64 processor aka arm64 part 24 Code walkthrough
2022-08-30 - The AArch64 processor aka arm64 part 25 The ARM64EC ABI
2022-08-31 - The x86-64 processor aka amd64 x64 Whirlwind tour

The Old New Thing - 2022 09

2022-09-01 - Why am I getting a null pointer crash when trying to call a method on my CWinRT object
2022-09-02 - The case of the recursively-acquired non-recursive lock and how to avoid the unintentional reentrancy
2022-09-05 - Is there any meaningful way to compare two Time Travel Debugging positions
2022-09-06 - Commonly-supported Windows shortcuts for pasting without formatting
2022-09-07 - It rather involved being on the other side of this airtight hatchway Replacing a service binary
2022-09-08 - How do I consume raw COM interfaces from a Windows Runtime metadata file
2022-09-09 - The case of the APC that never arrives
2022-09-12 - Serializing asynchronous operations in C
2022-09-13 - Creating a manual-start CWinRT coroutine from an eager-start one part 1
2022-09-14 - Creating a lazy-start CWinRT coroutine from an eager-start one part 2
2022-09-15 - Serializing asynchronous operations in CWinRT
2022-09-16 - Serializing asynchronous operations in CWinRT gotchas and final assembly
2022-09-19 - Why load fs0x18 into a register and then dereference that instead of just going for fsn directly
2022-09-20 - Janet Jackson had the power to crash laptop computers follow-up
2022-09-21 - How can I trigger a recalc of the mouse cursor after I changed some of my internal application state
2022-09-22 - How can I get WRL to link my object into its activation factory
2022-09-23 - Why am I receiving SHCNE_UPDATEDIR notifications that my code never generates
2022-09-26 - What does the C error A pointer to a bound function may only be used to call the function mean
2022-09-27 - Microspeak Break glass
2022-09-28 - Why does COM express GUIDs in a mix of big-endian and little-endian Why cant it just pick a side and
2022-09-29 - I did that merge-as-cherry-pick thing but my change still didnt merge correctly
2022-09-30 - Debugging coroutine handles Looking for the source of a one-byte memory corruption

The Old New Thing - 2022 10

2022-10-03 - Feel free to stop using IMultiLanguage2DetectInputCodepage
2022-10-04 - Starting on the other side of this airtight hatchway Overwhelming the system
2022-10-05 - The gotcha of the C temporaries that dont destruct as eagerly as you thought
2022-10-06 - The Import Address Table is now write-protected and what that means for rogue patching
2022-10-07 - How can I perform a CopyFile but also flush the file buffers before the destination handle is closed
2022-10-10 - On the overloading of the address-of operator amp in smart pointer classes
2022-10-11 - Clicking past the warning that you are about to cross the airtight hatchway Vulnerable file type that
2022-10-12 - One possible reason why your program crashes when submitted to the Microsoft Store but it runs fine o
2022-10-13 - How can I check whether the users network connection is roaming or metered
2022-10-14 - The case of the memory corruption from a coroutine that already finished
2022-10-17 - How can I check the integrity level of my process
2022-10-18 - Why is there a passwordstxt file on my system thats filled with somebody elses passwords
2022-10-19 - Why is there a make_unique Why not just overload the unique_ptr constructor
2022-10-20 - Is it true that raising a structured exception from a structured exception handler terminates the pro
2022-10-21 - What happens if my C exception handler itself raises an exception
2022-10-24 - Why cant I programmatically inspect the check boxes in the Security property sheet any more
2022-10-25 - Why are many Windows user interface elements positioned at multiples of 4 or 8 pixels
2022-10-26 - What can or should I do with the cursor handle returned by SetCursor
2022-10-27 - Why am I seeing two WRITE requests at the same offset from a single call to WriteFile
2022-10-28 - Setting properties in CWinRT is done by a function call but you need to call the function the right w
2022-10-31 - How can I test my geolocation code on a system without a GPS

The Old New Thing - 2022 11

2022-11-01 - What is a Select Administrator Is that some special elite kind of administrator
2022-11-02 - A history of the fd_set FD_SETSIZE and how it relates to WinSock
2022-11-03 - How does the dialog manager calculate the average width of a character
2022-11-04 - Why am I getting a RPC_E_WRONG_THREAD exception when Im on the right thread
2022-11-07 - In the debugger how can I get from a projected type back to the CWinRT implementation
2022-11-08 - Why is there a system sound called Asterisk What sound does an Asterisk make anyway
2022-11-09 - Why dont Windows functions begin with a pointless MOV EDIEDI instruction on x86-64
2022-11-10 - On the dangers of giving a product feature the name new
2022-11-11 - If I issue multiple overlapped IO requests against the same region of a file will they execute in the
2022-11-14 - C constexpr parlor tricks How can I obtain the length of a string at compile time
2022-11-15 - How does Windows decide whether your computer has limited or full Internet access
2022-11-15 - Its important to get the most difficult part out of the way by putting it in the title
2022-11-16 - Why wont CWinRT let me co_await a CoreDispatcher or DispatcherQueue
2022-11-17 - How soon is too soon to report progress from a CWinRT coroutine that implements a Windows Runtime asy
2022-11-18 - On Windows Runtime asynchronous operations with critical progress reports
2022-11-21 - What kind of caller diagnostic information can I get from exceptions thrown by CWinRT and wil
2022-11-22 - Microspeak Breaking into jail
2022-11-23 - Sometimes perfect forwarding can be too perfect Lazy conversion is lazy
2022-11-24 - How does JavaScript represent output parameters in the Windows Runtime
2022-11-25 - How do I pass a raw pointer to a Windows Runtime function
2022-11-28 - The case of the application that used thread local storage it never allocated
2022-11-28 - What kind of caller diagnostic information can I get from exceptions thrown by CWinRT and wil C20 edi
2022-11-29 - Dubious security vulnerability Reading the files in the WindowsApps folder
2022-11-30 - I used FILE_FLAG_SEQUENTIAL_SCAN but it didnt seem to speed up my sequential scanning

The Old New Thing - 2022 12

2022-12-01 - Not even trying to cross an airtight hatchway Calling a function in your own process by synthesizing
2022-12-02 - C template parlor tricks Using a type before it is defined
2022-12-05 - Instead of a C template parlor trick why not just add support based on whether the header file has al
2022-12-06 - Trouble connecting to Web sites and services because of certificate errors Check if youre being held
2022-12-07 - Reminder If you intend to use a CWinRT namespace you must include that namespaces header file
2022-12-08 - If youre going to wrap a Windows Runtime event you may as well let the wrapped event source manage th
2022-12-09 - How can I do the opposite of compare_exchange and exchange if the value is different
2022-12-12 - What does it mean when the compiler tells me that promise_type is not a member of coroutine_traitsvoi
2022-12-13 - Thank you for conference announcement but it would help if you told me what your conference was about
2022-12-14 - In CWinRT how do I create or consume an IReferencet classnon-delete that wraps a particular valuet
2022-12-15 - Inside CWinRT IReferencet classnon-deletet
2022-12-16 - Why doesnt Windows use the 64-bit virtual address space below 0x000000007ffe0000
2022-12-19 - On the large number of ways of expressing Microsoft Visual C compiler versions
2022-12-20 - Why doesnt the BitLocker wizard let me save the BitLocker key on an encrypted drive
2022-12-21 - Running some UI code on a timer at a higher priority than your usual timer messages or without coales
2022-12-22 - Is there a fixed virtual address that the system promises never to use for anything so I can use it
2022-12-23 - The case of the recursively hung WM_DRAWCLIPBOARD message
2022-12-26 - The worst-selling Microsoft software product of all time OS2 for the Mach 20
2022-12-27 - Why cant I print when I boot Windows into audit mode
2022-12-28 - After importing a TLB how do I convert from one type of _com_ptr_t to another
2022-12-29 - How can I detect programmatically whether Windows is an N or KN version
2022-12-30 - 2022 year-end link clearance
2022-12-30 - When I create a waitable timer with a callback do I have to wait alertably on that specific timer bef

The Old New Thing - 2023 01

2023-01-02 - Opinionated notes on the WindowsDataJson namespace
2023-01-03 - It rather involved being on the other side of this airtight hatchway Gaining code execution from a Tr
2023-01-04 - Using perfect and imperfect forwarding to simplify C wrapper classes
2023-01-05 - How can I force a user to have a specific SID prefix so that they go into a particular group
2023-01-06 - Dubious security vulnerability Granting access to SIDs that dont exist yet
2023-01-09 - On leading underscores and names reserved by the C and CPlusPlus languages
2023-01-10 - It rather involved being on the other side of this airtight hatchway Administrator attacking a domain
2023-01-11 - What does it mean when I get a mismatch from MSVC for _COROUTINE_ABI
2023-01-12 - How should I interpret the various values of NLM_CONNECTIVITY
2023-01-13 - Adventures in application compatibility Querying for an internal interface
2023-01-16 - Making C primitive types meaningfully movable when they have sentinel values
2023-01-17 - A trio of dubious denial-of-service security vulnerability reports which are just style points piled
2023-01-18 - It rather involved being on the other side of this airtight hatchway Attacking a user by modifying th
2023-01-19 - Windows Runtime asynchronous operations can fail in two different ways so make sure you get them both
2023-01-20 - How can I call a method on a derived class from a base class say to get a strong reference to the con
2023-01-23 - Inside CWinRT Coroutine completions The oversimplified version
2023-01-24 - Inside CWinRT Apartment switching The basic idea
2023-01-25 - Inside CWinRT Apartment switching Unblocking the outgoing thread
2023-01-26 - Inside CWinRT Apartment switching Bypassing the context callback
2023-01-27 - Inside CWinRT Apartment switching Unwinding the stack
2023-01-30 - Inside CWinRT Apartment switching COM without COM
2023-01-31 - Inside CWinRT Apartment switching Error reporting

The Old New Thing - 2023 02

2023-02-01 - Inside CWinRT Coroutine completion handlers Disconnection
2023-02-02 - Hyperlinking to Hutchison Whampoa Limited is still forbidden
2023-02-02 - Inside CWinRT Coroutine completions Avoiding reentrant completion
2023-02-03 - Inside CWinRT Coroutine completions Cancellation propagation
2023-02-06 - It rather involved being on the other side of this airtight hatchway Reading the users saved password
2023-02-07 - The frustration of finding a suitable time to hold a meeting when the participants are evenly spaced
2023-02-08 - How can I get the original target of a shortcut without applying any 32-bit adjustments
2023-02-09 - A more direct and mistake-free way of creating a process in a job object
2023-02-10 - The case of the RPC_E_DISCONNECTED error thrown from await_resume
2023-02-13 - Adventures in application compatibility The case of the display control panel crash on exit
2023-02-14 - Why are the Windows chassis hardware button hotkeys so strange
2023-02-15 - What are the potentially-erroneous results if you dont pass NULL as the lpNumberOfBytesRead when issu
2023-02-16 - What does it mean when my cross-thread COM call fails with RPC_E_SYS_CALL_FAILED
2023-02-17 - What happens if you co_await a stdfuture and why is it a bad idea
2023-02-20 - The case of the mysterious out of bounds error from CreateUri and memmove
2023-02-21 - Microspeak Light reading ironic
2023-02-22 - Avoiding the redundancy of adding the object files to both the primary project and its unit test
2023-02-23 - Why am I getting an unhandled exception from my C function that catches all exceptions
2023-02-24 - Understanding a mysterious RPC_E_WRONGTHREAD exception when were on the right thread
2023-02-27 - The unintentionally-expanding scope of the SEM_NOGPFAULTERRORBOX flag
2023-02-28 - Once you give away the farm you cant take it back Recovering from a rogue administrator

Contents

The Old New Thing - 2003 07
The Old New Thing - 2003 08
The Old New Thing - 2003 09
The Old New Thing - 2003 10
The Old New Thing - 2003 11
The Old New Thing - 2003 12
The Old New Thing - 2004 01
The Old New Thing - 2004 02
The Old New Thing - 2004 03
The Old New Thing - 2004 04
The Old New Thing - 2004 05
The Old New Thing - 2004 06
The Old New Thing - 2004 07
The Old New Thing - 2004 08
The Old New Thing - 2004 09
The Old New Thing - 2004 10
The Old New Thing - 2004 11
The Old New Thing - 2004 12
The Old New Thing - 2005 01
The Old New Thing - 2005 02
The Old New Thing - 2005 03
The Old New Thing - 2005 04
The Old New Thing - 2005 05
The Old New Thing - 2005 06
The Old New Thing - 2005 07
The Old New Thing - 2005 08
The Old New Thing - 2005 09
The Old New Thing - 2005 10
The Old New Thing - 2005 11
The Old New Thing - 2005 12
The Old New Thing - 2006 01
The Old New Thing - 2006 02
The Old New Thing - 2006 03
The Old New Thing - 2006 04
The Old New Thing - 2006 05
The Old New Thing - 2006 06
The Old New Thing - 2006 07
The Old New Thing - 2006 08
The Old New Thing - 2006 09
The Old New Thing - 2006 10
The Old New Thing - 2006 11
The Old New Thing - 2006 12
The Old New Thing - 2007 01
The Old New Thing - 2007 02
The Old New Thing - 2007 03
The Old New Thing - 2007 04
The Old New Thing - 2007 05
The Old New Thing - 2007 06
The Old New Thing - 2007 07
The Old New Thing - 2007 08
The Old New Thing - 2007 09
The Old New Thing - 2007 10
The Old New Thing - 2007 11
The Old New Thing - 2007 12
The Old New Thing - 2008 01
The Old New Thing - 2008 02
The Old New Thing - 2008 03
The Old New Thing - 2008 04
The Old New Thing - 2008 05
The Old New Thing - 2008 06
The Old New Thing - 2008 07
The Old New Thing - 2008 08
The Old New Thing - 2008 09
The Old New Thing - 2008 10
The Old New Thing - 2008 11
The Old New Thing - 2008 12
The Old New Thing - 2009 01
The Old New Thing - 2009 02
The Old New Thing - 2009 03
The Old New Thing - 2009 04
The Old New Thing - 2009 05
The Old New Thing - 2009 06
The Old New Thing - 2009 07
The Old New Thing - 2009 08
The Old New Thing - 2009 09
The Old New Thing - 2009 10
The Old New Thing - 2009 11
The Old New Thing - 2009 12
The Old New Thing - 2010 01
The Old New Thing - 2010 02
The Old New Thing - 2010 03
The Old New Thing - 2010 04
The Old New Thing - 2010 05
The Old New Thing - 2010 06
The Old New Thing - 2010 07
The Old New Thing - 2010 08
The Old New Thing - 2010 09
The Old New Thing - 2010 10
The Old New Thing - 2010 11
The Old New Thing - 2010 12
The Old New Thing - 2011 01
The Old New Thing - 2011 02
The Old New Thing - 2011 03
The Old New Thing - 2011 04
The Old New Thing - 2011 05
The Old New Thing - 2011 06
The Old New Thing - 2011 07
The Old New Thing - 2011 08
The Old New Thing - 2011 09
The Old New Thing - 2011 10
The Old New Thing - 2011 11
The Old New Thing - 2011 12
The Old New Thing - 2012 01
The Old New Thing - 2012 02
The Old New Thing - 2012 03
The Old New Thing - 2012 04
The Old New Thing - 2012 05
The Old New Thing - 2012 06
The Old New Thing - 2012 07
The Old New Thing - 2012 08
The Old New Thing - 2012 09
The Old New Thing - 2012 10
The Old New Thing - 2012 11
The Old New Thing - 2012 12
The Old New Thing - 2013 01
The Old New Thing - 2013 02
The Old New Thing - 2013 03
The Old New Thing - 2013 04
The Old New Thing - 2013 05
The Old New Thing - 2013 06
The Old New Thing - 2013 07
The Old New Thing - 2013 08
The Old New Thing - 2013 09
The Old New Thing - 2013 10
The Old New Thing - 2013 11
The Old New Thing - 2013 12
The Old New Thing - 2014 01
The Old New Thing - 2014 02
The Old New Thing - 2014 03
The Old New Thing - 2014 04
The Old New Thing - 2014 05
The Old New Thing - 2014 06
The Old New Thing - 2014 07
The Old New Thing - 2014 08
The Old New Thing - 2014 09
The Old New Thing - 2014 10
The Old New Thing - 2014 11
The Old New Thing - 2014 12
The Old New Thing - 2015 01
The Old New Thing - 2015 02
The Old New Thing - 2015 03
The Old New Thing - 2015 04
The Old New Thing - 2015 05
The Old New Thing - 2015 06
The Old New Thing - 2015 07
The Old New Thing - 2015 08
The Old New Thing - 2015 09
The Old New Thing - 2015 10
The Old New Thing - 2015 11
The Old New Thing - 2015 12
The Old New Thing - 2016 01
The Old New Thing - 2016 02
The Old New Thing - 2016 03
The Old New Thing - 2016 04
The Old New Thing - 2016 05
The Old New Thing - 2016 06
The Old New Thing - 2016 07
The Old New Thing - 2016 08
The Old New Thing - 2016 09
The Old New Thing - 2016 10
The Old New Thing - 2016 11
The Old New Thing - 2016 12
The Old New Thing - 2017 01
The Old New Thing - 2017 02
The Old New Thing - 2017 03
The Old New Thing - 2017 04
The Old New Thing - 2017 05
The Old New Thing - 2017 06
The Old New Thing - 2017 07
The Old New Thing - 2017 08
The Old New Thing - 2017 09
The Old New Thing - 2017 10
The Old New Thing - 2017 11
The Old New Thing - 2017 12
The Old New Thing - 2018 01
The Old New Thing - 2018 02
The Old New Thing - 2018 03
The Old New Thing - 2018 04
The Old New Thing - 2018 05
The Old New Thing - 2018 06
The Old New Thing - 2018 07
The Old New Thing - 2018 08
The Old New Thing - 2018 09
The Old New Thing - 2018 10
The Old New Thing - 2018 11
The Old New Thing - 2018 12
The Old New Thing - 2019 01
The Old New Thing - 2019 02
The Old New Thing - 2019 03
The Old New Thing - 2019 04
The Old New Thing - 2019 05
The Old New Thing - 2019 06
The Old New Thing - 2019 07
The Old New Thing - 2019 08
The Old New Thing - 2019 09
The Old New Thing - 2019 10
The Old New Thing - 2019 11
The Old New Thing - 2019 12
The Old New Thing - 2020 01
The Old New Thing - 2020 02
The Old New Thing - 2020 03
The Old New Thing - 2020 04
The Old New Thing - 2020 05
The Old New Thing - 2020 06
The Old New Thing - 2020 07
The Old New Thing - 2020 08
The Old New Thing - 2020 09
The Old New Thing - 2020 10
The Old New Thing - 2020 11
The Old New Thing - 2020 12
The Old New Thing - 2021 01
The Old New Thing - 2021 02
The Old New Thing - 2021 03
The Old New Thing - 2021 04
The Old New Thing - 2021 05
The Old New Thing - 2021 06
The Old New Thing - 2021 07
The Old New Thing - 2021 08
The Old New Thing - 2021 09
The Old New Thing - 2021 10
The Old New Thing - 2021 11
The Old New Thing - 2021 12
The Old New Thing - 2022 01
The Old New Thing - 2022 02
The Old New Thing - 2022 03
The Old New Thing - 2022 04
The Old New Thing - 2022 05
The Old New Thing - 2022 06
The Old New Thing - 2022 07
The Old New Thing - 2022 08
The Old New Thing - 2022 09
The Old New Thing - 2022 10
The Old New Thing - 2022 11
The Old New Thing - 2022 12
The Old New Thing - 2023 01
The Old New Thing - 2023 02

Sponsor

sponsor World's Best Penis Enhancement Pills

Sponsor

sponsor Execute your malware here

Sponsor

sponsor Tutorial from zetalytics.com

Sponsor

sponsor Phantom Overlay, the best COD cheat available!

Want to sponsor vx-underground?

Your information could go here