cpplinq: An introduction

cpplinq is a C++ template library that provides .NET-like query operators for sequences of objects in C++11. cpplinq is an open-source library that works both with VC++ compilers (2010 and 2012) and gcc (4.7.0 is the version used for unit tests). The library supports most of the .NET query operators and is extendable with additional … Read more

Keyboard input and TAB navigation between WPF controls in a Win32 application

It is possible to host WPF controls in a Win32 application, and the other way around, but because of the differences betweeb these technologies there are various issues that can appear. One of these is handling of keyboard input. Without diving too much into differences between WPF and Win32, I will show how to provide … Read more

How to Determine What Process Loaded a DLL

Trying to figure out in which process a particular DLL is currently loaded, I have found two solutions (perhaps there are more). Solution 1: tasklist.exe tasklist /m <modulename>.dll Solution 2: listdlls.exe (from sysinternals) listdlls -d <modulename>.dll It might be that listdlls is more reliable than tasklist. I have ran into cases when tasklist failed to … Read more

T4 Lessons Learned

Working with T4 recently I learned a couple of valuable lessons I’d like to share. Lesson 1: Template Language One of the parameters of the language directive is the language, which specifies the language used in the code blocks of the template. Two languages are specified, C# and VB. <#@ template language=”C#” #> However, any … Read more

Great Artists Steal

So Apple won an important battle with Samsung (in a US court where a juror said it was clear to the jury after the first day of the trial that Samsung stole ideas from Apple, which made the rest of the one year long trial moot). Apple accused Samsung of stealing. And it’s probably not … Read more

A tale of two flags: DS_CONTROL and WS_EX_CONTROLPARENT

I recently ran into problems with an MFC application that was hosting some Windows Form user control in a modal dialog; the application hanged after it lost focus. The problem was the window received WM_GETDLGCODE message in an infinite loop making it impossible to handle anything else. After a lot of digging, I found that … Read more

Windows 8, Windows Server 2012 and Visual Studio 2012

Microsoft has made available the release candidates for the new Windows and the new Visual Studio tool set. Some of the products have been renamed: Windows Server 2012 is the new name for Windows 8 “Server” Visual Studio 2012 is the new name for Visual Studio 11 MSDN subscribers can download them from their account. … Read more

Sorting a CTreeCtrl

The CTreeCtrl supports several ways to sort its content: InsertItem allows to insert the child item alphabetically, when specifying TVI_SORT for hInsertAfter SortChildren performs an alphabetical sorting of the child items of the given parent item in a tree SortChildrenCB performs a sort with a user-defined callback (hence the CB suffix) of the children of … Read more