Library Zone Articles
External Articles
Byte Size

Discovery Zone Catalogue
Interactive Zone Ask the Gurus
Discussion Groups
Etc Cartoons
Site Builder ASP Web Ring ASP Web Ring

The Developer's Resource & Community Site
International This Week Forums Author Central Find a Job

Byte Size

Byte Size is exactly what it says: Byte Size articles of all the channels covered by We will publish Byte Size articles on a regular basis as a smaller alternative to our main articles.

We are currently seeking authors for Byte Sized articles for all areas on If you would like to submit a Byte Size article or a FAQ, please use our form here.

ASP Byte SizeATR Byte SizeJava Byte SizeXML Byte Size

Byte Size Articles:

'ILoveYou' By Richard Grimes, 200500
Richard Grimes discusses the release of the Microsoft patch for the 'ILoveYou' virus. Go To Article.

COM+ 2.0 - First Announcement of Microsoft's New Technology By Richard Grimes, 100500
Richard Grimes reports on the recent news about COM+ 2. Go To Article.

How to use DDX with WTL? By Girish Bharadwaj, 270300
Go To Article.

ATL Server By Richard Grimes, 220200
Richard's report from European Devweek 2000, and VCDC Bonn 2000 gives an insight into the new ATL Server technology.
Go To Article.

COM Threading Models By Gopalan Suresh Raj, 070200
Gopalan explains the differences in COM and Win 32 threading models.
Go To Article.

ActiveX & COM By Gopalan Suresh Raj, 270100
Gopalan explains the basics of ActiveX / COM as a truly distributed Object Oriented Architecture.
Go To Article.

Type Library Info, XML and a bit of XSL for fun! by Richard Anderson 121199
This article assumes you understand COM, Type Libraries, XML and enough about VB that you can either use the code as a starting point, or, translate it into another language.
Go To Article.
This article can be downloaded: Zip File (76kb).

COM and Apartments By Richard Grimes, 070100
A discussion on the creation and use of "Apartments" in Win32.
Go To Article.

What is WTL? By Richard Grimes, 070100
Richard gives a basic introduction to WTL.
Go To Article.

An Introduction to Interface Programming By Richard Grimes, 070100
Richard describes the background to interfaces.
Go To Article.

Bytes and Pieces:

- COM+


How do I keep make sure only one instance of my application is running when accessed by multiple clients remotely using DCOM ?

You should set the "Run As" Settings in DCOMCNFG. By default, DCOM servers are configured to run as the Launching User, which will make every Launch request from a _different_ user create another instance of your server in a different window station, even if you registered your class Object as Multiple use. This occurs for reasons of security.

To try this out or for debugging purposes, set the Run As Interactive user against you DCOM server via DCOMCNFG. This will run the server under the credentials of the user who is currently logged on, for _all_ launch requests. However, If no user is logged onto the remote machine, the Creation of server will fail. So, after you've completed testing/debugging, set your server to run as a specific user and you problems are solved!

What is the difference between a COM Server and service?

A COM Server can be in-process or even out of process. Typically In-process servers are COM DLLs where as Out-of-process Server is an executable. A Service is an Application which is registered with NT Service Control Manager(SCM). Typically, A Service can be run as an independent Application as well a Service. Entry point into a Service is "ServiceMain" and for Out-of-Proc Server entry point can either be "main" or "WinMain".

Back to Bytes & Pieces


Get a full list of COM faq's at, in their COMpendium.
Check out this link

COM security FAQ's available from Microsoft
Check out this link

Vivid Creations downloadable COM FAQ
Check out this link

Rogue Wave's searchable knowledge base
Check out this link

Back to Bytes & Pieces


The Next Contender: COM+

Microsoft's distributed computing model has strong competition—including Sun's Java 2 Enterprise Edition. But it has a lot of support, too...

COM+ Questions & Answers by Dr Richard Grimes Nov 1999

Q: What is COM+?
A: In a nutshell, COM+ is the next evolution of COM in Windows 2000 that unifies MTS into COM along with many more cool new features such as queued components, in-memory database, compensating resource managers, load balancing, publish/subscribe event system etc.

Q: What does COM+ stand for?
A: Component Object Model Extension.

Q: When can I get the final release of COM+?
A: RC3 should be out now, with the final release scheduled for Feb 2000.

Q: Where can I get COM+?
A: It will be released as part of Win2000

Q: Can I get COM+ on NT/Win98?
A: No

Q: What is a COM+ service?
A: A COM+ service is essentially pre-written code that provides your COM+ applications with some functionality to enhance it. You don't care how it is written (except that it is hopefully bug free) but can make use of it in your applications painlessly by selecting options in Component Services.

Q: What COM+ services are there?
A: There are several. COM+ configured components can be configured to be automatically enlisted in distributed transactions; access to them can be access checked using role based security; they can be accessed via MSMQ - that is method calls are via a reliable message queue and they can generate loosely coupled events.

Q: What's a COM+ component?
A: It is a COM component that has been added to the COM+ catalog and 'configured' to use COM+ services.

Q: What does configured mean?
A: You use the COM+ Component Services snap-in to indicate the COM+ services that the compoent will use. The COM+ runtime automatically adds support for these services to the component when it is created and accessed.

