Saturday, May 30, 2009

How To Draw(Image) on container

In container.cpp Mention the following

#inclide

_LIT(KNTECMbmFileNameOnEmulator, "z:\\Mylogo.mbm");
_LIT(KNTECMbmFileOnDeviceName, ":\\resource\\apps\\Mylogo.mbm");

void CCallRecorderMainContainer::ConstructL(const TRect& aRect)
{
CreateWindowL();

TFileName iIconFileName;
TBuf<20> colonBuf;
#ifdef __WINS__
{
iIconFileName.Append(KNTECMbmFileNameOnEmulator);
}
#else
{
iIconFileName.Zero();
CompleteWithAppPath(iIconFileName);

colonBuf.Append(iIconFileName.Left(1));

iIconFileName.Zero();
colonBuf.Trim();

iIconFileName.Append(colonBuf);
iIconFileName.Append(KNTECMbmFileOnDeviceName);
}
#endif


iBitmap = new (ELeave) CFbsBitmap();

User::LeaveIfError(iBitmap->Load(iIconFileName,0,ETrue));

SetRect(aRect);
ActivateL();
}


void CCallRecorderMainContainer::Draw(const TRect& aRect) const
{
CWindowGc& gc = SystemGc();
TRect drawRect( Rect());
gc.Clear( drawRect );
gc.DrawRect(aRect);

TSize bitmapSize = iBitmap->SizeInPixels();
TPoint topLeft((aRect.Width() - bitmapSize.iWidth)/2,(aRect.Height() - bitmapSize.iHeight)/2);

gc.DrawBitmap(aRect, iBitmap);


}
File.Pkg

“$(EPOCROOT)Epoc32\data\z\resource\apps\MyLogo.mbm” “1:\resource\apps\mylogo.mbm”


File.mmp

START BITMAP Mylogo.mbm
HEADER
TARGETPATH \resource\apps
SOURCEPATH ..\gfx
SOURCE c24 phone.bmp
END

gfx

Add gfx folder in workspace which contain two files…
1) Mylogo.mbm :-
c24|bitmap\phone.bmp

2) phone.bmp :-contain .bmp file (save as 24 bitmap)

Monday, May 25, 2009

Search phone number in phonebook

This Post will describe that, How to search the Phone no. in contact list, and retrieving the contact fields like contact name, company etc.

Header Files:

#include 
#include

Link against:

LIBRARY    cntmodel.lib

Capabilities Required:

CAPABILITY    ReadUserData

Function:
void SearchPhoneNumber()
{
// phone number to search
_LIT
(KToken,"+919908344484");
TBuf<
128> callNameBuf;

// Opens the default contact database
iContactsDb = CContactDatabase::
OpenL();

// Search for all phonebook items matching phone number
iMyIdArray= iContactsDb->MatchPhoneNumberL
(KToken,10);

// Count of matchings found
callNameBuf.
AppendNum(iMyIdArray->Count());
CEikonEnv::
InfoWinL(_L("Count of Matches"),callNameBuf);

// Reading matched contacts info
for(TInt i = 0;i <>Count();i++)
{
TContactItemId id =
(*iMyIdArray)[i];

// Read contact using id
CContactItem* contact = iContactsDb->ReadContactL
(id);
CleanupStack::
PushL(contact);

// Get a reference to the contact item's field set
CContactItemFieldSet& fieldSet = contact->CardFields
();

// Read and display all fields
for ( TInt j = 0 ; j < style="color: rgb(0, 238, 255);">Count() ; j++ )
{
const CContactItemField& field = fieldSet[j] ;
// phone numbers are stored in database using text fields
callNameBuf.
Copy(field.TextStorage()->Text());
CEikonEnv::
InfoWinL(callNameBuf,field.Label());
}

CleanupStack::
PopAndDestroy();
}
}

Regards
PRANAY

How to Autostart the Application

1) Create a .rss file.
Ex: ECA2548B.rss
------------
#include

