Click Here to Install Silverlight*
United StatesChange|All Microsoft Sites
MSDN
|Developer Centers|Library|Downloads|Code Center|Subscriptions|MSDN Worldwide
Search for


Advanced Search
MSDN Home > MSJ > Back Issues

Microsoft Systems Journal — 1999 Index


Many past issues of MSJ are still available. To order online click here.




December 1999 — Vol 14 No 12



CODE MSJDec99 (1,173,539 Bytes)

Design Your Application to Manage Performance Data Logs Using the PDH Library
Performance data is useful for more than just system analysis. You can use it to reveal potential application bugs. The ability to create, and better yet, read and analyze performance data logs with PDH.DLL further facilitates this problem-solving process.
Gary Peluso
More Reusable MFC Goodies: Simplify Your (Programming) Life with the COMToys Library
COMToys isn't an all-embracing system; it's more of an ad hoc collection of macros, functions, and classes. But, whether or not you're using MFC, COMToys does offer an approach to programming COM in C++ that works for any kind of COM object.
Paul DiLascia
Extending ATL 3.0 Control Containment to Help You Write Real-world Containers
VBLite is a full-blown control container suitable for use as a simple form-based development environment that was created by extending ATL 3.0. You'll see how it was developed and get a set of ATL extension classes to use in your own apps.
Dharma Shukla and Chris Sells
Editor's Note
Joe Flanigen
C++ Q&A
This month Paul DiLascia disables the scrolling of a virtual list control.
Paul DiLascia
Basic Instincts
In this new column, Ted Pattison discusses the proper use of SetComplete in MTS.
Ted Pattison
Visual Programmer
George Shepherd on debugging an ActiveX-based DLL and accessing a nondefault interface.
George Shepherd
Bugslayer
John Robins on utilizing the power of the WinDBG debugger that is included in the Platform SDK.
John Robbins


November 1999 — Vol 14 No 11



CODE MSJNov99 (395,299 Bytes)

MyBand is Your Band: More Reusable MFC Goodies with Band Objects and COMToys
One day, Paul DiLascia got up and decided to write his own desk band. By the time he was finished, he had built a BandObj framework that reduces writing a band object to a few lines of code. It's part of his own COM programming system called COMToys.
Paul DiLascia
The COM+ Security Model Gets You out of the Security Programming Business
Security has a deserved reputation for being complicated. It's typically the last thing that developers work on, and when they do, it often breaks the application. But with COM+, you can avoid having to develop this code yourself.
Guy Eddon
Using OLE DB and ADO 2.5 to Represent Nonlinear, Nonrelational Types of Data
The new cotypes introduced by OLE DB 2.5 accommodate types of data that can't be squeezed into rectangular rowsets. You'll see how to use these new cotypes, how they integrate with the existing OLE DB object model, and their impact on ADO.
Bob Beauchemin
Editor's Note
Joe Flanigen
C++ Q&A
This month-- Control Panel applets in C++ and MFC.
Paul DiLascia
Wicked Code
Taking the mystery out of monikers.
Jeff Prosise
Security Briefs
This month Keith Brown looks at Windows NT® privileges from a programmer's perspective.
Keith Brown
Under the Hood
Where has all the memory gone? Managing memory and resource leaks.
Matt Pietrek


October 1999 — Vol 14 No 10



CODE MSJOct99 (625,004 Bytes)

