- ToDoList — A simple and effective way to keep track of your current
tasks
- A tree-based task manager with native XML support for custom
reporting.
- Include File Hierarchy Viewer
- A tool to view the include file hierarchy of your source code.
- Resource ID Organiser Add-In for Visual C++ 5.0/6.0/.NET
- An application/add-in to organise and renumber resource symbo
lIDs.
- SSBrowser: A Sample Visual SourceSafe Automation
- A sample VC++ program for performing Visual SourceSafe operations
in your application.
- VssReporter 2.0 — A Visual SourceSafe reporting tool for build
administrators
- A support tool to allow those performing builds to independently
determine exactly what source files have been changed and by whom.
- VC++7 to VC++6 project converter
- This tool automatically converts Visual C++ 7.0 projects back to
Visual C++ 6.0 projects.
- VSHelper — Visual Studio IDE enhancements
- VSHelper adds some usability enhancements to Visual Studio .NET
2003 / 2005.
- WTL Helper
- Add-in for MS VC++.NET 2003 that helps to insert message handlers
for WTL.
- ClassWiz: A VS.NET addin that provides a classwizard similar to that in
VC++ 6.0
- A VS.NET addin that provides a class wizard similar to that in
VC++ 6.0.
- GUIDGen AddIn for Visual Studio.NET
- An Add-In that replaces and extends the GUID Generator component
included with Visual Studio. NET.
- A better class wizard
- How to fix the annoying path problems with the «Add Class»
wizard.
- NtRegEdit — Native Registry Editor
- I wanted to create a registry editor that used the «Native Registry
APIs» instead of using the Microsoft Registry APIs in AdvApi32.dll (which is just a wrapper
to the Native Registry APIs). There is still dependency to the AdvApi32.dll because of the all
the other APIs in it. I basically wrote a class that does this (I guess it is also a wrapper
— see picture below). I wanted to create something that would have the same functionality
as Microsoft's Registry Editor but with the ability to do a lot more. I liked working with the
SDI Framework, and decided to start with that. I also wanted to make it a bit easier to read
the registry data, so I decided on color coding. This would make it easier for a user to color
the information to their liking, making it easier to read and more user-friendly.
- DBdoc: automated CHM documentation for a SQL Server 2000 database
- Do you know the Visual Studio .NET capability of extracting — at
compile time — some formatted comments (you included in your source code) in the form of
XML descriptive files, that you can later process with programs like
NDoc in order to produce a CHM
documentation of your assemblies and classes? Well, if your answer is «yes», and if
you ever felt the lack of a similar feature in the Microsoft SQL Server 2000 suite, then you
will easily understand the goal of DBdoc, the tool presented in this article. It arises from the
need of producing, in a similar automated way, the documentation for a SQL Server 2000 database,
by extracting some properly formatted comments included in the tables, stored procedures,
user-defined functions and triggers of the database, and by combining them with some SQL Server
metadata in order to produce a collection of descriptive HTML files useful to build the CHM
documentation of your database.
- Image Viewer Utility
- A little utility program that allows you to view the contents of memory
bitmaps and device contexts while you are stepping through your drawing code.
- Versioning Controlled Build
- A Visual Studio add-in that automates the AssemblyVersion control.
- K3DSurf: Math for fun
- K3DSurf is a program to visualize and manipulate multidimensional surfaces
by using Mathematical equations. It's also a «Modeler» for POV-Ray in the area of
parametric objects and Isosurfaces.
- Control Spy v2.0
- Control Spy is a tool that helps developers understand common controls:
how to apply styles to them, and how they respond to messages and notifications. Using Control
Spy, you can immediately see how different styles affect the behavior and appearance of each
control, and also how you can change the state of each control by sending messages.
Two versions of Control Spy are available, one for
Comctl32.dll version 5.x and one for Comctl32.dll version 6.0 and later.
ControlSpyV6.exe has a built-in application manifest so that it uses the newer, themed controls.
ControlSpyV5.exe does not have this manifest and so defaults to the older version.
- WTL for MFC Programmers, Part I — ATL GUI Classes
- An introduction to WTL programming for MFC developers.
- WTL for MFC Programmers, Part II — WTL GUI Base Classes
- WTL programming for MFC developers — frame windows.
- WTL for MFC Programmers, Part III — Toolbars and Status Bars
- The basics of using toolbars and status bars in WTL
applications.
- WTL for MFC Programmers, Part IV — Dialogs and Controls
- Using dialogs and controls in WTL.
- WTL for MFC Programmers, Part V — Advanced Dialog UI Classes
- Using the new WTL classes that implement advanced dialog UI
elements.
- WTL for MFC Programmers, Part VI — Hosting ActiveX Controls
- A tutorial on hosting ActiveX controls in WTL dialogs.
- WTL for MFC Programmers, Part VII — Splitter Windows
- A tutorial on using WTL splitter windows and pane containers.
- WTL for MFC Programmers, Part VIII — Property Sheets and
Wizards
- A guide to creating property sheets and wizards in WTL.
- WTL for MFC Programmers, Part IX — GDI Classes, Common Dialogs, and
Utility Classes
- A tutorial on using GDI and common dialogs in WTL.
- WTL for MFC Programmers, Part X — Implementing a Drag and Drop
Source
- A tutorial on using drag and drop in your WTL application.
- An MFC extension library to enable DLL plug-in technology for your
application using MESSAGE_MAPs
- A plug-in architecture which allows you to write plug-in DLLs for
your application and extend/modify its functionality.
- MFC extension library : A plugin to handle owner drawn menus
- Continuation of the Plugin Architecture series.
- MFC extension library : Single instance Plug-In
- Only one instance of the application can run at any time. When
a new instance is started, it will close and set the focus to the first instance. Any
new instance command lines will be passed to the already running instance so it can
process them.
- MFC Extension library : Enhanced print preview plug-in
- This plug-in demonstrates a replacement of the standard MFC print
preview window with an enhanced version that supports multipage display, switching the
page layout between Portrait and Landscape, print setup available in preview mode; also
the mouse wheel will work for scrolling pages.
- CPJNSMTPConnection
- An MFC class to encapsulate the SMTP protocol.
- CPJNPOP3Connection
- An MFC class to encapsulate the POP3 protocol.
- W3Mfc
- A collection of MFC classes to implement a Web Server.
- CScintillaCtrl, CScintillaView & CScintillaDoc
- MFC classes to encapsulate the Scintilla edit control.
- CTreeFileCtrl
- An MFC class which provides a tree control similar to the left
hand side of Windows Explorer.
- ClassLib, A C++ class library
- After having programmed mostly in C for about 10 years, I
decided about a year ago that it was time to start learning C++. Because I was also
trying to get to grips with the Win32 API, I decided to combine the two and create
my very own class library. The result is what you see here. A library of C++ classes
which mostly contain wrappers for Win32 data types etc.
- Brainchild, A syntax coloring edit control
- Syntax coloring, multi-level undo/redo editor control.
- CFilterEdit: Use Regular Expressions to Filter Your Input
- The definitive approach to filtering input text. Includes
configurable error display.
- CPPToolTip
- A class that allows you to display your data for a control as
tooltip.
- CPPMessageBox
- Extended MessageBox class.
- CPPDumpCtrl
- Class for view and edit data in Hex, Dec, Bin, Oct, Ascii
formats.
- CPPHtmlStatic
- A control based on CStatic for displaying HTML-like text
formatting elements.
- CIni
- A comprehensive INI file handling class.
- Fast HTML syntax highlighting with the Rich Edit control
- An article on fast HTML syntax highlighting using a rich edit
control (CRichEditCtrl).
- Report Generator
- A plug-in report generator.
- CCustomTabCtrl — MFC Tab Control
- An MFC tab control - a clone of the Excel tab sheet control.
- Formula Editor
- Formula-editor for editing and exporting mathematical content.
- CSizingControlBar — a resizable control bar
- DevStudio-like docking window.
- Views in a Sizeable Docking Control Bar
- A fairly simple way to incoporate views into sizing control
bars.
- CWnd/WTL based HTML List Control with different row heights
- This is a CWnd/WTL based list control; it supports basic HTML
tags and multiple row heights.
- CCalendarCtrl — A simple scrolling calendar class
- CCalendarCtrl is a small CWnd-based class that implements a scrolling
calendar, and keyboard/mouse support for intuitive navigation and cell selection. Multiselection
is possible using Ctrl and Shift, and a cell can contain several items.
- XGetopt — A Unix-compatible getopt() for MFC and Win32
- XGetopt provides drop-in Unix-style command line processing for Win32
and MFC applications.
- A handy tokenizer function using STL
- A handy and customizable tokenizer function that works with STL
strings.
- Fast C++ Delegate
- An implementation of the fast C++ delegate which is portable and
C++ Standard-compliant.
- CDfaRegEx: A DFA Implementation of a Regular Expression Compiler
- A complete regular expression compiler.
- Fast mathematical expressions parser
- Many applications require the parsing of mathematical expressions.
The main objective of this project is to provide a fast and easy way of doing this.
muParser is an extensible high performance math parser library. It is based on transforming
an expression into a bytecode and precalculating constant parts of it.
- An extensible math expression parser with plug-ins
- Design and code for an extensible, maintainable, robust, and easy
to use math parser.
- An STL-like bidirectional map
- A template container implementing a bidirectional map that blends
well with STL.
- tree.hh: an STL-like
C++ tree class
- The tree.hh library for C++ provides an STL-like container class for
n-ary trees, templated over the data stored at the nodes. Various types of iterators are
provided (post-order, pre-order, and others). Where possible the access methods are compatible
with the STL or alternative algorithms are available. The library is available under the terms
of the GNU General Public License version 2 or 3.
- A guide to MSDN Collection Integration
- Integrate your help files with MSDN.
- Implementing a Read-Only 'File Open' or 'File Save' Common Dialog
- Some interesting customization techniques are presented for making
the 'File' common dialogs read-only.
- Flicker Free Drawing In MFC
- Removing flicker from an MFC application is well-covered territory.
You can find the topic addressed in books, and on-line. However, the techniques presented
are somewhat complicated and are usually difficult to add to an existing application. One
often-presented technique is called double buffering. Double buffering allows the new
screen to be drawn in off-screen memory, and then the completed screen is bit-blited back
onto the physical screen.
- Layout Manager for Dialogs, Formviews, DialogBars and PropertyPages
- A framework to provide automatic layout control for dialogs and
forms.
- Templates and MFC
- Templates are a great way of reusing code, unfortunately MFC makes
it hard to write MFC friendly template classes.
- QuickWin — Turn a console application into a Windows program
- Redirect stdin, stdout and stderr into a window.
- nFS — File System Within a File
- A portable library for emulating a file system within a file.
- Bootstrapper for the VC++ 2005 Redists (with MSI 3.1)
- A discussion on deployment in Visual C++ 2005, and an amended
version of the vcredist_x86.exe that includes MSI 3.1.
- Updater
- Updater is an application which enables the user to check if there
is a new version of your application. If there is a new version, the Updater will download
the newest version and install it for you. This way, you don't have to write an updater
module for your application yourself!
- TraceTool 9: The Swiss-Army knife of trace
- A C#, C++, Delphi, and Java trace framework and a trace viewer:
Tail, outputDebugString, event log, and with Log4J, Log4Net, and Microsoft Enterprise
Instrumentation Framework (EIF) support. This comes with full support for Pocket PC
development.
- COM in plain C
- How to create/use COM components in plain C, without MFC, ATL,
WTL, or any other framework.
- Plot Graphic Library
- A library to plot data (lines, maps…) in MFC projects.
- LiteZip and LiteUnzip
- Easy to use, small-footprint DLLs to let your app create zip
archives, and extract the contents of them. Useful for C, C++, VB, and other languages.
- Compiling and Integrating Crypto++ into the Microsoft Visual C++
Environment
- Avoid Common Pitfalls when Using Crypto++ and VC++.
- An AES Encrypting Registry Class
- This article presents yet another registry class which encrypts data
using AES.
- The Complete Guide to C++ Strings, Part I — Win32 Character
Encodings
- You've undoubtedly seen all these various string types like TCHAR,
std::string, BSTR, and so on. And then there are those wacky macros starting with _tcs. And
you're staring at the screen thinking «wha?» Well stare no more, this guide will
outline the purpose of each string type, show some simple usages, and describe how to
convert to other string types when necessary.
- The Complete Guide to C++ Strings, Part II — String Wrapper
Classes
- Since C-style strings can be error-prone and difficult to manage,
not to mention a target for hackers looking for buffer overrun bugs, there are lots of
string wrapper classes. Unfortunately, it's not always clear which class should be used in
some situations, nor how to convert from a C-style string to a wrapper class.
This article covers all the string types in the Win32 API, MFC, STL, WTL, and the Visual
C++ runtime library. I will describe the usage of each class, how to construct objects,
and how to convert to other classes. Nish has also contributed the section on managed
strings and classes in Visual C++ 7.
- WTL XP UI sample
- This mock-up WTL sample contains a MDI project with some of my XP
classes enabled. I've tried to build a small Macro Editor — although much of it is
non-functional. However, the main purpose was to show how my classes are used.
- Command Bar XP
- This is the first version of a Office XP Command Bar. It is still
a work in progress. I don't actually have an Office XP available, so I made it look like
the VisualStudio .NET version instead. So far the basic stuff is ready: colorful menus,
toolbar button painting, context menus, a thin menu frame, dropdown buttons, multipane
statusbar, toolbars and a combobox control. The control overrides the existing behaviour
of the CCommandBarCtrl and other controls. All menu buttons, tool-buttons and other
widgets are custom drawn.
- Using WTL's Built-in Dialog Resizing Class
- How to use WTL's built-in support for resizable dialogs.
- WTL Wizard-style CPropertySheet Resizable View
- How to use WTL's CPropertySheet implementation in wizard-style as
a resizable view instead of a modal or modeless dialog.
- WTL CPropertySheet as a Resizable View
- How to use WTL's CPropertySheet implementation as a resizable view
instead of a modal or modeless dialog.
- PropertyGrid control
- A grid control is similar to a normal list control, except that
each sub-item is editable. Sub-items can contain text values (for editing), dropdown
lists, filename browsers or pretty much any type imaginable.
- UI: Become windowless
- A windowless user-interface doesn't make use of the native Win32
controls. Instead it custom paints every control and widget on the screen —
including labels, buttons, list control, etc. etc. This kind of interface is not new:
«Skinning» has been widely accepted for its cool application-look, as seen in
Nullsoft's WinAmp and the MS Media Player. But skinning is usually only feasible for small
applications hosting a limited number of dialogs. If you're building a large
database-driven application, you'll want to have a solid framework to back your dialog
design up.
- A WTL list control with Windows Vista style item selection
- A flexible WTL list control that supports Windows Vista style
selection and cell editing.
- Owner-drawn context menu in WTL
- An article explaining how to create an owner-drawn context
menu.
- TreeCtrl — A WTL tree control with Windows Vista style item
selection
- A WTL tree control that supports Windows Vista style selection
and multiple selection.
- Introduction to wxWidgets
- A beginner's tutorial on wxWidgets for cross platform GUI
development.
- How to find and use Office object model documentation
- This article describes the resources and documentation available
to you for automating Microsoft Office applications. This information can be applied
regardless of the programming language you choose for automating an Office application.
This article also illustrates how you can begin writing automation code by stepping you
through the documentation to find the information you need to accomplish a specific task
through automation.
- Как использовать лучшее из .NET в неуправляемом коде на C++
- Managed Extensions (управляемые расширения) для C++ позволяют
свободно смешивать неуправляемый (native) и управляемый код даже в одном модуле. Ух ты,
жизнь прекрасна! Однако компиляция с ключом /clr может иметь нежелательные последствия.
Этот ключ навязывает многопоточный режим и отключает некоторые полезные проверки периода
выполнения. Он влияет на DEBUG_NEW в MFC, и некоторые классы .NET Framework могут
конфликтовать с вашим пространством имен. И что делать, если в устаревшем приложении
используется компилятор, не поддерживающий /clr? Есть ли способ воспользоваться Framework
без Managed Extensions? Да!
- Deployment (C++)
- Deployment is the process by which you distribute a finished
application or component to be installed on other computers. Deployment is a multi-stage
process that starts when an application is created on a developer's computer and ends
when it is installed and ready to run on a user's computer.
- How To Use CeRapiInvoke()
- The remote API (RAPI) CeRapiInvoke() enables you to invoke your
routines in the Windows CE device from a desktop application. The routines are implemented
in a DLL and the DLL must export those routines. You can use CeRapiInvoke() in two ways:
in block mode or in stream mode. This article demonstrates how to use CeRapiInvoke() in
both ways.
- Pluggable Protocols
- Most of us are so accustomed to strings like «http:»
that we use them without thinking. We use them with the same nonchalance with which we
turn a TV on and off with a remote control. In many cases, we even omit the http prefix
when we enter the URL for a Web site we're going to surf. It's so common that you don't
even have to bother to type it in.
- How to use a dialog template to create an MFC dialog that contains an ActiveX
control
- It is possible to display a dialog from either a DIALOG resource or
from a dialog template in memory. In the latter case, the dialog template is either constructed
or loaded into memory and the dialog is created indirectly. Dialogs that contain ActiveX controls
are more difficult to create indirectly because they require additional information such as
license keys and the initial states of properties. MFC requires that this additional information
be provided as a DLGINIT resource. The Visual C++ resource editor creates this DLGINIT resource
in the resource (.rc) file for each dialog containing an ActiveX control.
- How to accurately detect if an application is theme-enabled?
- Describes a function that overcomes the inadequacies of IsAppThemed and
IsThemeActive.
- VGA demystified — the definitive guide to OzVGA, SE_VGA and everything
VGA-related
- How does resolution setting work in WM2003SE? What's native/SE VGA? How
can I increase font sizes in native VGA? How do I configure the miriad text input fields in
OzVGA?
- Installation with DPI-Specific Resources
- As you are developing applications for new high-resolution Pocket PCs
or Smartphones with 192 DPI resolution displays, you may wonder where the new high-resolution
bitmaps and resources should go. The simplest solution is to include them in the same EXE
alongside the old, low-resolution resources. However, this approach wastes storage space. Device
screens only have one resolution, which never changes for that device. Therefore, if the
application is deployed to a 96 DPI device, it doesn't need 192 DPI resources — and vice
versa.
- Applying an update UI notification interface to user-defined controls
- I often run into a situation where I want to apply a UI update
notification to a user-defined control in the way as it is provided by the MFC for menu items,
tool bar buttons and status bar controls. In this case a self-defined message handler is used
to properly respond to an UPDATE_COMMAND_UI notification. Unfortunately, MFC does not support
this mechanism by default for user-defined controls, e.g. like a push button. Well, there's
still a way to manage it. Follow the step by step procedure below to understand the principles
what to do. You may want to study the complete context in the source code of the sample.
- Vista UAC: The Definitive Guide
- When I began this project, I didn't think it would take me two weeks to
complete. Well, here I am finally writing the article portion of the whole thing. Don't worry,
I took really good notes. I am splitting this article into three major segments: The first segment
is a broad overview for those who really don't care about the nitty-gritty details of UAC and just
want to get to the good stuff. The second segment gets into the really nasty stuff...for those of
you who enjoy information overload. The last segment covers UAC Permanent Links — load
multiple elevated DLLs, execute multiple elevated functions, and start multiple processes elevated
— all of that with just displaying one UAC dialog from a non-elevated process. And now,
without further ado, the article.
- Update Command UI Handlers Do Not Work for Menu Attached to a Dialog
Box
- Changing the state (enable/disable, check/uncheck, change text) of a menu
item from its command user-interface (UI) handler does not work correctly if the menu is attached
to a dialog box.
|