PRB: Using Enhanced Metafiles in COleServerItem (150431)
The information in this article applies to:
- The Microsoft Foundation Classes (MFC), when used with:
- Microsoft Visual C++, 32-bit Editions 4.0
- Microsoft Visual C++, 32-bit Editions 4.1
- Microsoft Visual C++, 32-bit Enterprise Edition 4.2
- Microsoft Visual C++, 32-bit Professional Edition 4.2
This article was previously published under Q150431 SYMPTOMS
Enhanced metafiles do not appear in a non-active state in a OLE client
when they are used by the server to render the image. A call to
CDC::PlayMetaFile() in the OnDraw of the COleServerItem-derived class
fails if it is passed an enhanced metafile.
CAUSE
When an OLE client application asks the server for a metafile
representation of the server data when it is in an inactive state or
using Paste Special, the application asks for it in a standard metafile
format (CF_METAFILEPICT). The server cannot respond to this request.
However, most images can be rendered without a problem using standard
metafiles.
When COleClientItem::Draw calls the IViewObject2::Draw to render the
cached metafile representation, it needs to receive a metafile and not
an enhanced metafile. When COleServerItem::OnDraw is called, the DC
passed is for a standard metafile, not an enhanced metafile, so the
rendering into the DCneeds to be limited to items understood by a
standard metafile.
RESOLUTION
If your server is using enhanced metafiles, and the client is asking
it to render to an standard metafile, you need to make a conversion.
You can use GetEnhMetafileBits() to get each command of the enhanced
metafile and copy the commands to a standard metafile using
SetMetafileBitsEx(), or you can use the GetWinMetaFileBits() function
to make the conversion.
STATUS
This behavior is by design.
MORE INFORMATION
Use the metafile format rather than the enhanced metafile. Check the
documentation on the features of enhanced metafiles to determine
whether this usage is appropriate for your application.
REFERENCES
For more information on enhanced metafiles, see the "Enhanced-Format
Metafiles" section in Online Help.
Modification Type: | Major | Last Reviewed: | 12/8/2003 |
---|
Keywords: | kbInplaceAct kbMetafile kbprb KB150431 |
---|
|