Symbian提夠了一些宏 , 例如iAvkonAppUi, iAvkonViewAppUi 等等, 但有時候我們需要得到我們"自己的"AppUi對象, 自己的Document對象等.
下面的3個模板函數可以解決這些問題.
template<class T>
inline T* AppUi()
{
return static_cast<T*>(CEikonEnv::Static()->AppUi());
}
template<class T>
inline T* Document()
{
return static_cast<T*>(CEikonEnv::Static()->EikAppUi()->Document());
}
template<class T>
inline T* Application()
{
return static_cast<T*>(CEikonEnv::Static()->EikAppUi()->Application());
}
用法:
CMyAppUi * p = AppUi<CMyAppUi>();
CMyDocument * p = Document<CMyDocument>();
CMyApplicaton * p = Application<CMyApplication>();
這樣在代碼中任何地方, 可以很方便的得到你的Document/AppUi/Application對象的指針.