使用CDocumentHandler打开文件

简介: 概述   这个代码片段演示如何使用Document Handler API(CDocumentHandler)来打开文件。
概述 
  这个代码片段演示如何使用Document Handler API(CDocumentHandler)来打开文件。下面演示了两种不同的技术: 

在该文件的处理应用程序中独立打开 
在调出应用程序中嵌入打开文件 
MMP文件 
下面的能力和库文件是必须的: 

CAPABILITY  SwEvent  // TApaTask::SwitchOpenFile() (仅独立版) 
LIBRARY  apgrfx.lib    // TApaTaskList, TApaTask (仅独立版) 
LIBRARY  apmime.lib    // TDataType 
LIBRARY  commonui.lib  // CDocumentHandler 
头文件(独立版) 
#include <DocumentHandler.h> 
class CMyAppUi : public CAknAppUi 
    { 
    // ... 

    private:  // Private functions 
        void LaunchFileL(const TDesC& aFilename); 
        void RefreshDocumentFileL(const TUid& aUid, const TDesC& aFileName); 

    private:  // Data 
        CDocumentHandler* iDocHandler; 
    } 

源代码文件(独立版)
欲在独立的文件处理中打开文件,使用CDocumentHandler::OpenFileL()方法。另外,下面的代码演示若已经在处理器中打开则如何更新文件。 

#include <DocumentHandler.h> 
void CMyAppUi::ConstructL() 
    { 
    // Create the document handler 
    iDocHandler = CDocumentHandler::NewL(CEikonEnv::Static()->Process()); 

    // ... 
    } 
void CMyAppUi::LaunchFileL(const TDesC& aFilename) 
    { 
    TDataType emptyDataType = TDataType(); 
    // Open a file in a standalone handler application 
    iDocHandler->OpenFileL(aFilename, emptyDataType); 

    TUid handlerUid; 
    TInt err = KErrNone; 
    err = iDocHandler->HandlerAppUid(handlerUid); 
    if (!err) 
        { 
        RefreshDocumentFileL(handlerUid, aFilename); 
        } 
    } 

/** 
* 刷新独立处理器中的已打开文件。若文件尚未打开则什么也不做。 
*/ 
void CMyAppUi::RefreshDocumentFileL(const TUid& aUid, const TDesC& aFileName) 
    { 
    TApaTaskList taskList(iCoeEnv->WsSession()); 
    TApaTask task = taskList.FindApp(aUid); 

    // If the standalone handler is already running, then update the file 
    if (task.Exists()) 
        { 
        User::LeaveIfError(task.SwitchOpenFile(aFileName)); 
        } 
    } 
头文件(嵌入版) 
#include <aknserverapp.h>  // MAknServerAppExitObserver 
#include <DocumentHandler.h> 
class CMyAppUi : public CAknAppUi, public MAknServerAppExitObserver 
    { 
    // ... 

    private:  // Functions from base classes 
        /** 
         * From MAknServerAppExitObserver. 
         * Handles the exit of a connected server application. 
         */ 
        void HandleServerAppExit(TInt aReason); 

    private:  // Private functions 
        void LaunchFileEmbeddedL(const TDesC& aFilename); 

    private:  // Data 
        CDocumentHandler* iDocHandler; 
    }; 
源代码文件(嵌入版) 
以嵌入方式调出文件,使用CDocumentHandler::OpenFileEmbeddedL()方法: 

#include <aknserverapp.h>  // MAknServerAppExitObserver 
#include <DocumentHandler.h> 
void CMyAppUi::ConstructL() 
    { 
    // Create the document handler 
    iDocHandler = CDocumentHandler::NewL(CEikonEnv::Static()->Process()); 

    // ... 
    } 
void CMyAppUi::LaunchFileEmbeddedL(const TDesC& aFilename) 
    { 
    //Set the exit observer so HandleServerAppExit will be called 
    iDocHandler->SetExitObserver(this);   

    TDataType emptyDataType = TDataType(); 
    //Open a file embedded 
    iDocHandler->OpenFileEmbeddedL(aFilename, emptyDataType);             
    } 

void CMyAppUi::HandleServerAppExit(TInt aReason) 
    { 
    //Handle closing the handler application 
    MAknServerAppExitObserver::HandleServerAppExit(aReason); 
    } 
后置条件 
由aFilename所指的文件用CDocumentHandler打开。
 
http://wiki.forum.nokia.com/index.php/%E4%BD%BF%E7%94%A8CDocumentHandler%E6%89%93%E5%BC%80%E6%96%87%E4%BB%B6
目录
相关文章
|
2月前
|
安全 C# 开发者
C# 一分钟浅谈:文件操作与文件流详解
【9月更文挑战第4天】在日常开发中,文件的读写是基本而重要的任务。C# 通过 `System.IO` 命名空间提供了多种工具,如 `FileStream`、`StreamReader` 和 `StreamWriter` 等,用于处理文件和流。本文从基础概念入手,详细介绍了这些类的使用方法,并讨论了常见错误及其避免策略,包括文件不存在、权限问题和文件被占用等。通过示例代码,展示了如何创建、读取文件以及进行二进制数据操作,并强调了异常处理和性能优化的重要性。掌握这些技巧对于提升编程能力至关重要。
162 2
|
存储 iOS开发 C++
C++中文件操作与文件流
🐰文件操作与文件流 🏡文件流类和文件流对象 🏡文件的打开与关闭 🌸1.文件的打开 🌸2.文件的关闭 🏡对文本文件的操作 🏡对二进制文件的操作 🌸1.用成员函数write和read操作二进制文件 🌸2.随机访问二进制文件
|
网络协议 测试技术 Go
打开文件和关闭文件 | 学习笔记
快速学习打开文件和关闭文件
|
开发者 Python
文件的打开方式 | 学习笔记
快速学习 文件的打开方式
172 0
|
移动开发 Unix Linux
【C 语言】文件操作 ( fopen 文件打开方式详解 )(二)
【C 语言】文件操作 ( fopen 文件打开方式详解 )(二)
223 0
 【C 语言】文件操作 ( fopen 文件打开方式详解 )(二)
|
C语言
【C 语言】文件操作 ( fopen 文件打开方式详解 )(一)
【C 语言】文件操作 ( fopen 文件打开方式详解 )(一)
472 0
【C 语言】文件操作 ( fopen 文件打开方式详解 )(一)
|
C语言
【C 语言】文件操作 ( fopen 文件打开方式详解 )(三)
【C 语言】文件操作 ( fopen 文件打开方式详解 )(三)
338 0
【C 语言】文件操作 ( fopen 文件打开方式详解 )(三)
|
Windows
|
开发者 Python Windows
打开文件|学习笔记
快速学习 打开文件
109 0
|
Python
6.1 file 读文件
#!/usr/bin/env python # -*- coding:utf-8 -*- #@Time      :2017/10/27 21:54 #@Author    :zhouyuyao #@File      :file_demo1.
607 0