Updated: 21 January 1999

OpenVMS Connectivity Developer Guide


Previous Contents Index

Part 3
Appendixes

This part contains reference information about COM for OpenVMS and the OpenVMS Registry.

The appendixes provide information about the MIDL compiler, COM sample code, and APIs and interfaces.

This section also contains coupons for related COM books, a glossary and list of acronyms.


Appendix A
MIDL Compiler Options

A.1 Mode

Switch Use
/ms_ext Microsoft extensions to the IDL language (default)
/c_ext Allow Microsoft C extensions in the IDL file (default)
/osf OSF mode - disables /ms_ext and /c_ext options
/app_config Allow selected ACF attributes in the IDL file
/mktyplib203 MKTYPLIB Version 2.03 compatibility mode

A.2 Input

Switch Use
/acf filename Specify the attribute configuration file
/I directory-list Specify one or more directories for include path
/no_def_idir Ignore the current and the INCLUDE directories

A.3 Output File Generation

Switch Use
/client none Do not generate client files
/client stub Generate client stub file only
/out directory Specify destination directory for output files
/server none Generate no server files
/server stub Generate server stub file only
/syntax_check Check syntax only; do not generate output files
/Zs Check syntax only; do not generate output files
/old Generate old format type libraries
/new Generate new format type libraries

A.4 Output File Names

Switch Use
/cstub filename Specify client stub file name
/dlldata filename Specify dlldata file name
/h filename Specify header file name
/header filename Specify header file name
/iid filename Specify interface UUID file name
/proxy filename Specify proxy file name
/sstub filename Specify server stub file name
/tlb filename Specify type library file name

A.5 C Compiler and Preprocessor Options

Switch Use
/cpp_cmd cmd_line Specify name of C preprocessor
/cpp_opt options Specify additional C preprocessor options
/D name[=def] Pass #define name, optional value to C preprocessor
/no_cpp Turn off the C preprocessing option
/nocpp Turn off the C preprocessing option
/U name Remove any previous definition (undefine)

A.6 Environment

Switch Use
/char signed C compiler default char type is signed
/char unsigned C compiler default char type is unsigned
/char ascii7 Char values limited to 0-127
/dos Target environment is MS-DOS client
/env dos Target environment is MS-DOS client
/env mac Target environment is Apple Macintosh
/env powermac Target environment is Apple PowerMac
/env win16 Target environment is Microsoft Windows 16-bit (Win 3.x)
/env win32 Target environment is Microsoft Windows 32-bit (NT)
/mac Target environment is Apple Macintosh
/ms_union Use Midl 1.0 non-DCE wire layout for non-encapsulated unions
/oldnames Do not mangle version number into names
/powermac Target environment is Apple PowerMac
/rpcss Automatically activate rpc_sm_enable_allocate
/use_epv Generate server side application calls via entry-pt vector
/no_default_epv Do not generate a default entry-point vector
/prefix client str Add "str" prefix to client-side entry points
/prefix server str Add "str" prefix to server-side manager routines
/prefix switch str Add "str" prefix to switch routine prototypes
/prefix all str Add "str" prefix to all routines
/win16 Target environment is Microsoft Windows 16-bit (Win 3.x)
/win32 Target environment is Microsoft Windows 32-bit (NT)

A.7 Error and Warning Messages

Switch Use
/error none Turn off all error checking options
/error allocation Check for out of memory errors
/error bounds_check Check size vs transmission length specification
/error enum Check enum values to be in allowable range
/error ref Check ref pointers to be non-null
/error stub_data Emit additional check for server side stub data validity
/no_warn Suppress compiler warning messages

A.8 Optimization

Switch Use
/align {1|2|4|8} Designate packing level of structures
/pack {1|2|4|8} Designate packing level of structures
/Zp{1|2|4|8} Designate packing level of structures
/Oi Generate fully interpreted stubs
/Oic Generate fully interpreted stubs for standard interfaces and stubless proxies for object interfaces as of NT 3.51 release
/Oicf Generate fully interpreted stubs with extensions and stubless proxies for object interfaces as of NT 4.0 release
/Os Generate inline stubs
/hookole Generate HookOle debug info for local object interfaces

A.9 Miscellaneous

Switch Use
@response_file Accept input from a response file
/? Display a list of MIDL compiler switches
/confirm Display options without compiling MIDL source
/help Display a list of MIDL compiler switches
/nologo Suppress displaying of the banner lines
/o filename Redirects output from screen to a file
/W{0|1|2|3|4} Specify warning level 0-4 (default = 1)
/WX Report warnings at specified /W level as errors


Appendix B
Cookbook Examples: Building a Sample Application on OpenVMS

Note

SAMPLE1 and DISPATCH_SAMPLE1 are taken from Dale Rogerson's book, Inside COM, published by Microsoft Press.

B.1 COM Example (Sample1)

This sample implements a COM client and server in which the component provides two interfaces: IX and IY. The client also queries the component for a third interface, IZ, an interface that the component does not provide.

This sample demonstrates connectivity between two OpenVMS systems, between two Windows NT systems, or between an OpenVMS system and a Windows NT system.

B.1.1 OpenVMS Instructions

The following sections describe how to build the application on an OpenVMS system.

B.1.1.1 Building the Application on OpenVMS

Copy files from the DCOM examples directory to your local directory. For example:


   $ set default mydisk:[mydirectory] 
   $ copy dcom$examples:[sample1]*.* [] 

