我们经常需要在软键的外部打开一个我们自己程序的文件.
比如:
在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 )
{
//做打开文件的操作.
}
这样在不启动软件的时候,点击关联的文件就会启动程序.
比如:
在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 )
{
//做打开文件的操作.
}
这样在不启动软件的时候,点击关联的文件就会启动程序.