DLLs, Type Libraries, and Microsoft Transaction Server

Microsoft Corporation

June 1997

Abstract

A Microsoft® Transaction Server (MTS) component is a type of COM component that executes in the MTS run-time environment. In addition to the COM requirements, MTS requires that the component must be a dynamic-link library (DLL). Components that are implemented as executable files (.exe files) cannot execute in the MTS run-time environment. For example, if you built a Remote Automation server executable file with Visual Basic®, you must rebuild it as a DLL in order to use it in an MTS environment.

Additional Requirements for Visual C++ Components

Development tools such as Microsoft Visual Basic and the ActiveX™ Template Library, which is available with Microsoft Visual C++®, allow you to generate interfaces that can be marshaled with a type library automatically. These interfaces, known as dual interfaces, are derived from IDispatch and use the built-in automation marshaling support.

Including Multiple Components in DLLs

You can implement multiple components in the same DLL. Note that when using the MTS Explorer to install components, all components in a DLL will be registered with MTS. Importing components that are already registered allows you to choose individual components. MTS 2.0 allows components from the same DLL to be installed in separate packages.

Including Type Libraries and Proxy-Stub DLLs in Microsoft Transaction Server Components

Development tools supporting ActiveX components may merge your type library or proxy-stub DLL with your implementation DLL. If you do not want to distribute your implementation DLL to client computers, keep your type libraries and proxy-stub DLLs separate from your implementation DLLs. The client only needs a type library or custom proxy-stub DLL to use your server application remotely.