00001 // txin.cpp 00002 // 00003 // © 2006 Nokia Corporation. All rights reserved. 00004 // 00005 00006 // includes 00007 #include <e32base.h> 00008 #include <e32cons.h> 00009 #include <msvapi.h> 00010 #include <mtclreg.h> 00011 #include <MTUDREG.H> 00012 00013 #include "txclient.h" 00014 #include "txti.h" 00015 00016 LOCAL_D CConsoleBase* console; 00017 LOCAL_C void consoleUIInstallL(); 00018 LOCAL_C void DoInstallL(); 00019 _LIT(KMTMDataLocation,"C:\\RESOURCE\\MESSAGING\\MTM\\txtmtm.rsc"); 00020 00021 _LIT(KTxtTitle,"TextMTM install"); 00022 _LIT(KFormatFailed,"failed: leave code=%d"); 00023 _LIT(KFormatSuccess,"MTM install succeeded"); 00024 00025 // Dummy observer class to absorb Message Server session events 00026 class TDummyObserver : public MMsvSessionObserver 00027 { 00028 public: 00029 void HandleSessionEventL(TMsvSessionEvent /*aEvent*/, TAny* /*aArg1*/, TAny* /*aArg2*/, TAny* /*aArg3*/) {}; 00030 }; 00031 00032 00033 00034 LOCAL_C void DoInstallL() 00035 // Set up Message Server session and install Text MTM group 00036 { 00037 00038 00039 _LIT(K1, "phase 1 ok \n"); 00040 _LIT(K2, "phase 2 ok \n"); 00041 _LIT(KServiceDirectoryAlreadyCreated, "directory TextMTMService already created on c drive \n"); 00042 _LIT(KServiceDirectoryCreated, "directory TextMTMService service created on c drive \n"); 00043 00044 00045 TDummyObserver ob; 00046 CMsvSession* session = CMsvSession::OpenSyncL(ob); 00047 CleanupStack::PushL(session); 00048 TInt err=session->DeInstallMtmGroup(KMTMDataLocation); 00049 if (err!=KErrNone && err!=KErrNotFound) 00050 User::Leave(err); 00051 User::LeaveIfError(session->InstallMtmGroup(KMTMDataLocation)); 00052 00053 // Installing is ok 00054 console->Printf(K1); 00055 00056 00057 CClientMtmRegistry* cl = CClientMtmRegistry::NewL(*session); 00058 if(!cl->IsPresent(KUidMsgTypeText)) User::Leave(KErrNotFound); 00059 00060 // Resource file was found 00061 console->Printf(K2); 00062 00063 CTextMtmClient* climpl=NULL; 00064 climpl = (CTextMtmClient*)cl->NewMtmL(KUidMsgTypeText); 00065 00066 00067 delete climpl; 00068 delete cl; 00069 00070 CleanupStack::PopAndDestroy(session); // session 00071 00072 RFs fs; 00073 fs.Connect(); 00074 00075 _LIT(KNewDir,"\\data\\TextMTMService\\"); 00076 00077 // Try to create the directory 00078 TInt err4 = fs.MkDir(KNewDir); 00079 00080 // In case the directory is already there... 00081 if (err4==KErrAlreadyExists) 00082 { 00083 console->Printf(KServiceDirectoryAlreadyCreated); 00084 } 00085 00086 // Directory not yet created... 00087 else if (err4==KErrNone) 00088 { 00089 console->Printf(KServiceDirectoryCreated); 00090 00091 } 00092 00093 00094 fs.Close(); 00095 00096 00097 } 00098 00099 LOCAL_C void consoleUIInstallL() 00100 // Set up simple console UI 00101 { 00102 // Construct and install the active scheduler 00103 CActiveScheduler* scheduler = new (ELeave) CActiveScheduler; 00104 CleanupStack::PushL(scheduler); 00105 CActiveScheduler::Install(scheduler); 00106 00107 console=Console::NewL(KTxtTitle,TSize(KConsFullScreen,KConsFullScreen)); 00108 CleanupStack::PushL(console); 00109 00110 00111 TRAPD(error,DoInstallL()); // call install function 00112 if (error != KErrNone) 00113 console->Printf(KFormatFailed, error); 00114 else 00115 console->Printf(KFormatSuccess); 00116 console->Getch(); 00117 CleanupStack::PopAndDestroy(2, scheduler); // console, scheduler 00118 } 00119 00120 GLDEF_C TInt E32Main() 00121 { 00122 __UHEAP_MARK; 00123 CTrapCleanup* cleanup=CTrapCleanup::New(); // get clean-up stack 00124 TRAPD(error,consoleUIInstallL()); 00125 delete cleanup; // destroy clean-up stack 00126 __UHEAP_MARKEND; 00127 return error; 00128 } 00129
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.