Actually, I've spent few sleepless nights on this too, and found one solution that worked fine for me. Simply said, you have to override GetDefaultDocumentFileName() method inherited from CEikApplication. My code looks like this:
---- MyGameApp.h ------
Code:
class CMyGameApp : public CAknApplication
{
public:
virtual void GetDefaultDocumentFileName(TFileName& aFileName) const;
etc....
---- MyGameApp.cpp ------
Code:
void CMyGameApp::GetDefaultDocumentFileName(TFileName& aFileName) const
{
aFileName.Copy(iDatFileName);
}
etc...
Where iDatFileName was obtainer this way:
Code:
TParsePtr parse(AppFullName());
_LIT(KDat, ".dat");
iDatFileName.Copy(parse.DriveAndPath());
iDatFileName.Append(parse.Name());
iDatFileName.Append(KDat);
Process()->SetMainDocFileName(iDatFileName);