Previous | Contents | Index |
The following sections describe tasks you must complete when upgrading
from a previous version of COM for OpenVMS.
D.1.1 Rebuild Existing COM for OpenVMS Applications
If your COM for OpenVMS applications include references to any of the following APIs, you must recompile the modules that include the references and relink the application:
LoadLibraryA
LoadLibraryW
LoadLibraryExW
LoadLibraryExA
GetModuleFileNameA
GetModuleFileNameW
GetModuleHandleW
GetProcAddress
FreeLibrary
Some sample COM applications that shipped with COM Version 1.0 for
OpenVMS include references to these APIs in the modules REGISTRY and
CMPNT. If you built any samples, or if you built your own COM
applications based on these samples, you should recompile and relink
those applications.
D.1.2 Configuring the Windows Systems
For COM Version 1.0 for OpenVMS (unauthenticated COM) the COM for OpenVMS documentation instructed you to change specific values in your Windows registry to allow unauthenticated COM for OpenVMS to interoperate with Windows. COM Version 1.1-A and higher for OpenVMS support authentication. As a result, you must set or reset the Windows Registry values we asked you to change for COM Version 1.0 for OpenVMS back to their default authenticated settings. To set the Windows Registry values, use the following procedure:
HKEY_LOCAL_MACHINE\Software\Microsoft\Ole |
Value name | Recommended COM V1.0 setting | Default (Authenticated) Value data (COM V1.4 setting) | Registry type |
---|---|---|---|
ActivationSecurity | N | Remove | REG_SZ |
PersonalClasses | N | Remove | REG_SZ |
You must have Windows Administrator privileges to view and update these settings. |
On OpenVMS systems, you must set or reset the specific OpenVMS Registry values. You can use the Windows Registry editor to edit the OpenVMS Registry, or you can use the REG$CP utility. To set the OpenVMS Registry values, use the following procedure:
HKEY_LOCAL_MACHINE\Software\Microsoft\Ole |
$ REG$CP == "$REG$CP" $ REG$CP LIST VALUE HKEY_LOCAL_MACHINE\Software\Microsoft\Ole $ REG$CP DELETE VALUE HKEY_LOCAL_MACHINE\Software\Microsoft\Ole ActivationSecurity $ REG$CP DELETE VALUE HKEY_LOCAL_MACHINE\Software\Microsoft\Ole PersonalClasses $ REG$CP DELETE VALUE HKEY_LOCAL_MACHINE\Software\Microsoft\Ole LegacyAuthenticationLevel $ REG$CP DELETE VALUE HKEY_LOCAL_MACHINE\Software\Microsoft\Ole LegacyImpersonationLevel $ REG$CP LIST VALUE HKEY_LOCAL_MACHINE\Software\Microsoft\Ole $ REG$CP EXIT |
If you configured an application to run with COM Version 1.0 for OpenVMS (unauthenticated COM for OpenVMS ) on Windows, you might want to reconfigure the Windows settings to take advantage of the most recent version of COM for OpenVMS (authenticated COM for OpenVMS).
Under COM Version 1.0 for OpenVMS after you registered a component, the COM for OpenVMS documentation instructed you to check the security properties on that component to ensure that an unauthenticated user can activate the image. Use the following procedure:
For the most recent version of COM for OpenVMS, you must repopulate the
OpenVMS Registry to include security settings. Use the DCOM$SETUP command
procedure to display the OpenVMS COM Tools menu, and choose option 3.
D.2.2 Changing Application Security Settings in the OpenVMS Registry
COM Version 1.0 for OpenVMS, which shipped with OpenVMS 7.2, did not support NTLM security. As a result, the OpenVMS account through which you (or the system) registered the COM Version 1.0 for OpenVMS COM application was the owner for any OpenVMS Registry keys created as part of the application registration. For example, using COM Version 1.0 for OpenVMS, if you logged into the SYSTEM account and registered the SAMPLE1 application, all SAMPLE1's OpenVMS Registry keys are owned by SYSTEM.
COM V1.1-A and higher for OpenVMS supports NTLM security. The system now uses the Windows domain account to control access to the OpenVMS Registry keys. As a result of this change, previous security settings might prevent a nonprivileged user from accessing an application's registry keys. This means that a nonprivileged user working on an existing application might not be able to unregister or reregister an application.
To prevent this registration lockout, you must change the permission of the application. You can change the permission from either the Windows system or the OpenVMS system. Use either of the following procedures:
A COM application can have several registry keys associated with it. You must be sure to change all keys associated with the application. An application usually registers the following keys:
HKEY_CLASSES_ROOT\CLSID\{guid} and subkeys
HKEY_CLASSES_ROOT\APPID\{guid}
HKEY_CLASSES_ROOT\APPID\filename
HKEY_CLASSES_ROOT\TYPELIB\{typelib guid}
HKEY_CLASSES_ROOT\INTERFACES\{interface guid(s)} and subkeys
HKEY_CLASSES_ROOT\name and subkeys
HKEY_CLASSES_ROOT\version independent name and subkeys
HKEY_CLASSES_ROOT is an alias for HKEY_LOCAL_MACHINE\SOFTWARE\Classes . If you connect to the OpenVMS Registry from Windows using Regedt32 and you want to edit the HKEY_CLASSES_ROOT key, edit the HKEY_LOCAL_MACHINE\SOFTWARE\Classes key. |
COM for OpenVMS includes an option that allows you to run the software in an unauthenticated environment in which NTLM support is not utilized. If you enable this option, only OpenVMS security semantics are used to control COM applications' access to resources. This is essentially the same behavior as in COM Version 1.0 for OpenVMS.
For a list of security differences between an unauthenticated implementation and an authenticated implementation of COM for OpenVMS, see Table 1-1.
When you run COM for OpenVMS in unauthenticated mode, detached processes started by DCOM$RPCSS to run COM servers run in the context of the OpenVMS DCOM$GUEST account. These detached processes have the security attributes of the DCOM$GUEST account. |
The following sections describe tasks you must complete in order to run
COM for OpenVMS in an unauthenticated environment.
E.1 Installing COM for OpenVMS to Run in Unauthenticated Mode
If you are installing COM for OpenVMS for the first time, or if you are upgrading from an earlier version, perform the following steps:
The ACME Server process is started automatically by RPC, but it is not required if you are in unauthenticated mode. To cause the ACME Server process to not start when the system reboots, edit the SYLOGICALS.COM file as follows:
$ DEFINE ACME$TO_BE_STARTED FALSE ! ACME Server |
The following section describes how to configure COM for OpenVMS to run in an unauthenticated environment.
Before you begin configuring COM for OpenVMS for unauthenticated mode, make a note of your current Windows system default values and application settings. This makes returning to authenticated mode easier. (For information about how to convert from unauthenticated mode to authenticated mode, see Section E.5.) |
Define DCOM$UNAUTHENTICATED to be Y or YES systemwide. If this logical is undefined or defined as any other value, COM for OpenVMS will run in the usual authenticated mode utilizing NTLM security.
To cause COM for OpenVMS to start automatically in unauthenticated mode when the system boots, edit the SYLOGICALS.COM file and add the following line:
$ DEFINE/SYSTEM DCOM$UNAUTHENTICATED YES |
Use option 3 in the DCOM$SETUP utility to populate the OpenVMS Registry. (See Section 6.2 for more information.)
If you are upgrading from COM Version 1.1-A for OpenVMS or higher, you do not need to populate the OpenVMS Registry. |
Create the OpenVMS
DCOM$GUEST
account using option 7 in the
DCOM$SETUP
utility. (See Section 6.2 for more information.)
E.2.4 Create the DCOM$RPCSS Account
Create the OpenVMS
DCOM$RPCSS
account using option 8 in the
DCOM$SETUP
utility. (See Section 6.2 for more information.)
E.3 Configuring Windows to Interoperate with Unauthenticated COM
For COM objects to interoperate correctly between unauthenticated COM
for OpenVMS systems and Windows, perform the steps described in the
following sections. This will configure the COM objects to run without
security enabled on the Windows system.
E.3.1 Setting the Windows Systemwide Authentication Level
On Windows systems, set the systemwide authentication level using this procedure:
After a COM application has been registered, check the security properties for that application to ensure that an unauthenticated user can activate the image.
To do this, perform the following steps:
Set the access permissions (registry value AccessPermission) so that user Everyone is allowed access (Allow access).
Set the launch permissions (registry value LaunchPermission) so that user Everyone is allowed access (Allow access).
Set the configuration permissions so that user
Everyone is allowed at least Read
access to the Registry values.
E.3.3 Setting the Windows Application Security Identity
After you set security permissions, you must set the identity of the
account to run the application. To do this, click the
Identity tab, and select The interactive
user.
E.4 Expected Failures from CLIENTAUTH Sample Program
While you are running COM for OpenVMS in unauthenticated mode, the
Cross-Domain Security example (CLIENTAUTH) does not work because it
requires NTLM authentication to be enabled.
E.5 Converting from Unauthenticated Mode to Authenticated Mode
If you performed the steps in this appendix to run COM for OpenVMS in unauthenticated mode and you want to return to authenticated mode, perform the following steps.
$ DEFINE/SYSTEM DCOM$UNAUTHENTICATED NO |
$! DEFINE ACME$TO_BE_STARTED FALSE ! ACME Server |
$ DEFINE/SYSTEM DCOM$UNAUTHENTICATED NO |
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 release of COM for OpenVMS.
F.1 Differences between COM for OpenVMS and Microsoft COM
The following sections list important implementation differences
between COM for OpenVMS and Microsoft's COM.
F.1.1 Service Control Manager (SCM)
OpenVMS does not provide an equivalent to the Windows 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.
F.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 48 KB. If you require additional space for local variables or
structures, you should allocate dynamic memory for local variables or
structures.
F.1.3 Use of the "char" Datatype
OpenVMS and Windows translate the IDL base data type "char" differently.
OpenVMS translates the data type as MIDL_CHAR, which is defined to be CHAR, and further defined to be "char." The OpenVMS compiler by default takes this to be equivalent to "unsigned char;" in most cases they can be used interchangeably. The two are not the same---C++ treats them as different data types you specify them in class member definitions.
Windows translates the data type directly as "unsigned char." This causes conflicts with Visual C++, which treats the "char" datatype as equivalent to "signed char." As in OpenVMS, "char" is not the same as "signed char" in class member definitions.
There are two workarounds to this mismatch:
The MIDL compiler supplied with COM for OpenVMS is based on Microsoft's
MIDL compiler V3.01.76.
F.1.4.1 The OpenVMS MIDL Compiler
The OpenVMS MIDL compiler is identical to the Microsoft Interface Definition Language (MIDL) compiler V3.01.76 except for the following:
Use the Application Security Submenu options 5 and 6 to change the OpenVMS Registry key permissions of some keys associated with an application. Option 5 and 6 affect the security settings of the following keys:
HKEY_CLASSES_ROOT\APPID\{guid}
HKEY_CLASSES_ROOT\CLSID\{guid} and subkeys
On Windows systems, the security settings of the subkeys under HKEY_CLASSES_ROOT\CLSID\{guid} are changed only if the existing security settings match the original settings of HKEY_CLASSES_ROOT\APPID\{guid} .
On OpenVMS systems, the settings of the subkeys are changed even if the existing settings do not match the original settings of HKEY_CLASSES_ROOT\APPID\{guid} .
Options 5 and 6 do not change the settings of all keys associated with an application. For example, options 5 and 6 do not affect the following keys:
HKEY_CLASSES_ROOT\APPID\filename
HKEY_CLASSES_ROOT\TYPELIB\{typelib guid}
HKEY_CLASSES_ROOT\INTERFACES\{interface guid(s)} and subkeys.
HKEY_CLASSES_ROOT\name and subkeys
HKEY_CLASSES_ROOT\version independent name and subkeys
To change the security settings of these keys, use the following procedure:
HKEY_CLASSES_ROOT is an alias for HKEY_LOCAL_MACHINE\SOFTWARE\Classes . If you connect to the OpenVMS Registry from Windows using Regedt32 and you want to edit the HKEY_CLASSES_ROOT key, edit the HKEY_LOCAL_MACHINE\SOFTWARE\Classes key. |
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 CoCreateErrorInfo CoCreateFreeThreadedMarshaler CoCreateGuid CoCreateInstance CoCreateInstanceEx CoDisconnectObject CoDosDateTimeToFileTime CoFileTimeNow CoFileTimeToDosDateTime CoFreeAllLibraries CoFreeLibrary CoFreeUnusedLibraries CoGetCallContext CoGetClassObject CoGetCurrentProcess CoGetErrorInfo CoGetInstanceFromFile CoGetInstanceFromIStorage CoGetInterfaceAndReleaseStream CoGetMalloc CoGetMarshalSizeMax CoGetPSClsid CoGetStandardMarshal CoGetTreatAsClass CoImpersonateClient CoInitialize CoInitializeEx CoInitializeSecurity CoIsHandlerConnected CoLoadLibrary CoLockObjectExternal CoMarshalInterface CoQueryAuthenticationServices CoQueryClientBlanket CoQueryProxyBlanket CoRegisterChannelHook CoRegisterClassObject CoRegisterMallocSpy CoRegisterMessageFilter CoRegisterPSClsid CoReleaseMarshalData CoReleaseServerProcess CoResumeClassObjects CoRevertToSelf CoRevokeClassObject CoRevokeMallocSpy CoSetErrorInfo 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 |
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 |
The following files are installed as part of the COM for OpenVMS installation process:
[000000]DEC-AXPVMS-DCOM-V0104--1.PCSI$TLB [DCOM$LIBRARY]ATLBASE.H [DCOM$LIBRARY]ATLCOM.H [DCOM$LIBRARY]ATLCONV.CPP [DCOM$LIBRARY]ATLCONV.H [DCOM$LIBRARY]ATLDEF.H [DCOM$LIBRARY]ATLIFACE.H [DCOM$LIBRARY]ATLIFACE.IDL [DCOM$LIBRARY]ATLIMPL.CPP [DCOM$LIBRARY]ATLMAIN.CXX [DCOM$LIBRARY]CDERR.H [DCOM$LIBRARY]CGUID.H [DCOM$LIBRARY]COGUID.H [DCOM$LIBRARY]COMCAT.H [DCOM$LIBRARY]COMCAT.IDL [DCOM$LIBRARY]COMMDLG.H [DCOM$LIBRARY]CONIO.H [DCOM$LIBRARY]CRTDBG.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]NTA_MESSAGE.H [DCOM$LIBRARY]OAIDL.ACF [DCOM$LIBRARY]OAIDL.H [DCOM$LIBRARY]OAIDL.IDL [DCOM$LIBRARY]OBJBASE.H [DCOM$LIBRARY]OBJIDL.H [DCOM$LIBRARY]OBJIDL.IDL [DCOM$LIBRARY]OCIDL.ACF [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]OLEIDL.IDL [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]SHLWAPI.H [DCOM$LIBRARY]STATREG.CPP [DCOM$LIBRARY]STATREG.H [DCOM$LIBRARY]STDOLE2.TLB [DCOM$LIBRARY]STDOLE32.TLB [DCOM$LIBRARY]TCHAR.H [DCOM$LIBRARY]UCS2_DEFINES.HXX [DCOM$LIBRARY]UNKNWN.H [DCOM$LIBRARY]UNKNWN.IDL [DCOM$LIBRARY]URLMON.H [DCOM$LIBRARY]URLMON.IDL [DCOM$LIBRARY]UUID.OLB [DCOM$LIBRARY]VMS_ATL.H [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]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 [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$DLLHOST.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 [SYSEXE]DCOM$TOOL.EXE [SYSHLP.EXAMPLES.DCOM.CLIENTAUTH]BUILD_CLIENTAUTH.COM [SYSHLP.EXAMPLES.DCOM.CLIENTAUTH]CLIENT.CXX [SYSHLP.EXAMPLES.DCOM.CLIENTAUTH]CLIENTAUTH$SHR.OPT [SYSHLP.EXAMPLES.DCOM.CLIENTAUTH]CLIENTAUTH.CXX [SYSHLP.EXAMPLES.DCOM.CLIENTAUTH]CLIENTAUTH.DEF [SYSHLP.EXAMPLES.DCOM.CLIENTAUTH]CLIENTAUTH.IDL [SYSHLP.EXAMPLES.DCOM.CLIENTAUTH]MAKE-ONE. [SYSHLP.EXAMPLES.DCOM.CLIENTAUTH]MAKEFILE.BAT [SYSHLP.EXAMPLES.DCOM.CLIENTAUTH]PROXY$SHR.OPT [SYSHLP.EXAMPLES.DCOM.CLIENTAUTH]PROXY.DEF [SYSHLP.EXAMPLES.DCOM.CLIENTAUTH]README-CLIENTAUTH.TXT [SYSHLP.EXAMPLES.DCOM.CLIENTAUTH]REGISTRY.CXX [SYSHLP.EXAMPLES.DCOM.CLIENTAUTH]REGISTRY.H [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]DCLIENT.CXX [SYSHLP.EXAMPLES.DCOM.DISPATCH_SAMPLE1]DISPCMPNT$SHR.OPT [SYSHLP.EXAMPLES.DCOM.DISPATCH_SAMPLE1]DISPCMPNT.CXX [SYSHLP.EXAMPLES.DCOM.DISPATCH_SAMPLE1]DISPCMPNT.DEF [SYSHLP.EXAMPLES.DCOM.DISPATCH_SAMPLE1]DISPCMPNT.IDL [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.EVENTS]BUILD_EVENTS_SAMPLE.COM [SYSHLP.EXAMPLES.DCOM.EVENTS]EVENTS_SAMPLE.C [SYSHLP.EXAMPLES.DCOM.EVENTS]EVENTS_SAMPLE.H [SYSHLP.EXAMPLES.DCOM.EVENTS]NTA_WIN32.C [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]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.EXAMPLES.DCOM.SURROGATE]BUILD_SURROGATE.COM [SYSHLP.EXAMPLES.DCOM.SURROGATE]BUILD_SURROGATE.MMS [SYSHLP.EXAMPLES.DCOM.SURROGATE]CLIENT.CXX [SYSHLP.EXAMPLES.DCOM.SURROGATE]MAKE-ONE. [SYSHLP.EXAMPLES.DCOM.SURROGATE]MAKEFILE.BAT [SYSHLP.EXAMPLES.DCOM.SURROGATE]PROXY$SHR.OPT [SYSHLP.EXAMPLES.DCOM.SURROGATE]PROXY.DEF [SYSHLP.EXAMPLES.DCOM.SURROGATE]README-SURROGATE.TXT [SYSHLP.EXAMPLES.DCOM.SURROGATE]REGISTRY.H [SYSHLP.EXAMPLES.DCOM.SURROGATE]REG_SURROGATE.CXX [SYSHLP.EXAMPLES.DCOM.SURROGATE]SURROGATE$SHR.OPT [SYSHLP.EXAMPLES.DCOM.SURROGATE]SURROGATE.CXX [SYSHLP.EXAMPLES.DCOM.SURROGATE]SURROGATE.DEF [SYSHLP.EXAMPLES.DCOM.SURROGATE]SURROGATE.IDL [SYSHLP.EXAMPLES.DCOM.TESTATL_INPROC]BUILD_TESTATL_INPROC.COM [SYSHLP.EXAMPLES.DCOM.TESTATL_INPROC]BUILD_TESTATL_INPROC.MMS [SYSHLP.EXAMPLES.DCOM.TESTATL_INPROC]CLIENT.CXX [SYSHLP.EXAMPLES.DCOM.TESTATL_INPROC]MATH101$SHR.OPT [SYSHLP.EXAMPLES.DCOM.TESTATL_INPROC]MATH101.CXX [SYSHLP.EXAMPLES.DCOM.TESTATL_INPROC]MATH101.IDL [SYSHLP.EXAMPLES.DCOM.TESTATL_INPROC]MATH101PS$SHR.OPT [SYSHLP.EXAMPLES.DCOM.TESTATL_INPROC]MATHFORMULAS.CXX [SYSHLP.EXAMPLES.DCOM.TESTATL_INPROC]MATHFORMULAS.H [SYSHLP.EXAMPLES.DCOM.TESTATL_INPROC]MATHFORMULAS.RGS [SYSHLP.EXAMPLES.DCOM.TESTATL_INPROC]README-TESTATL_INPROC.TXT [SYSHLP.EXAMPLES.DCOM.TESTATL_INPROC]RESOURCE.H [SYSHLP.EXAMPLES.DCOM.TESTATL_INPROC]STDAFX.CXX [SYSHLP.EXAMPLES.DCOM.TESTATL_INPROC]STDAFX.H [SYSHLP.EXAMPLES.DCOM.TESTATL_OUTPROC]BUILD_TESTATL_OUTPROC.COM [SYSHLP.EXAMPLES.DCOM.TESTATL_OUTPROC]BUILD_TESTATL_OUTPROC.MMS [SYSHLP.EXAMPLES.DCOM.TESTATL_OUTPROC]CLIENT.CXX [SYSHLP.EXAMPLES.DCOM.TESTATL_OUTPROC]INSIDEDCOM.CXX [SYSHLP.EXAMPLES.DCOM.TESTATL_OUTPROC]INSIDEDCOM.H [SYSHLP.EXAMPLES.DCOM.TESTATL_OUTPROC]INSIDEDCOM.RGS [SYSHLP.EXAMPLES.DCOM.TESTATL_OUTPROC]README-TESTATL_OUTPROC.TXT [SYSHLP.EXAMPLES.DCOM.TESTATL_OUTPROC]RESOURCE.H [SYSHLP.EXAMPLES.DCOM.TESTATL_OUTPROC]STDAFX.CXX [SYSHLP.EXAMPLES.DCOM.TESTATL_OUTPROC]STDAFX.H [SYSHLP.EXAMPLES.DCOM.TESTATL_OUTPROC]TESTATL.CXX [SYSHLP.EXAMPLES.DCOM.TESTATL_OUTPROC]TESTATL.IDL [SYSHLP.EXAMPLES.DCOM.TESTATL_OUTPROC]TESTATL.RGS [SYSHLP.EXAMPLES.DCOM.TESTATL_OUTPROC]TESTATLPS$SHR.OPT [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]BUILD_INVENTORYCONTROLLER.COM [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]DEFAULT.ASP [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]GLOBAL.ASA [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]INVCTR$SHR.OPT [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]INVCTR.CXX [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]INVCTR.DEF [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]INVCTR.IDL [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]INVCTRCLIENT.CXX [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]INVCTRPROX.CPP [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]INVCTRPROX.H [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]INVCTRPROXY.CPP [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]INVCTRPROXY.DLL [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]INVCTRPROXY.IDL [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]MAKE-ONE. [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]MAKEFILE.BAT [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]ORDER.ASP [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]README-WEBSAMPLE.TXT [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]REGISTRY.CXX [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]REGISTRY.H [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]RESET.ASP [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]STATS.ASP [SYSHLP.EXAMPLES.DCOM.WEBSAMPLE]STATUS.ASP [SYSHLP.EXAMPLES.DCOM.WRAPPER]BUILD_WRAPPER.COM [SYSHLP.EXAMPLES.DCOM.WRAPPER]MAKE-ONE. [SYSHLP.EXAMPLES.DCOM.WRAPPER]MAKEFILE.BAT [SYSHLP.EXAMPLES.DCOM.WRAPPER]README.TXT [SYSHLP.EXAMPLES.DCOM.WRAPPER]REGISTRY.CXX [SYSHLP.EXAMPLES.DCOM.WRAPPER]REGISTRY.H [SYSHLP.EXAMPLES.DCOM.WRAPPER]TEST.COM [SYSHLP.EXAMPLES.DCOM.WRAPPER]VBCLIENT.FRM [SYSHLP.EXAMPLES.DCOM.WRAPPER]VBCLIENT.VBP [SYSHLP.EXAMPLES.DCOM.WRAPPER]WR$SHR.OPT [SYSHLP.EXAMPLES.DCOM.WRAPPER]WRAPPER.CXX [SYSHLP.EXAMPLES.DCOM.WRAPPER]WRAPPER.DEF [SYSHLP.EXAMPLES.DCOM.WRAPPER]WRAPPER.IDL [SYSHLP.EXAMPLES.DCOM.WRAPPER]WRAPPERCLIENT.CXX [SYSHLP]COM_REG_EVENTS_DEV_GD.HTML [SYSHLP]COM_REG_EVENTS_DEV_GD.PDF [SYSHLP]COM_REG_EVENTS_DEV_GD.PS [SYSHLP]COM_REG_EVENTS_DEV_GD_001.HTML [SYSHLP]COM_REG_EVENTS_DEV_GD_002.HTML [SYSHLP]COM_REG_EVENTS_DEV_GD_003.HTML [SYSHLP]COM_REG_EVENTS_DEV_GD_004.HTML [SYSHLP]COM_REG_EVENTS_DEV_GD_005.HTML [SYSHLP]COM_REG_EVENTS_DEV_GD_006.HTML [SYSHLP]COM_REG_EVENTS_DEV_GD_CONTENTS.HTML [SYSHLP]COM_REG_EVENTS_DEV_GD_CONTENTS_001.HTML [SYSHLP]COM_REG_EVENTS_DEV_GD_INDEX.HTML [SYSHLP]HP_LOGO.GIF [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 [SYSHLP]VM-0331A.GIF [SYSHLP]VM-8782A.GIF [SYSHLP]ZK-8782A.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 [SYSLIB]DCOM$WIN32_SHR.EXE [SYSMGR]DCOM$CREATE_ACCOUNT.COM [SYSMGR]DCOM$REGISTRY_KEYS.COM [SYSMGR]DCOM$SETUP.COM [SYSMSG]DCOM$GUIDGEN_MSG.EXE [SYSMSG]NTADISPMSG.EXE [SYSMSG]NTAITFMSG.EXE [SYSMSG]NTARPCMSG.EXE [SYSMSG]NTAWINMSG.EXE [SYSMSG]NTAWNDWSMSG.EXE [000000]DEC-AXPVMS-DCOM-V0104--1.PCSI$DESCRIPTION |
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 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 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.
ACM: Authentication and Credential Management Authority
ACME: Authentication and Credential Management
Extension
API: Application Program Interface
ATL: Active Template Library
COM: Component Object Model
CLSID: Class ID
DCOM: Distributed Component Object Model
DLL: Dynamic Link Library
FMS: Forms Management System
GUI: Graphical User Interface
GUID: Globally Unique Identifier
MIDL: Microsoft Interface Definition Language
OO: Object oriented
RPC: Remote Procedure Call
SAM: Security Account Manager
SID: Security Identifier
SMG: Screen Management Facility
SSPI: Security Support Provider Interface
UI: User Interface
UIC: User Identification Code
Index | Contents |