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 — 1998 Index


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




December 1998 — Vol 13 No 12



CODE MSJDEC98 (3,169,167 Bytes)

Run Your Apps on a Variety of Desktop Platforms With Terminal Server
The Terminal Server Edition of Windows NT Server 4.0 can run an entire app on the server side. Only graphics, keyboard, and mouse input are transmitted between client and server. This means it's now possible to run your apps just about anywhere.
Frank Kim
Build Reliable and Scalable N-tier Applications That Run On Both Windows NT and Unix
Working in a heterogeneous environment is a fact of life for most developers. It's gotten easier lately since Microsoft and major Unix vendors are working together to improve interoperability between COM and Unix. Find out how you can benefit.
Mai-lan Tomsen
Control Spy Exposes the Clandestine Life of Windows Common Controls, Part III
Mark Finocchio completes his discussion of Control Spy and the Windows common controls by covering the pager, toolbar, rebar, tooltip and other controls. He also explains the controls that were not changed with the release of Internet Explorer 4.0.
Mark Finocchio
Editor's Note
Joe Flanigen
C++ Q&A
In September Paul DiLascia wrote some code to change the form in a splitter window when there is a tree view on the left and a display view on the right. In response to alert readers' comments, he proposes a better solution this month.
Paul DiLascia
Win 32 Q&A
Jeffrey Richter discusses delay-load DLL, a new feature offered in Visual C++ 6.0. A delay-load DLL is implicitly linked, but the loader will not load the DLL until your code actually calls a function in the DLL. This keeps the loader from doing all its work up front, improving initialization efficiency. It also averts runtime errors in situations where the application has to do something such as determine which OS it's running on before deciding which DLL to load.
Jeffrey Richter
Visual Programmer
Visual C++ wrapper classes are great. Just point the wizard towards an ActiveX control and it generates a wrapper class around the control so you don't have to deal with the COM interfaces. But the wrapper class can hide information your app could use.
Shepherd & Wingo
Under the Hood
Matt Pietrek covers a new feature in Visual C++® 6.0 -- the /DELAYLOAD linker option. Executables that use the /DELAYLOAD option don't implicitly link to the DLLs that you specify with /DELAYLOAD. Instead, the DLL isn't loaded until the first call to one of its functions.
Matt Pietrek



November 1998 — Vol 13 No 11



CODE MSJNOV98 (753,514 Bytes)

A File System for the 21ST Century: Previewing the Windows NT 5.0 File System
Many programming tasks will be simplified by innovations in NTFS, the Windows NT 5.0 file system. We'll show you some cool new features like hard links, reparse points, disk quotas, and file stream compression and encryption.
Jeffrey Richter and Luis Felipe Cabrera
Windows NT 5.0 Brings You New Telephony Development Features with TAPI 3.0
Windows NT 5.0 will introduce TAPI 3.0, the newest version of Microsoft's telephony API. Here's an inside look at what this means for developers, including new TAPI COM interfaces, streaming media control, and support for Internet telephony.
Michelle Quinton
Supporting Multilanguage Text Layout and Complex Scripts with Windows NT 5.0
Windows NT 5.0 provides new services that support multiple language text layout. Explore the latest techniques for developing international-ized applications, including Uniscribe, the Windows Unicode script processor.
F. Avery Bishop, David C. Brown, and David M. Meltzer
Editor's Note
Joe Flanigen
C++ Q&A
I have two views. One view needs to check if the other view has been instantiated yet-that is, if the pointer to it is valid. How do I test a pointer to see if it points to a valid class in memory?
Paul DiLascia
Wicked Code
Shared memory is a breeze to allocate and use; you just have to know how. The secret is a pair of API functions named CreateFileMapping and MapViewOfFile.
Jeff Prosise
Security Briefs
If you're having problems with a COM-based distributed application it may be your security settings. What do you need to know about COM security?
Keith Brown
House of COM
After spening years learning to get the most out of the COM programming model, along comes MTS, which takes away many of the tools and techniques we've come to depend on. If you're trying to trick the MTS runtime into doing what you want, here's help.
Don Box



October 1998 — Vol 13 No 10



CODE MSJOCT98 (530,530 Bytes)