To build the application, run the following command procedure:


   $ @build_sample1 

If you have MMS, you can use the included description file as follows:


   $  MMS/DESCRIPTION=BUILD_SAMPLE1.MMS 

The BUILD file builds and registers both the in-process and out-of-process servers.

B.1.1.2 Registering the Application on OpenVMS

The build procedure automatically registers both CMPNT$SHR.EXE and CMPNT.EXE. To register the components manually, use the following procedure:

B.1.1.3 Running the Application on OpenVMS as an Out-of-Process Server

To run the sample where the component is an out-of-process server, run CMPNT.EXE. When the system displays the Server: Waiting message from the component, run the client in a separate window or terminal session.

The client displays the following:


  To which server do you want to connect? 
   1) In-Process Server 
   2) Out-of-Process Server 
   : 

Enter 2 to select the out-of-process server.

B.1.1.4 Running the Application on OpenVMS and Specifying a Remote Server

Run CMPNT.EXE on the system you designate as the remote machine (or server system). The remote system can also be a Windows NT system. When you receive the Server: Waiting message from the component, run the client on the system you designate as the local machine (or client system). For example:


   $ client :== $path-nameCLIENT.EXE 
   $ client remote-system-name
   2 
   $ 

The client displays the following:


  To which server do you want to connect? 
   1) In-Process Server 
   2) Out-of-Process Server 
   : 

Enter 2 to select remote server execution, out-of-process server.

B.1.1.5 Running the Application on OpenVMS as an In-Process Server

To run the sample where the component is an in-process server, run only the client. For example:


   For InProc: 
   $ client 
   1 
   $ 

The client displays the following:


  To which server do you want to connect? 
   1) In-Process Server 
   2) Out-of-Process Server 
   : 

Enter 1 to select the in-process server.

B.1.2 Windows NT Instructions

The following sections describe how to build the application on a Windows NT system.

B.1.2.1 Building the Application on Windows NT

Copy the README-SAMPLE1.TXT file and the following files from the COM examples directory to your Windows NT system:


 CLIENT.CXX 
 CMPNT.CXX 
 CMPNT.DEF 
 GUIDS.CXX 
 MAKE-ONE. 
 MAKEFILE.BAT 
 PROXY.DEF 
 REGISTRY.CXX 
 REGISTRY.H 
 SERVER.IDL 

Build the sample using the MAKEFILE.BAT file. For example:


   > MAKEFILE 

The Makefile builds and registers both the in-process and out-of-process servers.

B.1.2.2 Registering the Application on Windows NT

The build procedure make-one automatically registers CMPNT.DLL, PROXY.DLL, and CMPNT.EXE as follows:


   regsvr32 -s Cmpnt.dll 
   regsvr32 -s Proxy.dll 
   Cmpnt /RegServer 

To unregister the application, enter the following:


   regsvr32 -u Cmpnt.dll 
   regsvr32 -u Proxy.dll 
   Cmpnt /UnRegServer 

B.1.2.3 Running the Application on Windows NT

Run CLIENT. Follow the same procedure as described for OpenVMS for running the application as an in-process server ( Section B.1.1.5) and out-of-process server Section B.1.1.3).

Do not use command-line arguments to instantiate the object on the current machine. Use the name of a remote machine (UNC or DNS) as an argument to instantiate the object on the remote machine. For example:


   >Client hostname        ! point the client at the remote system  
   2                       ! means outproc invocation       
   >                                                        

B.2 Automation Example (Dispatch_Sample1)

This sample implements the Automation component server as a dual interface. There are two separate clients: Dclient, which connects to the dual interface through the dispinterface, and Client, which is a COM client implementation that connects through the IUnknown interface (using a v-table).

This sample demonstrates connectivity between two OpenVMS systems, between two Windows NT systems, or between an OpenVMS system and a Windows NT system.

B.2.1 OpenVMS Instructions

The following sections describe how to build the application on an OpenVMS system.

B.2.1.1 Building the Application on OpenVMS

Copy files from the DCOM examples directory to your local directory. For example:


   $ set default mydisk:[mydirectory] 
   $ copy dcom$examples:[dispatch_sample1]*.* [] 

To build the application, run the following command procedure:


   $ @build_dispatch_sample1 

If you have MMS, you can use the included description file as follows:


   $  MMS/DESCRIPTION=BUILD_DISPATCH_SAMPLE1.MMS 

The BUILD file builds and registers both the in-process and out-of-process servers.

B.2.1.2 Registering the Application on OpenVMS

The build procedure automatically registers both CMPNT$SHR.EXE and CMPNT.EXE. To register the components manually, use the following procedure:

B.2.1.3 Running the Application on OpenVMS as an Out-of-process Server

To run the sample where the component is an out-of-process server, run CMPNT.EXE.

When the system displays the Server: Waiting message from the component, run the client in a separate window or terminal session.

The client displays the following:


  To which server do you want to connect? 
   1) In-Process Server 
   2) Out-of-Process Server 
   : 

Enter 2 to select the out-of-process server.

B.2.1.4 Running the Application on OpenVMS and Specifying a Remote Server

Run CMPNT.EXE on the system you designate as the remote machine (or server system). The remote system can also be a Windows NT system. When you receive the Server: Waiting message from the component, run the client on the system you designate as the local machine (or client system). For example:

