diff -r 4816d766a08a -r f345bda72bc4 Symbian3/PDK/Source/GUID-4F2F254A-1A81-507A-B364-BE4088D3B3AE.dita --- a/Symbian3/PDK/Source/GUID-4F2F254A-1A81-507A-B364-BE4088D3B3AE.dita Tue Mar 30 11:42:04 2010 +0100 +++ b/Symbian3/PDK/Source/GUID-4F2F254A-1A81-507A-B364-BE4088D3B3AE.dita Tue Mar 30 11:56:28 2010 +0100 @@ -1,57 +1,57 @@ - - - - - -How to -use literal descriptorsExplains how to generate constant literal descriptors. -

Generate a constant literal as follows:

-_LIT(name, string); -

where name is a C++ variable name and string is -the literal text enclosed in a pair of double quotes.

-

All the code fragments use the build independent form but they are equally -valid if replaced by the explicit 16 bit variant or the explicit 8 bit variant.

-

As name represents a constant variable, it is conventional -for the variable name to start with a capital K, for example:

-_LIT(KTxtMatchString,"Hello"); -

This generates the constant literal descriptor:

-const static TLitC<5> KTxtMatchString; -

and this is initialised to contain the string Hello. Developers -never need to code a TLitC class explicitly; it is always -be constructed through the macro.

-

This constant literal descriptor can be passed directly to functions which -are prototyped to take a const TDesC& type:

-TBufC<32> x; -... -x.Match(KTxtMatchString); -... -

The literal descriptor classes: TLitC16, TLitC8, TLitC16, -also provide a conversion operator so that they can be passed to functions -which take a const TRefByValue<const TDesC> type. -This means that they can be passed to functions such as TDes::Format():

-_LIT(KFormat1,"Length is %d"); -... -TBuf<256> x; -... -x.Format(KFormat1,8); -... -

The & and the () operators acting -on a constant literal return a const TDesC* and a const - TDesC& type respectively:

-... -_LIT(KTxtMatchString,"Hello"); -_LIT(KFormat2,"Text is %S"); -... -TInt length; -length = KTxtMatchString().Length(); -... -TBuf<256> x; -x.Format(KFormat2,&KTxtMatchString); -... + + + + + +How to +use literal descriptorsExplains how to generate constant literal descriptors. +

Generate a constant literal as follows:

+_LIT(name, string); +

where name is a C++ variable name and string is +the literal text enclosed in a pair of double quotes.

+

All the code fragments use the build independent form but they are equally +valid if replaced by the explicit 16 bit variant or the explicit 8 bit variant.

+

As name represents a constant variable, it is conventional +for the variable name to start with a capital K, for example:

+_LIT(KTxtMatchString,"Hello"); +

This generates the constant literal descriptor:

+const static TLitC<5> KTxtMatchString; +

and this is initialised to contain the string Hello. Developers +never need to code a TLitC class explicitly; it is always +be constructed through the macro.

+

This constant literal descriptor can be passed directly to functions which +are prototyped to take a const TDesC& type:

+TBufC<32> x; +... +x.Match(KTxtMatchString); +... +

The literal descriptor classes: TLitC16, TLitC8, TLitC16, +also provide a conversion operator so that they can be passed to functions +which take a const TRefByValue<const TDesC> type. +This means that they can be passed to functions such as TDes::Format():

+_LIT(KFormat1,"Length is %d"); +... +TBuf<256> x; +... +x.Format(KFormat1,8); +... +

The & and the () operators acting +on a constant literal return a const TDesC* and a const + TDesC& type respectively:

+... +_LIT(KTxtMatchString,"Hello"); +_LIT(KFormat2,"Text is %S"); +... +TInt length; +length = KTxtMatchString().Length(); +... +TBuf<256> x; +x.Format(KFormat2,&KTxtMatchString); +...
\ No newline at end of file