symbian中的模板函數用於得到AppUi/Document/Application

symbian的app沒有全局數據, 一個做法是將它這些全局數據放在你的Document類或者AppUi類或者Application類中. 這些類都是全局唯一的.

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對象的指針.
 
發佈了14 篇原創文章 · 獲贊 0 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章