FIX: OLE Libraries Fix List

Last reviewed: October 29, 1997
Article ID: Q134799
1.20 1.25a 1.30 2.02 2.03 WINDOWS kbprg kbfixlist kbbuglist

The information in this article applies to:

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

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.


Additional reference words: 1.20 1.30
KBCategory: kbprg kbfixlist kbbuglist
KBSubcategory: LeTwoMisc W32s
Solution Type : kbfix


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: October 29, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.