Writing OLTP Apps with Visual Basic, Microsoft Transaction Server, and SQL Server 7.0
If you plan to run MTS-style transactions, you should know how SQL Server works with the MTS runtime and the Windows NT Distributed Transaction Coordinator. Understanding how all these pieces fit together will help you optimize your app.
Ted Pattison
Introducing the Terminal Services APIs for Windows NT Server and Windows 2000
Frank Kim is back to explain the differences between Windows NT Server, Terminal Server Edition, and Windows 2000 Terminal Services. He'll show you the new Terminal Services APIs, and give you a preview of Virtual Channels in Windows 2000.
Frank Kim
Keeping an Eye on Your NTFS Drives, Part II: Building a Change Journal Application
Last month, you were introduced to the Change Journal. This month, you'll see how to write a fully functional Change Journal app. Our sample app demonstrates all the techniques described, and can be used as a template project.
Jeffrey Cooperstein and Jeffrey Richter
Editor's Note
Joe Flanigen
C++ Q&A
This This month-- Optimizing your splash screen.
Paul DiLascia
Bugslayer
When SEH translators don't work.
John Robbins
Visual Programmer
What is active scripting, and how can you use it in your applications.
George Shepherd
Win32
More on creating threads by calling the C runtime library's _begin- threadex function.
Jeffrey Richter


September 1999 — Vol 14 No 9



CODE MSJSept99 (239,670 Bytes)

Keeping an Eye on Your NTFS Drives: the Windows 2000 Change Journal Explained
The Change Journal is a database that contains a list of every changed file or directory on an NTFS 5.0 volume. You'll see this new Windows 2000 technology explained and be introduced to the API that's used to access it.
Jeffrey Cooperstein and Jeffrey Richter
The COM+ Event Service Eases the Pain of Publishing and Subscribing to Data
Notifying interested parties of changes to data is a classic problem of distributed computing. But the COM+ event service provides an infrastructure that makes publishing and subscribing to data easy, as our sample program will demonstrate.
David Platt
Manipulate and Query OLAP Data Using ADOMD and MDX, Part II: Writing the App
Last month, Carl Nolan introduced you to ADOMD and MDX in order to construct a Web-based application for querying OLAP data. Now you'll see how to construct the app so that you'll be able to drill down into a particular member or data cell.
Carl Nolan
Editor's Note
Joe Flanigen
C++ Q&A
This month Paul DiLascia covers adding animation to a toolbar and extracting icons from exe files.
Paul DiLascia
House of COM
Don Box explains why contexts (OS-level abstractions that have a supporting API and underlying implementation) are as real as processes or threads.
Don Box
Visual Programmer
George Shepherd demonstrates how to turn a bitmap into a picture suitable for an ActiveX control by using the function OleCreatePictureIndirect.
George Shepherd
Under the Hood
This month Matt Pietrek tours part of the Windows NT loader code and demonstrates a nifty trick for getting loader status information from the loader.
Matt Pietrek


August 1999 — Vol 14 No 8



CODE MSJAug99 (463,522 Bytes)

Exploring Kerberos, the Protocol for Distributed Security in Windows 2000
Why did Microsoft adopt Kerberos as the default distributed security protocol for Windows 2000? Kerberos provides several features that aren't available in NTLM. Kerberos is also faster than NTLM, and it's a multivendor standard.
David Chappell
Manipulate and Query OLAP Data Using ADOMD and Multidimensional Expressions
Multidimensional Expressions (MDX) provides a rich and powerful syntax for querying and manipulating the multidimensional data stored in OLAP server cubes. ActiveX Data Objects Multidimensional (ADOMD) is used to provide client access to the data.
Carl Nolan
Logo Requirements and More: Solutions for Writing Great Windows 2000-based Apps
Whether or not you want the Windows 2000 logo on your product, you'll find the Windows 2000 Application Specification useful, although sometimes it's too general. Here are some specific tips that augment it to help you use Windows 2000 to its fullest.
Dino Esposito
Editor's Note
Joe Flanigen
C++ Q&A
Making a recent file list appear in a menu is easy, but how does it work? And how can you have more than one MRU list?
Paul DiLascia
Bugslayer
This month John Robbins finds a bug in his debugger, but works around it with a snappy quick fix.
John Robbins
Security Briefs
This month Keith Brown looks at Windows NT® privileges from a programmer's perspective.
Keith Brown
Wicked Code
One of the most eagerly anticipated enhancements that Windows 2000 will bring to COM is support for asynchronous method calls. Let Jeff Prosise show you how to implements this new feature.
Jeff Prosise


July 1999 — Vol 14 No 7