To use the COM client, enter the following:


   $ client :== $path-nameCLIENT.EXE 
   $ client remote-system-name
  To which server do you want to connect? 
   1) In-Process Server 
   2) Out-of-Process Server 
   : 

Enter 2 to select remote server execution, out-of-process server.

B.2.1.5 Running the Application on OpenVMS as an In-Process Server

To run the sample where the component is an in-process server, run only the client. For example:

The client displays the following:


  To which server do you want to connect? 
   1) In-Process Server 
   2) Out-of-Process Server 
   : 

Enter 1 to select the in-process server.

B.2.2 Windows NT Instructions

The following sections describe how to build the application on a Windows NT system.

B.2.2.1 Building the Application on Windows NT

Copy the README-DISPATCH-SAMPLE1.TXT file and the following files from the COM examples directory to your Windows NT system:


 CLIENT.CXX 
 DCLIENT.CXX 
 CMPNT.CXX 
 CMPNT.DEF 
 MAKE-ONE. 
 MAKEFILE.BAT 
 REGISTRY.CXX 
 REGISTRY.H 
 SERVER.IDL 

Build the sample using the MAKEFILE.BAT file. For example:


   C:> MAKEFILE 

The Makefile builds and registers both the in-process and out-of-process servers.

B.2.2.2 Registering the Application on Windows NT

The build procedure make-one automatically registers CMPNT.DLL, PROXY.DLL, and CMPNT.EXE as follows:


   regsvr32 -s Cmpnt.dll 
   Cmpnt /RegServer 

To unregister the application, enter the following:


   regsvr32 -u Cmpnt.dll 
   Cmpnt /UnRegServer 

B.2.2.3 Running the Application on Windows NT

Run DCLIENT or CLIENT. Follow the same procedure as described for OpenVMS for running the application as an in-process server ( Section B.2.1.5) and an out-of-process server ( Section B.2.1.3).

Do not use command-line arguments to instantiate the object on the current machine. Use the name of a remote machine (UNC or DNS) as an argument to instantiate the object on the remote machine.


Appendix C
Upgrading to COM Version 1.0 for OpenVMS from Field Test Versions

C.1 Migrating from Earlier Versions of COM for OpenVMS

The following upgrade notes describe known incompatibilites between COM Version 1.0 for OpenVMS and earlier field test versions, and provide migration solutions when appropriate.

C.1.1 COM for OpenVMS Field Test Versions are Incompatible with OpenVMS Version 7.2

An incompatibility between field test versions of COM for OpenVMS and OpenVMS Version 7.2 prevents the COM for OpenVMS runtime from starting.

If you are running a COM for OpenVMS field test version (G1.0, H1.0, or I1.0) and you upgrade to OpenVMS Version 7.2, you must install COM Version 1.0 for OpenVMS before you can start COM or run any COM applications.

For more information about installing and configuring COM for OpenVMS, see Chapter 4.

C.1.2 Upgrading from Any Field Test Version of COM for OpenVMS to COM Version 1.0 for OpenVMS

If you are upgrading from COM for OpenVMS EFT1, EFT2, or EFT3, you must recompile and relink any user-written COM applications after you install this version of COM for OpenVMS.

C.1.3 Nameless Structures and Variant Args

Field test versions of COM for OpenVMS included a copy of OAIDL.H with special conditional code that required you to change the way you defined variant arguments. This special conditional code has been removed for COM Version 1.0 for OpenVMS. You must modify any applications that use variant arguments to revert to the standard method of defining those arguments.

For example, the Field Test versions of COM for OpenVMS would have required the following code:


        varg.n1.n2.vt = VT_R8 ;         // Type of VARIANT data 
        varg.n1.n2.n3.dblVal = vald;    // Data for the VARIANT 

COM Version 1.0 for OpenVMS allows you to use the standard method shown in the following example:


        varg.vt = VT_R8;                // Type of VARIANT data 
        varg.dblVal = vald;             // Data for the VARIANT 


Appendix D
Lists of Differences, APIs, and Interfaces

This appendix contains a list of implementation differences between COM for OpenVMS and Microsoft COM as well as a list of APIs and interfaces provided in this field test release of COM for OpenVMS.

D.1 Differences between COM for OpenVMS and Microsoft COM

The following sections list important implementation differences between COM for OpenVMS and Microsoft's COM.

D.1.1 Service Control Manager (SCM)

OpenVMS does not provide an equivalent to the Windows NT Service Control Manager. As a result, applications that depend on Server services (such as stop, start, pause, and resume) rely on the OpenVMS features that provide similar functionality (if the features are available).

For example, you would use the OpenVMS site-specific startup and shutdown command procedures to implement automatic starting of services at system startup and automatic shutdown of services at system shutdown. Service APIs such as RegisterServiceCtrlHandler, ChangeServiceConfig, and so on, are not provided on OpenVMS.

D.1.2 Server application stack size

In COM for OpenVMS, server application functions run in the context of server threads. As a result, server functions have a limited stack space of 46 K bytes. If you require additional space for local variables or structures, you should allocate dynamic memory for local variables or structures.

D.2 APIs

APIs that require security support are not supported in COM Version 1.0 for OpenVMS.

The APIs supported in this release are as follows:


