IDIB
说明:
此结构用于定义 BREW 设备无关位图的格式。
IDIB 是一种结构和接口。 IDIB 继承了 IBitmap 的全部成员函数,因此通过类型转换,IDIB 可用作 IBitmap。 (IDIB_TO_IBITMAP 内联函数用于实现安全的类型转换。) 与其它 BREW 接口不同,IDIB 还包含公用数据成员。 这些数据成员可用于高效读取或修改图像数据。
通常,应用程序通过使用ClassID AEECLSID_DIB 调用 IBITMAP_QueryInterface() 来从 IBitmap 指针获取 IDIB 指针。 并非所有的 IBitmap 类都支持 IDIB。在不支持的情况下,QueryInterface() 将返回错误代码。 如果成功,则返回 IDIB 指针,调用者在使用完该指针之后,必须将其释放。
位图由二维像素数组构成。 IDIB 包含指示像素在内存中所处位置,以及如何解释这些像素值的成员。
定义:
OBJECT(IDIB) {
AEEVTBL(IDIB) *pvt;
IQueryInterface * pPaletteMap;
byte * pBmp;
uint32 * pRGB;
NativeColor ncTransparent;
uint16 cx;
uint16 cy;
int16 nPitch;
uint16 cntRGB;
uint8 nDepth;
uint8 nColorScheme;
uint8 reserved[6];
}
详参API文档。
IDIB_TO_IBITMAP()
说明:
此函数提供从 IDIB 接口指针到 IBitmap 接口指针进行安全的类型转换。 此函数应该用于将 IDIB 接口传递给 IBitmap 函数时。 由于编译器将验证指针类型,所以它比简单转换更安全。
原型:
__inline IBitmap *IDIB_TO_IBITMAP
(
const IDIB *pIDIB
)
IBITMAP_QueryInterface()
此函数继承于 IQI_QueryInterface()。
IQI_QueryInterface()
说明:
此方法用于向对象请求其它的 API 合约。
原型:
int IQI_QueryInterface
(
IQueryInterface *po,
AEECLSID idReq,
void **ppo
)
参数:
po: 指向对象的指针
idReq: 对象显露的所请求ClassID ppo: (out) 返回的对象。 由此方法填充
以上函数的示例代码如下:
GETAPPINSTANCE()
说明:
此函数用于返回当前正在执行的小程序的 IApplet 实例。 它在所有的 BREW API 调用、回调和事件中均有效。
原型:
IApplet *GETAPPINSTANCE
(
void
)
参数:
无
返回值:
返回指向当前正在执行的小程序的 IApplet 指针。
IDISPLAY_UpdateEx()
说明:
如果目标位图为设备位图,此函数可用于更新屏幕。 如果将 bDefer 标记设置为 true,屏幕将立即刷新(更新)。 如果将 bDefer 标记设置为 false,更新消息公布到 UI 任务队列中,因此
在更新屏幕前要允许所有绘制完成操作。
例如以下伪代码段:
1.DrawText;
2.BitBlt;
3.UpdateEx;
将确保所有绘制操作完成后立即更新屏幕。
原型:
void IDISPLAY_UpdateEx
(
IDisplay* po,
boolean bDefer
)
参数:
po:[in]: 指向要更新的 IDisplay 接口对象的指针。
bDefer: [in]: 指明是要立即更新还是延迟更新屏幕的布尔标记。