CODE MSJJuly99 (1,787,021 Bytes)

Updated with New Kernel Features, Windows CE 3.0 Really Packs a Punch
Ready for a Web server in your Handheld PC? This and other changes in Windows CE 3.0 should make it a major upgrade to the smallest member of the Windows family. Here's your guide to the newest kernel and system API features in Windows CE.
Douglas Boling
DirectX 6.0 and Windows Media Technologies Bring Multimedia to Windows CE
DirectX and Windows Media Technologies let you take advantage of real-time multimedia on Windows CE-based devices. We'll show you the developer side of these new features and how they were implemented in the Sega Dreamcast console.
Rod Deyo and Mike Jazayeri
The Tools You'll Need to Build Embedded Apps: Windows CE Toolkit for Visual C++ 6.0
The great thing about developing for Windows CE is that you can use the same tools and technologies you've been using to create desktop apps. We'll give you an inside look at the new Windows CE Toolkits for Visual C++ and Visual Basic.
Steve Zimmerman
Editor's Note
Joe Flanigen
C++ Q&A
This month Paul DiLascia covers exception handling.
Paul DiLascia
Nerditorium
This month James Finnegan explores how to notify user-mode applications asynchronously from kernel mode in more depth.
James Finnegan
Win32
When do you use the CreateThread function., and when do you use _beginthreadex instead?
Jeffrey Richter
House of COM
Don Box shares what he's learned along the path to better OLE DB understanding.
Don Box


June 1999 — Vol 14 No 6



CODE MSJJun99 (665,155 Bytes)

Building a Store-and-Forward Mechanism with Windows 2000 Queued Components
Support for disconnected operation is extremely useful in distributed computing. The Queued Components service of Windows 2000, which uses MSMQ instead of RPC as the transport mechanism for COM, is a fairly easy way to get disconnected operation.
David Platt
Exposing Your Custom Data In a Standardized Way Through ADO and OLE DB
How do you expose custom and proprietary data formats through a common and standard programming interface? Here, you'll see three ways to pack your data into recordsets so that they can be successfully handled later via OLE DB and ADO.
Dino Esposito
Distributed Authoring and Versioning Extensions for HTTP Enable Team Authoring
HTTP 1.1 lets you edit Web content from remote locations, but it lacks features needed for team development, such as file locking and versioning. Distributed Authoring and Versioning is a set of extensions that fill this gap.
Leonid Braginski and Matthew Powell
Editor's Note
Joe Flanigen
C++ Q&A
This month Paul DiLascia examines where MFC sets the AfxWndProc and demonstrates a way to get the exact mouse position that was valid when a Windows message is triggered.
Paul DiLascia
Bugslayer
What to do when you have too many trace statements for effective debugging.
John Robbins
Visual Programmer
Handling BSTRs when writing COM objects in C++.
George Shepherd
Under the Hood
As the Windows programming paradigm shifts from standalone applications toward client-server, n-tier, and distributed computing, programmers are pushed into learning technologies completely new to them such as ActiveX Data Objects (ADO) and Microsoft Transaction Server (MTS).
Matt Pietrek


May 1999 — Vol 14 No 5



CODE MSJMAY99 (221,765 Bytes)

