应用程序类(CAknApplication->CEikApplication->CApaApplication)
文档类(CAknDocument->CEikDocument->CApaDocument)
应用程序UI类(CAknViewAppUi->CAknAppUi->CEikAppUi->CCoeAppUi)
视图类(CAknView)
1、实现全局函数E32Main(),该函数也称为应用程序入口点,当应用程序启动时,UI Framework将首先调用该函数。
GLDEF_C TInt E32Main( )
{
return EikStart::RunApplication( NewApplication );
}
2、实现NewApplication()函数,该函数是由DLL导出的唯一函数。在NewApplication( )函数中创建应用程序类(CAknApplication)的一个实例,并返回它的指针,以后UI Framework使用该指针完成应用程序的创建。
LOCAL_C CApaApplication* NewApplication( )
{
return new CMyApplication;
}
这里应用程序类的实例是在堆上创建的,使用的是"new"方法,而非new (ELeave)方法,是因为TRAP harness还没有创立。
3、CMyApplication必须Override基类虚函数:
TUid CAknApplication::AppDllUid( )
返回应用程序的UID。该函数可用于确定应用程序的实例是否正在运行。
TUid CIRApplication::AppDllUid( ) const
{
return KMyAppUid;
}
4、CMyApplication必须Override基类虚函数:
CApaDocument* CAknApplication::CreateDocumentL( )。
UI Framework通过该函数获取新创建文档类(CAknDocument)的指针。
CApaDocument* CMyApplication::CreateDocumentL()
{
return CMyDocument::Ne