|Table of Contents:
|Books by Kenn Scribner:
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
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!
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
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
||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
Be sure to check out my Windows Workflow Foundation page for errata items as they come up.
||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
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)
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
- 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
Can you implement a doubly-linked
list using only a single pointer? Sure! My answer to a classic Microsoft interview
- Show system information (Win32)
How many processors are in your system? What kind
are they? Let's find out...
- Access the Registry using ActiveX
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)
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"
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.
Here is some general information...
EnduraSoft ActiveX FAQ (stuff we learned
along the way)