Windows 2000 Brings Significant Refinements to the COM(+) Programming Model
Many new and sexy features are planned for Windows 2000. Some of the most profound changes are slated for the COM programming model, namely the integration of component configuration and interception into the core model and runtime.
Don Box
Using Visual Basic to Integrate MSMQ into Your Distributed Applications
The Microsoft Message Queue (MSMQ) makes it possible to run client apps from across a WAN or a dial-up connection much more reliably than a system that uses COM. Here, you'll learn important MSMQ design and implementation techniques.
Ted Pattison
Unraveling the Mysteries of Writing a Winsock 2 Layered Service Provider
The Winsock 2 SPI can be used to extend the functionality of an existing transport service provider by implementing a layered service provider. Dissecting the Microsoft Platform SDK layered sample can make it clear how.
Wei Hua, Jim Ohlund, Barry Butterklee
Editor's Note
Joe Flanigen
C++ Q&A
Part two of the discussion on Folder Tabs like the ones found in Excel, Visual Studio and other Microsoft products. This month Paul DiLascia presents two new classes, CFolderFrame and CFolderView.
Paul DiLascia
Wicked Code
The secret to being efficient on the wire is to know Interface Definition Language (IDL) cold. IDL is the language in which COM interfaces are defined, and it's the language you feed to MIDL to build type libraries and proxy/stub DLLs.
Jeff Prosise
Security Briefs
After reading this column, you'll know some of the basic tenets of access control in Windows NT, and some interesting dirt on window stations and desktops. Plus see a cool new feature of Windows® 2000 that you can use today if you install an add-on component that ships with Windows NT 4.0 Service Pack 4 (SP4).
Keith Brown
House of COM
The folks from Redmond who bring you COM have been burning the midnight oil, adding plenty of completely new stuff to the once compact COM. This column attempts to catalog the onslaught of new functionality slated for Windows 2000.
Don Box


April 1999 — Vol 14 No 4



CODE MSJAPRIL99 (1,039,824 Bytes)

New Windows 2000 Pooling Functions Greatly Simplify Thread Management
Microsoft has implemented new thread pooling functions in Windows 2000 to make thread creation, destruction, and general management easier. Though not perfect for every situation, in many cases these new functions can save you hours of development time.
Jeffrey Richter
Design a Single Unicode App that Runs on both Windows 98 and Windows 2000
Windows 2000 is expected to have the best international support of any Windows OS to date. Well address real-world issues such as how to design your Unicode-based app to run as a single executable on both Windows 9x and Windows 2000.
F. Avery Bishop
Write ActiveX Controls Using Custom Interfaces Provided by ATL 3.0, Part III
This third and final installment on ActiveX controls examines the steps necessary to host these controls using ATL 3.0. Youll learn how to host controls both in standalone applications as well as from within COM servers.
Brent Rector and Chris Sells
Editor's Note
MSJ editor Joe Flanigen illuminates recent developments with the Microsoft VM for Java.
Joe Flanigen
C++ Q&A
Paul DiLascia covers implementing tabs like those in Microsoft Visual Studio and in Microsoft Excel. Hint: they're not part of MFC
Paul DiLascia
Bugslayer
This month resident bugslayer John Robbins covers testing.
John Robbins
Visual Programmer
Learn the difference between each of the types of controls you can create using ATL this month with George Shepherd.
George Shepherd
Win 32
Jeffrey Richter explains how to get autorun to work with an HTML file.
Jeffrey Richter


March 1999 — Vol 14 No 3



CODE MSJMAR99 (266,543 Bytes)

Improve Your Debugging by Generating Symbols from COM Type Libraries
What if you could use COM type libraries to generate debug information? We'll walk you through the implementation of a program that can run against COM-based components (typically third-party ActiveX controls) to get a symbol file for your debugger.
Matt Pietrek
Make Your Windows 2000 Processes Play Nice Together With Job Kernel Objects
Windows 2000 gives you more control over your processes with its new job kernel objects, which let you group processes together and create sandboxes that restrict what they can do. You'll see how simple it is to use job objects in your own apps.
Jeffrey Richter
Write ActiveX Controls Using Custom Interfaces Provided by ATL 3.0, Part II
This month our ATL-based BullsEye ActiveX control gets some significant enhancements, including support for connection point and property change notifications, persistence, quick activation, and complete Visual Basic integration.
Brent Rector and Chris Sells
Editor's Note
MSJ Editor Joe Flanigen weighs in on the Furby/NSA security issue.
Joe Flanigen
C++ Q&A
Normally when there's a works-in-debug, fails-in-release problem, the first thing to look for is some code you accidentally put in an ASSERT statement. Paul Dilascia takes a look at the problem along with using the static keyword in object-oriented programs this month.
Paul DiLascia
House of COM
More marshal-by-value from Don Box this month.
Don Box
Nerditorium
I'm dedicating this column as my last hurrah of 16-bit Windows®, showing the 16-bit to Win32® integration enhancements that are now available under Windows 9x, Windows NT®, and Windows 2000. This month I'd like to stress that system-level development doesn't always have to involve kernel mode explicitly.
James Finnegan
Under the Hood
In this column, I'll describe a DLL that CoClassSyms hooks up with to generate a .DBG file. The generated .DBG file is the bare minimum required to get symbol information that is usable by a Microsoft® debugger.
Matt Pietrek