Q: If I have a component developed on NT/Win98 can I make it a COM+ component?
A: Yes, just add it to a COM+ application. However, to make use of COM+ services often means you have to re-think the design of your components, so don't expect to make use of all COM+ services with your existing components.

Q: If I develop a COM+ component can I use it on NT/Win98?
A: Yes, but it will not have access to COM+ services - a COM+ component is just a COM component. Although, because synchronization is handled by the COM+ runtime it is probably safer if you want to run COM+ components on NT/Win98 to do so under MTS.

Q: What's happened to MTS on Win2000?
A: You no longer have to install MTS because it is part of the operating system.

Q: What other new features are there to COM other than COM+?
A: COM has been enhanced in several ways. It now supports asynchronous calls, COM pipes and distributed security. This last point means that a process can delegate impersonation across machine boundaries and 'cloak' its identity.

Back to Bytes & Pieces



Tom Armstrong's ATL FAQ
Check out this link

World Of ATL FAQ
Check out this link

MS ATL 2.0 FAQ (ATL 3.0 FAQ not functioning)
Check out this link

Stingray ATL FAQ has been incorporated into's Knowledge Base
Check out this link

Back to Bytes & Pieces

ATL Team Easter Egg submitted by Dr Richard Grimes

For the easter egg of the ATL team use VC to open up the resources for the following:

Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE\AtlObj.dll

To do this use the File | Open menu item, and make sure that you have Files of type "Executable Files" and Open As "Resources". Then take a look at the Bitmap resources, one of these is an old picture of the ATL team.
To see it in action:

  1. Bring up the ATL Object Wizard

  2. Select "Controls"

  3. Click once on each of the icons from left to right

  4. Ctrl-double-click in the non-client area

Back to Bytes & Pieces


COM Spec at Microsoft:

Back to Bytes & Pieces


FAQ to be added shortly

Back to Bytes & Pieces


FAQ to be added shortly

Back to Bytes & Pieces


ADSI FAQ's by Simon Robinson - Nov 15 1999.

Q: What does ADSI stand for?
A: Active Directory Services Interface(s)

Q: How do I get the adsvw.exe tool that is used to browse the ADSI namespaces?
A: Adsvw.exe comes with the ADSI SDK. At present it is possible to download the ADSI SDK from Microsoft’s web site, at
At some point in the future the ADSI SDK may also be incorporated into the Platform SDK cd.
Adsvw.exe is an excellent tool to familiarize yourself with the the structure of the directories exposed by the various ADSI providers installed on your system. You can also use it to modify data in the directories. You may be interested to know that two other tools are available that server a similar purpose: The ADSI SDK also includes a sample browser written in VB, called dsbrowse. This is much more basic than adsvw.exe but has the advantage that the source code is available. Also, the Windows 2000 resource kit contains an MMC SnapIn called ADSIEDIT, which is a little like adsvw.exe, but is geared specifically to Active Directory.

Q: How can I speed up my search requests in Active Directory?
A: The most effective way to speed up searching in Active Directory is to ensure that your search filter contains at least one indexed attribute. Ideally the indexed attributes should be sufficient to narrow down the search substantially before other attributes are considered. In particular you should use the objectCategory rather than the objectClass attribute to identify particular classes of object.

Q: Can I Access Windows-2000/Active Directory Attributes with the WinNT provider?
A: The WinNT provider is geared up to be compatible with NT4 as well as Windows 2000. This means that the only attributes you can access using WinNT: are the ones that were available on NT4 as well as Windows 2000, and which have been explicitly defined in the WinNT: schema. It is not possible to access new attributes and objects that are Active-Directory specific using WinNT:.

Q: Can I Extend the Schema in WinNT:?
A: No – it is not possible to extend or modify the schema exposed by the WinNT provider. If you want to do this you will need to use Active Directory and the LDAP provider.

Q: If a provider is documented as not supporting IDirectorySearch, can I still use ADO to search that namespace?
A: No. If you use ADO to carry out searches with an ADSI provider, you are still using the IDirectorySearch interface – the difference is now it’s buried beneath several layers of code. You call up ADO. ADO calls up OLE DB – specifically the OLE DB ADSI provider. And the OLE DB ADSI provider calls up the IDirectorySearch interface to carry out searches. If the provider doesn’t support IDirectorySearch then you can’t make search requests on it. Period. The LDAP provider does support searching. Common providers that don’t include WinNT: and IIS:

Q: I can’t find any ADSI method to rename an object. How do you rename an object in a directory?
A: ADSI doesn’t really have any concept of renaming an object – rather, you achieve the same results by moving the object. You need to check out the MoveHere() method of the IADsContainer interface. You need to call MoveHere() on the parent of the object that you want to rename.

Back to Bytes & Pieces

WTL Introduction

Join the Developers Webring

Code Project

Visit the IDR Bookstore!

Click here

Contribute to IDR:

To contribute an article to IDR, a click here.

To contact us at, use our feedback form, or email us.

To comment on the site contact our webmaster.

Promoted by CyberSavvy UK - website promotion experts

All content © Copyright 2000, Disclaimer notice