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