If you intend to scale the image, be sure to pass the unscaled image to IWidget_SetImage() then call IWidget_SetScale() to perform the scale. Scaling the image via IIMAGE_SetParm() before (or after) passing it to this routine will cause undesirable behavior, particularly if the image is scaled beyond the extent of the image widget.
Avoid using IIMAGE_SetParm() on the IImage when it has been set on an image widget. The image widget will set many of these parameters itself and will depend on the persistance of these settings.
The IImage passed to IWidget_SetImage() must have been completely loaded and decoded. It is the application's responsibility to wait for image formats such as png, jpg and gif (and any media type that requires decoding) to completely decode before passing them to the image widget. For example, if an app uses ISHELL_LoadResImage() to load a jpg image from a resource file, it must do an IIMAGE_Notify() to wait for the image to completely load before passing the resulting pointer to IWidget_SetImage(). For more details on IIMAGE_Notify, see the BREW documentation on the IImage interface.
int IWidget_SetImage(IWidget *pif, IImage *piImage)
AEE_SUCCESS - If BREW was able to successfully store 'piImage' in the model associated with the image widget. AEE_EFAILED - If the image could not be set or if the image widget utilizes a model other than the interface model.
- Calling IWidget_SetImage() will result in the widget redrawing itself with the new image.