windowing/windowserver/SERVER/w32cmd.h
changeset 0 5d03bc08d59c
child 11 fed1595b188e
child 36 01a6848ebfd7
equal deleted inserted replaced
-1:000000000000 0:5d03bc08d59c
       
     1 // Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // Command numbers and structures for client to window server communications.
       
    15 // 
       
    16 //
       
    17 
       
    18 #ifndef __W32CMD_H__
       
    19 #define __W32CMD_H__
       
    20 
       
    21 #include <e32std.h>
       
    22 #include <w32std.h>
       
    23 #include <gdi.h>
       
    24 #if defined(SYMBIAN_GRAPHICS_GCE)
       
    25 #include <graphics/surfaceconfiguration.h>
       
    26 #include <graphics/sgresource.h>
       
    27 #endif
       
    28 
       
    29 #include <graphics/displayconfiguration.h>
       
    30 #include <graphics/displaymapping.h>
       
    31 
       
    32 const TUint KWservMajorVersionNumber=1;
       
    33 const TUint KWservMinorVersionNumber=0;
       
    34 const TUint KWservBuildVersionNumber=151;
       
    35 
       
    36 const TUint KWservLoggingDllUidValue8=268435925;
       
    37 const TUid KWservLoggingDllUid8={KWservLoggingDllUidValue8};
       
    38 const TUint KWservLoggingDllUidValue16=268450595;
       
    39 const TUid KWservLoggingDllUid16={KWservLoggingDllUidValue16};
       
    40 //const TUint KUidWservLoggingCommon=268439591;
       
    41 const TUint KWservLoggingDllUidValue=KWservLoggingDllUidValue16;
       
    42 const TUid KWservLoggingDllUid={KWservLoggingDllUidValue};
       
    43 const TInt KDummyScreenNumber = -1;
       
    44 class CClickMaker;
       
    45 class CAnimDll;
       
    46 class CDebugLogBase;
       
    47 class TSurfaceId;
       
    48 
       
    49 /** Creates an interface object for Shell
       
    50 
       
    51 @publishedPartner
       
    52 @released
       
    53 */
       
    54 typedef TInt (*ShellEntryPoint)(TAny *);
       
    55 
       
    56 /** Creates the key or pointer click plug-in provider interface.
       
    57 
       
    58 When a key is pressed, a key auto repeats or when the screen is tapped with a pointer, 
       
    59 the window server informs the plug-in DLL, which can then make the sound.
       
    60 
       
    61 @publishedAll
       
    62 @released
       
    63 */
       
    64 typedef CClickMaker *(*CreateCClickHandler)();
       
    65 
       
    66 /** Creates the animation dll factory interface object.
       
    67 
       
    68 Animation DLL objects are created by the CreateCAnimDllL() function,
       
    69 which is called by the window server at the request of the client.
       
    70 
       
    71 @publishedAll
       
    72 @released
       
    73 */
       
    74 typedef CAnimDll* (*CreateCAnimDll)();
       
    75 
       
    76 
       
    77 class WservEncoding
       
    78 	{
       
    79 public:
       
    80 	static inline TUint Encode8BitValues(TUint8 aFirst,TUint8 aSecond);
       
    81 	static inline TUint Encode8BitValues(TUint8 aFirst,TUint8 aSecond,TUint8 aThird);
       
    82 	static inline TUint8 ExtractFirst8BitValue(TUint aUint);
       
    83 	static inline TUint8 ExtractSecond8BitValue(TUint aUint);
       
    84 	static inline TUint8 ExtractThird8BitValue(TUint aUint);
       
    85 	};
       
    86 
       
    87 struct SKeyRepeatSettings
       
    88 	{
       
    89 	SKeyRepeatSettings();
       
    90 	TTimeIntervalMicroSeconds32 iInitialTime;
       
    91 	TTimeIntervalMicroSeconds32 iTime;
       
    92 	};
       
    93 struct SDoubleClickSettings
       
    94 	{
       
    95 	SDoubleClickSettings();
       
    96 	TTimeIntervalMicroSeconds32 iInterval;
       
    97 	TInt iDistance;
       
    98 	};
       
    99 //struct SMaxNumColors
       
   100 struct SDefModeMaxNumColors
       
   101 	{
       
   102 	SDefModeMaxNumColors();
       
   103 	TInt iColors;
       
   104 	TInt iGrays;
       
   105 	TDisplayMode iDisplayMode;
       
   106 	};
       
   107 struct SEventMessageReady
       
   108 	{
       
   109 	TInt iWindowGroupIdentifier;
       
   110 	TUid iMessageUid;
       
   111 	TInt iMessageParametersSize;
       
   112 	};
       
   113 class TCmdSpriteMember
       
   114 	{
       
   115 public:
       
   116 	inline TCmdSpriteMember();
       
   117 	TCmdSpriteMember(const TSpriteMember &aSpriteMember);
       
   118 public:
       
   119 	TInt iBitmap;
       
   120 	TInt iMaskBitmap;
       
   121 	TBool iInvertMask;
       
   122 	CGraphicsContext::TDrawMode iDrawMode;
       
   123 	TPoint iOffset;			// Offset from sprites central position
       
   124 	TTimeIntervalMicroSeconds32 iInterval;
       
   125 	};
       
   126 
       
   127 enum {EClientBufferSize=640};		// default buffer size
       
   128 enum {EClientBufferMaxSize=0x4000};	// 16K is max buffer size
       
   129 
       
   130 enum {EWsOpcodeHandle=0x8000};	// Indicates a new handle is included in the message header
       
   131 
       
   132 enum {EMaxPolygonPoints=50}; // Max size polygon that can be drawn without allocing
       
   133 enum {EMaxPolylinePoints=50}; // Max size polygon that can be drawn without allocing
       
   134 
       
   135 enum {EClickLoaded=0x01, EClickLoadable=0x02};
       
   136 
       
   137 //
       
   138 // Opcodes
       
   139 //
       
   140 
       
   141 // Client opcodes
       
   142 
       
   143 enum TWsClientOpcodes
       
   144 	{
       
   145 	EWsClOpDisconnect, //Keep this as the first enum value - used by test code
       
   146 	EWsClOpClearHotKeys,
       
   147 	EWsClOpSetHotKey,
       
   148 	EWsClOpRestoreDefaultHotKey,
       
   149 	EWsClOpComputeMode,
       
   150 	EWsClOpEventReady,
       
   151 	EWsClOpEventReadyCancel,
       
   152 	EWsClOpGetEvent,
       
   153 	EWsClOpPurgePointerEvents,
       
   154 	EWsClOpRedrawReady,
       
   155 	EWsClOpRedrawReadyCancel,
       
   156 	EWsClOpGetRedraw,
       
   157 	EWsClOpPriorityKeyReady,
       
   158 	EWsClOpPriorityKeyReadyCancel,
       
   159 	EWsClOpGetPriorityKey,
       
   160 	EWsClOpSetShadowVector,
       
   161 	EWsClOpShadowVector,
       
   162 	EWsClOpSetKeyboardRepeatRate,
       
   163 	EWsClOpGetKeyboardRepeatRate,
       
   164 	EWsClOpSetDoubleClick,
       
   165 	EWsClOpGetDoubleClickSettings,
       
   166 	EWsClOpCreateWindowGroup,
       
   167 	EWsClOpCreateWindow,
       
   168 	EWsClOpCreateGc,
       
   169 	EWsClOpCreateAnimDll,
       
   170 	EWsClOpCreateScreenDevice,
       
   171 	EWsClOpCreateSprite,
       
   172 	EWsClOpCreatePointerCursor,
       
   173 	EWsClOpStartSetCustomTextCursor,
       
   174 	EWsClOpCompleteSetCustomTextCursor,
       
   175 	EWsClOpCreateBitmap,
       
   176 	EWsClOpNumWindowGroups,
       
   177 	EWsClOpNumWindowGroupsAllPriorities,
       
   178 	EWsClOpWindowGroupList,
       
   179 	EWsClOpWindowGroupListAllPriorities,
       
   180 	EWsClOpSetWindowGroupOrdinalPosition,
       
   181 	EWsClOpGetWindowGroupHandle,
       
   182 	EWsClOpGetWindowGroupOrdinalPriority,
       
   183 	EWsClOpGetWindowGroupClientThreadId,
       
   184 	EWsClOpGetWindowGroupNameFromIdentifier,
       
   185 	EWsClOpGetFocusWindowGroup,
       
   186 	EWsClOpGetDefaultOwningWindow,
       
   187 	EWsClOpSendEventToWindowGroup,
       
   188 	EWsClOpFindWindowGroupIdentifier,
       
   189 	EWsClOpFindWindowGroupIdentifierThread,
       
   190 	EWsClOpSetBackgroundColor,
       
   191 	EWsClOpGetBackgroundColor,
       
   192 	EWsClOpSetSystemPointerCursor,
       
   193 	EWsClOpClearSystemPointerCursor,
       
   194 	EWsClOpClaimSystemPointerCursorList,
       
   195 	EWsClOpFreeSystemPointerCursorList,
       
   196 	EWsClOpGetModifierState,
       
   197 	EWsClOpSetModifierState,
       
   198 	EWsClOpHeapCount,
       
   199 	EWsClOpResourceCount,
       
   200 	EWsClOpTestInvariant,
       
   201 	EWsClOpHeapSetFail,
       
   202 	EWsClOpRawEvent,
       
   203 	EWsClOpSystemInfo,
       
   204 	EWsClOpLogMessage,
       
   205 	EWsClOpPasswordEntered,
       
   206 	EWsClOpSendMessageToWindowGroup,
       
   207 	EWsClOpSendOffEventsToShell,
       
   208 	EWsClOpGetDefModeMaxNumColors,
       
   209 	EWsClOpGetColorModeList,
       
   210 	EWsClOpKeyEvent,
       
   211 	EWsClOpSendEventToAllWindowGroup,
       
   212 	EWsClOpSendEventToAllWindowGroupPriority,
       
   213 	EWsClOpSetPointerCursorArea,
       
   214 	EWsClOpPointerCursorArea,
       
   215 	EWsClOpSetPointerCursorMode,
       
   216 	EWsClOpPointerCursorMode,
       
   217 	EWsClOpSetDefaultSystemPointerCursor,
       
   218 	EWsClOpClearDefaultSystemPointerCursor,
       
   219 	EWsClOpSetPointerCursorPosition,
       
   220 	EWsClOpPointerCursorPosition,
       
   221 	EWsClOpSetDefaultFadingParams,
       
   222 	EWsClOpSendMessageToAllWindowGroups,
       
   223 	EWsClOpSendMessageToAllWindowGroupsPriority,
       
   224 	EWsClOpFetchMessage,
       
   225 	EWsClOpPrepareForSwitchOff,
       
   226 	EWsClOpCreateDirectScreenAccess,
       
   227 	EWsClOpSetFaded,
       
   228 	EWsClOpLogCommand,
       
   229 	EWsClOpCreateClick,
       
   230 	EWsClOpSendEventToOneWindowGroupPerClient,
       
   231 #if defined(__WINS__)
       
   232 	EWsClOpRemoveKeyCode,
       
   233 	EWsClOpSimulateXyInput,
       
   234 #endif
       
   235 	EWsClOpNoFlickerFree,
       
   236 	EWsClOpSetFocusScreen,
       
   237 	EWsClOpGetFocusScreen,
       
   238 	EWsClOpWindowGroupListAndChain,
       
   239 	EWsClOpWindowGroupListAndChainAllPriorities,
       
   240 	EWsClOpSetClientCursorMode,
       
   241 	EWsClOpClearAllRedrawStores,
       
   242 	EWsClOpCreateGraphic,
       
   243 	EWsClOpGraphicMessageReady,
       
   244 	EWsClOpGetGraphicMessage,
       
   245 	EWsClOpGraphicMessageCancel,
       
   246 	EWsClOpNumWindowGroupsOnScreen,
       
   247 	EWsClOpGetNumberOfScreens, 
       
   248 	EWsClOpGraphicAbortMessage,
       
   249 	EWsClOpGraphicFetchHeaderMessage,
       
   250 	EWsClOpDebugInfo,
       
   251 	EWsClOpDebugInfoReplyBuf,
       
   252 	EWsClOpRegisterSurface,
       
   253 	EWsClOpUnregisterSurface,
       
   254 	EWsClOpSetCloseProximityThresholds,
       
   255 	EWsClOpSetHighPressureThresholds,
       
   256 	EWsClOpGetEnterCloseProximityThreshold,
       
   257 	EWsClOpGetExitCloseProximityThreshold,
       
   258 	EWsClOpGetEnterHighPressureThreshold,
       
   259 	EWsClOpGetExitHighPressureThreshold,
       
   260 	EWsClOpCreateDrawableSource,
       
   261 	EWsClOpCreateDirectScreenAccessRegionTrackingOnly,
       
   262 	EWsClOpLastEnumValue //Keep this at the end - used by test code
       
   263 	};
       
   264 	
       
   265 // Graphic Drawer opcodes
       
   266 
       
   267 enum TWsGraphicDrawerOpcodes
       
   268 	{
       
   269 	EWsGdOpFree = 0x0000,
       
   270 	EWsGdOpSendMsg,
       
   271 	EWsGdOpGetGraphicId,
       
   272 	EWsGdOpShareGlobally,
       
   273 	EWsGdOpUnShareGlobally,
       
   274 	EWsGdOpShare,
       
   275 	EWsGdOpUnShare,
       
   276 	EWsGdOpSendSynchronMsg,
       
   277 	};
       
   278 	
       
   279 // types of Graphic Drawer messages to be passed from the Graphic Drawer to the client
       
   280 	
       
   281 enum TWsGraphicMessageType
       
   282 	{
       
   283 	EWsGraphMessageTypeUser = 0x00
       
   284 	// max 0x03 as packed into lower two bits of client handle
       
   285 	};
       
   286 
       
   287 // Window opcodes
       
   288 
       
   289 enum TWsWindowOpcodes
       
   290 	{
       
   291 	EWsWinOpFree=0x0000,
       
   292 	EWsWinOpSetExtent,
       
   293 	EWsWinOpSetExtentErr,
       
   294 	EWsWinOpOrdinalPosition,
       
   295 	EWsWinOpFullOrdinalPosition,
       
   296 	EWsWinOpSetOrdinalPosition,
       
   297 	EWsWinOpSetOrdinalPositionPri,
       
   298 	EWsWinOpSetOrdinalPriorityAdjust,
       
   299 	EWsWinOpSetPos,
       
   300 	EWsWinOpSetSize,
       
   301 	EWsWinOpSetSizeErr,
       
   302 	EWsWinOpPosition,
       
   303 	EWsWinOpAbsPosition,
       
   304 	EWsWinOpSize,
       
   305 	EWsWinOpActivate,
       
   306 	EWsWinOpInvalidate,
       
   307 	EWsWinOpInvalidateFull,
       
   308 	EWsWinOpBeginRedraw,
       
   309 	EWsWinOpBeginRedrawFull,
       
   310 	EWsWinOpEndRedraw,
       
   311 	EWsWinOpTestInvariant,
       
   312 	EWsWinOpParent,
       
   313 	EWsWinOpPrevSibling,
       
   314 	EWsWinOpNextSibling,
       
   315 	EWsWinOpChild,
       
   316 	EWsWinOpInquireOffset,
       
   317 	EWsWinOpPointerFilter,
       
   318 	EWsWinOpSetPointerCapture,
       
   319 	EWsWinOpSetPointerGrab,
       
   320 	EWsWinOpClaimPointerGrab,
       
   321 	EWsWinOpSetBackgroundColor,
       
   322 	EWsWinOpSetOrdinalPositionErr,
       
   323 	EWsWinOpSetVisible,
       
   324 	EWsWinOpScroll,
       
   325 	EWsWinOpScrollClip,
       
   326 	EWsWinOpScrollRect,
       
   327 	EWsWinOpScrollClipRect,
       
   328 	EWsWinOpReceiveFocus,
       
   329 	EWsWinOpAutoForeground,
       
   330 	EWsWinOpSetNoBackgroundColor,
       
   331 	EWsWinOpCaptureKey,
       
   332 	EWsWinOpCancelCaptureKey,
       
   333 	EWsWinOpCaptureKeyUpsAndDowns,
       
   334 	EWsWinOpCancelCaptureKeyUpsAndDowns,
       
   335 	EWsWinOpAddPriorityKey,
       
   336 	EWsWinOpRemovePriorityKey,
       
   337 	EWsWinOpSetTextCursor,
       
   338 	EWsWinOpSetTextCursorClipped,
       
   339 	EWsWinOpCancelTextCursor,
       
   340 	EWsWinOpSetShadowHeight,
       
   341 	EWsWinOpShadowDisabled,
       
   342 	EWsWinOpGetInvalidRegion,
       
   343 	EWsWinOpGetInvalidRegionCount,
       
   344 	EWsWinOpSetColor,
       
   345 	EWsWinOpSetCornerType,
       
   346 	EWsWinOpSetShape,
       
   347 	EWsWinOpBitmapHandle,
       
   348 	EWsWinOpUpdateScreen,
       
   349 	EWsWinOpUpdateScreenRegion,
       
   350 	EWsWinOpUpdateBackupBitmap,
       
   351 	EWsWinOpMaintainBackup,
       
   352 	EWsWinOpName,
       
   353 	EWsWinOpSetName,
       
   354 	EWsWinOpSetOwningWindowGroup,
       
   355 	EWsWinOpDefaultOwningWindow,
       
   356 	EWsWinOpRequiredDisplayMode,
       
   357 	EWsWinOpEnableOnEvents,
       
   358 	EWsWinOpDisableOnEvents,
       
   359 	EWsWinOpEnableGroupChangeEvents,
       
   360 	EWsWinOpDisableGroupChangeEvents,
       
   361 	EWsWinOpSetPointerCursor,
       
   362 	EWsWinOpSetCustomPointerCursor,
       
   363 	EWsWinOpRequestPointerRepeatEvent,
       
   364 	EWsWinOpCancelPointerRepeatEventRequest,
       
   365 	EWsWinOpAllocPointerMoveBuffer,
       
   366 	EWsWinOpFreePointerMoveBuffer,
       
   367 	EWsWinOpEnablePointerMoveBuffer,
       
   368 	EWsWinOpDisablePointerMoveBuffer,
       
   369 	EWsWinOpRetrievePointerMoveBuffer,
       
   370 	EWsWinOpDiscardPointerMoveBuffer,		//Tested to here %%%
       
   371 	EWsWinOpEnableModifierChangedEvents,
       
   372 	EWsWinOpDisableModifierChangedEvents,
       
   373 	EWsWinOpEnableErrorMessages,
       
   374 	EWsWinOpDisableErrorMessages,
       
   375 	EWsWinOpAddKeyRect,
       
   376 	EWsWinOpRemoveAllKeyRects,
       
   377 	EWsWinOpPasswordWindow,
       
   378 	EWsWinOpEnableBackup,
       
   379 	EWsWinOpIdentifier,
       
   380 	EWsWinOpDisableKeyClick,
       
   381 	EWsWinOpSetFade=EWsWinOpDisableKeyClick+3,	//Two messages removed
       
   382 	EWsWinOpSetNonFading,
       
   383 	EWsWinOpFadeBehind,
       
   384 	EWsWinOpEnableScreenChangeEvents,
       
   385 	EWsWinOpDisableScreenChangeEvents,
       
   386 	EWsWinOpSendPointerEvent,
       
   387 	EWsWinOpSendAdvancedPointerEvent,
       
   388 	EWsWinOpGetDisplayMode,
       
   389 	EWsWinOpGetIsFaded,
       
   390 	EWsWinOpGetIsNonFading,
       
   391 	EWsWinOpOrdinalPriority,
       
   392 	EWsWinOpClearPointerCursor,
       
   393 	EWsWinOpMoveToGroup,
       
   394 	EWsWinOpEnableFocusChangeEvents,
       
   395 	EWsWinOpDisableFocusChangeEvents,
       
   396 	EWsWinOpEnableGroupListChangeEvents,
       
   397 	EWsWinOpDisableGroupListChangeEvents,
       
   398 	EWsWinOpCaptureLongKey,
       
   399 	EWsWinOpCancelCaptureLongKey,
       
   400 	EWsWinOpStoreDrawCommands,
       
   401 	EWsWinOpHandleTransparencyUpdate,
       
   402 	EWsWinOpSetTransparencyFactor,
       
   403 	EWsWinOpSetTransparencyBitmap,
       
   404 	EWsWinOpAllowChildWindowGroup,
       
   405 	EWsWinOpSetTransparencyBitmapCWs, 
       
   406 	EWsWinOpEnableVisibilityChangeEvents,
       
   407 	EWsWinOpDisableVisibilityChangeEvents,
       
   408 	EWsWinOpSetTransparencyAlphaChannel,
       
   409 	EWsWinOpWindowGroupId,
       
   410 	EWsWinOpSetPointerCapturePriority,
       
   411 	EWsWinOpGetPointerCapturePriority,
       
   412 	EWsWinOpSetTransparentRegion,
       
   413 	EWsWinOpSetTransparencyPolicy,
       
   414 	EWsWinOpIsRedrawStoreEnabled,
       
   415 	EWsWinOpEnableOSB,
       
   416 	EWsWinOpDisableOSB,
       
   417 	EWsWinOpClearChildGroup,
       
   418 	EWsWinOpSetChildGroup,
       
   419 	EWsWinOpClientHandle,
       
   420 	EWsWinOpSetBackgroundSurface,
       
   421 	EWsWinOpKeyColor=EWsWinOpSetBackgroundSurface+2, 	//One message removed
       
   422 	EWsWinOpSetBackgroundSurfaceConfig=EWsWinOpKeyColor+5,	//Four messages removed
       
   423 	EWsWinOpRemoveBackgroundSurface=EWsWinOpSetBackgroundSurfaceConfig+2,	//One message removed
       
   424 	EWsWinOpGetBackgroundSurfaceConfig=EWsWinOpRemoveBackgroundSurface+2,	//One message removed
       
   425 	EWsWinOpClearRedrawStore=EWsWinOpGetBackgroundSurfaceConfig+2,	//One message removed
       
   426 	EWsWinOpScreenNumber,
       
   427 	EWsWinOpEnableAdvancedPointers,
       
   428 #ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS	
       
   429 	EWsWinOpSetSurfaceTransparency,
       
   430 #endif
       
   431 	EWsWinOpTestLowPriorityRedraw=0x2000,  //Specific opcode for testing redraw queue priorities
       
   432 	};
       
   433 
       
   434 // GC opcodes
       
   435 
       
   436 enum TWsGcOpcodes
       
   437 	{
       
   438 	EWsGcOpFree=0x0000,
       
   439 	EWsGcOpActivate,
       
   440 	EWsGcOpDeactivate,
       
   441 	EWsGcOpSetClippingRegion,
       
   442 	EWsGcOpSetClippingRect,
       
   443 	EWsGcOpCancelClippingRegion,
       
   444 	EWsGcOpCancelClippingRect,
       
   445 	EWsGcOpSetWordJustification,
       
   446 	EWsGcOpSetCharJustification,
       
   447 	EWsGcOpSetPenColor,
       
   448 	EWsGcOpSetPenStyle,
       
   449 	EWsGcOpSetPenSize,
       
   450 	EWsGcOpSetBrushColor,
       
   451 	EWsGcOpSetBrushStyle,
       
   452 	EWsGcOpSetBrushOrigin,
       
   453 	EWsGcOpUseBrushPattern,
       
   454 	EWsGcOpDiscardBrushPattern,
       
   455 	EWsGcOpDrawArc,
       
   456 	EWsGcOpDrawLine,
       
   457 	EWsGcOpPlot,
       
   458 	EWsGcOpDrawTo,
       
   459 	EWsGcOpDrawBy,
       
   460 	EWsGcOpDrawPolyLine,
       
   461 	EWsGcOpDrawPolyLineContinued,   //Quater Way
       
   462 
       
   463 	EWsGcOpDrawPie,
       
   464 	EWsGcOpDrawRoundRect,
       
   465 	EWsGcOpDrawPolygon,
       
   466 	EWsGcOpStartSegmentedDrawPolygon,
       
   467 	EWsGcOpSegmentedDrawPolygonData,
       
   468 	EWsGcOpDrawSegmentedPolygon,
       
   469 	EWsGcOpDrawBitmap,
       
   470 	EWsGcOpDrawBitmap2,
       
   471 	EWsGcOpDrawBitmap3,
       
   472 	EWsGcOpDrawBitmapMasked,
       
   473 	EWsGcOpWsDrawBitmapMasked,
       
   474 	EWsGcOpDrawText,
       
   475 	EWsGcOpDrawTextPtr,
       
   476 	EWsGcOpDrawTextInContextPtr,
       
   477 	EWsGcOpDrawTextInContext,
       
   478 	EWsGcOpDrawTextVertical,
       
   479 	EWsGcOpDrawTextInContextVertical,
       
   480 	EWsGcOpDrawTextInContextVerticalPtr,
       
   481 	EWsGcOpDrawTextVerticalPtr,
       
   482 	EWsGcOpDrawBoxTextOptimised1,
       
   483 	EWsGcOpDrawBoxTextOptimised2,
       
   484 	EWsGcOpDrawBoxTextInContextOptimised1,
       
   485 	EWsGcOpDrawBoxTextInContextOptimised2,
       
   486 	EWsGcOpDrawBoxText,
       
   487 	EWsGcOpDrawBoxTextInContext,
       
   488 	EWsGcOpDrawBoxTextPtr,
       
   489 	EWsGcOpDrawBoxTextInContextPtr,
       
   490 	EWsGcOpDrawBoxTextVertical,
       
   491 	EWsGcOpDrawBoxTextInContextVertical,
       
   492 	EWsGcOpDrawBoxTextVerticalPtr,
       
   493 	EWsGcOpDrawBoxTextInContextVerticalPtr,
       
   494 	EWsGcOpMoveBy,
       
   495 	EWsGcOpMoveTo,
       
   496 	EWsGcOpSetOrigin,
       
   497 	EWsGcOpCopyRect,
       
   498 	EWsGcOpDrawRect,
       
   499 	EWsGcOpDrawEllipse,		//Half Way
       
   500 
       
   501 	EWsGcOpGdiBlt2,
       
   502 	EWsGcOpGdiBlt3,
       
   503 	EWsGcOpGdiBltMasked,
       
   504 	EWsGcOpGdiWsBlt2,
       
   505 	EWsGcOpGdiWsBlt3,
       
   506 	EWsGcOpGdiWsBltMasked,
       
   507 	EWsGcOpSize,
       
   508 	EWsGcOpUseFont,
       
   509 	//Two unused codes deleted
       
   510 	EWsGcOpDiscardFont=EWsGcOpUseFont+3,
       
   511 	EWsGcOpSetUnderlineStyle,
       
   512 	EWsGcOpSetStrikethroughStyle,
       
   513 	EWsGcOpSetDrawMode,
       
   514 	EWsGcOpTestInvariant,
       
   515 	EWsGcOpClearRect,
       
   516 	EWsGcOpClear,
       
   517 	EWsGcOpReset,
       
   518 	EWsGcOpSetDitherOrigin,
       
   519 	EWsGcOpMapColors,
       
   520 	EWsGcOpDrawWsGraphic, //PREQ1246 Bravo
       
   521 	EWsGcOpDrawWsGraphicPtr,
       
   522 //
       
   523 // Local opcodes used internally access GC drawing code
       
   524 //
       
   525 	EWsGcOpDrawPolyLineLocal,
       
   526 	EWsGcOpDrawPolyLineLocalBufLen,
       
   527 	EWsGcOpDrawPolygonLocal,
       
   528 	EWsGcOpDrawPolygonLocalBufLen,
       
   529 	EWsGcOpDrawTextLocal,
       
   530 	EWsGcOpDrawTextInContextLocal,
       
   531 	EWsGcOpDrawBoxTextLocal,
       
   532 	EWsGcOpDrawBoxTextInContextLocal,
       
   533 	EWsGcOpDrawBitmapLocal,
       
   534 	EWsGcOpDrawBitmap2Local,
       
   535 	EWsGcOpDrawBitmap3Local,
       
   536 	EWsGcOpDrawBitmapMaskedLocal,
       
   537 	EWsGcOpGdiBlt2Local,
       
   538 	EWsGcOpGdiBlt3Local,
       
   539 	EWsGcOpGdiBltMaskedLocal,
       
   540 
       
   541 //
       
   542 // Local opcodes used when reading long strings
       
   543 //
       
   544 	EWsGcOpDrawTextPtr1,
       
   545 	EWsGcOpDrawTextInContextPtr1,
       
   546 	EWsGcOpDrawTextVerticalPtr1,
       
   547 	EWsGcOpDrawTextInContextVerticalPtr1,
       
   548 	EWsGcOpDrawBoxTextPtr1,
       
   549 	EWsGcOpDrawBoxTextInContextPtr1,
       
   550 	EWsGcOpDrawBoxTextVerticalPtr1,
       
   551 	EWsGcOpDrawBoxTextInContextVerticalPtr1,
       
   552 			
       
   553 //
       
   554 // New functions added leaving a space just in case it may be useful
       
   555 //
       
   556 	EWsGcOpSetFaded=200,
       
   557 	EWsGcOpSetFadeParams,
       
   558 	EWsGcOpGdiAlphaBlendBitmaps,
       
   559 	EWsGcOpGdiWsAlphaBlendBitmaps,
       
   560 	EWsGcOpSetOpaque,
       
   561 	EWsGcOpMapColorsLocal,	
       
   562 	EWsGcOpAlphaBlendBitmapsLocal,
       
   563 	EWsGcOpSetShadowColor,
       
   564 	EWsGcOpSetDrawTextInContext,
       
   565 	EWsGcOpDrawResourceToPos,
       
   566 	EWsGcOpDrawResourceToRect,
       
   567 	EWsGcOpDrawResourceFromRectToRect,
       
   568 	EWsGcOpDrawResourceWithData,
       
   569 //
       
   570 // Codes for internal use only
       
   571 //
       
   572 	EWsStoreAllGcAttributes=1000,
       
   573 	EWsStoreClippingRegion,
       
   574 	EWsGcOpFlagDrawOp=0x8000,
       
   575 	};
       
   576 
       
   577 enum TWsAnimDllOpcode
       
   578 	{
       
   579 	EWsAnimDllOpCreateInstance=0x0000,
       
   580 	EWsAnimDllOpCommand,
       
   581 	EWsAnimDllOpCommandReply,
       
   582 	EWsAnimDllOpDestroyInstance,
       
   583 	EWsAnimDllOpFree,
       
   584 	EWsAnimDllOpCreateInstanceSprite,
       
   585 	};
       
   586 
       
   587 enum TWsScreenDeviceOpcodes
       
   588 	{
       
   589 	EWsSdSetableBitFlag=0x80000000,
       
   590 	EWsSdOpGetScanLine=0x0000,
       
   591 	EWsSdOpPixel,
       
   592 	EWsSdOpTwipsSize,
       
   593 	EWsSdOpPixelSize,
       
   594 	EWsSdOpFree,
       
   595 	EWsSdOpHorizontalTwipsToPixels,
       
   596 	EWsSdOpVerticalTwipsToPixels,
       
   597 	EWsSdOpHorizontalPixelsToTwips,
       
   598 	EWsSdOpVerticalPixelsToTwips,
       
   599 	EWsSdOpDisplayMode,
       
   600 	EWsSdOpRectCompare,
       
   601 	EWsSdOpPointerRect,
       
   602 	EWsSdOpCopyScreenToBitmap,
       
   603 	EWsSdOpCopyScreenToBitmap2,
       
   604 	EWsSdOpSetScreenSizeAndRotation,
       
   605 	EWsSdOpSetScreenSizeAndRotation2,
       
   606 	EWsSdOpGetDefaultScreenSizeAndRotation,
       
   607 	EWsSdOpGetDefaultScreenSizeAndRotation2,
       
   608 	EWsSdOpGetNumScreenModes,
       
   609 	EWsSdOpSetScreenMode,
       
   610 	EWsSdOpGetScreenModeSizeAndRotation,
       
   611 	EWsSdOpGetScreenModeSizeAndRotation2,
       
   612 	EWsSdOpSetScreenModeEnforcement,
       
   613 	EWsSdOpScreenModeEnforcement,
       
   614 	EWsSdOpSetModeRotation,
       
   615 	EWsSdOpGetRotationList,
       
   616 	EWsSdOpPaletteAttributes,
       
   617 	EWsSdOpSetPalette,
       
   618 	EWsSdOpGetPalette,
       
   619 	EWsSdOpGetScreenMode,
       
   620 	EWsSdOpGetDefaultScreenModeOrigin,
       
   621 	EWsSdOpGetScreenModeOrigin,
       
   622 	EWsSdOpGetScreenModeScale,
       
   623 	EWsSdOpGetCurrentScreenModeScale,
       
   624 	EWsSdOpSetAppScreenMode,
       
   625 	EWsSdOpGetScreenModeScaledOrigin,
       
   626 	EWsSdOpGetCurrentScreenModeScaledOrigin,
       
   627 	EWsSdOpSetCurrentScreenModeAttributes,
       
   628 	EWsSdOpGetCurrentScreenModeAttributes,
       
   629 	EWsSdOpGetScreenNumber,
       
   630 	EWsSdOpGetScreenSizeModeList,
       
   631 	EWsSdOpGetScreenModeDisplayMode,
       
   632 	EWsClOpSetBackLight,
       
   633 	EWsSdOpExtensionsSupported,
       
   634 	EWsSdOpXDcGetNumberOfResolutions,
       
   635 	EWsSdOpXDcGetResolutionsList,
       
   636 	EWsSdOpXDcGetConfiguration,
       
   637 	EWsSdOpXDcSetConfiguration,
       
   638 	EWsSdOpXDcGetPreferredDisplayVersion,
       
   639 	EWsSdOpXDcNotifyOnDisplayChange,
       
   640 	EWsSdOpXDcNotifyOnDisplayChangeCancel,
       
   641 	EWsSdOpXDcDisplayChangeEventEnabled,
       
   642 	EWsSdOpXDmMapExtent,
       
   643 	EWsSdOpXTestScreenCapture,
       
   644 	EWsSdOpIsScreenModeDynamic,
       
   645 	EWsSdOpXTestScreenCaptureSize,
       
   646 	};
       
   647 
       
   648 /**	Bitfield of interface extensions explicitly supported.
       
   649  * 	The client interface is welcome to group functionality in  different ways, if desired.
       
   650  * 	Operations classified as inside extensions can be called and fail safely on an individual basis.
       
   651  * 	Note that to distinguish versions, new bits may need to be used.
       
   652  *  The top bit is reserved so that error value returns can be distinguished. 
       
   653  **/    
       
   654 enum TWsInterfaceExtensions
       
   655 	{
       
   656 	TWsSdXDisplayControl	=	0x00000001,
       
   657 	TWsSdXDisplayMapping	=	0x00000002,
       
   658 	TWsSdXDebugComposition	=	0x00000004,
       
   659 	
       
   660 	
       
   661 	TWsSdXReservedErrorFlag	=	0x80000000
       
   662 	};
       
   663 
       
   664 enum TWsSpriteOpcodes
       
   665 	{
       
   666 	EWsSpriteOpFree=0x0000,
       
   667 	EWsSpriteOpSetPosition,
       
   668 	EWsSpriteOpUpdateMember,
       
   669 	EWsSpriteOpUpdateMember2,
       
   670 	EWsSpriteOpActivate,
       
   671 	EWsSpriteOpAppendMember,
       
   672 	};
       
   673 
       
   674 enum TWsBitmapOpcodes
       
   675 	{
       
   676 	EWsBitmapOpFree=0x0000,
       
   677 	};
       
   678 
       
   679 enum TWsDirectOpcodes
       
   680 	{
       
   681 	EWsDirectOpFree=0x0000,
       
   682 	EWsDirectOpRequest,
       
   683 	EWsDirectOpInitFailed,
       
   684 	EWsDirectOpGetRegion,
       
   685 	EWsDirectOpCancel,
       
   686 	EWsDirectOpGetSendQueue,
       
   687 	EWsDirectOpGetRecQueue,
       
   688 	};
       
   689 
       
   690 enum TWsClickOpcodes
       
   691 	{
       
   692 	EWsClickOpFree=0x0000,
       
   693 	EWsClickOpIsLoaded,
       
   694 	EWsClickOpUnLoad,
       
   695 	EWsClickOpLoad,
       
   696 	EWsClickOpCommandReply,
       
   697 	EWsClickOpSetKeyClick,
       
   698 	EWsClickOpSetPenClick,
       
   699 	EWsClickOpKeyClickEnabled,
       
   700 	EWsClickOpPenClickEnabled,
       
   701 	};
       
   702 	
       
   703 enum TWsGraphicBitFlags
       
   704 	{
       
   705 	EWsGraphicIdUid			= 0x01,
       
   706 	EWsGraphicIdTransient	= 0x02,
       
   707 	EWsGraphicReplace		= 0x04
       
   708 	};
       
   709 
       
   710 enum TWsDrawableSourceOpcodes
       
   711 	{
       
   712 	EWsDrawableSourceOpFree=0x0000,
       
   713 	};
       
   714 
       
   715 //
       
   716 // Command structures
       
   717 //
       
   718 
       
   719 /** Structure used to pass commands between the client and the server.
       
   720 
       
   721 @internalComponent
       
   722 @released
       
   723 @see RWsBuffer::DoWrite()
       
   724 @see CWsClient::DoCommandBufL()
       
   725 */
       
   726 struct TWsCmdHeaderBase
       
   727 	{
       
   728 	TUint16 iOpcode;
       
   729 	TInt16 iCmdLength;
       
   730 	};
       
   731 
       
   732 /** Structure used to pass commands between the client and the server.
       
   733 
       
   734 @internalComponent
       
   735 @released
       
   736 @see RWsBuffer::DoWrite()
       
   737 @see CWsClient::DoCommandBufL()
       
   738 */
       
   739 struct TWsCmdHeader
       
   740 	{
       
   741 	TWsCmdHeaderBase iBase;
       
   742 	TInt32 iDestHandle;
       
   743 	};
       
   744 
       
   745 //
       
   746 // Command structures
       
   747 //
       
   748 
       
   749 // Client command structures
       
   750 
       
   751 enum TWinTypes
       
   752 	{
       
   753 	EWinRedraw,
       
   754 	EWinBackedUp,
       
   755 	EWinBlank,
       
   756 	};
       
   757 
       
   758 struct TWsClCmdCreateWindow
       
   759 	{
       
   760 	TInt parent;
       
   761 	TUint32 clientHandle;
       
   762 	TWinTypes type;
       
   763 	TDisplayMode displayMode;	// Only used for backed up windows
       
   764 	};
       
   765 struct TWsClCmdCreateWindowGroup
       
   766 	{
       
   767 	TUint32 clientHandle;
       
   768 	TBool focus;
       
   769 	TInt parentId;
       
   770 	TInt32 screenDeviceHandle;
       
   771 	};
       
   772 struct TWsClCmdLoadAnimDll
       
   773 	{
       
   774 	TInt length;
       
   775 	};
       
   776 struct TWsClCmdCreatePointerCursor
       
   777 	{
       
   778 	TUint flags;
       
   779 	};
       
   780 struct TWsClCmdCustomTextCursorData
       
   781 	{
       
   782 	TInt identifier;
       
   783 	TUint flags;
       
   784 	RWsSession::TCustomTextCursorAlignment alignment;
       
   785 	};
       
   786 struct TWsClCmdCreateSprite
       
   787 	{
       
   788 	inline TWsClCmdCreateSprite(TInt aWindow, const TPoint &aPos, TUint aFlags);
       
   789 	TInt window;
       
   790 	TPoint pos;
       
   791 	TUint flags;
       
   792 	};
       
   793 struct TWsClCmdCreateBitmap
       
   794 	{
       
   795 	TInt handle;
       
   796 	};
       
   797 struct TWsClCmdSetHotKey
       
   798 	{
       
   799 	TUint type;
       
   800 	TUint modifiers;
       
   801 	TUint modifierMask;
       
   802 	TUint16 keycode;
       
   803 	TUint16 filler;
       
   804 	};
       
   805 struct TWsClCmdWindowGroupList
       
   806 	{
       
   807 	TInt priority;
       
   808 	TInt count;
       
   809 	TInt screenNumber;
       
   810 	};
       
   811 struct TWsClCmdSetWindowGroupOrdinalPosition
       
   812 	{
       
   813 	inline TWsClCmdSetWindowGroupOrdinalPosition(TInt aIdentifier, TInt aPosition);
       
   814 	TInt identifier;
       
   815 	TInt position;
       
   816 	};
       
   817 struct TWsClCmdSetKeyboardRepeatRate
       
   818 	{
       
   819 	inline TWsClCmdSetKeyboardRepeatRate(const TTimeIntervalMicroSeconds32 &aInitial,const TTimeIntervalMicroSeconds32 &aTime);
       
   820 	TTimeIntervalMicroSeconds32 initial;
       
   821 	TTimeIntervalMicroSeconds32 time;
       
   822 	};
       
   823 struct TWsClCmdSetDoubleClick
       
   824 	{
       
   825 	inline TWsClCmdSetDoubleClick(const TTimeIntervalMicroSeconds32 &aInterval,TInt aDistance);
       
   826 	TTimeIntervalMicroSeconds32 interval;
       
   827 	TInt distance;
       
   828 	};
       
   829 struct TWsClCmdSetSystemPointerCursor
       
   830 	{
       
   831 	TInt handle;
       
   832 	TInt number;
       
   833 	};
       
   834 struct TWsClCmdHeapSetFail
       
   835 	{
       
   836 	RHeap::TAllocFail type;
       
   837 	TInt value;
       
   838 	TInt burst;
       
   839 	};
       
   840 struct TWsClCmdSendEventToWindowGroup
       
   841 	{
       
   842 	inline TWsClCmdSendEventToWindowGroup(TInt aParameter, const TWsEvent &aEvent);
       
   843 	TInt parameter;
       
   844 	TWsEvent event;
       
   845 	};
       
   846 struct TWsClCmdFindWindowGroupIdentifier
       
   847 	{
       
   848 	inline TWsClCmdFindWindowGroupIdentifier(TInt aPreviousIdentifier,TInt aOffset, TInt aLength);
       
   849 	TInt identifier;
       
   850 	TInt offset;
       
   851 	TInt length;
       
   852 	};
       
   853 struct TWsClCmdSendMessageToWindowGroup
       
   854 	{
       
   855 	inline TWsClCmdSendMessageToWindowGroup(TInt aIdentifier, TUid aUid, TInt aDataLength, const TDesC8 *aPtr);
       
   856 	TInt identifierOrPriority; // identifier in case of EWsClOpSendMessageToWindowGroup, not used in case of EWsClOpSendMessageToAllWindowGroup, priority in case of EWsClOpSendMessageToAllWindowGroupPriority
       
   857 	TUid uid;
       
   858 	TInt dataLength;
       
   859 	const TDesC8 *ptr;
       
   860 	};
       
   861 struct TWsClCmdFetchMessage
       
   862 	{
       
   863 	inline TWsClCmdFetchMessage(TInt aWindowGroupIdentifier);
       
   864 	TInt windowGroupIdentifier;
       
   865 	};
       
   866 struct TWsClCmdFindWindowGroupIdentifierThread
       
   867 	{
       
   868 	inline TWsClCmdFindWindowGroupIdentifierThread(TInt aPreviousIdentifier,TThreadId aThreadId);
       
   869 	TInt identifier;
       
   870 	TThreadId threadId;
       
   871 	};
       
   872 struct TWsClCmdGetWindowGroupNameFromIdentifier
       
   873 	{
       
   874 	inline TWsClCmdGetWindowGroupNameFromIdentifier(TInt aIdentifier,TInt aMaxLength);
       
   875 	TInt identifier;
       
   876 	TInt maxLength;
       
   877 	};
       
   878 struct TWsClCmdOffEventsToShell
       
   879 	{
       
   880 	inline TWsClCmdOffEventsToShell(TBool aOn,TUint32 aWindow);
       
   881 	TBool on;
       
   882 	TUint32 window;
       
   883 	};
       
   884 struct TWsClCmdSetModifierState
       
   885 	{
       
   886 	TEventModifier modifier;
       
   887 	TModifierState state;
       
   888 	};
       
   889 struct TWsClCmdSetPointerCursorArea
       
   890 	{
       
   891 	inline TWsClCmdSetPointerCursorArea(TInt aMode,TRect aArea);
       
   892 	TInt mode;
       
   893 	TRect area;
       
   894 	};
       
   895 struct TWsClCmdSetSystemFaded
       
   896 	{
       
   897 	enum {EFaded=0x01,EUseDefaultMap=0x02};
       
   898 	inline TWsClCmdSetSystemFaded(TBool aFaded,TBool aUseDefaults=ETrue,TUint8 aBlackMap=0,TUint8 aWhiteMap=0);
       
   899 	inline TBool Faded() const;
       
   900 	inline TBool UseDefaultMap() const;
       
   901 	inline void GetFadingParams(TUint8& aBlackMap,TUint8& aWhiteMap) const;
       
   902 	TUint params;
       
   903 	};
       
   904 struct TWsClCmdCreateGraphic
       
   905 	{
       
   906 	TUint iFlags; // TWsGraphicBitFlags
       
   907 	TInt iClientHandle;
       
   908 	TInt iId;
       
   909 	TUid iType;
       
   910 	TInt iDataLen;
       
   911 	TBool iRemoteReadData;
       
   912 	};
       
   913 struct TWsClCmdGdSendMessage
       
   914 	{
       
   915 	TInt iDataLen;
       
   916 	TBool iRemoteReadData;
       
   917 	};
       
   918 struct TWsClCmdGdGetId
       
   919 	{
       
   920 	TInt iId;
       
   921 	TBool iIsUid;
       
   922 	};
       
   923 struct TWsClCmdDebugInfo
       
   924 	{
       
   925 	inline TWsClCmdDebugInfo(TInt aFunction, TInt aParam);
       
   926 	TInt iFunction;
       
   927 	TInt iParam;
       
   928 	};
       
   929 struct TWsClCmdCreateDrawableSource;
       
   930 struct TWsClCmdSurfaceRegister;
       
   931 #if defined(SYMBIAN_GRAPHICS_GCE)
       
   932 struct TWsClCmdCreateDrawableSource
       
   933 	{
       
   934 	inline TWsClCmdCreateDrawableSource(const TSgDrawableId& aDrawableId, TInt aScreenNumber);
       
   935 	TSgDrawableId iDrawableId;
       
   936 	TInt iScreenNumber;
       
   937 	};
       
   938 struct TWsClCmdSurfaceRegister
       
   939 	{
       
   940 	inline TWsClCmdSurfaceRegister(TInt aScreenNumber, const TSurfaceId& aSurface);
       
   941 	TInt screenNumber;
       
   942 	TSurfaceId surfaceId;
       
   943 	};
       
   944 #endif
       
   945 struct TWsClCmdNumWindowGroups
       
   946 	{
       
   947 	TInt screenNumber;
       
   948 	TInt priority;	
       
   949 	};
       
   950 struct TWsClCmdCreateScreenDevice
       
   951 	{
       
   952 	TInt screenNumber;	
       
   953 	TUint clientScreenDevicePointer;
       
   954 	};
       
   955 struct TWsClCmdZThresholdPair
       
   956 	{
       
   957 	inline TWsClCmdZThresholdPair(const TInt aEnterThreshold, const TInt aExitThreshold);
       
   958 	TInt enterThreshold;
       
   959 	TInt exitThreshold;
       
   960 	};
       
   961 typedef TRequestStatus *RqStatPtr;
       
   962 union TWsClCmdUnion
       
   963 	{
       
   964 	const TAny *any;
       
   965 	const TAny **pAny;
       
   966 	const TInt *Int;
       
   967 	const TUint *UInt;
       
   968 	const TBool *Bool;
       
   969 	const TUid *Uid;
       
   970 	const TPointerCursorMode *Mode;
       
   971 	const TXYInputType *XyInput;
       
   972 	const TPoint *Point;
       
   973 	const TRgb *rgb;
       
   974 	const RqStatPtr *RequestStatus;
       
   975 	const TRawEvent *RawEvent;
       
   976 	const TKeyEvent *KeyEvent;
       
   977 	const RWsSession::TComputeMode *ComputeMode;
       
   978 	const RWsSession::TLoggingCommand *LogCommand;
       
   979 	const TWsClCmdCreateWindow *CreateWindow;
       
   980 	const TWsClCmdCreateWindowGroup *CreateWindowGroup;
       
   981 	const TWsClCmdLoadAnimDll *LoadAnimDll;
       
   982 	const TWsClCmdCreatePointerCursor *CreatePointerCursor;
       
   983 	const TWsClCmdCustomTextCursorData *CustomTextCursorData;
       
   984 	const TWsClCmdCreateSprite *CreateSprite;
       
   985 	const TWsClCmdCreateBitmap *CreateBitmap;
       
   986 	const TWsClCmdSetHotKey *SetHotKey;
       
   987 	const TWsClCmdWindowGroupList *WindowGroupList;
       
   988 	const TWsClCmdSetWindowGroupOrdinalPosition *SetWindowGroupOrdinalPosition;
       
   989 	const TWsClCmdSetKeyboardRepeatRate *SetKeyboardRepeatRate;
       
   990 	const TWsClCmdHeapSetFail *HeapSetFail; 
       
   991 	const TWsClCmdSetDoubleClick *SetDoubleClick;
       
   992 	const TWsClCmdSetSystemPointerCursor *SetSystemPointerCursor;
       
   993 	const TWsClCmdSendEventToWindowGroup *SendEventToWindowGroup;
       
   994 	const TWsClCmdSendMessageToWindowGroup *SendMessageToWindowGroup;
       
   995 	const TWsClCmdFetchMessage* FetchMessage;
       
   996 	const TWsClCmdFindWindowGroupIdentifier *FindWindowGroupIdentifier;
       
   997 	const TWsClCmdFindWindowGroupIdentifierThread *FindWindowGroupIdentifierThread;
       
   998 	const TWsClCmdGetWindowGroupNameFromIdentifier *GetWindowGroupNameFromIdentifier;
       
   999 	const TWsClCmdOffEventsToShell *OffEventsToShell;
       
  1000 	const TWsClCmdSetModifierState *SetModifierState;
       
  1001 	const TWsClCmdSetPointerCursorArea *SetPointerCursorArea;
       
  1002 	const TWsClCmdSetSystemFaded *SetSystemFaded;
       
  1003 	const TWsClCmdCreateGraphic* CreateGraphic;
       
  1004 	const TWsClCmdGdSendMessage* GraphicSendMessage;
       
  1005 	const TWsClCmdGdGetId* GetGraphicId;
       
  1006 	const TWsClCmdDebugInfo* DebugInfo;
       
  1007 	const TWsClCmdSurfaceRegister* SurfaceRegister;
       
  1008 	const TWsClCmdNumWindowGroups *NumWinGroups;
       
  1009 	const TWsClCmdCreateScreenDevice *CreateScreenDevice;
       
  1010 	const TWsClCmdZThresholdPair *ZThresholdPair;
       
  1011 	const TWsClCmdCreateDrawableSource* CreateDrawableSource;
       
  1012 	};
       
  1013 
       
  1014 // Window command structures
       
  1015 
       
  1016 struct TWsWinCmdSetExtent
       
  1017 	{
       
  1018 	inline TWsWinCmdSetExtent(const TPoint &aPos,const TSize &aSize);
       
  1019 	TPoint pos;
       
  1020 	TSize size;
       
  1021 	};
       
  1022 struct TWsWinCmdOrdinalPos
       
  1023 	{
       
  1024 	TInt pos;
       
  1025 	TInt ordinalPriority;
       
  1026 	};
       
  1027 struct TWsWinCmdScroll
       
  1028 	{
       
  1029 	inline TWsWinCmdScroll(const TRect &aClip,const TPoint &aOffset,const TRect &aRect);
       
  1030 	TRect clip;
       
  1031 	TPoint offset;
       
  1032 	TRect rect;
       
  1033 	};
       
  1034 struct TWsWinCmdCaptureKey
       
  1035 	{
       
  1036 	TUint modifiers;
       
  1037 	TUint modifierMask;
       
  1038 	TUint key;
       
  1039 	TInt priority;
       
  1040 	};
       
  1041 struct TWsWinCmdCaptureLongKey
       
  1042 	{
       
  1043 	inline TWsWinCmdCaptureLongKey();
       
  1044 	inline TWsWinCmdCaptureLongKey(TUint aModifiers,TUint aModifierMask,TUint aInputKey,TUint aOutputKey
       
  1045 																	,TTimeIntervalMicroSeconds32 aDelay,TInt aPriority,TUint aFlags);
       
  1046 	TUint modifiers;
       
  1047 	TUint modifierMask;
       
  1048 	TUint inputKey;
       
  1049 	TUint outputKey;
       
  1050 	TTimeIntervalMicroSeconds32 delay;
       
  1051 	TInt priority;
       
  1052 	TUint flags;
       
  1053 	};
       
  1054 struct TWsWinCmdPriorityKey
       
  1055 	{
       
  1056 	TUint modifiers;
       
  1057 	TUint modifierMask;
       
  1058 	TUint keycode;
       
  1059 	};
       
  1060 struct TWsWinCmdSetTextCursor
       
  1061 	{
       
  1062 	inline TWsWinCmdSetTextCursor(TUint32 aWindow, const TPoint &aPos, const TTextCursor &aCursor, const TRect &aRect);
       
  1063 	inline TWsWinCmdSetTextCursor(TUint32 aWindow, const TPoint &aPos, const TTextCursor &aCursor);
       
  1064 	TUint32 window;
       
  1065 	TPoint pos;
       
  1066 	TTextCursor cursor;
       
  1067 	TRect rect;
       
  1068 	};
       
  1069 struct TWsWinCmdPointerFilter
       
  1070 	{
       
  1071 	TUint32 mask;
       
  1072 	TUint32 flags;
       
  1073 	};
       
  1074 struct TWsWinCmdSetCornerType
       
  1075 	{
       
  1076 	TCornerType type;
       
  1077 	TInt flags;
       
  1078 	};
       
  1079 struct TWsWinCmdSetShape
       
  1080 	{
       
  1081 	TPtrC8 *ptr;
       
  1082 	TInt count;
       
  1083 	};
       
  1084 struct TWsWinCmdUpdateScreen
       
  1085 	{
       
  1086 	TPtrC8 *ptr;
       
  1087 	TInt count;
       
  1088 	};
       
  1089 struct TWsWinCmdGrabControl
       
  1090 	{
       
  1091 	enum TWsWinCmdGrabControlFlags
       
  1092 		{
       
  1093 		ENone=0,
       
  1094 		ESendUpEvent=0x2,
       
  1095 		ESendReply=0x4
       
  1096 		};
       
  1097 	inline TWsWinCmdGrabControl(const TUint aGrabControlFlags);
       
  1098 	inline TWsWinCmdGrabControl(const TUint8 aPointerNumber, const TUint aGrabControlFlags);
       
  1099 	inline TBool CheckFlags(TUint aFlags) const;
       
  1100 	inline TBool HasPointerNumber() const;
       
  1101 	
       
  1102 	// integer to ensure passed in unsigned TUint8 can't get confused with
       
  1103 	// signed negative values that are used internally.
       
  1104 	// The signed int member will be "promoted" to unsigned for the assignement in the constructor.
       
  1105 	TInt pointerNumber;
       
  1106 	TUint flags;	
       
  1107 	};
       
  1108 
       
  1109 struct TWsWinCmdCancelPointerRepeatEventRequest
       
  1110 	{
       
  1111 	enum TCancelRepeatFlags
       
  1112 		{
       
  1113 		ECancelRepeatFlagsNone=0,
       
  1114 		ECancelRepeatFlagsSendReply=0x2
       
  1115 		};	
       
  1116 	
       
  1117 	inline TWsWinCmdCancelPointerRepeatEventRequest();
       
  1118 	inline TWsWinCmdCancelPointerRepeatEventRequest(const TUint8 aPointerNumber);	
       
  1119 	inline TWsWinCmdCancelPointerRepeatEventRequest(const TUint8 aPointerNumber, const TUint aFlags);
       
  1120 	inline TBool HasPointerNumber() const;
       
  1121 	TInt pointerNumber;
       
  1122 	TUint flags;
       
  1123 	};
       
  1124 
       
  1125 struct TWsWinCmdRequestPointerRepeatEvent
       
  1126 	{
       
  1127 	enum TRepeatFlags
       
  1128 		{
       
  1129 		ERepeatFlagsNone=0,
       
  1130 		ERepeatFlagsSendReply=0x2
       
  1131 		};
       
  1132 	
       
  1133 	inline TWsWinCmdRequestPointerRepeatEvent(const TTimeIntervalMicroSeconds32 &aTime,const TRect &aRect);
       
  1134 	inline TWsWinCmdRequestPointerRepeatEvent(const TTimeIntervalMicroSeconds32 &aTime,const TRect &aRect,const TUint8 aPointerNumber, const TUint aRepeatFlags);
       
  1135 	inline TBool HasPointerNumber() const;
       
  1136 	TTimeIntervalMicroSeconds32 time;
       
  1137 	TRect rect;
       
  1138 	TInt pointerNumber;
       
  1139 	TUint repeatFlags;
       
  1140 	};
       
  1141 struct TWsWinCmdAllocPointerMoveBuffer
       
  1142 	{
       
  1143 	TInt maxNumPoints;
       
  1144 	TInt flags;
       
  1145 	};
       
  1146 struct TWsWinCmdSetName
       
  1147 	{
       
  1148 	TInt length;
       
  1149 	const TDesC *ptr;
       
  1150 	};
       
  1151 struct TWsWinCmdAddKeyRect
       
  1152 	{
       
  1153 	inline TWsWinCmdAddKeyRect(const TRect &aRect,TInt aScanCodea, TBool aActivatedByPointerSwitchOn);
       
  1154 	TRect rect;
       
  1155 	TInt scanCode;
       
  1156 	TBool activatedByPointerSwitchOn;
       
  1157 	};
       
  1158 struct TWsWinOpSetBackgroundSurfaceConfig;
       
  1159 #if defined(SYMBIAN_GRAPHICS_GCE)
       
  1160 struct TWsWinOpSetBackgroundSurfaceConfig
       
  1161 	{
       
  1162 	inline TWsWinOpSetBackgroundSurfaceConfig(const TSurfaceConfiguration& aConfiguration, TBool aTriggerRedraw);
       
  1163 	TSurfaceConfiguration surfaceConfig;
       
  1164 	TBool triggerRedraw;
       
  1165 	};
       
  1166 #endif
       
  1167 struct TWsWinCmdEnableModifierChangedEvents
       
  1168 	{
       
  1169 	inline TWsWinCmdEnableModifierChangedEvents(TUint aModifierMask, TEventControl aCircumstances);
       
  1170 	TInt modifierMask;
       
  1171 	TEventControl circumstances;
       
  1172 	};
       
  1173 struct TWsWinCmdSetFaded
       
  1174 	{
       
  1175 	enum {EFaded=0x01,EIncludeChildren=0x02,EUseDefaultMap=0x04};
       
  1176 	inline TWsWinCmdSetFaded(TBool aFaded, TBool aIncludeChildren
       
  1177 														,TBool aUseDefaults=ETrue,TUint8 aBlackMap=0,TUint8 aWhiteMap=0);
       
  1178 	inline TBool Faded() const;
       
  1179 	inline TBool IncludeChildren() const;
       
  1180 	inline TBool UseDefaultMap() const;
       
  1181 	inline void GetFadingParams(TUint8& aBlackMap,TUint8& aWhiteMap) const;
       
  1182 	TUint params;
       
  1183 	};
       
  1184 
       
  1185 union TWsWinCmdUnion
       
  1186 	{
       
  1187 	const TAny *any;
       
  1188 	const TAny **pAny;
       
  1189 	const TRect *rect;
       
  1190 	const TPoint *pos;
       
  1191 	const TSize *size;
       
  1192 	const TInt *Int;
       
  1193 	const TUint *UInt;
       
  1194 	const TBool *Bool;
       
  1195 	const TEventControl *EventControl;
       
  1196 	const TRgb *rgb;
       
  1197 	const TDisplayMode *DisplayMode;
       
  1198 	const TPasswordMode *PasswordMode;
       
  1199 	const TRawEvent *RawEvent;
       
  1200 	const TSurfaceConfiguration *SurfaceConfiguration;
       
  1201 	const TWsWinCmdSetExtent *SetEx;
       
  1202 	const TWsWinCmdOrdinalPos *OrdinalPos;
       
  1203 	const TWsWinCmdScroll *ScrollRect;
       
  1204 	const TWsWinCmdCaptureKey *CaptureKey;
       
  1205 	const TWsWinCmdCaptureLongKey *CaptureLongKey;
       
  1206 	const TWsWinCmdPriorityKey *PriorityKey;
       
  1207 	const TWsWinCmdSetTextCursor *SetTextCursor;
       
  1208 	const TWsWinCmdPointerFilter *PointerFilter;
       
  1209 	const TWsWinCmdSetCornerType *SetCornerType;
       
  1210 	const TWsWinCmdSetShape *SetShape;
       
  1211 	const TWsWinCmdUpdateScreen *UpdateScreen;
       
  1212 	const TWsWinCmdRequestPointerRepeatEvent *RequestPointerRepeatEvent;
       
  1213 	const TWsWinCmdAllocPointerMoveBuffer *AllocPointerMoveBuffer;
       
  1214 	const TWsWinCmdSetName *SetName;
       
  1215 	const TWsWinCmdAddKeyRect *AddKeyRect;
       
  1216 	const TWsWinOpSetBackgroundSurfaceConfig *SurfaceConfigurationAndTrigger;
       
  1217 	const TWsWinCmdEnableModifierChangedEvents *EnableModifierChangedEvents;
       
  1218 	const TWsWinCmdSetFaded *SetFaded;
       
  1219 	const TSurfaceId *Surface;
       
  1220 	const TWsWinCmdCancelPointerRepeatEventRequest *CancelPointerRepeatEventRequest;
       
  1221 	const TWsWinCmdGrabControl *GrabControl;
       
  1222 	};
       
  1223 
       
  1224 // GC command structures
       
  1225 
       
  1226 struct TWsGcLargeStruct
       
  1227 	{
       
  1228 	TInt int1;
       
  1229 	TInt int2;
       
  1230 	TInt int3;
       
  1231 	TInt int4;
       
  1232 	TInt int5;
       
  1233 	TInt int6;
       
  1234 	TInt int7;
       
  1235 	TInt int8;
       
  1236 	TInt int9;
       
  1237 	TBool tbool;
       
  1238 	CGraphicsContext::TTextAlign align;
       
  1239 	TAny* ptr;
       
  1240 	};
       
  1241 struct TWsGcCmdSetClippingRegion
       
  1242 	{
       
  1243 	TPtrC8 *ptr;
       
  1244 	TInt count;
       
  1245 	};
       
  1246 struct TWsGcCmdSetJustification
       
  1247 	{
       
  1248 	TInt excessWidth;
       
  1249 	TInt numGaps;
       
  1250 	};
       
  1251 struct TWsGcCmdDrawText
       
  1252 	{
       
  1253 	inline TWsGcCmdDrawText(const TPoint &aPos, TInt aLength);
       
  1254 	TPoint pos;
       
  1255 	TInt length;
       
  1256 	};
       
  1257 struct TWsGcCmdDrawTextPtr
       
  1258 	{
       
  1259 	TPoint pos;
       
  1260 	TDesC *text;
       
  1261 	};
       
  1262 
       
  1263 
       
  1264 struct TWsGcCmdDrawTextVertical
       
  1265 	{
       
  1266 	inline TWsGcCmdDrawTextVertical(const TPoint &aPos, TInt aLength, TBool aUp);
       
  1267 	TPoint pos;
       
  1268 	TInt length;
       
  1269 	TBool up;
       
  1270 	};
       
  1271 
       
  1272 struct TWsGcCmdDrawTextVerticalPtr
       
  1273 	{
       
  1274 	TPoint pos;
       
  1275 	TBool up;
       
  1276 	TDesC *text;
       
  1277 	inline TWsGcCmdDrawTextVerticalPtr(const TDesC *aDesc, const TPoint& aPos, const TBool aUp);
       
  1278 	};
       
  1279 
       
  1280 struct TWsGcCmdDrawTextLocal
       
  1281 	{
       
  1282 	inline TWsGcCmdDrawTextLocal(const TPoint &aPos,const TDesC *aDesc);
       
  1283 	TPoint pos;
       
  1284 	const TDesC *desc;
       
  1285 	};
       
  1286 
       
  1287 struct TWsGcCmdBoxTextOptimised1
       
  1288 	{
       
  1289 	inline TWsGcCmdBoxTextOptimised1(const TRect &aRect,TInt aBaselineOffset,TInt alength);
       
  1290 	TRect box;
       
  1291 	TInt baselineOffset;
       
  1292 	TInt length;
       
  1293 	};
       
  1294 struct TWsGcCmdBoxTextOptimised2
       
  1295 	{
       
  1296 	inline TWsGcCmdBoxTextOptimised2(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength);
       
  1297 	TRect box;
       
  1298 	TInt baselineOffset;
       
  1299 	CGraphicsContext::TTextAlign horiz;
       
  1300 	TInt leftMrg;
       
  1301 	TInt length;
       
  1302 	};
       
  1303 
       
  1304 struct TWsGcCmdBoxText
       
  1305 	{
       
  1306 	inline TWsGcCmdBoxText(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength,TInt aWidth);
       
  1307 	TRect box;
       
  1308 	TInt baselineOffset;
       
  1309 	CGraphicsContext::TTextAlign horiz;
       
  1310 	TInt leftMrg;
       
  1311 	TInt length;
       
  1312 	TInt width;
       
  1313 	};
       
  1314 
       
  1315 struct TWsGcCmdBoxTextPtr
       
  1316 	{
       
  1317 	TRect box;
       
  1318 	TInt baselineOffset;
       
  1319 	CGraphicsContext::TTextAlign horiz;
       
  1320 	TInt leftMrg;
       
  1321 	TInt width;
       
  1322 	TDesC *text;
       
  1323 	};
       
  1324 
       
  1325 struct TWsGcCmdBoxTextVertical
       
  1326 	{
       
  1327 	inline TWsGcCmdBoxTextVertical(const TRect& aBox);
       
  1328 	TRect box;
       
  1329 	TInt baselineOffset;
       
  1330 	TBool up;
       
  1331 	CGraphicsContext::TTextAlign vert;
       
  1332 	TInt margin;
       
  1333 	TInt length;
       
  1334 	TInt width;
       
  1335 	};
       
  1336 
       
  1337 struct TWsGcCmdBoxTextVerticalPtr
       
  1338 	{
       
  1339 	TRect box;
       
  1340 	TInt baselineOffset;
       
  1341 	TBool up;
       
  1342 	CGraphicsContext::TTextAlign vert;
       
  1343 	TInt margin;
       
  1344 	TInt width;
       
  1345 	TDesC *text;
       
  1346 	};
       
  1347 
       
  1348 struct TWsGcCmdBoxTextLocal
       
  1349 	{
       
  1350 	inline TWsGcCmdBoxTextLocal(const TRect &aBox);
       
  1351 	TRect box;
       
  1352 	TInt baselineOffset;
       
  1353 	CGraphicsContext::TTextAlign horiz;
       
  1354 	TInt leftMrg;
       
  1355 	const TDesC *desc;
       
  1356 	};
       
  1357 
       
  1358 struct TWsGcCmdDrawLine
       
  1359 	{
       
  1360 	inline TWsGcCmdDrawLine(const TPoint &aPnt1,const TPoint &aPnt2);
       
  1361 	TPoint pnt1;
       
  1362 	TPoint pnt2;
       
  1363 	};
       
  1364 struct TWsGcCmdDrawPolyLine
       
  1365 	{
       
  1366 	TInt numPoints;
       
  1367 	TInt more;
       
  1368 	TPoint last;
       
  1369 	};
       
  1370 struct TWsGcCmdDrawArcOrPie
       
  1371 	{
       
  1372 	inline TWsGcCmdDrawArcOrPie(const TRect &aRect,const TPoint &aStart,const TPoint &aEnd);
       
  1373 	TRect rect;
       
  1374 	TPoint start;
       
  1375 	TPoint end;
       
  1376 	};
       
  1377 struct TWsGcCmdDrawRoundRect
       
  1378 	{
       
  1379 	inline TWsGcCmdDrawRoundRect(const TRect &aRect,const TSize &aEllipse);
       
  1380 	TRect rect;
       
  1381 	TSize ellipse;
       
  1382 	};
       
  1383 struct TWsGcCmdDrawPolygon
       
  1384 	{
       
  1385 	TInt numPoints;
       
  1386 	CGraphicsContext::TFillRule fillRule;
       
  1387 	};
       
  1388 struct TWsGcCmdStartSegmentedDrawPolygon
       
  1389 	{
       
  1390 	TInt totalNumPoints;
       
  1391 	};
       
  1392 struct TWsGcCmdSegmentedDrawPolygonData
       
  1393 	{
       
  1394 	const TDesC8 *points;
       
  1395 	TInt index;
       
  1396 	TInt numPoints;
       
  1397 	};
       
  1398 struct TWsGcCmdDrawSegmentedPolygon
       
  1399 	{
       
  1400 	CGraphicsContext::TFillRule fillRule;
       
  1401 	};
       
  1402 struct TWsGcCmdDrawPolygonLocal
       
  1403 	{
       
  1404 	const CArrayFix<TPoint> *pointList;
       
  1405 	CGraphicsContext::TFillRule fillRule;
       
  1406 	};
       
  1407 struct TWsGcCmdDrawPolygonLocalBufLen
       
  1408 	{
       
  1409 	inline TWsGcCmdDrawPolygonLocalBufLen(const TPoint *aPointList,TInt aNumPoints, CGraphicsContext::TFillRule aFillRule);
       
  1410 	const TPoint *points;
       
  1411 	TInt length;
       
  1412 	CGraphicsContext::TFillRule fillRule;
       
  1413 	};
       
  1414 struct TWsGcCmdDrawPolyLineLocalBufLen
       
  1415 	{
       
  1416 	inline TWsGcCmdDrawPolyLineLocalBufLen(const TPoint *aPointList,TInt aNumPoints);
       
  1417 	const TPoint *points;
       
  1418 	TInt length;
       
  1419 	};
       
  1420 struct TWsGcCmdDrawBitmap
       
  1421 	{
       
  1422 	inline TWsGcCmdDrawBitmap(const TPoint &aPoint,TInt aHandle);
       
  1423 	TInt handle;
       
  1424 	TPoint pos;
       
  1425 	};
       
  1426 struct TWsGcCmdDrawBitmap2
       
  1427 	{
       
  1428 	inline TWsGcCmdDrawBitmap2(const TRect &aRect,TInt aHandle);
       
  1429 	TInt handle;
       
  1430 	TRect rect;
       
  1431 	};
       
  1432 struct TWsGcCmdDrawBitmap3
       
  1433 	{
       
  1434 	inline TWsGcCmdDrawBitmap3(const TRect &aRect,TInt aHandle,const TRect &aSrcRect);
       
  1435 	TInt handle;
       
  1436 	TRect rect;
       
  1437 	TRect srcRect;
       
  1438 	};
       
  1439 struct TWsGcCmdDrawBitmapMasked
       
  1440 	{
       
  1441 	inline TWsGcCmdDrawBitmapMasked(const TRect &aDestRect,TInt aHandle,const TRect& aSrcRect,TInt aMaskHandle,TBool aInvertMask);
       
  1442 	TInt iHandle;
       
  1443 	TInt iMaskHandle;
       
  1444 	TRect iRect;
       
  1445 	TRect iSrcRect;
       
  1446 	TBool iInvertMask;
       
  1447 	};
       
  1448 struct TWsGcCmdDrawBitmapLocal
       
  1449 	{
       
  1450 	inline TWsGcCmdDrawBitmapLocal(const TPoint &aPos,const CFbsBitmap *aBitmap);
       
  1451 	const CFbsBitmap *bitmap;
       
  1452 	TPoint pos;
       
  1453 	};
       
  1454 struct TWsGcCmdDrawBitmap2Local
       
  1455 	{
       
  1456 	inline TWsGcCmdDrawBitmap2Local(const TRect &aRect,const CFbsBitmap *aBitmap);
       
  1457 	const CFbsBitmap *bitmap;
       
  1458 	TRect rect;
       
  1459 	};
       
  1460 struct TWsGcCmdDrawBitmap3Local
       
  1461 	{
       
  1462 	inline TWsGcCmdDrawBitmap3Local(const TRect &aRect,const CFbsBitmap *aBitmap, const TRect &aSrcRect);
       
  1463 	const CFbsBitmap *bitmap;
       
  1464 	TRect rect;
       
  1465 	TRect srcRect;
       
  1466 	};
       
  1467 struct TWsGcCmdDrawBitmapMaskedLocal
       
  1468 	{
       
  1469 	inline TWsGcCmdDrawBitmapMaskedLocal(const TRect &aDestRect,const CFbsBitmap* aBitmap,const TRect& aSrcRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask);
       
  1470 	const CFbsBitmap* iBitmap;
       
  1471 	const CFbsBitmap* iMaskBitmap;
       
  1472 	TRect iRect;
       
  1473 	TRect iSrcRect;
       
  1474 	TBool iInvertMask;
       
  1475 	};
       
  1476 struct TWsGcCmdCopyRect
       
  1477 	{
       
  1478 	inline TWsGcCmdCopyRect(const TPoint &anOffset,const TRect &aRect);
       
  1479 	TRect rect;		// Must be first
       
  1480 	TPoint pos;
       
  1481 	};
       
  1482 struct TWsGcCmdGdiBlt2
       
  1483 	{
       
  1484 	inline TWsGcCmdGdiBlt2(const TPoint &aPoint, TInt aHandle);
       
  1485 	TInt handle;
       
  1486 	TPoint pos;
       
  1487 	};
       
  1488 struct TWsGcCmdGdiBlt3
       
  1489 	{
       
  1490 	inline TWsGcCmdGdiBlt3(const TPoint &aPoint, TInt aHandle, const TRect &aSrcRect);
       
  1491 	TInt handle;
       
  1492 	TPoint pos;
       
  1493 	TRect rect;
       
  1494 	};
       
  1495 struct TWsGcCmdGdiBlt2Local
       
  1496 	{
       
  1497 	inline TWsGcCmdGdiBlt2Local(const TPoint &aPoint,const CFbsBitmap *aBitmap);
       
  1498 	const CFbsBitmap *bitmap;
       
  1499 	TPoint pos;
       
  1500 	};
       
  1501 struct TWsGcCmdGdiBlt3Local
       
  1502 	{
       
  1503 	inline TWsGcCmdGdiBlt3Local(const TPoint &aDestination,const CFbsBitmap *aBitmap,const TRect &aSource);
       
  1504 	const CFbsBitmap *bitmap;
       
  1505 	TPoint pos;
       
  1506 	TRect rect;
       
  1507 	};
       
  1508 struct TWsGcCmdGdiBltMaskedLocal
       
  1509 	{
       
  1510 	inline TWsGcCmdGdiBltMaskedLocal(const TPoint& aPoint,const CFbsBitmap* aBitmap,const TRect& aSourceRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask);
       
  1511 	const CFbsBitmap *bitmap;
       
  1512 	const CFbsBitmap *maskBitmap;
       
  1513 	TBool invertMask;
       
  1514 	TPoint pos;
       
  1515 	TRect rect;
       
  1516 	};
       
  1517 struct TWsGcCmdUsePatternBrush
       
  1518     {
       
  1519     TRgb *pdata;
       
  1520     TInt width;
       
  1521     TInt height;
       
  1522     TBool color;
       
  1523 	};
       
  1524 struct TWsGcCmdBltMasked
       
  1525 	{
       
  1526 	inline TWsGcCmdBltMasked();
       
  1527 	inline TWsGcCmdBltMasked(const TPoint& aPoint,TInt aBitmap,const TRect& aSourceRect,TInt aMaskBitmap,TBool aInvertMask);
       
  1528 	TPoint destination;
       
  1529 	TInt handle;
       
  1530 	TRect source;
       
  1531 	TInt maskHandle;
       
  1532 	TBool invertMask;
       
  1533 	};
       
  1534 struct TWsGcCmdAlphaBlendBitmaps
       
  1535 	{
       
  1536 	inline TWsGcCmdAlphaBlendBitmaps();
       
  1537 	inline TWsGcCmdAlphaBlendBitmaps(const TPoint& aPoint, TInt aBitmap,const TRect& aSourceRect,TInt aAlpha,const TPoint& aAlphaPoint);
       
  1538 	TPoint point;
       
  1539 	TInt bitmapHandle;
       
  1540 	TRect source;
       
  1541 	TInt alphaHandle;
       
  1542 	TPoint alphaPoint;
       
  1543 	};
       
  1544 
       
  1545 struct TWsGcCmdAlphaBlendBitmapsLocal
       
  1546 	{
       
  1547 	inline TWsGcCmdAlphaBlendBitmapsLocal(const TPoint& aPoint, const CFbsBitmap* aBitmap, const TRect& aSourceRect, const CFbsBitmap* aAlpha, const TPoint& aAlphaPoint);
       
  1548 	TPoint point;
       
  1549 	const CFbsBitmap *iBitmap;
       
  1550 	TRect source;
       
  1551 	const CFbsBitmap *iAlpha;
       
  1552 	TPoint alphaPoint;
       
  1553 	};
       
  1554 	
       
  1555 struct TWsGcCmdMapColors
       
  1556 	{
       
  1557 	inline TWsGcCmdMapColors(const TRect &aRect, TInt aNumPairs, TBool aMapForwards);
       
  1558 	TRect rect;
       
  1559 	TInt numPairs;
       
  1560 	TBool mapForwards;
       
  1561 	};
       
  1562 	
       
  1563 struct TWsGcCmdMapColorsLocal
       
  1564 	{
       
  1565 	inline TWsGcCmdMapColorsLocal(const TRect &aRect, const TRgb* aColors, TInt aNumPairs, TBool aMapForwards);
       
  1566 	TRect rect;
       
  1567 	const TRgb *colors;
       
  1568 	TInt numPairs;
       
  1569 	TBool mapForwards;
       
  1570 	};
       
  1571 	
       
  1572 struct TWsGcCmdDrawWsGraphic
       
  1573 	{
       
  1574 	inline TWsGcCmdDrawWsGraphic(const TWsGraphicId& aId,const TRect& aRect);
       
  1575 	TUint iFlags; // TWsGraphicBitFlags
       
  1576 	TInt iId;
       
  1577 	TRect iRect;
       
  1578 	TInt iDataLen;
       
  1579 	};
       
  1580 struct TWsGcCmdDrawTextInContext
       
  1581 	{
       
  1582 	inline TWsGcCmdDrawTextInContext(const TPoint &aPos, TInt aLength, TInt aStart, TInt aEnd);
       
  1583 	TPoint pos;
       
  1584 	TInt length;
       
  1585 	TInt start;
       
  1586 	TInt end;
       
  1587 	};
       
  1588 struct TWsGcCmdDrawTextInContextPtr
       
  1589 	{
       
  1590 	TPoint pos;
       
  1591 	TDesC *text;
       
  1592 	TInt start;
       
  1593 	TInt end;
       
  1594 	};
       
  1595 struct TWsGcCmdDrawTextInContextVertical
       
  1596 	{
       
  1597 	inline TWsGcCmdDrawTextInContextVertical(const TPoint &aPos, TInt aLength, TBool aUp, TInt aStart, TInt aEnd);
       
  1598 	TPoint pos;
       
  1599 	TInt length;
       
  1600 	TBool up;
       
  1601 	TInt start;
       
  1602 	TInt end;
       
  1603 	};
       
  1604 struct TWsGcCmdDrawTextInContextVerticalPtr
       
  1605 	{
       
  1606 	TPoint pos;
       
  1607 	TBool up;
       
  1608 	TDesC *text;
       
  1609 	TInt start;
       
  1610 	TInt end;
       
  1611 	inline TWsGcCmdDrawTextInContextVerticalPtr(const TDesC *aDesc, const TPoint& aPos, const TBool aUp, const TInt aStart, const TInt aEnd);
       
  1612 	};
       
  1613 struct TWsGcCmdDrawTextInContextLocal
       
  1614 	{
       
  1615 	inline TWsGcCmdDrawTextInContextLocal(const TPoint &aPos,const TDesC *aDesc,const TInt aStart,const TInt aEnd);
       
  1616 	TPoint pos;
       
  1617 	const TDesC *desc;
       
  1618 	TInt start;
       
  1619 	TInt end;
       
  1620 	};
       
  1621 struct TWsGcCmdBoxTextInContextOptimised1
       
  1622 	{
       
  1623 	inline TWsGcCmdBoxTextInContextOptimised1(const TRect &aRect,TInt aBaselineOffset,TInt alength, TInt aStart, TInt aEnd);
       
  1624 	TRect box;
       
  1625 	TInt baselineOffset;
       
  1626 	TInt length;
       
  1627 	TInt start;
       
  1628 	TInt end;
       
  1629 	};
       
  1630 struct TWsGcCmdBoxTextInContextOptimised2
       
  1631 	{
       
  1632 	inline TWsGcCmdBoxTextInContextOptimised2(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength, TInt aStart, TInt aEnd);
       
  1633 	TRect box;
       
  1634 	TInt baselineOffset;
       
  1635 	CGraphicsContext::TTextAlign horiz;
       
  1636 	TInt leftMrg;
       
  1637 	TInt length;
       
  1638 	TInt start;
       
  1639 	TInt end;
       
  1640 	};
       
  1641 struct TWsGcCmdBoxTextInContext
       
  1642 	{
       
  1643 	inline TWsGcCmdBoxTextInContext(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength,TInt aWidth, TInt aStart, TInt aEnd);
       
  1644 	TRect box;
       
  1645 	TInt baselineOffset;
       
  1646 	CGraphicsContext::TTextAlign horiz;
       
  1647 	TInt leftMrg;
       
  1648 	TInt length;
       
  1649 	TInt width;
       
  1650 	TInt start;
       
  1651 	TInt end;
       
  1652 	};
       
  1653 struct TWsGcCmdBoxTextInContextPtr
       
  1654 	{
       
  1655 	TRect box;
       
  1656 	TInt baselineOffset;
       
  1657 	CGraphicsContext::TTextAlign horiz;
       
  1658 	TInt leftMrg;
       
  1659 	TInt width;
       
  1660 	TDesC *text;
       
  1661 	TInt start;
       
  1662 	TInt end;
       
  1663 	};
       
  1664 struct TWsGcCmdBoxTextInContextVertical
       
  1665 	{
       
  1666 	inline TWsGcCmdBoxTextInContextVertical(const TRect& aBox);
       
  1667 	TRect box;
       
  1668 	TInt baselineOffset;
       
  1669 	TBool up;
       
  1670 	CGraphicsContext::TTextAlign vert;
       
  1671 	TInt margin;
       
  1672 	TInt length;
       
  1673 	TInt width;
       
  1674 	TInt start;
       
  1675 	TInt end;
       
  1676 	};
       
  1677 struct TWsGcCmdBoxTextInContextVerticalPtr
       
  1678 	{
       
  1679 	TRect box;
       
  1680 	TInt baselineOffset;
       
  1681 	TBool up;
       
  1682 	CGraphicsContext::TTextAlign vert;
       
  1683 	TInt margin;
       
  1684 	TInt width;
       
  1685 	TInt start;
       
  1686 	TInt end;
       
  1687 	TDesC *text;
       
  1688 	};
       
  1689 struct TWsGcCmdBoxTextInContextLocal
       
  1690 	{
       
  1691 	inline TWsGcCmdBoxTextInContextLocal(const TRect &aBox,TInt aStart,TInt aEnd);
       
  1692 	TRect box;
       
  1693 	TInt baselineOffset;
       
  1694 	CGraphicsContext::TTextAlign horiz;
       
  1695 	TInt leftMrg;
       
  1696 	TInt start;
       
  1697 	TInt end;
       
  1698 	const TDesC *desc;
       
  1699 	};
       
  1700 struct TWsGcCmdDrawResourceToPos
       
  1701 	{
       
  1702 	inline TWsGcCmdDrawResourceToPos(TInt aWsHandle, const TPoint &aPos, CWindowGc::TGraphicsRotation aRotation);
       
  1703 	TInt wsHandle;
       
  1704 	TPoint pos;
       
  1705 	CWindowGc::TGraphicsRotation rotation;
       
  1706 	};
       
  1707 struct TWsGcCmdDrawResourceToRect
       
  1708 	{
       
  1709 	inline TWsGcCmdDrawResourceToRect(TInt aWsHandle, const TRect &aRect, CWindowGc::TGraphicsRotation aRotation);
       
  1710 	TInt wsHandle;
       
  1711 	TRect rect;
       
  1712 	CWindowGc::TGraphicsRotation rotation;
       
  1713 	};
       
  1714 struct TWsGcCmdDrawResourceFromRectToRect
       
  1715 	{
       
  1716 	inline TWsGcCmdDrawResourceFromRectToRect(TInt aWsHandle, const TRect &aRectDest, const TRect &aRectSrc, CWindowGc::TGraphicsRotation aRotation);
       
  1717 	TInt wsHandle;
       
  1718 	TRect rectDest;
       
  1719 	TRect rectSrc;
       
  1720 	CWindowGc::TGraphicsRotation rotation;
       
  1721 	};
       
  1722 struct TWsGcCmdDrawResourceWithData
       
  1723 	{
       
  1724 	inline TWsGcCmdDrawResourceWithData(TInt aWsHandle, const TRect &aRect, const TDesC8* aDesc);
       
  1725 	TInt wsHandle;
       
  1726 	TRect rect;
       
  1727 	const TDesC8* desc;
       
  1728 	};
       
  1729 
       
  1730 union TWsGcCmdUnion
       
  1731 	{
       
  1732 	const TAny *any;
       
  1733 	const TAny **pAny;
       
  1734 	const TRect *Rect;
       
  1735 	const TUint *UInt;
       
  1736 	const TInt *Int;
       
  1737 	const TInt *handle;
       
  1738 	const TBool *Bool;
       
  1739 	const TRgb *rgb;
       
  1740 	const TPoint *Point;
       
  1741 	const TSize *Size;
       
  1742 	const TFontUnderline *SetUnderlineStyle;
       
  1743 	const TFontStrikethrough *SetStrikethroughStyle;
       
  1744 	const TWsGcCmdDrawText *DrawText;
       
  1745 	const TWsGcCmdDrawTextInContext *DrawTextInContext;
       
  1746 	const TWsGcCmdDrawTextVertical *DrawTextVertical;
       
  1747 	const TWsGcCmdDrawTextInContextVertical *DrawTextInContextVertical;
       
  1748 	const TWsGcCmdDrawLine *DrawLine;
       
  1749 	const TWsGcCmdDrawPolyLine *PolyLine;
       
  1750 	const TWsGcCmdStartSegmentedDrawPolygon *StartSegmentedDrawPolygon;
       
  1751 	const TWsGcCmdSegmentedDrawPolygonData *SegmentedDrawPolygonData;
       
  1752 	const TWsGcCmdDrawSegmentedPolygon *DrawSegmentedPolygon;
       
  1753 	const TWsGcCmdDrawPolygonLocal *DrawPolygonLocal;
       
  1754 	const TWsGcCmdDrawPolygonLocalBufLen *DrawPolygonLocalBufLen;
       
  1755 	const TWsGcCmdDrawPolyLineLocalBufLen *DrawPolyLineLocalBufLen;
       
  1756 	const TWsGcCmdDrawArcOrPie *ArcOrPie;
       
  1757 	const TWsGcCmdDrawRoundRect *RoundRect;
       
  1758 	const TWsGcCmdDrawPolygon *Polygon;
       
  1759 	const TWsGcCmdDrawBitmap *Bitmap;
       
  1760 	const TWsGcCmdDrawBitmap2 *Bitmap2;
       
  1761 	const TWsGcCmdDrawBitmap3 *Bitmap3;
       
  1762 	const TWsGcCmdDrawBitmapMasked* iBitmapMasked;
       
  1763 	const TWsGcCmdCopyRect *CopyRect;
       
  1764 	const TWsGcCmdGdiBlt2 *GdiBlt2;
       
  1765 	const TWsGcCmdGdiBlt3 *GdiBlt3;
       
  1766 	const TWsGcCmdUsePatternBrush *UsePatternBrush;
       
  1767 	const TWsGcCmdBltMasked *GdiBltMasked;
       
  1768 	const TWsGcCmdSetClippingRegion *SetClippingRegion;
       
  1769 	const TWsGcCmdBoxText *BoxText;
       
  1770 	const TWsGcCmdBoxTextInContext *BoxTextInContext;
       
  1771 	const TWsGcCmdBoxTextOptimised1 *BoxTextO1;
       
  1772 	const TWsGcCmdBoxTextOptimised2 *BoxTextO2;
       
  1773 	const TWsGcCmdBoxTextInContextOptimised1 *BoxTextInContextO1;
       
  1774 	const TWsGcCmdBoxTextInContextOptimised2 *BoxTextInContextO2;
       
  1775 	const TWsGcCmdDrawTextLocal *DrawTextLocal;
       
  1776 	const TWsGcCmdDrawTextInContextLocal *DrawTextInContextLocal;
       
  1777 	const TWsGcCmdBoxTextVertical *DrawBoxTextVertical;
       
  1778 	const TWsGcCmdBoxTextInContextVertical *DrawBoxTextInContextVertical;
       
  1779 	const TWsGcCmdBoxTextLocal *BoxTextLocal;
       
  1780 	const TWsGcCmdBoxTextInContextLocal *BoxTextInContextLocal;
       
  1781 	const TWsGcCmdGdiBlt2Local *GdiBlt2Local;
       
  1782 	const TWsGcCmdGdiBlt3Local *GdiBlt3Local;
       
  1783 	const TWsGcCmdGdiBltMaskedLocal *GdiBltMaskedLocal;
       
  1784 	const TWsGcCmdDrawBitmapLocal *BitmapLocal;
       
  1785 	const TWsGcCmdDrawBitmap2Local *Bitmap2Local;
       
  1786 	const TWsGcCmdDrawBitmap3Local *Bitmap3Local;
       
  1787 	const TWsGcCmdDrawBitmapMaskedLocal* iBitmapMaskedLocal;
       
  1788 	const CArrayFix<TPoint> *PointList;
       
  1789 	const TWsGcCmdSetJustification *SetJustification;
       
  1790 	const TWsGcCmdMapColors *MapColors;
       
  1791 	TWsGcCmdDrawTextPtr *DrawTextPtr;
       
  1792 	TWsGcCmdDrawTextVerticalPtr *DrawTextVerticalPtr;
       
  1793 	TWsGcCmdDrawTextInContextVerticalPtr *DrawTextInContextVerticalPtr;
       
  1794 	TWsGcCmdBoxTextPtr *DrawBoxTextPtr;
       
  1795 	TWsGcCmdBoxTextInContextPtr *DrawBoxTextInContextPtr;
       
  1796 	TWsGcCmdBoxTextVerticalPtr *DrawBoxTextVerticalPtr;
       
  1797 	TWsGcCmdBoxTextInContextVerticalPtr *DrawBoxTextInContextVerticalPtr;
       
  1798 	TWsGcCmdDrawTextInContextPtr *DrawTextInContextPtr;
       
  1799 	const TWsGcLargeStruct *LargeStruct;
       
  1800 	const TWsGcCmdAlphaBlendBitmaps *AlphaBlendBitmaps;
       
  1801 	const TWsGcCmdAlphaBlendBitmapsLocal *AlphaBlendBitmapsLocal;
       
  1802 	const TWsGcCmdMapColorsLocal *MapColorsLocal;
       
  1803 	const TWsGcCmdDrawWsGraphic* WsGraphic;
       
  1804 	const TWsGcCmdDrawResourceToPos* DrawWsResourceToPos;
       
  1805 	const TWsGcCmdDrawResourceToRect* DrawWsResourceToRect;
       
  1806 	const TWsGcCmdDrawResourceFromRectToRect* DrawWsResourceFromRectToRect;
       
  1807 	const TWsGcCmdDrawResourceWithData* DrawWsResourceWithData;
       
  1808 	};
       
  1809 
       
  1810 struct TWsSdCmdSetScreenRotation
       
  1811 	{
       
  1812 	inline TWsSdCmdSetScreenRotation(TInt aMode, CFbsBitGc::TGraphicsOrientation aRotation);
       
  1813 	TInt mode;
       
  1814 	CFbsBitGc::TGraphicsOrientation rotation;
       
  1815 	};
       
  1816 struct TWsSdCmdGetScanLine
       
  1817 	{
       
  1818 	inline TWsSdCmdGetScanLine(const TPoint &aPos, TInt aLen, TDisplayMode aDispMode);
       
  1819 	TPoint pos;
       
  1820 	TInt len;
       
  1821 	TDisplayMode dispMode;
       
  1822 	};
       
  1823 struct TWsSdCmdRectCompare
       
  1824 	{
       
  1825 	inline TWsSdCmdRectCompare(const TRect &aRect1,const TRect &aRect2,TUint aFlags);
       
  1826 	TRect rect1;
       
  1827 	TRect rect2;
       
  1828 	TUint flags;
       
  1829 	};
       
  1830 struct TWsSdCmdCopyScreenToBitmap
       
  1831 	{
       
  1832 	inline TWsSdCmdCopyScreenToBitmap(TInt aHandle);
       
  1833 	TInt handle;
       
  1834 	};
       
  1835 struct TWsSdCmdCopyScreenToBitmap2
       
  1836 	{
       
  1837 	inline TWsSdCmdCopyScreenToBitmap2(const TRect &aRect, TInt aHandle);
       
  1838 	TRect rect;
       
  1839 	TInt handle;
       
  1840 	};
       
  1841 struct TWsSdCmdSetPalette
       
  1842 	{
       
  1843 	inline TWsSdCmdSetPalette(TPtr8& aPtr);
       
  1844 	TPtr8* ptr;
       
  1845 	TInt length;
       
  1846 	};
       
  1847 struct TWsSdCmdMapCoordinates
       
  1848 	{
       
  1849 	inline TWsSdCmdMapCoordinates(const TRect &aSource, TCoordinateSpace aSourceSpace, TCoordinateSpace aTargetSpace);
       
  1850 	TRect sourceRect;
       
  1851 	TCoordinateSpace sourceSpace;
       
  1852 	TCoordinateSpace targetSpace;
       
  1853 	};
       
  1854 union TWsSdCmdUnion
       
  1855 	{
       
  1856 	const TAny *any;
       
  1857 	const TAny **pAny;
       
  1858 	const TUint *UInt;
       
  1859 	const TInt *Int;
       
  1860 	const TPoint *Point;
       
  1861 	const TPixelsTwipsAndRotation *PixelsTwipsAndRotation;
       
  1862 	const TPixelsAndRotation *PixelsAndRotation;
       
  1863 	const TWsSdCmdSetScreenRotation *SetScreenRotation;
       
  1864 	const TWsSdCmdGetScanLine *GetScanLine;
       
  1865 	const TWsSdCmdRectCompare *RectCompare;
       
  1866 	const TWsSdCmdCopyScreenToBitmap *CopyScreenToBitmap;
       
  1867 	const TWsSdCmdCopyScreenToBitmap2 *CopyScreenToBitmap2;
       
  1868 	const TWsSdCmdSetPalette *SetPalette;
       
  1869 	const TSizeMode *ScreenSizeMode;
       
  1870 	const TDisplayConfiguration *DisplayConfiguration;
       
  1871 	const TWsSdCmdMapCoordinates *MapCoordinates;
       
  1872 	};
       
  1873 
       
  1874 union TWsAnimDllCmdUnion 
       
  1875 	{
       
  1876 	const TAny *any;
       
  1877 	const TUint *UInt;
       
  1878 	};
       
  1879 
       
  1880 struct TWsSpriteCmdUpdateMember
       
  1881 	{
       
  1882 	inline TWsSpriteCmdUpdateMember(TInt aIndex,const TSpriteMember &aData);
       
  1883 	TInt index;
       
  1884 	TCmdSpriteMember data;
       
  1885 	};
       
  1886 union TWsSpriteCmdUnion
       
  1887 	{
       
  1888 	const TAny *any;
       
  1889 	const TPoint *Point;
       
  1890 	const TCmdSpriteMember *SpriteMember;
       
  1891 	const TWsSpriteCmdUpdateMember *UpdateMember;
       
  1892 	};
       
  1893 
       
  1894 struct TWsDirectCmdRequestReply
       
  1895 	{
       
  1896 	inline TWsDirectCmdRequestReply();
       
  1897 	inline TWsDirectCmdRequestReply(TThreadId aId,TRequestStatus* aRequest);
       
  1898 	TThreadId id;
       
  1899 	TRequestStatus* request;
       
  1900 	};
       
  1901 union TWsDirectCmdUnion
       
  1902 	{
       
  1903 	const TAny *any;
       
  1904 	const TInt *Int;
       
  1905 	};
       
  1906 
       
  1907 union TWsClickCmdUnion
       
  1908 	{
       
  1909 	const TAny *any;
       
  1910 	const TInt *Int;
       
  1911 	const TBool *Bool;
       
  1912 	};
       
  1913 
       
  1914 // Client side Panics and asserts
       
  1915 
       
  1916 enum TW32Assert	// used for w32 code errors
       
  1917 	{
       
  1918 	EW32AssertOddLengthData,
       
  1919 	EW32AssertNotImplemented,
       
  1920 	EW32AssertIllegalOpcode,
       
  1921 	EW32AssertDirectMisuse,
       
  1922 	EW32AssertBufferLogic,
       
  1923 	EW32AssertUnexpectedOutOfRangePointerNumber, // Used for an out-of-range pointer number error within the old API's which doesn't take a pointer number.
       
  1924 	EW32AssertWindowSizeCacheFailure,
       
  1925 	};
       
  1926 
       
  1927 enum TW32Panic // used for application errors
       
  1928 	{
       
  1929 	EW32PanicReConnect,		//An attempt was made to reconnect to the window server using RWsSession::Connect() without having closed the existing one first
       
  1930 	EW32PanicWindowAlreadyClosed,		//Not used
       
  1931 	EW32PanicGcAlreadyClosed,		//Not used
       
  1932 	EW32PanicPaletteAlreadyClosed,		//Not used
       
  1933 	EW32PanicMapColorsTooManyPairs,		//Raised by CWindowGc::MapColors() when its aNumPairs argument has a value greater than 16.
       
  1934 	EW32PanicDataExceedsBufferLength,		//A single string is too long to fit into the buffer.
       
  1935 	EW32PanicNullPalette,		//CWsScreenDevice::SetCustomPalette() was called with a NULL pointer.
       
  1936 	EW32PanicSilentFail,		//The caller would not know that the function was not successful
       
  1937 	EW32PanicDirectMisuse,		//A direct screen access function is being called out of turn
       
  1938 	EW32PanicInvalidRegion,        //An attempt to pass an invalid region to window server
       
  1939 	EW32PanicUsingReservedIpcSlot,		//Raised when the Client is trying to use a wrong IpcSlot. The first slot if raised by: RAnim::CommandReply or RAnimDll::Construct. Either the first or the second if raised by RAnim::AsyncCommandReply
       
  1940 	EW32PanicNullArray,        //A Function has been called with a NULL array pointer when it should not be
       
  1941 	EW32PanicGraphicAlreadyConstructed,        //Not used
       
  1942 	EW32PanicGraphicOrphaned,		//The CWsGraphic::CManager's RPointerArray<CWsGraphic> has still pointers to CWsGraphic left inside when it should be empty
       
  1943 	EW32PanicGraphicInternal,		//Raised when one of the CWsGraphic::CManager's member has an inconsistent value (i.e. NULL when it should not be and viceversa)
       
  1944 	EW32PanicGraphicBadBuffer,		//Raised if RWsGraphicMsgBuf has been passed an out of bounds index or an incorret type message
       
  1945 	EW32PanicGraphicNullData,		//Raised when trying to send an empty TWsClCmdGdSendMessage
       
  1946 	EW32PanicFunctionNotSupported,	//Operation not supported in the current OS distribution
       
  1947 	EW32PanicInvalidParameter,		// Raised when an invalid parameter is passed to a function 
       
  1948 	EW32PanicGraphicDoubleConstruction,		//Raised when Construct() is called on an already constructed client-side object
       
  1949 	EW32PanicBadClientInterface,	//Debug: Trying to use an interface that is not initialised 
       
  1950 	EW32PanicSizeNotExpected,		//Debug: Returned data does not match expected sizes or granularity
       
  1951 	};
       
  1952 
       
  1953 enum WservShutdown
       
  1954 	{EWservShutdownCheck=0x13572468};	// Parameter to EWservMessShutdown to stop accidental shutdowns
       
  1955 
       
  1956 enum WservMessages
       
  1957 	{
       
  1958 	EWservMessCommandBuffer,
       
  1959 	EWservMessShutdown,
       
  1960 	EWservMessInit,
       
  1961 	EWservMessFinish,	
       
  1962 	EWservMessSyncMsgBuf,
       
  1963 	EWservMessAsynchronousService=0x010000,
       
  1964 	EWservMessAnimDllAsyncCommand=0x100000,
       
  1965 	};
       
  1966 
       
  1967 enum WH_HANDLES
       
  1968 	{
       
  1969 	WS_HANDLE_ROOT_WINDOW,
       
  1970 	WS_HANDLE_CLIENT,
       
  1971 	WS_HANDLE_WINDOW,
       
  1972 	WS_HANDLE_GROUP_WINDOW,
       
  1973 	WS_HANDLE_GC,
       
  1974 	WS_HANDLE_CAPTURE_KEY,
       
  1975 	WS_HANDLE_ANIM_DLL,
       
  1976 	WS_HANDLE_SCREEN_DEVICE,
       
  1977 	WS_HANDLE_SPRITE,
       
  1978 	WS_HANDLE_POINTER_CURSOR,
       
  1979 	WS_HANDLE_BITMAP,
       
  1980 	WS_HANDLE_DIRECT,
       
  1981 	WS_HANDLE_CLICK,
       
  1982 	WS_HANDLE_TEXT_CURSOR,
       
  1983 	WS_HANDLE_GRAPHIC_DRAWER,
       
  1984 	WS_HANDLE_DRAWABLE_SOURCE,
       
  1985 	WS_HANDLE_CAPTURE_KEY_UPDOWNS,
       
  1986 	WS_HANDLE_CAPTURE_LONG_KEY,
       
  1987 	};
       
  1988 
       
  1989 enum TClientPanic
       
  1990 	{
       
  1991 	EWservNoPanic=0,						// Dummy Value used to indicate no panic
       
  1992 	EWservPanicOpcode=1,					// Out of range opcode
       
  1993 	EWservPanicBuffer=2,					// Invalid command buffer
       
  1994 	EWservPanicHandle=3,					// Invalid handle
       
  1995 	EWservPanicNullHandle=4,				// Null handle given as a handle value
       
  1996 	EWservPanicDrawable=5,					// Invalid drawable handle
       
  1997 	EWservPanicWindow=6,					// Invalid window handle
       
  1998 	EWservPanicBitmap=7,					// Invalid bitmap handle
       
  1999 	EWservPanicReadOutstanding=8,			// Event read already outstanding
       
  2000 	EWservPanicGcNotActive=9,				// Tried use a non-active GC
       
  2001 	EWservPanicGcActive=10,					// Tried to activate an already active GC
       
  2002 	EWservPanicWindowActive=11,				// Window already active
       
  2003 	EWservPanicRedrawActive=12,				// Already inside a begin/end redraw pair
       
  2004 	EWservPanicFont=13,						// Invalid font handle
       
  2005 	EWservPanicNoFont=14,					// Printing with no active font
       
  2006 	EWservPanicInvalidTextCursor=15,		// Tried to set invalid text cursor type
       
  2007 	EWservPanicReadOnlyDrawable=16,			// Attempted to write to a read only drawable
       
  2008 	EWservPanicInvalidRgb=17,				// Invalid RGB passed to window server
       
  2009 	EWservPanicPatternBrush=18,				// Invalid pattern brush
       
  2010 	EWservPanicNoBrush=19,					// Trying to paint without a brush
       
  2011 	EWservPanicUninitialisedBitmap=20,		// Trying to use an uninitialised bitmap
       
  2012 	EWservPanicDestroy=21,					// Trying to do a client destroy function on an illegal handle
       
  2013 	EWservPanicAnimDll=22,					// Panic from Animator DLL
       
  2014 	EWservPanicAnim=23,						// Invalid Anim object handle
       
  2015 	EWservPanicAnimLeave=24,				// Leave from a non-leaving anim function
       
  2016 	EWservPanicKeyOfDeath=25,				// Killed by the key of death!!!!
       
  2017 	EWservPanicTmpFont=26,					// Tried to reuse tmp font
       
  2018 	EWservPanicNoTmpFont=27,				// Tried to free tmp font when not allocated
       
  2019 	EWservPanicBadPolyData=28,				// Inconsistent polygon/polyline data
       
  2020 	EWservPanicNegativeShadowHeight=29,		// Tried to set a negative shadow height
       
  2021 	EWservPanicRedrawToNonRedrawWindow=30,	// Tried to redraw a non-redrawable window
       
  2022 	EWservPanicRedrawType=31,				// Init message contained invalid redraw type
       
  2023 	EWservPanicInvalidRegionCount=32,		// InvalidRegion was passed a zero count
       
  2024 	EWservPanicNoReplyBuffer=33,			// No reply buffer was passed to a function that requires one
       
  2025 	EWservPanicBackedUpWindowGcActive=34,	// Attempting to reactive a backed up window's GC
       
  2026 	EWservPanicCornerParams=35,				// Invalid corner type or flags
       
  2027 	EWservPanicBitmapAccess=36,				// Bitmap access not enabled on a backed up window
       
  2028 	EWservPanicDescriptor=37,				// Bad descriptor passed
       
  2029 	EWservPanicWindowDestroyed=38,			// Accessing a sprite after it's window has been destroyed
       
  2030 	EWservPanicUnsignalledEventData=39,		// A request for event data without a signal for that data being made
       
  2031 	EWservPanicMaskSize=40,					// The mask for a sprite is smaller then the bitmap
       
  2032 	EWservPanicSprite=41,					// bad sprite handle
       
  2033 	EWservPanicNotSystemPointerCursorListOwner=42,	 // Trying to set/clear a system pointer cursor when not owning the list
       
  2034 	EWservPanicNoPointerBuffer=43,			// Enabling the pointer buffer when there isn't one allocated
       
  2035 	EWservPanicBufferPtr=44,				// Invalid Buf,Len in the window server command buffer
       
  2036 	EWservPanicHotKey=45,					// Invalid hot key type
       
  2037 	EWservPanicPassword=46,					// Invalid call to PasswordEntered()
       
  2038 	EWservPanicSetComputeMode=47,			// Invalid value in call to SetComputeMode()
       
  2039 	EWservPanicBackupDisplayMode=48,		// Trying to set the display mode of a backed up window
       
  2040 	EWservPanicFetchMessage=49,				// Trying to fetch a message when one has not been signalled
       
  2041 	EWservPanicReInitialise=50,				// Client sent a second Init() message
       
  2042 	EWservPanicNoWindowSpecifed=51,			// Trying to get off messages without specifing a window to send them to
       
  2043 	EWservPanicParentDeleted=52,			// Setting size, pos or extent of a window whose parent or ancestor has been deleted
       
  2044 	EWservPanicResetingDefaultOwner=53,		// Calling the function RWindowGroup::DefaultOwningWindow() twice on the same group window
       
  2045 	EWservPanicScreenModeNumber=54,			// Calling an API function with an illegal screen size mode index
       
  2046 	EWservPanicScreenEnforcementMode=55,	// Illegal screen mode enforcement mode
       
  2047 	EWservPanicEventType=56,				// Must be a pointer event
       
  2048 	EWservPanicRotation=57,					// Not valid rotation
       
  2049 	EWservPanicNotTopClient=58,				// Can only call this on a window whoes parent is a group window
       
  2050 	EWservPanicDirectMisuse=59,				// Trying to do things to a Direct Screen Access object in the wrong order
       
  2051 	EWservPanicDuplicateHandle=60,			// Client Handle already in use
       
  2052 	EWservPanicNoCustomTextCursor=61,		// The custom text cursor has not been set
       
  2053 	EWservPanicCustomTextCursorAlign=62,	// Illegal custom text cursor allignment used
       
  2054 	EWservPanicNoSpriteMember=63,			// Use of a sprite that does not have any member set.
       
  2055 	EWservPanicTransparencyObjNotCreated=64,// Trying to set a transparency operation to a window that has not been enabled to be transparent.
       
  2056 	EWservPanicScreenNumber=65,				// Calling an multiple screen API function with an illegal screen number
       
  2057 	EWservPanicPermissionDenied=66,
       
  2058 	EWservPanicFunctionLeave=67,			// A leave occured while processing command in the middle of the buffer
       
  2059 	EWservPanicGroupWinScreenDeviceDeleted=68,	//Trying to use a group window with a deleted Screen Device
       
  2060 	EWservPanicDrawCommandsInvalidState=69,	//Redraw storing cannot be disabled for transparent window
       
  2061 	EWservPanicWsGraphic=70,				// Bad internal state in CWsGraphic code
       
  2062 	EWservPanicUninitialisedClient=71,	 	// Tried to use an uninitialised CWsClient
       
  2063 	EWservPanicNullMessageFromClient=72,		// Client IPC message is NULL
       
  2064 	EWservPanicTransparencyMisuse=73,		// Incompatible use of window transparency and background surface
       
  2065 	EWservPanic_Removed1=74,	// Panic removed in CR1489, can be reused
       
  2066 	EWservPanicInvalidSurface=75,			// An incorrect surface type has been used
       
  2067 	EWservPanicInvalidSurfaceConfiguration=76,	// Use of a surface configuration without valid members
       
  2068 	EWservPanic_Removed2=77,	// Panic removed in CR1489, can be reused
       
  2069 	EwservPanicIllegalDisplayMode=78,           // Illegal display mode is used
       
  2070 	EWservPanicWindowBeginRedrawNotCalled=79,   // A draw operation was performed on the CWindowGc outside a RWindow::BeginRedraw() / EndRedraw() pair. Enable AutoFlush to debug.
       
  2071 	EWservPanicInvalidParameter=80,             // General invalid parameter code for invariant checking
       
  2072 	EWservPanicDrawableSource=81,               // Invalid drawable source handle
       
  2073 	EWservPanicWrongScreen=82,                  // Child apps can only be constructed on the same screen as their parent. See RWindowGroup::ConstructChildApp
       
  2074 	EWservPanicScreenCaptureInvalidRequest=83,  // With Screen Capture disabled, an unexpected invalid request has been received
       
  2075 	EWservPanicInvalidDisplayConfiguration=84,  // Use of a display configuration without valid members
       
  2076 	};
       
  2077 
       
  2078 #if defined(__WINS__)
       
  2079 	// Under WINS character code is passed in as HIWORD of the scan code,
       
  2080 	// and will need to be removed in some situations
       
  2081 	#define __REMOVE_WINS_CHARCODE &0x0000FFFF
       
  2082 #else
       
  2083 	#define __REMOVE_WINS_CHARCODE
       
  2084 #endif
       
  2085 
       
  2086 class CDebugLogBase: public CBase
       
  2087 	{
       
  2088 public:
       
  2089 	enum {EDummyConnectionId=0};		//This value is used to mean WSERV itself
       
  2090 	enum
       
  2091 		{
       
  2092 		ELogEverything=1,	// Gives the complete WSERV client server interaction along with client logging.
       
  2093 		ELogIntermediate=5,	// Gives the important WSERV client server interaction along with client logging.
       
  2094 		ELogImportant=9,	// Gives logging of panics and client logging.
       
  2095 		};
       
  2096 public:
       
  2097 	virtual void CommandBuf(TInt aApp)=0;
       
  2098 	virtual void Command(TInt aClass, TInt aOpcode, const TAny *aCmdData, TInt aHandle)=0;
       
  2099 	virtual void NewClient(TUint aConnectionHandle)=0;
       
  2100 	virtual void Reply(TInt aData)=0;
       
  2101 	virtual void ReplyBuf(const TDesC8 &aDes)=0;
       
  2102 	virtual void ReplyBuf(const TDesC16 &aDes)=0;
       
  2103 	virtual void SignalEvent(TInt aApp)=0;
       
  2104 	virtual void Panic(TInt aApp, TInt aReason)=0;
       
  2105 	virtual void MiscMessage(TInt aPriority,const TDesC &aFmt,TInt aParam=0)=0;
       
  2106 	virtual void HeapDump()=0;
       
  2107 	virtual void SetLoggingLevel(TInt aLevel)=0;
       
  2108 	virtual void IniFileSettingRead(TInt aScreen, const TDesC& aVarName, TBool aFound, const TDesC& aResult)=0;
       
  2109 	};
       
  2110 
       
  2111 inline TUint WservEncoding::Encode8BitValues(TUint8 aFirst,TUint8 aSecond)
       
  2112 	{return aSecond<<8|aFirst;}
       
  2113 inline TUint WservEncoding::Encode8BitValues(TUint8 aFirst,TUint8 aSecond,TUint8 aThird)
       
  2114 	{return aThird<<16|Encode8BitValues(aFirst,aSecond);}
       
  2115 inline TUint8 WservEncoding::ExtractFirst8BitValue(TUint aUint)
       
  2116 	{return STATIC_CAST(TUint8,aUint&KMaxTUint8);}
       
  2117 inline TUint8 WservEncoding::ExtractSecond8BitValue(TUint aUint)
       
  2118 	{return STATIC_CAST(TUint8,aUint>>8&KMaxTUint8);}
       
  2119 inline TUint8 WservEncoding::ExtractThird8BitValue(TUint aUint)
       
  2120 	{return STATIC_CAST(TUint8,aUint>>16);}
       
  2121 //
       
  2122 inline TWsClCmdCreateSprite::TWsClCmdCreateSprite(TInt aWindow, const TPoint &aPos, TUint aFlags) :
       
  2123 	window(aWindow),pos(aPos),flags(aFlags)
       
  2124 	{}
       
  2125 inline TWsClCmdSetWindowGroupOrdinalPosition::TWsClCmdSetWindowGroupOrdinalPosition(TInt aIdentifier, TInt aPosition) :
       
  2126 	identifier(aIdentifier),position(aPosition)
       
  2127 	{}
       
  2128 inline TWsClCmdSetKeyboardRepeatRate::TWsClCmdSetKeyboardRepeatRate(const TTimeIntervalMicroSeconds32 &aInitial,const TTimeIntervalMicroSeconds32 &aTime) :
       
  2129 	initial(aInitial), time(aTime)
       
  2130 	{}
       
  2131 inline TWsClCmdSetDoubleClick::TWsClCmdSetDoubleClick(const TTimeIntervalMicroSeconds32 &aInterval,TInt aDistance) :
       
  2132 	interval(aInterval), distance(aDistance)
       
  2133 	{}
       
  2134 inline TWsClCmdSendEventToWindowGroup::TWsClCmdSendEventToWindowGroup(TInt aParameter, const TWsEvent &aEvent) :
       
  2135 	parameter(aParameter), event(aEvent)
       
  2136 	{}
       
  2137 inline TWsClCmdFindWindowGroupIdentifier::TWsClCmdFindWindowGroupIdentifier(TInt aPreviousIdentifier,TInt aOffset,TInt aLength) :
       
  2138 	identifier(aPreviousIdentifier),offset(aOffset),length(aLength)
       
  2139 	{}
       
  2140 inline TWsClCmdSendMessageToWindowGroup::TWsClCmdSendMessageToWindowGroup(TInt aIdentifier, TUid aUid, TInt aDataLength, const TDesC8 *aPtr) :
       
  2141 	identifierOrPriority(aIdentifier), uid(aUid), dataLength(aDataLength), ptr(aPtr)
       
  2142 	{}
       
  2143 inline TWsClCmdFetchMessage::TWsClCmdFetchMessage(TInt aWindowGroupIdentifier) :
       
  2144 	windowGroupIdentifier(aWindowGroupIdentifier)
       
  2145 	{}
       
  2146 inline TWsClCmdFindWindowGroupIdentifierThread::TWsClCmdFindWindowGroupIdentifierThread(TInt aPreviousIdentifier,TThreadId aThreadId) :
       
  2147 	identifier(aPreviousIdentifier),threadId(aThreadId)
       
  2148 	{}
       
  2149 inline TWsClCmdGetWindowGroupNameFromIdentifier::TWsClCmdGetWindowGroupNameFromIdentifier(TInt aIdentifier,TInt aMaxLength) :
       
  2150 	identifier(aIdentifier),maxLength(aMaxLength)
       
  2151 	{}
       
  2152 inline TWsClCmdOffEventsToShell::TWsClCmdOffEventsToShell(TBool aOn,TUint32 aWindow) :
       
  2153 	on(aOn),window(aWindow)
       
  2154 	{}
       
  2155 inline TWsClCmdSetPointerCursorArea::TWsClCmdSetPointerCursorArea(TInt aMode,TRect aArea) :
       
  2156 	mode(aMode),area(aArea)
       
  2157 	{}
       
  2158 inline TWsClCmdSetSystemFaded::TWsClCmdSetSystemFaded(TBool aFaded, TBool aUseDefaults/*=ETrue*/, TUint8 aBlackMap/*=0*/, TUint8 aWhiteMap/*=0*/)
       
  2159 	{params=WservEncoding::Encode8BitValues(aBlackMap,aWhiteMap
       
  2160 			,STATIC_CAST(TUint8,(aFaded?EFaded:0)|(aUseDefaults?EUseDefaultMap:0)));}
       
  2161 inline TBool TWsClCmdSetSystemFaded::Faded() const
       
  2162 	{return WservEncoding::ExtractThird8BitValue(params)&EFaded;}
       
  2163 inline TBool TWsClCmdSetSystemFaded::UseDefaultMap() const
       
  2164 	{return WservEncoding::ExtractThird8BitValue(params)&EUseDefaultMap;}
       
  2165 inline void TWsClCmdSetSystemFaded::GetFadingParams(TUint8& aBlackMap,TUint8& aWhiteMap) const
       
  2166 	{aBlackMap=WservEncoding::ExtractFirst8BitValue(params);aWhiteMap=WservEncoding::ExtractSecond8BitValue(params);}
       
  2167 inline TWsClCmdDebugInfo::TWsClCmdDebugInfo(TInt aFunction, TInt aParam) : iFunction(aFunction), iParam(aParam)
       
  2168 	{}
       
  2169 #if defined(SYMBIAN_GRAPHICS_GCE)
       
  2170 inline TWsClCmdCreateDrawableSource::TWsClCmdCreateDrawableSource(const TSgDrawableId& aDrawableId, TInt aScreenNumber)
       
  2171 	: iDrawableId(aDrawableId), iScreenNumber(aScreenNumber)
       
  2172 	{}
       
  2173 inline TWsClCmdSurfaceRegister::TWsClCmdSurfaceRegister(TInt aScreenNumber, const TSurfaceId& aSurface):
       
  2174 	screenNumber(aScreenNumber), surfaceId(aSurface)
       
  2175 	{}
       
  2176 #endif
       
  2177 inline TWsWinCmdSetExtent::TWsWinCmdSetExtent(const TPoint &aPos,const TSize &aSize) :
       
  2178 	pos(aPos),size(aSize)
       
  2179 	{}
       
  2180 inline TWsWinCmdCaptureLongKey::TWsWinCmdCaptureLongKey()
       
  2181 	{}
       
  2182 inline TWsWinCmdCaptureLongKey::TWsWinCmdCaptureLongKey(TUint aModifiers,TUint aModifierMask,TUint aInputKey,TUint aOutputKey
       
  2183 																	,TTimeIntervalMicroSeconds32 aDelay,TInt aPriority,TUint aFlags) :
       
  2184 	modifiers(aModifiers),modifierMask(aModifierMask),inputKey(aInputKey),outputKey(aOutputKey)
       
  2185 																						,delay(aDelay),priority(aPriority),flags(aFlags)
       
  2186 	{}
       
  2187 inline TWsWinCmdScroll::TWsWinCmdScroll(const TRect &aClip,const TPoint &aOffset,const TRect &aRect) :
       
  2188 	clip(aClip), offset(aOffset), rect(aRect)
       
  2189 	{}
       
  2190 inline TWsWinCmdSetTextCursor::TWsWinCmdSetTextCursor(TUint32 aWindow, const TPoint &aPos, const TTextCursor &aCursor, const TRect &aRect) :
       
  2191 	window(aWindow), pos(aPos), cursor(aCursor), rect(aRect)
       
  2192 	{}
       
  2193 inline TWsWinCmdSetTextCursor::TWsWinCmdSetTextCursor(TUint32 aWindow, const TPoint &aPos, const TTextCursor &aCursor) :
       
  2194 	window(aWindow), pos(aPos), cursor(aCursor)
       
  2195 	{}
       
  2196 inline TWsWinCmdGrabControl::TWsWinCmdGrabControl(const TUint aGrabControlFlags)
       
  2197 : pointerNumber(KErrNotFound), flags(aGrabControlFlags)
       
  2198 	{}
       
  2199 inline TWsWinCmdGrabControl::TWsWinCmdGrabControl(const TUint8 aPointerNumber, const TUint aGrabControlFlags)
       
  2200 : pointerNumber(aPointerNumber), flags(aGrabControlFlags)
       
  2201 	{}
       
  2202 inline TBool TWsWinCmdGrabControl::CheckFlags(TUint aFlags) const
       
  2203 	{return (flags&aFlags)==aFlags;}
       
  2204 inline TBool TWsWinCmdGrabControl::HasPointerNumber() const
       
  2205 	{return KErrNotFound!=pointerNumber;}
       
  2206 
       
  2207 inline TWsWinCmdCancelPointerRepeatEventRequest::TWsWinCmdCancelPointerRepeatEventRequest()
       
  2208 :	pointerNumber(KErrNotFound), flags(TWsWinCmdCancelPointerRepeatEventRequest::ECancelRepeatFlagsNone)
       
  2209 	{}
       
  2210 inline TWsWinCmdCancelPointerRepeatEventRequest::TWsWinCmdCancelPointerRepeatEventRequest(const TUint8 aPointerNumber)
       
  2211 :	pointerNumber(aPointerNumber), flags(TWsWinCmdCancelPointerRepeatEventRequest::ECancelRepeatFlagsNone)
       
  2212 	{}
       
  2213 inline TWsWinCmdCancelPointerRepeatEventRequest::TWsWinCmdCancelPointerRepeatEventRequest(const TUint8 aPointerNumber, const TUint aFlags)
       
  2214 :	pointerNumber(aPointerNumber), flags(aFlags)
       
  2215 	{}
       
  2216 inline TBool TWsWinCmdCancelPointerRepeatEventRequest::HasPointerNumber() const
       
  2217 	{return KErrNotFound!=pointerNumber;}
       
  2218 inline TWsWinCmdRequestPointerRepeatEvent::TWsWinCmdRequestPointerRepeatEvent(const TTimeIntervalMicroSeconds32 &aTime,const TRect &aRect)
       
  2219 :	time(aTime),rect(aRect),pointerNumber(KErrNotFound),repeatFlags(ERepeatFlagsNone)
       
  2220 	{}
       
  2221 inline TWsWinCmdRequestPointerRepeatEvent::TWsWinCmdRequestPointerRepeatEvent(const TTimeIntervalMicroSeconds32 &aTime,const TRect &aRect,const TUint8 aPointerNumber, const TUint aRepeatFlags)
       
  2222 :	time(aTime),rect(aRect),pointerNumber(aPointerNumber),repeatFlags(aRepeatFlags)
       
  2223 	{}
       
  2224 inline TBool TWsWinCmdRequestPointerRepeatEvent::HasPointerNumber() const
       
  2225 	{return KErrNotFound!=pointerNumber;}
       
  2226 inline TWsClCmdZThresholdPair::TWsClCmdZThresholdPair(const TInt aEnterThreshold, const TInt aExitThreshold)
       
  2227 :	enterThreshold(aEnterThreshold),exitThreshold(aExitThreshold)
       
  2228 	{}
       
  2229 inline TWsWinCmdAddKeyRect::TWsWinCmdAddKeyRect(const TRect &aRect,TInt aScanCode, TBool aActivatedByPointerSwitchOn) :
       
  2230 	rect(aRect), scanCode(aScanCode), activatedByPointerSwitchOn(aActivatedByPointerSwitchOn)
       
  2231 	{}
       
  2232 #if defined(SYMBIAN_GRAPHICS_GCE)
       
  2233 inline TWsWinOpSetBackgroundSurfaceConfig::TWsWinOpSetBackgroundSurfaceConfig(const TSurfaceConfiguration& aConfiguration, TBool aTriggerRedraw) :
       
  2234 	surfaceConfig(aConfiguration), triggerRedraw(aTriggerRedraw)
       
  2235 	{}
       
  2236 #endif
       
  2237 inline TWsWinCmdEnableModifierChangedEvents::TWsWinCmdEnableModifierChangedEvents(TUint aModifierMask, TEventControl aCircumstances) :
       
  2238 	modifierMask(aModifierMask), circumstances(aCircumstances)
       
  2239 	{}
       
  2240 inline TWsWinCmdSetFaded::TWsWinCmdSetFaded(TBool aFaded, TBool aIncludeChildren, TBool aUseDefaults/*=ETrue*/, TUint8 aBlackMap/*=0*/, TUint8 aWhiteMap/*=0*/)
       
  2241 	{params=WservEncoding::Encode8BitValues(aBlackMap,aWhiteMap
       
  2242 			,STATIC_CAST(TUint8,(aFaded?EFaded:0)|(aIncludeChildren?EIncludeChildren:0)|(aUseDefaults?EUseDefaultMap:0)));}
       
  2243 inline TBool TWsWinCmdSetFaded::Faded() const
       
  2244 	{return WservEncoding::ExtractThird8BitValue(params)&EFaded;}
       
  2245 inline TBool TWsWinCmdSetFaded::IncludeChildren() const
       
  2246 	{return WservEncoding::ExtractThird8BitValue(params)&EIncludeChildren;}
       
  2247 inline TBool TWsWinCmdSetFaded::UseDefaultMap() const
       
  2248 	{return WservEncoding::ExtractThird8BitValue(params)&EUseDefaultMap;}
       
  2249 inline void TWsWinCmdSetFaded::GetFadingParams(TUint8& aBlackMap,TUint8& aWhiteMap) const
       
  2250 	{aBlackMap=WservEncoding::ExtractFirst8BitValue(params);aWhiteMap=WservEncoding::ExtractSecond8BitValue(params);}
       
  2251 //
       
  2252 inline TWsGcCmdBoxTextVertical::TWsGcCmdBoxTextVertical(const TRect& aBox) : box(aBox)
       
  2253 	{}
       
  2254 inline TWsGcCmdBoxTextLocal::TWsGcCmdBoxTextLocal(const TRect &aBox) : box(aBox)
       
  2255 	{}
       
  2256 inline TWsGcCmdDrawTextLocal::TWsGcCmdDrawTextLocal(const TPoint &aPos,const TDesC *aDesc) :
       
  2257 	pos(aPos), desc(aDesc)
       
  2258 	{}
       
  2259 inline TWsGcCmdDrawLine::TWsGcCmdDrawLine(const TPoint &aPnt1,const TPoint &aPnt2) : pnt1(aPnt1),pnt2(aPnt2)
       
  2260 	{}
       
  2261 inline TWsGcCmdDrawArcOrPie::TWsGcCmdDrawArcOrPie(const TRect &aRect,const TPoint &aStart,const TPoint &aEnd) :
       
  2262 	rect(aRect),start(aStart),end(aEnd)
       
  2263 	{}
       
  2264 inline TWsGcCmdDrawText::TWsGcCmdDrawText(const TPoint &aPos, TInt aLength) : 
       
  2265 	pos(aPos),length(aLength)
       
  2266 	{}
       
  2267 inline TWsGcCmdDrawTextVertical::TWsGcCmdDrawTextVertical(const TPoint &aPos, TInt aLength, TBool aUp) : 
       
  2268 	pos(aPos),length(aLength),up(aUp)
       
  2269 	{}
       
  2270 inline TWsGcCmdBoxTextOptimised1::TWsGcCmdBoxTextOptimised1(const TRect &aRect, TInt aBaselineOffset,TInt aLength) :
       
  2271 	box(aRect),baselineOffset(aBaselineOffset),length(aLength)
       
  2272 	{}
       
  2273 inline TWsGcCmdBoxTextOptimised2::TWsGcCmdBoxTextOptimised2(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength) :
       
  2274 	box(aRect),baselineOffset(aBaselineOffset),horiz(aHoriz),leftMrg(aLeftMrg),length(aLength)
       
  2275 	{}
       
  2276 inline TWsGcCmdBoxText::TWsGcCmdBoxText(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength,TInt aWidth) :
       
  2277 	box(aRect),baselineOffset(aBaselineOffset),horiz(aHoriz),leftMrg(aLeftMrg),length(aLength),width(aWidth)
       
  2278 	{}
       
  2279 inline TWsGcCmdDrawRoundRect::TWsGcCmdDrawRoundRect(const TRect &aRect,const TSize &aEllipse) : rect(aRect), ellipse(aEllipse)
       
  2280 	{}
       
  2281 inline TWsGcCmdDrawPolygonLocalBufLen::TWsGcCmdDrawPolygonLocalBufLen(const TPoint *aPointList,TInt aNumPoints, CGraphicsContext::TFillRule aFillRule) :
       
  2282 	points(aPointList),length(aNumPoints),fillRule(aFillRule)
       
  2283 	{}
       
  2284 inline TWsGcCmdDrawPolyLineLocalBufLen::TWsGcCmdDrawPolyLineLocalBufLen(const TPoint *aPointList,TInt aNumPoints) :
       
  2285 	points(aPointList),length(aNumPoints)
       
  2286 	{}
       
  2287 inline TWsGcCmdDrawBitmap::TWsGcCmdDrawBitmap(const TPoint &aPoint,TInt aHandle) : handle(aHandle), pos(aPoint)
       
  2288 	{}
       
  2289 inline TWsGcCmdDrawBitmap2::TWsGcCmdDrawBitmap2(const TRect &aRect,TInt aHandle) : handle(aHandle), rect(aRect)
       
  2290 	{}
       
  2291 inline TWsGcCmdDrawBitmap3::TWsGcCmdDrawBitmap3(const TRect &aRect,TInt aHandle,const TRect &aSrcRect) :
       
  2292 	 handle(aHandle), rect(aRect), srcRect(aSrcRect)
       
  2293 	{}
       
  2294 inline TWsGcCmdDrawBitmapMasked::TWsGcCmdDrawBitmapMasked(const TRect &aDestRect,TInt aHandle,const TRect& aSrcRect,TInt aMaskHandle,TBool aInvertMask) :
       
  2295 	 iHandle(aHandle),iMaskHandle(aMaskHandle),iRect(aDestRect),iSrcRect(aSrcRect),iInvertMask(aInvertMask)
       
  2296 	 {}
       
  2297 inline TWsGcCmdDrawBitmapLocal::TWsGcCmdDrawBitmapLocal(const TPoint &aPos,const CFbsBitmap *aBitmap) :
       
  2298 	bitmap(aBitmap), pos(aPos)
       
  2299 	{}
       
  2300 inline TWsGcCmdDrawBitmap2Local::TWsGcCmdDrawBitmap2Local(const TRect &aRect,const CFbsBitmap *aBitmap) :
       
  2301 	bitmap(aBitmap), rect(aRect)
       
  2302 	{}
       
  2303 inline TWsGcCmdDrawBitmap3Local::TWsGcCmdDrawBitmap3Local(const TRect &aRect,const CFbsBitmap *aBitmap,const TRect &aSrcRect) :
       
  2304 	bitmap(aBitmap), rect(aRect), srcRect(aSrcRect)
       
  2305 	{}
       
  2306 inline TWsGcCmdDrawBitmapMaskedLocal::TWsGcCmdDrawBitmapMaskedLocal(const TRect &aDestRect,const CFbsBitmap* aBitmap,const TRect& aSrcRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask) :
       
  2307 	iBitmap(aBitmap),iMaskBitmap(aMaskBitmap),iRect(aDestRect),iSrcRect(aSrcRect),iInvertMask(aInvertMask)
       
  2308 	{}
       
  2309 inline TWsGcCmdCopyRect::TWsGcCmdCopyRect(const TPoint &anOffset,const TRect &aRect) :
       
  2310 	rect(aRect),pos(anOffset)
       
  2311 	{}
       
  2312 inline TWsGcCmdGdiBlt2::TWsGcCmdGdiBlt2(const TPoint &aPoint, TInt aHandle) :
       
  2313 	handle(aHandle), pos(aPoint)
       
  2314 	{}
       
  2315 inline TWsGcCmdGdiBlt3::TWsGcCmdGdiBlt3(const TPoint &aPoint, TInt aHandle, const TRect &aSrcRect) :
       
  2316 	handle(aHandle),pos(aPoint),rect(aSrcRect)
       
  2317 	{}
       
  2318 inline TWsGcCmdGdiBlt2Local::TWsGcCmdGdiBlt2Local(const TPoint &aPoint,const CFbsBitmap *aBitmap) :
       
  2319 	bitmap(aBitmap), pos(aPoint)
       
  2320 	{}
       
  2321 inline TWsGcCmdGdiBlt3Local::TWsGcCmdGdiBlt3Local(const TPoint &aDestination,const CFbsBitmap *aBitmap,const TRect &aSource) :
       
  2322 	bitmap(aBitmap), pos(aDestination), rect(aSource)
       
  2323 	{}
       
  2324 inline TWsGcCmdGdiBltMaskedLocal::TWsGcCmdGdiBltMaskedLocal(const TPoint& aPoint,const CFbsBitmap* aBitmap,const TRect &aSourceRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask) :
       
  2325 	bitmap(aBitmap), maskBitmap(aMaskBitmap), invertMask(aInvertMask), pos(aPoint), rect(aSourceRect)
       
  2326 	{}
       
  2327 	inline TWsGcCmdBltMasked::TWsGcCmdBltMasked()
       
  2328 	{}
       
  2329 inline TWsGcCmdBltMasked::TWsGcCmdBltMasked(const TPoint& aPoint,TInt aBitmap,const TRect& aSourceRect,TInt aMaskBitmap,TBool aInvertMask) :
       
  2330 	destination(aPoint), handle(aBitmap), source(aSourceRect), maskHandle(aMaskBitmap), invertMask(aInvertMask)
       
  2331 	{}
       
  2332 inline TWsGcCmdMapColors::TWsGcCmdMapColors(const TRect &aRect, TInt aNumPairs, TBool aMapForwards) :
       
  2333 	rect(aRect), numPairs(aNumPairs), mapForwards(aMapForwards)
       
  2334 	{}
       
  2335 inline TWsGcCmdMapColorsLocal::TWsGcCmdMapColorsLocal(const TRect &aRect, const TRgb *aColors, TInt aNumPairs, TBool aMapForwards) :
       
  2336 	rect(aRect), colors(aColors), numPairs(aNumPairs), mapForwards(aMapForwards)
       
  2337 	{}	
       
  2338 inline TWsGcCmdAlphaBlendBitmaps::TWsGcCmdAlphaBlendBitmaps()
       
  2339 	{}
       
  2340 inline TWsGcCmdAlphaBlendBitmaps::TWsGcCmdAlphaBlendBitmaps(const TPoint& aPoint, TInt aBitmap,const TRect& aSourceRect,TInt aAlpha,const TPoint& aAlphaPoint) :
       
  2341 	point(aPoint), bitmapHandle(aBitmap), source(aSourceRect), alphaHandle(aAlpha), alphaPoint(aAlphaPoint)
       
  2342 	{}
       
  2343 inline TWsGcCmdAlphaBlendBitmapsLocal::TWsGcCmdAlphaBlendBitmapsLocal(const TPoint& aPoint, const CFbsBitmap *aBitmap, const TRect& aSourceRect, const CFbsBitmap *aAlpha, const TPoint& aAlphaPoint) :
       
  2344 	point(aPoint), iBitmap(aBitmap), source(aSourceRect), iAlpha(aAlpha), alphaPoint(aAlphaPoint)
       
  2345 	{}
       
  2346 
       
  2347 //
       
  2348 inline TWsSdCmdSetScreenRotation::TWsSdCmdSetScreenRotation(TInt aMode, CFbsBitGc::TGraphicsOrientation aRotation) :
       
  2349 	mode(aMode), rotation(aRotation)
       
  2350 	{}
       
  2351 inline TWsSdCmdGetScanLine::TWsSdCmdGetScanLine(const TPoint &aPos, TInt aLen, TDisplayMode aDispMode) :
       
  2352 	pos(aPos), len(aLen), dispMode(aDispMode)
       
  2353 	{}
       
  2354 inline TWsSdCmdRectCompare::TWsSdCmdRectCompare(const TRect &aRect1,const TRect &aRect2,TUint aFlags) :
       
  2355 	rect1(aRect1), rect2(aRect2), flags(aFlags)
       
  2356 	{}
       
  2357 inline TWsSdCmdCopyScreenToBitmap::TWsSdCmdCopyScreenToBitmap(TInt aHandle) :
       
  2358 	handle(aHandle)
       
  2359 	{}
       
  2360 inline TWsSdCmdCopyScreenToBitmap2::TWsSdCmdCopyScreenToBitmap2(const TRect &aRect, TInt aHandle) :
       
  2361 	rect(aRect), handle(aHandle)
       
  2362 	{}
       
  2363 inline TWsSdCmdSetPalette::TWsSdCmdSetPalette(TPtr8& aPtr) :
       
  2364 	ptr(&aPtr), length(aPtr.Length())
       
  2365 	{}
       
  2366 inline TWsSdCmdMapCoordinates::TWsSdCmdMapCoordinates(const TRect &aSource, TCoordinateSpace aSourceSpace, TCoordinateSpace aTargetSpace):
       
  2367 	sourceRect(aSource), sourceSpace(aSourceSpace), targetSpace(aTargetSpace)
       
  2368 	{}
       
  2369 //
       
  2370 inline TWsSpriteCmdUpdateMember::TWsSpriteCmdUpdateMember(TInt aIndex,const TSpriteMember &aData) :
       
  2371 	index(aIndex), data(aData)
       
  2372 	{}
       
  2373 //
       
  2374 inline TWsDirectCmdRequestReply::TWsDirectCmdRequestReply()
       
  2375 	{}
       
  2376 inline TWsDirectCmdRequestReply::TWsDirectCmdRequestReply(TThreadId aId,TRequestStatus* aRequest) :
       
  2377 	id(aId), request(aRequest)
       
  2378 	{}
       
  2379 //
       
  2380 inline SKeyRepeatSettings::SKeyRepeatSettings()
       
  2381 	{}
       
  2382 inline SDoubleClickSettings::SDoubleClickSettings()
       
  2383 	{}
       
  2384 inline SDefModeMaxNumColors::SDefModeMaxNumColors()
       
  2385 	{}
       
  2386 //
       
  2387 inline TCmdSpriteMember::TCmdSpriteMember()
       
  2388 	{}
       
  2389 	
       
  2390 inline TWsGcCmdDrawTextVerticalPtr::TWsGcCmdDrawTextVerticalPtr(const TDesC *aDesc, const TPoint& aPos, const TBool aUp) : pos(aPos), up(aUp), text(const_cast<TDesC*>(aDesc))
       
  2391 	{}
       
  2392 	
       
  2393 inline TWsGcCmdDrawWsGraphic::TWsGcCmdDrawWsGraphic(const TWsGraphicId& aId,const TRect& aRect):
       
  2394 	iRect(aRect), iDataLen(0)
       
  2395 	{
       
  2396 	if(aId.IsUid())
       
  2397 		{
       
  2398 		iId = aId.Uid().iUid;
       
  2399 		iFlags = EWsGraphicIdUid;
       
  2400 		}
       
  2401 	else
       
  2402 		{
       
  2403 		iId = aId.Id();
       
  2404 		iFlags = EWsGraphicIdTransient;
       
  2405 		}
       
  2406 	}
       
  2407 inline TWsGcCmdDrawTextInContext::TWsGcCmdDrawTextInContext(const TPoint &aPos, TInt aLength, TInt aStart, TInt aEnd) : 
       
  2408 	pos(aPos),length(aLength),start(aStart),end(aEnd)
       
  2409 	{}
       
  2410 inline TWsGcCmdDrawTextInContextVertical::TWsGcCmdDrawTextInContextVertical(const TPoint &aPos, TInt aLength, TBool aUp,TInt aStart,TInt aEnd) : 
       
  2411 	pos(aPos),length(aLength),up(aUp),start(aStart),end(aEnd)
       
  2412 	{}
       
  2413 inline TWsGcCmdDrawTextInContextVerticalPtr::TWsGcCmdDrawTextInContextVerticalPtr(const TDesC *aDesc, const TPoint& aPos, const TBool aUp,TInt aStart,TInt aEnd) : pos(aPos), up(aUp), text(const_cast<TDesC*>(aDesc)),start(aStart),end(aEnd)
       
  2414 	{}
       
  2415 inline TWsGcCmdBoxTextInContextLocal::TWsGcCmdBoxTextInContextLocal(const TRect &aBox,const TInt aStart,const TInt aEnd) : box(aBox),start(aStart),end(aEnd)
       
  2416 	{}
       
  2417 inline TWsGcCmdBoxTextInContextOptimised1::TWsGcCmdBoxTextInContextOptimised1(const TRect &aRect, TInt aBaselineOffset,TInt aLength,TInt aStart,TInt aEnd) :
       
  2418 	box(aRect),baselineOffset(aBaselineOffset),length(aLength),start(aStart),end(aEnd)
       
  2419 	{}
       
  2420 inline TWsGcCmdBoxTextInContextOptimised2::TWsGcCmdBoxTextInContextOptimised2(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength,TInt aStart,TInt aEnd) :
       
  2421 	box(aRect),baselineOffset(aBaselineOffset),horiz(aHoriz),leftMrg(aLeftMrg),length(aLength),start(aStart),end(aEnd)
       
  2422 	{}
       
  2423 inline TWsGcCmdBoxTextInContext::TWsGcCmdBoxTextInContext(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength,TInt aWidth,TInt aStart,TInt aEnd) :
       
  2424 	box(aRect),baselineOffset(aBaselineOffset),horiz(aHoriz),leftMrg(aLeftMrg),length(aLength),width(aWidth),start(aStart),end(aEnd)
       
  2425 	{}
       
  2426 inline TWsGcCmdBoxTextInContextVertical::TWsGcCmdBoxTextInContextVertical(const TRect& aBox) : box(aBox)
       
  2427 	{}
       
  2428 inline TWsGcCmdDrawTextInContextLocal::TWsGcCmdDrawTextInContextLocal(const TPoint &aPos,const TDesC *aDesc,TInt aStart,TInt aEnd) :
       
  2429 	pos(aPos), desc(aDesc),start(aStart),end(aEnd)
       
  2430 	{}
       
  2431 inline TWsGcCmdDrawResourceToPos::TWsGcCmdDrawResourceToPos(TInt aWsHandle, const TPoint &aPos, CWindowGc::TGraphicsRotation aRotation) : 
       
  2432 	wsHandle(aWsHandle), pos(aPos), rotation(aRotation) 
       
  2433 	{}
       
  2434 inline TWsGcCmdDrawResourceToRect::TWsGcCmdDrawResourceToRect(TInt aWsHandle, const TRect &aRect, CWindowGc::TGraphicsRotation aRotation) : 
       
  2435 	wsHandle(aWsHandle), rect(aRect), rotation(aRotation)
       
  2436 	{}
       
  2437 inline TWsGcCmdDrawResourceFromRectToRect::TWsGcCmdDrawResourceFromRectToRect(TInt aWsHandle, const TRect &aRectDest, const TRect &aRectSrc, CWindowGc::TGraphicsRotation aRotation) :
       
  2438 	wsHandle(aWsHandle), rectDest(aRectDest), rectSrc(aRectSrc), rotation(aRotation)
       
  2439 	{}
       
  2440 inline TWsGcCmdDrawResourceWithData::TWsGcCmdDrawResourceWithData(TInt aWsHandle, const TRect &aRect, const TDesC8* aDesc) :
       
  2441 	wsHandle(aWsHandle), rect(aRect), desc(aDesc)
       
  2442 	{}
       
  2443 #endif