FIX: OLE Libraries Fix List (134799)



The information in this article applies to:

  • Microsoft OLE Libraries for Windows and Win32s 2.02
  • Microsoft OLE Libraries for Windows and Win32s 2.03
  • Microsoft Win32s 1.2
  • Microsoft Win32s 1.25a
  • Microsoft Win32s 1.3

This article was previously published under Q134799

SUMMARY

Fixes in OLE 2.02 (Win32s 1.2)

The following is a list of the known bugs that were fixed in OLE 2.02, which is distributed with Win32s version 1.2.

  • Changing the source of a link when the object is iconic does not update the new link name.
  • GetClassfile fails if the offset is greater than 32K.
  • GetClassfile returns NO_ERROR when the clsid string in the registry contains illegal characters.
  • The IStream returned from CreateStreamOnHGlobal does not support QueryInterface correctly.
  • GetClassfile fails if the offset is negative.
  • For composite monikers, IMoniker::CommonPrefixWith returns the wrong hresult if both monikers have a common prefix. For item monikers, IMoniker::CommonPrefixWith doesn't handle the case that the other moniker is not an item moniker.
  • CreateGenericComposite fails when handling an item moniker with an anti moniker.
  • For item monikers, IMoniker::ParseDisplayName causes a general protection (GP) fault when pmkToLeft is NULL.
  • For anti monikers, IMoniker::RelativePathTo returns an interface pointer without first calling AddRef and returns a wrong hresult.
  • The ILockBytes returned from CreateILockBytesOnHGlobal does not support QueryInterface correctly.
  • ICLassFactory::LockServer returns the wrong hresult.
  • OLE time APIs do not validate input pointers.
  • For composite monikers, calling IMoniker::RelativePathTo leaks memory.
  • OleLoadFromStream(pstrm, IID_IUnknows, &pmk) always returns E_NOINTERFACEW (0x80004002).
  • When registering a new pointer to unknown with an existing key, IBindCtx::RegisterObjectParam does not release the old pointer, resulting in a memory leak.
  • IBindCtx::RevokeObjectBound fails with MK_E_NOTBOUND even though the object is in the list.
  • IPersistFile::IsDirty fails.
  • There is no marshalling code for IPersistStream.
  • For pointer monikers, IMoniker::IsRunning is not implemented correctly.
  • Drawing a metafile causes a leak of many palettes.
  • OleMetafilePictFromIconAndLabel mishandles long labels.
  • OleMetafilePictFromIconAndLabel tries to write to a label.

Fixes in OLE 2.03 (Win32s 1.25)

The following is a list of the known bugs that were fixed in OLE 2.03, which is distributed with Win32s version 1.25.

  • IMalloc::DidAlloc does not return 1 for memory it allocates.
  • There is no marshalling code for IEnumUnknown, IMoniker, and IEnumMoniker.
  • MkParseDisplayName silently fails if the server is already running.
  • Wrong cbSize in OBJECTDESCRIPTOR.
  • GPF occurs when marshalling a MSG structure in 16-32 interop.
  • Bug in remoting of OA interfaces (32-bit only).
  • Bug in second activation of the olespy tool. It may not run.
  • OleConvertOLESTREAMToIStorage always saves CLSID_NULL instead of the real clsid.
  • GPF marshalling ILockBytes::Stat, IStorage::Stat, and IStream::Stat.
  • GPF with 16-32 interop when the 32-bit application installs a hook.

Fixes in OLE 2.03 (Win32s 1.25a)

The following is a list of the known bugs that were fixed in OLE 2.03, which is distributed with Win32s version 1.25a.

  • Can't unload an Excel Add-in.
  • Cross-bitness QueryInterface does not return the correct error code.
  • Japanese NEC PCs may crash when calling CoCreateGuid.
  • Failure to call a 32-bit OA server if the calling chain is too long. Therefore, you can not do the following: OA controller -> OA serverA -> OA serverB -> OA serverC.

Fixes in 32-bit OLE (Win32s 1.3)

The following is a list of the known bugs that were fixed in the 32-bit OLE which is distributed with Win32s version 1.3.

  • General protection (GP) fault when a 32-bit container activates a 16-bit server more than once and uses both OA intefaces and core OLE interfaces.
  • When a call to OleGetClipboard fails, the clipboard become corrupted and other applications can not use it.
  • A 16-bit container copies data to the clipboard and a 32-bit server uses the Paste Special dialog. The string from the object descriptor is corrupted and a general protection (GP) fault may occur.

Modification Type:MajorLast Reviewed:10/15/2003
Keywords:kbfix KB134799