BindMoniker 
BstrFromVector 
CLSIDFromProgID 
CLSIDFromString 
CoAddRefServerProcess 
CoCopyProxy 
CoCreateFreeThreadedMarshaler 
CoCreateGuid 
CoCreateInstance 
CoCreateInstanceEx 
CoDisconnectObject 
CoDosDateTimeToFileTime 
CoFileTimeNow 
CoFileTimeToDosDateTime 
CoFreeAllLibraries 
CoFreeLibrary 
CoFreeUnusedLibraries 
CoGetCallContext 
CoGetClassObject 
CoGetCurrentProcess 
CoGetInstanceFromFile 
CoGetInstanceFromIStorage 
CoGetInterfaceAndReleaseStream 
CoGetMalloc 
CoGetMarshalSizeMax 
CoGetPSClsid 
CoGetStandardMarshal 
CoGetTreatAsClass 
CoImpersonateClient 
CoInitialize 
CoInitializeEx 
CoInitializeSecurity 
CoIsHandlerConnected 
CoLoadLibrary 
CoLockObjectExternal 
CoMarshalInterface 
CoQueryAuthenticationServices 
CoQueryClientBlanket 
CoQueryProxyBlanket 
CoRegisterClassObject 
CoRegisterMallocSpy 
CoRegisterMessageFilter 
CoRegisterPSClsid 
CoReleaseMarshalData 
CoReleaseServerProcess 
CoResumeClassObjects 
CoRevertToSelf 
CoRevokeClassObject 
CoRevokeMallocSpy 
CoSetProxyBlanket 
CoSuspendClassObjects 
CoTaskMemAlloc 
CoTaskMemFree 
CoTaskMemRealloc 
CoTreatAsClass 
CoUninitialize 
CoUnmarshalInterface 
CreateAntiMoniker 
CreateBindCtx 
CreateClassMoniker 
CreateDataAdviseHolder 
CreateDispTypeInfo 
CreateErrorInfo 
CreateGenericComposite 
CreateILockBytesOnHGlobal 
CreateItemMoniker 
CreatePointerMoniker 
CreateStdDispatch 
CreateStreamOnHGlobal 
CreateTypeLib 
DispGetIDsOfNames 
DispGetParam 
DispInvoke 
DllCanUnloadNow 
DllGetClassObject 
DllGetClassObject 
DllMain 
DllRegisterServer 
DllUnregisterServer 
DosDateTimeToVariantTime 
FreePropVariantArray 
GetActiveObject 
GetAltMonthNames 
GetClassFile 
GetConvertStg 
GetErrorInfo 
GetHGlobalFromILockBytes 
GetHGlobalFromStream 
GetRunningObjectTable 
IIDFromString 
IsEqualCLSID 
IsEqualGUID 
IsEqualIID 
IsValidIid 
IsValidInterface 
IsValidPtrIn 
IsValidPtrOut 
LHashValOfName 
LHashValOfNameSys 
LoadRegTypeLib 
LoadTypeLibEx 
MkParseDisplayName 
MonikerCommonPrefixWith 
MonikerRelativePathTo 
ProgIDFromCLSID 
PropStgNameToFmtId 
PropVariantClear 
PropVariantCopy 
QueryPathOfRegTypeLib 
ReadClassStg 
ReadClassStm 
ReadFmtUserTypeStg 
RegisterActiveObject 
RegisterTypeLib 
ReleaseStgMedium 
RevokeActiveObject 
SafeArrayAccessData 
SafeArrayAllocData 
SafeArrayAllocDescriptor 
SafeArrayCopy 
SafeArrayCopyData 
SafeArrayCreate 
SafeArrayCreateVector 
SafeArrayDestroy 
SafeArrayDestroyData 
SafeArrayDestroyDescriptor 
SafeArrayGetDim 
SafeArrayGetElement 
SafeArrayGetElemsize 
SafeArrayGetLBound 
SafeArrayGetUBound 
SafeArrayLock 
SafeArrayPtrOfIndex 
SafeArrayPutElement 
SafeArrayRedim 
SafeArrayUnaccessData 
SafeArrayUnlock 
SetConvertStg 
SetErrorInfo 
StgCreateDocfile 
StgCreateDocfileOnILockBytes 
StgCreatePropSetStg 
StgCreatePropStg 
StgIsStorageFile 
StgIsStorageILockBytes 
StgOpenPropStg 
StgOpenStorage 
StgOpenStorageOnILockBytes 
StgSetTimes 
StringFromCLSID 
StringFromGUID2 
StringFromIID 
SysAllocString 
SysAllocStringByteLen 
SysAllocStringLen 
SysFreeString 
SysReAllocString 
SysReAllocStringLen 
SysStringByteLen 
SysStringLen 
SystemTimeToVariantTime 
UnRegisterTypeLib 
VarDateFromUdate 
VarNumFromParseNum 
VarParseNumFromStr 
VarUdateFromDate 
VariantChangeType 
VariantChangeTypeEx 
VariantClear 
VariantCopy 
VariantCopyInd 
VariantInit 
VariantTimeToDosDateTime 
VariantTimeToSystemTime 
VectorFromBstr 
WriteClassStg 
WriteClassStm 
WriteFmtUserTypeStg 

D.3 Interfaces

The interfaces supported in this release are as follows:


