亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mmsexamplecontainer.cpp

?? This C++ example demonstrates how to create multimedia messages using the CMmsClientMtm API. Notic
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*
* ============================================================================
*  Name     : CMMSExampleContainer from MMSExampleContainer.h
*  Part of  : MMSExample
*  Created  : 04.11.2006 by Forum Nokia
*  Implementation notes:
*     Initial content was generated by Nokia Series 60 AppWizard.
*  Version  : 2.0
*  Copyright: Nokia Corporation
* ============================================================================
*/

// INCLUDE FILES
#include "MMSExampleContainer.h"
#include "MMSExample.hrh"
#include "MMSExamplePanics.pan"

#include <eikrted.h>  				//RichText Editor
#include <txtrich.h> 				// CRichText
#include <mtclreg.h>              	// for CClientMtmRegistry 
#include <msvids.h>               	// for Message type IDs
#include <mmsclient.h>            	// for CMmsClientMtm
#include <AknQueryDialog.h>       	// for CAknTextQueryDialog
#include <barsread.h>            	// for TResourceReader
#include <f32file.h>				
#include <coeutils.h>			  	// Check the file exist

#ifdef __SERIES60_3X__ //3rd edition onwards
#include <CMsvMimeHeaders.h>		//Attachemt mimeheader
#include <MMsvAttachmentManager.h>	//Attachment manager
#endif

#ifndef __HARDCODED_PATHS__//3rd and 2nd edition used
#include <PathInfo.h>
#define KDirPictures	PathInfo::ImagesPath()
#define KPhoneRootPath	PathInfo::PhoneMemoryRootPath()
#else//S60 1st edition used
_LIT(KDirPictures,"c:\\Nokia\\Images\\");
#endif

//Constants
const TInt KMaxAddressLength = 20;  // maximum length for a recipient address
_LIT(KFileName, "mmsexample.jpg"); 	//Attachment file name

//
// CMMSExampleContainer
//
/*
-------------------------------------------------------------------------------
    CMMSExampleContainer::ConstructL()
    Description: 2nd phase Constructor.
-------------------------------------------------------------------------------
*/
void CMMSExampleContainer::ConstructL(const TRect& aRect)
    {
    CreateWindowL();
    
    iRecipient = HBufC::NewL(KMaxAddressLength);// for recipient address (gsm number)
    // Create CMsvSession
    iSession = CMsvSession::OpenAsyncL(*this);// new session is opened asynchronously
	
	// Create RichTextEditor
	iRtEd = new (ELeave) CEikRichTextEditor;
	// Setting RichTextEditor flags
	iRtEd->SetAknEditorCase(EAknEditorLowerCase);
	// Fixed case
	iRtEd->SetAknEditorFlags
		(
		EAknEditorFlagFixedCase| //Set up the Allowed Cases
		EAknEditorFlagEnableScrollBars // Set up the scroller
		);
	iRtEd->ConstructL(this,0,0,CEikEdwin::ENoAutoSelection|CEikEdwin::EReadOnly);
	iRtEd->SetFocus(ETrue);
	iRtEd->UpdateScrollBarsL();
	
	SetRect(aRect);
    ActivateL();
    
    SizeChanged();
    }

/*
-----------------------------------------------------------------------------
    CMMSExampleContainer::CompleteConstructL()
    Creates client MTM registry when session is ready for use. 
    This completes model construction and is called after 'server
    ready' event is received after async opening of CMsvSession.
-----------------------------------------------------------------------------
*/
void CMMSExampleContainer::CompleteConstructL()
    {
    // We get a MtmClientRegistry from our session
    // this registry is used to instantiate new mtms.
    iMtmReg = CClientMtmRegistry::NewL(*iSession);
    iMmsMtm = (CMmsClientMtm*) iMtmReg->NewMtmL( KUidMsgTypeMultimedia );

	_LIT(KSessionOpen, "Server session opened.");
	EchoL(KSessionOpen);
    }

// ---------------------------------------------------------
// CRTEContainer::SizeChanged()
// Called by framework when the view size is changed
// ---------------------------------------------------------
//
void CMMSExampleContainer::SizeChanged()
    {
    TRect rect = Rect();
    		
	#ifdef __SERIES60_3X__//3rd edition
	TRect ScrollBarRect = iRtEd->ScrollBarFrame()->VerticalScrollBar()->Rect();
	//In 3rd edition CEikRichTextEditor draw the view for the whole rect and
	//the scrollbar doesn't show. That is a reason why CEikRichTextEditor Width() is
	//rect.Width()-ScrollBarRect.Width()
	iRtEd->SetExtent(TPoint(0,0), 
		TSize(rect.Width()-ScrollBarRect.Width(), rect.Height()));
	#else//2nd edition
    iRtEd->SetExtent(TPoint(0,0), 
    TSize(rect.Width(), rect.Height()));
    #endif
    }
    
/*
-----------------------------------------------------------------------------
    CMMSExampleContainer::~CMMSExampleAppUi()
    Destructor.
-----------------------------------------------------------------------------
*/
CMMSExampleContainer::~CMMSExampleContainer()
    {    
	delete iRtEd;
    delete iRecipient;
    delete iMmsMtm;
    delete iMtmReg;
    delete iMsvEntry;
    delete iSession;    // session must be deleted last (and constructed first)
    }
    
