Table of Contents:
Books by Kenn Scribner:
0672315572c.jpg (9633 bytes) MFC Programming with Visual C++ 6.0 Unleashed

Learn tips, trick, and secrets from some wonderful MFC experts, and even some from Kenn (!). Kenn specifically wrote Chapters 16 (ATL introduction), 17 (scripting an MFC application using COM), 23 (Dynamic HTML from C++/MFC), 29 (MFC and OpenGL), and 30 (MFC and DirectX, especially DirectDraw).

With Dave White and others

0672318679c.jpg (5711 bytes) Teach Yourself ATL Programming in 21 Days

Learn to write effective, lean and mean ATL-based COM objects using the latest in Microsoft's powerful COM template library.


Get the book's sample code here!

0672319225c.jpg (5299 bytes) Understanding SOAP

See how to create SOAP-enabled applications and what makes the protocol so alluring to Web and distributed application developers.

Be sure to see our SOAP page for enhanced demo code!

With Mark Stiver

0672321114.jpg (15299 bytes) Applied SOAP: Implementing .NET XML Web Services

Take SOAP to a new level and learn how this awesome protocol is used within the .NET. Framework to implement full-bodied Web Services. Includes introduction to WSDL and provides many VB.NET and C# examples.

Also check out our .NET Web Service page for errata items and maybe more code!

With Mark Stiver

073562335.jpg (15299 bytes) Windows Workflow Foundation, Step by Step

This hot new technology, now a part of Windows Vista, is one you can take advantage of in your own applications! This book starts you off by showing you how to build workflow applications and incorporate workflow concepts in your Windows applications, whether they are Windows Forms, Windows services, or even ASP.NET-based.

Be sure to check out my Windows Workflow Foundation page for errata items as they come up.

0321613252.jpg (12288 bytes) Effective REST Services via .NET: For .NET Framework 3.5

What is old is new again, or so it seems to me. Representational State Transfer, or REST, uses the basic capabilities inherent in the Web ecosystem to transfer data and information. Services your applications call return representations of resources that you can manipulate. In this book, Scott and I show you how you can use .NET to it's fullest as we explore every technology available in .NET 3.5 for performing RESTful tasks. You'll learn about the basics, such as how to work directly with HTTP, designing URI's, and how IIS and ASP.NET work on the inside. Then we look at implementing several different RESTful services using ASP.NET handlers, the ASP.NET MVC framework, Windows Communication Foundation, and even Windows Azure for cloud-based RESTful implementations.

Of course we have our REST page for errata and source code download.

(Sadly, TechTalk doesn't publish any more, but hopefully these tidbits will be helpful to someone out there... And don't forget the wonderful CodeGuru site!)

(If you can believe it, Pinnacle is pulling the plug on VCD, so I'll post my articles here for you to access.  Must be something about the way I write... )

(I was fortunate enough to have been asked to write a few articles for CodeGuru. These were all topics I hadn't seen covered anywhere else and thought I'd dig into them a bit.)

(I love this Web site. I should write more!)

(Working with Wintellect is an honor. These articles are more in depth than most because of it. Enjoy!)

Free Code Downloads

Here are a few sample applications Kenn has written for various reasons...perhaps some of them are even useful! Note they are offered as-is...

  • Status bar in a C/SDK application (Win32)

    Shows how to interract with the status bar using C and the SDK. Also shows how to have the application automatically check status of various keys, such as NUM, SCRL, and CAPS and update the status bar when they change.

  • Gridlines and BOLD/color font in a list control with sorted columns (MFC)

    Written for my friend, Mohammed (as you'll see when you run the executable). He needed a list control that would indicate the priority of list members using bold font and color. Check out CListCtrlEx!

  • Status bar in a dialog box (MFC)

    You'll probably think I'm status bar happy...not really, but a friend wondered if you could stick one on a dialog box. Turns out you can! This has some fun animation as well....

  • Doubly-Linked list with single node pointer (C++)

    Can you implement a doubly-linked list using only a single pointer? Sure! My answer to a classic Microsoft interview question.

  • Show system information (Win32)

    How many processors are in your system? What kind are they? Let's find out...

  • Access the Registry using ActiveX control (ATL/VB)

    A visitor (college student, hence the pro bono work) read the Registry articles and asked for help...the best help I could offer was to write a nice ActiveX control that would expose the Registry (as he knew very little C++). Here is the result of that effort. The complete set of ATL files is included as well as a Visual Basic test harness that shows how to use the control. Of particular interest is the work with variants if you're into ActiveX programming. :) I designed the control to do more than it does...the remaining work is left to the downloader (add method implentations to create keys, delete keys, etc.). I also didn't spend much time with the control's UI, so you're stuck with the magenta rectangle for now (the good news is the control is invisible at runtime!).

  • Locate, display, and update Windows 98 IP address/subnet mask (VB)

    That same college student (re: above) was saddened to find that Windows 98 machines could potentially have many network accounts, which means that each machine could have one or more IP address settings (his project had something to do with networking and he needed to muck with the IP address setting). This Visual Basic application uses the Registry Object (above) to search through the Registry for the IP address information associated with the NIC (rather than the dial-up network configuration). You may not want to know what your Windows 98 system IP address is, but this code does show how to use the Registry object and how to search the Registry, at least at a basic level.

  • Display the contents of the COM Running Object Table (ROT) (WTL)

    While re-reading Don Box's Essential COM, I was intrigued that I could find what the ROT contained. If you want a little WTL mixed with some COM enumeration work (IEnumMoniker), check this out.

  • An ATL/WTL "hover" button (WTL)

    I'd seen a couple of hover button implementations and wished I'd implemented one for the DOMDemo application. A very cool UI tool, IMHO. So I finally sat down and implemented my own version. I originally used _TrackMouseEvent() but was very displeased with the way the system captured the mouse (would not let me paint when the depressed cursor left the control rectangle), so I added all of the logic to do things myself. Makes the control a bit more complex but adds a lot visually. If you're interested in custom control development, custom painting, stretching bitmaps, and lots of window work, this code provides a good example (I hope) of some useful techniques.

  • Using SAFEARRAY/VARIANT types in an ATL COM Server (ATL)

    A co-worker came to me and asked me to show him how to create a SAFEARRAY, insert element values, and pass it back (through a VARIANT) to the calling client (presumably VB). Whenever I deal with SAFEARRAYs myself, I use Chris Sells terrific CComVector ATL class, as you'll see in this code. Comes with a demo COM object and test harness.

General Information

Here is some general information...

EnduraSoft ActiveX FAQ (stuff we learned along the way)