An Inside Look at Developing Applications Using the New Features of Visual C++ 6.0
Joe Massoni, the Technical Support lead for Visual C++ 6.0, walks you through the issues relevant to porting your existing projects to the newest version of Visual C++, and explains the basic enhancements to the compiler, linker, and runtime library.
Joe Massoni
Visual C++ 6.0 Brings Home a Full Bag of Tricks and Treats for MFC Developers
The release of Visual C++ 6.0 means new goodies for MFC-based application development. We'll give you an overview of what's new in MFC 6.0, including an in-depth look at the enhanced support for Internet Explorer 4.0 common controls.
Paul DiLascia
Effective COM Programming: Seven Tips for Building Better COM-based Applications
Many developers want to embrace the COM lifestyle, but need some divine inspiration. Here are seven simple rules from some COM gurus that will help you design and implement more effective COM-based applications.
Don Box, Keith Brown, Timothy J. Ewald, Chris Sells
Editor's Note
Joe Flanigen
C++ Q&A
Paul DiLascia implements TrackMouseEvent so you can keep track of mouse movements, even if the user quickly moves the mouse out of your app window.
Paul DiLascia
Bugslayer
You could wish away the deadlocks in your multithreaded apps, or you could follow John Robbins's tried and true techniques.
Jon Robbins
Visual Programmer
If you're considering using different environments to develop COM-based software you might want to know when to use ATL or MFC and how you can use both.
George Shepherd and Scot Wingo
House of COM
Don Box's recommended COM and MTS book list.
Don Box



September 1998 — Vol 13 No 9



CODE MSJSEP98 (3,298,761 Bytes)

Gain Control of Application Setup and Maintenance with the New Windows Installer
The new Windows installer does more than just copy files; it lets your Windows 95, Windows 98, or Windows NT 5.0-based app tune its disk usage and automatically reinstall missing files. It also supports the Zero Administration Windows initiative.
Mike Kelly
Take Advantage of MTS in Your Distributed System with Custom Resource Dispensers
MTS resource dispensers manage resource pools, automatically enlist them in transactions, and provide standard interfaces. With custom resource dispensers, you can integrate disconnected or nontransactional resources into the MTS framework.
Maros Cunderlik
Control Spy Exposes the Clandestine Life of Windows Common Controls, Part II
Mark Finocchio looks at more Control Spy features and explains how to provide custom notification handlers and add custom code. He'll also discuss more of the common controls introduced or updated with Microsoft Internet Explorer 4.0.
Mark Finocchio 51
Editor's Note
MSJoe takes a fast look at Whisper (Speech Recognition), Whistler (Speech Synthesis from Text-to-Speech) and SAPI, the Speech Application Programing Interface.
Joe Flanigen
Under the Hood
This month: Unloading DLLs from memory with tools like NukeDLL
Matt Pietrek
Win32
Jeffrey Richter discusses using AUTORUN in your application, and also how to disable it
Jeffrey Richter
House of COM
Using the Active Server Pages (ASP) runtime environment for COM components without snags.
Don Box
C++ Q&A
This month Paul DiLascia covers form trickery
Paul DiLascia



August 1998 — Vol 13 No 8



CODE MSJAUG98 (426,866 Bytes)

Custom Performance Monitoring for Your Windows NT Applications
Monitoring the health of your computer system is incredibly important. That's why Microsoft built performance monitoring into Windows NT. Jeffrey Richter shows you a C++ class that lets you easily use performance data within your own apps.
Jeffrey Richter
Implementing a Web View Namespace Extension Using Active Directory Services
Now you can view the Web with Windows Explorer using a namespace extension. We'll explain how to create and customize a Web View with HTML, the Active Template Library, and the Active Directory Services Interface.
Todd Daniell, Brian Daigle, Doug Bahr, and Dave Mims
Understanding Interface Definition Language: A Developer's Survival Guide
Interface Definition Language is the preferred way to describe your COM interfaces, but many developers have only a rudimentary knowledge of IDL. Here's a survival guide that will show you what IDL is, when you need it, and the basics of using it.
Bill Hludzinski
Editor's Note
MSJ Editor Joe Flanigen survived the sauna of TechEd in New Orleans.
Joe Flanigen
Under the Hood
This month Matt illustrates how Windows NT handles 16-bit Windows and DOS applications.
Matt Pietrek
Wicked Code
There's a lot more to supporting drag-and-drop in a tree view control than meets the eye.
Jeff Prosise
Bugslayer
Crash handlers are those routines that can gain control right before the application shows that nice fault dialog that drives your users crazy. While the exception handlers are C++-specific, the crash handlers work with both C++ and Visual Basic®-based code.
John Robbins
C++ Q&A
Star C++ columnist Paul DiLascia mends some previous 'BooBoos'
Paul DiLascia



