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 3.51 Service Pack 5
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