[ 前のページ ]
[ 次のページ ]
[ 目次 ]
[ 索引 ]
[ DOC Home ]
この付録には,COM for OpenVMSとMicrosoft COMの実装上の相違点,APIの一覧,COM for OpenVMSの本リリースで提供されるインタフェースの一覧を示します。
ここでは,COM for OpenVMSとMicrosoftのCOM の実装上の重要な相違点を示します。
OpenVMSでは,Windows NTのサービス制御マネージャに相当する機能を提供していません。 この結果,Serverサービス(stop,start,pause, resumeなど)に依存するアプリケーションは,同様の機能を提供するOpenVMS 機能に依存します(このような機能が提供される場合)。
たとえば,OpenVMSサイト固有のスタートアップ・コマンド・プロシージャとシャットダウン・
コマンド・プロシージャを使用して,
システムのスタートアップ時にサービスを自動起動し,システムのシャットダウン時にサービスの自動的なシャットダウンを実装できます。
RegisterServiceCtrlHandler
やChangeServiceConfig などのサービスAPIは,OpenVMSでは提供されません。
COM for OpenVMSでは,サーバ・アプリケーションの機能はサーバ・ スレッドのコンテキストで実行されます。この結果, サーバ機能のスタック空間は48 KBに制限されます。ローカル変数や構造を格納するために追加空間が必要な場合は, ローカル変数または構造用に動的メモリを割り当てなければなりません。
OpenVMSとWindows NTはIDLベースのデータ型"char"を異なる方法で変換します。
OpenVMSでは,このデータ型をMIDL_CHARとして変換します。これはCHARとして定義されており, さらに"char"としても定義されています。OpenVMS コンパイラはデフォルト設定で,これを"unsigned char"に相当するものと解釈します。 ほとんどの場合,これらは同じように使用できます。しかし, この2つは正確には同じでありません。C++では,クラス・メンバ定義でこの2 つを指定した場合,異なるデータ型として取り扱われます。
Windows NTでは,このデータ型は直接"unsigned char"として変換されます。 これはVisual C++と矛盾します。Visual C++では,"char"データ型は"signed char" と同じであるものとして取り扱われます。OpenVMSの場合と同様に,"char" はクラス・メンバ定義では"signed char"と同じでありません。
この矛盾を回避するには,次の2つの方法があります。
COM for OpenVMSに添付されているMIDLコンパイラは,MicrosoftのMIDLコンパイラV3.00.44 を基礎にしています。
アプリケーションに関連付けられている一部のキーのOpenVMS Registryキー・ アクセス権を変更するには, 「Application Security」サブメニューのオプション5とオプション6 を使用します。オプション5とオプション6は次のキーのセキュリティ設定に影響します。
HKEY_CLASSES_ROOT\APPID\{guid}
HKEY_CLASSES_ROOT\CLSID\{guid}とサブキー
Windows NTシステムでは,HKEY_
CLASSES_ROOT\CLSID\{guid } の下のサブキーのセキュリティ設定は,
既存のセキュリティ設定が HKEY_
CLASSES_ROOT\APPID\{guid } の元の設定と一致する場合にだけ変更されます。
OpenVMSシステムでは,サブキーの設定は,HKEY_CLASSES_
ROOT\APPID\{guid } の元の設定と既存の設定が一致しない場合でも
変更されます。
オプション5とオプション6は,アプリケーションに関連付けられているすべてのキーの設定を変更するわけではありません。 たとえば,オプション5 とオプション6は次のキーには影響しません。
HKEY_CLASSES_ROOT\APPID\fi lename
HKEY_CLASSES_ROOT\TYPELIB\{typelib guid}
HKEY_CLASSES_ROOT\INTERFACES\{interface
guid(s)} とサブキー
HKEY_CLASSES_ROOT\name とサブキー
KEY_CLASSES_ROOT\version independent
name とサブキー
これらのキーのセキュリティ設定を変更するには,次の操作を行います。
HKEY_CLASSES_
ROOT はHKEY_LOCAL_MACHINE\SOFTWARE\Classes のエイリアスです。Regedt32
を使用してWindows
NTからOpenVMS Registryに接続し,
HKEY_CLASSES_ROOT キーを変更する場合は,
HKEY_LOCAL_MACHINE\SOFTWARE\Classes キーを変更してください。
セキュリティ・サポートが必要なAPIは,COM Version 1.0 for OpenVMSではサポートされません。
本リリースでサポートされるAPIは次のとおりです。
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
本リリースでサポートされるインタフェースは,次のとおりです。
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
[ 前のページ ]
[ 次のページ ]
[ 目次 ]
[ 索引 ]
[ DOC Home ]