epoc32/include/msvstd.h
branchSymbian2
changeset 3 e1b950c65cb4
parent 2 2fe1408b6811
child 4 837f303aceeb
     1.1 --- a/epoc32/include/msvstd.h	Tue Mar 16 16:12:26 2010 +0000
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,616 +0,0 @@
     1.4 -// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
     1.5 -// All rights reserved.
     1.6 -// This component and the accompanying materials are made available
     1.7 -// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
     1.8 -// which accompanies this distribution, and is available
     1.9 -// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
    1.10 -//
    1.11 -// Initial Contributors:
    1.12 -// Nokia Corporation - initial contribution.
    1.13 -//
    1.14 -// Contributors:
    1.15 -//
    1.16 -// Description:
    1.17 -//
    1.18 -
    1.19 -#ifndef __MSVSTD_H__
    1.20 -#define __MSVSTD_H__
    1.21 -
    1.22 - 
    1.23 -
    1.24 -
    1.25 -#include <e32base.h>
    1.26 -#include <s32file.h>
    1.27 -
    1.28 -/**
    1.29 -Specifies an entry in the Message Server index.
    1.30 -@publishedAll
    1.31 -@released
    1.32 -@see #KMsvNullIndexEntryId
    1.33 -@see #KMsvTempIndexEntryId
    1.34 -@see #KMsvRootIndexEntryId
    1.35 -@see #KMsvLocalServiceIndexEntryId
    1.36 -@see #KMsvGlobalInBoxIndexEntryId
    1.37 -@see #KMsvGlobalOutBoxIndexEntryId
    1.38 -@see #KMsvDraftEntryId
    1.39 -@see #KMsvSentEntryId
    1.40 -@see #KMsvDeletedEntryFolderEntryId
    1.41 -@see #KMsvUnknownServiceIndexEntryId
    1.42 -*/
    1.43 -typedef TInt32 TMsvId;
    1.44 -
    1.45 -/** Identifies an asynchronous messaging operation. 
    1.46 -
    1.47 -This ID is unique within a 
    1.48 -Message Server session. The ID of an operation can be obtained from CMsvOperation::Id(). */
    1.49 -typedef TInt32 TMsvOp;
    1.50 -
    1.51 -/** Supplies the standard values for the message priority index entry field. 
    1.52 -@publishedAll
    1.53 -@released
    1.54 -*/
    1.55 -enum TMsvPriority {	
    1.56 -	/** High message priority */
    1.57 -					EMsvHighPriority,
    1.58 -	/** Medium message priority */
    1.59 -					EMsvMediumPriority,
    1.60 -	/** Low message priority */
    1.61 -					EMsvLowPriority};	
    1.62 -
    1.63 -class CRichText;
    1.64 -class CMsvStore;
    1.65 -class CMsvEntry;
    1.66 -class CMsvMove;
    1.67 -class CMsvServer;
    1.68 -class CMsvServerEntry;
    1.69 -
    1.70 -_LIT(KMsvDefaultFolder, "\\Private\\1000484b\\Mail\\");
    1.71 -_LIT(KMsvDefaultIndexFile, "\\Private\\1000484b\\Mail\\Index");
    1.72 -_LIT(KMsvDefaultFolder2, "\\Private\\1000484b\\Mail2\\");
    1.73 -_LIT(KMsvDefaultIndexFile2, "\\Private\\1000484b\\Mail2\\Index");
    1.74 -_LIT(KMsvDirectoryExt, "_S\\");
    1.75 -_LIT(KMsvBinaryFolderExt, "_F\\");
    1.76 -
    1.77 -const TInt KFileNameFixedWidth=8;
    1.78 -const TInt KMaxSubjectSkipStringLength=8; // For subject based email thread sorting
    1.79 -_LIT(KSendAsRenderedImage, "Image");
    1.80 -
    1.81 -// Server name and moving semaphore
    1.82 -_LIT(KMsvServerName, "!MsvServer");
    1.83 -_LIT(KMsvMovingSemaphore, "MsvMovingSemaphore");
    1.84 -
    1.85 -_LIT_SECURE_ID(KMsvServerId, 0x1000484B);
    1.86 -
    1.87 -
    1.88 -/** Represents an entry in the Message Server index.
    1.89 -
    1.90 -MTM implementations and message client applications use it to access and manipulate 
    1.91 -index entry values. Note that a TMsvEntry is effectively a local cache of 
    1.92 -the index entry, and changes to it are not automatically written into the 
    1.93 -index. To commit changes to the Message Server, you need to call CMsvEntry::ChangeL() 
    1.94 -(or CMsvServerEntry::ChangeEntry()).
    1.95 -
    1.96 -To avoid repetition, the functions and data members are simply listed here, 
    1.97 -without detailed explanation of the fields. The public data members can be 
    1.98 -used to get and set the values of some index entry fields. 
    1.99 -@publishedAll
   1.100 -@released
   1.101 -*/
   1.102 -class TMsvEntry
   1.103 -	{
   1.104 -public: 
   1.105 -	IMPORT_C TMsvEntry(); 
   1.106 -	IMPORT_C TMsvEntry(const TMsvEntry& aEntry);
   1.107 -	IMPORT_C TMsvEntry& operator=(const TMsvEntry& aEntry);
   1.108 -	IMPORT_C TBool operator==(const TMsvEntry& aEntry) const;
   1.109 -	IMPORT_C TBool PermanentDataUnchanged(const TMsvEntry& aEntry) const;
   1.110 -	//
   1.111 -	IMPORT_C TMsvPriority Priority() const;
   1.112 -	IMPORT_C void SetPriority(TMsvPriority aPriority);
   1.113 -	// 
   1.114 -	IMPORT_C void InternalizeL(RReadStream& aStream);
   1.115 -	IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
   1.116 -	// Read only for clients
   1.117 -	inline TMsvId Id() const;
   1.118 -	inline TMsvId Parent() const;
   1.119 -	inline TBool Owner() const;
   1.120 -	inline TBool Deleted() const;
   1.121 -	// Read & write for clients
   1.122 -	inline TBool Complete() const;
   1.123 -	inline void SetComplete(TBool aComplete);
   1.124 -	inline TBool New() const;
   1.125 -	inline void SetNew(TBool aNew);
   1.126 -	inline TBool Unread() const;
   1.127 -	inline void SetUnread(TBool aUnread);
   1.128 -	inline TBool Failed() const;
   1.129 -	inline void SetFailed(TBool aFailed);
   1.130 -	inline TBool Operation() const;
   1.131 -	inline void SetOperation(TBool aOperation);
   1.132 -	inline TBool Visible() const;
   1.133 -	inline void SetVisible(TBool aVisble);
   1.134 -	inline TBool MultipleRecipients() const;
   1.135 -	inline void SetMultipleRecipients(TBool aMultipleRecipient);
   1.136 -	inline TBool ReadOnly() const;
   1.137 -	inline void SetReadOnly(TBool aReadOnly);
   1.138 -	inline TBool StandardFolder() const;
   1.139 -	inline void SetStandardFolder(TBool aStanardFolder);
   1.140 -	inline TBool Attachment() const;
   1.141 -	inline void SetAttachment(TBool aAttachmentFlag);
   1.142 -	inline TBool Connected() const;
   1.143 -	inline void SetConnected(TBool aConnected);
   1.144 -	inline TBool InPreparation() const;
   1.145 -	inline void SetInPreparation(TBool aInPreparation);
   1.146 -	//
   1.147 -	inline TInt PcSyncCount() const;
   1.148 -	inline void DecPcSyncCount();
   1.149 -	inline void IncPcSyncCount();
   1.150 -	//
   1.151 -	inline TBool OffPeak() const;
   1.152 -	inline void SetOffPeak(TBool aOffPeak);
   1.153 -	inline TBool Scheduled() const;
   1.154 -	inline void SetScheduled(TBool aScheduled);
   1.155 -	inline TUint SendingState() const;
   1.156 -	inline void SetSendingState(TUint aSendingState);
   1.157 -	inline TBool PendingDelete() const;
   1.158 -	inline void SetPendingDelete(TBool aPendingDelete);
   1.159 -	
   1.160 -	/** This method sets bit 24 of iMtmData1, if you are using this bit elsewhere don't call this method.*/
   1.161 -	inline void SetDeleteProtected(TBool aDeleteProtected);
   1.162 -	inline TBool DeleteProtected() const;
   1.163 -	/** This method sets bit 31 of iMtmData1, if you are using this bit elsewhere don't call this method.*/
   1.164 -	inline void SetForwarded(TBool aForwarded);
   1.165 -	inline TBool Forwarded() const;
   1.166 -	/** This method sets bit 32 of iMtmData1, if you are using this bit elsewhere don't call this method.*/
   1.167 -	inline void SetLocallyDeleted(TBool aLocallyDeleted);
   1.168 -	inline TBool LocallyDeleted() const;
   1.169 -	
   1.170 -	IMPORT_C TBool PendingConditions() const;
   1.171 -	IMPORT_C void SetPendingConditions(TBool aPendingConditions);
   1.172 -	//
   1.173 -	IMPORT_C TInt32 MtmData1() const;
   1.174 -	IMPORT_C TInt32 MtmData2() const;
   1.175 -	IMPORT_C TInt32 MtmData3() const;
   1.176 -	
   1.177 -	/** 
   1.178 -	@internalTechnology
   1.179 -	*/
   1.180 -	IMPORT_C void SetMtmData1(TInt32 aMtmData);
   1.181 -	/** 
   1.182 -	@internalTechnology
   1.183 -	*/
   1.184 -	IMPORT_C void SetMtmData2(TInt32 aMtmData);
   1.185 -	/** 
   1.186 -	@internalTechnology
   1.187 -	*/
   1.188 -	IMPORT_C void SetMtmData3(TInt32 aMtmData);
   1.189 -	//
   1.190 -protected:
   1.191 -	// only the server will be able to set the following
   1.192 -	inline void SetId(TMsvId aId);
   1.193 -	inline void SetParent(TMsvId aId);
   1.194 -	inline void SetOwner(TBool aAttachment);
   1.195 -	inline void SetDeleted(TBool aDeletedFlag);
   1.196 -	//
   1.197 -	inline TUint PersistedFlags() const;
   1.198 -	inline TUint TemporaryFlags() const;
   1.199 -	//
   1.200 -private:
   1.201 -	void Copy(const TMsvEntry& aEntry);
   1.202 -	//
   1.203 -private:
   1.204 -	TMsvId iId;
   1.205 -	TMsvId iParentId;  
   1.206 -	TInt32 iData;         
   1.207 -	TInt32 iPcSyncCount;
   1.208 -	TInt32 iReserved; // reserved for future proofing
   1.209 -public: 
   1.210 -	/** Service ID. */
   1.211 -	TMsvId iServiceId; 
   1.212 -	/** Related folder ID. */
   1.213 -	TMsvId iRelatedId; 
   1.214 -	/** Entry type */
   1.215 -	TUid   iType;        
   1.216 -	/** MTM */
   1.217 -	TUid   iMtm;     
   1.218 -	/** Time */
   1.219 -	TTime  iDate;       
   1.220 -	/** Size */
   1.221 -	TInt32 iSize;      
   1.222 -	/** Error */
   1.223 -	TInt32 iError;
   1.224 -	/** BIO message type */
   1.225 -	TInt32 iBioType;
   1.226 -	// following three can be used by MTM
   1.227 -	/** MTM data 1: this can be used for any purpose by an MTM. This member must 
   1.228 -	only be accessed through the predefined set and get functions. If you must 
   1.229 -	write data to a bit that has no meaning in the predefined derived classes 
   1.230 -	then you must derive your own class from TMsvEntry.
   1.231 -	*/
   1.232 -	TInt32 iMtmData1; 
   1.233 -	/** MTM data 2: this can be used for any purpose by an MTM. This member must 
   1.234 -	only be accessed through the predefined set and get functions. If you must 
   1.235 -	write data to a bit that has no meaning in the predefined derived classes 
   1.236 -	then you must derive your own class from TMsvEntry.
   1.237 -	*/
   1.238 -	TInt32 iMtmData2; 
   1.239 -	/** MTM data 3: this can be used for any purpose by an MTM. This member must 
   1.240 -	only be accessed through the predefined set and get functions. If you must 
   1.241 -	write data to a bit that has no meaning in the predefined derived classes 
   1.242 -	then you must derive your own class from TMsvEntry.
   1.243 -	*/
   1.244 -	TInt32 iMtmData3; 
   1.245 -public:
   1.246 -	// The TPtrC must be kept at end of class to simplify comparisons and initialisation
   1.247 -	/** Description */
   1.248 -	TPtrC iDescription;
   1.249 -	/** Details */
   1.250 -	TPtrC iDetails;    
   1.251 -	//
   1.252 -	//
   1.253 -private:
   1.254 -	//
   1.255 -friend class CMsvEntry;
   1.256 -friend class CMsvServer;
   1.257 -friend class CMsvServerEntry;
   1.258 -friend class CMsvClientEntry;
   1.259 -friend class CMsvServerSession;
   1.260 -friend class TMsvServerEntry; 
   1.261 -friend class CMsvServerIndex;
   1.262 -friend class RMsvServerSession;
   1.263 -friend class CMsvLocalCopyOperation;
   1.264 -friend class CMsvMove;
   1.265 -friend class CMsvIndexRebuild;
   1.266 -friend class CMsvCopyEntry;
   1.267 -friend class CMsvDelete;
   1.268 -friend class CMsvIndexContext;
   1.269 -friend class CMsvEntryArray;
   1.270 -	//
   1.271 -private:
   1.272 -	//
   1.273 -enum {	KMsvEntryPriorityMask=			0x00000003,
   1.274 -		KMsvEntryHighPriority=			0x00000002,
   1.275 -		KMsvEntryMediumPriority=		0x00000001,
   1.276 -		KMsvEntryLowPriority=			0x00000000,
   1.277 -		KMsvEntryClearFlag=				0x00000000,
   1.278 -		KMsvOffPeakFlag=				0x00000004,
   1.279 -		KMsvEntryNotCompleteFlag=		0x00000008,
   1.280 -		KMsvEntryNewFlag=				0x00000010,
   1.281 -		KMsvEntryUnreadFlag=			0x00000020,
   1.282 -		KMsvEntryFailedFlag=			0x00000040,
   1.283 -		KMsvEntryOperationFlag=			0x00000080,
   1.284 -		KMsvEntryOwnerFlag=				0x00000100,
   1.285 -		KMsvEntryInvisibleFlag=			0x00000200,
   1.286 -		KMsvEntryMultipleRecipientFlag=	0x00000400,
   1.287 -		KMsvScheduledFlag=				0x00000800,
   1.288 -		KMsvEntryReadOnlyFlag=			0x00001000,
   1.289 -		KMsvEntryDeletedFlag=			0x00002000,
   1.290 -		KMsvEntryStandardFolderFlag=	0x00004000,
   1.291 -		KMsvEntryAttachmentFlag=		0x00008000,
   1.292 -		KMsvEntryInPreparationFlag=		0x00010000,
   1.293 -		KMsvSendingStateFlags=			0x001E0000, // Note: Sending state is shifted KMsvSendingStateShift places left
   1.294 -		KMsvEntryPersistedFlags=		0x00FFFFFF,
   1.295 -		KMsvEntryPendingConditionsFlag=	0x00800000,		
   1.296 -		KMsvEntryTemporaryFlags=		0xFF000000,
   1.297 -		KMsvEntryConnectedFlag=			0x01000000,
   1.298 -		KMsvEntryPendingDeleteFlag=		0x02000000};
   1.299 -	};
   1.300 -enum 
   1.301 -	{
   1.302 -		KMsvEntryDeleteProtected=		0x800000,
   1.303 -		KMsvEntryForwarded=				0x40000000,
   1.304 -		KMsvEntryLocallyDeleted=		0x80000000
   1.305 -	};
   1.306 -
   1.307 -const TUint KMsvSendingStateShift=0x11; // Places to shift sending state
   1.308 -
   1.309 -/** Defines sending state flags. 
   1.310 -@publishedAll
   1.311 -@released
   1.312 -*/
   1.313 -enum TMsvSendState
   1.314 -	{
   1.315 -	/** State unknown. */
   1.316 -	KMsvSendStateUnknown		= 0x0,
   1.317 -	/** Message will be sent on request. */
   1.318 -	KMsvSendStateUponRequest	= 0x1,
   1.319 -	/** Waiting to be sent.
   1.320 -	
   1.321 -	Messages in the outbox with this state can be sent automatically by the relevant 
   1.322 -	MTM once an appropriate connection is established. */
   1.323 -	KMsvSendStateWaiting		= 0x2,
   1.324 -	/** Sending in progress. */
   1.325 -	KMsvSendStateSending		= 0x3,
   1.326 -	/** Sending scheduled. */
   1.327 -	KMsvSendStateScheduled		= 0x4,
   1.328 -	/** Resending. */
   1.329 -	KMsvSendStateResend			= 0x5,
   1.330 -	/** Sending suspended. */
   1.331 -	KMsvSendStateSuspended		= 0x6,
   1.332 -	/** Sending failed. */
   1.333 -	KMsvSendStateFailed			= 0x7,
   1.334 -	/** Sending complete. */
   1.335 -	KMsvSendStateSent			= 0x8,
   1.336 -	/** Not applicable. */
   1.337 -	KMsvSendStateNotApplicable	= 0x9
   1.338 -	};
   1.339 -
   1.340 -const TUint KMsvSendStateLast = KMsvSendStateNotApplicable;
   1.341 -const TUint KMsvSendStateMax = 0x0F;
   1.342 -
   1.343 -/** Supplies values for bitmasks that allows the rapid setting or clearing of a 
   1.344 -number of TMsvEntry fields.
   1.345 -
   1.346 -The fields that can be manipulated are:
   1.347 -
   1.348 -1. PC synchronisation
   1.349 -
   1.350 -2. Visibility flag
   1.351 -
   1.352 -3. Read flag
   1.353 -
   1.354 -4. In-preparation flag
   1.355 -
   1.356 -5. Connected flag
   1.357 -
   1.358 -6. Pending deletion flag.
   1.359 -
   1.360 -7. New flag
   1.361 -
   1.362 -@see TMsvEntry
   1.363 -@see CMsvSession::ChangeAttributesL()
   1.364 -@see CMsvServerEntry::ChangeAttributes() 
   1.365 -@publishedAll
   1.366 -@released
   1.367 -*/
   1.368 -enum TMsvAttribute    { 
   1.369 -	/** PC synchronisation field. */
   1.370 -						KMsvPcSyncCountAttribute	=0x00000001,
   1.371 -	/** Visibility flag field. */
   1.372 -						KMsvVisibilityAttribute		=0x00000200,
   1.373 -	/** Read flag field. */
   1.374 -						KMsvUnreadAttribute			=0x00000020,
   1.375 -	/** In-preparation field. */
   1.376 -						KMsvInPreparationAttribute	=0x00010000,
   1.377 -	/** Connected flag field. */
   1.378 -						KMsvConnectedAttribute		=0x01000000,
   1.379 -	/** Pending deletion flag. */
   1.380 -						KMsvPendingDeleteAttribute	=0x02000000,
   1.381 -	/** New flag field. */
   1.382 -						KMsvNewAttribute			=0x00000010};
   1.383 -
   1.384 -/** Defines the sort order options for a TMsvSelectionOrdering object. Options 
   1.385 -are set through TMsvSelectionOrdering::SetSorting().
   1.386 -
   1.387 -@see TMsvSelectionOrdering 
   1.388 -@publishedAll
   1.389 -@released
   1.390 -*/
   1.391 -enum TMsvSorting 
   1.392 -	{
   1.393 -	/** Don't sort */
   1.394 -	EMsvSortByNone=0,				// Don't sort
   1.395 -	/** Date (earliest-latest) */
   1.396 -	EMsvSortByDate,					// Date (earliest-latest)
   1.397 -	/** Date (latest-earliest) */
   1.398 -	EMsvSortByDateReverse,			// Date (latest-earliest)
   1.399 -	/** Size (smallest-largest) */
   1.400 -	EMsvSortBySize,					// Size (smallest-largest)
   1.401 -	/** Size (largest-smallest) */
   1.402 -	EMsvSortBySizeReverse,			// Size (largest-smallest)
   1.403 -	/** To/From (A-Z folded) */
   1.404 -	EMsvSortByDetails,				// ToFrom (A-Z collated)
   1.405 -	/** To/From (Z-A folded) */
   1.406 -	EMsvSortByDetailsReverse,		// ToFrom (Z-A collated)
   1.407 -	/** Description (A-Z folded) */
   1.408 -	EMsvSortByDescription,			// Description (A-Z collated)
   1.409 -	/** Description (Z-A folded) */
   1.410 -	EMsvSortByDescriptionReverse,	// Description (Z-A collated)
   1.411 -	/** Sort by message ID. */
   1.412 -	EMsvSortById,			        // Id (lowest-highest)
   1.413 -	/** Sort in reverse order by message ID. */
   1.414 -	EMsvSortByIdReverse	            // Id (highest-lowest)
   1.415 -	};
   1.416 -
   1.417 -/** Defines grouping order options for a TMsvEntrySelection object. Grouping options 
   1.418 -can be combined in a bitmask and set through the TMsvEntrySelection constructor 
   1.419 -@publishedAll
   1.420 -@released
   1.421 -*/
   1.422 -enum TMsvGrouping
   1.423 -	{
   1.424 -	/** No grouping */
   1.425 -	KMsvNoGrouping=0,				// No grouping
   1.426 -	/** Group by entry type, in order, services, folders, messages, attachments */
   1.427 -	KMsvGroupByType=0x2,			// Folder, Message, Attachment
   1.428 -	/** Place standard folders first, in the order they were created */
   1.429 -	KMsvGroupByStandardFolders=0x6,	// Standrad folders first (must have sorting by type set aswell)
   1.430 -	/** Group by message priority, in order, high, medium, then low */
   1.431 -	KMsvGroupByPriority=0x8,		// High, Mediem, Low
   1.432 -	/** Group by MTM, either in the order set by CMsvEntry::SetMtmListL() or by MTM 
   1.433 -	Uid value */
   1.434 -	KMsvGroupByMtm=0x10,			// By increasing uid value
   1.435 -	};
   1.436 -
   1.437 -/** Defines the sorting and grouping rules used to prepare a selection of entries.
   1.438 - 
   1.439 -It is used in the interfaces of CMsvEntry and CMsvServerEntry to set the ordering 
   1.440 -of an entry's children.
   1.441 -
   1.442 -Firstly, the entries will be grouped, if the appropriate grouping option is 
   1.443 -set, by:
   1.444 -
   1.445 -1. Standard folders: any entries marked as standard folders are placed first, 
   1.446 -in the order they were created.
   1.447 -
   1.448 -2. Entry type: in the order services, folders, messages, attachments, unknown
   1.449 -
   1.450 -3. Priority: in the order high, medium, then low
   1.451 -
   1.452 -4. MTM: either in the MTM order set by CMsvEntry::SetMtmListL() or just in MTM 
   1.453 -Uid value
   1.454 -
   1.455 -Grouping options are simply Boolean flags that can be set on or off by functions 
   1.456 -of this class.
   1.457 -
   1.458 -Secondly, the order of entries within these groups is defined by a sorting 
   1.459 -order option.
   1.460 -
   1.461 -@see CMsvEntry
   1.462 -@see CMsvServerEntry 
   1.463 -@publishedAll
   1.464 -@released
   1.465 -*/
   1.466 -class TMsvSelectionOrdering
   1.467 -	{
   1.468 -public:
   1.469 -	IMPORT_C TMsvSelectionOrdering();
   1.470 -	IMPORT_C TMsvSelectionOrdering(TInt aGroupingKey, TMsvSorting aSorting, TBool aShowInvisible=EFalse);
   1.471 -	IMPORT_C void InternalizeL(RReadStream& aStream);
   1.472 -	IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
   1.473 -	IMPORT_C TBool operator==(const TMsvSelectionOrdering& aOrdering) const;
   1.474 -	IMPORT_C void SetSubjectSkipString(const TDesC& aSubjectSkipString);
   1.475 -	IMPORT_C const TDesC& SubjectSkipString() const;
   1.476 -
   1.477 -	//
   1.478 -	inline TMsvSorting Sorting() const;
   1.479 -	inline TBool GroupByType() const;
   1.480 -	inline TBool GroupStandardFolders() const;
   1.481 -	inline TBool GroupByPriority() const;
   1.482 -	inline TBool GroupByMtm() const;
   1.483 -	inline TBool ShowInvisibleEntries() const;
   1.484 -	inline TBool GroupingOn() const;
   1.485 -	// 
   1.486 -	inline void SetGroupByType(TBool aFlag);
   1.487 -	inline void SetGroupStandardFolders(TBool aFlag);
   1.488 -	inline void SetGroupByPriority(TBool aFlag);
   1.489 -	inline void SetGroupByMtm(TBool aFlag);
   1.490 -	inline void SetShowInvisibleEntries(TBool aFlag);
   1.491 -	inline void SetSorting(TMsvSorting aSortType);
   1.492 -
   1.493 -	//
   1.494 -	//
   1.495 -private:
   1.496 -
   1.497 -	enum TMsvGroupingPrivate
   1.498 -		{
   1.499 -		KMsvInvisibleFlag=0x1,
   1.500 -		KMsvStandardFolders=0x4,
   1.501 -		KMsvAllGroupingFlags=0x1e
   1.502 -		};
   1.503 -	TInt iGrouping;
   1.504 -	TMsvSorting iSortType;
   1.505 - 	TBuf<KMaxSubjectSkipStringLength>	iSubjectSkipString;
   1.506 -	};
   1.507 -
   1.508 -const TInt KMsvInvisibleFlag=1;
   1.509 -
   1.510 -/** Encapsulates an array of entry IDs. 
   1.511 -
   1.512 -An object of this type is commonly passed to a function to indicate the set 
   1.513 -of entries on which the function should operate. The array base class (CArrayFixFlat<TMsvId>) 
   1.514 -provide methods to access, sort, and manipulate members of the array.
   1.515 - 
   1.516 -@publishedAll
   1.517 -@released
   1.518 -*/
   1.519 -class CMsvEntrySelection : public CArrayFixFlat<TMsvId>
   1.520 -	{ 
   1.521 -public: 
   1.522 -	IMPORT_C CMsvEntrySelection();
   1.523 -	IMPORT_C CMsvEntrySelection* CopyL()  const;
   1.524 -	IMPORT_C CMsvEntrySelection* CopyLC() const;
   1.525 -	IMPORT_C TInt Find(TMsvId aId) const;
   1.526 -	};
   1.527 -
   1.528 -/** Specifies a default service for a MTM.
   1.529 -
   1.530 -@publishedAll
   1.531 -@released
   1.532 -*/
   1.533 -class TMsvDefaultService
   1.534 -	{
   1.535 -public:
   1.536 -	/** MTM for which the default service is specified. */
   1.537 -	TUid iMtm;
   1.538 -	/** ID of the default service. */
   1.539 -	TMsvId iService;
   1.540 -	};
   1.541 -
   1.542 -
   1.543 -
   1.544 -/** Used to query the Message Server for entries that match the specification defined 
   1.545 -in the filter. 
   1.546 -
   1.547 -It allows a query to be performed on service, MTM, type and last change date. 
   1.548 -The filter also enables the specification of the order in which the entries 
   1.549 -are returned. 
   1.550 -
   1.551 -@see CMsvSession::GetChildIdsL() 
   1.552 -@publishedAll
   1.553 -@released
   1.554 -*/
   1.555 -class CMsvEntryFilter : public CBase
   1.556 -	{
   1.557 -public:
   1.558 -	IMPORT_C static CMsvEntryFilter* NewLC();
   1.559 -	IMPORT_C static CMsvEntryFilter* NewL();
   1.560 -	//
   1.561 -public:
   1.562 -	inline TMsvId Service() const;
   1.563 -	inline void SetService(TMsvId aServiceId);
   1.564 -	//
   1.565 -	inline TUid Mtm() const;
   1.566 -	inline void SetMtm(TUid aMtm);
   1.567 -	//
   1.568 -	inline TUid Type() const;
   1.569 -	inline void SetType(TUid aType);
   1.570 -	//
   1.571 -	inline const TTime& LastChangeDate() const;
   1.572 -	inline void SetLastChangeDate(const TTime& aLastChange);
   1.573 -	//
   1.574 -	inline const TMsvSelectionOrdering& Order() const;
   1.575 -	inline void SetOrder(const TMsvSelectionOrdering& aOrder);
   1.576 -	//
   1.577 -	inline TUid SortMtm() const;
   1.578 -	inline void SetSortMtm(TUid aSortMtm);
   1.579 -	//
   1.580 -private:
   1.581 -	CMsvEntryFilter();
   1.582 -	//
   1.583 -private:
   1.584 -	TMsvId iServiceId;
   1.585 -	TUid iMtm;
   1.586 -	TUid iType;
   1.587 -	TTime iLastChange;
   1.588 -	TMsvSelectionOrdering iOrdering;
   1.589 -	TUid iSortMtm;
   1.590 -	};
   1.591 -
   1.592 -// Error resolver leave codes -7000 to -7127
   1.593 -/** Defines error codes that relate to the Message Server.
   1.594 -
   1.595 -@see MMsvEntryObserver::EMsvContextInvalid 
   1.596 -@publishedAll
   1.597 -@released
   1.598 -*/
   1.599 -enum TMsvResolverLeave
   1.600 -	{
   1.601 -	/** There is no disk in the drive containing the Message Server index. */
   1.602 -	KMsvMediaUnavailable = -7000,
   1.603 -	/** There is a disk in the drive containing the Message Server index, but it is 
   1.604 -	the wrong one. */
   1.605 -	KMsvMediaIncorrect = -7001,
   1.606 -	/** A CMsvEntry context is no longer valid because the location of the Message Server's 
   1.607 -	index has changed.
   1.608 -	
   1.609 -	Such contexts will need refreshing by the client.
   1.610 -	
   1.611 -	@see MMsvEntryObserver::EMsvContextInvalid */
   1.612 -	KMsvMediaChanged = -7002,
   1.613 -	KMsvIndexBackup      = -7003,
   1.614 -	KMsvIndexRestore     = -7004
   1.615 -	};
   1.616 -
   1.617 -#include <msvstd.inl>
   1.618 -
   1.619 -#endif