July 1998 — Vol 13 No 7



CODE MSJJUL98 (3,072,436 Bytes)

Microsoft Message Queue is A Fast, Efficient Choice for Your Distributed Application
How do you get the various parts of your distributed app to communicate with each other? One option is message queuing middleware like the Microsoft Message Queue (MSMQ), which lets applications communicate reliably on unreliable networks.
David Chappell
Use MSMQ and MTS to Simplify the Building of Transactional Applications
MSMQ offers built-in transactional support, so your app can utilize MTS. Not only will you be able to offer the flexibility of asynchronous messages, you can ensure your data won't be compromised by inconsistent state.
Mark Bukovec and Dick Dievendorff
Control Spy Exposes the Clandestine Life of Windows Common Controls, Part I
Mark Finocchio introduces Control Spy, a suite of 22 programs-one for each Windows common control-that will give you better insight into the new common controls from Microsoft Internet Explorer 4.0 and the latest updates to the old favorites.
Mark Finocchio
Editor's Note
MSJ Editor Joe Flanigen presents more from the Year 2000 and other strange date anomalies.
Joe Flanigen
Under the Hood
What's ahead for 64-bit computing? Matt Pietrek tackles that question this month.
Matt Pietrek
Visual Programmer
When you create a new class in Visual C++® using the ClassWizard, the easiest way to put a COM wrapper around it is to check the Automation option. But how do you create the COM wrapper for existing classes?
George Shepherd and Scot Wingo
House of COM
Don Box celebrates the fifth birthday of COM by looking current state of COM, reflecting on what the COM designers got right, and what needs improvement.
Don Box
C++ Q&A
This month Paul DiLascia discusses how to interrupt a process with a cancel dialog.
Paul DiLascia



June 1998 — Vol 13 No 6



CODE MSJJUNE98 (303,282 Bytes)

Exploring DirectX 5.0, Part II: DirectSound Gives Your Apps Advanced 3D Sound
The value of sound is a given; the question today is one of sophistication. Will your app generate yesterday's beeps and clicks, or will it offer seamlessly integrated 3D sound? DirectX 5.0 lets you add sophisticated sound effects to your apps today without pain.
Jason Clark
How to Design Reusable HTTP Components by Exploiting WinInet and COM
Aaron Skonnard first gives you a brief WinInet primer. Then, he shows how to implement two ATL-based COM components: IHttpRequest and IQuoteProvider. Finally, he ties it all together in a sample application called Stock Watcher.
Aaron Skonnard
Keeping an Eye on Your Browser by Monitoring Internet Explorer 4.0 Events
Being able to control Internet Explorer is great, but if you can't tell what it's doing, you don't have full control. For this reason, Internet Explorer exposes an event interface through which you can monitor its activity and perform certain actions.
Scott Roberts
Editor's Note
Poseidon, Tiramisu, Sequoia, and Gdansk, SDK, RTP, AVI, Y2K and AHHHHHHHH!
Joe Flanigen
Under the Hood
This month: Just Enough Assembly Language to Get By, Part II. Matt Pietrek continues his coverage from February to include additional instructions and instruction sequences, and some of the most common scenarios that occur when an instruction faults.
Matt Pietrek
Win 32
The Win32 specification states that no relationship exists between a parent process and any of its child processes once a child process has been created. Many other operating systems support a parent/child relationship policy, so if you kill a process, the system automatically kills all of the process's descendant processes.
Jeffrey Richter
Bugslayer
This month: Getting the most out of debugging. Learn to use a kernel debugger and get to the root of problems between your app and the operating system.
John Robbins
C++ Q&A
One of the great features of MFC is that it provides a way for any kind of object—not just a window—to handle menu commands, unlike in Windows. This month Paul DiLascia shows you how to get objects to execute menu commands.
Paul DiLascia



May 1998 — Vol 13 No 5



CODE MSJMAY98 (223,797 Bytes)

