IPicture

The IPicture interface manages a picture object and its properties. Picture objects provide a language-neutral abstraction for bitmaps, icons, and metafiles. As with the standard font object, the system provides a standard implementation of the picture object. Its primary interfaces are IPicture and IPictureDisp, the latter being derived from IDispatch to provide access to the picture's properties through Automation. A picture object is created with OleCreatePictureIndirect.

The picture object also supports the outgoing interface IPropertyNotifySink, so a client can determine when picture properties change. Since the picture object supports at least one outgoing interface, it also implements IConnectionPointContainer and its associated interfaces for this purpose.

The picture object also supports IPersistStream so it can save and load itself from an instance of IStream. An object that uses a picture object internally would normally save and load the picture as part of the object's own persistence handling. The function OleLoadPicture simplifies the creation of a picture object based on stream contents.

When to Implement

Typically, you use the OLE-provided picture object, which provides the IPicture and IPictureDisp interfaces for you. The IPicture interface is the primary interface implemented by the OLE-provided picture object. It allows the caller to manage picture properties and to use that picture in graphical rendering. Each property in the IPicture interface includes a get_PropertyName method if the property supports read access and a put_PropertyName method if the property supports write access. Most of the properties support only read access with the exception of hPal.


Property

Type
Access Allowed
Description
HANDLE OLE_HANDLE (int) R The Windows GDI handle of the picture
hPal OLE_HANDLE (int) RW The Windows handle of the palette used by the picture
Type short R The type of picture (see below)
Width OLE_XSIZE_HIMETRIC (long) R The width of the picture
Height OLE_YSIZE_HIMETRIC (long) R The height of the picture
CurDC HDC R The current device context
KeepOriginalFormat BOOL RW If TRUE, the picture object maintains the entire original state of the picture in memory. If FALSE, any state not applicable to the user's machine is discarded
Attributes DWORD R Miscellaneous bit attributes of the picture (see below)

When to Use

Use this interface to change the properties of a picture object.

Methods in Vtable Order

IUnknown Methods Description
QueryInterface Returns pointers to supported interfaces.
AddRef Increments reference count.
Release Decrements reference count.

IPicture Methods Description
get_Handle Returns the Windows GDI handle of the picture managed within this picture object.
get_Hpal Returns a copy of the palette currently used by the picture object.
get_Type Returns the current type of the picture.
get_Width Returns the current width of the picture in the picture object.
get_Height Returns the current height of the picture in the picture object.
Render Draws the specified portion of the picture onto the specified device context, positioned at the specified location.
set_Hpal Sets the current palette of the picture.
get_CurDC Returns the current device context into which this picture is selected.
SelectPicture Selects a bitmap picture into a given device context, returning the device context in which the picture was previously selected as well as the picture's GDI handle.
get_KeepOriginalFormat Returns the current value of the picture object's KeepOriginalFormat property.
put_KeepOriginalFormat Sets the picture object's KeepOriginalFormat property.
PictureChanged Notifies the picture object that its picture resource changed.
SaveAsFile Saves the picture's data into a stream in the same format that it would save itself into a file.
get_Attributes Returns the current set of the picture's bit attributes.

QuickInfo

  Windows NT: Use version 4.0 or later.
  Windows: Use Windows 95 or later.
  Windows CE: Unsupported.
  Header: Declared in ocidl.h.

See Also

IPicture - Ole Implementation, IPictureDisp