IAdviseSink 
IBindCtx 
IClassActivator 
IClassFactory 
IConnectionPoint 
IConnectionPointContainer 
ICreateErrorInfo 
ICreateTypeInfo 
ICreateTypeLib 
IDataAdviseHolder 
IDataObject 
IDispatch 
IEnumCallBack 
IEnumConnectionPoints 
IEnumConnections 
IEnumFORMATETC 
IEnumMoniker 
IEnumOLEVerb 
IEnumSTATDATA 
IEnumSTATPROPSETSTG 
IEnumSTATSTG 
IEnumString 
IEnumUnknown 
IEnumVariant 
IErrorInfo 
IExternalConnection 
ILockBytes 
IMalloc 
IMallocSpy 
IMarshal 
IMessageFilter 
IMoniker 
IMultiQI 
IParseDisplayName 
IPersist 
IPersistFile 
IPersistStorage 
IPersistStream 
IPropertySetStorage 
IPropertyStorage 
IRootStorage 
IRunnableObject 
IRunningObjectTable 
IStdMarshalInfo 
IStorage 
IStream 
ISupportErrorInfo 
ITypeComp 
ITypeInfo 
ITypeInfo2 
ITypeLib 
ITypeLib2 
IUnknown 


Appendix E
List of files installed by COM for OpenVMS

E.1 Files Installed by COM for OpenVMS

The following files are installed as part of the COM for OpenVMS installation process:


