March 2001

Whistler: Build More Flexible Console Snap-ins with the MMC 2.0 Object Model

Microsoft Management Console (MMC) 2.0 provides a host of exciting new features for MMC users and snap-in developers. The new MMC 2.0 automation object model allows much of the user interface of MMC 2.0 to be accessed through script, and exposes events so that many tasks can now easily be automated. The new view extension model uses HTML to enable extensions to seamlessly integrate new user interfaces with those of existing snap-ins. MMC 2.0 also includes a specific view extension snap-in, the Extended View snap-in, which provides an interface similar to Web folders. Drag and drop support has been expanded, and console files now use the XML file format. Enhancements to console taskpads make it easier to accomplish tasks. Vivek Jhaveri

Microsoft .NET: Implement a Custom Common Language Runtime Host for Your Managed App

While most application developers may not need to write a custom host, understanding what is involved provides a great deal of insight into the architecture of the CLR. After covering how the CLR is started and loaded into a process, how to set the available configuration options, and how a host defines application domains, this article explains how to design a custom host. Important concepts include making the right decisions about the application domain boundaries for the host, configuring them correctly, loading and executing user code, and resolving references to assemblies. Setting security policy and unloading application domains as the application shuts down are also explained. Steven Pratschner

Resource Leaks: Detecting, Locating, and Repairing Your Leaky GDI Code

Leaks are possible, even in robust Windows-based applications. As bugs go, leaks are some of the most difficult to find, especially when they occur in graphics device interface (GDI) objects and menus. While free and third-party tools exist to detect such leaks, it is usually difficult to make the connection between the numeric handle value returned by the tool, and a bitmap or menu in your program. This can limit the usefulness of these tools. Custom tools can be built that detect, track down, and eradicate GDI and menu leaks. Here, three such tools are built using well-known and documented APIs. Christophe Nasarre

.NET Framework: Building, Packaging, Deploying, and Administering Applications and Types-Part 2

Part 1 of this series discussed how types built for the common language runtime can be shared among applications in the Microsoft .NET Framework regardless of the .NET languages used to build them. This second part continues with building assemblies by first covering security, sharing assemblies, versioning, localization, and side-by-side execution. Because in .NET two DLLs with the same name can be loaded as long as another attribute-which can include the localization language-differs, versioning is much easier than it used to be, so DLL Hell may become a thing of the past. Jeffrey Richter

COM: Handle Late-bound Events within Visual Basic Using an ATL Bridge

Since a Visual Basic client doesn't handle events directly from late-bound COM objects, it needs some way to capture all the events and parameters launched by any COM object server instantiated at runtime and not known at design time. This article explains how to build a bridge component that does just that. The bridge component transmits the intercepted event data back to the Visual Basic client using another supporting COM object that is capable of holding event data and attributes. The Visual Basic client receives the notification from the bridge and extracts all the information relative to the event from the supporting object. Carlo Randone

Graphics: Manipulate Digital Images in Internet Explorer with the DirectX Transform SDK

The Microsoft DirectX Transform is a Microsoft DirectX media API that can be used to create animated effects as well as to create and edit digital images for Windows-based applications. Scripting and HTML can be used to display an existing transform on a Web page, and improved transform support in Microsoft Internet Explorer 5.5 makes it easy to use transforms. This article provides step-by-step instructions for writing a transform as an ATL project and shows an example of an image transform. C++ is used to instantiate, configure, and display transforms in this project. Alex Lerner

COM+: Create a Compensating Resource Manager to Extend Your App's Transactional Features

A Compensating Resource Manager (CRM) is any COM+ object that uses the CRM facility provided by COM+, a set of tools that make it simple to create a custom resource manager for business scenarios that require handling some non-database operation (such as generating a file) as part of a transaction. This article provides an overview of transaction processing, distributed transactions, and the two-phase commit protocol for transactions. Also covered are the implementation and configuration of a CRM. Alan Gordon

Editor's Note: One Candle on the Cake-Happy Birthday to Us!

New Stuff: Resources for Your Developer Toolbox

Theresa W. Carey

Web Q&A: Detecting Security Settings, Printing from the WebBrowser Control, Hiding the Print Button, and More

Robert Hess

Serving the Web: HTML Scraping with Visual Basic and AsyncRead

Ken Spencer

Cutting Edge: Server-side ASP.NET Data Binding

Dino Esposito

Visual Programmer: Advanced ASP.NET Server-side Controls, Part 2

George Shepherd

Under the Hood: Displaying Metadata in .NET EXEs with MetaViewer

Matt Pietrek

C++ Q&A: Browser Detection Revisited, Toolbar Info, IUnknown with COM and MFC

Paul DiLascia

Code Download (517 KB)
.Chm Files