February 1999 — Vol 14 No 2



CODE MSJFEB99 (811,189 Bytes)

With Further ADO: Coding Active Data Objects 2.0 with Visual Studio 6.0
ADO is the proposed standard for programming any kind of data source for which an OLE DB-compliant provider exists. You'll see how to utilize ADO with Visual Studio 6.0, concentrating on the Visual J++ language WFC classes and Visual Basic 6.0.
Dino Esposito
Write ActiveX Controls Using Custom Interfaces Provided by ATL 3.0
ATL 3.0 contains a number of enhancements you can use when writing ActiveX controls. Sometimes you need to build upon the functionality ATL provides before your control works well with common containers like Visual Basic.
Brent Rector and Chris Sells
Building a Lightweight COM Interception Framework,Part II: The Guts of the UD
The Universal Delegator (UD) is an interception framework for COM programming that provides the code necessary to compose services on top of existing COM objects. This month you'll explore its internals, and learn how to write services to plug into it.
Keith Brown
Editor's Note
MSJ editor discusses the Windows 2000 Logo Program.
Joe Flanigen
C++ Q&A
Enabling and disabling a menu item in MFC.
Paul DiLascia
Bugslayer
More IMAGEHLP.DLL, SUPERASSERT, and the Working Set Tuner (WST).
John Robbins
Security Briefs
Understanding more about controlling access for anonymous users with the NULL session and the Guest account in Windows NT.
Keith Brown
Wicked Code
How do I connect multiple clients to a single object instance?" In other words, once a client has created an object instance, how can an interface on that object be made available to other clients so they can talk to the object? Jeff Prosise answes this very question.
Jeff Prosise


January 1999 — Vol 14 No 1



CODE MSJJAN99 (307,769 Bytes)

Building a Lightweight COM Interception Framework, Part I: The Universal Delegator
Keith Brown discusses the design and implementation of a lightweight, COM-based interception framework. His Universal Delegator provides for pluggable interception policies known as hooks, and can be used in client or server-side code.
Keith Brown
DirectX 6.0 Goes Ballistic With Multiple New Features And Much Faster Code
Finally, DirectX has the power and speed necessary to make it a really viable platform. Enhancements include the new Direct3D framework, a Reference Rasterizer, automatic texture management, and new rendering commands.
Ron Fosner
The Windows Driver Model Simplifies Management of Device Driver I/O Requests
I/O Request Packets are the messaging and data transfer lifeblood of Windows 98 and Windows 2000 device drivers. Ervin Peretz explains IRP queuing and related WDM development issues, and provides general-purpose functions for use in your own code.
Ervin Peretz
Editor's Note
Joe Flanigen
C++ Q&A
If you want to implement cool bars and cool menus, for now you'll have to write the code yourself. But don't worry, Paul DiLascia is here to help.
Paul DiLascia
Bugslayer
You could wish away the deadlocks in your multithreaded apps, or you could follow John Robbins's tried and true techniques.
John Robbins
Nerditorium
MSJ's new column that will cover tips, tricks, and techniques for using operating system resources in the real world.
James Finnegan
House of COM Q&A
Don Box discusses the infamous type library marshaler that just got a major boost in Windows NT® 4.0 Service Pack 4.
Don Box

© 2016 Microsoft Corporation. All rights reserved. Contact Us |Terms of Use |Trademarks |Privacy & Cookies
Microsoft