/*
-----------------------------------------------------------------------------
    CMMSExampleContainer::HandleSessionEventL()

    Receives session events from observer and calls event handling functions. 
    Note that if additional session event handlers are defined 
    in the session, they are called before this function (as this is the
    main session observer).
    The type of event is indicated by the value of aEvent. The 
    interpretation of the TAny arguments depends on this type. 
-----------------------------------------------------------------------------
*/
void CMMSExampleContainer::HandleSessionEventL(TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* /*aArg3*/)
    {

    switch (aEvent)
        {
            // This event tells us that the session has been opened
        case EMsvServerReady:
            CompleteConstructL();       // Construct the mtm registry & MMS mtm
            break;
			
		case EMsvEntriesCreated:
			//Listening when new message is arrived in inbox
            if (aArg2 &&  *(static_cast<TMsvId*>(aArg2)) == KMsvGlobalInBoxIndexEntryId)
                {
                CMsvEntrySelection* entries = static_cast<CMsvEntrySelection*>(aArg1);
                if( entries->Count() >= 1 )
                    {
                    _LIT(KMessageReceived, "Message received.");
					EchoL(KMessageReceived);
					_LIT(KSOpenInbox, "Open inbox.");
					EchoL(KSOpenInbox);
                    }
                else
                    {
                    Panic(EMmsEngineInternal);
                    }
                }
        default:
            break;
        }
    }
    
/*
-----------------------------------------------------------------------------
    CMMSExampleContainer::Draw()
    Simple Draw method.
-----------------------------------------------------------------------------
*/
void CMMSExampleContainer::Draw(const TRect& aRect) const
    {
    CWindowGc& gc = SystemGc();
    gc.SetPenStyle(CGraphicsContext::ENullPen);
    gc.SetBrushColor(KRgbWhite);
    gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
    gc.DrawRect(aRect);
    }

/*
-----------------------------------------------------------------------------
    CMMSExampleContainer::InitializeCommunicationsL()
    Initialize a new message and ask the user for a recipient address.
    Return values:      ETrue or EFalse
-----------------------------------------------------------------------------
*/
TBool CMMSExampleContainer::InitializeCommunicationsL()
    { 
    // First the recipients address
    // we get it from a data query dialog.
    TBuf<20> addr = iRecipient->Des();

    CAknTextQueryDialog* telNumDialog = CAknTextQueryDialog::NewL(addr, CAknQueryDialog::ENoTone);

    if (!telNumDialog->ExecuteLD(R_MMSEXAMPLE_TEL_NUMBER_DIALOG))
        return EFalse;

    iRecipient->Des() = addr; // Note that the user can give both numeric and textual data in the query dialog,
                              // so the address can be a GSM number or an e-mail address.

    // set up a new message 
    return CreateNewMessageL();
    }

