zoukankan      html  css  js  c++  java
  • 数据处理应用程序必须完成CAknAppUi::OpenFileL(转)

    • 设备, 软件 版本:

    S60 3rd Edition, S60 3rd Edition, FP1

    • 详细描述

    当系统要根据MIME类型来寻找并启动一个程序打开某文件时,改程序的CAknDocument::OpenFileL()方法将收到调用。但如果该程序已经运行在后台了,那它的OpenFileL()调用将无法收到。

    • 解决方案

    数据处理程序不光要完成CEikDocument::OpenFileL(),还要完成CAknAppUi::OpenFile()。

    一个通常的解决办法是在其中直接调用document的OpenFileL:

    void CHandlerAppUi::OpenFileL( const TDesC& aFileName )
     
    {
     
    CHandlerDocument* doc = static_cast<CHandlerDocument*> ( Document() );
     
    doc->OpenFileL( ETrue, aFileName, iEikonEnv->FsSession() );
     
    }

    如果该程序被放置在后台,那调用程序必须要调用TApaTask::SwitchOpenFile():

    TBool CCallingAppUi::RefreshDocumentFileL( const TUid& aUid, const TDesC& aFileName )    
    {
     
    TApaTaskList taskList( iCoeEnv->WsSession() );
     
    TApaTask task = ( taskList.FindApp( aUid ) ); // Find handler application by its UID
     
    if ( task.Exists() )
     
    {
     
    // Calls CAknAppUi::OpenFileL(), requires SwEvent capability
     
    User::LeaveIfError( task.SwitchOpenFile( aFileName ) );
     
    return ETrue;
     
    }
     
    return EFalse;
     
    }
  • 相关阅读:
    [NOI2004]cashier 郁闷的出纳员
    [HNOI2004]宠物收养所
    [HNOI2002]营业额统计
    浅谈算法——莫比乌斯反演
    浅谈算法——splay
    [POI2006]Tet-Tetris 3D
    BZOJ2733 [HNOI2012]永无乡 【线段树合并】
    UOJ279 【UTR #2】题目交流通道
    UOJ278 【UTR #2】题目排列顺序
    POJ2761 Feed the dogs
  • 原文地址:https://www.cnblogs.com/yaoliang11/p/1846653.html
Copyright © 2011-2022 走看看