[000000]DEC-AXPVMS-DCOM-V0100--1.PCSI$TLB 
[DCOM$LIBRARY]CDERR.H 
[DCOM$LIBRARY]CGUID.H 
[DCOM$LIBRARY]COGUID.H 
[DCOM$LIBRARY]COMMDLG.H 
[DCOM$LIBRARY]CONIO.H 
[DCOM$LIBRARY]DCOM$GUIDGEN.CLD 
[DCOM$LIBRARY]DCOM$REGDATA.REG 
[DCOM$LIBRARY]DCOM$RUNSHRLIB.CLD 
[DCOM$LIBRARY]DCOM.OPT 
[DCOM$LIBRARY]DDE.H 
[DCOM$LIBRARY]DDEML.H 
[DCOM$LIBRARY]DLGS.H 
[DCOM$LIBRARY]EXCPT.H 
[DCOM$LIBRARY]IMM.H 
[DCOM$LIBRARY]INITGUID.H 
[DCOM$LIBRARY]LZEXPAND.H 
[DCOM$LIBRARY]MCX.H 
[DCOM$LIBRARY]MIDLES.H 
[DCOM$LIBRARY]MIDL_STUB_TYPES.H 
[DCOM$LIBRARY]MMSYSTEM.H 
[DCOM$LIBRARY]NB30.H 
[DCOM$LIBRARY]OAIDL.H 
[DCOM$LIBRARY]OAIDL.IDL 
[DCOM$LIBRARY]OBJBASE.H 
[DCOM$LIBRARY]OBJIDL.H 
[DCOM$LIBRARY]OBJIDL.IDL 
[DCOM$LIBRARY]OCIDL.H 
[DCOM$LIBRARY]OCIDL.IDL 
[DCOM$LIBRARY]OLE2.H 
[DCOM$LIBRARY]OLEAUTO.H 
[DCOM$LIBRARY]OLECTL.H 
[DCOM$LIBRARY]OLEIDL.H 
[DCOM$LIBRARY]POPPACK.H 
[DCOM$LIBRARY]PRSHT.H 
[DCOM$LIBRARY]PSHPACK1.H 
[DCOM$LIBRARY]PSHPACK2.H 
[DCOM$LIBRARY]PSHPACK4.H 
[DCOM$LIBRARY]PSHPACK8.H 
[DCOM$LIBRARY]PTHREAD.H 
[DCOM$LIBRARY]PTHREAD_EXCEPTION.H 
[DCOM$LIBRARY]RPC.H 
[DCOM$LIBRARY]RPCDCE.H 
[DCOM$LIBRARY]RPCDCEP.H 
[DCOM$LIBRARY]RPCNDR.H 
[DCOM$LIBRARY]RPCNSI.H 
[DCOM$LIBRARY]RPCNSIP.H 
[DCOM$LIBRARY]RPCNTERR.H 
[DCOM$LIBRARY]RPCPROXY.H 
[DCOM$LIBRARY]SERVPROV.H 
[DCOM$LIBRARY]SERVPROV.IDL 
[DCOM$LIBRARY]SHELLAPI.H 
[DCOM$LIBRARY]STDOLE2.TLB 
[DCOM$LIBRARY]STDOLE32.TLB 
[DCOM$LIBRARY]TCHAR.H 
[DCOM$LIBRARY]UNKNWN.H 
[DCOM$LIBRARY]UNKNWN.IDL 
[DCOM$LIBRARY]URLMON.H 
[DCOM$LIBRARY]URLMON.IDL 
[DCOM$LIBRARY]UUID.OLB 
[DCOM$LIBRARY]VMS_DCOM.H 
[DCOM$LIBRARY]VMS_IOCTL.H 
[DCOM$LIBRARY]WCHAR.H 
[DCOM$LIBRARY]WINBASE.H 
[DCOM$LIBRARY]WINCON.H 
[DCOM$LIBRARY]WINDEF.H 
[DCOM$LIBRARY]WINDOWS.H 
[DCOM$LIBRARY]WINDU_PLATFORM.H 
[DCOM$LIBRARY]WINDU_STDLIB.H 
[DCOM$LIBRARY]WINDU_STRING.H 
[DCOM$LIBRARY]WINDU_VTBL.H 
[DCOM$LIBRARY]WINERROR.H 
[DCOM$LIBRARY]WINGDI.H 
[DCOM$LIBRARY]WINNETWK.H 
[DCOM$LIBRARY]WINNLS.H 
[DCOM$LIBRARY]WINNT.H 
[DCOM$LIBRARY]WINPERF.H 
[DCOM$LIBRARY]WINREG.H 
[DCOM$LIBRARY]WINSOCK.H 
[DCOM$LIBRARY]WINSPOOL.H 
[DCOM$LIBRARY]WINSVC.H 
[DCOM$LIBRARY]WINUSER.H 
[DCOM$LIBRARY]WINVER.H 
[DCOM$LIBRARY]WTYPES.H 
[DCOM$LIBRARY]WTYPES.IDL 
[DCOM$LIBRARY]WUEXTEN.H 
[DCOM$LIBRARY]WUUNALIGNED.H 
[DCOM$LIBRARY]WUVERSION.H 
[DCOM$WIN32.NLS]BIG5.NLS 
[DCOM$WIN32.NLS]CTYPE.NLS 
[DCOM$WIN32.NLS]C_037.NLS 
[DCOM$WIN32.NLS]C_10000.NLS 
[DCOM$WIN32.NLS]C_10001.NLS 
[DCOM$WIN32.NLS]C_10002.NLS 
[DCOM$WIN32.NLS]C_10003.NLS 
[DCOM$WIN32.NLS]C_10004.NLS 
[DCOM$WIN32.NLS]C_10005.NLS 
[DCOM$WIN32.NLS]C_10006.NLS 
[DCOM$WIN32.NLS]C_10007.NLS 
[DCOM$WIN32.NLS]C_10008.NLS 
[DCOM$WIN32.NLS]C_10010.NLS 
[DCOM$WIN32.NLS]C_10017.NLS 
[DCOM$WIN32.NLS]C_10029.NLS 
[DCOM$WIN32.NLS]C_10079.NLS 
[DCOM$WIN32.NLS]C_10081.NLS 
[DCOM$WIN32.NLS]C_10082.NLS 
[DCOM$WIN32.NLS]C_1026.NLS 
[DCOM$WIN32.NLS]C_1250.NLS 
[DCOM$WIN32.NLS]C_1251.NLS 
[DCOM$WIN32.NLS]C_1252.NLS 
[DCOM$WIN32.NLS]C_1253.NLS 
[DCOM$WIN32.NLS]C_1254.NLS 
[DCOM$WIN32.NLS]C_1255.NLS 
[DCOM$WIN32.NLS]C_1256.NLS 
[DCOM$WIN32.NLS]C_1257.NLS 
[DCOM$WIN32.NLS]C_1258.NLS 
[DCOM$WIN32.NLS]C_1361.NLS 
[DCOM$WIN32.NLS]C_20105.NLS 
[DCOM$WIN32.NLS]C_20261.NLS 
[DCOM$WIN32.NLS]C_20269.NLS 
[DCOM$WIN32.NLS]C_20273.NLS 
[DCOM$WIN32.NLS]C_20277.NLS 
[DCOM$WIN32.NLS]C_20278.NLS 
[DCOM$WIN32.NLS]C_20280.NLS 
[DCOM$WIN32.NLS]C_20284.NLS 
[DCOM$WIN32.NLS]C_20285.NLS 
[DCOM$WIN32.NLS]C_20290.NLS 
[DCOM$WIN32.NLS]C_20297.NLS 
[DCOM$WIN32.NLS]C_20420.NLS 
[DCOM$WIN32.NLS]C_20423.NLS 
[DCOM$WIN32.NLS]C_20833.NLS 
[DCOM$WIN32.NLS]C_20838.NLS 
[DCOM$WIN32.NLS]C_20866.NLS 
[DCOM$WIN32.NLS]C_20871.NLS 
[DCOM$WIN32.NLS]C_20880.NLS 
[DCOM$WIN32.NLS]C_20905.NLS 
[DCOM$WIN32.NLS]C_21025.NLS 
[DCOM$WIN32.NLS]C_21027.NLS 
[DCOM$WIN32.NLS]C_28592.NLS 
[DCOM$WIN32.NLS]C_28593.NLS 
[DCOM$WIN32.NLS]C_28594.NLS 
[DCOM$WIN32.NLS]C_28595.NLS 
[DCOM$WIN32.NLS]C_28596.NLS 
[DCOM$WIN32.NLS]C_28597.NLS 
[DCOM$WIN32.NLS]C_28598.NLS 
[DCOM$WIN32.NLS]C_28599.NLS 
[DCOM$WIN32.NLS]C_29001.NLS 
[DCOM$WIN32.NLS]C_437.NLS 
[DCOM$WIN32.NLS]C_500.NLS 
[DCOM$WIN32.NLS]C_708.NLS 
[DCOM$WIN32.NLS]C_720.NLS 
[DCOM$WIN32.NLS]C_737.NLS 
[DCOM$WIN32.NLS]C_775.NLS 
[DCOM$WIN32.NLS]C_850.NLS 
[DCOM$WIN32.NLS]C_852.NLS 
[DCOM$WIN32.NLS]C_855.NLS 
[DCOM$WIN32.NLS]C_857.NLS 
[DCOM$WIN32.NLS]C_860.NLS 
[DCOM$WIN32.NLS]C_861.NLS 
[DCOM$WIN32.NLS]C_862.NLS 
[DCOM$WIN32.NLS]C_863.NLS 
[DCOM$WIN32.NLS]C_864.NLS 
[DCOM$WIN32.NLS]C_865.NLS 
[DCOM$WIN32.NLS]C_866.NLS 
[DCOM$WIN32.NLS]C_869.NLS 
[DCOM$WIN32.NLS]C_870.NLS 
[DCOM$WIN32.NLS]C_874.NLS 
[DCOM$WIN32.NLS]C_875.NLS 
[DCOM$WIN32.NLS]C_932.NLS 
[DCOM$WIN32.NLS]C_936.NLS 
[DCOM$WIN32.NLS]C_949.NLS 
[DCOM$WIN32.NLS]C_950.NLS 
[DCOM$WIN32.NLS]KSC.NLS 
[DCOM$WIN32.NLS]LOCALE.NLS 
[DCOM$WIN32.NLS]L_EXCEPT.NLS 
[DCOM$WIN32.NLS]L_INTL.NLS 
[DCOM$WIN32.NLS]PRC.NLS 
[DCOM$WIN32.NLS]PRCP.NLS 
[DCOM$WIN32.NLS]SORTKEY.NLS 
[DCOM$WIN32.NLS]SORTTBLS.NLS 
[DCOM$WIN32.NLS]UNICODE.NLS 
[DCOM$WIN32.NLS]XJIS.NLS 
[DCOM$WIN32]WINDU$GDISHR.EXE 
[DCOM$WIN32]WINDU$KERNELSHR.EXE 
[DCOM$WIN32]WINDU$PRNTSHR.EXE 
[DCOM$WIN32]WINDU$USERSHR.EXE 
[DCOM$WIN32]WINDU.INI 
[DCOM$WIN32]WINDU.OPT 
[SYS$STARTUP]DCOM$RPCSS.COM 
[SYS$STARTUP]DCOM$SHUTDOWN.COM 
[SYS$STARTUP]DCOM$STARTUP.COM 
[SYSEXE]DCOM$CNFG.EXE 
[SYSEXE]DCOM$COMREGEDT.EXE 
[SYSEXE]DCOM$GUIDGEN.EXE 
[SYSEXE]DCOM$MIDL.EXE 
[SYSEXE]DCOM$REGSVR32.EXE 
[SYSEXE]DCOM$RPCSS.EXE 
[SYSEXE]DCOM$RUNSHRLIB.EXE 
[SYSEXE]DCOM$SCLIENT.EXE 
[SYSEXE]DCOM$SSERVER.EXE 
[SYSEXE]DCOM$SSERVER_REG.COM 
[SYSHLP]COM_V10_FOROPENVMS_SPD.PDF 
[SYSHLP]COM_V10_FOROPENVMS_SPD.PS 
[SYSHLP.EXAMPLES.DCOM.DISPATCH_SAMPLE1]BUILD_DISPATCH_SAMPLE1.COM 
[SYSHLP.EXAMPLES.DCOM.DISPATCH_SAMPLE1]BUILD_DISPATCH_SAMPLE1.MMS 
[SYSHLP.EXAMPLES.DCOM.DISPATCH_SAMPLE1]CLIENT.CXX 
[SYSHLP.EXAMPLES.DCOM.DISPATCH_SAMPLE1]CMPNT$SHR.OPT 
[SYSHLP.EXAMPLES.DCOM.DISPATCH_SAMPLE1]CMPNT.CXX 
[SYSHLP.EXAMPLES.DCOM.DISPATCH_SAMPLE1]CMPNT.DEF 
[SYSHLP.EXAMPLES.DCOM.DISPATCH_SAMPLE1]DCLIENT.CXX 
[SYSHLP.EXAMPLES.DCOM.DISPATCH_SAMPLE1]MAKE-ONE. 
[SYSHLP.EXAMPLES.DCOM.DISPATCH_SAMPLE1]MAKEFILE.BAT 
[SYSHLP.EXAMPLES.DCOM.DISPATCH_SAMPLE1]README-DISPATCH-SAMPLE1.TXT 
[SYSHLP.EXAMPLES.DCOM.DISPATCH_SAMPLE1]REGISTRY.CXX 
[SYSHLP.EXAMPLES.DCOM.DISPATCH_SAMPLE1]REGISTRY.H 
[SYSHLP.EXAMPLES.DCOM.DISPATCH_SAMPLE1]SERVER.IDL 
[SYSHLP.EXAMPLES.DCOM.SAMPLE1]BUILD_SAMPLE1.COM 
[SYSHLP.EXAMPLES.DCOM.SAMPLE1]BUILD_SAMPLE1.MMS 
[SYSHLP.EXAMPLES.DCOM.SAMPLE1]CLIENT.CXX 
[SYSHLP.EXAMPLES.DCOM.SAMPLE1]CMPNT$SHR.OPT 
[SYSHLP.EXAMPLES.DCOM.SAMPLE1]CMPNT.CXX 
[SYSHLP.EXAMPLES.DCOM.SAMPLE1]CMPNT.DEF 
[SYSHLP.EXAMPLES.DCOM.SAMPLE1]GUIDS.CXX 
[SYSHLP.EXAMPLES.DCOM.SAMPLE1]MAKE-ONE. 
[SYSHLP.EXAMPLES.DCOM.SAMPLE1]MAKEFILE.BAT 
[SYSHLP.EXAMPLES.DCOM.SAMPLE1]PROXY$SHR.OPT 
[SYSHLP.EXAMPLES.DCOM.SAMPLE1]PROXY.DEF 
[SYSHLP.EXAMPLES.DCOM.SAMPLE1]README-SAMPLE1.TXT 
[SYSHLP.EXAMPLES.DCOM.SAMPLE1]REGISTRY.CXX 
[SYSHLP.EXAMPLES.DCOM.SAMPLE1]REGISTRY.H 
[SYSHLP.EXAMPLES.DCOM.SAMPLE1]SERVER.IDL 
[SYSHLP.EXAMPLES.DCOM.SIMPLE]BUILD_SIMPLE.COM 
[SYSHLP.EXAMPLES.DCOM.SIMPLE]INSTALL.BAT 
[SYSHLP.EXAMPLES.DCOM.SIMPLE]MAKEFILE. 
[SYSHLP.EXAMPLES.DCOM.SIMPLE]README-SIMPLE.TXT 
[SYSHLP.EXAMPLES.DCOM.SIMPLE]REGISTER_SIMPLE.COM 
[SYSHLP.EXAMPLES.DCOM.SIMPLE]SCLIENT.CPP 
[SYSHLP.EXAMPLES.DCOM.SIMPLE]SSERVER.CPP 
[SYSHLP.EXAMPLES.DCOM.SIMPLE]SSERVER.REG 
[SYSHLP]OVMS_CONNECT_DEV_GDE_0199.HTML 
[SYSHLP]OVMS_CONNECT_DEV_GDE_0199.PDF 
[SYSHLP]OVMS_CONNECT_DEV_GDE_0199.PS 
[SYSHLP]OVMS_CONNECT_DEV_GDE_0199_001.HTML 
[SYSHLP]OVMS_CONNECT_DEV_GDE_0199_002.HTML 
[SYSHLP]OVMS_CONNECT_DEV_GDE_0199_003.HTML 
[SYSHLP]OVMS_CONNECT_DEV_GDE_0199_004.HTML 
[SYSHLP]OVMS_CONNECT_DEV_GDE_0199_005.HTML 
[SYSHLP]OVMS_CONNECT_DEV_GDE_0199_CONTENTS.HTML 
[SYSHLP]OVMS_CONNECT_DEV_GDE_0199_CONTENTS_001.HTML 
[SYSHLP]OVMS_CONNECT_DEV_GDE_0199_INDEX.HTML 
[SYSHLP]VM-0126A.GIF 
[SYSHLP]VM-0224A.GIF 
[SYSHLP]VM-0225A.GIF 
[SYSHLP]VM-0226A.GIF 
[SYSHLP]VM-0227A.GIF 
[SYSHLP]VM-0228A.GIF 
[SYSHLP]VM-0283A.GIF 
[SYSLIB]DCOM$MIDL_SHR.EXE 
[SYSLIB]DCOM$NT_WRAPPERS_SHR.EXE 
[SYSLIB]DCOM$OLE32_SHR.EXE 
[SYSLIB]DCOM$OLEAUT32_SHR.EXE 
[SYSLIB]DCOM$RPCRT4_SHR.EXE 
[SYSMGR]DCOM$CREATE_ACCOUNT.COM 
[SYSMGR]DCOM$REGISTRY_KEYS.COM 
[SYSMGR]DCOM$SETUP.COM 
[SYSMSG]DCOM$GUIDGEN_MSG.EXE 
[000000]DEC-AXPVMS-DCOM-V0100--1.PCSI$DESCRIPTION 