/*
-----------------------------------------------------------------------------
    CMMSExampleContainer::CreateNewMessageL()
    Creates a new message server entry and set up default values.
    In case the attachment file does not found method return EFalse
    otherwise ETrue.
    There are differenses how to add attachment file between 2nd and 3rd edition. 
-----------------------------------------------------------------------------
*/
TBool CMMSExampleContainer::CreateNewMessageL()
	{
	_LIT(KCreatingMessage, "Creating message.");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91视频.com| 国产欧美日韩三区| 久久精品人人爽人人爽| 国产精品久久久久久久久免费樱桃 | 欧洲生活片亚洲生活在线观看| 欧美精品在线观看播放| 欧美韩国一区二区| 奇米888四色在线精品| 99久久婷婷国产精品综合| 欧美精品高清视频| 最近中文字幕一区二区三区| 日韩国产在线观看一区| 99久久久国产精品免费蜜臀| 久久影院午夜论| 丝袜美腿亚洲一区二区图片| 91网址在线看| 亚洲国产精品高清| 国产综合一区二区| 欧美一区二区日韩一区二区| 亚洲三级在线免费| 国产成人鲁色资源国产91色综| 91麻豆精品国产自产在线 | 色成年激情久久综合| www国产成人免费观看视频 深夜成人网| 一区二区三区欧美日| 岛国精品一区二区| 久久久久久久久蜜桃| 免费美女久久99| 9191成人精品久久| 香蕉加勒比综合久久| 欧美性色黄大片手机版| 亚洲三级在线观看| 99re热这里只有精品视频| 国产蜜臀97一区二区三区| 精品写真视频在线观看| 欧美一区二区人人喊爽| 亚洲成va人在线观看| 欧美日韩情趣电影| 亚洲亚洲人成综合网络| 欧美性猛交xxxxxx富婆| 樱花草国产18久久久久| 色88888久久久久久影院按摩 | 视频在线在亚洲| 欧美另类高清zo欧美| 午夜免费久久看| 欧美日本一区二区| 日日夜夜免费精品| 欧美一级片在线看| 奇米精品一区二区三区在线观看一| 91精品福利在线一区二区三区| 日本欧美一区二区三区乱码| 日韩欧美亚洲国产另类| 国产永久精品大片wwwapp| 久久久国产午夜精品| 国产91丝袜在线18| 亚洲视频免费在线观看| 欧美日韩国产色站一区二区三区| 五月激情综合色| 精品国产成人在线影院 | 欧美日韩午夜在线| 蜜桃av一区二区在线观看| 亚洲卡通欧美制服中文| 在线观看国产日韩| 免费观看成人av| 欧美激情一区二区三区四区| 91网站黄www| 日韩电影免费一区| 国产欧美日韩精品在线| 在线免费精品视频| 久久精品国产999大香线蕉| 国产日韩欧美制服另类| 99re6这里只有精品视频在线观看| 亚洲乱码国产乱码精品精的特点| 欧美久久久久久久久| 国产精品一区二区不卡| 亚洲日本va午夜在线影院| 欧美日韩aaa| 福利视频网站一区二区三区| 一区二区三区精品视频| 精品久久久久久无| 91婷婷韩国欧美一区二区| 奇米一区二区三区av| 1024成人网| 日韩精品一区二区三区四区 | 国产欧美一区二区精品忘忧草| 91美女视频网站| 韩国成人福利片在线播放| 亚洲女人的天堂| 精品国产一区二区精华| 欧美综合一区二区| 成人影视亚洲图片在线| 免费看欧美美女黄的网站| 亚洲同性同志一二三专区| 午夜伦理一区二区| 国产精品午夜久久| 日韩欧美国产小视频| 色婷婷一区二区| 成人午夜视频福利| 麻豆久久久久久久| 亚洲va国产va欧美va观看| 国产精品午夜在线观看| 久久奇米777| 911精品国产一区二区在线| 色综合久久综合网欧美综合网| 国产激情视频一区二区在线观看| 青青青爽久久午夜综合久久午夜 | 亚洲美女免费在线| 国产日韩三级在线| ww亚洲ww在线观看国产| 91麻豆精品久久久久蜜臀| 欧美综合亚洲图片综合区| 丁香婷婷综合五月| 国产成都精品91一区二区三| 久久爱另类一区二区小说| 婷婷开心久久网| 午夜精品久久久久久久久久| 亚洲人妖av一区二区| 中文字幕在线不卡一区| 国产精品午夜在线| 国产精品久久久久桃色tv| 日本一区二区三区在线观看| 久久精品一级爱片| 国产亚洲午夜高清国产拍精品| 精品久久久久久久一区二区蜜臀| 日韩精品在线网站| 欧美精品一区二区在线播放| 欧美videos大乳护士334| 日韩午夜电影av| 欧美成人bangbros| 国产亚洲女人久久久久毛片| 久久久噜噜噜久噜久久综合| 久久久综合视频| 亚洲国产精品成人综合| 国产精品污污网站在线观看| 国产精品高清亚洲| 亚洲精品国产精华液| 激情文学综合丁香| 国产69精品一区二区亚洲孕妇 | 日韩三级.com| 欧美精品一区二区三区蜜臀| 久久精品欧美一区二区三区不卡 | 精品精品欲导航| 国产校园另类小说区| 亚洲欧洲韩国日本视频| 亚洲一区日韩精品中文字幕| 午夜精彩视频在线观看不卡| 奇米精品一区二区三区在线观看 | 一本到不卡精品视频在线观看| 色拍拍在线精品视频8848| 欧美视频在线观看一区二区| 欧美一区二区三区不卡| 久久精品人人做人人爽人人| 亚洲免费观看高清完整| 首页国产欧美日韩丝袜| 国产一区999| 色欧美88888久久久久久影院| 欧美精品自拍偷拍| 久久婷婷成人综合色| 日韩美女视频一区| 日本vs亚洲vs韩国一区三区二区 | 日本乱人伦aⅴ精品| 欧美一卡二卡在线观看| 国产欧美一区二区精品婷婷| 亚洲精品视频在线观看免费| 日本在线不卡视频一二三区| 国产麻豆精品在线| 91九色最新地址| 精品国产成人系列| 亚洲精品成a人| 国产一区在线看| 欧洲另类一二三四区| 久久影音资源网| 午夜久久久影院| 99视频超级精品| 精品国产凹凸成av人导航| 亚洲电影视频在线| 成人91在线观看| 精品国产91洋老外米糕| 午夜电影网亚洲视频| 波多野结衣中文字幕一区 | 不卡的看片网站| 日韩美一区二区三区| 亚洲一区二区黄色| 成人av在线影院| 精品成人私密视频| 亚洲成av人综合在线观看| 91尤物视频在线观看| 久久久久久夜精品精品免费| 视频一区二区三区中文字幕| 91丨九色porny丨蝌蚪| 久久久久久久久久久久久久久99 | 国产精品成人网| 国产在线精品一区二区| 91精品在线观看入口| 一区二区三区四区不卡在线| 成人免费毛片a| 国产清纯美女被跳蛋高潮一区二区久久w | 国产精品久久久久桃色tv| 国产精品99久久久| 欧美mv和日韩mv国产网站|