RESOURCE STARTUP_ITEM_INFO mobilerfid
{
executable_name = "c:\\sys\\bin\\MobileRFID.exe"; //executable_name = "!:\\sys\\bin\\MobileRFID.exe"; to autorestart from

//Memory card.
recovery = EStartupItemExPolicyNone;
}



2) Copy ECA2548B.rss file in your project's DATA folder.


3) Open your .mmp file.

4) Then UPDATE symbian .mmp file.

5)Observe changes in mmp
Above lines will be automatically added by Compiler----

START RESOURCE ECA2548B.rss
HEADER
END

5) Rebuild your project.

6)Observe .PKG --

;Files to install
;You should change the source paths to match that of your environment
;

"$(EPOCROOT)Epoc32\data\z\resource\apps\MobileRFID.rsc" -"!:\resource\apps\MobileRFID.rsc"
"$(EPOCROOT)Epoc32\data\z\private\10003a3f\apps\MobileRFID_reg.rsc" -"!:\private\10003a3f\import\apps\MobileRFID_reg.rsc"
"$(EPOCROOT)Epoc32\data\z\resource\apps\MobileRFID.mif" -"!:\resource\apps\MobileRFID.mif"

AFTER THESE LINES

following lines should be there

; Add any installation notes if applicable
;"MobileRFID.txt" -"!:\private\ECA2548B\MobileRFID.txt"
"$(EPOCROOT)Epoc32\release\$(PLATFORM)\$(TARGET)\MobileRFID.exe" -"!:\sys\bin\MobileRFID.exe" ,FR,RI



6) Add following entry in your .pkg file at last line:
"C:\Symbian\9.1\S60_3rd\Epoc32\data\z\ECA2548B.rsc"-"c:\private\101f875a\import\[ECA2548B].rsc"

If Givs Error Try

"C:\Symbian\9.1\S60_3rd\Epoc32\data\ECA2548B.rsc"-"c:\private\101f875a\import\[ECA2548B].rsc"


For UI Designer

"C:\Symbian\9.1\S60_3rd\Epoc32\data\ECA2548B.r01"-"c:\private\101f875a\import\[ECA2548B].r01"

To Autorestart from Phone Memory UID.rsc Must on "c:\private\101f875a\import\[UID].rsc".


8) That's it. Now just reboot your phone. You would find your .exe at startup.


NOTE if sequence will not followed then .exe not autorestart after installation.

Tuesday, May 19, 2009

How to declare Array of User defined class in symbian c++

Hi,

you can make and use your array in symbian C++ like this :

CDesCArray* MyArray = new(ELeave) CDesCArrayFlat(5);
MyArray->AppendL(_L("Forum));
MyArray->AppendL(_L("Nokia"));
MyArray->AppendL(_L(".com"));
MyArray->AppendL(_L("Contributors"));
MyArray->AppendL(_L("Reply"));

//to access 3rd element

TBuf<20> tmp;
tmp = MyArray->MdcaPoint(2);

//to count how many elements this array has..

TInt cnt = MYArray->MdcaCount();

//to remove all elements from array

MyArray->Reset();

//to deallocate memory from array

MyArray->Delete(0);


Hope...it will help u ...

Furthur check this references
Dynamic Arrays
About Dynamic Arrays API
CArrayFixBase
CArrayFix
CArrayFixFlat
CArrayFixFlat
CArrayFixFlat
CArrayFixFlat
CArrayFixSeg
CArrayFixSeg
CArrayFix
CArrayPakBase
CArrayPak
CArrayPakFlat
CArrayPak
CArrayPtr
CArrayPtrFlat
CArrayPtrSeg
CArrayVarBase
CArrayVar
CArrayVarFlat
CArrayVarSeg
CArrayVar
RArrayBase
RArray
RPointerArrayBase
RArray
RArray
RPointerArray
TArray
TIdentityRelation
TLinearOrder
Using CArrayFixFlat
Using CArrayFixSeg
Using CArrayPak
Using CArrayVar
Using RArray
Using RPointerArray
Using TArray

Check these in ur sdk help