Initially, all my articles used to be mirrored both on my web-site as well as on The Code Project, but this became a hassle since I had to update both versions whenever I made changes. I've decided not to maintain a mirror here and instead I will solely be publishing on The Code Project. Way easier that way, and I also get the advantage of the article-forum provided there.
7 reasons C++ devs will love the VS 14 CTPThe article goes through sevean language and IDE features in the VS 14 CTP 2 that are specific to C++ development |
Using the Microsoft Azure Storage Client Library for C++This is an overview of the Microsoft Azure Storage Client Library for C++ with basic code snippets |
CodeProject 10 Million Members CelebrationIn the summer of 2013, CodeProject celebrated hitting 10 million members and invited various CodeProject members to host get-togethers around the world. Here are some of the goings-on at those celebrations. |
Using Casablanca to consume a REST APIThe article walks through using the Casablanca REST API library to consume a REST web service from C++ code |
Introduction to using MVVM with Visual C++ 2012Writing a basic Windows Store Hello World equivalent using VC++ and MVVM |
A Coder Interview with Nish SivakumarWelcome to our continuing series of CodeProject interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we talk to Nish Sivakumar, a literal CodeProject legend. |
Using lambdas - C++ vs. C# vs. C++/CX vs. C++/CLIA comparative look at lambdas in C++ and C# with focus on the differences and similarities in lambda usage across the languages and their variants. |
Visual C++ and WinRT/Metro - Databinding BasicsAn introduction to using WinRT databinding with Visual C++ |
Visual C++ and WinRT/Metro - Some fundamentalsThe fundamentals of using Visual C++ to consume and create WinRT objects |
The Code Project Forum Analyzer : Find out how much of a life you don't have!This is an unofficial Code Project application that can analyze forums over a range of posts to retrieve posting statistics for individual members. |
Adding data-bindable attributes to C# enums using the dynamic runtimeThis article is about a very light-weight enum extension library that takes advantage of dynamic types in .NET 4.0 to provide a simple way to add meta attributes to an enum field. |
Resetting a View Model in WPF MVVM applications without code-behind in the viewThe core idea behind this code and article is to provide an uncomplicated approach to reset a view-model without having to adjust DataContext references in views. |
Code Project Posts Analyzer for Windows Phone 7This is a WP7 application that will analyze your most recent posts and give you summarized statistics on your forum wide posting split up. |
CP Vanity LiteThis is a lightweight version of Luc Pattyn's popular CP Vanity application |
PopClient - A POP3 companion to SmtpClientPopClient is an asynchronous POP3 library with support for SSL and attachments |
Code Project Forums : New Posts MonitorThis application monitors for new posts in the Code Project forums. |
WPF Tutorial - Part 1 : TransformationsA brief introduction to using transformations with the WPF |
Handling a Window's Closed and Closing events in the View-ModelThis article discusses an attached behavior that lets you handle the View Window's Closed and Closing events via commands in the View-Model |
Setting non-numeric grid row/column sizes in WPF/SilverlightJohn, here's a simpler way to do this. This will also handle strings like "3*" which are valid grid length values in Xaml.private RowDefinition MakeRowDefinition(string height){ RowDefinition rowDef = new RowDefinition(); GridLengthConverter converter = new... |
EXIF Compare Utility using WPFThe Exif Compare Utility is a WinDiff equivalent for image files that compares the Exif meta-data and displays the differences and similarities. The application is written using WPF and MVVM. |
An MVVM friendly approach to adding system menu entries in a WPF applicationThis article shows you how to add menu items to the system menu and attach command handlers in an MVVM compatible fashion |
An explorative peek into generating deterministic primes through a multi-level multi-language tunneling apparatusThis paper is a summary of a research exercise conducted in conjunction by Nish Sivakumar, Professor Cuthbert Calculus, and Glenn Quagmire. |
An extensible ExifReader class with customizable tag handlersAn ExifReader class in C# that supports custom formatting and extraction. StyleCop compliant code, with demos for WPF and Windows Forms. |
An LCS based diff-ing library in C#This is an LCS based diff library that was written for the Code Project Lean and Mean diff engine contest |
A first look at the Windows Web Services APIThe article shows how to interop between a WCF service and a WWS client, and also how to rewrite the WCF service in WWS retaining compatibility with existing WCF clients. |
A generic Trictionary classThis article describes a generic Trictionary class derived from Dictionary that allows two values of different types per key |
C++/CLI HowTo : Deriving from a C# disposable classThis article walks through the implementation of a C++/CLI class from a disposable C# base. |
Using a TypeDescriptionProvider to support dynamic run-time propertiesThis articles explains how to implement a TypeDescriptionProvider for a class to support multiple object types using a single class type |
A look at STL/CLR performance for linear containersThe performance of STL/CLR sequence containers are compared with that of corresponding BCL generic collection classes |
Deploying MFC applications via ClickOnceA step by step tutorial on how to deploy an MFC application via ClickOnce |
A data-bound multi-column comboboxAn ownerdrawn multi-column combobox class with support for data-binding |
Using and extending the Orcas marshal_as libraryThis article covers basic marshal_as usage, as well as how to extend marshal_as to support additional type conversions |
WPF Tutorial - Part 2 : Writing a custom animation classThis article covers how animations can be applied on properties that do not have an associated animation class |
C++/CLI in Action - Using interior and pinning pointersExcerpt from Chapter 4 on interior and pinning pointers |
C++/CLI in Action - Instantiating CLI classesThis is an excerpt from Chapter 1 that covers how CLI classes are instantiated, and discusses constructors and assignment operators |
C++/CLI in Action - Declaring CLR typesExcerpts from Chapter 1. Topics are (1) Declaring CLR types and (2) Handles: The CLI equivalent to pointers |
How to drag a virtual file from your app into Windows ExplorerShows how to use CFSTR_FILEDESCRIPTOR and CFSTR_FILECONTENTS to perform drag/drop with virtual files |
C++/CLI Library classes for interop scenariosThe article takes a brief look at some not so commonly used classes such as auto_handle, lock, and ptr. |
A modal dialog that fades the background to gray-scale imitating the XP shutdown screenDimmerDialog is a .NET class that shows a modal dialog which grays out the rest of the background, just like the Windows XP Shutdown dialog. This can be used when your application needs to show a very important message box or form that requires immediate user attention. |
Using the Windows Forms 2.0 MenuStrip and ToolStrip controls to give your MFC applications a new look and feelThis article demonstrates how to use the Windows Forms 2.0 MenuStrip and ToolStrip controls in an MFC SDI application, using C++/CLI, to get the Office 2003 style menu and toolbar |
MessageBoxManager - A Windows Forms component that provides enhanced MessageBox functionalityMessageBoxManager is a Windows Forms component that you can drag & drop into a Windows Forms project's main form, and it gives you enhanced message box functionality without forcing you to change your existing calls to any of the MessageBox.Show() overloads |
CAutoNativePtr - A managed smart pointer for using native objects in managed codeCAutoNativePtr is a managed template class that acts as a smart pointer, and is handy for using native objects in managed code. |
Using WinForms controls in an MFC dialogThis article is a simple introduction to using the CWinFormsControl MFC class to put a Windows Forms control on an MFC dialog. |
A rational attempt to substantiate C++/CLI as a first class CLI languageWhy the author thinks that C++/CLI has its own unique role to play as a first-class .NET programming language |
The coding gentleman's guide to detecting the .NET FrameworkA C++ class that will detect and enumerate the active CLR versions on a machine |
Shell Tray Info - Arrange your system tray iconsA tool with full source code that enumerates tray icons and allows you to reposition them as well as send mouse messages. |
Function pointers and Delegates - Closing the gap!Explains the usage of the Marshal class methods GetFunctionPointerForDelegate and GetDelegateForFunctionPointer, and compares their performance with the P/Invoke mechanism. |
CProcessData : A template class to ease up SendMessage calls across processesCProcessData is a template class that makes it easy to use data allocated in a different process, and is useful when making inter-process SendMessage/PostMessage calls. |
How to accurately detect if an application is theme-enabled?Describes a function that overcomes the inadequacies of IsAppThemed and IsThemeActive. |
MAC Address Changer for Windows XP/2003A freeware program (with source code) that allows you to change the MAC ID of your network adapter |
CNullable : A convenient Nullable equivalent class for C++/CLICNullable can be used to represent a value type (or simple native type) such that the type can be nulled. You can also compare it to nullptr using the == and != operators both of which have been overloaded. |
StringConvertor : A convertor class for managed-unmanaged string conversions that handles memory de-allocationsA convertor class for managed-unmanaged string conversions that handles memory de-allocations. Caller need not worry about freeing unmanaged memory allocations. |
C++/CLI Properties - Syntactic sugar for accessor methodsLooks at the syntax for the declaration and use of properties in C++/CLI |
Simulating polymorphic operator overloads with C#Article shows how to overcome the C# insistence on operator overloads being static and describes a method for simulating polymorphic behavior for operator overloads. |
Send mail without specifying an SMTP serverA class derived from CSMTPConnection that queries the MX record for a target domain and uses that to send mail |
Using generics in C++/CLIIntroduces generics and compares it with templates |
Guide to using Pinning PointersArticle on the usage and dangers of pinning pointers |
An overview of interior pointers in C++/CLITries to explain the syntax, usage and behavior of interior pointers in C++/CLI |
Deterministic Destruction in C++/CLILooks at how deterministic destruction is possible with C++/CLI |
Arrays in C++/CLIThe article exposes the new array syntax available in C++/CLI for the declaration and use of CLI arrays |
Function overriding in C++/CLITakes a look at new features like explicit overriding, renamed overriding, multiple overriding and sealing a method |
A tool to strip zips of unwanted files before submitting to CodeProjectThe CPZipStripper tool with source code |
Bug when using the java.util.zip classes to write zip filesDescribes an issue when writing a binary file into a zip file using the java.util.zip classes |
A first look at C++/CLIA brief look at the new C++/CLI syntax and how it improves over the old MC++ syntax |
To new is C++; To malloc is C; To mix them is sinArticle explains the differences between malloc/free and new/delete in a C++ context |
A quick guide to using nested repeaters in ASP.NETUsing nested repeaters in ASP.NET with an XML data store |
MultiMail 2.0 - Freeware SMTP stress testing toolThis free program can be used to stress test SMTP servers. It also aids anti-Spam tool developers as a useful mail-bombardment tool. |
The virtual bool bugDescribes the virtual bool bug that exists in mixed mode Managed C++ programs that access unmanaged classes |
Managed Exception Handling using VC++.NETAn introduction to managed exception handling in MC++ programs |
Manipulating Windows using messages and simple CBT hookingDemonstrates techniques using windows messages and hooks, which allow us to automate a windows properties dialog or even custom applications |
The singular non-modality of MFC modal dialogsExplains the pseudo modality of CDialog based modal dialogs and a problem with the CDialog::EndDialog implementation |
Changing default icons for folders and drivesShows how to globally change the icons for folders and drives. Also shows some nifty tricks you might find handy in your applications. |
Getting and setting desktop folder namesGives you copy/paste-able functions to retrieve the localized folder names, and to set/get user-defined folder names for dekstop folders |
The Complete Guide to C++ Strings, Part II - String Wrapper ClassesA guide to the string wrapper classes provided by Visual C++ and class libraries |
CPopProxyMT - A multi-threaded POP3 proxy skeletonCPopProxyMT is a skeletal class that wraps a multi-threaded POP3 proxy. You can further modify this class to suite your needs. |
CDocument::DoSave revealedExplains how you can suppress the File-Save-As dialog in a Doc/View app, how to save files to multiple formats, and how DoSave is implemented. |
Some handy dialog box tricks, tips and workaroundsHidden modal dialogs, stealing focus, always on top dialogs, going full-screen, expanding and contracting dialogs, removing task bar icon, context sensitive help and many other useful tips and tricks. |
CFormatDriveDialog - A wrapper class for the undocumented SHFormatDrive API functionA wrapper class for SHFormatDrive (XP/2K only). Corrects some errors in KB article Q173688 |
Casting Basics - Use C++ casts in your VC++.NET programsDemonstrates and compares the various casting operators available. Also suggests when to use and what to use! |
Delay MessageBox with auto-close optionThis message box delays its dismissal by disabling the OK button for a delay interval. It also has an optional auto-close feature. There are two versions, one uses a WH_CBT hook and some basic window tricks like sub-classing to achieve its goal. The other one is more MFC-ied. |
A statistical analysis of the performance variations of assorted managed and unmanaged languagesThis article compares and contrasts the relative performances of various languages like native C++, Visual Basic 6, C#, VB.NET, Managed C++, MC++ and native code mix, ngen'd assemblies etc. using a prime number generation function as a generic benchmark |
Window SizerA hot-key based program that lets you resize your current window to any size. Useful for web designers and GUI developers as it helps avoid frequent screen-resolution changes. |
FontComboBox - a font listing combo box for .NETA fully owner drawn ComboBox derived class for enumerating and choosing fonts |
An editable multi-line listbox for .NETAn owner drawn listbox that supports multi-line word-wrapped text as well as in-place editing. |
A newbie's elementary guide to spawning processesGives an elementary introduction to the use of ShellExecute/ShellExecuteEx, CreateProcess, WaitForSingleObject. How to bring up the Find window, the Properties window. |
ToolTipListBox - a list box with tool tipsA ListBox derived class that shows tool-tips for items that won't fit within the width of the list box |
Ordered ListBoxA ListBox derived class that supports internal ordering and re-ordering of items |
N-Track : Work-Time tracking systemA work time tracking system that includes a Managed C++ remoting server and MFC clients that use the managed extensions. The application demonstrates how to mix managed and unmanaged code. |
Implementing Callback functions using IJW (avoiding DllImport)Shows how you can call native API functions that require callbacks using IJW, and without the use of DllImport attribute. The technique allows you to pass a delegate as the callback function just as in the MS recommended manner except, I show you how to do this without the ugly DllImport attribute. |
Creating draggable windows - SDI and dialogsShows how you can create windows that can be dragged around, not just through the title bar, but anywhere within the window body |
Introduction to Managed C++An attempt to get a beginner started on Managed C++ |
Outlook style GUI - three-way split formDemonstrates the usage of splitters, treeviews, listviews, panels, toolbars |
Screen and Form capture with Managed C++This is further demonstration of MC++ IJW capabilities |
MFC under the hoodExplains the basic MFC program flow including where WinMain and the message loop are hidden |
MC++ TCP server talking to MFC & MC++ TCP clientsBasic demonstration of the TcpListener/TcpClient classes. |
How to do Synchronous and Asynchronous web downloadsExplains the usage of WebRequest, WebResponse and related classes. |
Basic stuff on Files, Directories and StreamsDemonstrates the use of the reader/writer classes as well as the file/directory info classes |
Using managed arraysDeclaring and using managed .NET arrays with MC++ |
Tutorial - Modeless Dialogs with MFCSome tips/suggestions on using modeless dialogs with MFC |
Delegates Tutorial - MC++ and C# - The dual perspectiveIntroduces and walks you through the use of delegates in .NET. Compares and contrasts the different approaches that MC++ and C# adopt in the use of delegates. With examples in both languages |
Implementing custom collection classes with MC++Tutorial on creating your own collection classes that are enumerable and sortable. Explains in detail the usage of the IEnumerable, IEnumerator, IComparable and IComparer interfaces |
Using color gradients as backgrounds in your dialogs and viewsBeginner article that shows how you can create horizontal, vertical and diagonal backgrounds. Also tells you what to watch out for, to avoid flickering when doing complicated drawing. |
Multi-line InputBox control - MC++A .NET port of my MFC CFrameWnd derived InputBox class, written using MC++ |
Tile, center and stretch a bitmap as your MFC dialog backgroundA small CDialog derived class that helps avoid frequent copy/pasting of the same code, when using a bitmap as dialog background |
How to have an Auto-Completing ComboBox in .NETShows how to derive a class from ComboBox and add an Auto-Complete feature to it. The example uses Managed C++. |
Dynamically loading a DLL - MC++Shows how you can load an assembly at run time, instantiate a class in that assembly and call methods on the class |
Serialization Primer - MC++A basic introduction to serialization using Managed C++ |
The MFC unclickable button ported to Managed C++This article presents a port of the MFC Trick button to .NET using Managed C++ and Windows Forms |
Registry handling with .NETShows with some code snippets how registry handling is a piece of cake with .NET |
CServiceHelperA simple class to install, uninstall, start, stop, pause, continue Win32 services |
Adding a status bar to an MFC dialogShows how you can have status bars in your dialog based apps |
Drag and Drop between list boxes - Beginner's TutorialAn introduction to drag and drop in .NET |
Getting unsafe with pointers in C#Introduction to unsafe code |
Creating and Resolving shell linksAn MC++ class that uses IJW to invoke the IShellLink interface |
Using IJW in Managed C++A basic introduction to using IJW instead of P/Invoke in Managed C++. This is also the first CP article on IJW. |
Beginner's Tutorial - Using global hotkeysExplains how to register, use and unregister hotkeys |
Clipboard handling with .NETAn introduction to using the clipboard |
.NET port of Joe's AutoRepeat Button classThis ports Joe Newcomer's AutoRepeat Button class to a .NET control |
Adding tray icons and context menusBeginner's Tutorial on adding tray icons and setting context menus |
Absolute beginner's introduction to remotingIntroduces .NET remoting and the use of asynchronous callbacks using simple code snippets |
Using events for thread synchronizationAn introduction to using signaled events for thread synchronization in .NET |
Pre-beginner's guide to using a timerShows how you can use a timer proc in your windows forms apps |
Beginning Winsock Programming - Multithreaded TCP server with clientExplains a multithreaded TCP file server, a custom TCP chat protocol and a custom TCP client |
CExpire - A C++ class that implements time and run based restrictionsShareware authors can use this class to limit the number of runs or the number of days that a program will function |
Beginning Winsock Programming - Simple TCP clientA simple TCP client is explained. |
Beginning Winsock Programming - Simple TCP serverAn introduction to WinSock programming. A simple TCP server is explained. |
CFloppyDisk 2.0A class for reading and writing floppy disk sectors directly [Win 95/98/ME/NT/2K/XP] |
Beginner's introductory guide to writing, installing, starting, stopping NT servicesIncludes a generic skeleton for a simple NT service. Explains how to install, start, and stop the service programmatically. |
Keyboard messages/accelerators handling in MFC dialog based applicationsThis article explains how you can override PreTranslateMessage and ProcessMessageFilter in dialog based apps |
OLE DB - First stepsBasic introduction to using OLE DB to insert, update and read records from a database |
CInputBox 1.0A CFrameWnd derived class that provides functionality similar to the VB InputBox function. You don't need a dialog resource to use the class! |
CFileTar 1.0 - pack and unpack file archivesA class for packing and unpacking file archives. |
CSmtpProxyMT 1.0An SMTP proxy class with ability to insert signatures to outgoing mails. Does not require MFC. |
OLE DB - Bound controlsShows how you can use data bound controls with OLE DB |
Limiting your .NET apps to a single instanceShows how to use the Mutex class to limit your app to a single instance using a named mutex |
Thread Sychronization using monitorsIntroduction to using the Monitor class for accessing shared resources from multiple threads |
How to pass data to worker threadsShows how you can pass data to your worker threads |
Managed C++ and Windows Forms - Image ViewerDemonstrates adding menus, showing open-dialog boxes, showing images, scrolling. |
Managed C++ and Windows FormsAn introduction to Windows Forms using Managed C++ |
Events and event handling in C#An introduction to using events and event handlers in C# |
Enums and Structs in C#Two oft-overlooked value types that C# offers and where they can be used |
Introduction to inheritance, polymorphism in C#An elementary introduction to inheritance, polymorphism in C# using simple code snippets |