Microsoft KB Archive/111613

From BetaArchive Wiki
Knowledge Base


PRB: IOleObject::IsUpToDate() and OLE 1.0 Link Objects

Article ID: 111613

Article Last Modified on 3/3/2005



APPLIES TO

  • Microsoft OLE 2.01
  • Microsoft OLE 4.0, when used with:
    • Microsoft Windows NT 4.0
    • Microsoft Windows NT 3.51 Service Pack 5
    • Microsoft Windows 95



This article was previously published under Q111613

SYMPTOMS

An OLE 2.0 container application calls IOleObject::IsUpToDate to determine whether or not an OLE 1.0 link object is up to date. IsUpToDate() returns S_FALSE, even though the object is actually up to date.

CAUSE

The OLE 1.0 compatibility layer always considers OLE 1.0 link objects to be out of date. If the OLE 1.0 object is not running, the compatibility layer always returns S_FALSE to IOleObject::IsUpToDate().

MORE INFORMATION

This problem can occur whenever an OLE 2.0 container application loads a document that contains links to OLE 1.0 objects. As part of loading the document, the link container updates any out of date automatic links. To find the out of date links, the container calls IOleObject::IsUpToDate() on each link that has a link-update option of OLEUPDATE_ALWAYS.

As described above, IsUpToDate will always return S_FALSE for an OLE 1.0 object that is not running. The container application will then update the link object (which requires running the object's server), even if it was not actually out of date.

For more information on the known idiosyncrasies of embedding or linking OLE 1.0 objects into OLE 2.01 containers, see "Working with OLE 1 Servers" in the OLE SDK version 2.01 "Programmer's Reference."


Additional query words: 2.01 3.50 4.00

Keywords: KB111613