Appendix F
Discount Coupons for COM Books

By special arrangement with the publishers, Compaq is able to provide COM for OpenVMS developers with the following discount coupons for some of the third-party COM books mentioned in this manual. Please follow the instructions on the coupon when ordering books.





Appendix G
Glossary


class (registry class): Registry element attribute that allows you to store additional descriptive information with a registry key or subkey.

encapsulation: The process of updating or extending the life of existing application code by leaving most of the code and its functionality intact, while including new or updated code (usually in a different programming language) at key entry points.

For example, you might add a Windows graphical interface to a character-cell application by writing some Visual Basic code that collects information from a Windows client, then formats and submits the data to the existing character cell application as if the data had come from the character cell interface.

hive: A discrete set of keys, subkeys, and value entries contained in the registry.

in-process server: An application that is located on the same system as the requesting client. On Windows NT systems, in-process servers are usually implemented as DLLs. On OpenVMS systems, in-process servers are usually implemented as shareable images.

key (registry key): Registry element that contains information specific to the computer, system, or user.

out-of-process server: An application that is located on a different system than the requesting client. On Windows NT systems, out-of-process servers are usually implemented as .EXE files.

registry: A hierarchical database consisting of one or more files that stores configuration information about system hardware and software.

subkey (registry subkey): Registry element that is a child of a registry key. A registry key can have zero or more subkeys.

value (registry value): Registry element that is the entry or value for a registry key or subkey.

wrapper: See encapsulation.


Previous Next Contents Index

Copyright © Compaq Computer Corporation 1999. All rights reserved.

6539P005.HTM