Microsoft Windows CE 2.0: It's Not Just for Handheld PCs Any More
If you think Windows CE is just a pared-down version of Windows 95, or that it's only for the Handheld PC, take a closer look at version 2.0. Designed to be small, portable, fast, and scalable, Windows CE is far more comprehensive than you may imagine.
Paul Yao
Minimizing the Memory Footprint of Your Windows CE-based Program
A Windows CE-based machine may have only 1 or 2MB of RAM. While the amount of memory may be small, the functions available for managing memory are quite complete. Windows CE implements almost the entire Win32 memory management API.
Douglas Boling
Windows CE 2.0 Networking Offers Exciting Mobile Computing Possibilities
One of the most appealing features of Windows CE 2.0 is its robust networking capability. It supports many types of communications hardware including serial links, modems, and Ethernet cards, as well as almost all of Microsoft's networking APIs.
Anthony Jones
Editor's Note
Joe Flanigen
Under the Hood
A handy feature of Windows NT® is the performance data counter which provides information about a system like running processes, interrupts per second, network I/O stats, etc.In March, Matt Pietrek covered accessing its interface through Visual Basic. This month he does the same for C++.
Matt Pietrek
Wicked Code
Sooner or later, most COM programmers discover the need for outgoing interfaces. An outgoing interface is one that an object doesn't implement itself, but rather relies on its clients to implement.
Jeff Prosise
ActiveX Q&A
Because threads were not a problem for Visual Basic 4.0, programmers can get confused using Visual Basic 5.0 with its threading options. Don Box, this month, sheds some light on a sticky problem.
Don Box
C++ Q&A
This month learn the difference between CToolBar and CToolBarCtrl, and when you should use them.
Paul DiLascia



April 1998 — Vol 13 No 4



CODE MSJAPR98 (303,282 Bytes)

Build MTS Components with Visual Basic for Deployment in Your ASP-Based Apps
There are several benefits to moving your business logic and data access code out of ASP pages and into COM-based DLLs. Code is easier to maintain, you can use a multitier design, and your app can exploit the integration between IIS and the MTS runtime.
Ted Pattison
For the Telephony API, Press 1; For Unimodem, Press 2; or Stay on the Line
Windows NT 5.0 will support TAPI 3.0, but to exploit that down the road you'll need to understand TAPI 1.x and 2.0 now. Operators are standing by to give you all the TAPI information you need, and explain how Unimodem will provide dialing assistance.
Hiroo Umeno
Take IIS Customization to the Next Level by Writing ISAPI Filters and Script Interpreters
You can make IIS handle HTTP requests in almost any way you want. With an ISAPI filter, you can modify how HTTP requests are processed by the server. And a server-side script interpreter can customize how certain types of files will be used.
Leon Braginski and Matt Powell
Editor's Note
Joe Flanigen
Under the Hood
You've made a call to a function in some DLL and the linker complains that it can't find the symbol. It doesn't take too much to figure out that you need to add another library (.LIB) file to the linker's command line. But which .LIB file?
Matt Pietrek
Visual Programmer
Integrating components written in two different languages like C++ and Visual Basic® can be tricky. But there are actually several ways to get Visual Basic working with dialogs (or some other C++ class) inside an MFC DLL.
George Shepherd and Scot Wingo
Bugslayer
This month John Robbins explains how to find the exact function, source code file, and line where a crash occurred when you only know the crash address.
John Robbins
C++ Q&A
This month Paul DiLascia writes a C++ class called CModuleVersion that gets the version number from a DLL, and a demo program called VersionDlg that shows how to use CModuleVersion.
Paul DiLascia



March 1998 — Vol 13 No 3



CODE MSJMAR98 (104,297 Bytes)

Pop Open a Privileged Set of APIs with Windows NT Kernel Mode Drivers
Windows NT drivers are not just for devices; they're a means of doing things previously considered impossible. Understanding them not only provides valuable insight into Windows NT, it teaches you APIs you can use without writing any driver code.
James Finnegan
Understanding the DCOM Wire Protocol by Analyzing Network Data Packets
DCOM is simply a high-level network protocol that enables COM-based components to interoperate across a network. You'll explore DCOM by analyzing the data packets transmitted across a network during the execution of COM-enabled apps.
Guy and Henry Eddon
Why Do Certain Win32 Technologies Misbehave in Windows NT Services?
Some Win32 technologies such as MFC, ODBC, and MAPI behave differently in services than they do in interactive user apps. There are three major areas of concern for a service developer: security, window stations and desktops, and registry hives. existing WinHelp projects or build new HTML-based help systems.
Frank Kim
Editor's Note
Joe Flanigen
Under the Hood
A handy feature of Windows NT® is the performance data counter which provides information about a system like running processes, interrupts per second, network I/O stats, etc. But the interface is horrible. There is an API-based interface that is even accessible in Visual Basic. Matt Pietrek covers it this month.
Matt Pietrek
Win 32 Q&A
Using the Task Manager in Windows NT to kill processes and services.
Jeffrey Richter
ActiveX Q&A
No technology since the dawn of COM has been more misunderstood than MTS, and no one aspect of MTS has been more misunderstood than the issue of state. Don Box puts the rumors to rest once and for all.
Don Box
C++ Q&A
How can you disable the tabs in a CTabCtrl? There's no easy way. But you can almost always defeat Windows® if you're prepared to spend the time and the brain power.
Paul DiLascia



