软件关联文件的打开

来源:互联网 发布:用友erpu8软件功能模块 编辑:程序博客网 时间:2024/05/16 17:05
我们经常需要在软键的外部打开一个我们自己程序的文件.
比如:
在PC上打开TXT的时候系统自动调用记事本.但如果我们设置了文件的属性让EditPlus打开TXT文件.那以后打开TXT默认就调用EditPlus打开文件了.
那文件名和路径是如何传给EditPlus的.

在 symbian 中如何打开文件的?


大家可用看一下 CAknDocument 这个类.
它有一个方法:

IMPORT_C CFileStore* CAknDocument::OpenFileL ( TBool aDoOpen,
const TDesC & aFilename,
RFs & bsp; aFs
)


有这样的方法.我们的Document 只要继承了 CAknDocument 就可用使用这个方法.

CFileStore* CDocument::OpenFileL(TBool /*aDoOpen*/, const TDesC& aFilename, RFs& /*aFs*/)
{
iAppUi->OpenFileL (aFilename );
return NULL;
}
可用看到 iAppUi ,我们可用看一下它是如何定义的.
它是eikdoc.h头文件中定义的.

CEikAppUi* iAppUi;

我们可用看一下 CEikAppUi 的定义,发现它有一个方法 :

virtual IMPORT_C void OpenFileL(const TDesC &aFileName);
Description
Opens the specified file.

The default implementation is empty.

Parameters
const TDesC &aFileName The name of the file to open.



Return value
void


这个方法同上面的OpenFileL 比较是没有返回值的.

我们可用在我们程序中的AppUi 类中实现

void CAppUi::OpenFileL(const TDesC &aFileName )
{
//做打开文件的操作.
}

这样在不启动软件的时候,点击关联的文件就会启动程序.
原创粉丝点击