February 1998 — Vol 13 No 2



CODE MSJFEB98 (390,785 Bytes)

May the Force Feedback Be with You: Grappling with DirectX and DirectInput
Much of the gruntwork involved with game development has been greatly simplified by DirectX® 5.0. Jason Clark introduces one of its components, DirectInput®, plus you'll see a sample application that demonstrates the use of a force feedback joystick.
Jason Clark
Get Fast and Simple 3D Rendering with DrawPrimitive and DirectX 5.0
DrawPrimitive, a brand new interface for 3D object creation, aims to change the balkanized world of 3D graphics development. Ron Fosner examines the use of DrawPrimitive, a new interface that greatly improves the usability of Direct3D®.
Ron Fosner
Manipulate Windows NT Services by Writing a Service Control Program
Every day, developers come up with new reasons to build Windows NT® services. If you're writing one, it's important to understand service control programs because they are the applications that allow administration of your service.
Jeffrey Richter
Editor's Note
Joe Flanigen
Under the Hood
Welcome to Matt Pietrek's "Just-Enough-Assembly-Language-to-Get-By Guide," the source for programmers who need to know at least a little assembler to be able to debug compiled code.
Matt Pietrek
Bugslayer
In the December issue John Robbins introduced TraceSrv, a utility that makes it simple to have all the trace statements for your application go to the same place, whether from multiple processes or from many different machines. This month he shows you how to implement TraceSrv in existing projects by calling a single function.
John Robbins
Visual Programmer
The first round of tools for Windows® CE 2.0 is out, and this month we take a look at Visual C++® for Windows CE 2.0 and show what you face in porting your MFC applications to Windows CE.
George Shepherd and Scot Wingo
C++ Q&A
In general, how do you create a window class that's exactly like one of the MFC default classes, but with one or two modifications, and how do you get the class name?
Paul DiLascia



January 1998 — Vol 13 No 1



CODE MSJJAN98 (414,655 Bytes)

How Microsoft Transaction Server Changes the COM Programming Model
Microsoft Transaction Server isn't magic, but it does let you write simple, COM-based servers that are powerful and scalable. We'll give you five basic rules that will actually make your object development with MTS easier.
David Chappell
Give Your Applications the Hot New Interface Look with Cool Menu Buttons
This year's hot GUI look is the cool menus seen in Office 97. Just so you're not left wearing last year's rags, Paul DiLascia explains how he implemented the cool menu buttons and provides some reusable classes that you can use in your own apps.
Paul DiLascia
The New HTML Help System Extends Online Help From the Desktop to the Web
HTML Help allows seamless integration between local and remote help files through your Web browser, HTML, and ActiveX controls. With HTML Help Workshop, you can convert your existing WinHelp projects or build new HTML-based help systems.
Ted Faison
Editor's Note
Joe Flanigen
Under the Hood
Ever since Matt Pietrek wrote his PEDUMP article (MSJ, March 1994), many people have asked how to access the data for an arbitrary resource. Finding hidden dialog controls was just the excuse he needed to write some C++ classes that traverse the PE resource format.
Matt Pietrek
Win 32 Q&A
In an update to an earlier column, Jeffrey Richter expands on some techniques for writing an unsetup program that deletes itself from the disk.
Jeffrey Richter
ActiveX Q&A
Why would you want to find out the host address of the caller inside a method? Can it be done? Ask Don Box this month.
Don Box
C++ Q&A
I am writing an MFC app that is not a doc/view app. To implement the app with MFC, I used a document object that doesn't do anything. But I can't get the document to display the right app name.
Paul DiLascia

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